aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorHarry Jeffery <harry@exec64.co.uk>2015-11-05 19:57:24 +0000
committerHarry Jeffery <harry@exec64.co.uk>2015-11-05 19:57:24 +0000
commit702984185cbd8fb807e5d540f668072d4843e293 (patch)
tree4fb21f977a8052b85dca729e462d83641b1b1815 /main.c
downloadimv-702984185cbd8fb807e5d540f668072d4843e293.tar.gz
Initial commit
Diffstat (limited to 'main.c')
-rw-r--r--main.c72
1 files changed, 72 insertions, 0 deletions
diff --git a/main.c b/main.c
new file mode 100644
index 0000000..cd87c75
--- /dev/null
+++ b/main.c
@@ -0,0 +1,72 @@
+#include <stdio.h>
+#include <SDL2/SDL.h>
+
+int main(int argc, char** argv)
+{
+ if(argc < 2) {
+ fprintf(stderr, "Usage: %s <image_file> <...>\n", argv[0]);
+ exit(1);
+ }
+
+ if(SDL_Init(SDL_INIT_VIDEO) != 0) {
+ fprintf(stderr, "SDL Failed to Init: %s\n", SDL_GetError());
+ exit(1);
+ }
+
+ const int width = 1280;
+ const int height = 720;
+
+ SDL_Window *window = SDL_CreateWindow(
+ "imv",
+ SDL_WINDOWPOS_CENTERED,
+ SDL_WINDOWPOS_CENTERED,
+ width, height,
+ SDL_WINDOW_RESIZABLE);
+
+ SDL_Renderer *renderer =
+ SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
+
+ int quit = 0;
+ int redraw = 1;
+ while(!quit) {
+
+ SDL_Event e;
+ while(!quit && SDL_PollEvent(&e)) {
+ switch(e.type) {
+ case SDL_QUIT:
+ quit = 1;
+ break;
+ case SDL_KEYDOWN:
+ if(e.key.keysym.sym == SDLK_q) {
+ quit = 1;
+ }
+ break;
+ case SDL_WINDOWEVENT:
+ if(e.window.event == SDL_WINDOWEVENT_SIZE_CHANGED
+ || e.window.event == SDL_WINDOWEVENT_RESIZED) {
+ redraw = 1;
+ }
+ break;
+ }
+ }
+
+ if(quit) {
+ break;
+ }
+
+ if(redraw) {
+ SDL_RenderClear(renderer);
+ //SDL_RenderCopy(renderer, tex, srcrect, dstrect);
+
+ SDL_RenderPresent(renderer);
+ redraw = 0;
+ }
+ SDL_Delay(10);
+ }
+
+ SDL_DestroyRenderer(renderer);
+ SDL_DestroyWindow(window);
+ SDL_Quit();
+
+ return 0;
+}