Skip to content

Commit 34d08ae

Browse files
committed
Bring back OpenGL debug groups
1 parent 58d2010 commit 34d08ae

File tree

1 file changed

+40
-1
lines changed

1 file changed

+40
-1
lines changed

inox2d-opengl/src/lib.rs

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,8 @@ impl OpenglRenderer {
411411

412412
impl InoxRenderer for OpenglRenderer {
413413
fn on_begin_masks(&self, masks: &Masks) {
414+
self.push_debug_group("inox2d - begin masks");
415+
414416
let gl = &self.gl;
415417

416418
unsafe {
@@ -426,23 +428,31 @@ impl InoxRenderer for OpenglRenderer {
426428
let part_mask_shader = &self.part_mask_shader;
427429
self.bind_shader(part_mask_shader);
428430
part_mask_shader.set_threshold(gl, masks.threshold.clamp(0.0, 1.0));
431+
432+
self.pop_debug_group();
429433
}
430434

431435
fn on_begin_mask(&self, mask: &Mask) {
436+
self.push_debug_group("inox2d - begin mask");
437+
432438
let gl = &self.gl;
433439
unsafe {
434440
gl.stencil_func(glow::ALWAYS, (mask.mode == MaskMode::Mask) as i32, 0xff);
435441
}
436442
}
437443

438444
fn on_begin_masked_content(&self) {
445+
self.push_debug_group("inox2d - begin masked content");
446+
439447
let gl = &self.gl;
440448
unsafe {
441449
gl.stencil_func(glow::EQUAL, 1, 0xff);
442450
gl.stencil_mask(0x00);
443451

444452
gl.color_mask(true, true, true, true);
445453
}
454+
455+
self.pop_debug_group();
446456
}
447457

448458
fn on_end_mask(&self) {
@@ -452,6 +462,8 @@ impl InoxRenderer for OpenglRenderer {
452462
gl.stencil_func(glow::ALWAYS, 1, 0xff);
453463
gl.disable(glow::STENCIL_TEST);
454464
}
465+
466+
self.pop_debug_group();
455467
}
456468

457469
fn draw_textured_mesh_content(
@@ -461,6 +473,8 @@ impl InoxRenderer for OpenglRenderer {
461473
render_ctx: &TexturedMeshRenderCtx,
462474
_id: InoxNodeUuid,
463475
) {
476+
self.push_debug_group("inox2d - draw textured content");
477+
464478
let gl = &self.gl;
465479

466480
// TODO: plain masks, meshes as masks without textures
@@ -514,6 +528,8 @@ impl InoxRenderer for OpenglRenderer {
514528
render_ctx.index_offset as i32 * mem::size_of::<u16>() as i32,
515529
);
516530
}
531+
532+
self.pop_debug_group();
517533
}
518534

519535
fn begin_composite_content(
@@ -523,6 +539,8 @@ impl InoxRenderer for OpenglRenderer {
523539
_render_ctx: &CompositeRenderCtx,
524540
_id: InoxNodeUuid,
525541
) {
542+
self.push_debug_group("inox2d - begin composite content");
543+
526544
self.clear_texture_cache();
527545

528546
let gl = &self.gl;
@@ -541,6 +559,10 @@ impl InoxRenderer for OpenglRenderer {
541559
gl.active_texture(glow::TEXTURE0);
542560
gl.blend_func(glow::ONE, glow::ONE_MINUS_SRC_ALPHA);
543561
}
562+
563+
self.pop_debug_group();
564+
565+
self.push_debug_group("inox2d - composite content");
544566
}
545567

546568
fn finish_composite_content(
@@ -550,6 +572,10 @@ impl InoxRenderer for OpenglRenderer {
550572
_render_ctx: &CompositeRenderCtx,
551573
_id: InoxNodeUuid,
552574
) {
575+
self.pop_debug_group();
576+
577+
self.push_debug_group("inox2d - finish composite content");
578+
553579
let gl = &self.gl;
554580

555581
self.clear_texture_cache();
@@ -592,12 +618,16 @@ impl InoxRenderer for OpenglRenderer {
592618
unsafe {
593619
gl.draw_elements(glow::TRIANGLES, 6, glow::UNSIGNED_SHORT, 0);
594620
}
621+
622+
self.pop_debug_group();
595623
}
596624
}
597625

598626
impl OpenglRenderer {
599627
/// Update the renderer with latest puppet data.
600628
pub fn on_begin_draw(&self, puppet: &Puppet) {
629+
self.push_debug_group("inox2d - begin draw");
630+
601631
let gl = &self.gl;
602632

603633
// TODO: calculate this matrix only once per draw pass.
@@ -619,14 +649,23 @@ impl OpenglRenderer {
619649
gl.enable(glow::BLEND);
620650
gl.disable(glow::DEPTH_TEST);
621651
}
652+
653+
self.pop_debug_group();
654+
655+
self.push_debug_group("inox2d - draw");
622656
}
623657

624658
/// Renderer cleaning up after one frame.
625659
pub fn on_end_draw(&self, _puppet: &Puppet) {
626-
let gl = &self.gl;
660+
self.pop_debug_group();
627661

662+
self.push_debug_group("inox2d - end draw");
663+
664+
let gl = &self.gl;
628665
unsafe {
629666
gl.bind_vertex_array(None);
630667
}
668+
669+
self.pop_debug_group();
631670
}
632671
}

0 commit comments

Comments
 (0)