Query#

class moderngl.Query#

Create#

Context.query(*, samples: bool = False, any_samples: bool = False, time: bool = False, primitives: bool = False) Query

Attributes#

Query.samples#
Query.primitives#
Query.elapsed#
Query.crender#
Query.extra#
Query.mglo#
Query.ctx#

Examples#

Simple query example

 1import moderngl
 2import numpy as np
 3
 4ctx = moderngl.create_standalone_context()
 5prog = ctx.program(
 6    vertex_shader='''
 7        #version 330
 8
 9        in vec2 in_vert;
10
11        void main() {
12            gl_Position = vec4(in_vert, 0.0, 1.0);
13        }
14    ''',
15    fragment_shader='''
16        #version 330
17
18        out vec4 color;
19
20        void main() {
21            color = vec4(1.0, 0.0, 0.0, 1.0);
22        }
23    ''',
24)
25
26vertices = np.array([
27    0.0, 0.0,
28    1.0, 0.0,
29    0.0, 1.0,
30], dtype='f4')
31
32vbo = ctx.buffer(vertices.tobytes())
33vao = ctx.simple_vertex_array(prog, vbo, 'in_vert')
34
35fbo = ctx.simple_framebuffer((64, 64))
36fbo.use()
37
38query = ctx.query(samples=True, time=True)
39
40with query:
41    vao.render()
42
43print('It took %d nanoseconds' % query.elapsed)
44print('to render %d samples' % query.samples)

Output

It took 13529 nanoseconds
to render 496 samples