RE: XvShmPutImage with XDraw commands

2003-11-13 Thread Steve Thrash
   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)

2003-11-13 Thread Marc Aurele La France
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()

2003-11-13 Thread theoharis tsenis
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)

2003-11-13 Thread Craig Groeschel
 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

2003-11-13 Thread Tim Roberts
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

2003-11-13 Thread Torrey Lyons
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

2003-11-13 Thread David Dawes
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();