Matthias Clasen
352b566179
Recorder: Show details about linear gradient nodes
2017-09-28 21:06:35 -04:00
Matthias Clasen
89261d18c2
Recorder: Show details of blur nodes
2017-09-28 19:48:42 -04:00
Matthias Clasen
5e4f7301d6
recorder: Show details for blend nodes
2017-09-28 19:40:03 -04:00
Matthias Clasen
0d8b2535d8
Recorder: Show details of crossfade nodes
2017-09-28 19:20:25 -04:00
Matthias Clasen
2d5a121c3c
recorder: Show details for opacity nodes
2017-09-28 19:14:32 -04:00
Matthias Clasen
9e9df66b81
Recorder: Show details of border nodes
2017-09-28 18:58:18 -04:00
Matthias Clasen
ae549c6ce4
recorder: Put text color in the right row
...
It ended up in the wrong place by accident.
2017-09-28 18:41:39 -04:00
Matthias Clasen
cddf415cbb
Recorder: Show colors visually for text too
...
Just because we can do it.
2017-09-28 18:37:47 -04:00
Matthias Clasen
2da234d70d
Reshuffle the recorder ui a bit
...
Make it possible to see the properties and the rendering at
the same time, it makes navigating easier.
2017-09-28 18:37:00 -04:00
Matthias Clasen
e58ee9ad52
recorder: Show surfaces and textures
...
This makes the properties list much more interesting.
2017-09-28 18:17:38 -04:00
Matthias Clasen
65bfdf4b15
recorder: Show text node properties
2017-09-28 17:16:41 -04:00
Matthias Clasen
149dd1f558
recorder: show color information for color nodes
...
A first step towards showing more information for render nodes.
2017-09-28 15:54:30 -04:00
Piotr Drąg
91bb86ca20
inspector: Mark missing strings for translation
2017-09-28 14:01:57 +02:00
Carlos Garnacho
261fdad7ca
inspector: Update to using GdkEvent API
2017-09-19 18:39:02 +02:00
Matthias Clasen
e2869853dc
gsk: Add a blur node
...
For now, this has just a fallback implementation using
the typical box filter approximation.
2017-09-04 14:28:16 -04:00
Matthias Clasen
4975aa7920
Add a render node for text
...
This is just a wrapper around a PangoGlyphString + PangoFont.
Basically, the arguments that are passed to pango_renderer_draw_glyphs.
2017-09-01 13:30:03 -04:00
Matthias Clasen
75115b122b
inspector: Add some tooltips
...
These buttons are not 100% obvious.
2017-09-01 12:04:40 -04:00
Matthias Clasen
c17f76cd54
inspector: Remove debug nodes setting from visual tab
...
No need to have the same setting in two places.
2017-09-01 12:04:33 -04:00
Matthias Clasen
04f1e19e00
inspector: Move debug nodes option
...
Put this option on the recorder page where it makes more sense.
2017-09-01 12:04:27 -04:00
Timm Bäder
edbe6b3360
inspector: Fix object title label alignment
...
Re-center it after the center-child removal in GtkBox and the addition
of GtkCenterBox.
2017-08-03 18:25:51 +02:00
Timm Bäder
36ab70ddf5
widget: Add baseline and out_clip parameters to size-allocate
...
Since setting a clip is mandatory for almost all widgets, we can as well
change the size-allocate signature to include a out_clip parameter, just
like GtkCssGadget did. And since we now always propagate baselines, we
might as well pass that one on to size-allocate.
This way we can also make sure to transform the clip returned from
size-allocate to parent-coordinates, i.e. the same coordinate space
priv->allocation is in.
2017-07-19 21:27:16 -04:00
Timm Bäder
5fbe26f396
inspector: Use GtkWidget::pick when picking widgets
2017-07-19 21:27:14 -04:00
Timm Bäder
cb8031fde3
inspector: Allow picking children of GtkWidget classes
2017-07-19 21:27:13 -04:00
Timm Bäder
88550b5d55
inspector: Show the GdkWindow before grabbing
...
Gets rid of a critical when trying to inspect widgets.
2017-07-19 21:27:12 -04:00
Timm Bäder
a2f7a076ac
inspector: Fix list row alignment in general tab
2017-07-19 21:27:12 -04:00
Timm Bäder
8db3478bf5
stackcombo: Set clip
2017-07-19 21:27:11 -04:00
Carlos Garnacho
a72404dd5a
gtk: Mass delete all GtkWidget event mask API
...
We now rely on toplevels receiving and forwarding all the events
the windowing should be able to handle. Event masks are no longer a
way to determine whether an event is deliverable ot a widget.
Events will always be delivered in the three captured/target/bubbled
phases, widgets can now just attach GtkEventControllers and let those
handle the events.
2017-05-25 16:25:58 +02:00
Tim-Philipp Müller
37d5938561
meson: update list of sources for changes in git master
2017-05-03 15:10:53 +01:00
Timm Bäder
409ed21594
meson: Sort input files by name
2017-05-03 15:10:52 +01:00
Timm Bäder
5475768d32
Meson build v2
2017-05-03 15:10:50 +01:00
Emmanuele Bassi
7a90e06a3c
Add Meson build files
...
Original work by: Jussi Pakkanen <jpakkane@gmail.com>
https://bugzilla.gnome.org/show_bug.cgi?id=769881
2017-05-03 15:10:50 +01:00
Timm Bäder
5c4934cfc0
Chain up in size-allocate implementations
...
Otherwise we're not setting an allocation at all.
2017-05-01 21:21:40 +02:00
Timm Bäder
fb927d1993
box: Remove center child
2017-04-25 20:30:37 +02:00
Timm Bäder
c92b7d4224
box: Remove fill child property
...
GtkWidget:halign and GtkWidget:valign are sufficient
2017-04-25 20:30:37 +02:00
Timm Bäder
5729ea7744
box: Remove expand child property
...
GtkWidget already has hexpand/vexpand properties.
2017-04-25 20:30:37 +02:00
Timm Bäder
7dc8489c8c
stack combo: Inherit from GtkWidget
2017-04-02 08:16:54 +02:00
Timm Bäder
a3bada37fb
css-editor: Remove unused if statement
...
The static local is set to NULL and never set to anything else, so we
never use it anyway.
2017-03-20 15:01:28 +01:00
Alexander Larsson
1fe4b13871
Allow custom renderer for the inspector
...
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.
2017-03-17 16:12:45 +01:00
TingPing
47f4e44aec
Improve GContentType usage
...
Convert to content type where needed.
Should fix various issues on Windows and OS X.
https://bugzilla.gnome.org/show_bug.cgi?id=734946
2017-03-08 23:10:49 -05:00
Daniel Boles
ad5ff5f6d1
Inspector: Use Title Case for labels & menu items
...
https://developer.gnome.org/hig/stable/writing-style.html.en
https://bugzilla.gnome.org/show_bug.cgi?id=779147
2017-02-23 19:13:41 +00:00
Timm Bäder
c36ad400fa
recorder: Adapt to widget visibility changes
...
We now need to explicitly hide the details label.
2017-01-20 21:50:02 +01:00
Timm Bäder
ea897c6df4
Remove gtk_widget_show_all
2017-01-20 21:37:04 +01:00
Timm Bäder
132f2721ce
inspector: Use GtkButton:icon-name in ui files
2017-01-16 17:22:38 +01:00
Benjamin Otte
6055028c96
snapshot: Rename append APIs
...
Instead of having gtk_snapshot_append_foo_node(), just have
gtk_snapshot_append_foo(). Nobody needs to know that this internally
uses nodes.
2017-01-13 04:46:09 +01:00
Alexander Larsson
65ad2541d7
Snapshot: Only record names if inspector is recording
...
Otherwise we do a lot of allocations and vprintf calls which are
not used.
2017-01-11 10:22:40 +01:00
Timm Bäder
9aedbc376b
inspector: Don't try to access child props of non-containers
2017-01-07 17:19:30 +01:00
Timm Bäder
42f1ff0123
inspector: Show child widgets of widgets
2017-01-07 17:19:29 +01:00
Benjamin Otte
b993acfe2c
gsk: Add GskRepeatNode
...
Also add gtk_snapshot_push_repeat() and use that to draw backgrounds.
With that change, CSS background snapshots are created without Cairo
nodes.
2017-01-01 19:53:36 +01:00
Benjamin Otte
7540702cf0
gsk: Add GskColorMatrixNode
...
This node essentially implements the feColorMatrix SVG filter. I got the
idea yesterday after looking at the opacity implementation.
It can be used for opacity (not sure if we want to) and to implement a
bunch of the CSS filters.
2016-12-31 02:49:47 +01:00
Benjamin Otte
a36e5ceea7
cellrenderer: Remove render() vfunc
...
Make the last 2 cell renderers create the cairo node themselves.
2016-12-23 11:11:52 +01:00
Benjamin Otte
91c71b10e6
inspector: Add a render node save button
...
Now we can select buggy nodes, save them to a file, and add that file to
our testsuite.
2016-12-23 08:11:00 +01:00
Benjamin Otte
def94f03e2
debug: Add GTK_DEBUG=snapshot
...
This causes the snapshotting algorithm to dump all widget nodes into
their own container node. We then name that group accordingly (ie
"GtkSwitch<0xdeadbeef>") so you can easily see which node belongs where.
The feature is toggleable in the inspector's visual tab.
There's a few problems with it, becuse GtkSnapshot optimized container
nodes away if they are not needed, so we are losing some widgets...
2016-12-20 19:26:40 +01:00
Benjamin Otte
22a657004b
debug: Remove pixel-cache debug categories
...
We have no more pixel cache, so they are kind of useless.
2016-12-20 19:26:40 +01:00
Benjamin Otte
2034e83a20
gsk: Add GskOutsetShadowNode
2016-12-20 18:01:12 +01:00
Benjamin Otte
fcc1f554d6
gsk: Add GskInsetShadowNode
...
And again lots of shadow code gets copied to GSK. But we're now almost
at a stage where widget-factory does not use cairo nodes anymore.
2016-12-20 18:01:12 +01:00
Benjamin Otte
2480e0d575
gsk: Add GskShadowNode
...
... and make the icon rendering code use it.
This requires moving even more shadow renering code into GSK, but so be
it. At least the "shadows not implemented" warning is now gone!
2016-12-20 18:01:12 +01:00
Benjamin Otte
6e31fc4300
inspector: Print node type in node properties
2016-12-20 18:01:11 +01:00
Benjamin Otte
75b76af221
gsk: Add GskBorderNode
...
The node draws a solid CSS border, which can be used to cover everything
but dashed and dotted borders (double, groove, inset, ...).
For different border styles, we overlay multiple nodes and set their
colors to transparent for sides with non-matching styles.
2016-12-20 18:01:11 +01:00
Benjamin Otte
30438c6e8b
gsk: Add cross-fade node
...
And implement stack crossfades with it.
2016-12-20 18:01:11 +01:00
Benjamin Otte
e8cd71228a
gsk: Implement linear gradient render nodes
2016-12-20 18:01:11 +01:00
Benjamin Otte
cf520b7a1f
gsk: Add blend nodes
...
Implement blend mode support in GTK background compositing with it.
2016-12-20 18:01:11 +01:00
Benjamin Otte
3d5173d4ac
gtk: Fix memleaks
...
It turns out, some simple getters - such as
gdk_drawing_context_get_clip() - love copying things before returning
them.
I guess somebody has to burn cycles...
2016-12-20 18:01:10 +01:00
Benjamin Otte
23e35706b4
gsk: Add support for rounded clip rectangles
...
Also add support to GtkSnapshot, so people can push rounded clips.
2016-12-20 18:01:10 +01:00
Benjamin Otte
1f988d8b05
gsk: Add gsk_clip_node_new()
...
The node is a simple clipping node: It does a rectangular clip of its
contents.
2016-12-20 18:01:10 +01:00
Benjamin Otte
07d39299ea
gsk: Replace gsk_render_node_set_opacity()
...
... with gsk_opacity_node_new().
Also implement support for opacity in gtk_widget_snapshot() using this
new node.
2016-12-20 18:01:10 +01:00
Benjamin Otte
6129daf29b
gsk: Add gsk_color_node_new()
2016-12-20 18:01:10 +01:00
Benjamin Otte
361e2cda27
Call gsk_render_node_draw() instead of creating fallback renderers
2016-12-20 18:01:10 +01:00
Benjamin Otte
67fb129ed7
gsk: gsk_render_node_set_transform() => GskTransformNode
...
Instead of having a setter for the transform, have a GskTransformNode.
Most of the oprations that GTK does do not require a transform, so it
doesn't make sense to have it as a primary attribute.
Also, changing the transform requires updating the uniforms of the GL
renderer, so we're happy if we can avoid that.
2016-12-20 18:01:10 +01:00
Benjamin Otte
19753062c4
gsK: Move children handling to GskContainerNode
2016-12-20 18:01:09 +01:00
Benjamin Otte
d691dfc894
inspector: Prepare TreeModelRenderNode for brave new world
...
I'm about to move children handling to the container node, which means
the generic code can no longer assume children APIs existing.
So rewrite the treemodel to work without it.
2016-12-20 18:01:09 +01:00
Benjamin Otte
abd184efc9
gsk: Remove gsk_render_node_is_surface/texture()
...
Use gsk_render_node_get_node_type() instead.
2016-12-20 18:01:09 +01:00
Benjamin Otte
ff884385c0
gsk: Remove GskRenderNode::hidden
...
If you want to hide something, don't render it.
2016-12-20 18:01:09 +01:00
Benjamin Otte
582ea50faa
inspector: Add support for displayin the render region
...
Now I just need a UI designer that makes this look nice...
2016-12-05 15:02:47 +01:00
Benjamin Otte
e950a5190d
inspector: Pass the drawing context into the recorder
...
That way we can capture both the actual changes (clip region) and the
area that was redrawn (render region), which in OpenGL might not be
identical.
Nothing shows the render region yet though...
2016-12-05 15:02:47 +01:00
Benjamin Otte
d7876bde74
inspector: Remove leftover GDK_PRIVATE_CALL()s
2016-11-24 15:41:19 +01:00
Matthias Clasen
1af817e254
inspector: Respect text-scaling-factor value initially
...
This was pointed out in
https://bugzilla.gnome.org/show_bug.cgi?id=774893
2016-11-23 19:16:16 -05:00
Christian Hergert
c14c9aca34
inspector: ensure controller is a GtkGesture
...
While GtkEventController implementations today are all GtkGesture, it is
possible to create a GtkEventController manually. This is an extrac check
to ensure we only add gestures to the list.
https://bugzilla.gnome.org/show_bug.cgi?id=774760
2016-11-23 14:03:13 -08:00
Emmanuele Bassi
4cbe079767
Use Graphene init macros for compound literals
...
The Graphene init macros can now be used for compound literals, which
means we need to update our mixed uses.
2016-11-21 16:21:38 +00:00
Benjamin Otte
aa084333c8
inspector: Redo recording list
...
- Make the rows larger
- Display the elapsed time between renderings
- Display if it was a full or a partial redraw
- Add a toggle button to display profiler info
2016-11-20 05:03:18 +01:00
Benjamin Otte
be237dbb5a
inspector: Pass the renderer when recording
...
... and collect the profiler information from the renderer.
2016-11-20 03:54:43 +01:00
Benjamin Otte
32adb31428
inspector: Record a "start" event whenever we start recording
2016-11-20 03:54:43 +01:00
Benjamin Otte
305ea71b97
inspector Reselect bottom row in recorder
...
When inserting a new recording and the bottommost row was selected,
select the newly added row. This way, you can observe the ongoing
recording.
2016-11-19 20:58:36 +01:00
Benjamin Otte
2745c2502f
snapshot: Move GtkSnapshot declaration to gtypes.h
2016-11-19 20:58:36 +01:00
Matthias Clasen
295066dad8
inspector: Show render node properties
2016-11-18 20:59:10 -05:00
Benjamin Otte
313a708006
snapshot: Convert inspector's RenderNodeView
2016-11-15 17:49:19 +01:00
Matthias Clasen
2d14217cd7
inspector: Cosmetic improvements to the recorder
2016-11-01 22:06:25 -04:00
Benjamin Otte
72a9c53262
inspector: Add a button to clear all recordings
...
Clears the recordings list, and even better: Frees all your memory.
2016-11-01 18:34:40 +01:00
Benjamin Otte
e02ff7c064
inspector: Collect statistics for unclassable types
...
I want to know how many GskRenderNodes I have!
2016-11-01 18:34:40 +01:00
Benjamin Otte
3741e6906e
inspector: Require toggling on/off of recording
...
This way, we don't eat up all your memory every time you start the
inspector.
2016-11-01 18:34:40 +01:00
Benjamin Otte
4673318028
inspector: Add list of render nodes to recorder
...
And make it possible to view the actually selected node in the view.
2016-11-01 18:34:40 +01:00
Benjamin Otte
4265c0e5b0
inspector: Next step in the recorder view
...
We now record all render operations and display them.
Warning: This is very brute force, you can't clear the recordings or
turn recording off. And this thing easily records 25MB per recorded
frame, so be careful to not run out of memory and get your browser
killed. ;)
2016-11-01 18:34:40 +01:00
Benjamin Otte
e6f711a94a
inspector: Add more infrastructure
...
This one introduces the Recording object which is essentially a single
instance of something that happened.
The RenderRecording is an instance of an actual rendering operation.
2016-11-01 18:34:40 +01:00
Benjamin Otte
98a500a434
inspector: Add outline for a new "recorder" tab
2016-11-01 18:34:40 +01:00
Benjamin Otte
d249e77bcb
API: screen: Remove gdk_screen_is_composited()
...
Switch code to use gdk_display_is_composited() instead.
The new code also doesn't use a vfunc to query the property but rather
requires the backend to call set_composited()/set_rgba() to change the
value.
2016-10-29 04:49:47 +02:00
Benjamin Otte
b69328eb74
inspector: Use the new APIs when displaying information
2016-10-29 04:49:47 +02:00
Timm Bäder
37e06f19e2
inspector: make use of GtkButton's icon-name property
2016-10-28 16:33:02 +02:00
Benjamin Otte
be8c0b27af
inspector: Don't connect to nonexisting signal
...
The GdkScreen::size-changed signal was removed a while ago.
And because signal changes don't trip the compiler, there are always
leftovers...
2016-10-27 06:14:01 +02:00
Benjamin Otte
48f5df5318
gtk: Add back infrastructure for GTK_DEBUG=updates
...
Includes the ability to turn on updates in the inspector. Animations are
now run via a tick function which allows us to neatly overlay a
semi-transparent red rectangle and fade it out over time.
It also probably enables way more, but somebody with more UI neatness
than me needs to figure out what it eanbles first...
2016-10-27 05:07:23 +02:00
Rico Tzschichholz
8abf05e194
gtk: Update path references from gtk-3.0 to gtk-4.0
2016-10-23 20:22:38 +02:00
Timm Bäder
a5867ffe71
Remove some more GdkColor properties
2016-10-20 20:12:08 +02:00