mirror of
https://github.com/brl/mutter.git
synced 2025-06-14 01:09:30 +00:00
clutter/offscreen-effect: Use paint nodes to paint target
Add a new ClutterPaintNode parameter to the paint_target() vfunc. For now, create a temporary ClutterEffectNode that is passed to paint_target() and immediately painted; next commits will move this to upper layers. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1355>
This commit is contained in:
@ -37,6 +37,7 @@ G_DEFINE_TYPE (FooOldShaderEffect,
|
||||
|
||||
static void
|
||||
foo_old_shader_effect_paint_target (ClutterOffscreenEffect *effect,
|
||||
ClutterPaintNode *node,
|
||||
ClutterPaintContext *paint_context)
|
||||
{
|
||||
clutter_shader_effect_set_shader_source (CLUTTER_SHADER_EFFECT (effect),
|
||||
@ -47,7 +48,7 @@ foo_old_shader_effect_paint_target (ClutterOffscreenEffect *effect,
|
||||
1.0f, 0.0f, 0.0f);
|
||||
|
||||
CLUTTER_OFFSCREEN_EFFECT_CLASS (foo_old_shader_effect_parent_class)->
|
||||
paint_target (effect, paint_context);
|
||||
paint_target (effect, node, paint_context);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -112,6 +113,7 @@ foo_new_shader_effect_get_static_source (ClutterShaderEffect *effect)
|
||||
|
||||
static void
|
||||
foo_new_shader_effect_paint_target (ClutterOffscreenEffect *effect,
|
||||
ClutterPaintNode *node,
|
||||
ClutterPaintContext *paint_context)
|
||||
{
|
||||
clutter_shader_effect_set_uniform (CLUTTER_SHADER_EFFECT (effect),
|
||||
@ -120,7 +122,7 @@ foo_new_shader_effect_paint_target (ClutterOffscreenEffect *effect,
|
||||
0.0f, 1.0f, 0.0f);
|
||||
|
||||
CLUTTER_OFFSCREEN_EFFECT_CLASS (foo_new_shader_effect_parent_class)->
|
||||
paint_target (effect, paint_context);
|
||||
paint_target (effect, node, paint_context);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Reference in New Issue
Block a user