Add extra checks when dispose and ensureInitialized

This commit is contained in:
Linloir 2022-12-13 10:04:25 +08:00
parent b5e5b4cfa9
commit 107f3ce87a
No known key found for this signature in database
GPG Key ID: 58EEB209A0F2C366
3 changed files with 6 additions and 1 deletions

View File

@ -72,7 +72,7 @@ void SceneViewer::initializeGL() {
}
void SceneViewer::resizeGL(int w, int h) {
glViewport(0, 0, w, h);
}
void SceneViewer::paintGL() {

View File

@ -103,6 +103,7 @@ inline void ShaderProgram::unbind() const {
}
inline void ShaderProgram::dispose() {
if (_programId == 0) return;
OPENGL_EXTRA_FUNCTIONS->glDeleteProgram(_programId);
_programId = 0;
}
@ -110,5 +111,8 @@ inline void ShaderProgram::dispose() {
inline void ShaderProgram::ensureInitialized() {
if (_programId == 0) {
_programId = OPENGL_EXTRA_FUNCTIONS->glCreateProgram();
if (_programId == 0) {
Logger::error("Failed to create a ShaderProgram");
}
}
}

View File

@ -52,6 +52,7 @@ inline void VertexArrayObject::unbind() const {
}
inline void VertexArrayObject::dispose() {
if (_id == 0) return;
OPENGL_EXTRA_FUNCTIONS->glDeleteVertexArrays(1, &_id);
_id = 0;
}