Changeset 1443
- Timestamp:
- Jun 7, 2012, 4:14:56 PM (11 years ago)
- Location:
- trunk/src/gpu
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gpu/indexbuffer.cpp
r1324 r1443 42 42 friend class IndexBuffer; 43 43 44 size_t m_size; 45 44 46 #if defined USE_D3D9 45 47 IDirect3DIndexBuffer9 *m_ibo; … … 49 51 GLuint m_ibo; 50 52 uint8_t *m_memory; 51 size_t m_size;52 53 #endif 53 54 }; … … 61 62 : m_data(new IndexBufferData) 62 63 { 64 m_data->m_size = size; 65 if (!size) 66 return; 63 67 #if defined USE_D3D9 || defined _XBOX 64 68 if (FAILED(g_d3ddevice->CreateIndexBuffer(size, D3DUSAGE_WRITEONLY, … … 69 73 glGenBuffers(1, &m_data->m_ibo); 70 74 m_data->m_memory = new uint8_t[size]; 71 m_data->m_size = size;72 75 #endif 73 76 } … … 75 78 IndexBuffer::~IndexBuffer() 76 79 { 80 if (m_data->m_size) 81 { 77 82 #if defined USE_D3D9 || defined _XBOX 78 if (FAILED(m_data->m_ibo->Release()))79 Abort();83 if (FAILED(m_data->m_ibo->Release())) 84 Abort(); 80 85 #elif !defined __CELLOS_LV2__ && !defined __ANDROID__ 81 glDeleteBuffers(1, &m_data->m_ibo);82 delete[] m_data->m_memory;86 glDeleteBuffers(1, &m_data->m_ibo); 87 delete[] m_data->m_memory; 83 88 #endif 89 } 84 90 delete m_data; 85 91 } … … 87 93 void *IndexBuffer::Lock(size_t offset, size_t size) 88 94 { 95 if (!m_data->m_size) 96 return NULL; 97 89 98 #if defined USE_D3D9 || defined _XBOX 90 99 void *ret; … … 99 108 void IndexBuffer::Unlock() 100 109 { 110 if (!m_data->m_size) 111 return; 112 101 113 #if defined USE_D3D9 || defined _XBOX 102 114 if (FAILED(m_data->m_ibo->Unlock())) … … 111 123 void IndexBuffer::Bind() 112 124 { 125 if (!m_data->m_size) 126 return; 127 113 128 #if defined USE_D3D9 || defined _XBOX 114 129 if (FAILED(g_d3ddevice->SetIndices(m_data->m_ibo))) … … 124 139 void IndexBuffer::Unbind() 125 140 { 141 if (!m_data->m_size) 142 return; 143 126 144 #if defined USE_D3D9 || defined _XBOX 127 145 if (FAILED(g_d3ddevice->SetIndices(NULL))) -
trunk/src/gpu/vertexbuffer.cpp
r1401 r1443 43 43 friend class VertexDeclaration; 44 44 45 size_t m_size; 46 45 47 #if defined USE_D3D9 46 48 IDirect3DVertexBuffer9 *m_vbo; … … 50 52 GLuint m_vbo; 51 53 uint8_t *m_memory; 52 size_t m_size;53 54 #endif 54 55 }; … … 123 124 void VertexDeclaration::DrawElements(MeshPrimitive type, int skip, int count) 124 125 { 126 if (count <= 0) 127 return; 128 125 129 #if defined _XBOX || defined USE_D3D9 126 130 g_d3ddevice->SetRenderState(D3DRS_ALPHABLENDENABLE, 1); … … 159 163 int skip, int count) 160 164 { 165 if (count <= 0) 166 return; 167 161 168 #if defined _XBOX || defined USE_D3D9 162 169 g_d3ddevice->SetRenderState(D3DRS_ALPHABLENDENABLE, 1); … … 227 234 ShaderAttrib attr12) 228 235 { 236 if (!vb->m_data->m_size) 237 return; 238 229 239 #if defined _XBOX || defined USE_D3D9 230 240 /* Only the first item is required to know which stream this … … 470 480 : m_data(new VertexBufferData) 471 481 { 482 m_data->m_size = size; 483 if (!size) 484 return; 472 485 #if defined USE_D3D9 || defined _XBOX 473 486 if (FAILED(g_d3ddevice->CreateVertexBuffer(size, D3DUSAGE_WRITEONLY, NULL, … … 477 490 glGenBuffers(1, &m_data->m_vbo); 478 491 m_data->m_memory = new uint8_t[size]; 479 m_data->m_size = size;480 492 #endif 481 493 } … … 483 495 VertexBuffer::~VertexBuffer() 484 496 { 497 if (m_data->m_size) 498 { 485 499 #if defined USE_D3D9 || defined _XBOX 486 if (FAILED(m_data->m_vbo->Release()))487 Abort();500 if (FAILED(m_data->m_vbo->Release())) 501 Abort(); 488 502 #elif !defined __CELLOS_LV2__ 489 glDeleteBuffers(1, &m_data->m_vbo); 490 delete[] m_data->m_memory; 491 #endif 503 glDeleteBuffers(1, &m_data->m_vbo); 504 delete[] m_data->m_memory; 505 #endif 506 } 492 507 delete m_data; 493 508 } … … 495 510 void *VertexBuffer::Lock(size_t offset, size_t size) 496 511 { 512 if (!m_data->m_size) 513 return NULL; 497 514 #if defined USE_D3D9 || defined _XBOX 498 515 void *ret; … … 507 524 void VertexBuffer::Unlock() 508 525 { 526 if (!m_data->m_size) 527 return; 509 528 #if defined USE_D3D9 || defined _XBOX 510 529 if (FAILED(m_data->m_vbo->Unlock()))
Note: See TracChangeset
for help on using the changeset viewer.