X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=glwrap.c;fp=glwrap.c;h=a90ef8c4707b9f67f13de51495534aa6d6d5258a;hb=e7e5c4643bbf59b0df88356ef5c511ebe764ff58;hp=beb1c97fd38cb05830e6ce1f37b9680c872804bc;hpb=5d1e3487ca1699c242ddde9828887e9e3d6c8363;p=fips diff --git a/glwrap.c b/glwrap.c index beb1c97..a90ef8c 100644 --- a/glwrap.c +++ b/glwrap.c @@ -332,10 +332,30 @@ glClear (GLbitfield mask) TIMED_DEFER (glClear, mask); } +/* We can't just use TIMED_DEFER for glBegin/glEnd since the + * glBeginQuery/glEndQuery calls must both be outside + * glBegin/glEnd. */ +void +glBegin (GLenum mode) +{ + if (! inside_new_list) + { + unsigned counter; + counter = metrics_add_counter (); + glBeginQuery (GL_TIME_ELAPSED, counter); + } + + GLWRAP_DEFER (glBegin, mode); +} + void glEnd (void) { - TIMED_DEFER (glEnd,); + GLWRAP_DEFER (glEnd); + + if (! inside_new_list) { + glEndQuery (GL_TIME_ELAPSED); + } } void