Implementacja OGL

Paweł Gołaszewski blues w pld-linux.org
Pią, 15 Lip 2005, 23:32:32 CEST


Chciałem sobie na w ramach odpoczynku zrobić mistlands na weekend i 
pojawił się dosyć duży problem (szkoda, że binarka nie działa...)

g++               -O3 -march=pentium -I/usr/include/lua50 -I/usr/include -I/usr/include/AL   -c -o camera.o camera.cpp
camera.cpp: In constructor `Camera::Camera(Vector3, Vector3, float, float, float, float)':
camera.cpp:140: error: `GL_MAX_RENDERBUFFER_SIZE_EXT' undeclared (first use this function)
camera.cpp:140: error: (Each undeclared identifier is reported only once for each function it appears in.)
camera.cpp:176: error: `glGenFramebuffersEXT' undeclared (first use this function)
camera.cpp:177: error: `glGenRenderbuffersEXT' undeclared (first use this function)
camera.cpp:181: error: `GL_FRAMEBUFFER_EXT' undeclared (first use this function)
camera.cpp:181: error: `glBindFramebufferEXT' undeclared (first use this function)
camera.cpp:186: error: `GL_RENDERBUFFER_EXT' undeclared (first use this function)
camera.cpp:186: error: `glBindRenderbufferEXT' undeclared (first use this function)
camera.cpp:188: error: `glRenderbufferStorageEXT' undeclared (first use this function)
camera.cpp:190: error: `GL_COLOR_ATTACHMENT0_EXT' undeclared (first use this function)
camera.cpp:191: error: `glFramebufferRenderbufferEXT' undeclared (first use this function)
camera.cpp:197: error: `GL_DEPTH_ATTACHMENT_EXT' undeclared (first use this function)
camera.cpp:198: error: `glFramebufferTexture2DEXT' undeclared (first use this function)
camera.cpp:202: error: `glCheckFramebufferStatusEXT' undeclared (first use this function)
camera.cpp:205: error: `GL_FRAMEBUFFER_COMPLETE_EXT' undeclared (first use this function)
camera.cpp:208: error: `GL_FRAMEBUFFER_UNSUPPORTED_EXT' undeclared (first use this function)
camera.cpp: In destructor `virtual Camera::~Camera()':
camera.cpp:248: error: `glDeleteFramebuffersEXT' undeclared (first use this function)
camera.cpp:251: error: `glDeleteRenderbuffersEXT' undeclared (first use this function)
camera.cpp: In member function `void Camera::MakeShadowTexture(const Vector3&, const Vector3&, unsigned int)':
camera.cpp:453: error: `glBindFramebufferEXT' undeclared (first use this function)
make: *** [camera.o] Błąd 1


Krótkie góglanie wykazała, że chyba mamy zbyt starą implementację OpenGL.
http://oss.sgi.com/projects/ogl-sample/ABI/#5

Poza tym - glext mamy w kilku miejscach i kilku pakietach:
X11-OpenGL-devel-base-6.8.2-7
X11-driver-nvidia-devel-1.0.7174-2
crossmingw32-w32api-3.2-1
gtkglext-devel-1.0.6-1

Powiedzmy, że nvidia i cross* jest tutaj osobnym przypadkiem, jednak na 
pewno nie jest wskazane, że by gtkglext miało swoją własną kopię, która 
niczym się nie różni od systemowej... Jest zresztą w miejscu niezgodnym ze 
wskazaniami sgi. IMO to jest do poprawienia.

nvidia ma tutaj nagłówki w dobrej już wersji... choć nie do końca:
In file included from camera.cpp:8:
/usr/include/GL/glxext.h:381: error: `PFNGLXGETPROCADDRESSPROC' was not declared in this scope
/usr/include/GL/glxext.h:381: error: typedef `__GLXextFuncPtr' is initialized (use __typeof__ instead)


Zasadnicze pytanie jest - co z tym można zrobić?

-- 
pozdr.  Paweł Gołaszewski 
--------------------------------------------------------------------------
Politechnika Gdańska - Centrum Informatyczne TASK (http://www.task.gda.pl)
ul. Narutowicza 11/12, 80-952 Gdańsk      tel: (0-58) 3471880 fax: 3471006
sip:blues w task.gda.pl                              jid:blues w jabber.gda.pl


Więcej informacji o liście dyskusyjnej pld-devel-pl