标签: clutter

库之间的关系:Clutter,Cogl,Clutter,GTK +等

我对上面列出的库的关系有点困惑,这是我的想法:

  1. Cario是一个2D图形库,GTK +使用它来渲染小部件.卡里奥是低级别的.
  2. Cogl是一个基于OpenGL(或者是fork?我不知道)的3D图形库,而Clutter是一个基于Cogl的3D GUI工具包.

如果这是正确的,Clutter有一天会取代GTK +吗?

和...

如果你认为有一个更好的地方可以提出这个问题,或者我应该先读一些书,请告诉我!我是兴趣的自学编程.

gtk cairo clutter cogl

17
推荐指数
1
解决办法
5806
查看次数

javascript扩展,在webapp中使用基于C的API(混乱)

我的目标是使用C库来构建Web应用程序.

我已经通过使用"SWIG"工具选择了这样做的方法.Swig工具需要三件事

1) .c file which defines all the functions.

2) .i file also called interface file which is creating the
interface to load the APIs wherin I used the extern keyword.

3) APP written in javascript extension (.js file).
Run Code Online (Sandbox Code Playgroud)

我使用SWIG工具编译并运行此应用程序以验证.js文件是否正确.应用程序在XMING X11窗口上运行正常.

在编译时,它创建_wrap.o,.o文件和libFILENAME.so

现在我想在浏览器页面上运行此应用程序.

为此,我使用了webkit杂乱端口,它为我们提供了MxLauncher代码.我正在使用webkit_iweb_view_load_uri(WEBKIT_IWEB_VIEW(view),"filename.html"); 用于加载我的html文件以在我的网页视图上运行该javascript的API.

我正在编译在编译时创建的.so.

错误消息:JS CONSOLE:file:///filename.js:ReferenceError:找不到变量:example

FILENAME.C

