Класс буфера рендера
This commit is contained in:
		
							parent
							
								
									e0404750f1
								
							
						
					
					
						commit
						153c905ba5
					
				| @ -73,4 +73,16 @@ class FBO | ||||
|         GLuint handler; // Дескриптор
 | ||||
| }; | ||||
| 
 | ||||
| // Объект буфера рендера
 | ||||
| class RBO | ||||
| { | ||||
|     public: | ||||
|         RBO(int w, int h, GLuint component = GL_DEPTH_COMPONENT); // Создает буфер рендера с заданными параметрами размеров и используемых компонент
 | ||||
|         ~RBO(); // Уничтожение буфера
 | ||||
| 
 | ||||
|         GLuint getHandler(); // Возвращает дескриптор буфера рендера
 | ||||
|     protected: | ||||
|         GLuint handler; // Дескриптор
 | ||||
| }; | ||||
| 
 | ||||
| #endif // BUFFERS_H
 | ||||
|  | ||||
| @ -174,3 +174,23 @@ void FBO::assignRenderBuffer(GLuint hander, GLuint attachment) | ||||
| { | ||||
|     glFramebufferRenderbuffer(GL_FRAMEBUFFER, attachment, GL_RENDERBUFFER, hander); | ||||
| } | ||||
| 
 | ||||
| // Создает буфер рендера с заданными параметрами размеров и используемых компонент
 | ||||
| RBO::RBO(int w, int h, GLuint component) | ||||
| { | ||||
|     glGenRenderbuffers(1, &handler); | ||||
|     glBindRenderbuffer(GL_RENDERBUFFER, handler); | ||||
|     glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, w, h); | ||||
| } | ||||
| 
 | ||||
| // Уничтожение буфера
 | ||||
| RBO::~RBO() | ||||
| { | ||||
|     glDeleteRenderbuffers(1, &handler); | ||||
| } | ||||
| 
 | ||||
| // Возвращает дескриптор буфера рендера
 | ||||
| GLuint RBO::getHandler() | ||||
| { | ||||
|     return handler; | ||||
| } | ||||
|  | ||||
| @ -125,11 +125,8 @@ int main(void) | ||||
|     Texture colors(WINDOW_WIDTH, WINDOW_HEIGHT, GL_COLOR_ATTACHMENT0); | ||||
|     Texture normals(WINDOW_WIDTH, WINDOW_HEIGHT, GL_COLOR_ATTACHMENT1, 0, GL_RGBA16F);  | ||||
|     // Создадим буфер рендера под буфер глубины и привяжем его
 | ||||
|     unsigned int rbo; | ||||
|     glGenRenderbuffers(1, &rbo); | ||||
|     glBindRenderbuffer(GL_RENDERBUFFER, rbo); | ||||
|     glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, WINDOW_WIDTH, WINDOW_HEIGHT); | ||||
|     fbo.assignRenderBuffer(rbo); | ||||
|     RBO rbo(WINDOW_WIDTH, WINDOW_HEIGHT); | ||||
|     fbo.assignRenderBuffer(rbo.getHandler()); | ||||
|     // Активируем базовый буфер кадра
 | ||||
|     FBO::useDefault(); | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user