Skip to content

Commit 604c31b

Browse files
committed
[render] triangle colors using IndexBuffer class
1 parent aa6613e commit 604c31b

File tree

1 file changed

+9
-19
lines changed

1 file changed

+9
-19
lines changed

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

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class MeshRenderBuffers : public vcl::MeshRenderData<MeshType>
4545

4646
IndexBuffer mTriangleIndexBuffer;
4747
IndexBuffer mTriangleNormalBuffer;
48-
bgfx::IndexBufferHandle mTriangleColorBH = BGFX_INVALID_HANDLE;
48+
IndexBuffer mTriangleColorBuffer;
4949

5050
bgfx::IndexBufferHandle mTriangleTextureIndexBH = BGFX_INVALID_HANDLE;
5151

@@ -93,7 +93,7 @@ class MeshRenderBuffers : public vcl::MeshRenderData<MeshType>
9393
swap(mVertexWedgeUVBuffer, other.mVertexWedgeUVBuffer);
9494
swap(mTriangleIndexBuffer, other.mTriangleIndexBuffer);
9595
swap(mTriangleNormalBuffer, other.mTriangleNormalBuffer);
96-
swap(mTriangleColorBH, other.mTriangleColorBH);
96+
swap(mTriangleColorBuffer, other.mTriangleColorBuffer);
9797
swap(mTriangleTextureIndexBH, other.mTriangleTextureIndexBH);
9898
swap(mEdgeIndexBH, other.mEdgeIndexBH);
9999
swap(mEdgeNormalBH, other.mEdgeNormalBH);
@@ -132,16 +132,12 @@ class MeshRenderBuffers : public vcl::MeshRenderData<MeshType>
132132
if (indexBufferToBind == Base::TRIANGLES) {
133133
mTriangleIndexBuffer.bind();
134134

135-
if (bgfx::isValid(mTriangleColorBH)) { // triangle colors
136-
bgfx::setBuffer(
137-
VCL_MRB_PRIMITIVE_COLOR_BUFFER,
138-
mTriangleColorBH,
139-
bgfx::Access::Read);
140-
}
141-
142135
mTriangleNormalBuffer.bindForCompute(
143136
VCL_MRB_PRIMITIVE_NORMAL_BUFFER);
144137

138+
mTriangleColorBuffer.bindForCompute(
139+
VCL_MRB_PRIMITIVE_COLOR_BUFFER);
140+
145141
if (bgfx::isValid(mTriangleTextureIndexBH)) { // tri texture indices
146142
bgfx::setBuffer(
147143
VCL_MRB_TRIANGLE_TEXTURE_ID_BUFFER,
@@ -235,13 +231,10 @@ class MeshRenderBuffers : public vcl::MeshRenderData<MeshType>
235231
PrimitiveType::FLOAT, BGFX_BUFFER_COMPUTE_READ);
236232

237233
// triangle color buffer
238-
if (Base::triangleColorBufferData()) {
239-
mTriangleColorBH = bgfx::createIndexBuffer(
240-
bgfx::makeRef(
241-
Base::triangleColorBufferData(),
242-
Base::triangleNumber() * sizeof(uint32_t)),
243-
BGFX_BUFFER_INDEX32 | BGFX_BUFFER_COMPUTE_READ);
244-
}
234+
mTriangleColorBuffer.set(
235+
Base::triangleColorBufferData(),
236+
Base::triangleNumber(),
237+
PrimitiveType::UINT, BGFX_BUFFER_COMPUTE_READ);
245238

246239
// triangle wedge UV buffer
247240
if (Base::wedgeTexCoordsBufferData()) {
@@ -321,9 +314,6 @@ class MeshRenderBuffers : public vcl::MeshRenderData<MeshType>
321314

322315
void destroyBGFXBuffers()
323316
{
324-
if (bgfx::isValid(mTriangleColorBH))
325-
bgfx::destroy(mTriangleColorBH);
326-
327317
if (bgfx::isValid(mTriangleTextureIndexBH))
328318
bgfx::destroy(mTriangleTextureIndexBH);
329319

0 commit comments

Comments
 (0)