DI-Guy SDK Documentation  13.7.1
diguyOglGraphicsFrameBuffer.h
Go to the documentation of this file.
1 #pragma once
2 
3 #if WIN32
4 #include <windows.h>
5 #endif
6 // needed for function prototypes
7 #include <GL/glew.h>
8 #include <GL/gl.h>
9 
11 
17 {
18 public:
19 
22 
23  virtual int resize(int width, int height) override;
24 
25  virtual void bind() override;
26  virtual void clear() override;
27  virtual void unbind() override;
28 
29  virtual GLuint get_texture_id() override { return m_texture_id; }
30  virtual GLuint get_frame_buffer_id() override { return m_frame_buffer_object_id; }
31  virtual GLuint get_depth_texture_id() override { return m_depth_texture_id; };
32 
33  int get_width() { return m_width; }
34  int get_height() { return m_height; }
35 
36 private:
37 
38  int create_buffers();
39 
40  int check_status();
41 
42  int destroy_buffers();
43 
44  /*
45  * Common data members.
46  */
47 
49 
51  GLuint m_texture_id;
53 
54  /*
55  * Frame buffer object data members.
56  */
58 
61 
62  /*
63  * State to save and restore between bind() and unbind().
64  */
65  int m_original_vp[4];
68 
69 };
70 
71 
79 
int m_original_FBO_id
Definition: diguyOglGraphicsFrameBuffer.h:66
GLuint m_texture_id
Definition: diguyOglGraphicsFrameBuffer.h:51
virtual GLuint get_texture_id() override
Definition: diguyOglGraphicsFrameBuffer.h:29
int get_width()
Definition: diguyOglGraphicsFrameBuffer.h:33
GLuint m_depth_texture_id
Definition: diguyOglGraphicsFrameBuffer.h:52
int m_original_RBO_id
Definition: diguyOglGraphicsFrameBuffer.h:67
int get_height()
Definition: diguyOglGraphicsFrameBuffer.h:34
virtual void unbind() override
unbinds the frame buffer, presumably restores the main view rendering
Definition: diguyOglGraphicsFrameBuffer.cpp:136
virtual void bind() override
binds the frame buffer
Definition: diguyOglGraphicsFrameBuffer.cpp:62
int m_height
Definition: diguyGraphicsFrameBuffer.h:81
A class that represents a frame buffer, this is used by the graphics api to enable shadow maps in pro...
Definition: diguyGraphicsFrameBuffer.h:26
int destroy_buffers()
Definition: diguyOglGraphicsFrameBuffer.cpp:440
GLuint m_frame_buffer_object_id
Definition: diguyOglGraphicsFrameBuffer.h:59
Subclass to allow diguy to create frame buffers.
Definition: diguyOglGraphicsFrameBuffer.h:16
int check_status()
Definition: diguyOglGraphicsFrameBuffer.cpp:385
virtual ~diguyOglGraphicsFrameBuffer()
Definition: diguyOglGraphicsFrameBuffer.cpp:33
int m_width
Definition: diguyGraphicsFrameBuffer.h:80
virtual GLuint get_depth_texture_id() override
Definition: diguyOglGraphicsFrameBuffer.h:31
virtual int resize(int width, int height) override
Definition: diguyOglGraphicsFrameBuffer.cpp:41
bool m_enable_mipmaps
Definition: diguyOglGraphicsFrameBuffer.h:48
diguyGraphicsFrameBuffer * diguyOglGraphicsFrameBuffer_create_func()
Create function declaration.
Definition: diguyOglGraphicsFrameBuffer.cpp:11
bool m_initialized
Definition: diguyOglGraphicsFrameBuffer.h:50
GLuint m_depth_render_buffer_id
Definition: diguyOglGraphicsFrameBuffer.h:60
virtual void clear() override
clears the frame buffer
Definition: diguyOglGraphicsFrameBuffer.cpp:129
bool m_fbo_valid
Definition: diguyOglGraphicsFrameBuffer.h:57
virtual GLuint get_frame_buffer_id() override
Definition: diguyOglGraphicsFrameBuffer.h:30
diguyOglGraphicsFrameBuffer()
Definition: diguyOglGraphicsFrameBuffer.cpp:16
int m_original_vp[4]
Definition: diguyOglGraphicsFrameBuffer.h:65
int create_buffers()
Definition: diguyOglGraphicsFrameBuffer.cpp:160