#ifndef _DDRAW_PIXELFORMAT_HPP_ #define _DDRAW_PIXELFORMAT_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _DDRAW_DDRAW_HPP_ #include #endif class PixelFormat : private DDPIXELFORMAT { public: enum ControlFlags{Alpha=DDPF_ALPHA,AlphaPixels=DDPF_ALPHAPIXELS,AlphaPreMult=DDPF_ALPHAPREMULT, BumpLuminance=DDPF_BUMPLUMINANCE,BumpDUDV=DDPF_BUMPDUDV,Compressed=DDPF_COMPRESSED, FourCC=DDPF_FOURCC,Luminance=DDPF_LUMINANCE,PaletteIndexed1=DDPF_PALETTEINDEXED1, PaletteIndexed2=DDPF_PALETTEINDEXED2,PaletteIndexed4=DDPF_PALETTEINDEXED4, PaletteIndexed8=DDPF_PALETTEINDEXED8,PaletteIndexedTo8=DDPF_PALETTEINDEXEDTO8, RGB=DDPF_RGB,RGBToYUV=DDPF_RGBTOYUV,StencilBuffer=DDPF_STENCILBUFFER,YUV=DDPF_YUV, ZBuffer=DDPF_ZBUFFER,ZPixels=DDPF_ZPIXELS}; PixelFormat(void); PixelFormat(const PixelFormat &somePixelFormat); PixelFormat(const DDPIXELFORMAT &someDDPIXELFORMAT); virtual ~PixelFormat(); PixelFormat &operator=(const PixelFormat &somePixelFormat); PixelFormat &operator=(const DDPIXELFORMAT &someDDPIXELFORMAT); DWORD flags(void)const; void flags(DWORD flags); void flags(ControlFlags controlFlags); DWORD fourCC(void)const; void fourCC(DWORD fourCC); DWORD rgbBitCount(void)const; void rgbBitCount(DWORD rgbBitCount); DWORD yuvBitCount(void)const; void yuvBitCount(DWORD yuvBitCount); DWORD zBufferBitDepth(void)const; void zBufferBitDepth(DWORD zBufferBitDepth); DWORD alphaBitDepth(void)const; void alphaBitDepth(DWORD alphaBitDepth); DWORD luminanceBitCount(void)const; void luminanceBitCount(DWORD luminanceBitCount); DWORD bumpBitCount(void)const; void bumpBitCount(DWORD bumpBitCount); DWORD rBitMask(void)const; void rBitMask(DWORD resBitMask); DWORD yBitMask(void)const; void yBitMask(DWORD yBitMask); DWORD gBitMask(void)const; void gBitMask(DWORD gBitMask); DWORD uBitMask(void)const; void uBitMask(DWORD uBitMask); DWORD zBitMask(void)const; void zBitMask(DWORD zBitMask); DWORD bBitMask(void)const; void bBitMask(DWORD bBitMask); DWORD vBitMask(void)const; void vBitMask(DWORD vBitMask); DWORD stencilBitDepth(void)const; void stencilBitDepth(DWORD stencilBitDepth); DWORD luminanceBitMask(void)const; void luminanceBitMask(DWORD luminanceBitMask); DWORD bumpDuBitMask(void)const; void bumpDuBitMask(DWORD bumpDuBitMask); DWORD bumpDvBitMask(void)const; void bumpDvBitMask(DWORD bumpDvBitMask); DWORD stencilBitMask(void)const; void stencilBitMask(DWORD stencilBitMask); DWORD bumpLuminanceBitMask(void)const; void bumpLuminanceBitMask(DWORD bumpLuminanceBitMask); DWORD rgbAlphaBitMask(void)const; void rgbAlphaBitMask(DWORD rgbAlphaBitMask); DWORD yuvAlphaBitMask(void)const; void yuvAlphaBitMask(DWORD yuvAlphaBitMask); DWORD luminanceAlphaBitMask(void)const; void luminanceAlphaBitMask(DWORD luminanceAlphaBitMask); DWORD rgbZBitMask(void)const; void rgbZBitMask(DWORD rgbZBitMask); DWORD yuvZBitMask(void)const; void yuvZBitMask(DWORD yuvZBitMask); DDPIXELFORMAT &getDDPIXELFORMAT(void); private: void zeroInit(void); }; inline PixelFormat::PixelFormat(void) { zeroInit(); } inline PixelFormat::PixelFormat(const PixelFormat &somePixelFormat) { *this=somePixelFormat; } inline PixelFormat::PixelFormat(const DDPIXELFORMAT &someDDPIXELFORMAT) { *this=someDDPIXELFORMAT; } inline PixelFormat::~PixelFormat() { } inline PixelFormat &PixelFormat::operator=(const PixelFormat &somePixelFormat) { flags(somePixelFormat.flags()); fourCC(somePixelFormat.fourCC()); rgbBitCount(somePixelFormat.rgbBitCount()); rBitMask(somePixelFormat.rBitMask()); gBitMask(somePixelFormat.gBitMask()); bBitMask(somePixelFormat.bBitMask()); rgbAlphaBitMask(somePixelFormat.rgbAlphaBitMask()); return *this; } inline PixelFormat &PixelFormat::operator=(const DDPIXELFORMAT &someDDPIXELFORMAT) { flags(someDDPIXELFORMAT.dwFlags); fourCC(someDDPIXELFORMAT.dwFourCC); rgbBitCount(someDDPIXELFORMAT.dwRGBBitCount); rBitMask(someDDPIXELFORMAT.dwRBitMask); gBitMask(someDDPIXELFORMAT.dwGBitMask); bBitMask(someDDPIXELFORMAT.dwBBitMask); rgbAlphaBitMask(someDDPIXELFORMAT.dwRGBAlphaBitMask); return *this; } inline DWORD PixelFormat::flags(void)const { return DDPIXELFORMAT::dwFlags; } inline void PixelFormat::flags(DWORD flags) { DDPIXELFORMAT::dwFlags=flags; } inline void PixelFormat::flags(ControlFlags controlFlags) { DDPIXELFORMAT::dwFlags=(DWORD)controlFlags; } inline DWORD PixelFormat::fourCC(void)const { return DDPIXELFORMAT::dwFourCC; } inline void PixelFormat::fourCC(DWORD fourCC) { DDPIXELFORMAT::dwFourCC=fourCC; } inline DWORD PixelFormat::rgbBitCount(void)const { return DDPIXELFORMAT::dwRGBBitCount; } inline void PixelFormat::rgbBitCount(DWORD rgbBitCount) { DDPIXELFORMAT::dwRGBBitCount=rgbBitCount; } inline DWORD PixelFormat::yuvBitCount(void)const { return DDPIXELFORMAT::dwYUVBitCount; } inline void PixelFormat::yuvBitCount(DWORD yuvBitCount) { DDPIXELFORMAT::dwYUVBitCount=yuvBitCount; } inline DWORD PixelFormat::zBufferBitDepth(void)const { return DDPIXELFORMAT::dwZBufferBitDepth; } inline void PixelFormat::zBufferBitDepth(DWORD zBufferBitDepth) { DDPIXELFORMAT::dwZBufferBitDepth=zBufferBitDepth; } inline DWORD PixelFormat::alphaBitDepth(void)const { return DDPIXELFORMAT::dwAlphaBitDepth; } inline void PixelFormat::alphaBitDepth(DWORD alphaBitDepth) { DDPIXELFORMAT::dwAlphaBitDepth=alphaBitDepth; } inline DWORD PixelFormat::luminanceBitCount(void)const { return DDPIXELFORMAT::dwLuminanceBitCount; } inline void PixelFormat::luminanceBitCount(DWORD luminanceBitCount) { DDPIXELFORMAT::dwLuminanceBitCount=luminanceBitCount; } inline DWORD PixelFormat::bumpBitCount(void)const { return DDPIXELFORMAT::dwBumpBitCount; } inline void PixelFormat::bumpBitCount(DWORD bumpBitCount) { DDPIXELFORMAT::dwBumpBitCount=bumpBitCount; } inline DWORD PixelFormat::rBitMask(void)const { return DDPIXELFORMAT::dwRBitMask; } inline void PixelFormat::rBitMask(DWORD rBitMask) { DDPIXELFORMAT::dwRBitMask=rBitMask; } inline DWORD PixelFormat::yBitMask(void)const { return DDPIXELFORMAT::dwYBitMask; } inline void PixelFormat::yBitMask(DWORD yBitMask) { DDPIXELFORMAT::dwYBitMask=yBitMask; } inline DWORD PixelFormat::gBitMask(void)const { return DDPIXELFORMAT::dwGBitMask; } inline void PixelFormat::gBitMask(DWORD gBitMask) { DDPIXELFORMAT::dwGBitMask=gBitMask; } inline DWORD PixelFormat::uBitMask(void)const { return DDPIXELFORMAT::dwUBitMask; } inline void PixelFormat::uBitMask(DWORD uBitMask) { DDPIXELFORMAT::dwUBitMask=uBitMask; } inline DWORD PixelFormat::zBitMask(void)const { return DDPIXELFORMAT::dwZBitMask; } inline void PixelFormat::zBitMask(DWORD zBitMask) { DDPIXELFORMAT::dwZBitMask=zBitMask; } inline DWORD PixelFormat::bBitMask(void)const { return DDPIXELFORMAT::dwBBitMask; } inline void PixelFormat::bBitMask(DWORD bBitMask) { DDPIXELFORMAT::dwBBitMask=bBitMask; } inline DWORD PixelFormat::vBitMask(void)const { return DDPIXELFORMAT::dwVBitMask; } inline void PixelFormat::vBitMask(DWORD vBitMask) { DDPIXELFORMAT::dwVBitMask=vBitMask; } inline DWORD PixelFormat::stencilBitDepth(void)const { return DDPIXELFORMAT::dwStencilBitDepth; } inline void PixelFormat::stencilBitDepth(DWORD stencilBitDepth) { DDPIXELFORMAT::dwStencilBitDepth=stencilBitDepth; } inline DWORD PixelFormat::luminanceBitMask(void)const { return DDPIXELFORMAT::dwLuminanceBitMask; } inline void PixelFormat::luminanceBitMask(DWORD luminanceBitMask) { DDPIXELFORMAT::dwLuminanceBitMask=luminanceBitMask; } inline DWORD PixelFormat::bumpDuBitMask(void)const { return DDPIXELFORMAT::dwBumpDuBitMask; } inline void PixelFormat::bumpDuBitMask(DWORD bumpDuBitMask) { DDPIXELFORMAT::dwBumpDuBitMask=bumpDuBitMask; } inline DWORD PixelFormat::bumpDvBitMask(void)const { return DDPIXELFORMAT::dwBumpDvBitMask; } inline void PixelFormat::bumpDvBitMask(DWORD bumpDvBitMask) { DDPIXELFORMAT::dwBumpDvBitMask; } inline DWORD PixelFormat::stencilBitMask(void)const { return DDPIXELFORMAT::dwStencilBitMask; } inline void PixelFormat::stencilBitMask(DWORD stencilBitMask) { DDPIXELFORMAT::dwStencilBitMask=stencilBitMask; } inline DWORD PixelFormat::bumpLuminanceBitMask(void)const { return DDPIXELFORMAT::dwBumpLuminanceBitMask; } inline void PixelFormat::bumpLuminanceBitMask(DWORD bumpLuminanceBitMask) { DDPIXELFORMAT::dwBumpLuminanceBitMask=bumpLuminanceBitMask; } inline DWORD PixelFormat::rgbAlphaBitMask(void)const { return DDPIXELFORMAT::dwRGBAlphaBitMask; } inline void PixelFormat::rgbAlphaBitMask(DWORD rgbAlphaBitMask) { DDPIXELFORMAT::dwRGBAlphaBitMask=rgbAlphaBitMask; } inline DWORD PixelFormat::yuvAlphaBitMask(void)const { return DDPIXELFORMAT::dwYUVAlphaBitMask; } inline void PixelFormat::yuvAlphaBitMask(DWORD yuvAlphaBitMask) { DDPIXELFORMAT::dwYUVAlphaBitMask=yuvAlphaBitMask; } inline DWORD PixelFormat::luminanceAlphaBitMask(void)const { return DDPIXELFORMAT::dwLuminanceAlphaBitMask; } inline void PixelFormat::luminanceAlphaBitMask(DWORD luminanceAlphaBitMask) { DDPIXELFORMAT::dwLuminanceAlphaBitMask=luminanceAlphaBitMask; } inline DWORD PixelFormat::rgbZBitMask(void)const { return DDPIXELFORMAT::dwRGBZBitMask; } inline void PixelFormat::rgbZBitMask(DWORD rgbZBitMask) { DDPIXELFORMAT::dwRGBZBitMask=rgbZBitMask; } inline DWORD PixelFormat::yuvZBitMask(void)const { return DDPIXELFORMAT::dwYUVZBitMask; } inline void PixelFormat::yuvZBitMask(DWORD yuvZBitMask) { DDPIXELFORMAT::dwYUVZBitMask=yuvZBitMask=yuvZBitMask; } inline DDPIXELFORMAT &PixelFormat::getDDPIXELFORMAT(void) { return (DDPIXELFORMAT&)*this; } inline void PixelFormat::zeroInit(void) { DDPIXELFORMAT::dwSize=sizeof(DDPIXELFORMAT); DDPIXELFORMAT::dwFlags=0; DDPIXELFORMAT::dwFourCC=0; DDPIXELFORMAT::dwRGBBitCount=0; DDPIXELFORMAT::dwRBitMask=0; DDPIXELFORMAT::dwGBitMask=0; DDPIXELFORMAT::dwBBitMask=0; DDPIXELFORMAT::dwRGBAlphaBitMask=0; } #endif