diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2021-05-12 18:06:08 +0200 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2021-05-12 18:06:08 +0200 |
| commit | 82d58bc5e1e4b03457f7d48907ec2e5e52bdf5bd (patch) | |
| tree | 077fcdb576283f8ea59e1e9703ab52bd8223e7f6 | |
| download | fourier-series-viz-82d58bc5e1e4b03457f7d48907ec2e5e52bdf5bd.tar.gz fourier-series-viz-82d58bc5e1e4b03457f7d48907ec2e5e52bdf5bd.tar.bz2 fourier-series-viz-82d58bc5e1e4b03457f7d48907ec2e5e52bdf5bd.zip | |
Initial commit with boilerplate SDL2
| -rw-r--r-- | .gitignore | 3 | ||||
| -rw-r--r-- | Makefile | 10 | ||||
| -rw-r--r-- | main.c | 73 |
3 files changed, 86 insertions, 0 deletions
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) $^ @@ -0,0 +1,73 @@ +#include <stdio.h> +#include <stdlib.h> +#include <stdbool.h> +#include <SDL2/SDL.h> + +#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; +} |
