我对上面列出的库的关系有点困惑,这是我的想法:
如果这是正确的,Clutter有一天会取代GTK +吗?
和...
如果你认为有一个更好的地方可以提出这个问题,或者我应该先读一些书,请告诉我!我是兴趣的自学编程.
我的目标是使用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) 我正在使用他们的原生SDK为Android和iOS单独开发一个应用程序.但是,应用程序中有一些模块应该支持基本的2D(也可以是3D)技能,例如倾斜,缩放,矢量图形的旋转+例如在简单纹理平面上的各种可选花式效果.
我想将这个模块托管在一个视图的某个部分中,并且它的代码将尽可能在iOS和Android平台之间共享.
我一直潜伏在网络上寻求各种解决方案.
有像平台这样的平台
一个.Clutter(http://www.clutter-project.org/) - 我在移动设备上找不到任何示例.
湾 像Unity3D这样的平台,虽然我不认为它们可以帮到我很多,因为据我所知,整个应用程序必须在他们的平台上运行,而这不是我想要的.
那么,你们认为在iOS和Android之间共享2d/3d代码是否可行?如果是这样,你有什么方法可以推荐吗?
或者我应该使用每个设备的本机方法2d或3d图形?
谢谢!
Clutter有Python 3绑定吗?如果是这样,我怎样才能获得并使用它们?
我想写一个基本的硬件加速窗口管理器,所以我一直在寻找一些关于如何入门的文档,但我只是设法找到了这个教程,它使用了过时版本的Clutter而不会使用当前可用的任何版本构建.有没有其他好的资源可以做到这一点,或者,一个非常简单的合成WM来查看源?
我正在努力从一个额外的线程调用一个杂乱的函数.我使用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) 我正在尝试使用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) 我正在尝试使用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) 我是一个相对较新的开发人员,我正在学习C++.我有使用java,javascript,actionscript和python编写代码的经验,但我想要一些足够快的东西来做一些高性能的2D和3D游戏.
当我最终学习基础知识(控制结构,课程等)时,我想开发一个2D游戏.我已经探索了各种2D图形库(cairo,sdl,openframeworks,clutter),但杂乱似乎是加速图形和矢量绘图最优化的.
混乱是否适合2D游戏?我意识到它与其他库不同,它维护着自己的场景图,但我过去开发了一个flash游戏,所以我应该习惯它.
我应该注意哪些性能问题?有没有其他人有经验做杂乱的重型图形?
我正在为Gnome 3.4开发一个gnome shell扩展.如果任何可编辑文本聚焦在/进出,我的扩展需要捕获窗口事件.
global.stage.connect('notify::focus-key', Lang.bind(this, this._myHandler));
Run Code Online (Sandbox Code Playgroud)
不适合我.
这是一个简单的用例:每当用户点击firefox搜索框时,我都希望运行我的处理程序.
谢谢你的帮助,
我想要Label(或至少标签上的文字)做一个快速的淡入.看起来这可能是混乱的,但我不想使用杂乱,直到为Ubuntu打包杂乱.有没有办法做到这一点,不涉及使用杂乱?