<div dir="ltr">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 :)<div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 15, 2014 at 3:45 AM, Daniel van Vugt <span dir="ltr"><<a href="mailto:daniel.van.vugt@canonical.com" target="_blank">daniel.van.vugt@canonical.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 15/12/14 17:35, Daniel van Vugt wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Does anyone have a plan for how to represent Renderables (or<br>
SceneElement) that don't have a buffer()? I'm thinking about dynamically<br>
generated elements that don't have buffer streams and are not fixed<br>
resolution. Such elements are either pre-generated (once) or even<br>
produced entirely on the GPU as a shader program.<br>
<br>
The first example is the title bar in demo-shell. It's made of a single<br>
texture that is mip-mapped, repeated, reflected, scaled and filtered<br>
dynamically according to the window size (and eventually according to<br>
display DPI too).<br>
<br>
A second example is a software cursor or touchspots that you might want<br>
to generate at hi-DPI and then mipmap/scale according to which display<br>
it's on.<br>
<br>
The obvious answer (maybe) is that a Renderable (or SceneElement<br>
whatever) needs to provide its own draw function in the case that there<br>
is no buffer(). That might also nicely solve the problem of "is there<br>
anything on screen that can't be overlayed?" -- "yes because one or more<br>
visible renderables don't provide a buffer() but instead only provide a<br>
gl_render()".<br>
<br>
A second possible solution is to just define enum RenderType {buffer,<br>
titlebar, fixed_texture, otherthings} and leave it up to the<br>
Compositor/Renderer to implement all the types.<br>
</blockquote>
<br></span>
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.<div class="HOEnZb"><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
- Daniel<br>
<br>
</blockquote>
<br>
-- <br>
Mir-devel mailing list<br>
<a href="mailto:Mir-devel@lists.ubuntu.com" target="_blank">Mir-devel@lists.ubuntu.com</a><br>
Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/mir-devel" target="_blank">https://lists.ubuntu.com/<u></u>mailman/listinfo/mir-devel</a><br>
</div></div></blockquote></div></div>