Re: [compiz] Zoom plugin changes

2007-05-31 Thread Mike Dransfield
Kristian Lyngstøl wrote:
 I'm sorry for being rude, but I am quite upset by this, because it has
 gone too far.

 I posted a few weeks ago that I was going to be working on zoom over
 the summer to improve the accessibility, and I have already begun to
 do that. Every step of the way I have made frequent commits to
 opencompositing.org and described the progress in my blog.

 I asked for information about what your (David) plans was, you thanked
 me for informing me on what I was going to work on and said you'd get
 back to me. You never did.

 Now today you commit 11fe37b7673b15e5cbd4be21759311087d9d8694 which
 introduce major changes to the zoom plugin. You did NOT give a heads
 up on this, even though you should have known I was working on this.
   

To be fair he did mention that he was going to add
this functionality months ago, it was also demonstrated
at brainshare recently (before your initial email).

Also your email (from what I understand) just related to
orca integration and input redirection, it didn't seem to have
anything to do with todays changes.

Also from what I understand, you have forked zoom.c which
lost all the git history?  If this is the case then you should
have branched it so that these changes would be merged. I
dont think they impact your changes, do they?

 This is simply unacceptable.

 When you are going to make changes and people have already told you
 they are working on that code, you have to actually communicate with
 them, not drop a 1k diff on them. It's not just your time that matters
 here, but ours too. This is not how people are supposed to co-operate.

 And also, when you write something, you have to document it.
   

The question of documentation was discussed very recently
(and before that too).

Davids position is that HE is not prepared to spend a lot of time
documenting things because there is a good chance his
efforts will be wasted if the code changes, personally I'd rather
he spent time coding rather than documenting.  Someone else
could document things.

That does not stop anyone from submitting patches to document
certain functions which might not be clear.  I did exactly that a
few weeks ago.

 A few lines for each function, explaining what it does. You don't have
 to explain how or why, just WHAT. This is a common practice that I
 should NOT have to explain to an experience developer.
   

Its not common developer practice to document each
function.  Most people do not seem to have much problem
understanding whats what, and David is always prepared
to answer questions.  The documentation is by example at
the moment, I have 3 example plugins, the helloworld one
is documented as well as I can, and I try to keep it up to
date.

 Please document your changes to the zoom plugin properly so our USERS
 don't have to choose between two different feature sets when they want
 to zoom. Because this is about the users, not my pride.
   

If you understood the original zoom code enough to
make an enhanced version of it then it should be easy
to understand the new changes, they seem to be reducing
code and increasing readability to my untrained eyes.



___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] Changing gconf-key/apps/compiz/plugins/water/allscreens/options/initiate_keydoes not work

2007-05-31 Thread David Reveman
On Sat, 2007-05-19 at 11:27 +0200, dragoran wrote:
 Mike Cook wrote:
  On Fri, May 18, 2007 at 11:06 AM, dragoran [EMAIL PROTECTED] wrote: 
  
  Hello,
  I noticed that the control+super key kombi no longer works with the rain 
  plugin.. I went to check why and found out that its disabled in gconf. 
  so I tryed to change it back to ControlSuper (which is the default) 
  but it changes itself back to disabled... any idea why?
  
 
  Hm, I see the same problem with the Shift modifier trying to active 
  snapping
  with wobbly.  If it try to set it to ShiftT or something, then it seems 
  to take
  the Shift and it works.  I'm not sure if this is a GConf problem or 
  something
  in the Compiz metadata that's not allowing just modifiers without another 
  key.
 

 any solution? it was working before and I have not updated gconf so it 
 looks like a compiz bug

Should now be fixed.

-David

___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] Some suggestions for extra metadata

2007-05-31 Thread David Reveman
On Mon, 2007-05-21 at 14:01 +0100, Mike Dransfield wrote:
 Here are a few extra attributes which I have not seen mentioned yet
 which I think would be useful.  Any comments would be appreciated.
 
 *Version*
 
 The version of the plugin, I think the reasons for this are obvious.
 
 version
 major0/major
 minor1/minor
 patch0/patch
 /version
 
 *Addition to features*
 
 Just add an attribute to the features tag so that features can be unique
 or non-unique.  This will mean that we can add lots more features
 like 'config', 'matchhandler', 'imageloader' etc etc.  They need to be
 defined somewhere so that plugin developers can check a list of
 official features like this (whilst still adding their own if needed).
 
 feature unique=truelargedesktop/feature
 
 This should default to true if not provided.
 
 *Match Handler Tag*
 
 If a plugin provides window matching functionality then it could provide
 tags like this.
 
 matchhandler
 handler
 matchtitle/match
