00001
00002 #ifndef __D3D8VERTEXBUFFER_H_
00003 #define __D3D8VERTEXBUFFER_H_
00004
00005
00006 #include <windows.h>
00007 #include <d3d8.h>
00008 #include <d3dx8.h>
00009
00010 #include "..\vbInterface.h"
00011
00016 struct CUSTOM_VERTEX {
00017
00018 D3DXVECTOR3 vecPos;
00019 DWORD dwColor;
00020 FLOAT u, v;
00021 };
00022
00023
00024
00025
00026 #define D3DFVF_CUSTOM_VERTEX ( D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1 )
00027
00033 class D3DVertexBuffer : public vbInterface {
00034
00035 protected:
00036
00037 UINT m_iVertexSize;
00038 UINT m_iVertexLimit;
00039 UINT m_iVerticesInBuffer;
00040 BOOL m_bIsLocked;
00041 CUSTOM_VERTEX *m_pVertices;
00042 LPDIRECT3DVERTEXBUFFER8 m_lpVB;
00044 LPDIRECT3DDEVICE8 m_lpD3DDevice;
00048 public:
00052 D3DVertexBuffer();
00053
00057 ~D3DVertexBuffer();
00058
00068 HRESULT createVB(int, VOID*);
00069
00076 void destroyVB(void);
00077
00085 HRESULT lockVB(void);
00086
00095 void unlockVB(void);
00096
00111 void addTriToVB(D3DXVECTOR3 pos,
00112 FLOAT r, FLOAT g, FLOAT b, FLOAT a);
00113
00121 void flushVB(void);
00122
00134 void addTriToVB(D3DXVECTOR3, FLOAT, FLOAT, FLOAT, FLOAT, D3DXVECTOR2);
00135
00136
00137
00138 };
00139
00140 #endif