#include #include #include #define WIDTH 800 #define HEIGHT 600 GLuint vs, fs; void init(int width, int height) { glClearColor (0.0, 0.0, 0.0, 0.0); glEnable(GL_DEPTH_TEST); glViewport(0, 0, WIDTH, HEIGHT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho((float)-width/(float)height, (float)width/(float)height, -1, 1, -1, 1); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); SDL_GL_SwapBuffers(); } int main(int argc, char *argv[]) { if (SDL_Init(SDL_INIT_VIDEO)) { printf("Failed to initialize SDL!\n"); return 1; } atexit(SDL_Quit); SDL_Surface *screen; SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); if (!(screen = SDL_SetVideoMode(WIDTH, HEIGHT, 16, SDL_OPENGL))) { printf("Failed to set video mode!\n"); SDL_Quit(); return 2; } SDL_WM_SetCaption(argv[0], argv[0]); init(WIDTH, HEIGHT); display(); SDL_Event event; while (SDL_WaitEvent(&event)) { if (event.type == SDL_QUIT) break; else if (event.type == SDL_KEYDOWN) { if (event.key.keysym.sym == SDLK_ESCAPE) break; } } }