diff gldragon.cpp @ 48:0ae1ff609626

Implement diffuse setting for models in scenefile. Also refactor parsing/handling of ambient/diffuse/specular values and unify it for both models and lights.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 06 Dec 2019 01:12:23 +0200
parents 9909014498f0
children 2e2c3fe311da
line wrap: on
line diff
--- a/gldragon.cpp	Thu Dec 05 23:52:45 2019 +0200
+++ b/gldragon.cpp	Fri Dec 06 01:12:23 2019 +0200
@@ -247,9 +247,9 @@
     // Set the material of the model
     glEnable(GL_COLOR_MATERIAL);
     glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
-    glMateriali(GL_FRONT, GL_SHININESS, model.shininess);
-    glMaterialfv(GL_FRONT, GL_SPECULAR, model.specular.values);
-    glColor4fv(model.diffuse.values);
+    glMateriali(GL_FRONT, GL_SHININESS, model.material.shininess);
+    glMaterialfv(GL_FRONT, GL_SPECULAR, model.material.specular.values);
+    glColor4fv(model.material.diffuse.values);
 
     // Render the model
     glGetIntegerv(GL_MAX_ELEMENTS_INDICES, &maxIndices);
@@ -380,9 +380,9 @@
 void dmSetupLight(const int n, const DMLight &light)
 {
     glEnable(GL_LIGHT0 + n);
-    glLightfv(GL_LIGHT0 + n, GL_AMBIENT, light.ambient.values);
-    glLightfv(GL_LIGHT0 + n, GL_DIFFUSE, light.diffuse.values);
-    glLightfv(GL_LIGHT0 + n, GL_SPECULAR, light.specular.values);
+    glLightfv(GL_LIGHT0 + n, GL_AMBIENT, light.color.ambient.values);
+    glLightfv(GL_LIGHT0 + n, GL_DIFFUSE, light.color.diffuse.values);
+    glLightfv(GL_LIGHT0 + n, GL_SPECULAR, light.color.specular.values);
     glLightfv(GL_LIGHT0 + n, GL_POSITION, light.position.values);
 }