Skip to content

Commit bac21a2

Browse files
committed
[render] triangle texture indices using IndexBuffer class
1 parent 053f281 commit bac21a2

File tree

1 file changed

+8
-16
lines changed

1 file changed

+8
-16
lines changed

vclib/render/include/vclib/bgfx/drawable/mesh/mesh_render_buffers.h

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class MeshRenderBuffers : public vcl::MeshRenderData<MeshType>
4747
IndexBuffer mTriangleNormalBuffer;
4848
IndexBuffer mTriangleColorBuffer;
4949

50-
bgfx::IndexBufferHandle mTriangleTextureIndexBH = BGFX_INVALID_HANDLE;
50+
IndexBuffer mTriangleTextureIndexBuffer;
5151

5252
bgfx::IndexBufferHandle mEdgeIndexBH = BGFX_INVALID_HANDLE;
5353
bgfx::IndexBufferHandle mEdgeNormalBH = BGFX_INVALID_HANDLE;
@@ -94,7 +94,7 @@ class MeshRenderBuffers : public vcl::MeshRenderData<MeshType>
9494
swap(mTriangleIndexBuffer, other.mTriangleIndexBuffer);
9595
swap(mTriangleNormalBuffer, other.mTriangleNormalBuffer);
9696
swap(mTriangleColorBuffer, other.mTriangleColorBuffer);
97-
swap(mTriangleTextureIndexBH, other.mTriangleTextureIndexBH);
97+
swap(mTriangleTextureIndexBuffer, other.mTriangleTextureIndexBuffer);
9898
swap(mEdgeIndexBH, other.mEdgeIndexBH);
9999
swap(mEdgeNormalBH, other.mEdgeNormalBH);
100100
swap(mEdgeColorBH, other.mEdgeColorBH);
@@ -138,12 +138,8 @@ class MeshRenderBuffers : public vcl::MeshRenderData<MeshType>
138138
mTriangleColorBuffer.bind(
139139
VCL_MRB_PRIMITIVE_COLOR_BUFFER);
140140

141-
if (bgfx::isValid(mTriangleTextureIndexBH)) { // tri texture indices
142-
bgfx::setBuffer(
143-
VCL_MRB_TRIANGLE_TEXTURE_ID_BUFFER,
144-
mTriangleTextureIndexBH,
145-
bgfx::Access::Read);
146-
}
141+
mTriangleTextureIndexBuffer.bind(
142+
VCL_MRB_TRIANGLE_TEXTURE_ID_BUFFER);
147143
}
148144
else if (indexBufferToBind == Base::EDGES) {
149145
bgfx::setIndexBuffer(mEdgeIndexBH);
@@ -254,11 +250,10 @@ class MeshRenderBuffers : public vcl::MeshRenderData<MeshType>
254250
if (Base::wedgeTexCoordsBufferData()) {
255251
assert(Base::wedgeTextureIDsBufferData());
256252

257-
mTriangleTextureIndexBH = bgfx::createIndexBuffer(
258-
bgfx::makeRef(
259-
Base::wedgeTextureIDsBufferData(),
260-
Base::triangleNumber() * sizeof(uint32_t)),
261-
BGFX_BUFFER_INDEX32 | BGFX_BUFFER_COMPUTE_READ);
253+
mTriangleTextureIndexBuffer.setForCompute(
254+
Base::wedgeTextureIDsBufferData(),
255+
Base::triangleNumber(),
256+
PrimitiveType::UINT);
262257
}
263258

264259
// edge index buffer
@@ -328,9 +323,6 @@ class MeshRenderBuffers : public vcl::MeshRenderData<MeshType>
328323

329324
void destroyBGFXBuffers()
330325
{
331-
if (bgfx::isValid(mTriangleTextureIndexBH))
332-
bgfx::destroy(mTriangleTextureIndexBH);
333-
334326
if (bgfx::isValid(mEdgeIndexBH))
335327
bgfx::destroy(mEdgeIndexBH);
336328

0 commit comments

Comments
 (0)