opengl and the compositor

Sampsa Riikonen <[email protected]>
Newsgroups gmane.comp.kde.devel.kwin
Message-ID <[email protected]>
Dear Developers,

Sorry about the basic nature of my questions.

I'd like to get into kwin development, but before that, I have to get my
head around some basic concepts.

I'm recurring to this mailing list, since these thing is not explained
anywhere (at least I could not find).

Please feel free to point me to any tutorial or lines in the actual kwin
source code.

**How does an OpenGL context play along with the compositor?**

Consider this:

- I create a window with an opengl context
- I draw stuff to that context using opengl 3.1 (texture streaming in my
case)
- Opengl renders the final 2d image into a framebuffer
- ..that framebuffer is used by the kwin compositor, to embed it into
the final desktop view (?)
- But the opengl rasterization has been done on the GPU, and to my
understanding, never "leaves the GPU"
- ..so how is the compositor is able to use that framebuffer?
- I typically use direct rendering in opengl, so this gets even more
mystical (ref:
https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure#/media/File:Linux_graphics_drivers_DRI_current.svg
)


**How are the Qt widgets rendered with the OpenGL backend?**

The kwin compositor creates it own OpenGL context

Is my understanding of the Qt rendering pipeline correct:?

- My program creates a Qt widget under kwin
- Those widgets have the window-manager-owned widgets as their parent
widgets
- Window manager renders the main level widgets (=> and hierarchically
the child-level widgets created by my Qt program)
- Window manager passes the final rendered widgets to OpenGL


Kind Regards,

Sampsa Riikonen
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.