diff options
author | Lionel Landwerlin <llandwerlin@gmail.com> | 2014-02-23 22:56:02 +0000 |
---|---|---|
committer | Neil Roberts <neil@linux.intel.com> | 2014-03-21 14:28:27 +0000 |
commit | 12ece8e4a1976aed565ba5707a56c11486d0215a (patch) | |
tree | 41a8c0ee7342788f095c83761b71c981b73b6fee | |
parent | b7017ed5b0eefdeccd8ebbb03d0e7ad307bcb490 (diff) | |
download | cogl-12ece8e4a1976aed565ba5707a56c11486d0215a.tar.gz |
examples: add gjs example
Reviewed-by: Neil Roberts <neil@linux.intel.com>
-rw-r--r-- | examples/Makefile.am | 1 | ||||
-rw-r--r-- | examples/cogl-gjs.js | 46 |
2 files changed, 47 insertions, 0 deletions
diff --git a/examples/Makefile.am b/examples/Makefile.am index 014cc5b2..b7cccec4 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -126,6 +126,7 @@ noinst_PROGRAMS = $(programs) endif EXTRA_DIST = \ + cogl-gjs.js \ crate.jpg \ emscripten-example-js.h \ emscripten-example-js-library.js \ diff --git a/examples/cogl-gjs.js b/examples/cogl-gjs.js new file mode 100644 index 00000000..6652e166 --- /dev/null +++ b/examples/cogl-gjs.js @@ -0,0 +1,46 @@ +const Cogl = imports.gi.Cogl; +const GLib = imports.gi.GLib; +const Lang = imports.lang; + +let renderer = new Cogl.Renderer(); +let display = new Cogl.Display(renderer, new Cogl.OnscreenTemplate(new Cogl.SwapChain())); +let ctx = new Cogl.Context(display); + +// Should be able to replace the 3 previous lines with : +// let ctx = new Cogl.Context(null); +// But crashing for some reason. + +// GLib mainloop integration +let gsource = Cogl.glib_renderer_source_new(renderer, 0); +let loop = GLib.MainLoop.new(null, false); +gsource.attach(loop.get_context()); + +// Onscreen creation +let onscreen = new Cogl.Onscreen(ctx, 800, 600); +onscreen.show(); + +// Drawing pipeline +let crate = Cogl.Texture2D.new_from_file(ctx, 'crate.jpg'); +let pipeline = new Cogl.Pipeline(ctx); +pipeline.set_layer_texture(0, crate); +let clearColor = new Cogl.Color(); +clearColor.init_from_4f(0, 0, 0, 1.0); + +// Redraw callback +let closure = onscreen.add_dirty_callback(Lang.bind(this, function() { + onscreen.clear(Cogl.BufferBit.COLOR, clearColor); + onscreen.draw_rectangle(pipeline, -1, -1, 1, 1); + onscreen.swap_buffers(); + return true; +}), null); + +// Quit after 5s +let tm = GLib.timeout_source_new(5000); +tm.set_callback(Lang.bind(this, function() { + loop.quit(); + return false; +}), null); +tm.attach(loop.get_context()); + +// Run! +loop.run(); |