From 9a98c85217904263e255404bc12d547674ce1176 Mon Sep 17 00:00:00 2001 From: Dan Rosser Date: Thu, 6 Mar 2025 22:47:13 +1100 Subject: [PATCH 1/2] ofVboMesh - Add RemoveVertex/RemoveColor. Fix Updating Indices / Colors if changes --- libs/openFrameworks/gl/ofVboMesh.cpp | 47 +++++++++++++++++++++++++--- libs/openFrameworks/gl/ofVboMesh.h | 30 +++++++++++------- 2 files changed, 61 insertions(+), 16 deletions(-) diff --git a/libs/openFrameworks/gl/ofVboMesh.cpp b/libs/openFrameworks/gl/ofVboMesh.cpp index 13affc16396..96d15abf5ae 100644 --- a/libs/openFrameworks/gl/ofVboMesh.cpp +++ b/libs/openFrameworks/gl/ofVboMesh.cpp @@ -12,6 +12,7 @@ ofVboMesh::ofVboMesh(){ vboNumColors = 0; vboNumTexCoords = 0; vboNumNormals = 0; + updateSet = false; } ofVboMesh::ofVboMesh(const ofMesh & mom) @@ -23,6 +24,7 @@ ofVboMesh::ofVboMesh(const ofMesh & mom) vboNumColors = 0; vboNumTexCoords = 0; vboNumNormals = 0; + updateSet = false; } void ofVboMesh::operator=(const ofMesh & mom) @@ -47,34 +49,42 @@ void ofVboMesh::setUsage(int _usage){ void ofVboMesh::enableColors(){ vbo.enableColors(); + ofMesh::enableColors(); } void ofVboMesh::enableTextures(){ vbo.enableTexCoords(); + ofMesh::enableTextures(); } void ofVboMesh::enableNormals(){ vbo.enableNormals(); + ofMesh::enableNormals(); } void ofVboMesh::enableIndices(){ vbo.enableIndices(); + ofMesh::enableIndices(); } void ofVboMesh::disableColors(){ vbo.disableColors(); + ofMesh::disableColors(); } void ofVboMesh::disableTextures(){ vbo.disableTexCoords(); + ofMesh::disableTextures(); } void ofVboMesh::disableNormals(){ vbo.disableNormals(); + ofMesh::disableNormals(); } void ofVboMesh::disableIndices(){ vbo.disableIndices(); + ofMesh::disableIndices(); } bool ofVboMesh::usingColors() const { @@ -156,7 +166,7 @@ void ofVboMesh::updateVbo(){ if(getNumVertices()==0){ vbo.clearVertices(); vboNumVerts = getNumVertices(); - }else if(vboNumVerts Date: Sat, 8 Mar 2025 14:43:46 +1100 Subject: [PATCH 2/2] ofVboMesh updateSet to false in header --- libs/openFrameworks/gl/ofVboMesh.cpp | 1 - libs/openFrameworks/gl/ofVboMesh.h | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/libs/openFrameworks/gl/ofVboMesh.cpp b/libs/openFrameworks/gl/ofVboMesh.cpp index 96d15abf5ae..c55083ce480 100644 --- a/libs/openFrameworks/gl/ofVboMesh.cpp +++ b/libs/openFrameworks/gl/ofVboMesh.cpp @@ -24,7 +24,6 @@ ofVboMesh::ofVboMesh(const ofMesh & mom) vboNumColors = 0; vboNumTexCoords = 0; vboNumNormals = 0; - updateSet = false; } void ofVboMesh::operator=(const ofMesh & mom) diff --git a/libs/openFrameworks/gl/ofVboMesh.h b/libs/openFrameworks/gl/ofVboMesh.h index 60f9b663780..3761d072c7e 100644 --- a/libs/openFrameworks/gl/ofVboMesh.h +++ b/libs/openFrameworks/gl/ofVboMesh.h @@ -51,5 +51,5 @@ class ofVboMesh: public ofMesh{ std::size_t vboNumNormals; std::size_t vboNumTexCoords; std::size_t vboNumColors; - bool updateSet; + bool updateSet = false; };