changeset 68:701bef61dcf1

Remove OpenGL fs/vs shader ids from DMModel, as they are not needed.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 16 Dec 2019 06:46:46 +0200
parents 1327ef5dc9fb
children 267b3fd2c98c
files dmglexts.h dmglrender.cpp dmscene.h
diffstat 3 files changed, 10 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/dmglexts.h	Sun Dec 15 23:16:29 2019 +0200
+++ b/dmglexts.h	Mon Dec 16 06:46:46 2019 +0200
@@ -14,6 +14,7 @@
 DM_GLEXT_INIT(PFNGLCREATESHADERPROC, glCreateShader)
 DM_GLEXT_INIT(PFNGLATTACHSHADERPROC, glAttachShader)
 DM_GLEXT_INIT(PFNGLSHADERSOURCEPROC, glShaderSource)
+DM_GLEXT_INIT(PFNGLDELETESHADERPROC, glDeleteShader)
 
 DM_GLEXT_INIT(PFNGLUNIFORM1IPROC, glUniform1i)
 DM_GLEXT_INIT(PFNGLUNIFORM1FPROC, glUniform1f)
--- a/dmglrender.cpp	Sun Dec 15 23:16:29 2019 +0200
+++ b/dmglrender.cpp	Mon Dec 16 06:46:46 2019 +0200
@@ -221,14 +221,18 @@
 {
     if (useShaders)
     {
-        if (!dmCompileShader(GL_FRAGMENT_SHADER, model.fragShaderStr, model.id_fs) ||
-            !dmCompileShader(GL_VERTEX_SHADER, model.vertShaderStr, model.id_vs))
+        GLuint id_fs, id_vs;
+
+        if (!dmCompileShader(GL_FRAGMENT_SHADER, model.fragShaderStr, id_fs) ||
+            !dmCompileShader(GL_VERTEX_SHADER, model.vertShaderStr, id_vs))
             return false;
 
         model.id_prog = glCreateProgram();
-        glAttachShader(model.id_prog, model.id_fs);
-        glAttachShader(model.id_prog, model.id_vs);
+        glAttachShader(model.id_prog, id_fs);
+        glAttachShader(model.id_prog, id_vs);
         glLinkProgram(model.id_prog);
+        glDeleteShader(id_fs);
+        glDeleteShader(id_vs);
     }
     return true;
 }
--- a/dmscene.h	Sun Dec 15 23:16:29 2019 +0200
+++ b/dmscene.h	Mon Dec 16 06:46:46 2019 +0200
@@ -152,7 +152,7 @@
     DMVector3 translate, scale, rotate;
     bool translateSet, scaleSet, rotateSet;
 
-    unsigned int id_prog, id_fs, id_vs;
+    unsigned int id_prog;
 
     std::string
         modelFile,