Other Renderables
Daniel van Vugt
daniel.van.vugt at canonical.com
Tue Dec 16 01:31:16 UTC 2014
That option (and the first one) also raises an additional question:
Who and when do these non-buffer renderables get inserted? I think it's
usually by the shell, and I think it's on surface creation/modification
(e.g. state/type changes modify titlebar appearance). So my presently
proposed managed-surface branch will eventually solve that (with more work).
On 16/12/14 00:50, Alberto Aguirre wrote:
> I think RenderType is what I would gravitate for (not sure if titlebar
> would be a type though}, described by the scene, rendered by the
> compositor, i.e. a scene graph :)
>
>
>
> On Mon, Dec 15, 2014 at 3:45 AM, Daniel van Vugt
> <daniel.van.vugt at canonical.com <mailto:daniel.van.vugt at canonical.com>>
> wrote:
>
> On 15/12/14 17:35, Daniel van Vugt wrote:
>
> Does anyone have a plan for how to represent Renderables (or
> SceneElement) that don't have a buffer()? I'm thinking about
> dynamically
> generated elements that don't have buffer streams and are not fixed
> resolution. Such elements are either pre-generated (once) or even
> produced entirely on the GPU as a shader program.
>
> The first example is the title bar in demo-shell. It's made of a
> single
> texture that is mip-mapped, repeated, reflected, scaled and filtered
> dynamically according to the window size (and eventually
> according to
> display DPI too).
>
> A second example is a software cursor or touchspots that you
> might want
> to generate at hi-DPI and then mipmap/scale according to which
> display
> it's on.
>
> The obvious answer (maybe) is that a Renderable (or SceneElement
> whatever) needs to provide its own draw function in the case
> that there
> is no buffer(). That might also nicely solve the problem of "is
> there
> anything on screen that can't be overlayed?" -- "yes because one
> or more
> visible renderables don't provide a buffer() but instead only
> provide a
> gl_render()".
>
> A second possible solution is to just define enum RenderType
> {buffer,
> titlebar, fixed_texture, otherthings} and leave it up to the
> Compositor/Renderer to implement all the types.
>
>
> And a third option is what Compiz does; Just don't maintain a
> detailed scene graph at all. Using the basic list of surfaces and
> their meta-data generate the scene dynamically every frame.
>
>
>
> - Daniel
>
>
> --
> Mir-devel mailing list
> Mir-devel at lists.ubuntu.com <mailto:Mir-devel at lists.ubuntu.com>
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/__mailman/listinfo/mir-devel
> <https://lists.ubuntu.com/mailman/listinfo/mir-devel>
>
More information about the Mir-devel
mailing list