From 82d58bc5e1e4b03457f7d48907ec2e5e52bdf5bd Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Wed, 12 May 2021 18:06:08 +0200 Subject: Initial commit with boilerplate SDL2 --- .gitignore | 3 +++ Makefile | 10 +++++++++ main.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 main.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3bba2d4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +fourier-series-viz +tags +*.o diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7e9386d --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +CC = gcc +CFLAGS = -Wall -Wextra $(shell pkgconf --cflags sdl2) +LDFLAGS = $(shell pkgconf --libs sdl2) + +NAME = fourier-series-viz + +all: $(NAME) + +$(NAME): main.o + $(CC) -o $@ $(LDFLAGS) $^ diff --git a/main.c b/main.c new file mode 100644 index 0000000..dda7ef4 --- /dev/null +++ b/main.c @@ -0,0 +1,73 @@ +#include +#include +#include +#include + +#define WINDOW_WIDTH 648 +#define WINDOW_HEIGHT 480 +#define CIRCLE_SIZE 100 +#define HISTORY_SIZE WINDOW_WIDTH - CIRCLE_SIZE + +int g_history[HISTORY_SIZE] = {0}; + +int main(void) +{ + for (size_t i = 0; i < HISTORY_SIZE; i++) + g_history[i] = 100; + + if (SDL_Init(SDL_INIT_VIDEO) != 0) + exit(1); + SDL_Window *window = SDL_CreateWindow( + "fourier-series-viz", + SDL_WINDOWPOS_UNDEFINED, + SDL_WINDOWPOS_UNDEFINED, + WINDOW_WIDTH, + WINDOW_HEIGHT, + 0 + ); + if (window == NULL) + exit(1); + SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, 0); + if (renderer == NULL) + exit(1); + + bool running = true; + while (running) + { + SDL_Event e; + while (SDL_PollEvent(&e)) + { + switch (e.type) + { + case SDL_QUIT: + running = false; + break; + case SDL_KEYDOWN: + switch (e.key.keysym.sym) + { + case SDLK_q: + case SDLK_ESCAPE: + running = false; + break; + } + } + } + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); + SDL_RenderClear(renderer); + + SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); + for (size_t i = 0; i < HISTORY_SIZE; i++) + { + SDL_RenderDrawPoint(renderer, CIRCLE_SIZE + i, g_history[i]); + } + + + SDL_RenderPresent(renderer); + SDL_Delay(5); + } + + SDL_DestroyRenderer(renderer); + SDL_DestroyWindow(window); + SDL_Quit(); + return 0; +} -- cgit