mutter/examples
Robert Bragg cbd6951134 introduce texture loaders to make allocations lazy
This introduces the internal idea of texture loaders that track the
state for loading and allocating a texture. This defers a lot more work
until the texture is allocated.

There are several intentions to this change:

- provides a means for extending how textures are allocated without
  requiring all the parameters to be supplied in a single _texture_new()
  function call.

- allow us to remove the internal_format argument from all
  _texture_new() apis since using CoglPixelFormat is bad way of
  expressing the internal format constraints because it is too specific.

  For now the internal_format arguments haven't actually been removed
  but this patch does introduce replacement apis for controlling the
  internal format:

    cogl_texture_set_components() lets you specify what components your
    texture needs when it is allocated.
    cogl_texture_set_premultiplied() lets you specify whether a texture
    data should be interpreted as premultiplied or not.

- Enable us to support asynchronous texture loading + allocation in the
  future.

Of note, the _new_from_data() texture constructors all continue to
allocate textures immediately so that existing code doesn't need to be
adapted to manage the lifetime of the data being uploaded.

Reviewed-by: Neil Roberts <neil@linux.intel.com>
(cherry picked from commit 6a83de9ef4210f380a31f410797447b365a8d02c)

Note: Compared to the original patch, the ->premultipled state for
textures isn't forced to be %TRUE in _cogl_texture_init since that
effectively ignores the users explicitly given internal_format which was
a mistake and on master that change should have been made in the patch
that followed. The gtk-doc comments for cogl_texture_set_premultiplied()
and cogl_texture_set_components() have also been updated in-line with
this fix.
2014-01-09 15:49:46 +00:00
..
android/hello examples: Fix the first colour in the triangle_vertices 2013-04-22 13:01:45 +01:00
cogl-basic-video-player.c introduce texture loaders to make allocations lazy 2014-01-09 15:49:46 +00:00
cogl-crate.c Declare interface types as void and remove cast macros 2013-11-27 19:33:44 +00:00
cogl-emscripten-hello.c Add _primitive_draw to replace _framebuffer_draw_primitive 2013-07-29 18:31:36 +01:00
cogl-gles2-context.c Declare interface types as void and remove cast macros 2013-11-27 19:33:44 +00:00
cogl-gles2-gears.c Declare interface types as void and remove cast macros 2013-11-27 19:33:44 +00:00
cogl-hello.c Declare interface types as void and remove cast macros 2013-11-27 19:33:44 +00:00
cogl-info.c Add support for per-vertex point sizes 2013-06-07 16:53:29 +01:00
cogl-msaa.c Declare interface types as void and remove cast macros 2013-11-27 19:33:44 +00:00
cogl-point-sprites.c Declare interface types as void and remove cast macros 2013-11-27 19:33:44 +00:00
cogl-sdl2-hello.c Make cogl-sdl.h a top-level header 2013-12-11 18:49:19 +00:00
cogl-sdl-hello.c Make cogl-sdl.h a top-level header 2013-12-11 18:49:19 +00:00
cogl-x11-foreign.c Declare interface types as void and remove cast macros 2013-11-27 19:33:44 +00:00
cogl-x11-tfp.c Declare interface types as void and remove cast macros 2013-11-27 19:33:44 +00:00
cogland.c wayland: Add a convenience function to update a region from SHM buffer 2013-11-28 18:12:22 +00:00
crate.jpg Adds another example that draws a 3D crate 2011-06-30 14:33:11 +01:00
emscripten-example-js-library.js emscripten-hello: improve mainloop integration 2013-05-29 19:30:44 +01:00
emscripten-example-js.h emscripten-hello: improve mainloop integration 2013-05-29 19:30:44 +01:00
Makefile.am Add a cogl-point-sprites example 2013-08-21 15:40:09 +01:00