]> git.sesse.net Git - movit/blobdiff - util.cpp
Make handling of non-RGBA sRGB textures more consistent.
[movit] / util.cpp
index b86e3f77c9d4842fdea43cfbfe025bc786a2fa1c..cce3d54a09492956b828cd65c092d15650fab033 100644 (file)
--- a/util.cpp
+++ b/util.cpp
@@ -1,4 +1,4 @@
-#include <GL/glew.h>
+#include <epoxy/gl.h>
 #include <assert.h>
 #include <math.h>
 #include <stdio.h>
@@ -9,6 +9,14 @@
 #include "init.h"
 #include "util.h"
 
+#if defined(__DARWIN__)
+#include <OpenGL/OpenGL.h>
+#elif defined(WIN32)
+#include <epoxy/wgl.h>
+#else
+#include <epoxy/glx.h>
+#endif
+
 using namespace std;
 
 namespace movit {
@@ -215,4 +223,33 @@ void cleanup_vertex_attribute(GLuint glsl_program_num, const string &attribute_n
        check_error();
 }
 
+unsigned div_round_up(unsigned a, unsigned b)
+{
+       return (a + b - 1) / b;
+}
+
+// Algorithm from http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2.
+unsigned next_power_of_two(unsigned v)
+{
+       v--;
+       v |= v >> 1;
+       v |= v >> 2;
+       v |= v >> 4;
+       v |= v >> 8;
+       v |= v >> 16;
+       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