Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const Clutter = imports.gi.Clutter;
- const Cairo = imports.cairo;
- const Gdk = imports.gi.Gdk;
- const GdkPixbuf = imports.gi.GdkPixbuf;
- function loadIcon(path, size) {
- try {
- return GdkPixbuf.Pixbuf.new_from_file_at_scale(path, 300, 300, false);
- } catch(e) {
- log("Failed to load pixbuf: " + e);
- return null;
- }
- }
- function draw(canvas, cr, width, height) {
- cr.save();
- cr.setOperator(Cairo.Operator.CLEAR);
- cr.paint();
- cr.restore();
- cr.scale(width, height);
- cr.arc(0.5, 0.5, 0.5, 0, Math.PI * 2);
- cr.setOperator(Cairo.Operator.OVER);
- Gdk.cairo_set_source_pixbuf(cr, loadIcon('/home/me/myimage.jpg', 300), 0, 0);
- cr.fill();
- return true;
- }
- function main() {
- Clutter.init(null);
- let stage = new Clutter.Stage();
- stage.set_title("Circled image");
- let color = new Clutter.Color({ red: 255,
- green: 0,
- blue: 0,
- alpha: 0 });
- stage.set_background_color(color);
- stage.set_size(300, 300);
- let canvas = new Clutter.Canvas();
- canvas.set_size(stage.width, stage.height);
- let actor = new Clutter.Actor();
- actor.set_content(canvas);
- actor.set_size(stage.width, stage.height);
- stage.add_child(actor);
- canvas.connect("draw", draw);
- canvas.invalidate();
- stage.connect("destroy", Clutter.main_quit);
- stage.show_all();
- Clutter.main();
- };
- main();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement