X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=util.cpp;h=3b15c3787d7e82644d6c5633d9ea05387e0efb88;hp=62e0efcc314250505ea3513a159425e4a5a81580;hb=5b1ec775a021f215307fc63e8df54bb1109aeb58;hpb=29072985d0a00a53e5b578a1444cee61a0c9e1f2 diff --git a/util.cpp b/util.cpp index 62e0efc..3b15c37 100644 --- a/util.cpp +++ b/util.cpp @@ -1,11 +1,17 @@ -#include +#include +#include #include +#include +#include #include -#include -#include +#include -#include "util.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,