73 lines
1.5 KiB
D
73 lines
1.5 KiB
D
import std.stdio;
|
|
import derelict.sdl2.sdl;
|
|
import derelict.opengl3.gl3;
|
|
|
|
enum int WIDTH = 800;
|
|
enum int HEIGHT = 600;
|
|
|
|
void init()
|
|
{
|
|
glClearColor (1.0, 0.7, 0.0, 0.0);
|
|
glViewport(0, 0, WIDTH, HEIGHT);
|
|
}
|
|
|
|
void display(SDL_Window * window)
|
|
{
|
|
glClear(GL_COLOR_BUFFER_BIT);
|
|
SDL_GL_SwapWindow(window);
|
|
}
|
|
|
|
int main()
|
|
{
|
|
DerelictSDL2.load();
|
|
|
|
DerelictGL3.load();
|
|
|
|
if (SDL_Init(SDL_INIT_EVERYTHING))
|
|
{
|
|
writeln("Failed to initialize SDL!");
|
|
return 1;
|
|
}
|
|
|
|
SDL_Window * window = SDL_CreateWindow("d-dub-derelict-sdl2-gl3-demo",
|
|
SDL_WINDOWPOS_UNDEFINED,
|
|
SDL_WINDOWPOS_UNDEFINED,
|
|
WIDTH,
|
|
HEIGHT,
|
|
SDL_WINDOW_OPENGL);
|
|
SDL_GLContext context = SDL_GL_CreateContext(window);
|
|
|
|
if (window == null)
|
|
{
|
|
writeln("Failed to create SDL window!");
|
|
return 1;
|
|
}
|
|
|
|
DerelictGL3.reload();
|
|
|
|
init();
|
|
SDL_Event event;
|
|
for (;;)
|
|
{
|
|
if (SDL_PollEvent(&event))
|
|
{
|
|
if (event.type == SDL_QUIT)
|
|
break;
|
|
else if (event.type == SDL_KEYDOWN)
|
|
{
|
|
if (event.key.keysym.scancode == SDL_SCANCODE_ESCAPE)
|
|
break;
|
|
}
|
|
}
|
|
display(window);
|
|
}
|
|
|
|
SDL_GL_DeleteContext(context);
|
|
|
|
SDL_DestroyWindow(window);
|
|
|
|
SDL_Quit();
|
|
|
|
return 0;
|
|
}
|