Класс буфера рендера
This commit is contained in:
parent
2f63a57fd7
commit
d69800a466
|
@ -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…
Reference in New Issue