2013-04-26 41 views
1

我想設置一個幀緩衝區對象,但我得到錯誤。 glGenFramebuffers和glBindFramebuffer等其他類似的東西一樣都是未聲明的。glGenFramebuffers,glBindFramebuffer等未公開

我相信問題是與導入有關,但我不確定如何去解決這個問題。有可能無法正確安裝,但我還沒有找到一個簡單的解釋來說明如何完全設置它。

這是失敗的代碼。

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

我在Windows機器上使用32位版本的Dev C++

這裏是整個代碼文件的鏈接 https://dl.dropboxusercontent.com/u/13330596/Exercise1.cpp

請詢問任何更多信息

回答

5

你似乎已經對正常鏈接glew32.lib,但我沒有看到你實際上包括<GL/glew.h>代替<GL/gl.h>。後者只聲明瞭OpenGL 1.1以上的函數,而前者提供了所有擴展和核心功能> 1.1(如FBO)的聲明。

+0

好的,所以當我PUT GL/glew.h中出現錯誤時,還有另一個說法「84:2 C:\ Dev-Cpp \ include \ GL \ glew.h#在glew.h之前包含錯誤gl.h「。我嘗試在glu.h之前包括glew,但是然後我得到「Aborted(program collect2)」 – 2013-04-26 11:14:40

+0

@AdamKenworthy嘗試在''之前加入它(因爲我認爲這可能會引入'gl.h')。 – 2013-04-26 11:21:32

+0

在glut之上移動glew會給我提供與訂購相同的錯誤。我在#頂部包含了「WindowingSystem.h」,它包含#include 。這是否意味着包含windowingsystem在我的主文件中也包含過剩? – 2013-04-26 11:28:36

0

我在我的windows xp virtualbox上重新安裝了DevCpp。然後,我正常安裝了過量,並且與glew devpack一樣。然後它立即開始工作。我現在使用的版本是4.9.9.2