]> git.sesse.net Git - movit/blobdiff - util.cpp
Send shader compile log to stderr instead of stdout.
[movit] / util.cpp
index eeea198a4a074fa357311356d3157e7d00f15d36..3b15c3787d7e82644d6c5633d9ea05387e0efb88 100644 (file)
--- a/util.cpp
+++ b/util.cpp
@@ -1,11 +1,17 @@
+#include <GL/glew.h>
+#include <assert.h>
+#include <math.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
-#include <assert.h>
+#include <Eigen/Core>
 
-#include <math.h>
-#include "util.h"
-#include "opengl.h"
 #include "init.h"
+#include "util.h"
+
+using namespace std;
+
+extern string *movit_data_directory;
 
 void hsv2rgb(float h, float s, float v, float *r, float *g, float *b)
 {
@@ -63,22 +69,24 @@ void hsv2rgb_normalized(float h, float s, float v, float *r, float *g, float *b)
        }
 }
 
-std::string read_file(const std::string &filename)
+string read_file(const string &filename)
 {
+       const string full_pathname = *movit_data_directory + "/" + filename;
+
        static char buf[131072];
-       FILE *fp = fopen(filename.c_str(), "r");
+       FILE *fp = fopen(full_pathname.c_str(), "r");
        if (fp == NULL) {
-               perror(filename.c_str());
+               perror(full_pathname.c_str());
                exit(1);
        }
 
        int len = fread(buf, 1, sizeof(buf), fp);
        fclose(fp);
 
-       return std::string(buf, len);
+       return string(buf, len);
 }
 
-GLuint compile_shader(const std::string &shader_src, GLenum type)
+GLuint compile_shader(const string &shader_src, GLenum type)
 {
        GLuint obj = glCreateShader(type);
        const GLchar* source[] = { shader_src.data() };
@@ -91,7 +99,7 @@ GLuint compile_shader(const std::string &shader_src, GLenum type)
        glGetShaderInfoLog(obj, log_length, &log_length, info_log);
        info_log[log_length] = 0; 
        if (strlen(info_log) > 0) {
-               printf("shader compile log: %s\n", info_log);
+               fprintf(stderr, "Shader compile log: %s\n", info_log);
        }
 
        GLint status;
@@ -111,7 +119,7 @@ void print_3x3_matrix(const Eigen::Matrix3d& m)
        printf("\n");
 }
 
-std::string output_glsl_mat3(const std::string &name, const Eigen::Matrix3d &m)
+string output_glsl_mat3(const string &name, const Eigen::Matrix3d &m)
 {
        char buf[1024];
        sprintf(buf,