X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fplayback3d.C;h=835d8a22898c4abe9f3a67674bac7f7b5bcf2b53;hb=f3adc7285af86851913b48592a8c4fdfcdcdf8b6;hp=c2e015e24d5fc653d8fb0041682c821efb077589;hpb=93d60cc0fdf746cc03b4d7a9e45744c2c424439b;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/playback3d.C b/cinelerra-5.1/cinelerra/playback3d.C index c2e015e2..835d8a22 100644 --- a/cinelerra-5.1/cinelerra/playback3d.C +++ b/cinelerra-5.1/cinelerra/playback3d.C @@ -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 coords; + coords.set_array_delete(); for(int i = 0; i < points->total; i++) { MaskPoint *point1 = points->values[i];