Query¶
-
class
moderngl.
Query
¶ This class represents a Query object.
Create¶
-
Context.
query
(samples=False, any_samples=False, time=False, primitives=False) → Query Create a
Query
object.Keyword Arguments: - samples (bool) – Query
GL_SAMPLES_PASSED
or not. - any_samples (bool) – Query
GL_ANY_SAMPLES_PASSED
or not. - time (bool) – Query
GL_TIME_ELAPSED
or not. - primitives (bool) – Query
GL_PRIMITIVES_GENERATED
or not.
- samples (bool) – Query
Attributes¶
-
Query.
samples
¶ The number of samples passed.
Type: int
-
Query.
primitives
¶ The number of primitives generated.
Type: int
-
Query.
elapsed
¶ The time elapsed in nanoseconds.
Type: int
-
Query.
crender
¶ Can be used in a
with
statement.Type: ConditionalRender
-
Query.
extra
¶ Any - Attribute for storing user defined objects
Examples¶
Simple query example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | import moderngl
import numpy as np
ctx = moderngl.create_standalone_context()
prog = ctx.program(
vertex_shader='''
#version 330
in vec2 in_vert;
void main() {
gl_Position = vec4(in_vert, 0.0, 1.0);
}
''',
fragment_shader='''
#version 330
out vec4 color;
void main() {
color = vec4(1.0, 0.0, 0.0, 1.0);
}
''',
)
vertices = np.array([
0.0, 0.0,
1.0, 0.0,
0.0, 1.0,
], dtype='f4')
vbo = ctx.buffer(vertices.tobytes())
vao = ctx.simple_vertex_array(prog, vbo, 'in_vert')
fbo = ctx.simple_framebuffer((64, 64))
fbo.use()
query = ctx.query(samples=True, time=True)
with query:
vao.render()
print('It took %d nanoseconds' % query.elapsed)
print('to render %d samples' % query.samples)
|
Output
It took 13529 nanoseconds
to render 496 samples