X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fvframe3d.C;h=aba006b8a11c43270ec1ab5ef53f16ae0b343105;hb=3b781cd7b4b9c477e637adb876a229d2781ee33b;hp=8d5f88e8c839fd137358ae9aa0fd3155d8c6d9db;hpb=af44bff549c39ac8bb6e42a791e7a211e1013526;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/vframe3d.C b/cinelerra-5.1/guicast/vframe3d.C index 8d5f88e8..aba006b8 100644 --- a/cinelerra-5.1/guicast/vframe3d.C +++ b/cinelerra-5.1/guicast/vframe3d.C @@ -99,10 +99,6 @@ void VFrame::to_texture() return; case VFrame::SCREEN: - if((get_w() % 4) || (get_h() % 4)) { - printf("VFrame::to_texture w=%d h=%d\n", get_w(), get_h()); - return; - } if(pbuffer) { enable_opengl(); screen_to_texture(); @@ -151,30 +147,22 @@ void VFrame::to_texture() void VFrame::create_pbuffer() { - if(pbuffer && - pbuffer->window_id != BC_WindowBase::get_synchronous()->current_window->get_id()) - { + int ww = (get_w()+3) & ~3, hh = (get_h()+3) & ~3; + if( pbuffer && (pbuffer->w != ww || pbuffer->h != hh || + pbuffer->window_id != BC_WindowBase::get_synchronous()->current_window->get_id() ) ) { delete pbuffer; pbuffer = 0; } - if((get_w() % 4) || (get_h() % 4)) - { - printf("VFrame::create_pbuffer w=%d h=%d\n", get_w(), get_h()); - return; - } - - if(!pbuffer) - { - pbuffer = new BC_PBuffer(get_w(), get_h()); + if( !pbuffer ) { + pbuffer = new BC_PBuffer(ww, hh); } } void VFrame::enable_opengl() { create_pbuffer(); - if(pbuffer) - { + if( pbuffer ) { pbuffer->enable_opengl(); } } @@ -413,6 +401,7 @@ unsigned int VFrame::make_shader(const char **fragments, ...) } //printf("VFrame::make_shader\n%s\n", program); + delete [] program; #endif return result; } @@ -426,10 +415,8 @@ void VFrame::dump_shader(int shader_id) void VFrame::clear_pbuffer() { #ifdef HAVE_GL - if(BC_CModels::is_yuv(get_color_model())) - glClearColor(0.0, 0.5, 0.5, 0.0); - else - glClearColor(0.0, 0.0, 0.0, 0.0); + float gbuv = BC_CModels::is_yuv(get_color_model()) ? 0.5 : 0; + glClearColor(0.0, gbuv, gbuv, 0.0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); #endif }