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