rework histogram_bezier, init wm icon set_icon(gg), update de.po+msg/txt
[goodguy/history.git] / cinelerra-5.1 / guicast / vframe.h
index 44695ba7074c5053e24b746997b27df79eaa698b..da53bfdda22bdb315613238362c512b1061f2ec6 100644 (file)
@@ -34,7 +34,7 @@
 
 // Maximum number of prev or next effects to be pushed onto the stacks.
 #define MAX_STACK_ELEMENTS 255
-
+#define SHM_MIN_SIZE 2048
 
 // Scene graph for 3D models
 // Defined by the subclass
@@ -82,7 +82,7 @@ public:
        VFrame(VFrame &vframe);
 // Create new frame for compressed data.
        VFrame();
-       ~VFrame();
+       virtual ~VFrame();
 
 // Return 1 if the colormodel and dimensions are the same
 // Used by FrameCache
@@ -130,6 +130,7 @@ public:
 
 // direct copy with no alpha
        int copy_from(VFrame *frame);
+       int copy_vframe(VFrame *src);
 // BC_CModels::transfer
        int transfer_from(VFrame *frame, int bg_color, int in_x, int in_y, int in_w, int in_h);
        int transfer_from(VFrame *frame, int bg_color=0) {
@@ -296,11 +297,12 @@ public:
 // Adds the program with put_shader.
 // Returns the program handle.
 // Requires a null terminated argument list of shaders to link together.
+// if fragments is not NULL, it is a a zero terminated list of frags
+// if fragments is NULL, then a zero terminated list of va_args frags
 // At least one shader argument must have a main() function.  make_shader
 // replaces all the main() functions with unique functions and calls them in
 // sequence, so multiple independant shaders can be linked.
-// x is a placeholder for va_arg and should be 0.
-       static unsigned int make_shader(int x, ...);
+       static unsigned int make_shader(const char **fragments, ...);
        static void dump_shader(int shader_id);
 
 // Because OpenGL is faster if multiple effects are combined, we need
@@ -341,12 +343,11 @@ public:
 // This clears the stacks and the param table
        void clear_stacks();
 
-       int (VFrame::*draw_point)(int x, int y);
+       virtual int draw_pixel(int x, int y);
        int pixel_rgb, pixel_yuv, stipple;
 
        void set_pixel_color(int rgb);
        void set_stiple(int mask);
-       int draw_pixel(int x, int y);
        void draw_line(int x1, int y1, int x2, int y2);
        void draw_smooth(int x1, int y1, int x2, int y2, int x3, int y3);
        void smooth_draw(int x1, int y1, int x2, int y2, int x3, int y3);
@@ -354,6 +355,7 @@ public:
        void draw_arrow(int x1, int y1, int x2, int y2, int sz=10);
        void draw_x(int x1, int y1, int sz=2);
        void draw_t(int x1, int y1, int sz=2);
+       void draw_oval(int x1, int y1, int x2, int y2);
 
 // 3D scene graphs
 // Not integrated with shmem because that only affects codecs