projects
/
goodguy
/
history.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
olaf neophyte and de.po updates, valgrind tweaks, delete green lady, inkscape dpi=96
[goodguy/history.git]
/
cinelerra-5.1
/
guicast
/
vframe3d.C
diff --git
a/cinelerra-5.1/guicast/vframe3d.C
b/cinelerra-5.1/guicast/vframe3d.C
index 8d5f88e8c839fd137358ae9aa0fd3155d8c6d9db..649a3b1997343d9577a0b885ec95da2f153e7adf 100644
(file)
--- 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:
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();
if(pbuffer) {
enable_opengl();
screen_to_texture();
@@
-151,30
+147,22
@@
void VFrame::to_texture()
void VFrame::create_pbuffer()
{
void VFrame::create_pbuffer()
{
- i
f(pbuffer &&
- pbuffer->window_id != BC_WindowBase::get_synchronous()->current_window->get_id())
- {
+ i
nt 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;
}
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();
}
}
void VFrame::enable_opengl()
{
create_pbuffer();
- if(pbuffer)
- {
+ if( pbuffer ) {
pbuffer->enable_opengl();
}
}
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
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);
glTranslatef(0.0, 0.0, -(far + near) / 2);
glDisable(GL_DEPTH_TEST);
@@
-413,6
+401,7
@@
unsigned int VFrame::make_shader(const char **fragments, ...)
}
//printf("VFrame::make_shader\n%s\n", program);
}
//printf("VFrame::make_shader\n%s\n", program);
+ delete [] program;
#endif
return result;
}
#endif
return result;
}
@@
-426,10
+415,8
@@
void VFrame::dump_shader(int shader_id)
void VFrame::clear_pbuffer()
{
#ifdef HAVE_GL
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
}
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
#endif
}