!-- optional command to be run to get the attribute for a window --
commandxprop | grep ^WM_NAME | .../command
 /handler
 handlername/handler
etc...
 /matchhandler
 
 *Option Group*
 
 Some plugins and the core have options which work in groups.  Hints
 can be provided to group these options so that configuration tools
 will be able to display them as a grid rather than as individual options.
 
 optiongroup
 option name=opacity_match /
 option name=opacity_values /
 /optiongroup
 
 *Web based information*
 
 I think it would be a very nice feature to add some web based
 attributes which means things can be easily updated without
 the user updating the plugin.  There are probably others that
 could be added.
 
 info
 !-- xml file with update info --
 updateurlhttp://www.example.com/plugin-update.xml/updateurl
 !-- html page with additional information about the plugin --
 infourlhttp://www.example.com/plugin-info.html/infourl
 /info
 
 screenshots
 screenshot 
 mime=text/htmlhttp://www.example.com/plugin.html/screenshot
 screenshot 
 mime=image/jpeghttp://www.example.com/plugin.jpg/screenshot
 screenshot 
 mime=application/swfhttp://www.example.com/plugin.swf/screenshot
 /screenshots

Some good ideas here. I suggest that we add things as a use for it is
implemented and not add everything we can think just in case it might be
used.

I recommend that any configuration or control utility that is interested
in compiz metadata is implemented in such a way that in can include it's
own set of additional metadata for known plugins. New tags can first be
added to the additional metadata files and if they make sense and are
useful for other configuration utilities we'll move them into the
official metadata files.

-David

___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] [PATCH] Fix imageBufferToTexture for MSBFirst platforms.

2007-05-31 Thread David Reveman
On Wed, 2007-05-23 at 15:37 +0200, Michel Dänzer wrote:
 Fixes icon colours on my PowerBook.
 
 Given that the preprocessor test was reversed when the code was reorganized 
 and
 nobody on !MSBFirst platforms complained, one code path should suffice.

Hm, I'm not sure what's going on here. I fixed the mistake from the
reorganization. If byte order doesn't actually matter for the icon data
then I think the iconToTexture function should be changed to reflect
that and not imageBufferToTexture.

 ---
  src/texture.c |5 -
  1 files changed, 0 insertions(+), 5 deletions(-)
 
 diff --git a/src/texture.c b/src/texture.c
 index 4170c70..7021643 100644
 --- a/src/texture.c
 +++ b/src/texture.c
 @@ -164,13 +164,8 @@ imageBufferToTexture (CompScreen   *screen,
 unsigned int width,
 unsigned int height)
  {
 -#if IMAGE_BYTE_ORDER == MSBFirst
 -return imageToTexture (screen, texture, image, width, height,
 -GL_BGRA, GL_UNSIGNED_BYTE);
 -#else
  return imageToTexture (screen, texture, image, width, height,
  GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV);
 -#endif
  }
  
  Bool
 -- 
 1.5.2-rc3.GIT
 
 
 
-David

___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] [PATCH] add 'sticky' mode to cube to allow sticky+not-on-bottom windows to stick to the screen when the screen is transformed

2007-05-31 Thread David Reveman
On Sun, 2007-05-27 at 19:41 -0400, Quinn Storm wrote:
 I've attached the patch since I don't yet have an easy way to make git 
 format-patch and kmail play nice together.  The basic idea is during a 
 rotate/other cube transform, 'sticky' windows stick to the screen instead of 
 being redrawn once per face (its an option, the default is the old behaviour)
 
 Consider this, please, essentially an RFC - this particular behaviour was 
 available previously in Beryl, and was (at least according to 
 screenshots/casts) widely used.

Yea, this behavior makes a lot of sense for sticky windows. The problem
is that during cube motion these windows suddenly becomes on top of
windows that they are normally stacked below and that looks pretty bad
unless it's animated.

I think it will look better if the cube is moved back a bit during
motion like when windows are being elevated and maybe it makes more
sense to make this functionality part of the 3D plugin, which btw should
hook into the cube plugin the same way rotate plugin now does.

-David

___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] status of input redirection

2007-05-31 Thread David Reveman
On Tue, 2007-05-29 at 08:53 +0200, dragoran wrote:
 There where some patches to implement input redirection in xorg a while 
 ago...
 what happend to them? are they still beeing worked on?

The attached patches work well. The server patch needs some more work if
we want to allow different pickers and I haven't had time to do that
yet.

