Я хочу реализовать объект Framebuffer в моей программе. Я включил
#include <GL/glew.h>
#include <GL/glut.h>
Я получаю следующие ошибки:
error: ‘glGenFrameBuffers was not declared in this scope
error: ‘GL_FRAME_BUFFER was not declared in this scope
error: ‘glBindFrameBuffer was not declared in this scope
Мой код для создания объекта Framebuffer выглядит следующим образом:
GLuint fbo;
glGenFrameBuffers(1 , &fbo);
glBindFrameBuffer(GL_FRAME_BUFFER, fbo);
Когда я запускаю следующий код для создания буфера Vertex Object, проект компилирует:
GLuint vbod;
glGenBuffers(1 , &vbod);
glBindBuffer(GL_ARRAY_BUFFER, vbod);
Framebuffer считается одним словом, поэтому используйте buffers
нижним регистром и удаляем подчеркивание из константы:
GLuint fbo;
glGenFramebuffers(1 , &fbo);
glBindFramebuffer(GL_FRAMEBUFFER, fbo);
Framebuffer
- это одно слово, гораздо понятнее, что они не являются объектами буфера. Это просто объекты, чье имя оканчивается на «... buffer»;) Это важное различие для многих вещей, потому что Буферные объекты в OpenGL имеют уникальные свойства, когда речь идет о распределении ресурсов, совместном использовании и т. Д.