// sdl.c // Implements interface.h // Emulates the graphics of the Apple I computer with SDL. #include"interface.h" #include #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(); }