【问题标题】:Clutter-vala how to load textureClutter-vala 如何加载纹理
【发布时间】:2013-10-17 13:36:36
【问题描述】:

我正在尝试将文件夹图标加载为纹理。我现在几乎已经尝试了所有方法,但由于某种原因我无法让它工作

我认为this thread 正是我想要的,但它太先进了。我现在想简单一点。

由于某种原因,我无法让 this 工作/翻译它。

这是我最终得到的代码。不知道现在该怎么办。

class nicholas
{

Gtk.Window window;
GtkClutter.Embed clutter;
Clutter.Rectangle r;
Clutter.Texture t;

public nicholas () 
{
    window = new Gtk.Window ();
    clutter = new GtkClutter.Embed ();
    var stage = clutter.get_stage () as Clutter.Stage;

    stage.background_color = Clutter.Color.from_string ("black");

    var o = new     Cogl.Texture.from_file("/usr/share/icons/gnome/48x48/places/folder.png",     Cogl.TextureFlags.NONE, Cogl.PixelFormat.ANY);
    t = new Clutter.Texture.set_cogl_texture(o);
    t.x = 80;
    t.y = 80;
    stage.add_child (t);

    window.add (clutter);
    window.destroy.connect (Gtk.main_quit);
    window.set_default_size (500, 300);
    window.show_all ();
    }
    }
    public static void main (string [] args)
    {
    GtkClutter.init (ref args);

    nicholas nicholas = new nicholas ();

    Gtk.main ();
    }

【问题讨论】:

    标签: gtk vala clutter gdkpixbuf


    【解决方案1】:

    我看不出关于 Emmanuele 的回答有什么太高级的地方……这是一个 Vala 端口,有一些额外的代码可以实际使用 Clutter.Image 作为 Clutter.Actor 的内容:

    private static Clutter.Actor create_clutter_actor_from_file (string filename) throwsGLib.Error {
      Gdk.Pixbuf pixbuf = new Gdk.Pixbuf.from_file (filename);
      Clutter.Image image = new Clutter.Image ();
      image.set_data (pixbuf.get_pixels (),
                      pixbuf.has_alpha ? Cogl.PixelFormat.RGBA_8888 : Cogl.PixelFormat.RGB_888,
                      pixbuf.width,
                      pixbuf.height,
                      pixbuf.rowstride);
      Clutter.Actor actor = new Clutter.Actor ();
      actor.content = image;
      actor.set_size (pixbuf.width, pixbuf.height);
      return actor;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-01
      • 1970-01-01
      相关资源
      最近更新 更多