X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fvframe3d.C;h=aba006b8a11c43270ec1ab5ef53f16ae0b343105;hp=35f1ac69d9b1766955dd1eabe8b0df35a59d834c;hb=d60a59baa6cfe24c0fb153ed9e150a834ba29feb;hpb=8f0d97d1da0cd4cfcacf76c2c1788204749b6757 diff --git a/cinelerra-5.1/guicast/vframe3d.C b/cinelerra-5.1/guicast/vframe3d.C index 35f1ac69..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(); } } @@ -427,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 }