client/EterLib/GrpVertexBuffer.h

51 lines
1.1 KiB
C++

#pragma once
#include "GrpBase.h"
class CGraphicVertexBuffer : public CGraphicBase
{
public:
CGraphicVertexBuffer();
virtual ~CGraphicVertexBuffer();
void Destroy();
virtual bool Create(int vtxCount, DWORD fvf, DWORD usage, D3DPOOL d3dPool);
bool CreateDeviceObjects();
void DestroyDeviceObjects();
bool Copy(int bufSize, const void* srcVertices);
bool LockRange(unsigned count, void** pretVertices) const;
bool Lock(void** pretVertices) const;
bool Unlock() const;
bool LockDynamic(void** pretVertices);
virtual bool Lock(void** pretVertices);
bool Unlock();
void SetStream(int stride, int layer=0) const;
int GetVertexCount() const;
int GetVertexStride() const;
DWORD GetFlexibleVertexFormat() const;
inline LPDIRECT3DVERTEXBUFFER8 GetD3DVertexBuffer() const { return m_lpd3dVB; }
inline DWORD GetBufferSize() const { return m_dwBufferSize; }
bool IsEmpty() const;
protected:
void Initialize();
protected:
LPDIRECT3DVERTEXBUFFER8 m_lpd3dVB;
DWORD m_dwBufferSize;
DWORD m_dwFVF;
DWORD m_dwUsage;
D3DPOOL m_d3dPool;
int m_vtxCount;
DWORD m_dwLockFlag;
};