我通過從編程的OpenGL的一些實例工作申報指南2.1版glFogCoordf並沒有在此範圍內
我知道我應該使用OpenGL版本4,因爲這是現在已經過時了,我將努力我到版本4的方式,所以不要擔心。
我遇到的問題是使用'glFogCoordf'這是一個顯然不存在的函數的例子之一!
代碼:
#include <GL/glut.h>
#include <cstdlib>
#include <iostream>
static GLfloat f1, f2, f3;
static void init()
{
GLfloat fogColor[4] = { 0.0, 0.25, 0.5, 1.0 };
f1 = 1.0f;
f2 = 5.0f;
f3 = 10.0f;
glEnable(GL_FOG);
glFogi(GL_FOG_MODE, GL_EXP);
glFogfv(GL_FOG_COLOR, fogColor);
glFogf(GL_FOG_DENSITY, 0.25);
glHint(GL_FOG_HINT, GL_DONT_CARE);
glFogi(GL_FOG_COORD_SRC, GL_FOG_COORD);
glClearColor(0.0, 0.25, 0.25, 1.0);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1.0f, 0.75f, 0.0f);
glBegin(GL_TRIANGLES);
glFogCoordf(f1);
glVertex3f(2.0f, -2.0f, 0.0f);
glFogCoordf(f2);
glVertex3f(-2.0f, 0.0f, -5.0f);
glFogCoordf(f3);
glVertex3f(0.0f, 2.0f, -10.0f);
glEnd();
glutSwapBuffers();
}
所有其他GL ...()函數都工作過,現在glFogCoord {} FD()和glFogCoord {} FD V()似乎並不存在.. 。我從來沒有這兩種工作方式中的任何一種,CodeBlocks內部的代碼完成工具無法識別'glFog'的完成。
任何人都知道這可能是什麼原因?
* Linux:P-glGetString()給我:3.0 Mesa 9.1.3 – user3728501
擴展機制仍然是獲取這樣的函數指針所需的方法。 Windows的'opengl32.dll'僅導出GL 1.1函數,在linux中有一個半標準要求它導出GL1.2,但是'glFogCoord'來自GL 1.4 ... – derhass