2013-04-26 3 views
1

Я пытаюсь настроить объект буфера кадра, но я получаю ошибки. glGenFramebuffers всегда не объявлены, как и другие подобные вещи, такие как glBindFramebuffer.glGenFramebuffers, glBindFramebuffer и т. Д. Undeclared

Я считаю, что проблема связана с импортом, но я не уверен, как это сделать. Существует вероятность того, что glew не может быть настроен правильно, но я не нашел простого объяснения того, как установить это полностью.

Вот код, который терпит неудачу.

myBuffer = 0; 
glGenFramebuffers(1, &myBuffer); 
glBindFramebuffer(GL_FRAMEBUFFER, myBuffer); 


glGenTextures(1, &renderedTexture); 

// Bind to new texture 
glBindTexture(GL_TEXTURE_2D, renderedTexture); 

// Blank image 
glTexImage2D(GL_TEXTURE_2D, 0,GL_RGB, 1024, 768, 0,GL_RGB, GL_UNSIGNED_BYTE, 0); 


glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 


glGenRenderbuffers(1, &dBuffer); 
glBindRenderbuffer(GL_RENDERBUFFER, dBuffer); 
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, 1024, 768); 
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, dBuffer); 



// Set "renderedTexture" as colour attachement #0 
glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, renderedTexture, 0); 

DrawBuffers[2] = {GL_COLOR_ATTACHMENT0}; 

    glDrawBuffers(1, DrawBuffers); // "1" is the size of DrawBuffers 
    // Check framebuffer is ok 
     if(glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) 
     return false; 

Это мой импорт

#include "WindowingSystem.h"   
#include <math.h> 
#include <vector> 
#include <windows.h> 
#include <GL/glut.h> 
#include <iostream> 
#include <string> 
#include <sstream>  
#include <windows.h> 
#include <mmsystem.h> 
#include <GL/glu.h> 
#include <GL/gl.h> 

Вот мои линкеры -lglut32 -lglu32 -lglew32 -lopengl32 -lwinmm

А вот ссылка на изображение моих опций компилятора https://dl.dropboxusercontent.com/u/13330596/info.png

Я использую 32-разрядную версию Dev C++ на компьютере с Windows

Вот ссылка на весь файл кода https://dl.dropboxusercontent.com/u/13330596/Exercise1.cpp

Пожалуйста, обратитесь к любой дополнительной информации

ответ

5

Вы, кажется, уже правильно установить связь с glew32.lib, но я не вижу, что вы на самом деле в том числе <GL/glew.h>вместо<GL/gl.h>. Последний только объявляет функции до OpenGL 1.1, в то время как первая предоставляет декларации для всех расширений и основных функций> 1.1 (например, FBOs).

+0

ОК, поэтому, когда я PUT GL/glew.h, я получаю сообщение об ошибке, а также другое высказывание «84: 2 C: \ Dev-Cpp \ include \ GL \ glew.h # ошибка gl.h включена до glew.h ". Я попытался включить glew перед glu.h, но потом я получил «Aborted (program collect2)» –

+0

@AdamKenworthy Попробуйте также включить его перед '' (так как я думаю, что это может привести и к 'gl.h'). –

+0

Перемещение glew над перенасыщением дает мне ту же ошибку при заказе. У меня есть #include "WindowingSystem.h" наверху, в котором есть #include внутри себя. Означает ли это, что включение оконной системы также включает перенасыщение в моем основном файле? –

0

Я переустановил DevCpp на своем виртуальном боксе Windows XP. Затем я установил перенасыщение как обычно, и то же самое с glew devpack. Затем он работал сразу. Я теперь использую версию 4.9.9.2