commit 5d2fdd4a34d403a89183d7e83e5271da2767aaae Author: Mark Hoekveen Date: Wed Jul 28 20:10:59 2021 +0200 Initial commit diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bbd3735 --- /dev/null +++ b/Makefile @@ -0,0 +1,14 @@ +CXX = g++ +CC = $(CXX) +CPPFLAGS = -O3 `sdl2-config --cflags` +LDFLAGS = `sdl2-config --libs` +SOURCES = main.cpp +OBJECTS = $(SOURCES:.cpp=.o) + +EXECUTABLE = martijn-homo + +$(EXECUTABLE): $(OBJECTS) + $(CXX) -o $@ $(OBJECTS) $(LDFLAGS) +.PHONY: clean +clean: + rm $(EXEC) $(OBJECTS) diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..6187fde --- /dev/null +++ b/main.cpp @@ -0,0 +1,33 @@ +//Mark's mooie minimale meesterwerk +//ten behoeve van het demonstreren van de basisprincipelen van SDL +//deze breiden we uit met andere functies om shit te tekenen enzo. + +//We werken met SDL2, dat is wel zo modern. +//Let op dat er nog wel een hoop tutorials zijn die met 1.2 werken +#include + +int main(int argc, char** argv) { + //SDL are go. We hebben alleen video nodig. Kan hier eventueel ook audio, events, controllers, etc initializeren. + SDL_Init(SDL_INIT_VIDEO); + + //640x480 window, heilige resolutie. + //We geven hier ook aan wat voor window we willen. Als we met OpenGL/Vulkan naar dit scherm willen tekenen + //moeten we dat ook los aangeven. Andere opties voor fullscreen etc zijn ook mogelijk. + SDL_Window* window = SDL_CreateWindow("Dikke lul", 0, 0, 640, 480, SDL_WINDOW_RESIZABLE); + + //Window heeft een "surface" wat het object is waar we op kunnen tekenen, die halen we op en maken we zwart + //Alles waar je naar kan tekenen in SDL is een SDL_Surface. Zo ook bitmaps die je inlaadt, etc. + SDL_Surface* screen = SDL_GetWindowSurface(window); + SDL_FillRect(screen, NULL, 0); + + //Nu aangeven dat er iets is veranderd aan de surface zodat SDL het opnieuw tekent + SDL_UpdateWindowSurface(window); + + //paar seconden wachten z.d.d. het scherm niet meteen verdwijnt + SDL_Delay(3000); + + //Nog even wat opruimen. Beetje voor de sier, want we dumpen het hele proces toch. + SDL_DestroyWindow(window); + SDL_Quit(); + return 0; +}