From 516c6ae7a1ce3fbef7e6dca0f81d5273e7cde668 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Thu, 2 May 2013 17:40:29 +1000 Subject: Simplifying XPM code and avoiding bare allocations. --- src/XPM.h | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'src/XPM.h') diff --git a/src/XPM.h b/src/XPM.h index 5deeffa48..c19025d1a 100644 --- a/src/XPM.h +++ b/src/XPM.h @@ -1,6 +1,6 @@ // Scintilla source code edit control /** @file XPM.h - ** Define a class that holds data in the X Pixmap (XPM) format. + ** Define a classes to hold image data in the X Pixmap (XPM) and RGBA formats. **/ // Copyright 1998-2003 by Neil Hodgson // The License.txt file describes the conditions under which this software may be distributed. @@ -16,19 +16,14 @@ namespace Scintilla { * Hold a pixmap in XPM format. */ class XPM { - int pid; // Assigned by container int height; int width; int nColours; - char *data; + std::vector pixels; + ColourDesired colourCodeTable[256]; char codeTransparent; - char *codes; - ColourDesired *colours; - ColourDesired ColourDesiredFromCode(int ch) const; ColourDesired ColourFromCode(int ch) const; void FillRun(Surface *surface, int code, int startX, int y, int x); - char **lines; - ColourDesired *colourCodeTable[256]; public: XPM(const char *textForm); XPM(const char *const *linesForm); @@ -38,17 +33,15 @@ public: void Clear(); /// Decompose image into runs and use FillRectangle for each run void Draw(Surface *surface, PRectangle &rc); - char **InLinesForm() { return lines; } - void SetId(int pid_) { pid = pid_; } - int GetId() const { return pid; } int GetHeight() const { return height; } int GetWidth() const { return width; } void PixelAt(int x, int y, ColourDesired &colour, bool &transparent) const; - static const char **LinesFormFromTextForm(const char *textForm); +private: + static std::vectorLinesFormFromTextForm(const char *textForm); }; /** - * An translucent image stoed as a sequence of RGBA bytes. + * A translucent image stored as a sequence of RGBA bytes. */ class RGBAImage { // Private so RGBAImage objects can not be copied -- cgit v1.2.3