add olaf de.po, opengl bg clr, asset drag select tweak
[goodguy/history.git] / cinelerra-5.1 / cinelerra / playback3d.h
index 314f392a30c19ab976b6726f2d5c3d597364a11b..4388624a88bb4c8135c38c976010927c1cd19dff 100644 (file)
 
 // use static presets YUV in bccolors.h
 #define BC_GL_MATRIX(shader, mat) \
-       glUniformMatrix3fv(glGetUniformLocation(shader, #mat), 1, 0, YUV::mat)
+       glUniformMatrix3fv(glGetUniformLocation(shader, #mat), 1, 1, YUV::mat)
+#define BC_GL_VECTOR(shader, vec) \
+       glUniform3fv(glGetUniformLocation(shader, #vec), 1, YUV::vec)
 
-#define BC_GL_YMINF(shader,mat) \
-       glUniform1f(glGetUniformLocation(shader, "yminf"), YUV::mat[9])
+#define BC_GL_YMINF(shader) \
+       glUniform1f(glGetUniformLocation(shader, "yminf"), YUV::yuv.get_yminf())
 
 #define BC_GL_RGB_TO_YUV(shader) do { \
        BC_GL_MATRIX(shader, rgb_to_yuv_matrix); \
-       BC_GL_YMINF(shader, rgb_to_yuv_matrix); \
+       BC_GL_YMINF(shader); \
+} while(0)
+
+#define BC_GL_RGB_TO_Y(shader) do { \
+       BC_GL_VECTOR(shader, rgb_to_y_vector); \
+       BC_GL_YMINF(shader); \
 } while(0)
 
 #define BC_GL_YUV_TO_RGB(shader) do { \
        BC_GL_MATRIX(shader, yuv_to_rgb_matrix); \
-       BC_GL_YMINF(shader, yuv_to_rgb_matrix); \
+       BC_GL_YMINF(shader); \
 } while(0)
 
 #define BC_GL_COLORS(shader) do { \
        BC_GL_MATRIX(shader, yuv_to_rgb_matrix); \
        BC_GL_MATRIX(shader, rgb_to_yuv_matrix); \
-       BC_GL_YMINF(shader, rgb_to_yuv_matrix); \
+       BC_GL_YMINF(shader); \
 } while(0)
 
 
 #define bc_gl_yuv_to_rgb "uniform mat3 yuv_to_rgb_matrix;\n"
 #define bc_gl_rgb_to_yuv "uniform mat3 rgb_to_yuv_matrix;\n"
+#define bc_gl_rgb_to_y   "uniform vec3 rgb_to_y_vector;\n"
 #define bc_gl_yminf      "uniform float yminf;\n"
 #define bc_gl_colors bc_gl_yuv_to_rgb bc_gl_rgb_to_yuv bc_gl_yminf
 
@@ -317,9 +325,9 @@ public:
 
 private:
 // Called by write_buffer and clear_frame to initialize OpenGL flags
-       void init_frame(Playback3DCommand *command);
+       void init_frame(Playback3DCommand *command, int is_yuv=0);
        void write_buffer_sync(Playback3DCommand *command);
-       void draw_output(Playback3DCommand *command);
+       void draw_output(Playback3DCommand *command, int flip_y);
        void clear_output_sync(Playback3DCommand *command);
        void clear_input_sync(Playback3DCommand *command);
        void overlay_sync(Playback3DCommand *command);