diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-04-28 22:13:04 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-04-28 22:13:04 +0300 |
commit | 308a12ac647d6f9b4ef2b6c403903e0aeb65a571 (patch) | |
tree | d327529eb93340033a3adddd95d28c92f75b1b69 /source/blender/draw/engines/overlay/shaders/infos | |
parent | 3d9f0280ff1bc308aa31e95af6b1726f1b497111 (diff) |
Overlay: Port Grid shader to shaderCreateInfo and other code cleanup
Along with the port to createInfo this also:
- Packs constant uniforms in a UBO.
- Share enum declaration and unify names
- Makes codeflow easier to undestand.
- Split grid data to its own struct.
# Conflicts:
# source/blender/draw/engines/overlay/overlay_grid.c
Diffstat (limited to 'source/blender/draw/engines/overlay/shaders/infos')
-rw-r--r-- | source/blender/draw/engines/overlay/shaders/infos/grid_info.hh | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/source/blender/draw/engines/overlay/shaders/infos/grid_info.hh b/source/blender/draw/engines/overlay/shaders/infos/grid_info.hh new file mode 100644 index 00000000000..be36aa67735 --- /dev/null +++ b/source/blender/draw/engines/overlay/shaders/infos/grid_info.hh @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include "gpu_shader_create_info.hh" + +/* We use the normalized local position to avoid precision loss during interpolation. */ +GPU_SHADER_INTERFACE_INFO(overlay_grid_iface, "").smooth(Type::VEC3, "local_pos"); + +GPU_SHADER_CREATE_INFO(overlay_grid) + .do_static_compilation(true) + .typedef_source("overlay_shader_shared.h") + .vertex_in(0, Type::VEC3, "pos") + .vertex_out(overlay_grid_iface) + .fragment_out(0, Type::VEC4, "out_color") + .sampler(0, ImageType::DEPTH_2D, "depth_tx") + .uniform_buf(3, "OVERLAY_GridData", "grid_buf") + .push_constant(Type::VEC3, "plane_axes") + .push_constant(Type::INT, "grid_flag") + .vertex_source("grid_vert.glsl") + .fragment_source("grid_frag.glsl") + .additional_info("draw_view", "draw_globals"); |