[gnome-shell/gbsneto/effects-paint-nodes: 6/6] lookingGlass: Port to paint nodes
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gbsneto/effects-paint-nodes: 6/6] lookingGlass: Port to paint nodes
- Date: Wed, 9 Dec 2020 22:36:12 +0000 (UTC)
commit ae9c1d54fb22a9ee69242f15fa00b71dbc2f2ca8
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Mon Jun 29 18:01:44 2020 -0300
lookingGlass: Port to paint nodes
Override vfunc_paint_node(), and add paint nodes to the
root node instead of directly calling CoglFramebuffer APIs.
js/ui/lookingGlass.js | 43 ++++++++++++++++++++++++++++---------------
1 file changed, 28 insertions(+), 15 deletions(-)
---
diff --git a/js/ui/lookingGlass.js b/js/ui/lookingGlass.js
index 109c04631f..65515f0fc1 100644
--- a/js/ui/lookingGlass.js
+++ b/js/ui/lookingGlass.js
@@ -481,13 +481,16 @@ class RedBorderEffect extends Clutter.Effect {
this._pipeline = null;
}
- vfunc_paint(paintContext) {
- let framebuffer = paintContext.get_framebuffer();
- let coglContext = framebuffer.get_context();
+ vfunc_paint_node(node, paintContext) {
let actor = this.get_actor();
- actor.continue_paint(paintContext);
+
+ const actorNode = new Clutter.ActorNode(actor, -1);
+ node.add_child(actorNode);
if (!this._pipeline) {
+ const framebuffer = paintContext.get_framebuffer();
+ const coglContext = framebuffer.get_context();
+
let color = new Cogl.Color();
color.init_from_4ub(0xff, 0, 0, 0xc4);
@@ -498,18 +501,28 @@ class RedBorderEffect extends Clutter.Effect {
let alloc = actor.get_allocation_box();
let width = 2;
+ const pipelineNode = new Clutter.PipelineNode(this._pipeline);
+ pipelineNode.set_name('Red Border');
+ actorNode.add_child(pipelineNode);
+
+ const box = new Clutter.ActorBox();
+
// clockwise order
- framebuffer.draw_rectangle(this._pipeline,
- 0, 0, alloc.get_width(), width);
- framebuffer.draw_rectangle(this._pipeline,
- alloc.get_width() - width, width,
- alloc.get_width(), alloc.get_height());
- framebuffer.draw_rectangle(this._pipeline,
- 0, alloc.get_height(),
- alloc.get_width() - width, alloc.get_height() - width);
- framebuffer.draw_rectangle(this._pipeline,
- 0, alloc.get_height() - width,
- width, width);
+ box.set_origin(0, 0);
+ box.set_size(alloc.get_width(), width);
+ pipelineNode.add_rectangle(box);
+
+ box.set_origin(alloc.get_width() - width, width);
+ box.set_size(width, alloc.get_height());
+ pipelineNode.add_rectangle(box);
+
+ box.set_origin(0, alloc.get_height() - width);
+ box.set_size(alloc.get_width() - width, width);
+ pipelineNode.add_rectangle(box);
+
+ box.set_origin(0, width);
+ box.set_size(width, alloc.get_height() - width);
+ pipelineNode.add_rectangle(box);
}
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]