int gcd(int x, int y) `enter code here`{
  int g;
  g = y;
  while (x > 0) {
    g = x;
    x = y % x;
    y …
Run Code Online (Sandbox Code Playgroud)

javascript swig webkit javascript-events clutter

12
推荐指数
1
解决办法
438
查看次数

寻找适用于iOS和Android的基本2D/3D图形的跨平台方法

我正在使用他们的原生SDK为Android和iOS单独开发一个应用程序.但是,应用程序中有一些模块应该支持基本的2D(也可以是3D)技能,例如倾斜,缩放,矢量图形的旋转+例如在简单纹理平面上的各种可选花式效果.

我想将这个模块托管在一个视图的某个部分中,并且它的代码将尽可能在iOS和Android平台之间共享.

我一直潜伏在网络上寻求各种解决方案.

  1. 首先是OpenGL,问题是我不熟悉OpenGL的编码,我无法理解我将用OpenGL编写的代码是否可以在两个平台之间共享.似乎没有人真正尝试用NDK等来做这件事.
  2. 有像平台这样的平台

    一个.Clutter(http://www.clutter-project.org/) - 我在移动设备上找不到任何示例.

    湾 像Unity3D这样的平台,虽然我不认为它们可以帮到我很多,因为据我所知,整个应用程序必须在他们的平台上运行,而这不是我想要的.

那么,你们认为在iOS和Android之间共享2d/3d代码是否可行?如果是这样,你有什么方法可以推荐吗?

或者我应该使用每个设备的本机方法2d或3d图形?

谢谢!

android opengl-es clutter ios

8
推荐指数
1
解决办法
4560
查看次数

可以在Python 3中使用Clutter吗?

Clutter有Python 3绑定吗?如果是这样,我怎样才能获得并使用它们?

clutter python-3.x python-bindings

6
推荐指数
1
解决办法
1380
查看次数

如何开始编写合成WM?

我想写一个基本的硬件加速窗口管理器,所以我一直在寻找一些关于如何入门的文档,但我只是设法找到了这个教程,它使用了过时版本的Clutter而不会使用当前可用的任何版本构建.有没有其他好的资源可以做到这一点,或者,一个非常简单的合成WM来查看源?

linux x11 compositing clutter

6
推荐指数
1
解决办法
2382
查看次数

C++ - Clutter 1.0 - 从线程调用函数会导致段错误

我正在努力从一个额外的线程调用一个杂乱的函数.我使用boost :: thread进行线程化和clutter库1.0.

具体来说,该线程包含一个循环函数,该函数每隔一段时间发出一个带有x和y坐标参数的boost :: signals2 :: signal.该信号连接到一个函数,该函数将这些变量置于混乱状态,即x,y in

clutter_stage_get_actor_at_pos(CLUTTER_STAGE(演员),CLUTTER_PICK_ALL,x,y);

这就是我遇到段错误的地方.

显然杂乱有一些线程处理程序.我试着打电话

g_thread_init(NULL);

clutter_threads_init();

在启动clutter_main()之前.我也尝试将杂乱函数包含在内

clutter_threads_enter();

clutter_stage_get_actor_at_pos(CLUTTER_STAGE(演员),CLUTTER_PICK_ALL,x,y);

clutter_threads_leave();

但这也不行.

每个提示都表示赞赏,谢谢你提前!

附录

我只是伪造了我想要做的最小样本.我按照建议"保护"了clutter_main()例程.杂乱的一些功能似乎从单独的线程起作用(例如,设置舞台颜色或设置演员位置).我的代码还有问题吗?

#include <clutter/clutter.h>
#include <boost/thread.hpp>


ClutterActor *stage;
ClutterActor* rect = NULL;


void receive_loop()
{
while(1)
{
    sleep(1);
    clutter_threads_enter();

    ClutterActor* clicked =  clutter_stage_get_actor_at_pos(CLUTTER_STAGE(stage), CLUTTER_PICK_ALL,300, 500);

    clutter_threads_leave();
}

}


int main(int argc, char *argv[]) 
{

    clutter_init(&argc, &argv);

g_thread_init(NULL);
clutter_threads_init();


    stage = clutter_stage_get_default();
    clutter_actor_set_size(stage, 800, 600);


rect = clutter_rectangle_new();
clutter_actor_set_size(rect, 256, 128);
clutter_actor_set_position(rect, 300, 500);
clutter_group_add (CLUTTER_GROUP (stage), rect);    


    clutter_actor_show(stage);


boost::thread thread …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading boost signals clutter

6
推荐指数
2
解决办法
1767
查看次数

gjs cairo上下文绘图不在杂乱窗口中显示

我正在尝试使用javascript绑定将一个简单的开罗绘图绘制到一个混乱的窗口.我的问题是,除了命名略有不同的函数的一半,无论我尝试什么,都没有显示开罗绘图.我使用了python的一个例子,它可以工作,并将它移植到javascript.我也在使用内省来获取Clutter模块实例.我也在使用gjs版本0.7.14.谁能告诉我出了什么问题.

下面是我正在使用的示例代码.


const cairo = imports.cairo;
const clutter =  imports.gi.Clutter;

function on_button_press_event (stage, event) {
    clutter.main_quit();
}

function draw(cairo_tex) {
    var context = cairo_tex.create();


    context.scale(200, 200);
    context.setLineWidth(0.1);
    var colour2 = new clutter.Color();
    colour2.from_string('#dd000088');
    clutter.cairo_set_source_color(context, colour2);
    context.translate(0.5, 0.5);
    context.arc(0, 0, 0.4, 0, Math.PI * 2);
    context.stroke();
}

function main () {
    clutter.init(0, null);
    var stage = new clutter.Stage();
    var colour = new clutter.Color();
    colour.from_string("#ffccccff");
    stage.set_color(colour);
    stage.set_size(400, 300);
    stage.connect('button-press-event',  on_button_press_event);
    stage.connect('destroy', clutter.main_quit);

    var cairo_tex = new clutter.CairoTexture.new(200, 200);
    cairo_tex.set_position((stage.get_width() - 200) / …
Run Code Online (Sandbox Code Playgroud)

javascript cairo clutter

5
推荐指数
1
解决办法
1110
查看次数

GtkClutter演员发出信号不发射

我正在尝试使用GtkClutter编写应用程序,但我无法让演员发出信号.这是一个例子

from gi.repository import GtkClutter, Clutter, Gtk, Gdk

GtkClutter.init([])

class MyCanvas(GtkClutter.Embed):
    __gtype_name__ = 'MyCanvas'

    def __init__(self):
        super(MyCanvas, self).__init__()

        self.stage = self.get_stage()

        self.rect = MyRect()
        self.stage.connect('key-press-event', self.key_press) # This Works!
        self.stage.add_actor(self.rect)
        self.rect.set_position(10, 10)

        self.show_all()

    def key_press(self, widget, event):
        print widget, event


class MyRect(Clutter.Rectangle):
    __gtype_name__ = 'MyRect'

    def __init__(self):
        super(MyRect, self).__init__()
        self.set_color(Clutter.Color.new(255, 255, 255, 0))
        self.set_border_color(Clutter.Color.new(255, 255, 255, 255))
        self.set_border_width(1)
        self.set_size(200, 200)

        self.set_reactive(True)

    # None of the following callbacks work
    # Not even if I explicitly connect signals like 
    # self.connect('button-press-event', self.on_button_press) …
Run Code Online (Sandbox Code Playgroud)

gtk pygtk pygobject clutter

3
推荐指数
1
解决办法
1000
查看次数

使用杂波进行游戏开发

我是一个相对较新的开发人员,我正在学习C++.我有使用java,javascript,actionscript和python编写代码的经验,但我想要一些足够快的东西来做一些高性能的2D和3D游戏.

当我最终学习基础知识(控制结构,课程等)时,我想开发一个2D游戏.我已经探索了各种2D图形库(cairo,sdl,openframeworks,clutter),但杂乱似乎是加速图形和矢量绘图最优化的.

混乱是否适合2D游戏?我意识到它与其他库不同,它维护着自己的场景图,但我过去开发了一个flash游戏,所以我应该习惯它.

我应该注意哪些性能问题?有没有其他人有经验做杂乱的重型图形?

c++ clutter

3
推荐指数
1
解决办法
3059
查看次数

处理gnome shell扩展中的窗口焦点事件

我正在为Gnome 3.4开发一个gnome shell扩展.如果任何可编辑文本聚焦在/进出,我的扩展需要捕获窗口事件.

global.stage.connect('notify::focus-key', Lang.bind(this, this._myHandler));
Run Code Online (Sandbox Code Playgroud)

不适合我.

这是一个简单的用例:每当用户点击firefox搜索框时,我都希望运行我的处理程序.

谢谢你的帮助,

gnome event-handling clutter gnome-shell-extensions

3
推荐指数
1
解决办法
1028
查看次数

在Gtk中,是否有可能使小部件淡入淡出?

我想要Label(或至少标签上的文字)做一个快速的淡入.看起来这可能是混乱的,但我不想使用杂乱,直到为Ubuntu打包杂乱.有没有办法做到这一点,不涉及使用杂乱?

c# gtk gtk# clutter

2
推荐指数
1
解决办法
837
查看次数