🔧 Set uniforms only once

This commit is contained in:
Simon Schneegans
2022-05-01 13:25:37 +02:00
parent c0b1115b23
commit fa9941ce5b
4 changed files with 10 additions and 8 deletions
+2 -1
View File
@@ -224,6 +224,8 @@ if (utils.isInShellProcess()) {
} }
} }
`); `);
this.set_uniform_value('uShardTexture', 1);
}; };
// This is overridden to bind the shard texture for drawing. Sadly, this seems to be // This is overridden to bind the shard texture for drawing. Sadly, this seems to be
@@ -240,7 +242,6 @@ if (utils.isInShellProcess()) {
// Bind the shard texture. // Bind the shard texture.
pipeline.set_layer_texture(1, this._shardTexture.get_texture()); pipeline.set_layer_texture(1, this._shardTexture.get_texture());
pipeline.set_layer_wrap_mode(1, Cogl.PipelineWrapMode.REPEAT); pipeline.set_layer_wrap_mode(1, Cogl.PipelineWrapMode.REPEAT);
this.set_uniform_value('uShardTexture', 1);
super.vfunc_paint_target(node, paint_context); super.vfunc_paint_target(node, paint_context);
} }
+3 -3
View File
@@ -236,6 +236,8 @@ if (utils.isInShellProcess()) {
// cogl_color_out = vec4(vec3(rain.y), 1); // cogl_color_out = vec4(vec3(rain.y), 1);
} }
`); `);
this.set_uniform_value('uFontTexture', 1);
}; };
// This is overridden to bind the font texture for drawing. Sadly, this seems to be // This is overridden to bind the font texture for drawing. Sadly, this seems to be
@@ -243,9 +245,7 @@ if (utils.isInShellProcess()) {
// get_target() back then but this is not wrapped in GJS. // get_target() back then but this is not wrapped in GJS.
// https://gitlab.gnome.org/GNOME/mutter/-/blob/gnome-3-36/clutter/clutter/clutter-offscreen-effect.c#L598 // https://gitlab.gnome.org/GNOME/mutter/-/blob/gnome-3-36/clutter/clutter/clutter-offscreen-effect.c#L598
vfunc_paint_target(node, paint_context) { vfunc_paint_target(node, paint_context) {
const pipeline = this.get_pipeline(); this.get_pipeline().set_layer_texture(1, this._fontTexture.get_texture());
pipeline.set_layer_texture(1, this._fontTexture.get_texture());
this.set_uniform_value('uFontTexture', 1);
super.vfunc_paint_target(node, paint_context); super.vfunc_paint_target(node, paint_context);
} }
}); });
+2 -1
View File
@@ -224,6 +224,8 @@ if (utils.isInShellProcess()) {
} }
} }
`); `);
this.set_uniform_value('uDustTexture', 1);
}; };
// This is overridden to bind the dust texture for drawing. Sadly, this seems to be // This is overridden to bind the dust texture for drawing. Sadly, this seems to be
@@ -236,7 +238,6 @@ if (utils.isInShellProcess()) {
Cogl.PipelineFilter.LINEAR); Cogl.PipelineFilter.LINEAR);
pipeline.set_layer_texture(1, this._dustTexture.get_texture()); pipeline.set_layer_texture(1, this._dustTexture.get_texture());
pipeline.set_layer_wrap_mode(1, Cogl.PipelineWrapMode.REPEAT); pipeline.set_layer_wrap_mode(1, Cogl.PipelineWrapMode.REPEAT);
this.set_uniform_value('uDustTexture', 1);
super.vfunc_paint_target(node, paint_context); super.vfunc_paint_target(node, paint_context);
} }
}); });
+3 -3
View File
@@ -241,6 +241,8 @@ if (utils.isInShellProcess()) {
// cogl_color_out = vec4(vec3(scratchMap), 1); // cogl_color_out = vec4(vec3(scratchMap), 1);
} }
`); `);
this.set_uniform_value('uClawTexture', 1);
}; };
// This is overridden to bind the claw texture for drawing. Sadly, this seems to be // This is overridden to bind the claw texture for drawing. Sadly, this seems to be
@@ -248,9 +250,7 @@ if (utils.isInShellProcess()) {
// get_target() back then but this is not wrapped in GJS. // get_target() back then but this is not wrapped in GJS.
// https://gitlab.gnome.org/GNOME/mutter/-/blob/gnome-3-36/clutter/clutter/clutter-offscreen-effect.c#L598 // https://gitlab.gnome.org/GNOME/mutter/-/blob/gnome-3-36/clutter/clutter/clutter-offscreen-effect.c#L598
vfunc_paint_target(node, paint_context) { vfunc_paint_target(node, paint_context) {
const pipeline = this.get_pipeline(); this.get_pipeline().set_layer_texture(1, this._clawTexture.get_texture());
pipeline.set_layer_texture(1, this._clawTexture.get_texture());
this.set_uniform_value('uClawTexture', 1);
super.vfunc_paint_target(node, paint_context); super.vfunc_paint_target(node, paint_context);
} }
}); });