Archived

This topic is now archived and is closed to further replies.

MENTAL

Render to Texture rendering at texture-size.

Recommended Posts

MENTAL    383
this is one of those stupid bugs that can probably be solved with one line of code, but i sure as hell can't do it! the effect i'm doing is to render the frame buffer (1024x768) to a texture (texture dimentions are 320x240. yes, that is allowed - i'm using TEXTURE_RECTANGLE_NV). The frame buffer renders to the texture perfectly, but when i try and draw a fullscreen quad with the texture, it doesn't take up the entire of the screen some images:
Normal
Texture

GLuint LowRes;
int LowResX = 320;
int LowResY = 240;

#define WIN_WIDTH 1024
#define WIN_HEIGHT 768

bool UseLowRes = true;

void App_Render ()
{
    glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity ();

    if (UseLowRes)
    {
        glViewport (0, 0, LowResX, LowResY);
    }
//

// Render the world

//

    if (UseLowRes)
    {
        glActiveTextureARB (GL_TEXTURE1_ARB);
        glBindTexture (GL_TEXTURE_2D, 0);

        glActiveTextureARB (GL_TEXTURE0_ARB);
        glEnable (GL_TEXTURE_RECTANGLE_NV);
        glBindTexture (GL_TEXTURE_RECTANGLE_NV, LowRes);
        glCopyTexSubImage2D (GL_TEXTURE_RECTANGLE_NV, 0, 0, 0, 0, 0, LowResX, LowResY);

        glViewport (0, 0, WIN_WIDTH, WIN_HEIGHT);

        glLoadIdentity ();

        glMatrixMode (GL_PROJECTION);
        glPushMatrix ();
        glOrtho (0, WIN_WIDTH, 0, WIN_HEIGHT, 0, -1);
        glMatrixMode (GL_MODELVIEW);
        
        glDisable (GL_DEPTH_TEST);

        glBegin (GL_QUADS);
            glTexCoord2f (0, 0);              glVertex3f (0,          0,          -0.1);
            glTexCoord2f (0, LowResY);        glVertex3f (0,          WIN_HEIGHT, -0.1);
            glTexCoord2f (LowResX, LowResY);  glVertex3f (WIN_WIDTH,  WIN_HEIGHT, -0.1);
            glTexCoord2f (LowResX, 0);        glVertex3f (WIN_WIDTH,  0,          -0.1);
        glEnd ();

        glMatrixMode (GL_PROJECTION);
        glPopMatrix ();
        glMatrixMode (GL_MODELVIEW);

        glEnable (GL_DEPTH_TEST);

        glDisable (GL_TEXTURE_RECTANGLE_NV);
    }
}

thanks in advance [edited by - MENTAL on August 8, 2003 4:57:49 PM] [edited by - MENTAL on August 8, 2003 5:31:19 PM]

Share this post


Link to post
Share on other sites