Ok I figured out how to paste. Here is my problem program:
Code:
#include <SDL/SDL.h>
#include <SDL/SDL_opengl.h>
#include <stdio.h>
static const int w=640, h=480;
int setup_screen(void) {
const Uint32 flags = SDL_OPENGL;
if (SDL_Init(SDL_INIT_VIDEO)) {
printf(“fuckup: sdl fucked up\n”);
return -1;
}
//SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
if (SDL_SetVideoMode(w, h, 0, flags) == NULL) {
return -1;
}
glEnable( GL_TEXTURE_2D );
glClearColor(0,0,0,0);
return 0;
}
int manage_events(void)
{
static int emptys = 0;
SDL_Event event;
int numevents = 0;
while (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_KEYDOWN:
case SDL_QUIT:
return 0;
default:
++numevents;
break;
}
}
if (numevents) {
printf("%d frames\n", emptys+1); /+1 for this frame/
printf("%d events\n", numevents);
emptys = 0;
} else {
++emptys;
}
return 1;
}
GLuint load_texture(char *filename)
{
SDL_Surface *image = SDL_LoadBMP(filename);
GLuint texhandle;
glGenTextures(1, &texhandle);
glBindTexture(GL_TEXTURE_2D, texhandle);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
glTexImage2D(GL_TEXTURE_2D, 0, 3, image->w, image->h, 0, GL_BGR, GL_UNSIGNED_BYTE, image->pixels);
SDL_FreeSurface(image);
return texhandle;
}
int main(int argc, char **argv)
{
setup_screen();
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho( 0, w, h, 0, -1, 1 );
GLuint tex = load_texture("texture.bmp");
int x = 0, y = 240;
while (manage_events()) {
x %= 640;
/*
//SDL_GetMouseState(&x, &y);
//glClear( GL_COLOR_BUFFER_BIT );
glBindTexture(GL_TEXTURE_2D, tex);
glBegin(GL_TRIANGLES);
glTexCoord2d(0,0);
glVertex2f(x, y);
glTexCoord2d(1.0,0.0);
glVertex2f(0, 0);
glTexCoord2d(0.0,1.0);
glVertex2f(0, 480);
glEnd();
*/
SDL_GL_SwapBuffers();
++x;
}
SDL_Quit();
return 0;
}