Georges Basile Stavracas Neto
cd2ee44216
clutter/actor: Always paint using paint nodes
...
Make ClutterActor paint using ClutterTransformNode, ClutterClip
node, and ClutterActorNode. Essencially, the actor node is a
replacement for clutter_actor_continue_paint().
An interesting aspect of this commit is that the order of the
operations is reversed to be preserved.
Before being able to remove the dummy node hack, we'll need to
make ClutterEffects compatible with paint nodes first -- and
naturally, that's enough content for its own merge request.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/872
2019-10-22 14:53:48 -03:00
Georges Basile Stavracas Neto
ebf9ac091d
clutter/paint-nodes: Introduce ClutterActorNode
...
ClutterActorNode is a paint node that runs the 'paint'
function of an actor. It is a useful helper node to be
used during the transition to paint nodes.
The role of ClutterActorNode will change over time. For
now, it is just a call to clutter_actor_continue_paint(),
which also paints the effects. When ClutterEffect is
ported to paint nodes, ClutterActorNode will morph to
only notify the actor about the painting, and will become
a private node to Clutter.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/872
2019-10-22 14:47:37 -03:00
Georges Basile Stavracas Neto
cf791c09f0
clutter/paint-nodes: Expose and cleanup ClutterTransformNode
...
It will also be used by ClutterActor to apply it's own transform
to the paint node tree, and thus preserve it's rendering area.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/872
2019-10-22 14:47:37 -03:00
Georges Basile Stavracas Neto
1d8807a171
clutter/paint-nodes: Expose ClutterLayerNode
...
It will be useful to port ClutterOffscreenEffect in
the future.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/872
2019-10-22 14:47:37 -03:00
Adam Jackson
f18e2d2e62
clutter: Remove unused clutter-layout-manager-deprecated.c
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/878
2019-10-22 11:57:55 -04:00
Carlos Garnacho
71c3f4af31
x11: Update X11 focus before updating MetaDisplay focus
...
In a similar vein to commit 8fd55fef85
. This notably failed when setting
the focus on the stage (eg. to redirect key events to Clutter actors).
Deeper in MetaDisplay focus updating machinery, it would check
meta_stage_is_focused() which would still return FALSE at the time it's
called.
This would not typically have side effects, but our "App does not respond"
dialogs see the focus change under their feet, so they try to bring
themselves to focus again. This results in a feedback loop.
Changing the order results in later checks on the X11 POV of the focus
being correct, so focus is not mistakenly stolen from the close dialog,
and it actually succeeds in keeping the key focus.
Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1607
https://gitlab.gnome.org/GNOME/mutter/merge_requests/876
2019-10-22 14:51:36 +02:00
Robert Mader
3078394951
ClutterStage: Use clutter_region_t for swap_region
...
We use `clutter_region_t` for the clip now, so lets also use it
for the swap region.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/692
2019-10-22 00:28:47 +02:00
Carlos Garnacho
a7f4f5b291
ClutterStage: Store clip area as a region
...
This will allow drawing optimizations as a region is more concrete
than the bounding rectangle.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/692
2019-10-22 00:28:47 +02:00
Adam Jackson
bd1630a12c
cogl: Remove unused CoglFeatureFlags
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
67d5ebb187
cogl: Remove unused COGL_FEATURE_PBOS
...
Almost there. The CoglFeatureFlags type is changed to "int"
momentarily.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
ba7b8a5de3
cogl: Remove unused COGL_FEATURE_TEXTURE_YUV
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
d54c548aac
clutter: Remove unused deprecated clutter_texture_set_from_yuv_data
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
f01db80387
cogl: Remove unused COGL_FEATURE_TEXTURE_READ_PIXELS
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
5e0989532e
clutter: Remove unused CLUTTER_FEATURE_TEXTURE_READ_PIXELS
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
673f4295e8
cogl: Remove unused COGL_FEATURE_ID_OFFSCREEN_MULTISAMPLE
...
This is a _little_ strange, as we still fill in the vtable slot for
glRenderbufferStorageMultisampleIMG, and can in principle still call it.
But that feature was weird to begin with as we were only checking for
that function in big-GL contexts despite that its extension is for GLES.
I'll leave cleaning that up to a future pass.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
1f04b1ae69
cogl: Remove unused COGL_FEATURE_OFFSCREEN_MULTISAMPLE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
26a7387f40
cogl: Remove unused COGL_FEATURE_FOUR_CLIP_PLANES
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
bd5266a05e
cogl: Remove unused COGL_FEATURE_STENCIL_BUFFER
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
eb3ffeff0a
cogl: Remove unused COGL_FEATURE_UNSIGNED_INT_INDICES
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
0731eb629c
cogl: Remove unused COGL_FEATURE_MAP_BUFFER_FOR_{READ,WRITE}
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
34a38827b7
cogl: Remove unused COGL_FEATURE_ID_ONSCREEN_MULTIPLE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
3076895e98
cogl: Remove unused COGL_FEATURE_ONSCREEN_MULTIPLE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
0e4c23c985
cogl: Remove unused depth texture API
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
fb49e9def7
cogl: Remove unused COGL_FEATURE_ID_DEPTH_TEXTURE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
45e77c1d87
cogl: Remove unused COGL_FEATURE_DEPTH_TEXTURE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
cf107c89b8
cogl: Remove always-set COGL_FEATURE_OFFSCREEN
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
6a8830a551
cogl: Remove always-set COGL_FEATURE_ID_OFFSCREEN
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
4523251849
cogl: Require {EXT,ARB}_framebuffer_object in the GL driver
...
This was only promoted to core in 3.0, but Mesa's supported it
unconditionally since around 7.0 even in 2.1 contexts, so this is not a
particularly onerous requirement.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
5f4e8789df
cogl: Remove unused COGL_FEATURE_POINT_SPRITE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
eaf0aa1f07
cogl: Remove unused COGL_FEATURE_DEPTH_RANGE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
96da0c60bd
cogl: Remove always-set COGL_FEATURE_ID_POINT_SPRITE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
da36575d7f
cogl: Remove always-set COGL_FEATURE_ID_PER_VERTEX_POINT_SIZE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
7716a418ce
cogl: Remove always-set COGL_PRIVATE_FEATURE_BLEND_CONSTANT
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
6ab2e30fff
cogl: Remove unused COGL_FEATURE_ID_MIRRORED_REPEAT
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
8b0289a5ba
cogl: Remove unused COGL_FEATURE_ID_DEPTH_RANGE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
d810c0576d
cogl: Move some GL function pointers from in-gles-core to core
...
Now that we require GLES2 or GL 2.1 these are always available.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
82f56054d4
cogl: Remove some completely unused GL function pointers
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
de362537c6
cogl: VBOs are always available
...
ARB_vertex_buffer_object was promoted to core in GL 1.5 (and thus GLES
2.0).
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
ba9fb16048
cogl: Remove COGL_PRIVATE_FEATURE_FOUR_CLIP_PLANES
...
Again, just a difference between GL and GLES for no real reason.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
148cba3270
cogl: Remove COGL_PRIVATE_FEATURE_QUADS
...
There's no real performance benefit to this, it's just a difference
between GL and GLES for no reason.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:07 +00:00
Adam Jackson
c5bb2e3f56
cogl: Remove unused cogl_renderer_get_n_fragment_texture_units
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/874
2019-10-21 16:32:46 -04:00
Adam Jackson
049e7882b7
cogl: Move _cogl_bitmap_gl_{,un}bind into the GL driver
...
These are the only pieces of the cogl bitmap support that need GL driver
knowledge, so move them there like the TODO suggests.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/874
2019-10-21 16:32:46 -04:00
Adam Jackson
f297a5faa5
cogl: Remove unneeded driver/ includes from the core
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/874
2019-10-21 16:32:46 -04:00
Carlos Garnacho
40e6aa7d94
compositor: Plug cairo_region_t leak
...
The MetaBackgroundActor uses a region to find out the areas that need
repainting, but forgot to free it, oops.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/873
2019-10-21 19:01:37 +02:00
Carlos Garnacho
668be1f4bd
backends: Plug MetaKmsPageFlipData leak
...
If the page flip is postponed, keep a ref to it, but still unref it
on the page flip callback anyways. Fix suggested by Jonas Ådahl.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/873
2019-10-21 19:01:35 +02:00
Jan Alexander Steffens (heftig)
a444a4c5f5
EGL: Include EGL/eglmesaext.h
...
The eglext.h shipped by libglvnd does not include the Mesa extensions,
unlike the header shipped in Mesa.
Fixes https://gitlab.gnome.org/GNOME/mutter/issues/876
2019-10-21 14:04:30 +00:00
Georges Basile Stavracas Neto
05da4a6094
clutter/effect: Remove pick flags
...
As pointed out, they are now unused. Remove
the pick flags.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/865
2019-10-21 13:49:26 +00:00
Georges Basile Stavracas Neto
db8fcc0537
clutter/actor: Remove pick code from paint
...
Now that they are properly split, remove the pick
code from paint paths.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/865
2019-10-21 13:49:26 +00:00
Georges Basile Stavracas Neto
86a5358812
clutter/stage: Pick with clutter_actor_pick()
...
Use the new function to perform picking.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/865
2019-10-21 13:49:26 +00:00
Georges Basile Stavracas Neto
ff8ed70f84
clutter/stage: Refactor view setup code
...
We'll share it between pick and paint, so refactor
the framebuffer and view setup code from paint
into a new function.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/865
2019-10-21 13:49:26 +00:00