Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
class CDitherTable { friend class CDitherToRGB8;
public: CDitherTable(); ~CDitherTable();
BOOL Match( ULONG nColors, const RGBQUAD* prgbColors ); HRESULT SetColors( ULONG nColors, const RGBQUAD* prgbColors );
protected: HRESULT BuildInverseMap();
void inv_cmap( int colors, RGBQUAD *colormap, int bits, ULONG* dist_buf, BYTE* rgbmap ); int redloop(); int greenloop( int restart ); int blueloop( int restart ); void maxfill( ULONG* buffer, long side );
public: BYTE m_abInverseMap[32768];
protected: ULONG m_nRefCount; ULONG m_nColors; RGBQUAD m_argbColors[256]; ULONG* m_pnDistanceBuffer;
// Vars that were global in the original code
int bcenter, gcenter, rcenter; long gdist, rdist, cdist; long cbinc, cginc, crinc; ULONG* gdp; ULONG* rdp; ULONG* cdp; BYTE* grgbp; BYTE* rrgbp; BYTE* crgbp; int gstride, rstride; long x, xsqr, colormax; int cindex;
// Static locals from the original redloop(). Good coding at its finest.
long rxx;
// Static locals from the original greenloop()
int greenloop_here; int greenloop_min; int greenloop_max; int greenloop_prevmin; int greenloop_prevmax; long ginc; long gxx; long gcdist; ULONG* gcdp; BYTE* gcrgbp;
// Static locals from the original blueloop()
int blueloop_here; int blueloop_min; int blueloop_max; int blueloop_prevmin; int blueloop_prevmax; long binc; };
|