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