Fix compilation error
This commit is contained in:
+120
-2
@@ -211,7 +211,7 @@ compile_shader(const char *vertex_file,
|
|||||||
}
|
}
|
||||||
|
|
||||||
unsigned int vertex_shader = glCreateShader(GL_VERTEX_SHADER);
|
unsigned int vertex_shader = glCreateShader(GL_VERTEX_SHADER);
|
||||||
glShaderSource(vertex_shader, 1, &vertex_str, NULL);
|
glShaderSource(vertex_shader, 1, (const GLchar * const *) &vertex_str, NULL);
|
||||||
glCompileShader(vertex_shader);
|
glCompileShader(vertex_shader);
|
||||||
|
|
||||||
glGetShaderiv(vertex_shader, GL_COMPILE_STATUS, &success);
|
glGetShaderiv(vertex_shader, GL_COMPILE_STATUS, &success);
|
||||||
@@ -224,7 +224,7 @@ compile_shader(const char *vertex_file,
|
|||||||
}
|
}
|
||||||
|
|
||||||
unsigned int fragment_shader = glCreateShader(GL_FRAGMENT_SHADER);
|
unsigned int fragment_shader = glCreateShader(GL_FRAGMENT_SHADER);
|
||||||
glShaderSource(fragment_shader, 1, &fragment_str, NULL);
|
glShaderSource(fragment_shader, 1, (const GLchar * const *) &fragment_str, NULL);
|
||||||
glCompileShader(fragment_shader);
|
glCompileShader(fragment_shader);
|
||||||
|
|
||||||
glGetShaderiv(fragment_shader, GL_COMPILE_STATUS, &success);
|
glGetShaderiv(fragment_shader, GL_COMPILE_STATUS, &success);
|
||||||
@@ -1292,3 +1292,121 @@ int main(int argc, char **argv)
|
|||||||
glfwTerminate();
|
glfwTerminate();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
typedef struct {
|
||||||
|
Object objects[MAX_OBJECTS];
|
||||||
|
int num_objects;
|
||||||
|
} Scene;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
PROP_ROUGHNESS,
|
||||||
|
} Property;
|
||||||
|
|
||||||
|
bool parse_scene_string(char *src, size_t len)
|
||||||
|
{
|
||||||
|
size_t i = 0;
|
||||||
|
for (;;) {
|
||||||
|
while (i < len && is_space(src[i]))
|
||||||
|
i++;
|
||||||
|
|
||||||
|
if (i == len)
|
||||||
|
break;
|
||||||
|
|
||||||
|
Object object;
|
||||||
|
|
||||||
|
if (5 < len - i
|
||||||
|
&& src[i+0] == 's'
|
||||||
|
&& src[i+1] == 'p'
|
||||||
|
&& src[i+2] == 'h'
|
||||||
|
&& src[i+3] == 'e'
|
||||||
|
&& src[i+4] == 'r'
|
||||||
|
&& src[i+5] == 'e') {
|
||||||
|
object.type = OBJECT_SPHERE;
|
||||||
|
object.sphere.center = (Vector3) {0, 0, 0};
|
||||||
|
object.sphere.radius = 1;
|
||||||
|
object.material.albedo = (Vector3) {0.44, 0.68, 0.84};
|
||||||
|
object.material.roughness = 0;
|
||||||
|
object.material.reflectance = 0.2;
|
||||||
|
object.material.metallic = 0;
|
||||||
|
object.material.emission_power = 0;
|
||||||
|
object.material.emission_color = (Vector3) {1, 1, 1};
|
||||||
|
i += 6;
|
||||||
|
} else if (3 < len - i
|
||||||
|
&& src[i+0] == 'c'
|
||||||
|
&& src[i+1] == 'u'
|
||||||
|
&& src[i+2] == 'b'
|
||||||
|
&& src[i+3] == 'e') {
|
||||||
|
object.type = OBJECT_CUBE;
|
||||||
|
object.cube.origin = (Vector3) {0, 0, 0};
|
||||||
|
object.cube.size = (Vector3) {1, 1, 1};
|
||||||
|
object.material.albedo = (Vector3) {0.44, 0.68, 0.84};
|
||||||
|
object.material.roughness = 0;
|
||||||
|
object.material.reflectance = 0.2;
|
||||||
|
object.material.metallic = 0;
|
||||||
|
object.material.emission_power = 0;
|
||||||
|
object.material.emission_color = (Vector3) {1, 1, 1};
|
||||||
|
i += 4;
|
||||||
|
} else {
|
||||||
|
fprintf(stderr, "Error: Invalid character\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
// Skip spaces before property
|
||||||
|
while (i < len && is_space(src[i]))
|
||||||
|
i++;
|
||||||
|
|
||||||
|
Property prop;
|
||||||
|
if (8 < len - i
|
||||||
|
&& src[i+0] == 'r'
|
||||||
|
&& src[i+1] == 'o'
|
||||||
|
&& src[i+2] == 'u'
|
||||||
|
&& src[i+3] == 'g'
|
||||||
|
&& src[i+4] == 'h'
|
||||||
|
&& src[i+5] == 'n'
|
||||||
|
&& src[i+6] == 'e'
|
||||||
|
&& src[i+7] == 's'
|
||||||
|
&& src[i+8] == 's') {
|
||||||
|
prop = PROP_ROUGHNESS;
|
||||||
|
i += 9;
|
||||||
|
} else if (10 < len - i
|
||||||
|
&& src[i+0] == 'r'
|
||||||
|
&& src[i+1] == 'e'
|
||||||
|
&& src[i+2] == 'f'
|
||||||
|
&& src[i+3] == 'l'
|
||||||
|
&& src[i+4] == 'e'
|
||||||
|
&& src[i+5] == 'c'
|
||||||
|
&& src[i+6] == 't'
|
||||||
|
&& src[i+7] == 'a'
|
||||||
|
&& src[i+8] == 'n'
|
||||||
|
&& src[i+9] == 'c'
|
||||||
|
&& src[i+10] == 'e') {
|
||||||
|
prop = PROP_REFLECTANCE;
|
||||||
|
i += 11;
|
||||||
|
} else if (13 < len - i
|
||||||
|
&& src[i+0] == 'e'
|
||||||
|
&& src[i+1] == 'm'
|
||||||
|
&& src[i+2] == 'i'
|
||||||
|
&& src[i+3] == 's'
|
||||||
|
&& src[i+4] == 's'
|
||||||
|
&& src[i+5] == 'i'
|
||||||
|
&& src[i+6] == 'o'
|
||||||
|
&& src[i+7] == 'n'
|
||||||
|
&& src[i+8] == '_'
|
||||||
|
&& src[i+9] == 'p'
|
||||||
|
&& src[i+10] == 'o'
|
||||||
|
&& src[i+11] == 'w'
|
||||||
|
&& src[i+12] == 'e'
|
||||||
|
&& src[i+13] == 'r') {
|
||||||
|
prop = PROP_EMISSION_POWER;
|
||||||
|
i += 14;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
size_t start = i;
|
||||||
|
while ()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
Reference in New Issue
Block a user