Make backface culling work with vertex buffers
Backface culling is enabled as part of cogl_enable so the different rendering functions in Cogl need to explicitly opt-in to have backface culling enabled. Cogl vertex buffers should allow backface culling so they should check whether it is enabled and then set the appropriate cogl_enable flag.
This commit is contained in:
parent
4f5a5f38f7
commit
f13c3ee309
@ -325,9 +325,9 @@ void cogl_enable_depth_test (gboolean setting);
|
||||
*
|
||||
* Sets whether textures positioned so that their backface is showing
|
||||
* should be hidden. This can be used to efficiently draw two-sided
|
||||
* textures or fully closed cubes without enabling depth testing. Only
|
||||
* calls to cogl_texture_rectangle() and cogl_texture_polygon() are
|
||||
* affected. Backface culling is disabled by default.
|
||||
* textures or fully closed cubes without enabling depth testing. This
|
||||
* only affects calls to the cogl_rectangle* family of functions and
|
||||
* cogl_vertex_buffer_draw*. Backface culling is disabled by default.
|
||||
*/
|
||||
void cogl_enable_backface_culling (gboolean setting);
|
||||
|
||||
|
@ -1647,6 +1647,9 @@ enable_state_for_drawing_buffer (CoglVertexBuffer *buffer)
|
||||
|
||||
enable_flags |= cogl_material_get_cogl_enable_flags (ctx->source_material);
|
||||
|
||||
if (ctx->enable_backface_culling)
|
||||
enable_flags |= COGL_ENABLE_BACKFACE_CULLING;
|
||||
|
||||
cogl_enable (enable_flags);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user