Overlay-Next: Initial implementation #107045

Clément Foucault wants to merge 28 commits from fclem/blender:overlay-next into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.

28 Commits

Author SHA1 Message Date
Clément Foucault ba29927190 Fix buggy selection 2023-04-17 16:59:05 +02:00
Clément Foucault d9fd739732 Fix assert in gpu debug mode 2023-04-17 16:58:52 +02:00
Clément Foucault f25b2156df Fix crash when using old overlay engine before enabling overlay-next 2023-04-17 16:23:34 +02:00
Clément Foucault 7676b627c2 Merge branch 'main' into overlay-next
# Conflicts:
#	source/blender/draw/engines/select/select_engine.c
#	source/blender/draw/engines/select/shaders/infos/select_id_info.hh
2023-04-17 16:16:25 +02:00
Clément Foucault 3ac54f67bf Select-Next: Add result buffer injection
This allow compatibility with the old system.
2023-03-02 19:23:37 +01:00
Clément Foucault a9397b5458 Select-Next: Reorganize and rename stuffs 2023-03-02 14:08:55 +01:00
Clément Foucault 34afb6c05f Select-Next: Fix IDs for meshes and metaballs handles 2023-03-01 22:29:55 +01:00
Clément Foucault 953cef7b7a Merge branch 'main' into overlay-next 2023-03-01 21:45:41 +01:00
Clément Foucault ea66898bbe Select-Next: Introduce shader level patching to output selection ids
This leverage imageLoad/Store operations to remove the use of cumbersome
visibility queries.

Patching shaders should only require 4 lines of code (2 for includes, 2 for
the id passthrough).
2023-03-01 20:44:54 +01:00
Clément Foucault 16cc2446f5 Overlay-Next: Add shader module
This allows cleaner declarations of shaders as well as allowing easier
swapping of the whole shader module for selection & clipping.

This also allow to easier toggle between the old overlay engine and
overlay-next as they don't share the same shaders anymore.
2023-03-01 15:26:29 +01:00
Clément Foucault 78ae27bab3 Overlay-Next: Add depth Prepass basics
The depth prepass is supposed to replace the Basic engine:
- Draw object depth when the engine doesn't give correct depth buffer
- Used for object selection
2023-02-28 23:00:59 +01:00
Clément Foucault 68a0f9e01c Overlay-Next: Port Metaball code to use latest design and support selectid 2023-02-28 22:14:32 +01:00
Clément Foucault 84ff44769f Overlay-Next: Add high level separation of selection code
This makes it possible to reuse the overlay engine code for selection
purpose, but without any overhead for the viewport drawing.

The separation is made clear by having a dummy selection implementation for
viewport drawing and an object implementation for object selection.
Other impementation might come later (like for depth picking).
2023-02-28 21:22:38 +01:00
Clément Foucault ef0126f3a7 Merge branch 'main' into overlay-next
# Conflicts:
#	source/blender/makesdna/DNA_userdef_types.h
2023-02-28 20:59:29 +01:00
Clément Foucault cdb9b6a041 Overlay-Next: Add support for empties
Also added a shape cache and move the color selection to `Resources`.
2023-02-10 20:22:38 +01:00
Clément Foucault aff61bf5b4 Merge branch 'main' into overlay-next 2023-02-10 00:20:29 +01:00
Clément Foucault 968f5748c6 Merge branch 'main' into overlay-next
# Conflicts:
#	release/scripts/startup/bl_ui/space_userpref.py
#	source/blender/makesdna/DNA_userdef_types.h
#	source/blender/makesrna/intern/rna_userdef.c
2023-02-09 14:18:10 +01:00
Clément Foucault 2abc4d0538 Overlay-Next: Port Metaball overlay 2022-10-12 23:40:37 +02:00
Clément Foucault c4ecfce6bb Overlay-Next: Port Background overlay 2022-10-12 19:53:51 +02:00
Clément Foucault c3157ddc44 Merge branch 'master' into overlay-next 2022-10-12 17:46:23 +02:00
Clément Foucault e116c67c3a DRW: Fix gl error related to incorrect uniform size 2022-10-12 17:36:11 +02:00
Clément Foucault 64d9660fc4 Overlay-Next: Make Grid parameters work 2022-10-12 17:35:52 +02:00
Clément Foucault f0514484f5 DRW: Wrappers: Add TextureRef to wrap around GPUTexture pointers
This adds the possibility to use the C++ API for other GPUTexture.
2022-10-12 17:35:29 +02:00
Clément Foucault cd93f790c7 Overlay: Add experimental option to enable overlay-next 2022-10-12 17:34:28 +02:00
Clément Foucault 482fee9bbe DRW: View: Expose matrices through interface 2022-10-12 17:33:33 +02:00
Clément Foucault 82e298227f Cleanup: EEVEE-Next: Add precision to comment 2022-10-12 17:32:20 +02:00
Clément Foucault 279774ad0b Overlay-Next: First commit 2022-10-11 17:22:17 +02:00
Clément Foucault 2538c3b1a2 Cleanup: DRW: Improve state_stencil documentation 2022-10-11 10:06:38 +02:00