X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=util.cpp;h=01787f013e0a4c70817be2ccf49743cddb7bd254;hp=ac6a218098873953d25036605d728ed98257ec70;hb=refs%2Fheads%2Fepoxy;hpb=9e219b96e914b2e5709ba3c3345afdc3cf13a78d diff --git a/util.cpp b/util.cpp index ac6a218..01787f0 100644 --- a/util.cpp +++ b/util.cpp @@ -9,6 +9,14 @@ #include "init.h" #include "util.h" +#if defined(__DARWIN__) +#include +#elif defined(WIN32) +#include +#else +#include +#endif + using namespace std; namespace movit { @@ -88,6 +96,19 @@ string read_file(const string &filename) return string(buf, len); } +string read_version_dependent_file(const string &base, const string &extension) +{ + if (movit_shader_model == MOVIT_GLSL_110) { + return read_file(base + "." + extension); + } else if (movit_shader_model == MOVIT_GLSL_130) { + return read_file(base + ".130." + extension); + } else if (movit_shader_model == MOVIT_ESSL_300) { + return read_file(base + ".300es." + extension); + } else { + assert(false); + } +} + GLuint compile_shader(const string &shader_src, GLenum type) { GLuint obj = glCreateShader(type); @@ -233,4 +254,15 @@ unsigned next_power_of_two(unsigned v) return v; } +void *get_gl_context_identifier() +{ +#if defined(__DARWIN__) + return (void *)CGLGetCurrentContext(); +#elif defined(WIN32) + return (void *)wglGetCurrentContext(); +#else + return (void *)glXGetCurrentContext(); +#endif +} + } // namespace movit