X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fguicast%2Fvframe3d.C;h=649a3b1997343d9577a0b885ec95da2f153e7adf;hb=fe342c90022bff98669b5cc96817cafe98c4e768;hp=65d9d5ce7485e29b0c0b996cc0bc1093331e3d6a;hpb=8bd72f90925843be9ab9182c89761ee0640e7873;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/vframe3d.C b/cinelerra-5.1/guicast/vframe3d.C index 65d9d5ce..649a3b19 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->w != get_w() || pbuffer->h != get_h() || - 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(); } } @@ -278,7 +266,7 @@ void VFrame::init_screen(int w, int h) glMatrixMode(GL_MODELVIEW); glLoadIdentity(); // Shift down and right so 0,0 is the top left corner - glTranslatef(-w/2, h/2, 0.0); + glTranslatef(-(w-1)/2.f, (h-1)/2.f, 0.0); glTranslatef(0.0, 0.0, -(far + near) / 2); glDisable(GL_DEPTH_TEST);