rts

rts.git
git clone git://git.lenczewski.org/rts.git
Log | Files | Refs

renderer.c (1068B)


      1 #include "renderer.h"
      2 
      3 struct renderer {
      4 	u32 width, height;
      5 };
      6 
      7 internal struct renderer *
      8 create_renderer(struct arena *arena, u32 width, u32 height)
      9 {
     10 	struct renderer *renderer = ALLOC_SIZED(arena, struct renderer);
     11 	assert(renderer);
     12 
     13 	renderer->width = width;
     14 	renderer->height = height;
     15 
     16 	return renderer;
     17 }
     18 
     19 RENDERER_BEGIN_FRAME(renderer_begin_frame)
     20 {
     21 	// TODO: implement real frame begin logic, instead of just satisfying
     22 	// an ASSERT()
     23 	return (void *) renderer;
     24 }
     25 
     26 RENDERER_BEGIN_RENDER_PASS(renderer_begin_render_pass)
     27 {
     28 }
     29 
     30 RENDERER_CLEAR_SCREEN(renderer_clear_screen)
     31 {
     32 	glClearColor(colour->r, colour->g, colour->b, colour->a);
     33 	glClear(GL_COLOR_BUFFER_BIT);
     34 }
     35 
     36 RENDERER_END_RENDER_PASS(renderer_end_render_pass)
     37 {
     38 }
     39 
     40 RENDERER_END_FRAME(renderer_end_frame)
     41 {
     42 }
     43 
     44 internal void
     45 load_renderer_api(struct renderer_api *api)
     46 {
     47 	api->begin_frame = renderer_begin_frame;
     48 	api->begin_render_pass = renderer_begin_render_pass;
     49 	api->clear_screen = renderer_clear_screen;
     50 	api->end_render_pass = renderer_end_render_pass;
     51 	api->end_frame = renderer_end_frame;
     52 }