XdrawString+double buffer
dragoran
dragoran at feuerpokemon.de
Mon Jul 31 11:00:58 PDT 2006
Brian Paul wrote:
> dragoran wrote:
>> Brian Paul wrote:
>>
>>> dragoran wrote:
>>>
>>>> Hello
>>>> I am working on a wrapper around glxSwapbuffers. I want to display
>>>> text in openglapps.
>>>> I have tryed many different things like textures,gldrawpixels, etc.
>>>> but none of the works in all apps.
>>>> ut2004 does not even like the gldrawpixel version.
>>>> so I tryed using Xdrawstring which works in all of this apps but it
>>>> flackers because of double buffering.
>>>> how can I avoid this?
>>>> here is my code, it simply displays "test" on the appwindow...
>>>>
>>>> void glXSwapBuffers(Display* dpy, GLXDrawable drawable) {
>>>> #ifdef DEBUG
>>>> fprintf(stderr,"about to draw hud ;)\n");
>>>> #endif
>>>> Colormap cmap;
>>>> XColor c0, c1;
>>>> cmap = DefaultColormap(dpy, 0);
>>>> XAllocNamedColor(dpy, cmap, "red", &c1, &c0);
>>>> XGCValues values;
>>>> GC maingc=XCreateGC(dpy, drawable, 0 ,&values);
>>>> XSetForeground(dpy, maingc, c1.pixel);
>>>> XDrawString(dpy,drawable, maingc, 20, 50, "test",4);
>>>> pglXSwapBuffers(dpy, drawable); }
>>>
>>>
>>> It might work better to put the XDrawString() call after the
>>> SwapBuffers().
>>>
>>> Also, you may need a glXWaitGL() call between them.
>>>
>>> -Brian
>>>
>>>
>> hello
>> now I have tryed with
>> pglXSwapBuffers(dpy, drawable);
>> glXWaitGL();
>> XDrawString(dpy,drawable, maingc, 20, 50, "test",4);
>> the only thing that this causes are lower framerates but teh
>> flickering isn't gone
>
> I guess the only flicker-free solution is to draw the text with OpenGL
> commands prior to SwapBuffers(). Have you tried glWindowPos/glBitmap()?
>
> -Brian
>
>
will try the glWindowPos stuff now... (and tell you if it worked)
More information about the xorg
mailing list