Platform_Win32_3D_D3D9_VertexBuffer.h
Go to the documentation of this file.00001 00011 #ifndef __Platform_Win32_3D_D3D9_VertexBuffer_H__ 00012 #define __Platform_Win32_3D_D3D9_VertexBuffer_H__ 00013 00014 // Includes 00015 #include "Platform_3D_VertexBuffer.h" 00016 00017 // Forward declares 00018 struct IDirect3DVertexBuffer9; 00019 struct IDirect3DDevice9; 00020 00021 // Platform_Win32_3D_D3D9_VertexBuffer 00022 class Platform_Win32_3D_D3D9_VertexBuffer: public Platform_3D_VertexBuffer 00023 { 00024 public: 00025 Platform_Win32_3D_D3D9_VertexBuffer( 00026 IDirect3DDevice9* device, 00027 int vertexFormat, 00028 int vertexCount, 00029 bool dynamic 00030 ); 00031 00032 virtual ~Platform_Win32_3D_D3D9_VertexBuffer(); 00033 00034 virtual void Lock(int startVertex = 0, int vertexCount = 0); 00035 00036 virtual void Unlock(); 00037 00038 virtual float* GetPositionData(); 00039 00040 virtual int GetPositionStride(); 00041 00042 virtual float* GetScreenPositionData(); 00043 00044 virtual int GetScreenPositionStride(); 00045 00046 virtual float* GetNormalData(); 00047 00048 virtual int GetNormalStride(); 00049 00050 virtual unsigned int* GetDiffuseData(); 00051 00052 virtual int GetDiffuseStride(); 00053 00054 virtual unsigned int* GetSpecularData(); 00055 00056 virtual int GetSpecularStride(); 00057 00058 virtual float* GetUVData(int textureSet); 00059 00060 virtual int GetUVStride(int textureSet); 00061 00062 virtual void Bind(); 00063 00064 private: 00065 bool ValidateVertexFormat( 00066 int vertexFormat 00067 ); 00068 00069 unsigned long CalculateFVF( 00070 int vertexFormat 00071 ); 00072 00073 int CalculateSize( 00074 int vertexFormat 00075 ); 00076 00077 int GetNumberOfTextureSets( 00078 int vertexFormat 00079 ); 00080 00081 private: 00082 int vertexFormat_; 00083 int vertexSize_; 00084 int vertexCount_; 00085 bool dynamic_; 00086 IDirect3DDevice9* device_; 00087 unsigned long d3dFVF_; 00088 IDirect3DVertexBuffer9* d3dVertexBuffer_; 00089 unsigned char* lockedData_; 00090 }; 00091 00092 #endif /* __Platform_Win32_3D_D3D9_VertexBuffer_H__ */
Reproduction/republishing of any material on this site without permission is strictly prohibited.