-David
--- a/composite.h
+++ b/composite.h
@@ -63,8 +63,9 @@
 #define X_CompositeNameWindowPixmap		6
 #define X_CompositeGetOverlayWindow 7
 #define X_CompositeReleaseOverlayWindow 8
-#define X_CompositeRedirectCoordinate		9
-#define X_CompositeTransformCoordinate		10
+#define X_CompositeSetTriangularCoordinateMesh	9
+#define X_CompositeRedirectCoordinate		10
+#define X_CompositeTransformCoordinate		11
 
 #define CompositeNumberRequests	(X_CompositeTransformCoordinate + 1)
 
--- a/compositeproto.h
+++ b/compositeproto.h
@@ -192,6 +192,15 @@ typedef struct {
 CARD8   compositeReqType;
 CARD16  length;
 Window  window B32;
+} xCompositeSetTriangularCoordinateMeshReq;
+
+#define sz_xCompositeSetTriangularCoordinateMeshReq	8
+
+typedef struct {
+CARD8   reqType;
+CARD8   compositeReqType;
+CARD16  length;
+Window  window B32;
 BOOLredirect;
 BYTEunused1;
 CARD16  unused2 B16;
--- a/configure.ac
+++ b/configure.ac
@@ -24,7 +24,7 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ([2.57])
-AC_INIT([CompositeProto], [0.3], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AC_INIT([CompositeProto], [0.4], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
 
--- a/configure.ac
+++ b/configure.ac
@@ -34,7 +34,7 @@ dnl protocol, so Xcomposite version l.n.m corresponds to protocol version l.n
 dnl that 'revision' number appears in Xcomposite.h and has to be manually
 dnl synchronized.
 dnl
-AC_INIT(libXcomposite, 0.3.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], libXcomposite)
+AC_INIT(libXcomposite, 0.4.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], libXcomposite)
 AM_INIT_AUTOMAKE([dist-bzip2])
 AM_MAINTAINER_MODE
 
@@ -52,7 +52,7 @@ if test $VERSION =  ; then
 fi
 COMPOSITEEXT_VERSION=[`echo $VERSION | sed 's/^\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/'`]
 AC_SUBST(COMPOSITEEXT_VERSION)
-PKG_CHECK_MODULES(XCOMPOSITE, [compositeproto = $COMPOSITEEXT_VERSION] x11 xfixes xext fixesproto)
+PKG_CHECK_MODULES(XCOMPOSITE, [compositeproto = $COMPOSITEEXT_VERSION] x11 xfixes xext fixesproto xrender renderproto)
 AC_SUBST(XCOMPOSITE_CFLAGS)
 AC_SUBST(XCOMPOSITE_LIBS)
 
--- a/include/X11/extensions/Xcomposite.h
+++ b/include/X11/extensions/Xcomposite.h
@@ -47,6 +47,7 @@
 
 #include X11/extensions/composite.h
 #include X11/extensions/Xfixes.h
+#include X11/extensions/Xrender.h
 #include X11/Xfuncproto.h
 
 /*
@@ -92,6 +93,12 @@ XCompositeGetOverlayWindow (Display *dpy, Window window);
 void
 XCompositeReleaseOverlayWindow (Display *dpy, Window window);
 
+void
+XCompositeSetTriangularCoordinateMesh (Display		  *dpy,
+   Window		  window,
+   _Xconst XTriangle *triangle,
+   int		  nTriangle);
+
 _XFUNCPROTOEND
 
 #endif /* _XCOMPOSITE_H_ */
--- a/src/Xcomposite.c
+++ b/src/Xcomposite.c
@@ -391,3 +391,40 @@ XCompositeReleaseOverlayWindow (Display *dpy, Window window)
 UnlockDisplay (dpy);
 SyncHandle ();
 }
+
+void
+XCompositeSetTriangularCoordinateMesh (Display		  *dpy,
+   Window		  window,
+   _Xconst XTriangle *triangle,
+   int		  nTriangle)
+{
+XCompositeExtDisplayInfo *info = XCompositeFindDisplay (dpy);
+xCompositeSetTriangularCoordinateMeshReq *req;
+int	 n;
+long len;
+
+XCompositeSimpleCheckExtension (dpy, info);
+LockDisplay (dpy);
+while (nTriangle)
+{
+	GetReq (CompositeSetTriangularCoordinateMesh, req);
+	req-reqType = info-codes-major_opcode;
+	req-compositeReqType = X_CompositeSetTriangularCoordinateMesh;
+	req-window = window;
+	n = nTriangle;
+	len = ((long) n) * (SIZEOF (xTriangle)  2);
+	if (!dpy-bigreq_size  len  (dpy-max_request_size - req-length))
+	{
+	n = (dpy-max_request_size - req-length) /
+		(SIZEOF (xTriangle)  2);
+	len = ((long) n) * (SIZEOF (xTriangle)  2);
+	}
+	SetReqLen (req, len, len);
+	len = 2;
+	DataInt32 (dpy, (int *) triangle, len);
+	nTriangle -= n;
+	triangle  += n;
+}
+UnlockDisplay (dpy);
+SyncHandle ();
+}
--- a/src/xcompositeint.h
+++ b/src/xcompositeint.h
@@ -51,6 +51,7 @@
 #include X11/Xlib.h
 #include X11/Xlibint.h
 #include X11/Xutil.h
+#include X11/extensions/renderproto.h
 #include X11/extensions/compositeproto.h
 #include X11/extensions/Xcomposite.h
 
@@ -83,4 +84,16 @@ XCompositeFindDisplay (Display *dpy);
 #define XCompositeSimpleCheckExtension(dpy,i) \
   if (!XCompositeHasExtension(i)) { return; }
 
+/*
+ * Xlib uses long for 32-bit values.  Xcomposite uses int.  This
+ * matters on alpha.  Note that this macro assumes 

Re: [compiz] who know how to debug compiz with gdb or Eclipse

2007-05-31 Thread David Reveman
On Tue, 2007-05-29 at 23:01 +0800, Zhu, Jack wrote:
 All,
 
  
 
 Intel SSG/OTC/UMD PRC 
 
 Software EngineerglRotated
 

You can use gdb with compiz as with any other app but you probably want
to be logged in from a remote machine when running gdb and compiz as you
will of course not be able to get any output on the local machine when
the compiz process is stopped by gdb.

-David

___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz


Re: [compiz] Zoom plugin changes

2007-05-31 Thread David Reveman
On Thu, 2007-05-31 at 02:19 +0200, Kristian Lyngstøl wrote:
 I'm sorry for being rude, but I am quite upset by this, because it has
 gone too far.
 
 I posted a few weeks ago that I was going to be working on zoom over
 the summer to improve the accessibility, and I have already begun to
 do that. Every step of the way I have made frequent commits to
 opencompositing.org and described the progress in my blog.
 
 I asked for information about what your (David) plans was, you thanked
 me for informing me on what I was going to work on and said you'd get
 back to me. You never did.
 
 Now today you commit 11fe37b7673b15e5cbd4be21759311087d9d8694 which
 introduce major changes to the zoom plugin. You did NOT give a heads
 up on this, even though you should have known I was working on this.
 
 This is simply unacceptable.
 
 When you are going to make changes and people have already told you
 they are working on that code, you have to actually communicate with
 them, not drop a 1k diff on them. It's not just your time that matters
 here, but ours too. This is not how people are supposed to co-operate.
 
 And also, when you write something, you have to document it.
 
 A few lines for each function, explaining what it does. You don't have
 to explain how or why, just WHAT. This is a common practice that I
 should NOT have to explain to an experience developer.
 
 Please document your changes to the zoom plugin properly so our USERS
 don't have to choose between two different feature sets when they want
 to zoom. Because this is about the users, not my pride.

I never intended my zoom plugin to be the zoom plugin. It's just a
zoom plugin that implements some zoom functionality. I hope that people
haven't been under the impression that any zoom functionality that could
be written would have to go into my zoom plugin. That's definitely not
what I'd like to see. I'd like to see different zoom plugins that
implement different zoom functionality. There's no reason the user
should have to choose between them, they should be able to use them all
at the same time if they want that.

I always though that my zoom plugin was useless and more for demo
purposes. I wrote a more useful zoom plugin a while ago and I though it
made sense to replace the existing zoom plugin with this one, which is
what I did yesterday. 

If someone found the old functionality useful or if you've been able to
build something useful from it then I'm happy to see it available as an
additional zoom plugin.

The things I wanted to get back to you on related to the zoom work you
do has very little to do with the implementation of zoom plugins and
more to do with how other changes are important to make zoom
functionality useful. E.g. changes I'd like to make to the core which
will allow applications to incrementally move towards using resolution
independent retained mode rendering etc. but I have unfortunately not
had time to do that yet.

You can ignore my recent changes to the zoom plugin in the fdo repo and
keep working on your zoom plugin. I don't want my changes to cause you
any unnecessary pain and I'm sorry if they got you upset.

-David

___
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz