- 23 Nov, 2017 1 commit
-
-
Alexander Larsson authored
This is a custom renderer for broadway windows, although at the moment it doesn't really do anything other than the old cairo fallbacks.
-
- 04 Nov, 2017 1 commit
-
-
Benjamin Otte authored
We cannot unrealize a renderer in the dispose function, because that would cause this chain to happen: gsk_gl_renderer_dispose gsk_renderer_dispose gsk_renderer_unrealize gsk_gl_renderer_unrealize So we would call into thje GL renderers unrealize when it has already (partially) disposed itself and ause accesses to dead variables.
-
- 03 Nov, 2017 1 commit
-
-
Benjamin Otte authored
We want this thing to replace GdkPixbuf, so it has to live in GDK.
-
- 28 Oct, 2017 1 commit
-
-
Matthias Clasen authored
This is can always be obtained from the window that is already associated with the renderer, no need to maintain a separate property for it.
-
- 06 Oct, 2017 2 commits
-
-
Matthias Clasen authored
We never set this, since it is assigned as a side-effect of realizing the renderer. Make this a plain readonly property.
-
Benjamin Otte authored
This patch makes that work using 1 of 2 options: 1. Add all missing enums to the switch statement or 2. Cast the switch argument to a uint to avoid having to do that (mostly for GdkEventType). I even found a bug while doing that: clearing a GtkImage with a surface did not notify thae surface property. The reason for enabling this flag even though it is tedious at times is that it is very useful when adding values to an enum, because it makes GTK immediately warn about all the switch statements where this enum is relevant. And I expect changes to enums to be frequent during the GTK4 development cycle.
-
- 28 Sep, 2017 1 commit
-
-
Matthias Clasen authored
Move away from the idea of intra-frame sampling, since we only push samples once per frame, anyway. Instead, make the profiler keep a rolling average of the last n frames.
-
- 25 Sep, 2017 1 commit
-
-
Matthias Clasen authored
Document newly added apis, and ensure that all public apis are listed in the docs.
-
- 27 Mar, 2017 1 commit
-
-
Daniel Boles authored
arising from conflicting argument names, missing annotations, etc.
-
- 19 Mar, 2017 1 commit
-
-
Timm Bäder authored
-
- 18 Mar, 2017 1 commit
-
-
Tim-Philipp Müller authored
-
- 17 Mar, 2017 1 commit
-
-
Alexander Larsson authored
If you set GTK_INSPECTOR_RENDERER to the same type of values that GSK_RENDERER takes this can change the renderer used for the inspector. This is useful if you're debugging one renderer and don't want to affect the inspector.
-
- 26 Dec, 2016 1 commit
-
-
Benjamin Otte authored
Forces a full redraw every frame. This is done generically, so it's supported on every renderer. For widget-factory first page (with the spinner spinning and progressbar pulsing), I get these numbers per frame: action clipped full redraw snapshot 0ms 7-10ms cairo rendering 0ms 10-15ms Vulkan rendering 3-5ms 18-20ms Vulkan expected * 0ms 1-2ms GL rendering unsupported 55-62ms * expected means disabling rendering of unsupported render nodes, instead of doing fallback drawing. So it overestimates the performance, because borders and box-shadows are disabled.
-
- 23 Dec, 2016 2 commits
-
-
Benjamin Otte authored
Now users can download pixels and make everything slooooooow.
-
Benjamin Otte authored
... and implement it for the Cairo renderer. It's an API that instructs a renderer to render to a texture. So far this is mostly meant to be used for testing, but I could imagine it being useful for rendering DND icons.
-
- 21 Dec, 2016 1 commit
-
-
Alexander Larsson authored
-
- 20 Dec, 2016 4 commits
-
-
Benjamin Otte authored
Use gsk_render_node_draw() instead.
-
Benjamin Otte authored
It replaces gsk_renderer_create_render_node() which was doing the eact same thing, only taking an unused extra argument.
-
Benjamin Otte authored
This is modeled after GtkCssValueClass. So far it doesn't do anything.
-
Benjamin Otte authored
For now, this is unused.
-
- 09 Dec, 2016 3 commits
-
-
Matthias Clasen authored
It is no longer GDK_WINDOWING_VULKAN.
-
Benjamin Otte authored
- Recognize "gl" as well as "opengl" for the GL renderer - GSK_RENDERER=help now works - g_warning() for an unrecognized renderer (typo detection!) - g_print() the actual renderer that is used (and error messages when selecting) when a GSK_RENDERER is given, so you'll notice if your renderer isn't taken.
-
Benjamin Otte authored
The renderer itself obviously doesn't do anything.
-
- 05 Dec, 2016 4 commits
-
-
Benjamin Otte authored
... instead of a gl context. This requires some refactoring in the way we mark the shared context as drawing: We now call begin_frame/end_frame() on it and ignore the call on the main context. Unfortunately we need to do this check in all vfuncs, which sucks. But I haven't found a better way.
-
Benjamin Otte authored
This way, we can hijack the begin/end draw process and do out own processing before passing it on to GDK.
-
Benjamin Otte authored
This way, we can use the variable as more than a boolean flag. This will be useful for Vulkan or D3D renderers.
-
Benjamin Otte authored
And use it to create the drawing context with it. Note that this doesn't yet have any effect and is all infrastructure preparation work.
-
- 30 Nov, 2016 3 commits
-
-
Benjamin Otte authored
This way, we don't spam criticals when GL is not available. Instead, we print a useful debug message to stderr and continue with the Cairo renderer. Signed-off-by:
Emmanuele Bassi <ebassi@gnome.org>
-
Benjamin Otte authored
and remove gsk_renderer_get_for_display(). This new function returns a realized renderer. Because of that, GSK can catch failures to realize, destroy the renderer and try another one. Or in short: I can finally use GTK on Weston with the nvidia binary drivers again. Signed-off-by:
Emmanuele Bassi <ebassi@gnome.org>
-
Benjamin Otte authored
Instead of having a gsk_renderer_set_window() call, pass the window to realize(). This way, the realization can fail with the wrong window. Signed-off-by:
Emmanuele Bassi <ebassi@gnome.org>
-
- 16 Nov, 2016 1 commit
-
-
Benjamin Otte authored
We do no longer bind textures to a renderer, instead they are a way for applications to provide texture data. For now, that's it. We've reverted to uploading it from scratch every frame.
-
- 08 Nov, 2016 1 commit
-
-
Benjamin Otte authored
-
- 01 Nov, 2016 1 commit
-
-
Benjamin Otte authored
-
- 31 Oct, 2016 1 commit
-
-
Emmanuele Bassi authored
We need an overridable entry point for GskRenderer to create Cairo surfaces. Implementations of GskRenderer can override create_cairo_surface() to create efficient surfaces, possibly with zero copies involved, depending on the GDK backend.
-
- 18 Oct, 2016 6 commits
-
-
Emmanuele Bassi authored
When disposing the GskRenderer.
-
Emmanuele Bassi authored
GSK is part of the 4.0 development cycle.
-
Emmanuele Bassi authored
While porting GTK to GskRenderer we noticed that the current fallback code for widgets using Cairo to draw is not enough to cover all the possible cases. For instance, if a container widget still uses GtkWidget::draw to render its children, and at least one of them has been ported to using render nodes instead, the container won't know how to draw it. For this reason we want to provide to layers above GSK the ability to create a "fallback" renderer instance, created using a "parent" GskRenderer instance, but using a Cairo context as the rendering target instead of a GdkDrawingContext. GTK will use this inside the gtk_widget_draw() implementation, if a widget implements GtkWidgetClass.get_render_node().
-
Emmanuele Bassi authored
We're going to need to allow rendering on a specific cairo_t in order to implement fallback code paths inside GTK; this means that there will be times when we have a transient GskRenderer instance that does not have a GdkDrawingContext to draw on. Instead of adding a new render() implementation for those cases and then decide which one to use, we can remove the drawing context argument from the virtual function itself, and allow using a NULL GdkDrawingContext when calling gsk_renderer_render(). A later commit will add a generic function to create a transient GskRenderer with a cairo_t attached to it. Renderers inside GSK will have to check whether we have access to a GdkDrawingContext, in which case we're going to use it; or if we have access to a cairo_t and a window.
-
Emmanuele Bassi authored
We control the clearing inside each GskRenderer implementation, and we don't allow providing a target surface any more.
-
Emmanuele Bassi authored
It's unused, and we always assume we render with an alpha channel enabled because it's 2016.
-