summaryrefslogtreecommitdiff
path: root/src/video/sdl.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/video/sdl.c')
-rw-r--r--src/video/sdl.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/video/sdl.c b/src/video/sdl.c
new file mode 100644
index 0000000..811b0d3
--- /dev/null
+++ b/src/video/sdl.c
@@ -0,0 +1,60 @@
+// sdl.c
+// Implements interface.h
+// Emulates the graphics of the Apple I computer with SDL.
+
+#include"interface.h"
+#include<SDL2/SDL.h>
+
+#define SCALE 2
+
+#define CHR_WIDTH 5
+#define CHR_HEIGHT 8
+
+#define WIDTH_SPACE 1 * SCALE
+
+#define MIN_WIDTH (40 * CHR_WIDTH) + 39*WIDTH_SPACE
+#define MIN_HEIGHT (24 * CHR_HEIGHT)
+
+int VideoInit(){
+ // INITIALIZATION
+ SDL_Init(SDL_INIT_TIMER | SDL_INIT_VIDEO);
+ SDL_Window* window = SDL_CreateWindow(
+ "Apple C",
+ SDL_WINDOWPOS_CENTERED,
+ SDL_WINDOWPOS_CENTERED,
+ MIN_WIDTH * SCALE,
+ MIN_HEIGHT * SCALE,
+ SDL_WINDOW_SHOWN
+ );
+
+ SDL_Renderer* render = SDL_CreateRenderer(window, -1, 0);
+ SDL_Surface* font_surface = SDL_LoadBMP("font.bmp");
+ SDL_Texture* font_texture = SDL_CreateTextureFromSurface(render, font_surface);
+ SDL_FreeSurface(font_surface);
+
+ SDL_Rect character = {
+ .x = 0,
+ .y = 0,
+ .w = CHR_WIDTH,
+ .h = CHR_HEIGHT
+ };
+
+ SDL_Rect draw_character = {
+ .x = 0,
+ .y = 0,
+ .w = CHR_WIDTH * SCALE,
+ .h = CHR_HEIGHT * SCALE
+ };
+
+ SDL_SetRenderDrawColor (render, 0, 0, 0, 255);
+ SDL_RenderClear (render);
+ SDL_RenderCopy (render, font_texture, &character, &draw_character);
+ SDL_RenderPresent (render);
+
+}
+
+void VideoClose() {
+
+
+ SDL_Quit();
+} \ No newline at end of file