Hi all,
Re: TestRenderTexture - a SG application.
The failure of TestRenderTexture in my
system turned out enormously easy to
track down ;=)) But how to fix?
I added some, about 50 ;=)), dbg_printf() statements
such as the follows, in <SG>/screen/RenderTexture.cpp :-
#define dbg_print printf
bool RenderTexture::_VerifyExtensions() {
dbg_printf("RenderTexture::_VerifyExtensions() called...\n");
[snip]
Display* dpy = glXGetCurrentDisplay();
int minor = 0, major = 0;
if (!glXQueryVersion(dpy, &major, &minor)) {
dbg_printf("_VerifyExtensions: glXQueryVersion(dpy, &major,
&minor) FAILED! returning false\n");
return false;
} else {
dbg_printf("_VerifyExtensions: glXQueryVersion(dpy, major=%d,
minor=%d)\n", major, minor);
}
int screen = DefaultScreen(dpy);
const char* extString = glXQueryExtensionsString(dpy, screen);
dbg_printf("_VerifyExtensions: glXQueryExtensionsString(dpy, screen)
returned -\n[%s]\n",
(extString ? extString : "<NULL>") );
if (!SGSearchExtensionsString(extString, "GLX_SGIX_fbconfig") ||
!SGSearchExtensionsString(extString, "GLX_SGIX_pbuffer")) {
dbg_printf("_VerifyExtensions: does NOT contain
GLX_SGIX_fbconfig or GLX_SGIX_pbuffer! return false\n" );
return false;
}
[snip]
And the text output result was :-
RenderTexture::_VerifyExtensions() called...
_VerifyExtensions: glXQueryVersion(dpy, major=1, minor=2)
_VerifyExtensions: glXQueryExtensionsString(dpy, screen) returned -
[GLX_ARB_get_proc_address GLX_ARB_multisample GLX_EXT_import_context
GLX_EXT_visual_info GLX_EXT_visual_rating GLX_OML_swap_method
GLX_SGIS_multisample GLX_SGIX_fbconfig GLX_SGIX_visual_select_group ]
_VerifyExtensions: does NOT contain GLX_SGIX_fbconfig or
GLX_SGIX_pbuffer! return false
RenderTexture::Initialize: _VerifyExtensions() FAILED - returning false.
RenderTexture Initialization failed!
SO, my glX version 1.2 is MISSING 'GLX_SGIX_pbuffer'!!!
Now, to work out what I can do about it???
It looks like I should somehow 'upgrade' to say
version 1.3, or higher, which may then contain this
missing 'pbuffer' thingy, or SOMETHING... but Synaptic
does NOT list any upgrade!
Yahoo! got me a reference saying -
http://www.opengl.org/registry/specs/SGIX/pbuffer.txt
Overview
This extension defines pixel buffers (GLXPbuffers, or pbuffer for
short). GLXPbuffers are additional non-visible rendering buffers for an
OpenGL renderer. GLXPbuffers are equivalent to GLXPixmaps with the
following exceptions:
[snip]
Since that is exactly what we want - a non-visible rendering
buffer - this looks IMPORTANT ;=))
I THINK this may be via the libraries installed, as shown
by $ dpkg -l, but there seems no 'upgrade' available...
ii libgl1-mesa-dri 7.0.3~rc2-1ubuntu3 OpenGL API
ii libgl1-mesa-glx 7.0.3~rc2-1ubuntu3 OpenGL API
but maybe I am way OFF base here ;=))
One post I found Yahooing around mentioned GLEW, and
I already have 1.5 of that installed -
ii libglew1.5 1.5.0dfsg1-3ubuntu1 The OpenGL Extension Wrangler
and have now installed glew-dev... It MAY
all be possible adding :-
#include <GL/glew.h>
// before <GL/gl.h>
[snip]
int main( int arc, char **argv) {
GLenum err=glewInit();
if(err!=GLEW_OK) { //problem: something is seriously wrong
printf("Error: glewInit() FAILED! %s\n", glewGetErrorString(err));
return -1;
}
// and then try...
glutInit(&argn, argv);
// [etc]
But I am paddling well over my head!
Any help appreciated ;=))
Geoff.
OS: Ubuntu 8.04 64-bit
VID: ATI Radeon HD 2600 XT
PS: Also posting this on the FG board, since
TestRenderTexture is a SG package... and maybe
someone there can point me in the right
direction ;=))
------------------------------------------------------------------------------
_______________________________________________
Flightgear-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel