[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kwin
Subject:    Re: Compositing manager
From:       Fredrik =?iso-8859-1?q?H=F6glund?= <fredrik () kde ! org>
Date:       2006-07-17 18:37:22
Message-ID: 200607172037.22958.fredrik () kde ! org
[Download RAW message or body]

On Monday 17 July 2006 13:43, Rivo Laks wrote:
<snip>
> So I managed to compile and start kwin (on top of Xgl). It worked, but it 
> usually froze as soon as I tried to do something with it such as changing 
> active window. KWin's window menu (the one you get after RMB on window's 
> titlebar) also didn't work correctly, it opened, but I couldn't click on any 
> of the menu items. Moving windows worked though and showed the new 
> effects ;-)
> 
> I think the first think that needs to be done for OpenGL support is writing 
> code to initialize OpenGL. Does anyone have any experience with that or does 
> anyone know if we can use QGL? If not, maybe we could use compiz's 
> initialization code, at least for now?

I don't think it's a good idea to borrow the code for this from compiz,
because the way compiz is currently written it only works with Xgl,
and KWin needs to work with AIGLX.

Metacity would be a better choice to borrow code from, but the
procedure for initializing GLX and creating a GLXWindow should be
well documented. I'm not sure if we can use QGLWidget in KWin.

I'd also like to remind everyone that if you copy code from another
project to KWin, that you first make sure the license is compatible,
and second that you remember to credit the original authors in the
copyright header.

What KWin needs to do with regards to GL that's specific to a
composite manager is to first create a composite overlay window,
(XCompositeGetOverlayWindow.)

You can't specify a visual for this window, so you have create a
separate GLXWindow as a child window of the overlay window.
The GLXWindow will be the window on which you render the scene.

Now the window parameter in XCompositeGetOverlayWindow is
supposed to be the root window on the screen on which you want
to create the overlay window. I'm only mentioning this here,
because I don't believe it's documented anywhere.

You probably need to set the shape input region for both the
GLXWindow and the overlay window to an empty region to allow
input events to pass through to underlying windows.

It's also important that KWin uses indirect rendering, rather than
direct rendering, since otherwise the EXT_tfp extension won't work.

Fredrik

_______________________________________________
Kwin mailing list
Kwin@kde.org
https://mail.kde.org/mailman/listinfo/kwin
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic