mirror of
https://github.com/brl/mutter.git
synced 2024-11-22 16:10:41 -05:00
debug: don't overlay wireframe
When using COGL_DEBUG=wireframe we were overlaying a wireframe of the users geometry over the top of what was drawn for each primitive. It seems to be more useful though that if the wireframe debug option has been enabled then we should draw only the wireframes instead of overlaying them. Reviewed-by: Neil Roberts <neil@linux.intel.com>
This commit is contained in:
parent
983c9f0dc4
commit
269878217f
@ -2678,18 +2678,20 @@ _cogl_framebuffer_draw_attributes (CoglFramebuffer *framebuffer,
|
|||||||
int n_attributes,
|
int n_attributes,
|
||||||
CoglDrawFlags flags)
|
CoglDrawFlags flags)
|
||||||
{
|
{
|
||||||
_cogl_flush_attributes_state (framebuffer, pipeline, flags,
|
|
||||||
attributes, n_attributes);
|
|
||||||
|
|
||||||
GE (framebuffer->context,
|
|
||||||
glDrawArrays ((GLenum)mode, first_vertex, n_vertices));
|
|
||||||
|
|
||||||
#ifdef COGL_ENABLE_DEBUG
|
#ifdef COGL_ENABLE_DEBUG
|
||||||
if (G_UNLIKELY (COGL_DEBUG_ENABLED (COGL_DEBUG_WIREFRAME)))
|
if (G_UNLIKELY (COGL_DEBUG_ENABLED (COGL_DEBUG_WIREFRAME)))
|
||||||
draw_wireframe (framebuffer, pipeline,
|
draw_wireframe (framebuffer, pipeline,
|
||||||
mode, first_vertex, n_vertices,
|
mode, first_vertex, n_vertices,
|
||||||
attributes, n_attributes, NULL);
|
attributes, n_attributes, NULL);
|
||||||
|
else
|
||||||
#endif
|
#endif
|
||||||
|
{
|
||||||
|
_cogl_flush_attributes_state (framebuffer, pipeline, flags,
|
||||||
|
attributes, n_attributes);
|
||||||
|
|
||||||
|
GE (framebuffer->context,
|
||||||
|
glDrawArrays ((GLenum)mode, first_vertex, n_vertices));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -2769,47 +2771,49 @@ _cogl_framebuffer_draw_indexed_attributes (CoglFramebuffer *framebuffer,
|
|||||||
int n_attributes,
|
int n_attributes,
|
||||||
CoglDrawFlags flags)
|
CoglDrawFlags flags)
|
||||||
{
|
{
|
||||||
CoglBuffer *buffer;
|
|
||||||
guint8 *base;
|
|
||||||
size_t buffer_offset;
|
|
||||||
size_t index_size;
|
|
||||||
GLenum indices_gl_type = 0;
|
|
||||||
|
|
||||||
_cogl_flush_attributes_state (framebuffer, pipeline, flags,
|
|
||||||
attributes, n_attributes);
|
|
||||||
|
|
||||||
buffer = COGL_BUFFER (cogl_indices_get_buffer (indices));
|
|
||||||
base = _cogl_buffer_bind (buffer, COGL_BUFFER_BIND_TARGET_INDEX_BUFFER);
|
|
||||||
buffer_offset = cogl_indices_get_offset (indices);
|
|
||||||
index_size = sizeof_index_type (cogl_indices_get_type (indices));
|
|
||||||
|
|
||||||
switch (cogl_indices_get_type (indices))
|
|
||||||
{
|
|
||||||
case COGL_INDICES_TYPE_UNSIGNED_BYTE:
|
|
||||||
indices_gl_type = GL_UNSIGNED_BYTE;
|
|
||||||
break;
|
|
||||||
case COGL_INDICES_TYPE_UNSIGNED_SHORT:
|
|
||||||
indices_gl_type = GL_UNSIGNED_SHORT;
|
|
||||||
break;
|
|
||||||
case COGL_INDICES_TYPE_UNSIGNED_INT:
|
|
||||||
indices_gl_type = GL_UNSIGNED_INT;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
GE (framebuffer->context,
|
|
||||||
glDrawElements ((GLenum)mode,
|
|
||||||
n_vertices,
|
|
||||||
indices_gl_type,
|
|
||||||
base + buffer_offset + index_size * first_vertex));
|
|
||||||
|
|
||||||
_cogl_buffer_unbind (buffer);
|
|
||||||
|
|
||||||
#ifdef COGL_ENABLE_DEBUG
|
#ifdef COGL_ENABLE_DEBUG
|
||||||
if (G_UNLIKELY (COGL_DEBUG_ENABLED (COGL_DEBUG_WIREFRAME)))
|
if (G_UNLIKELY (COGL_DEBUG_ENABLED (COGL_DEBUG_WIREFRAME)))
|
||||||
draw_wireframe (framebuffer, pipeline,
|
draw_wireframe (framebuffer, pipeline,
|
||||||
mode, first_vertex, n_vertices,
|
mode, first_vertex, n_vertices,
|
||||||
attributes, n_attributes, indices);
|
attributes, n_attributes, indices);
|
||||||
|
else
|
||||||
#endif
|
#endif
|
||||||
|
{
|
||||||
|
CoglBuffer *buffer;
|
||||||
|
guint8 *base;
|
||||||
|
size_t buffer_offset;
|
||||||
|
size_t index_size;
|
||||||
|
GLenum indices_gl_type = 0;
|
||||||
|
|
||||||
|
_cogl_flush_attributes_state (framebuffer, pipeline, flags,
|
||||||
|
attributes, n_attributes);
|
||||||
|
|
||||||
|
buffer = COGL_BUFFER (cogl_indices_get_buffer (indices));
|
||||||
|
base = _cogl_buffer_bind (buffer, COGL_BUFFER_BIND_TARGET_INDEX_BUFFER);
|
||||||
|
buffer_offset = cogl_indices_get_offset (indices);
|
||||||
|
index_size = sizeof_index_type (cogl_indices_get_type (indices));
|
||||||
|
|
||||||
|
switch (cogl_indices_get_type (indices))
|
||||||
|
{
|
||||||
|
case COGL_INDICES_TYPE_UNSIGNED_BYTE:
|
||||||
|
indices_gl_type = GL_UNSIGNED_BYTE;
|
||||||
|
break;
|
||||||
|
case COGL_INDICES_TYPE_UNSIGNED_SHORT:
|
||||||
|
indices_gl_type = GL_UNSIGNED_SHORT;
|
||||||
|
break;
|
||||||
|
case COGL_INDICES_TYPE_UNSIGNED_INT:
|
||||||
|
indices_gl_type = GL_UNSIGNED_INT;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
GE (framebuffer->context,
|
||||||
|
glDrawElements ((GLenum)mode,
|
||||||
|
n_vertices,
|
||||||
|
indices_gl_type,
|
||||||
|
base + buffer_offset + index_size * first_vertex));
|
||||||
|
|
||||||
|
_cogl_buffer_unbind (buffer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user