78 lines
1.6 KiB
D
78 lines
1.6 KiB
D
import std.stdio;
|
|
import derelict.sdl.sdl;
|
|
import derelict.opengl.gl;
|
|
import derelict.opengl.glu;
|
|
|
|
enum int WIDTH = 800;
|
|
enum int HEIGHT = 600;
|
|
|
|
void init()
|
|
{
|
|
glClearColor (0.0, 0.0, 0.0, 0.0);
|
|
glShadeModel(GL_SMOOTH);
|
|
glViewport(0, 0, WIDTH, HEIGHT);
|
|
glMatrixMode(GL_PROJECTION);
|
|
glLoadIdentity();
|
|
gluPerspective(60.0, cast(GLfloat)WIDTH/cast(GLfloat)WIDTH, 1.0, 30.0);
|
|
glMatrixMode(GL_MODELVIEW);
|
|
glLoadIdentity();
|
|
glTranslatef(0.0, 0.0, -10.0);
|
|
}
|
|
|
|
void display()
|
|
{
|
|
glClear(GL_COLOR_BUFFER_BIT);
|
|
glBegin(GL_QUADS);
|
|
glColor3f(1, 1, 1);
|
|
glVertex3f(5.0, 5.0, 0.0);
|
|
glColor3f(1, 0, 0);
|
|
glVertex3f(-5.0, 5.0, 0.0);
|
|
glColor3f(0, 0, 1);
|
|
glVertex3f(-5.0, -5.0, 0.0);
|
|
glColor3f(0, 1, 0);
|
|
glVertex3f(5.0, -5.0, 0.0);
|
|
glEnd();
|
|
SDL_GL_SwapBuffers();
|
|
}
|
|
|
|
int main(char[][] args)
|
|
{
|
|
DerelictSDL.load();
|
|
DerelictGL.load();
|
|
DerelictGLU.load();
|
|
|
|
if (SDL_Init(SDL_INIT_EVERYTHING))
|
|
{
|
|
writefln("Failed to initialize SDL!");
|
|
return 1;
|
|
}
|
|
|
|
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
|
|
|
SDL_Surface *screen = SDL_SetVideoMode(WIDTH, HEIGHT, 32, SDL_OPENGL);
|
|
if (screen == null)
|
|
{
|
|
printf("Failed to set video mode!\n");
|
|
SDL_Quit();
|
|
return 2;
|
|
}
|
|
|
|
init();
|
|
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;
|
|
}
|
|
}
|
|
|
|
SDL_Quit();
|
|
|
|
return 0;
|
|
}
|