57 #define COLOUR_WEIGHT_RED 4
58 #define COLOUR_WEIGHT_GREEN 9
59 #define COLOUR_WEIGHT_BLUE 1
66 #define WX_PIXFLAG_TRANSLATE 1
67 #define WX_PIXFLAG_DITHER 2
68 #define WX_PIXFLAG_SAMEPALETTE 4
69 #define WX_PIXFLAG_FASTDITHER 8
70 #define WX_PIXMODE_PALETTE 1
75 typedef struct wx_permute_cmap
77 unsigned char red, green, blue, number;
88 extern unsigned char *TrueTransTab;
89 extern unsigned char *FastDitherTab;
90 extern int TrueTransCount;
91 extern int FastDitherCount;
98 typedef void (*wx_pixmap_translate)(
const unsigned char *src,
unsigned char *dest,
int width,
int height,
int srcPitch,
int destPitch,
const unsigned char *tt);
100 typedef void (wxPixmap::*wx_pixmap_dither)(
unsigned char *dest,
int destPad);
102 typedef int (wxPixmap::*pixmap_colour_match)(
unsigned char r,
unsigned char g,
unsigned char b);
114 class WXDLLEXPORT wxPixmap :
public wxObject
119 wxPixmap(wxWindow *Win,
int Width,
int Height,
int Depth,
int Pad,
char *Data,
unsigned int Flags=WX_PIXFLAG_TRANSLATE, wxColour *Palette=NULL);
121 int newPixmap(wxWindow *Win,
int Width,
int Height,
int Depth,
int Pad,
char *Data,
unsigned int Flags=WX_PIXFLAG_TRANSLATE, wxColour *Palette=NULL);
122 int plotPixmap(
int PosX,
int PosY);
123 void invalidatePixmap(
void);
129 wxColour *getPalette(
void);
130 int getModeDepth(
void);
131 int getModePitch(
void);
132 char *getModeData(
void);
133 unsigned char *getTranslationTable(
void);
134 void modeChange(
unsigned int Flags);
135 void buildTranslationTable(
void);
136 void refreshGlobalTables(
void);
137 bool setBusyCursor(
bool newMode);
138 #ifndef wx_pixmap_alloc_cols
139 void processParentPalette(
bool forceUpdate=
FALSE);
140 void processPixmapPalette(
void);
141 wx_permute_cmap *getParentPalette(
void);
142 int findBestColour(
unsigned char red,
unsigned char green,
unsigned char blue);
143 int findFastColour(
unsigned char red,
unsigned char green,
unsigned char blue);
146 #include "wx_pixmap_dither.h"
151 void errorMemory(
void);
152 void errorGeneric(
char *message);
153 void initVariables(
void);
154 void freeResources(
int Depth,
unsigned int Flags);
155 void translateToMode(
void);
156 void ditherToMode(
void);
157 void getDisplayAttributes(
void);
158 void initColoursForMode(
bool forceUpdate=
FALSE);
159 void setupTranslators(
void);
160 #ifndef wx_pixmap_alloc_cols
161 void sortParentPalette(
int from,
int to);
162 void buildInverseTable(
void);
166 int width, height, depth, pad, pitch;
167 int displayDepth, displayPitch, displayPad;
179 unsigned int pixFlags;
180 #ifdef wx_pixmap_alloc_cols
181 char ColourAlloc[32];
184 int parentPaletteDepth;
185 wx_permute_cmap *parentPalette, *pixmapPalette;
186 unsigned char parentInverse[256];
191 wxOutputStream streamBuf;
192 std::ostream *errorstr;
193 int destBitorder, destByteorder, rgbOrder;
194 wx_pixmap_translate pixtrans1, pixtrans2, pixtrans4, pixtrans8, pixtrans12;
195 wx_pixmap_translate pixtrans15, pixtrans24, pixtrans32;
196 wx_pixmap_dither pixdither1, pixdither2, pixdither4, pixdither8, pixdither12;
197 wx_pixmap_dither pixdither15, pixdither24, pixdither32;
198 pixmap_colour_match colour_matcher;
203 XVisualInfo visualInfo;
206 XWindowAttributes xat;
209 Window rootwin, windowHandle;
213 void win_translate_24_to_24(
unsigned char *dest);
219 HDC rootDC, winDC, srcDC;
#define FALSE
Definition: defs.h:70