- 17 Oct, 2016 40 commits
-
-
Emmanuele Bassi authored
It's unused, and we always assume we render with an alpha channel enabled because it's 2016.
-
Emmanuele Bassi authored
The renderer will always use nearest-neighbor filters because it renders at 1:1 pixel to texel ratio. On the other hand, render nodes may be scaled, so we need to offer a way to control the minification and magnification filters.
-
Emmanuele Bassi authored
If we already have a GL texture we definitely don't want to use gdk_cairo_draw_from_gl() to draw on a Cairo context if we're going to take the Cairo surface to which we draw and put it into an OpenGL texture.
-
Emmanuele Bassi authored
The details of the modelview and projection matrices are only useful for the GL renderer; there's really no point in having those details available in the generic API — especially as the Cairo fallback renderer cannot really set up a complex modelview or a projection matrix.
-
Emmanuele Bassi authored
This makes popovers pop over instead of under.
-
Emmanuele Bassi authored
Non-drawing nodes should skip the texturing phase.
-
Emmanuele Bassi authored
Instead of using the background as the gadget's node, we add a non-drawing node that can be used to apply offsets; all other nodes are children of the "box" node.
-
Emmanuele Bassi authored
The default blend mode should be the equivalent of Cairo's OVER operator.
-
Emmanuele Bassi authored
Just like we reuse texture ids with the same size we can, at the expense of a little memory, reuse vertex buffers if they reference the same attributes and contain the same data. Each VAO is marked as free at the end of the frame, and if it's not reused in the following frame, it gets dropped.
-
Emmanuele Bassi authored
The child-transform is useful only if we also provide clipping to the parent nodes, otherwise children will just be drawn outside of the parent's bounds. We'll introduce child transforms either at a higher layer, or once we add clipping support to GskRenderNode.
-
Matthias Clasen authored
There is no gadget, so we use the gtk_widget_create_render_node function for the first time here.
-
Matthias Clasen authored
The removal of the draw method in GtkComboBox reveals another instance of parent-child invariant violation in GtkComboBoxText.
-
Matthias Clasen authored
-
Matthias Clasen authored
-
Matthias Clasen authored
Set titles and short descriptions for the sections.
-
Matthias Clasen authored
-
Matthias Clasen authored
Note that there is a problem with the pixel cache that causes listboxes to come out black when in a scrolled window.
-
Matthias Clasen authored
The transformations here were wrong, causing content to go nowhere. This patch fixes check and radio buttons to appear as expected.
-
Matthias Clasen authored
This is another example of indirect rendering with a box gadget. There is currently still some positioning problem with the checkmark.
-
Matthias Clasen authored
Now that we split out box gadget children into separate render nodes, we must not draw them onto the box gadgets node anymore.
-
Matthias Clasen authored
This is the first example of indirect rendering involving a box gadget. For now, we iterate the child gadgets manually, and rely on gtk_container_propagate_render_node for the child widgets. Eventually, we may want a better solution here.
-
Matthias Clasen authored
...and implement it for GtkCssGadget and GtkCssCustomGadget. This allows us to decide on a per-object basis if a custom gadget needs a render node for content or not.
-
Matthias Clasen authored
The custom gadget draw function has the side effect of informing the gadget machinery wether to draw focus or not. Bring the draw function back, just for its boolean return value. We may want to find a better solution for this.
-
Matthias Clasen authored
I don't think this should stay in the code long-term, but it is useful for debugging. It helped me track down some suspicious placements of render nodes.
-
Matthias Clasen authored
Give all nodes the same detail about the owner widget. This reveals that every GtkCssCustomGadget gets a DrawGadgetContents node, even if their draw_func is NULL. We may want to come up with a better solution for that.
-
Matthias Clasen authored
Make the bounds of drawing surfaces created by render nodes visible. Trigger with GSK_DEBUG=surface.
-
Matthias Clasen authored
-
Emmanuele Bassi authored
-
Emmanuele Bassi authored
-
Emmanuele Bassi authored
-
Emmanuele Bassi authored
When creating the GskRenderNodes for the gadgets we should not translate the coordinates inside the Cairo context, but we should tweak the coordinates of the anchor point. This is still not enough to get an appropriate rendering, as the result is still slightly offset to the left.
-
Emmanuele Bassi authored
Instead of passing the size of the buffer, we should pass the number of quads; we know what the size of a single quad structure is, so we can do the multiplication internally when creating the VAO. This allows us to print the quads for debugging purposes.
-
Matthias Clasen authored
Create a GskRenderNode for the contents of the frame.
-
Emmanuele Bassi authored
GtkWidget.create_render_node() sets up a GskRenderNode appropriate for rendering the contents of a widget, including its bounds, transformation, and anchor point.
-
Emmanuele Bassi authored
The naming is consistent with other scene graph libraries, as it represents an additional translation transformation applied on top of the provided transformation matrices. We can also simplify the implementation by applying the translation when we compute the world matrix.
-
Emmanuele Bassi authored
We keep the textures used inside a frame around until the end of the following frame; whenever we need a texture with the same size, and it's not marked in use, then we just reuse the existing texture.
-
Matthias Clasen authored
We were allocating a surface thats big enough for the clip, and we were setting the transform for that, but then GtkContainer was overriding the transform with the one for the allocation. Also, we were drawing at the clip position, not the allocation position.
-
Matthias Clasen authored
This will let us account for the difference between clip and allocation.
-
Matthias Clasen authored
This was overwhelming other useful debug output, so make it opt-in. We print the render items for both opengl and transforms, since the matrices bleed into each other, otherwise.
-
Matthias Clasen authored
This will be useful in the following commits.
-