commit f465d3c30706dea3647cfdd546ae975436d86d8c
parent ed03cfdd9e0ce696438d4630bb0f90c728ead3ec
Author: mpizzzle <m@michaelpercival.xyz>
Date: Sat, 10 Oct 2020 21:57:37 +0100
safety commit before I switch to glfw
Diffstat:
| M | penrose.cpp | | | 56 | +++++++++++++++++++++++++++++++++++++++++++++++++------- |
1 file changed, 49 insertions(+), 7 deletions(-)
diff --git a/penrose.cpp b/penrose.cpp
@@ -1,25 +1,67 @@
#include <SDL2/SDL.h>
+#include <iostream>
+#include <vector>
-void draw(SDL_Renderer* Renderer) {
+class triangle {
+public:
+ SDL_Point* points;
+ std::vector<triangle*> subtriangles;
+};
+
+class t123 : public triangle {
+};
+
+class t124 : public triangle {
+};
+
+void draw(SDL_Renderer* Renderer, std::vector<triangle> triangles) {
SDL_SetRenderDrawColor(Renderer, 0x33, 0x66, 0x99, SDL_ALPHA_OPAQUE);
SDL_RenderClear(Renderer);
SDL_SetRenderDrawColor(Renderer, 255, 255, 255, SDL_ALPHA_OPAQUE);
- SDL_RenderDrawLine(Renderer, 0, 480, 320, 0);
- SDL_RenderDrawLine(Renderer, 640, 480, 320, 0);
- SDL_RenderDrawLine(Renderer, 0, 480, 640, 480);
+ for (triangle t : triangles) {
+ SDL_RenderDrawLines(Renderer, t.points, 4);
+ }
SDL_RenderPresent(Renderer);
}
int main() {
+ bool quit = false;
+
+ SDL_DisplayMode current;
+ SDL_Event event;
+
SDL_Init(SDL_INIT_EVERYTHING);
+ SDL_GetCurrentDisplayMode(0, ¤t);
+ SDL_Log("Display #%d: current display mode is %dx%dpx @ %dhz.", 0, current.w, current.h, current.refresh_rate);
+
+ std::vector<triangle> triangles;
- SDL_Window* Window = SDL_CreateWindow("penrose", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 0, 0, SDL_WINDOW_OPENGL | SDL_WINDOW_FULLSCREEN_DESKTOP);
+ t123 t;
+ SDL_Point points[4] = { {0, 480}, {320, 0}, {640, 480}, {0, 480} };
+ t.points = points;
+ triangles.push_back(t);
+
+ SDL_Window* Window = SDL_CreateWindow("penrose", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, current.w, current.h, SDL_WINDOW_OPENGL | SDL_WINDOW_FULLSCREEN);
SDL_Renderer* Renderer = SDL_CreateRenderer(Window, -1, 0);
- draw(Renderer);
- SDL_Delay(1000);
+
+ while (!quit) {
+ SDL_WaitEvent(&event);
+
+ switch (event.type)
+ {
+ case SDL_QUIT:
+ quit = true;
+ break;
+ }
+
+ draw(Renderer, triangles);
+ }
+
+ SDL_DestroyRenderer(Renderer);
+ SDL_DestroyWindow(Window);
SDL_Quit();
return 0;