rayzor

diff src/renderer.cc @ 14:a9a948809c6f

starting the renderer screen, plus misc stuff
author John Tsiombikas <nuclear@member.fsf.org>
date Sun, 13 Apr 2014 08:06:21 +0300
parents 70e332156d02
children be616b58df99
line diff
     1.1 --- a/src/renderer.cc	Sat Apr 12 23:37:55 2014 +0300
     1.2 +++ b/src/renderer.cc	Sun Apr 13 08:06:21 2014 +0300
     1.3 @@ -1,10 +1,46 @@
     1.4 +#include <string.h>
     1.5  #include "renderer.h"
     1.6 +#include "rayzor.h"
     1.7 +#include "keyb.h"
     1.8 +#include "scrman.h"
     1.9 +
    1.10 +struct RendererImpl {
    1.11 +	bool in_progress;
    1.12 +	int cur_x, cur_y;	// current pixel being rendered
    1.13 +	int cur_pix;		// current pixel (linear)
    1.14 +};
    1.15  
    1.16  Renderer::Renderer()
    1.17  {
    1.18  	set_name("renderer");
    1.19  }
    1.20  
    1.21 +bool Renderer::init()
    1.22 +{
    1.23 +	rend = new RendererImpl;
    1.24 +	memset(rend, 0, sizeof *rend);
    1.25 +	return true;
    1.26 +}
    1.27 +
    1.28 +void Renderer::shutdown()
    1.29 +{
    1.30 +	if(rend) {
    1.31 +		delete rend;
    1.32 +		rend = 0;
    1.33 +	}
    1.34 +}
    1.35 +
    1.36  void Renderer::draw() const
    1.37  {
    1.38 +	memset(fb_pixels, 0, fb_width * fb_height * 4);
    1.39  }
    1.40 +
    1.41 +void Renderer::handle_keyboard(int key, bool press)
    1.42 +{
    1.43 +	switch(key) {
    1.44 +	case KB_ESC:
    1.45 +		deactivate_screen();
    1.46 +		break;
    1.47 +
    1.48 +	}
    1.49 +}