Excellent, thanks for the good work.
-nate
On 3/16/07, Pedro Mitsuo Shiroma <[EMAIL PROTECTED]> wrote:
> Hello,
>
> I've made a small change in the InitGLXP function and could get glxp
> rendering to stop crashing gazebo. It still has some rendering problems
> (specially when checking the frustrum option) but at least hw
> acceleration is working.
>
> My computer has a ATI Radeon xpress 200M ghaphic card with the ati-fglrx
> driver installed.
>
> Bests,
> Pedro
>
> int GLContext::InitGLXP( GLXContext shareList )
> {
> #ifdef HAVE_PBUFFER
> XVisualInfo *visual;
> GLXFBConfig config, *configs;
> int i;
> int nitems;
>
> // TODO: honor color bits request
>
> int attrib[] =
> {
> // GLX_DOUBLEBUFFER, False,
> GLX_RED_SIZE, 1,
> GLX_GREEN_SIZE, 1,
> GLX_BLUE_SIZE, 1,
> GLX_DEPTH_SIZE, this->reqDepth,
> GLX_RENDER_TYPE, GLX_RGBA_BIT,
> // GLX_DRAWABLE_TYPE, GLX_PBUFFER_BIT | GLX_WINDOW_BIT,
> None
> };
>
> int pbufAttrib[] =
> {
> GLX_PBUFFER_WIDTH, this->reqWidth,
> GLX_PBUFFER_HEIGHT, this->reqHeight,
> // GLX_RENDER_TYPE, GLX_RGBA_BIT,
> // GLX_DEPTH_SIZE, this->reqDepth,
> GLX_LARGEST_PBUFFER, False,
> None
> };
>
> int a[10];
>
> PRINT_MSG0(2, "trying GLXP pbuffer rendering");
>
> config = NULL;
> configs = glXChooseFBConfig(::display,0,attrib,&nitems);
> PRINT_GL_ERR();
> if (!configs)
> {
> PRINT_MSG0(2, "unable to create GLXP pbuffer; no matching configs");
> return -1;
> }
>
> // Get the rendering context
> this->context = glXCreateNewContext(::display, configs[0],
> GLX_RGBA_TYPE,
> shareList, True);
> PRINT_GL_ERR();
> if (!this->context)
> {
> PRINT_MSG0(2, "unable to create context");
> return -1;
> }
>
> for (i=0;i<nitems;i++)
> {
> config = configs[i];
> this->pbuffer = glXCreatePbuffer(::display, config, pbufAttrib);
> PRINT_GL_ERR();
> if (this->pbuffer)
> break;
> }
> if (!this->pbuffer)
> {
> PRINT_MSG0(2, "unable to create GLXP pbuffer;");
> return -1;
> }
>
> // Use this buffer as our drawable
> this->drawable = pbuffer;
>
> // Get the visual
> visual = glXGetVisualFromFBConfig(::display, config);
> PRINT_GL_ERR();
> if (!visual)
> {
> PRINT_MSG0(2, "unable to get suitable visual");
> return -1;
> }
>
> glXGetFBConfigAttrib(::display, config, GLX_RED_SIZE, a + 0);
> glXGetFBConfigAttrib(::display, config, GLX_GREEN_SIZE, a + 1);
> glXGetFBConfigAttrib(::display, config, GLX_BLUE_SIZE, a + 2);
> glXGetFBConfigAttrib(::display, config, GLX_ALPHA_SIZE, a + 3);
> glXGetFBConfigAttrib(::display, config, GLX_DEPTH_SIZE, a + 4);
>
> // Print some info about the configuration
> PRINT_MSG6(1, "rendering: [GLXP pbuffer] direct [%s] RGBA [%d %d %d %
> d] depth [%d]",
> (glXIsDirect(::display, this->context) ? "yes" : "no"),
> a[0], a[1], a[2], a[3], a[4]);
> return 0;
> #else
> PRINT_MSG0(2, "trying pbuffer rendering -- extension not present");
> return -1;
> #endif
> }
>
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys-and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Playerstage-gazebo mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo
>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Playerstage-gazebo mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo