client/EterLib/DibBar.h

34 lines
843 B
C++

#pragma once
#include "GrpDib.h"
class CBlockTexture;
class CDibBar
{
public:
CDibBar();
virtual ~CDibBar();
bool Create(HDC hdc, DWORD dwWidth, DWORD dwHeight);
void Invalidate();
void SetClipRect(const RECT & c_rRect);
void ClearBar();
void Render(int ix, int iy);
protected:
DWORD __NearTextureSize(DWORD dwSize);
void __DivideTextureSize(DWORD dwSize, DWORD dwMax, DWORD * pdwxStep, DWORD * pdwxCount, DWORD * pdwxRest);
CBlockTexture * __BuildTextureBlock(DWORD dwxPos, DWORD dwyPos, DWORD dwImageWidth, DWORD dwImageHeight, DWORD dwTextureWidth, DWORD dwTextureHeight);
void __BuildTextureBlockList(DWORD dwWidth, DWORD dwHeight, DWORD dwMax=256);
virtual void OnCreate(){}
protected:
CGraphicDib m_dib;
std::vector<CBlockTexture *> m_kVec_pkBlockTexture;
DWORD m_dwWidth;
DWORD m_dwHeight;
};