OMG Experimental Renderer Fixes

git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/trunk@541 6778bc44-b910-0410-a7a0-be141de4315d
This commit is contained in:
psperl
2007-10-07 08:19:01 +00:00
parent c8746e1f03
commit 868f2ee93e
2 changed files with 19 additions and 39 deletions

View File

@ -66,14 +66,14 @@ GLuint RenderTarget::initRenderToTexture()
glGenRenderbuffersEXT(1, &depth_rb2);
glBindRenderbufferEXT( GL_RENDERBUFFER_EXT, depth_rb2 );
glRenderbufferStorageEXT( GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT24, this->texsize,this->texsize );
glRenderbufferStorageEXT( GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, this->texsize,this->texsize );
glFramebufferRenderbufferEXT( GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depth_rb2 );
this->fbuffer[1] = fb2;
this->depthb[1]= depth_rb2;
glGenTextures(1, &this->textureID[2]);
glBindTexture(GL_TEXTURE_2D, this->textureID[2]);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA8, texsize, texsize, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL );
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, texsize, texsize, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL );
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
@ -115,7 +115,7 @@ RenderTarget::RenderTarget(int texsize, int width, int height) : useFBO(false) {
glGenTextures(1, &other_tex);
glBindTexture(GL_TEXTURE_2D,other_tex);
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, texsize, texsize, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL );
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGB, texsize, texsize, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL );
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
//glGenerateMipmapEXT(GL_TEXTURE_2D);
@ -127,7 +127,7 @@ RenderTarget::RenderTarget(int texsize, int width, int height) : useFBO(false) {
glGenTextures(1, &rgba_tex);
glBindTexture(GL_TEXTURE_2D, rgba_tex);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, texsize, texsize, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL );
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGB, texsize, texsize, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL );
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
//glGenerateMipmapEXT(GL_TEXTURE_2D);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);

View File

@ -244,10 +244,11 @@ if(renderTarget->renderToTexture)
void Renderer::Interpolation(PresetOutputs *presetOutputs, PresetInputs *presetInputs)
{
{ //glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBlendFunc(GL_SRC_ALPHA, GL_ZERO);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glColor4f(0.0, 0.0, 0.0,presetOutputs->decay);
glColor4f(1.0,1.0,1.0,presetOutputs->decay);
glEnable(GL_TEXTURE_2D);
@ -264,7 +265,9 @@ void Renderer::Interpolation(PresetOutputs *presetOutputs, PresetInputs *presetI
}
glDisable(GL_TEXTURE_2D);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
@ -1508,34 +1511,14 @@ void Renderer::render_texture_to_screen(PresetOutputs *presetOutputs) {
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
// glClear(GL_ACCUM_BUFFER_BIT);
glColor4d(0.0, 0.0, 0.0,1.0f);
DWRITE( "rendering texture to screen\n" );
glBegin(GL_QUADS);
glVertex3d( 0, 0, -1 );
glVertex4d(-0.5,-0.5,-1,1);
glVertex4d(-0.5, 0.5,-1,1);
glVertex4d(0.5, 0.5,-1,1);
glVertex4d(0.5, -0.5,-1,1);
glEnd();
glBlendFunc(GL_ONE,GL_ZERO);
glColor4d(1.0, 1.0, 1.0,1.0f);
glEnable(GL_TEXTURE_2D);
//glBindTexture( GL_TEXTURE_2D, this->renderTarget->textureID[0] );
// glBindTexture( GL_TEXTURE_2D, this->renderTarget->textureID );
// glAccum(GL_LOAD,0);
// if (bDarken==1) glBlendFunc(GL_SRC_COLOR,GL_ZERO);
//Draw giant rectangle and texture it with our texture!
glBegin(GL_QUADS);
glTexCoord4d(0, 1,0,1); glVertex4d(-0.5,-0.5,-1,1);
@ -1546,14 +1529,11 @@ void Renderer::render_texture_to_screen(PresetOutputs *presetOutputs) {
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
// if (bDarken==1) glBlendFunc(GL_SRC_COLOR,GL_ONE_MINUS_SRC_ALPHA);
// if (bDarken==1) { glAccum(GL_ACCUM,1-fVideoEchoAlpha); glBlendFunc(GL_SRC_COLOR,GL_ZERO); }
glMatrixMode(GL_TEXTURE);
//draw video echo
glColor4f(0.0, 0.0, 0.0,presetOutputs->fVideoEchoAlpha);
glColor4f(1.0, 1.0, 1.0,presetOutputs->fVideoEchoAlpha);
glTranslatef(.5,.5,0);
glScalef(1.0/presetOutputs->fVideoEchoZoom,1.0/presetOutputs->fVideoEchoZoom,1);
glTranslatef(-.5,-.5,0);
@ -1680,7 +1660,7 @@ void Renderer::render_texture_to_studio(PresetOutputs *presetOutputs, PresetInpu
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
// glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
// glClear(GL_ACCUM_BUFFER_BIT);