Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module test2;
- import std.stdio;
- import std.string,
- std.conv,
- std.c.linux.linux;
- pragma(lib, "dl");
- char* cstring(string s) { return cast(char*)toStringz(s); }
- void main(string[] args)
- {
- auto lib = dlopen("libclutter-glx-1.0.so", RTLD_NOW | RTLD_GLOBAL);
- T getSym(T)(string name)
- {
- T ret = cast(T)dlsym(lib, cstring(name));
- assert(ret !is null);
- return ret;
- }
- auto clutter_init = getSym!(int function(int*, char***))("clutter_init");
- auto clutter_main = getSym!(void function())("clutter_main");
- auto clutter_stage_get_default = getSym!(void* function())("clutter_stage_get_default");
- auto clutter_stage_set_title = getSym!(void function(void*, char*))("clutter_stage_set_title");
- auto err = clutter_init(null, null);
- if (err != 1)
- return; // failed to initialize
- writeln("Initialized");
- void* stage = clutter_stage_get_default();
- writeln("Got default stage");
- clutter_stage_set_title(stage, cstring("A window title"));
- writeln("Set title on stage");
- clutter_main();
- dlclose(lib);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement