#ifndef _pixelformat_h_ #define _pixelformat_h_ ////////////////////////////////////////////////////////////////////////////// // // Pixel Formats // ////////////////////////////////////////////////////////////////////////////// class PixelFormat : public IObject { private: DDPIXELFORMAT m_ddpf; bool m_bSoftwareTexture; void SetSoftwareTexture() { m_bSoftwareTexture = true; } PixelFormat(const DDPIXELFORMAT& ddpf) : m_ddpf(ddpf), m_bSoftwareTexture(false) { } friend class EngineImpl; public: PixelFormat( int bits, DWORD redMask, DWORD greenMask, DWORD blueMask, DWORD alphaMask ); const DDPIXELFORMAT& GetDDPF() { return m_ddpf; } void SetPixelBits(DWORD value) { m_ddpf.dwRGBBitCount = value; } bool IsSoftwareTexture() { return m_bSoftwareTexture; } DWORD PixelBits() const { return m_ddpf.dwRGBBitCount; } DWORD PixelBytes() const { return m_ddpf.dwRGBBitCount / 8; } DWORD RedMask() const { return m_ddpf.dwRBitMask; } DWORD GreenMask() const { return m_ddpf.dwGBitMask; } DWORD BlueMask() const { return m_ddpf.dwBBitMask; } DWORD AlphaMask() const { return m_ddpf.dwRGBAlphaBitMask; } DWORD RedSize() const; DWORD GreenSize() const; DWORD BlueSize() const; DWORD AlphaSize() const; DWORD RedShift() const; DWORD GreenShift() const; DWORD BlueShift() const; DWORD AlphaShift() const; Pixel MakePixel(DWORD red, DWORD green, DWORD blue) const; Pixel MakePixel(const Color& color) const; Color MakeColor(Pixel pixel) const; void SetPixel(BYTE* pb, Pixel pixel) const; Pixel GetPixel(const BYTE* pb) const; void SetColor(BYTE* pb, const Color& color) const; Color GetColor(const BYTE* pb) const; bool ValidGDIFormat() const; bool Equivalent(const DDPIXELFORMAT& ddpf); }; #endif