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;
}