rework deglitch/optimize/stop_playback, sams ladspa icons, reticle color, tweak frame...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / playback3d.C
index c2e015e24d5fc653d8fb0041682c821efb077589..835d8a22898c4abe9f3a67674bac7f7b5bcf2b53 100644 (file)
@@ -155,8 +155,8 @@ static const char *blend_##FN##_frag = \
        "void main() {\n" \
        "       vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n" \
        "       vec4 result;\n" \
-       "       result.rgb = "SS(COLOR_##FN(1.0, gl_FragColor.rgb, gl_FragColor.a, canvas.rgb, canvas.a))";\n" \
-       "       result.a = "SS(ALPHA_##FN(1.0, gl_FragColor.a, canvas.a))";\n" \
+       "       result.rgb = " SS(COLOR_##FN(1.0, gl_FragColor.rgb, gl_FragColor.a, canvas.rgb, canvas.a)) ";\n" \
+       "       result.a = " SS(ALPHA_##FN(1.0, gl_FragColor.a, canvas.a)) ";\n" \
        "       gl_FragColor = mix(canvas, result, alpha);\n" \
        "}\n"
 
@@ -168,10 +168,10 @@ static const char *blend_##FN##_frag = \
        "void main() {\n" \
        "       vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n" \
        "       vec4 result;\n" \
-       "       result.r = "SS(COLOR_##FN(1.0, gl_FragColor.r, gl_FragColor.a, canvas.r, canvas.a))";\n" \
-       "       result.g = "SS(COLOR_##FN(1.0, gl_FragColor.g, gl_FragColor.a, canvas.g, canvas.a))";\n" \
-       "       result.b = "SS(COLOR_##FN(1.0, gl_FragColor.b, gl_FragColor.a, canvas.b, canvas.a))";\n" \
-       "       result.a = "SS(ALPHA_##FN(1.0, gl_FragColor.a, canvas.a))";\n" \
+       "       result.r = " SS(COLOR_##FN(1.0, gl_FragColor.r, gl_FragColor.a, canvas.r, canvas.a)) ";\n" \
+       "       result.g = " SS(COLOR_##FN(1.0, gl_FragColor.g, gl_FragColor.a, canvas.g, canvas.a)) ";\n" \
+       "       result.b = " SS(COLOR_##FN(1.0, gl_FragColor.b, gl_FragColor.a, canvas.b, canvas.a)) ";\n" \
+       "       result.a = " SS(ALPHA_##FN(1.0, gl_FragColor.a, canvas.a)) ";\n" \
        "       result = clamp(result, 0.0, 1.0);\n" \
        "       gl_FragColor = mix(canvas, result, alpha);\n" \
        "}\n"
@@ -887,6 +887,7 @@ void Playback3D::do_camera_sync(Playback3DCommand *command)
 
 
                command->frame->set_opengl_state(VFrame::SCREEN);
+               command->frame->screen_to_ram();
                command->canvas->get_canvas()->unlock_window();
        }
        command->canvas->unlock_canvas();
@@ -1259,6 +1260,7 @@ void Playback3D::do_mask_sync(Playback3DCommand *command)
 // Need to tabulate every vertex in persistent memory because
 // gluTessVertex doesn't copy them.
                        ArrayList<GLdouble*> coords;
+                       coords.set_array_delete();
                        for(int i = 0; i < points->total; i++)
                        {
                                MaskPoint *point1 = points->values[i];