RE: XvShmPutImage with XDraw commands
The flicker-free solution would be to disable the XV_AUTOPAINT_COLORKEY attribute. That prevents the driver from painting the key, leaving it entirely your responsibility. Then you can do something like draw your scene (key+graphics) into the window yourself, or if you're not changing the graphics frequently, draw it into a pixmap and set that pixmap as the window background. In that case you update the graphics by redrawing the pixmap, resetting it as the window background and then calling XClearWindow. If you do something like that, you never need to handle expose events. The server automatically paints the window background on expose events. Mark. You are right (of course) that did make for a flicker free solution. I'll have to think about some of the other implications you said - although our background will be updating at about 30 FPS - there could be good implication during freeze frame or other times. On a related note, what does the double buffering option give you? Does it allow you to call XvShmPutImage before the old image has finished drawing to the drawable? It looks like the server handles it all automatically. Also - is XvMC the right solution if I want to blend two images to an arbitrary percentage tranparency at 30 FPS using the graphics hardware? Thanks again, Steve ___ Devel mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/devel
Re: Imake: How to build static libraries (eg. for dps)
On Thu, 13 Nov 2003, Tim Krieglstein wrote: I have already posted to the debian-x mailinglist with no answers so far. :( But probably i get an answer from this list: I am tring to build debian packages of the xfree86 cvs head. There is only on problem remaining: How do i configure the files in config/cf so that static libraries for dps and other packages are produced? (these static libraries like libdps[1].a are needed for the libdps-devel package) I added to host.def the following lines, with no success: #ifndef DoNormalLib #define DoNormalLib YES #endif #ifndef DoSharedLib #define DoSharedLib YES That's expected. I'd remove that if I were you. any other suggestions? I use a hammer approach. Set ForceNormalLib to YES, which will build archives for all libraries, in addition to shared objects. You can be more selective than that, of course. But, frankly, it's not worth the effort. Marc. +--+---+ | Marc Aurele La France | work: 1-780-492-9310 | | Computing and Network Services | fax:1-780-492-1729 | | 352 General Services Building | email: [EMAIL PROTECTED] | | University of Alberta +---+ | Edmonton, Alberta | | | T6G 2H1 | Standard disclaimers apply| | CANADA | | +--+---+ XFree86 Core Team member. ATI driver and X server internals. ___ Devel mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/devel
Problem XCheckWindowEvent()
Hi, at the end of a routine i want to remove the mouse-buttons events. For that purpose i use: while(XCheckWindowEvent(...)){}; When program runs the above statement never loops and the events are never removed from the queue. If i use first the XNextEvent and then the XCheckWindowEvent the events are removed properly. The main problem with the XNextEvent is that it waits for an event. I use the XPending instead of the XNextEvent with no success. Any ideas to have a function like the PeekMessage(hwnd,...,PM_REMOVE)_w98 alike? Regards, Teo. Enter now for a chance to win a 42 Plasma Television! http://ad.doubleclick.net/clk;6413623;3807821;f?http://mocda1.com/1/c/563632/113422/313631/313631 AOL users go here: http://ad.doubleclick.net/clk;6413623;3807821;f?http://mocda1.com/1/c/563632/113422/313631/313631 This offer applies to U.S. Residents Only ___ Devel mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/devel
Re: Imake: How to build static libraries (eg. for dps)
I added to host.def the following lines, with no success: #ifndef DoNormalLib #define DoNormalLib YES #endif #ifndef DoSharedLib #define DoSharedLib YES The Do*Lib symbols are only supposed to be set by imake in each library's directory. If I remember correctly, you want to set symbols like NormalLibX11, NormalLibXt, etc. in host.def. (Or hack the Do*Lib symbols in each xc/lib/*/Imakefile.) (In the library's imakefile you should see lines like define DoNormalLib NormalLibX11.) PS: please CC me = -- Craig Groeschel ladder91 at yahoo dot com AT '00 Tread lightly. Leave no trace. Never forget. Fuel is a resource; people aren't. Dennis Bakke When replying, please do not quote my entire message. __ Do you Yahoo!? Protect your identity with Yahoo! Mail AddressGuard http://antispam.yahoo.com/whatsnewfree ___ Devel mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/devel
RE: XvShmPutImage with XDraw commands
On Thu, 13 Nov 2003 08:51:25 -0500, Steve Thrash wrote: Also - is XvMC the right solution if I want to blend two images to an arbitrary percentage tranparency at 30 FPS using the graphics hardware? Unless I have missed a staff meeting somewhere, XvMC is specifically designed to allow hardware acceleration of MPEG motion compensation vectors. It is VERY specific to the MPEG protocol, and is likely of no use in any other context. The xrender extension can do alpha blending, although driver support is still lacking. -- - Tim Roberts, [EMAIL PROTECTED] Providenza Boekelheide, Inc. ___ Devel mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/devel
Re: glx failing
At 10:01 AM -0800 11/10/03, Ian Romanick wrote: Frank Gießler wrote: with my current CVS snapshot (Changelog up to #530), glxgears gives me the following at startup: X Error of failed request: BadLength (poly request too large or internal Xlib length error) Major opcode of failed request: 144 (GLX) Minor opcode of failed request: 1 (X_GLXRender) Serial number of failed request: 22 Current serial number in output stream: 23 This used to work before. I've seen this on both OS/2 and SuSE Linux 8.2 (XFree CVS built without DRI). Any idea what this means and/or where I should look? Can you give any details to help reproduce this error? There is a reported bug in this area, but I thought that it was fixed. Your XF86Config would also be useful. http://bugs.xfree86.org/show_bug.cgi?id=439 I'll put this on Bugzilla as well, but it is quite easy on XDarwin to reproduce this error. GLX fails consistently with indirect rendering and worked properly in 4.3.0. Only direct rendering works now. [65:~] torrey% glxgears 2006 frames in 5.0 seconds = 401.200 FPS ^C [65:~] torrey% setenv LIBGL_ALWAYS_INDIRECT 1 [65:~] torrey% glxgears X Error of failed request: BadLength (poly request too large or internal Xlib length error) Major opcode of failed request: 151 (GLX) Minor opcode of failed request: 1 (X_GLXRender) Serial number of failed request: 22 Current serial number in output stream: 23 This bug is still present in the top of the tree. --Torrey ___ Devel mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/devel
Re: glx failing
On Thu, Nov 13, 2003 at 04:40:30PM -0800, Torrey Lyons wrote: At 10:01 AM -0800 11/10/03, Ian Romanick wrote: Frank Gießler wrote: with my current CVS snapshot (Changelog up to #530), glxgears gives me the following at startup: X Error of failed request: BadLength (poly request too large or internal Xlib length error) Major opcode of failed request: 144 (GLX) Minor opcode of failed request: 1 (X_GLXRender) Serial number of failed request: 22 Current serial number in output stream: 23 This used to work before. I've seen this on both OS/2 and SuSE Linux 8.2 (XFree CVS built without DRI). Any idea what this means and/or where I should look? Can you give any details to help reproduce this error? There is a reported bug in this area, but I thought that it was fixed. Your XF86Config would also be useful. http://bugs.xfree86.org/show_bug.cgi?id=439 I'll put this on Bugzilla as well, but it is quite easy on XDarwin to reproduce this error. GLX fails consistently with indirect rendering and worked properly in 4.3.0. Only direct rendering works now. [65:~] torrey% glxgears 2006 frames in 5.0 seconds = 401.200 FPS ^C [65:~] torrey% setenv LIBGL_ALWAYS_INDIRECT 1 [65:~] torrey% glxgears X Error of failed request: BadLength (poly request too large or internal Xlib length error) Major opcode of failed request: 151 (GLX) Minor opcode of failed request: 1 (X_GLXRender) Serial number of failed request: 22 Current serial number in output stream: 23 This bug is still present in the top of the tree. The patch below fixes the problem. The command lengths for several rendering requests were getting set incorrectly because of mis-ordered variable initialisations. I'm committing it now. Index: g_render.c === RCS file: /home/x-cvs/xc/lib/GL/glx/g_render.c,v retrieving revision 1.5 diff -u -r1.5 g_render.c --- g_render.c 28 Sep 2003 20:15:01 - 1.5 +++ g_render.c 14 Nov 2003 04:17:00 - @@ -1639,8 +1639,8 @@ void glFogfv(GLenum pname, const GLfloat *params) { __GLX_DECLARE_VARIABLES(); - compsize = __glFogfv_size(pname); __GLX_LOAD_VARIABLES(); + compsize = __glFogfv_size(pname); cmdlen = 8+compsize*4; __GLX_BEGIN(X_GLrop_Fogfv,cmdlen); __GLX_PUT_LONG(4,pname); @@ -1661,8 +1661,8 @@ void glFogiv(GLenum pname, const GLint *params) { __GLX_DECLARE_VARIABLES(); - compsize = __glFogiv_size(pname); __GLX_LOAD_VARIABLES(); + compsize = __glFogiv_size(pname); cmdlen = 8+compsize*4; __GLX_BEGIN(X_GLrop_Fogiv,cmdlen); __GLX_PUT_LONG(4,pname); @@ -1703,8 +1703,8 @@ void glLightfv(GLenum light, GLenum pname, const GLfloat *params) { __GLX_DECLARE_VARIABLES(); - compsize = __glLightfv_size(pname); __GLX_LOAD_VARIABLES(); + compsize = __glLightfv_size(pname); cmdlen = 12+compsize*4; __GLX_BEGIN(X_GLrop_Lightfv,cmdlen); __GLX_PUT_LONG(4,light); @@ -1727,8 +1727,8 @@ void glLightiv(GLenum light, GLenum pname, const GLint *params) { __GLX_DECLARE_VARIABLES(); - compsize = __glLightiv_size(pname); __GLX_LOAD_VARIABLES(); + compsize = __glLightiv_size(pname); cmdlen = 12+compsize*4; __GLX_BEGIN(X_GLrop_Lightiv,cmdlen); __GLX_PUT_LONG(4,light); @@ -1750,8 +1750,8 @@ void glLightModelfv(GLenum pname, const GLfloat *params) { __GLX_DECLARE_VARIABLES(); - compsize = __glLightModelfv_size(pname); __GLX_LOAD_VARIABLES(); + compsize = __glLightModelfv_size(pname); cmdlen = 8+compsize*4; __GLX_BEGIN(X_GLrop_LightModelfv,cmdlen); __GLX_PUT_LONG(4,pname); @@ -1772,8 +1772,8 @@ void glLightModeliv(GLenum pname, const GLint *params) { __GLX_DECLARE_VARIABLES(); - compsize = __glLightModeliv_size(pname); __GLX_LOAD_VARIABLES(); + compsize = __glLightModeliv_size(pname); cmdlen = 8+compsize*4; __GLX_BEGIN(X_GLrop_LightModeliv,cmdlen); __GLX_PUT_LONG(4,pname); @@ -1814,8 +1814,8 @@ void glMaterialfv(GLenum face, GLenum pname, const GLfloat *params) { __GLX_DECLARE_VARIABLES(); - compsize = __glMaterialfv_size(pname); __GLX_LOAD_VARIABLES(); + compsize = __glMaterialfv_size(pname); cmdlen = 12+compsize*4; __GLX_BEGIN(X_GLrop_Materialfv,cmdlen); __GLX_PUT_LONG(4,face); @@ -1838,8 +1838,8 @@ void glMaterialiv(GLenum face, GLenum pname, const GLint *params) { __GLX_DECLARE_VARIABLES(); - compsize = __glMaterialiv_size(pname); __GLX_LOAD_VARIABLES(); + compsize = __glMaterialiv_size(pname); cmdlen = 12+compsize*4; __GLX_BEGIN(X_GLrop_Materialiv,cmdlen); __GLX_PUT_LONG(4,face); @@ -1902,8 +1902,8 @@ void glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params) { __GLX_DECLARE_VARIABLES();