<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style type="text/css">
<!--

/*
  The original subSilver Theme for phpBB version 2+
  Created by subBlue design
  http://www.subBlue.com

  NOTE: These CSS definitions are stored within the main page body so that you can use the phpBB2
  theme administration centre. When you have finalised your style you could cut the final CSS code
  and place it in an external file, deleting this section to save bandwidth.
*/


 /* General page style. The scroll bar colours only visible in IE5.5+ */
body {
        background-color: #;
        font-family: ;
        font-size: 11;
        color: #;
}

/* General font families for common tags */
font,th,td,p { font-family:  }
p, td           { font-size : 11; color : #; }
a:link,a:active,a:visited { color : #; }
a:hover         { text-decoration: underline; color : #; }
hr      { height: 0px; border: solid # 0px; border-top-width: 1px;}
h1,h2           { font-family: "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; font-size : 22px; font-weight : bold; text-decoration : none; line-height : 120%; color : #000000;}


/* This is the border line & background colour round the entire page */
.bodyline       { background-color: #; border: 1px # solid; }


/* General text */
.gen { font-size : 12px; }
.genmed { font-size : 11px; }
.gensmall { font-size : 10px; line-height: 12px}
.gen,.genmed,.gensmall { color : #; }
a.gen,a.genmed,a.gensmall { color: #; text-decoration: none; }
a.gen:hover,a.genmed:hover,a.gensmall:hover     { color: #; text-decoration: underline; }


/* Forum title: Text and link to the forums used in: index.php */
.forumlink              { font-weight: bold; font-size: 12px; color : #; }
a.forumlink     { text-decoration: none; color : #; }
a.forumlink:hover{ text-decoration: underline; color : #; }


/* The content of the posts (body of text) */
.postbody { font-size : 12px; line-height: 18px}
a.postlink:link { text-decoration: none; color : # }
a.postlink:visited { text-decoration: none; color : #; }
a.postlink:hover { text-decoration: underline; color : #}


/* Quote & Code blocks */
.code {
        font-family: ; font-size: 11px; color: #3FB753;
        background-color: #; border: #; border-style: solid;
        border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px
}

.quote {
        font-family: ; font-size: 11px; color: #444444; line-height: 125%;
        background-color: #; border: #; border-style: solid;
        border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px
}

-->
</style>
</head>
        <body>

        <div class="postbody">Got a mail saying my message was rejected because it was too big... so heres the relevant parts of the source code.<br />
<br />
void SDL_GL_Enter2DMode()<br />
{<br />
        SDL_Surface *screen = SDL_GetVideoSurface();<br />
<br />
        /* Note, there may be other things you need to change,<br />
           depending on how you have your OpenGL state set up.<br />
        */<br />
        glPushAttrib(GL_ENABLE_BIT);<br />
        glDisable(GL_DEPTH_TEST);<br />
        glDisable(GL_CULL_FACE);<br />
        glEnable(GL_TEXTURE_2D);<br />
<br />
        /* This allows alpha blending of 2D textures with the scene */<br />
        glEnable(GL_BLEND);<br />
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);<br />
<br />
        glViewport(0, 0, screen->w, screen->h);<br />
<br />
        glMatrixMode(GL_PROJECTION);<br />
        glPushMatrix();<br />
        glLoadIdentity();<br />
<br />
        glOrtho(0.0, (GLdouble)screen->w, (GLdouble)screen->h, 0.0, 0.0, 1.0);<br />
<br />
        glMatrixMode(GL_MODELVIEW);<br />
        glPushMatrix();<br />
        glLoadIdentity();<br />
<br />
        glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);<br />
        glColor4ub(0,0,0,255);<br />
}<br />
<br />
GLuint SDL_GL_LoadTexture(SDL_Surface *surface, GLfloat *texcoord)<br />
{<br />
        GLuint texture;<br />
        int w, h;<br />
        SDL_Surface *image;<br />
        SDL_Rect area;<br />
        Uint32 saved_flags;<br />
        Uint8  saved_alpha;<br />
<br />
        /* Use the surface width and height expanded to powers of 2 */<br />
        w = power_of_two(surface->w);<br />
        h = power_of_two(surface->h);<br />
        texcoord[0] = 0.0f;                     /* Min X */<br />
        texcoord[1] = 0.0f;                     /* Min Y */<br />
        texcoord[2] = (GLfloat)surface->w / w;       /* Max X */<br />
        texcoord[3] = (GLfloat)surface->h / h;       /* Max Y */<br />
<br />
        image = SDL_CreateRGBSurface(<br />
                        SDL_SWSURFACE,<br />
                        w, h,<br />
                        32,<br />
#if SDL_BYTEORDER == SDL_LIL_ENDIAN /* OpenGL RGBA masks */<br />
                        0x000000FF, <br />
                        0x0000FF00, <br />
                        0x00FF0000, <br />
                        0xFF000000<br />
#else<br />
                        0xFF000000,<br />
                        0x00FF0000, <br />
                        0x0000FF00, <br />
                        0x000000FF<br />
#endif<br />
                       );<br />
        if ( image == NULL ) {<br />
                return 0;<br />
        }<br />
<br />
        /* Save the alpha blending attributes */<br />
        saved_flags = surface->flags&(SDL_SRCALPHA|SDL_RLEACCELOK);<br />
        saved_alpha = surface->format->alpha;<br />
        if ( (saved_flags & SDL_SRCALPHA) == SDL_SRCALPHA ) {<br />
                SDL_SetAlpha(surface, 0, 0);<br />
        }<br />
<br />
        /* Copy the surface into the GL texture image */<br />
        area.x = 0;<br />
        area.y = 0;<br />
        area.w = surface->w;<br />
        area.h = surface->h;<br />
        SDL_BlitSurface(surface, &area, image, &area);<br />
<br />
        /* Restore the alpha blending attributes */<br />
        if ( (saved_flags & SDL_SRCALPHA) == SDL_SRCALPHA ) {<br />
                SDL_SetAlpha(surface, saved_flags, saved_alpha);<br />
                //SDL_SetAlpha(surface, 0, SDL_ALPHA_TRANSPARENT);<br />
        }<br />
<br />
        /* Create an OpenGL texture for the image */<br />
        glGenTextures(1, &texture);<br />
        glBindTexture(GL_TEXTURE_2D, texture);<br />
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);<br />
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);<br />
        glTexImage2D(GL_TEXTURE_2D,<br />
                     0,<br />
                     GL_RGBA,<br />
                     w, h,<br />
                     0,<br />
                     GL_RGBA,<br />
                     GL_UNSIGNED_BYTE,<br />
                     image->pixels);<br />
        SDL_FreeSurface(image); /* No longer needed */<br />
<br />
        return texture;<br />
}<br />
<br />
void DrawLogoCursor(void)<br />
{<br />
        static GLfloat texMinX, texMinY;<br />
        static GLfloat texMaxX, texMaxY;<br />
        static int w, h;<br />
        int x, y;<br />
<br />
        if ( ! cursor_texture ) {<br />
                SDL_Surface *image;<br />
                GLfloat texcoord[4];<br />
<br />
                /* Load the image (could use SDL_image library here) */<br />
                image = IMG_Load(LOGO_FILE);<br />
                if ( image == NULL ) {<br />
                        return;<br />
                }<br />
                w = image->w;<br />
                h = image->h;<br />
<br />
                /* Convert the image into an OpenGL texture */<br />
                cursor_texture = SDL_GL_LoadTexture(image, texcoord);<br />
<br />
                /* Make texture coordinates easy to understand */<br />
                texMinX = texcoord[0];<br />
                texMinY = texcoord[1];<br />
                texMaxX = texcoord[2];<br />
                texMaxY = texcoord[3];<br />
<br />
                /* We don't need the original image anymore */<br />
                SDL_FreeSurface(image);<br />
<br />
                /* Make sure that the texture conversion is okay */<br />
                if ( ! cursor_texture ) {<br />
                        return;<br />
                }<br />
        }<br />
<br />
        /* Move the image around */<br />
        SDL_GetMouseState(&x, &y);<br />
        x -= w/2;<br />
        y -= h/2;<br />
<br />
        /* Show the image on the screen */<br />
        SDL_GL_Enter2DMode();<br />
        glBindTexture(GL_TEXTURE_2D, cursor_texture);<br />
        glBegin(GL_TRIANGLE_STRIP);<br />
        glTexCoord2f(texMinX, texMinY); glVertex2i(x,   y  );<br />
        glTexCoord2f(texMaxX, texMinY); glVertex2i(x+w, y  );<br />
        glTexCoord2f(texMinX, texMaxY); glVertex2i(x,   y+h);<br />
        glTexCoord2f(texMaxX, texMaxY); glVertex2i(x+w, y+h);<br />
        glEnd();<br />
        SDL_GL_Leave2DMode();<br />
}</div>
        </body>
</html>