Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Тихомиров Ю. Программирование трёхмерной графики / Files / Texture / DibGL
.h// DibGL.h: interface for the CDibGL class.
//
//////////////////////////////////////////////////////////////////////
#ifndef _INC_VFW
#pragma message ("NOTE: You can speed compilation by including <vfw.h> in stdafx.h")
#endif
class CDibGL : public CBitmap
{
protected:
DECLARE_DYNAMIC(CDibGL)
BITMAP m_bm; // stored for speed
CPalette m_pal; // palette
HDRAWDIB m_hdd; // for DrawDib
RGBQUAD* colorTab;
public:
int GetHeight() {return m_bm.bmHeight;}
int GetWidth() {return m_bm.bmWidth;}
int GetBitsPerPixel() {return m_bm.bmBitsPixel;}
void* GetBitsAddress() {return m_bm.bmBits;}
int GetWidthBytes() {return m_bm.bmWidthBytes;}
RGBQUAD* GetColorTabAddress() {return colorTab;}
CDibGL();
~CDibGL();
CSize GetSize() { return CSize(m_bm.bmWidth, m_bm.bmHeight); }
BOOL Attach(HGDIOBJ hbm);
BOOL Load(LPCTSTR szPathName);
BOOL Load(HINSTANCE hInst, LPCTSTR lpResourceName);
BOOL Load(HINSTANCE hInst, UINT uID)
{ return Load(hInst, MAKEINTRESOURCE(uID)); }
// Universal Draw function can use DrawDib or not.
BOOL Draw(CDC& dc, const CRect* rcDst=NULL, const CRect* rcSrc=NULL,
BOOL bUseDrawDib=TRUE, CPalette* pPal=NULL, BOOL bForeground=FALSE);
BOOL DeleteObject();
BOOL CreatePalette(CPalette& pal);
CPalette* GetPalette() { return &m_pal; }
UINT GetColorTable(RGBQUAD* colorTab, UINT nColors);
};