CMU462 Library  1.0
15-462/15-662: Computer Graphics (Fall 2015)
renderer.h
1 #ifndef CMU462_RENDERER_H
2 #define CMU462_RENDERER_H
3 
4 #include "CMU462.h"
5 
6 #include <stdio.h>
7 #include <string>
8 
9 namespace CMU462 {
10 
21 class Renderer {
22  public:
23 
29  virtual ~Renderer( void ) { }
30 
37  virtual void init( void ) = 0;
38 
44  virtual void render( void ) = 0;
45 
54  virtual void resize( size_t w, size_t h ) = 0;
55 
61  virtual std::string name( void ) = 0;
62 
68  virtual std::string info( void ) = 0;
69 
79  virtual void cursor_event( float x, float y ) { }
80 
89  virtual void scroll_event( float offset_x, float offset_y ) { }
90 
102  virtual void mouse_event( int key, int event, unsigned char mods ) { }
103 
115  virtual void keyboard_event( int key, int event, unsigned char mods ) { }
116 
122 
123  protected:
124 
125  bool use_hdpi;
126 
127 };
128 
129 } // namespace CMU462
130 
131 #endif // CMU462_RENDERER_H
virtual ~Renderer(void)
Virtual Destructor.
Definition: renderer.h:29
virtual void init(void)=0
Initialize the renderer.
virtual void resize(size_t w, size_t h)=0
Respond to buffer resize.
virtual std::string info(void)=0
Return a brief description of the renderer.
Definition: CMU462.h:8
Abstract renderer definition.
Definition: renderer.h:21
void use_hdpi_reneder_target()
Internal - The viewer will tell the renderer if the screen is in HDPI mode.
Definition: renderer.h:121
virtual void scroll_event(float offset_x, float offset_y)
Respond to zoom event.
Definition: renderer.h:89
bool use_hdpi
if the render target is using HIDPI
Definition: renderer.h:125
virtual void render(void)=0
Draw content.
virtual void mouse_event(int key, int event, unsigned char mods)
Respond to mouse click event.
Definition: renderer.h:102
virtual void keyboard_event(int key, int event, unsigned char mods)
Respond to keyboard event.
Definition: renderer.h:115
virtual std::string name(void)=0
Return a name for the renderer.
virtual void cursor_event(float x, float y)
Respond to cursor events.
Definition: renderer.h:79