Neil Roberts
c8ddb3b55a
cogl-atlas: Try 4 different approaches for migrating textures
...
Instead of directly banging GL to migrate textures the atlas now uses
the CoglFramebuffer API. It will use one of four approaches; it can
set up two FBOs and use _cogl_blit_framebuffer to copy between them;
it can use a single target fbo and then render the source texture to
the FBO using a Cogl draw call; it can use a single FBO and call
glCopyTexSubImage2D; or it can fallback to reading all of the texture
data back to system memory and uploading it again with a sub texture
update.
Previously GL calls were used directly because Cogl wasn't able to
create a framebuffer without a stencil and depth buffer. However there
is now an internal version of cogl_offscreen_new_to_texture which
takes a set of flags to disable the two buffers.
The code for blitting has now been moved into a separate file called
cogl-blit.c because it has become quite long and it may be useful
outside of the atlas at some point.
The 4 different methods have a fixed order of preference which is:
* Texture render between two FBOs
* glBlitFramebuffer
* glCopyTexSubImage2D
* glGetTexImage + glTexSubImage2D
Once a method is succesfully used it is tried first for all subsequent
blits. The default default can be overridden by setting the
environment variable COGL_ATLAS_DEFAULT_BLIT_MODE to one of the
following values:
* texture-render
* framebuffer
* copy-tex-sub-image
* get-tex-data
2011-02-15 12:10:54 +00:00
..
2011-02-15 12:10:54 +00:00
2010-09-12 19:25:47 +01:00
2011-01-21 18:58:58 +00:00
2011-02-15 12:10:54 +00:00
2010-11-11 13:17:26 +00:00
2010-12-13 18:59:41 +00:00
2011-02-15 12:10:54 +00:00
2011-02-15 12:10:54 +00:00
2010-12-13 18:59:41 +00:00
2011-01-21 16:24:14 +00:00
2011-02-15 12:10:54 +00:00
2011-01-21 16:24:14 +00:00
2010-07-15 17:24:01 +01:00
2011-01-10 16:55:01 +00:00
2011-01-10 16:55:01 +00:00
2011-01-10 16:54:58 +00:00
2010-12-22 09:52:35 +00:00
2010-12-13 17:28:29 +00:00
2010-12-13 17:28:29 +00:00
2011-01-24 15:45:45 +00:00
2010-06-15 15:26:27 +01:00
2011-02-15 12:10:54 +00:00
2011-02-15 12:10:54 +00:00
2011-01-13 16:36:32 +00:00
2011-01-13 16:36:45 +00:00
2010-12-22 09:52:35 +00:00
2010-08-12 11:54:42 +01:00
2010-08-12 11:54:42 +01:00
2011-02-15 12:10:54 +00:00
2011-01-21 16:18:10 +00:00
2011-02-15 12:10:54 +00:00
2011-01-21 16:18:10 +00:00
2010-12-07 16:00:32 +00:00
2010-06-15 15:26:27 +01:00
2010-06-15 15:26:27 +01:00
2011-02-15 12:10:54 +00:00
2011-02-15 12:10:54 +00:00
2011-01-24 17:39:48 +00:00
2011-01-24 17:39:48 +00:00
2011-01-24 17:39:48 +00:00
2010-07-13 14:28:51 +01:00
2010-03-01 12:56:10 +00:00
2009-10-16 18:58:50 +01:00
2009-10-16 18:58:50 +01:00
2010-06-22 12:22:43 +01:00
2010-06-22 12:22:43 +01:00
2010-11-25 18:18:51 +00:00
2010-06-01 12:08:18 +01:00
2011-02-15 12:10:54 +00:00
2011-02-15 12:10:54 +00:00
2010-12-07 12:16:50 +00:00
2010-06-04 14:44:15 +01:00
2010-11-03 18:04:00 +00:00
2011-01-21 16:24:14 +00:00
2010-12-22 09:52:35 +00:00
2010-11-19 13:27:30 +00:00
2010-11-19 13:27:30 +00:00
2010-11-19 13:27:30 +00:00
2010-12-13 17:28:29 +00:00
2011-01-21 16:18:11 +00:00
2011-02-15 12:10:54 +00:00
2010-11-03 18:09:23 +00:00
2010-12-22 09:52:35 +00:00
2010-03-01 12:56:10 +00:00
2010-03-01 12:56:10 +00:00
2011-01-24 15:45:45 +00:00
2011-02-15 12:10:54 +00:00
2010-12-13 17:29:13 +00:00
2011-02-01 13:18:43 +00:00
2011-02-09 17:21:48 +00:00
2011-01-21 16:18:10 +00:00
2011-01-21 16:18:10 +00:00
2010-12-22 09:52:35 +00:00
2010-09-06 16:11:46 +01:00
2011-01-21 16:24:14 +00:00
2010-11-11 13:17:26 +00:00
2010-12-22 09:52:35 +00:00
2010-12-13 17:22:57 +00:00
2011-01-24 15:45:45 +00:00
2010-12-13 17:22:57 +00:00
2011-01-24 15:45:45 +00:00
2010-12-13 17:22:57 +00:00
2011-01-13 12:23:33 +00:00
2010-12-13 17:22:57 +00:00
2011-01-24 12:09:11 +00:00
2011-01-21 16:18:10 +00:00
2011-01-21 16:24:14 +00:00
2011-01-24 12:09:11 +00:00
2010-12-13 17:22:57 +00:00
2011-02-09 16:14:13 +00:00
2010-12-13 17:28:28 +00:00
2011-02-09 16:14:13 +00:00
2011-02-01 17:50:10 +00:00
2010-12-22 09:52:35 +00:00
2010-10-26 16:16:40 +01:00
2010-12-13 17:29:14 +00:00
2010-07-05 15:20:04 +01:00
2011-01-21 16:18:11 +00:00
2011-01-21 16:18:11 +00:00
2010-11-03 18:04:31 +00:00
2011-01-21 16:24:14 +00:00
2011-01-21 16:24:14 +00:00
2010-11-04 18:10:08 +00:00
2011-02-15 12:10:54 +00:00
2010-03-25 09:33:26 +00:00
2010-11-24 15:56:34 +00:00
2011-01-24 15:45:45 +00:00
2010-09-14 12:43:17 +01:00
2010-12-13 17:22:57 +00:00
2011-01-17 12:56:58 +00:00
2011-01-24 15:45:45 +00:00
2010-08-12 11:54:42 +01:00
2011-01-24 12:09:11 +00:00
2010-12-03 15:27:17 +00:00
2011-01-24 15:45:45 +00:00
2010-09-03 16:59:01 +01:00
2010-03-01 12:56:10 +00:00
2010-03-01 12:56:10 +00:00
2010-03-01 12:56:10 +00:00
2011-01-21 16:18:10 +00:00
2011-02-15 12:10:54 +00:00
2010-11-03 18:09:23 +00:00
2011-01-21 16:18:10 +00:00
2011-02-15 12:10:54 +00:00
2010-11-03 18:09:23 +00:00
2011-01-21 16:18:10 +00:00
2010-07-13 14:28:52 +01:00
2010-07-13 14:28:52 +01:00
2011-01-21 16:18:10 +00:00
2010-11-03 18:09:23 +00:00
2011-01-21 16:18:10 +00:00
2011-02-15 12:10:54 +00:00
2010-03-01 12:56:10 +00:00
2011-01-21 16:24:14 +00:00
2011-01-10 16:55:00 +00:00
2011-01-10 16:55:00 +00:00
2010-05-20 17:18:24 +01:00
2010-06-30 18:51:31 +01:00
2010-11-03 18:04:00 +00:00
2010-11-19 13:27:30 +00:00
2010-12-22 09:52:35 +00:00
2011-01-21 16:24:14 +00:00
2011-02-01 18:47:05 +00:00
2011-02-09 19:12:12 +00:00
2011-02-15 12:10:54 +00:00
2011-01-21 16:24:14 +00:00
2009-10-16 18:58:50 +01:00
2011-02-15 12:10:54 +00:00
2010-03-03 17:02:51 +00:00