470 lines
9.7 KiB
C++
470 lines
9.7 KiB
C++
#ifndef _DDRAW_PIXELFORMAT_HPP_
|
|
#define _DDRAW_PIXELFORMAT_HPP_
|
|
#ifndef _COMMON_WINDOWS_HPP_
|
|
#include <common/windows.hpp>
|
|
#endif
|
|
#ifndef _DDRAW_DDRAW_HPP_
|
|
#include <ddraw/ddraw.hpp>
|
|
#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
|