Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_D3D9_VERTEX_BUFFER_H__
00009 #define __SP_D3D9_VERTEX_BUFFER_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013
00014 #if defined(SP_COMPILE_WITH_DIRECT3D9)
00015
00016
00017 #include "Base/spDimensionUniversalBuffer.hpp"
00018 #include "Base/spMaterialConfigTypes.hpp"
00019
00020 #include <d3d9.h>
00021
00022
00023 namespace sp
00024 {
00025 namespace video
00026 {
00027
00028
00029 #define FVF_POSITION (D3DFVF_XYZ)
00030 #define FVF_VERTEX2D (D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1)
00031 #define FVF_VERTEX_FONT (D3DFVF_XYZ | D3DFVF_TEX1)
00032
00033
00034 #define FVF_VERTEX3D \
00035 ( D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE | D3DFVF_TEX8 | \
00036 D3DFVF_TEXCOORDSIZE3(0) | D3DFVF_TEXCOORDSIZE3(1) | \
00037 D3DFVF_TEXCOORDSIZE3(2) | D3DFVF_TEXCOORDSIZE3(3) | \
00038 D3DFVF_TEXCOORDSIZE3(4) | D3DFVF_TEXCOORDSIZE3(5) | \
00039 D3DFVF_TEXCOORDSIZE3(6) | D3DFVF_TEXCOORDSIZE3(7) )
00040
00041
00042 class VertexFormat;
00043
00045 class D3D9VertexBuffer
00046 {
00047
00048 private:
00049
00050 friend class Direct3D9RenderSystem;
00051
00052
00053
00054 D3D9VertexBuffer();
00055 ~D3D9VertexBuffer();
00056
00057 void update(
00058 IDirect3DDevice9* D3DDevice, const dim::UniversalBuffer &BufferData,
00059 const VertexFormat* Format, const EHWBufferUsage Usage
00060 );
00061
00062 void update(
00063 IDirect3DDevice9* D3DDevice, const dim::UniversalBuffer &BufferData, u32 Index
00064 );
00065
00066
00067
00068 s32 FormatFlags_;
00069
00070 u32 VertexCount_;
00071 u32 BufferSize_;
00072
00073 IDirect3DVertexBuffer9* HWBuffer_;
00074
00075 };
00076
00077
00078 }
00079
00080 }
00081
00082
00083 #endif
00084
00085 #endif
00086
00087
00088
00089