67 lines
1.4 KiB
C
67 lines
1.4 KiB
C
|
#include <stdint.h>
|
||
|
#include <stdbool.h>
|
||
|
#include <SDL2/SDL.h>
|
||
|
#include "display.h"
|
||
|
|
||
|
bool is_running = false;
|
||
|
|
||
|
void setup(void) {
|
||
|
// Allocate the required memory in bytes to hold color buffer
|
||
|
color_buffer = (uint32_t *) malloc(sizeof(uint32_t) * window_width * window_height);
|
||
|
|
||
|
// Creating the SDL Texture that is uses to display the color buffer
|
||
|
color_buffer_texture = SDL_CreateTexture(
|
||
|
renderer,
|
||
|
SDL_PIXELFORMAT_ARGB8888,
|
||
|
SDL_TEXTUREACCESS_STREAMING,
|
||
|
window_width,
|
||
|
window_height
|
||
|
);
|
||
|
}
|
||
|
|
||
|
void process_input(void) {
|
||
|
SDL_Event event;
|
||
|
SDL_PollEvent(&event);
|
||
|
|
||
|
switch (event.type) {
|
||
|
case SDL_QUIT:
|
||
|
is_running = false;
|
||
|
break;
|
||
|
case SDL_KEYDOWN:
|
||
|
if (event.key.keysym.sym == SDLK_ESCAPE) {
|
||
|
is_running = false;
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
void update(void) {
|
||
|
}
|
||
|
|
||
|
|
||
|
void render(void) {
|
||
|
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
|
||
|
SDL_RenderClear(renderer);
|
||
|
|
||
|
clear_color_buffer(0xFF000000);
|
||
|
draw_grid(10);
|
||
|
draw_rect(50, 50, 640, 480, 0xFFDD00DD);
|
||
|
render_color_buffer();
|
||
|
|
||
|
SDL_RenderPresent(renderer);
|
||
|
}
|
||
|
|
||
|
|
||
|
int main(void) {
|
||
|
is_running = initialize_window();
|
||
|
setup();
|
||
|
while (is_running) {
|
||
|
process_input();
|
||
|
update();
|
||
|
render();
|
||
|
}
|
||
|
destroy_window();
|
||
|
return 0;
|
||
|
}
|