diff options
author | Jeroen Bakker <jeroen@blender.org> | 2022-01-17 16:34:28 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2022-01-17 16:34:28 +0300 |
commit | edee5a947b7ea3e1324aa334a22c7c9bbf47f5f7 (patch) | |
tree | b8f15e66277700ccdc5d6c8b7c7eb3728f91182f /source/blender/draw | |
parent | 8fb2ff458ba579dba08bfdf57d043ad158b5db07 (diff) |
Revert "GPUShaderCreateInfo for interface abstraction"
This reverts commit 8fb2ff458ba579dba08bfdf57d043ad158b5db07.
Missing some files.
Diffstat (limited to 'source/blender/draw')
22 files changed, 291 insertions, 675 deletions
diff --git a/source/blender/draw/CMakeLists.txt b/source/blender/draw/CMakeLists.txt index 8dd7e3d7dbf..7b55981ba6b 100644 --- a/source/blender/draw/CMakeLists.txt +++ b/source/blender/draw/CMakeLists.txt @@ -212,7 +212,6 @@ set(SRC intern/draw_manager_profiling.h intern/draw_manager_testing.h intern/draw_manager_text.h - intern/draw_shader_shared.h intern/draw_shader.h intern/draw_subdivision.h intern/draw_texture_pool.h @@ -234,7 +233,6 @@ set(SRC engines/image/image_space_node.hh engines/workbench/workbench_engine.h engines/workbench/workbench_private.h - engines/workbench/workbench_shader_shared.h engines/select/select_engine.h engines/select/select_private.h engines/overlay/overlay_engine.h @@ -247,300 +245,268 @@ set(LIB bf_windowmanager ) -set(GLSL_SRC - engines/eevee/shaders/ambient_occlusion_lib.glsl - engines/eevee/shaders/background_vert.glsl - engines/eevee/shaders/common_uniforms_lib.glsl - engines/eevee/shaders/common_utiltex_lib.glsl - engines/eevee/shaders/lights_lib.glsl - engines/eevee/shaders/lightprobe_lib.glsl - engines/eevee/shaders/lightprobe_filter_glossy_frag.glsl - engines/eevee/shaders/lightprobe_filter_diffuse_frag.glsl - engines/eevee/shaders/lightprobe_filter_visibility_frag.glsl - engines/eevee/shaders/lightprobe_geom.glsl - engines/eevee/shaders/lightprobe_vert.glsl - engines/eevee/shaders/lightprobe_cube_display_frag.glsl - engines/eevee/shaders/lightprobe_cube_display_vert.glsl - engines/eevee/shaders/lightprobe_grid_display_frag.glsl - engines/eevee/shaders/lightprobe_grid_display_vert.glsl - engines/eevee/shaders/lightprobe_grid_fill_frag.glsl - engines/eevee/shaders/lightprobe_planar_display_frag.glsl - engines/eevee/shaders/lightprobe_planar_display_vert.glsl - engines/eevee/shaders/lookdev_world_frag.glsl - engines/eevee/shaders/closure_eval_lib.glsl - engines/eevee/shaders/closure_eval_diffuse_lib.glsl - engines/eevee/shaders/closure_eval_glossy_lib.glsl - engines/eevee/shaders/closure_eval_refraction_lib.glsl - engines/eevee/shaders/closure_eval_translucent_lib.glsl - engines/eevee/shaders/closure_type_lib.glsl - engines/eevee/shaders/effect_bloom_frag.glsl - engines/eevee/shaders/effect_dof_bokeh_frag.glsl - engines/eevee/shaders/effect_dof_dilate_tiles_frag.glsl - engines/eevee/shaders/effect_dof_downsample_frag.glsl - engines/eevee/shaders/effect_dof_filter_frag.glsl - engines/eevee/shaders/effect_dof_flatten_tiles_frag.glsl - engines/eevee/shaders/effect_dof_gather_frag.glsl - engines/eevee/shaders/effect_dof_lib.glsl - engines/eevee/shaders/effect_dof_reduce_frag.glsl - engines/eevee/shaders/effect_dof_resolve_frag.glsl - engines/eevee/shaders/effect_dof_scatter_frag.glsl - engines/eevee/shaders/effect_dof_scatter_vert.glsl - engines/eevee/shaders/effect_dof_setup_frag.glsl - engines/eevee/shaders/effect_reflection_lib.glsl - engines/eevee/shaders/effect_reflection_resolve_frag.glsl - engines/eevee/shaders/effect_reflection_trace_frag.glsl - engines/eevee/shaders/effect_downsample_frag.glsl - engines/eevee/shaders/effect_downsample_cube_frag.glsl - engines/eevee/shaders/effect_gtao_frag.glsl - engines/eevee/shaders/effect_velocity_resolve_frag.glsl - engines/eevee/shaders/effect_velocity_tile_frag.glsl - engines/eevee/shaders/effect_minmaxz_frag.glsl - engines/eevee/shaders/effect_mist_frag.glsl - engines/eevee/shaders/effect_motion_blur_frag.glsl - engines/eevee/shaders/effect_subsurface_frag.glsl - engines/eevee/shaders/effect_translucency_frag.glsl - engines/eevee/shaders/effect_temporal_aa.glsl - engines/eevee/shaders/lightprobe_planar_downsample_frag.glsl - engines/eevee/shaders/lightprobe_planar_downsample_geom.glsl - engines/eevee/shaders/lightprobe_planar_downsample_vert.glsl - engines/eevee/shaders/object_motion_frag.glsl - engines/eevee/shaders/object_motion_vert.glsl - engines/eevee/shaders/prepass_frag.glsl - engines/eevee/shaders/prepass_vert.glsl - engines/eevee/shaders/shadow_accum_frag.glsl - engines/eevee/shaders/shadow_frag.glsl - engines/eevee/shaders/shadow_vert.glsl - engines/eevee/shaders/bsdf_lut_frag.glsl - engines/eevee/shaders/btdf_lut_frag.glsl - engines/eevee/shaders/bsdf_common_lib.glsl - engines/eevee/shaders/irradiance_lib.glsl - engines/eevee/shaders/octahedron_lib.glsl - engines/eevee/shaders/cubemap_lib.glsl - engines/eevee/shaders/bsdf_sampling_lib.glsl - engines/eevee/shaders/random_lib.glsl - engines/eevee/shaders/raytrace_lib.glsl - engines/eevee/shaders/renderpass_lib.glsl - engines/eevee/shaders/renderpass_postprocess_frag.glsl - engines/eevee/shaders/cryptomatte_frag.glsl - engines/eevee/shaders/ltc_lib.glsl - engines/eevee/shaders/ssr_lib.glsl - engines/eevee/shaders/surface_frag.glsl - engines/eevee/shaders/surface_geom.glsl - engines/eevee/shaders/surface_lib.glsl - engines/eevee/shaders/surface_vert.glsl - engines/eevee/shaders/update_noise_frag.glsl - engines/eevee/shaders/volumetric_accum_frag.glsl - engines/eevee/shaders/volumetric_lib.glsl - engines/eevee/shaders/volumetric_frag.glsl - engines/eevee/shaders/volumetric_geom.glsl - engines/eevee/shaders/volumetric_vert.glsl - engines/eevee/shaders/volumetric_resolve_frag.glsl - engines/eevee/shaders/volumetric_scatter_frag.glsl - engines/eevee/shaders/volumetric_integration_frag.glsl - - engines/workbench/shaders/workbench_cavity_lib.glsl - engines/workbench/shaders/workbench_common_lib.glsl - engines/workbench/shaders/workbench_composite_frag.glsl - engines/workbench/shaders/workbench_curvature_lib.glsl - engines/workbench/shaders/workbench_data_lib.glsl - engines/workbench/shaders/workbench_effect_cavity_frag.glsl - engines/workbench/shaders/workbench_effect_dof_frag.glsl - engines/workbench/shaders/workbench_effect_outline_frag.glsl - engines/workbench/shaders/workbench_effect_smaa_frag.glsl - engines/workbench/shaders/workbench_effect_smaa_vert.glsl - engines/workbench/shaders/workbench_effect_taa_frag.glsl - engines/workbench/shaders/workbench_image_lib.glsl - engines/workbench/shaders/workbench_matcap_lib.glsl - engines/workbench/shaders/workbench_material_lib.glsl - engines/workbench/shaders/workbench_merge_infront_frag.glsl - engines/workbench/shaders/workbench_prepass_frag.glsl - engines/workbench/shaders/workbench_prepass_hair_vert.glsl - engines/workbench/shaders/workbench_prepass_pointcloud_vert.glsl - engines/workbench/shaders/workbench_prepass_vert.glsl - engines/workbench/shaders/workbench_shader_interface_lib.glsl - engines/workbench/shaders/workbench_shadow_caps_geom.glsl - engines/workbench/shaders/workbench_shadow_debug_frag.glsl - engines/workbench/shaders/workbench_shadow_geom.glsl - engines/workbench/shaders/workbench_shadow_vert.glsl - engines/workbench/shaders/workbench_transparent_accum_frag.glsl - engines/workbench/shaders/workbench_transparent_resolve_frag.glsl - engines/workbench/shaders/workbench_volume_frag.glsl - engines/workbench/shaders/workbench_volume_vert.glsl - engines/workbench/shaders/workbench_world_light_lib.glsl - - engines/workbench/workbench_shader_shared.h - - intern/shaders/common_colormanagement_lib.glsl - intern/shaders/common_globals_lib.glsl - intern/shaders/common_pointcloud_lib.glsl - intern/shaders/common_hair_lib.glsl - intern/shaders/common_hair_refine_vert.glsl - intern/shaders/common_hair_refine_comp.glsl - intern/shaders/common_math_lib.glsl - intern/shaders/common_math_geom_lib.glsl - intern/shaders/common_view_lib.glsl - intern/shaders/common_fxaa_lib.glsl - intern/shaders/common_smaa_lib.glsl - intern/shaders/common_fullscreen_vert.glsl - - intern/shaders/common_subdiv_custom_data_interp_comp.glsl - intern/shaders/common_subdiv_ibo_lines_comp.glsl - intern/shaders/common_subdiv_ibo_tris_comp.glsl - intern/shaders/common_subdiv_lib.glsl - intern/shaders/common_subdiv_normals_accumulate_comp.glsl - intern/shaders/common_subdiv_normals_finalize_comp.glsl - intern/shaders/common_subdiv_patch_evaluation_comp.glsl - intern/shaders/common_subdiv_vbo_edge_fac_comp.glsl - intern/shaders/common_subdiv_vbo_edituv_strech_angle_comp.glsl - intern/shaders/common_subdiv_vbo_edituv_strech_area_comp.glsl - intern/shaders/common_subdiv_vbo_lnor_comp.glsl - intern/shaders/common_subdiv_vbo_sculpt_data_comp.glsl - - intern/draw_shader_shared.h - - engines/gpencil/shaders/gpencil_frag.glsl - engines/gpencil/shaders/gpencil_vert.glsl - engines/gpencil/shaders/gpencil_antialiasing_frag.glsl - engines/gpencil/shaders/gpencil_antialiasing_vert.glsl - engines/gpencil/shaders/gpencil_common_lib.glsl - engines/gpencil/shaders/gpencil_layer_blend_frag.glsl - engines/gpencil/shaders/gpencil_mask_invert_frag.glsl - engines/gpencil/shaders/gpencil_depth_merge_frag.glsl - engines/gpencil/shaders/gpencil_depth_merge_vert.glsl - engines/gpencil/shaders/gpencil_vfx_frag.glsl - - engines/select/shaders/selection_id_3D_vert.glsl - engines/select/shaders/selection_id_frag.glsl - - engines/basic/shaders/conservative_depth_geom.glsl - engines/basic/shaders/depth_vert.glsl - engines/basic/shaders/depth_frag.glsl - - engines/overlay/shaders/common_overlay_lib.glsl - engines/overlay/shaders/antialiasing_frag.glsl - engines/overlay/shaders/antialiasing_vert.glsl - engines/overlay/shaders/armature_dof_vert.glsl - engines/overlay/shaders/armature_dof_solid_frag.glsl - engines/overlay/shaders/armature_envelope_outline_vert.glsl - engines/overlay/shaders/armature_envelope_solid_frag.glsl - engines/overlay/shaders/armature_envelope_solid_vert.glsl - engines/overlay/shaders/armature_shape_outline_geom.glsl - engines/overlay/shaders/armature_shape_outline_vert.glsl - engines/overlay/shaders/armature_shape_solid_frag.glsl - engines/overlay/shaders/armature_shape_solid_vert.glsl - engines/overlay/shaders/armature_shape_wire_vert.glsl - engines/overlay/shaders/armature_sphere_outline_vert.glsl - engines/overlay/shaders/armature_sphere_solid_frag.glsl - engines/overlay/shaders/armature_sphere_solid_vert.glsl - engines/overlay/shaders/armature_stick_frag.glsl - engines/overlay/shaders/armature_stick_vert.glsl - engines/overlay/shaders/armature_wire_frag.glsl - engines/overlay/shaders/armature_wire_vert.glsl - engines/overlay/shaders/background_frag.glsl - engines/overlay/shaders/clipbound_vert.glsl - engines/overlay/shaders/depth_only_vert.glsl - engines/overlay/shaders/edit_curve_handle_geom.glsl - engines/overlay/shaders/edit_curve_handle_vert.glsl - engines/overlay/shaders/edit_curve_point_vert.glsl - engines/overlay/shaders/edit_curve_wire_vert.glsl - engines/overlay/shaders/edit_gpencil_canvas_vert.glsl - engines/overlay/shaders/edit_gpencil_guide_vert.glsl - engines/overlay/shaders/edit_gpencil_vert.glsl - engines/overlay/shaders/edit_lattice_point_vert.glsl - engines/overlay/shaders/edit_lattice_wire_vert.glsl - engines/overlay/shaders/edit_mesh_common_lib.glsl - engines/overlay/shaders/edit_mesh_facefill_frag.glsl - engines/overlay/shaders/edit_mesh_facefill_vert.glsl - engines/overlay/shaders/edit_mesh_frag.glsl - engines/overlay/shaders/edit_mesh_geom.glsl - engines/overlay/shaders/edit_mesh_normal_vert.glsl - engines/overlay/shaders/edit_mesh_analysis_frag.glsl - engines/overlay/shaders/edit_mesh_analysis_vert.glsl - engines/overlay/shaders/edit_mesh_skin_root_vert.glsl - engines/overlay/shaders/edit_mesh_vert.glsl - engines/overlay/shaders/edit_particle_strand_vert.glsl - engines/overlay/shaders/edit_particle_point_vert.glsl - engines/overlay/shaders/edit_uv_edges_vert.glsl - engines/overlay/shaders/edit_uv_edges_geom.glsl - engines/overlay/shaders/edit_uv_edges_frag.glsl - engines/overlay/shaders/edit_uv_verts_vert.glsl - engines/overlay/shaders/edit_uv_verts_frag.glsl - engines/overlay/shaders/edit_uv_faces_vert.glsl - engines/overlay/shaders/edit_uv_face_dots_vert.glsl - engines/overlay/shaders/edit_uv_image_vert.glsl - engines/overlay/shaders/edit_uv_image_mask_frag.glsl - engines/overlay/shaders/edit_uv_stretching_vert.glsl - engines/overlay/shaders/edit_uv_tiled_image_borders_vert.glsl - engines/overlay/shaders/extra_frag.glsl - engines/overlay/shaders/extra_vert.glsl - engines/overlay/shaders/extra_groundline_vert.glsl - engines/overlay/shaders/extra_lightprobe_grid_vert.glsl - engines/overlay/shaders/extra_loose_point_frag.glsl - engines/overlay/shaders/extra_loose_point_vert.glsl - engines/overlay/shaders/extra_point_vert.glsl - engines/overlay/shaders/extra_wire_frag.glsl - engines/overlay/shaders/extra_wire_vert.glsl - engines/overlay/shaders/facing_frag.glsl - engines/overlay/shaders/facing_vert.glsl - engines/overlay/shaders/grid_background_frag.glsl - engines/overlay/shaders/grid_frag.glsl - engines/overlay/shaders/grid_vert.glsl - engines/overlay/shaders/image_vert.glsl - engines/overlay/shaders/image_frag.glsl - engines/overlay/shaders/motion_path_line_geom.glsl - engines/overlay/shaders/motion_path_line_vert.glsl - engines/overlay/shaders/motion_path_point_vert.glsl - engines/overlay/shaders/outline_detect_frag.glsl - engines/overlay/shaders/outline_prepass_frag.glsl - engines/overlay/shaders/outline_prepass_geom.glsl - engines/overlay/shaders/outline_prepass_vert.glsl - engines/overlay/shaders/paint_face_vert.glsl - engines/overlay/shaders/paint_point_vert.glsl - engines/overlay/shaders/paint_texture_frag.glsl - engines/overlay/shaders/paint_texture_vert.glsl - engines/overlay/shaders/paint_vertcol_frag.glsl - engines/overlay/shaders/paint_vertcol_vert.glsl - engines/overlay/shaders/paint_weight_frag.glsl - engines/overlay/shaders/paint_weight_vert.glsl - engines/overlay/shaders/paint_wire_vert.glsl - engines/overlay/shaders/particle_vert.glsl - engines/overlay/shaders/particle_frag.glsl - engines/overlay/shaders/sculpt_mask_vert.glsl - engines/overlay/shaders/sculpt_mask_frag.glsl - engines/overlay/shaders/volume_velocity_vert.glsl - engines/overlay/shaders/volume_gridlines_vert.glsl - engines/overlay/shaders/wireframe_vert.glsl - engines/overlay/shaders/wireframe_frag.glsl - engines/overlay/shaders/xray_fade_frag.glsl - - engines/image/shaders/engine_image_frag.glsl - engines/image/shaders/engine_image_vert.glsl -) - -set(GLSL_C) -foreach(GLSL_FILE ${GLSL_SRC}) - data_to_c_simple(${GLSL_FILE} GLSL_C) -endforeach() - -blender_add_lib(bf_draw_shaders "${GLSL_C}" "" "" "") - -list(APPEND LIB - bf_draw_shaders -) - -set(GLSL_SOURCE_CONTENT "") -foreach(GLSL_FILE ${GLSL_SRC}) - get_filename_component(GLSL_FILE_NAME ${GLSL_FILE} NAME) - string(REPLACE "." "_" GLSL_FILE_NAME_UNDERSCORES ${GLSL_FILE_NAME}) - string(APPEND GLSL_SOURCE_CONTENT "SHADER_SOURCE\(datatoc_${GLSL_FILE_NAME_UNDERSCORES}, \"${GLSL_FILE_NAME}\"\)\n") -endforeach() - -set(glsl_source_list_file "${CMAKE_CURRENT_BINARY_DIR}/glsl_draw_source_list.h") -file(GENERATE OUTPUT ${glsl_source_list_file} CONTENT "${GLSL_SOURCE_CONTENT}") -list(APPEND SRC ${glsl_source_list_file}) -list(APPEND INC ${CMAKE_CURRENT_BINARY_DIR}) - -target_include_directories(bf_draw_shaders PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) +data_to_c_simple(engines/eevee/shaders/ambient_occlusion_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/background_vert.glsl SRC) +data_to_c_simple(engines/eevee/shaders/common_uniforms_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/common_utiltex_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lights_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_filter_glossy_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_filter_diffuse_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_filter_visibility_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_geom.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_vert.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_cube_display_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_cube_display_vert.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_grid_display_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_grid_display_vert.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_grid_fill_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_planar_display_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_planar_display_vert.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lookdev_world_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/closure_eval_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/closure_eval_diffuse_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/closure_eval_glossy_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/closure_eval_refraction_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/closure_eval_translucent_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/closure_type_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_bloom_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_dof_bokeh_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_dof_dilate_tiles_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_dof_downsample_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_dof_filter_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_dof_flatten_tiles_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_dof_gather_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_dof_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_dof_reduce_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_dof_resolve_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_dof_scatter_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_dof_scatter_vert.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_dof_setup_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_reflection_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_reflection_resolve_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_reflection_trace_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_downsample_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_downsample_cube_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_gtao_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_velocity_resolve_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_velocity_tile_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_minmaxz_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_mist_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_motion_blur_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_subsurface_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_translucency_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/effect_temporal_aa.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_planar_downsample_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_planar_downsample_geom.glsl SRC) +data_to_c_simple(engines/eevee/shaders/lightprobe_planar_downsample_vert.glsl SRC) +data_to_c_simple(engines/eevee/shaders/object_motion_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/object_motion_vert.glsl SRC) +data_to_c_simple(engines/eevee/shaders/prepass_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/prepass_vert.glsl SRC) +data_to_c_simple(engines/eevee/shaders/shadow_accum_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/shadow_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/shadow_vert.glsl SRC) +data_to_c_simple(engines/eevee/shaders/bsdf_lut_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/btdf_lut_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/bsdf_common_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/irradiance_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/octahedron_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/cubemap_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/bsdf_sampling_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/random_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/raytrace_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/renderpass_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/renderpass_postprocess_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/cryptomatte_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/ltc_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/ssr_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/surface_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/surface_geom.glsl SRC) +data_to_c_simple(engines/eevee/shaders/surface_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/surface_vert.glsl SRC) +data_to_c_simple(engines/eevee/shaders/update_noise_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/volumetric_accum_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/volumetric_lib.glsl SRC) +data_to_c_simple(engines/eevee/shaders/volumetric_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/volumetric_geom.glsl SRC) +data_to_c_simple(engines/eevee/shaders/volumetric_vert.glsl SRC) +data_to_c_simple(engines/eevee/shaders/volumetric_resolve_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/volumetric_scatter_frag.glsl SRC) +data_to_c_simple(engines/eevee/shaders/volumetric_integration_frag.glsl SRC) + +data_to_c_simple(engines/workbench/shaders/workbench_cavity_lib.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_common_lib.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_composite_frag.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_curvature_lib.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_data_lib.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_effect_cavity_frag.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_effect_dof_frag.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_effect_outline_frag.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_effect_smaa_frag.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_effect_smaa_vert.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_effect_taa_frag.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_image_lib.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_matcap_lib.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_material_lib.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_merge_infront_frag.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_prepass_frag.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_prepass_hair_vert.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_prepass_pointcloud_vert.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_prepass_vert.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_shader_interface_lib.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_shadow_caps_geom.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_shadow_debug_frag.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_shadow_geom.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_shadow_vert.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_transparent_accum_frag.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_transparent_resolve_frag.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_volume_frag.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_volume_vert.glsl SRC) +data_to_c_simple(engines/workbench/shaders/workbench_world_light_lib.glsl SRC) + +data_to_c_simple(intern/shaders/common_colormanagement_lib.glsl SRC) +data_to_c_simple(intern/shaders/common_globals_lib.glsl SRC) +data_to_c_simple(intern/shaders/common_pointcloud_lib.glsl SRC) +data_to_c_simple(intern/shaders/common_hair_lib.glsl SRC) +data_to_c_simple(intern/shaders/common_hair_refine_vert.glsl SRC) +data_to_c_simple(intern/shaders/common_hair_refine_comp.glsl SRC) +data_to_c_simple(intern/shaders/common_math_lib.glsl SRC) +data_to_c_simple(intern/shaders/common_math_geom_lib.glsl SRC) +data_to_c_simple(intern/shaders/common_view_lib.glsl SRC) +data_to_c_simple(intern/shaders/common_fxaa_lib.glsl SRC) +data_to_c_simple(intern/shaders/common_smaa_lib.glsl SRC) +data_to_c_simple(intern/shaders/common_fullscreen_vert.glsl SRC) +data_to_c_simple(intern/shaders/common_subdiv_custom_data_interp_comp.glsl SRC) +data_to_c_simple(intern/shaders/common_subdiv_ibo_lines_comp.glsl SRC) +data_to_c_simple(intern/shaders/common_subdiv_ibo_tris_comp.glsl SRC) +data_to_c_simple(intern/shaders/common_subdiv_lib.glsl SRC) +data_to_c_simple(intern/shaders/common_subdiv_normals_accumulate_comp.glsl SRC) +data_to_c_simple(intern/shaders/common_subdiv_normals_finalize_comp.glsl SRC) +data_to_c_simple(intern/shaders/common_subdiv_patch_evaluation_comp.glsl SRC) +data_to_c_simple(intern/shaders/common_subdiv_vbo_edge_fac_comp.glsl SRC) +data_to_c_simple(intern/shaders/common_subdiv_vbo_edituv_strech_angle_comp.glsl SRC) +data_to_c_simple(intern/shaders/common_subdiv_vbo_edituv_strech_area_comp.glsl SRC) +data_to_c_simple(intern/shaders/common_subdiv_vbo_lnor_comp.glsl SRC) +data_to_c_simple(intern/shaders/common_subdiv_vbo_sculpt_data_comp.glsl SRC) + +data_to_c_simple(engines/gpencil/shaders/gpencil_frag.glsl SRC) +data_to_c_simple(engines/gpencil/shaders/gpencil_vert.glsl SRC) +data_to_c_simple(engines/gpencil/shaders/gpencil_antialiasing_frag.glsl SRC) +data_to_c_simple(engines/gpencil/shaders/gpencil_antialiasing_vert.glsl SRC) +data_to_c_simple(engines/gpencil/shaders/gpencil_common_lib.glsl SRC) +data_to_c_simple(engines/gpencil/shaders/gpencil_layer_blend_frag.glsl SRC) +data_to_c_simple(engines/gpencil/shaders/gpencil_mask_invert_frag.glsl SRC) +data_to_c_simple(engines/gpencil/shaders/gpencil_depth_merge_frag.glsl SRC) +data_to_c_simple(engines/gpencil/shaders/gpencil_depth_merge_vert.glsl SRC) +data_to_c_simple(engines/gpencil/shaders/gpencil_vfx_frag.glsl SRC) + +data_to_c_simple(engines/select/shaders/selection_id_3D_vert.glsl SRC) +data_to_c_simple(engines/select/shaders/selection_id_frag.glsl SRC) + +data_to_c_simple(engines/basic/shaders/conservative_depth_geom.glsl SRC) +data_to_c_simple(engines/basic/shaders/depth_vert.glsl SRC) +data_to_c_simple(engines/basic/shaders/depth_frag.glsl SRC) + +data_to_c_simple(engines/overlay/shaders/common_overlay_lib.glsl SRC) +data_to_c_simple(engines/overlay/shaders/antialiasing_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/antialiasing_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_dof_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_dof_solid_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_envelope_outline_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_envelope_solid_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_envelope_solid_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_shape_outline_geom.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_shape_outline_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_shape_solid_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_shape_solid_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_shape_wire_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_sphere_outline_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_sphere_solid_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_sphere_solid_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_stick_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_stick_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_wire_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/armature_wire_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/background_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/clipbound_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/depth_only_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_curve_handle_geom.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_curve_handle_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_curve_point_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_curve_wire_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_gpencil_canvas_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_gpencil_guide_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_gpencil_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_lattice_point_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_lattice_wire_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_mesh_common_lib.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_mesh_facefill_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_mesh_facefill_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_mesh_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_mesh_geom.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_mesh_normal_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_mesh_analysis_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_mesh_analysis_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_mesh_skin_root_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_mesh_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_particle_strand_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_particle_point_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_uv_edges_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_uv_edges_geom.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_uv_edges_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_uv_verts_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_uv_verts_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_uv_faces_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_uv_face_dots_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_uv_image_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_uv_image_mask_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_uv_stretching_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/edit_uv_tiled_image_borders_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/extra_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/extra_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/extra_groundline_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/extra_lightprobe_grid_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/extra_loose_point_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/extra_loose_point_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/extra_point_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/extra_wire_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/extra_wire_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/facing_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/facing_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/grid_background_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/grid_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/grid_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/image_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/image_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/motion_path_line_geom.glsl SRC) +data_to_c_simple(engines/overlay/shaders/motion_path_line_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/motion_path_point_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/outline_detect_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/outline_prepass_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/outline_prepass_geom.glsl SRC) +data_to_c_simple(engines/overlay/shaders/outline_prepass_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/paint_face_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/paint_point_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/paint_texture_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/paint_texture_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/paint_vertcol_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/paint_vertcol_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/paint_weight_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/paint_weight_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/paint_wire_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/particle_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/particle_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/sculpt_mask_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/sculpt_mask_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/volume_velocity_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/volume_gridlines_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/wireframe_vert.glsl SRC) +data_to_c_simple(engines/overlay/shaders/wireframe_frag.glsl SRC) +data_to_c_simple(engines/overlay/shaders/xray_fade_frag.glsl SRC) + +data_to_c_simple(engines/image/shaders/engine_image_frag.glsl SRC) +data_to_c_simple(engines/image/shaders/engine_image_vert.glsl SRC) list(APPEND INC ) diff --git a/source/blender/draw/engines/workbench/shaders/workbench_common_lib.glsl b/source/blender/draw/engines/workbench/shaders/workbench_common_lib.glsl index 9b142fe56b5..8cbc8608f5b 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_common_lib.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_common_lib.glsl @@ -3,6 +3,10 @@ #define CAVITY_BUFFER_RANGE 4.0 +#ifdef WORKBENCH_ENCODE_NORMALS + +# define WB_Normal vec2 + /* From http://aras-p.info/texts/CompactNormalStorage.html * Using Method #4: Spheremap Transform */ vec3 workbench_normal_decode(vec4 enc) @@ -18,7 +22,7 @@ vec3 workbench_normal_decode(vec4 enc) /* From http://aras-p.info/texts/CompactNormalStorage.html * Using Method #4: Spheremap Transform */ -vec2 workbench_normal_encode(bool front_face, vec3 n) +WB_Normal workbench_normal_encode(bool front_face, vec3 n) { n = normalize(front_face ? n : -n); float p = sqrt(n.z * 8.0 + 8.0); @@ -26,6 +30,13 @@ vec2 workbench_normal_encode(bool front_face, vec3 n) return n.xy; } +#else +# define WB_Normal vec3 +/* Well just do nothing... */ +# define workbench_normal_encode(f, a) (a) +# define workbench_normal_decode(a) (a.xyz) +#endif /* WORKBENCH_ENCODE_NORMALS */ + /* Encoding into the alpha of a RGBA16F texture. (10bit mantissa) */ #define TARGET_BITCOUNT 8u #define METALLIC_BITS 3u /* Metallic channel is less important. */ diff --git a/source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl b/source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl index c784c8b2db9..2e229d4d83a 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_data_lib.glsl @@ -1,5 +1,3 @@ - -#ifndef WORKBENCH_SHADER_SHARED_H struct LightData { vec4 direction; vec4 specular_color; @@ -39,10 +37,9 @@ struct WorldData { int _pad2; }; -# define viewport_size_inv viewport_size.zw +#define viewport_size_inv viewport_size.zw layout(std140) uniform world_block { WorldData world_data; }; -#endif diff --git a/source/blender/draw/engines/workbench/shaders/workbench_effect_cavity_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_effect_cavity_frag.glsl index 0b571040df5..328d50e69e0 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_effect_cavity_frag.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_effect_cavity_frag.glsl @@ -4,8 +4,6 @@ #pragma BLENDER_REQUIRE(workbench_cavity_lib.glsl) #pragma BLENDER_REQUIRE(workbench_curvature_lib.glsl) -#ifndef DRW_SHADER_SHARED_H - uniform sampler2D depthBuffer; uniform sampler2D normalBuffer; uniform usampler2D objectIdBuffer; @@ -14,8 +12,6 @@ in vec4 uvcoordsvar; out vec4 fragColor; -#endif - void main() { float cavity = 0.0, edges = 0.0, curvature = 0.0; diff --git a/source/blender/draw/engines/workbench/shaders/workbench_effect_cavity_info.hh b/source/blender/draw/engines/workbench/shaders/workbench_effect_cavity_info.hh deleted file mode 100644 index 31e5f5e7641..00000000000 --- a/source/blender/draw/engines/workbench/shaders/workbench_effect_cavity_info.hh +++ /dev/null @@ -1,28 +0,0 @@ - -#include "gpu_shader_create_info.hh" - -GPU_SHADER_CREATE_INFO(workbench_effect_cavity_common) - .fragment_out(0, Type::VEC4, "fragColor") - .sampler(0, ImageType::FLOAT_2D, "depthBuffer") - .sampler(1, ImageType::FLOAT_2D, "normalBuffer") - .sampler(2, ImageType::UINT_2D, "objectIdBuffer") - .uniform_buf(3, "vec4", "samples_coords[512]") - .fragment_source("workbench_effect_cavity_frag.glsl") - .additional_info("draw_fullscreen") - .additional_info("draw_view"); - -GPU_SHADER_CREATE_INFO(workbench_effect_cavity) - .do_static_compilation(true) - .define("USE_CAVITY") - .additional_info("workbench_effect_cavity_common"); - -GPU_SHADER_CREATE_INFO(workbench_effect_curvature) - .do_static_compilation(true) - .define("USE_CURVATURE") - .additional_info("workbench_effect_cavity_common"); - -GPU_SHADER_CREATE_INFO(workbench_effect_cavity_curvature) - .do_static_compilation(true) - .define("USE_CAVITY") - .define("USE_CURVATURE") - .additional_info("workbench_effect_cavity_common"); diff --git a/source/blender/draw/engines/workbench/shaders/workbench_image_lib.glsl b/source/blender/draw/engines/workbench/shaders/workbench_image_lib.glsl index 49e3f57ab2e..57d648d3565 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_image_lib.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_image_lib.glsl @@ -25,14 +25,12 @@ bool node_tex_tile_lookup(inout vec3 co, sampler2DArray ima, sampler1DArray map) return true; } -#ifndef WORKBENCH_SHADER_SHARED_H uniform sampler2DArray imageTileArray; uniform sampler1DArray imageTileData; uniform sampler2D imageTexture; uniform float imageTransparencyCutoff = 0.1; uniform bool imagePremult; -#endif vec3 workbench_image_color(vec2 uvs) { diff --git a/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl index 7a3ebc4035e..6d24b001d4d 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl @@ -4,11 +4,9 @@ #pragma BLENDER_REQUIRE(workbench_common_lib.glsl) #pragma BLENDER_REQUIRE(workbench_image_lib.glsl) -#ifndef WORKBENCH_SHADER_SHARED_H layout(location = 0) out vec4 materialData; -layout(location = 1) out vec2 normalData; +layout(location = 1) out WB_Normal normalData; layout(location = 2) out uint objectId; -#endif uniform bool useMatcap = false; diff --git a/source/blender/draw/engines/workbench/shaders/workbench_prepass_hair_vert.glsl b/source/blender/draw/engines/workbench/shaders/workbench_prepass_hair_vert.glsl index c3faa3957ef..3e1ea14f47c 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_prepass_hair_vert.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_prepass_hair_vert.glsl @@ -5,10 +5,8 @@ #pragma BLENDER_REQUIRE(workbench_material_lib.glsl) #pragma BLENDER_REQUIRE(workbench_image_lib.glsl) -#ifndef WORKBENCH_SHADER_SHARED_H uniform samplerBuffer ac; /* active color layer */ uniform samplerBuffer au; /* active texture layer */ -#endif /* From http://libnoise.sourceforge.net/noisegen/index.html */ float integer_noise(int n) @@ -73,10 +71,8 @@ void main() normal_interp = normalize(normal_world_to_view(nor)); -#ifndef WORKBENCH_SHADER_SHARED_H -# ifdef OPAQUE_MATERIAL +#ifdef OPAQUE_MATERIAL float metallic, roughness; -# endif #endif workbench_material_data_get(resource_handle, color_interp, alpha_interp, roughness, metallic); diff --git a/source/blender/draw/engines/workbench/shaders/workbench_prepass_info.hh b/source/blender/draw/engines/workbench/shaders/workbench_prepass_info.hh deleted file mode 100644 index 1dd706c9460..00000000000 --- a/source/blender/draw/engines/workbench/shaders/workbench_prepass_info.hh +++ /dev/null @@ -1,136 +0,0 @@ - -#include "gpu_shader_create_info.hh" - -/* -------------------------------------------------------------------- */ -/** \name Object Type - * \{ */ - -GPU_SHADER_CREATE_INFO(workbench_mesh) - .vertex_in(0, Type::VEC3, "pos") - .vertex_in(1, Type::VEC3, "nor") - .vertex_in(2, Type::VEC4, "ac") - .vertex_in(3, Type::VEC2, "au") - .vertex_source("workbench_prepass_vert.glsl") - .additional_info("draw_mesh"); - -GPU_SHADER_CREATE_INFO(workbench_hair) - .sampler(0, ImageType::FLOAT_BUFFER, "ac", Frequency::BATCH) - .sampler(1, ImageType::FLOAT_BUFFER, "au", Frequency::BATCH) - .vertex_source("workbench_prepass_hair_vert.glsl") - .additional_info("draw_hair"); - -GPU_SHADER_CREATE_INFO(workbench_pointcloud) - .vertex_source("workbench_prepass_pointcloud_vert.glsl") - .additional_info("draw_pointcloud"); - -/** \} */ - -/* -------------------------------------------------------------------- */ -/** \name Texture Type - * \{ */ - -GPU_SHADER_CREATE_INFO(workbench_texture_none).define("TEXTURE_NONE"); - -GPU_SHADER_CREATE_INFO(workbench_texture_single) - .sampler(2, ImageType::FLOAT_2D, "imageTexture", Frequency::BATCH) - .push_constant(1, Type::BOOL, "imagePremult") - .push_constant(2, Type::FLOAT, "imageTransparencyCutoff") - .define("V3D_SHADING_TEXTURE_COLOR"); - -GPU_SHADER_CREATE_INFO(workbench_texture_tile) - .sampler(2, ImageType::FLOAT_2D_ARRAY, "imageTileArray", Frequency::BATCH) - .sampler(3, ImageType::FLOAT_1D_ARRAY, "imageTileData", Frequency::BATCH) - .push_constant(1, Type::BOOL, "imagePremult") - .push_constant(2, Type::FLOAT, "imageTransparencyCutoff") - .define("TEXTURE_IMAGE_ARRAY"); - -/** \} */ - -/* -------------------------------------------------------------------- */ -/** \name Lighting Type - * \{ */ - -GPU_SHADER_CREATE_INFO(workbench_lighting_studio).define("V3D_LIGHTING_STUDIO"); -GPU_SHADER_CREATE_INFO(workbench_lighting_matcap).define("V3D_LIGHTING_MATCAP"); -GPU_SHADER_CREATE_INFO(workbench_lighting_flat).define("V3D_LIGHTING_FLAT"); - -/** \} */ - -/* -------------------------------------------------------------------- */ -/** \name Material Interface - * \{ */ - -GPU_SHADER_INTERFACE_INFO(workbench_material_iface, "") - .smooth(Type::VEC3, "normal_interp") - .smooth(Type::VEC3, "color_interp") - .smooth(Type::FLOAT, "alpha_interp") - .smooth(Type::VEC2, "uv_interp") - .flat(Type::INT, "object_id") - .flat(Type::FLOAT, "roughness") - .flat(Type::FLOAT, "metallic"); - -GPU_SHADER_CREATE_INFO(workbench_material).vertex_out(workbench_material_iface); - -/** \} */ - -/* -------------------------------------------------------------------- */ -/** \name Pipeline Type - * \{ */ - -GPU_SHADER_CREATE_INFO(workbench_transparent_accum) - /* Note: Blending will be skipped on objectId because output is a - non-normalized integer buffer. */ - .fragment_out(0, Type::VEC4, "transparentAccum") - .fragment_out(1, Type::VEC4, "revealageAccum") - .fragment_out(2, Type::UINT, "objectId") - .uniform_buf(4, "WorldData", "world_data", Frequency::PASS) - .typedef_source("workbench_shader_shared.h") - .fragment_source("workbench_transparent_accum_frag.glsl") - .additional_info("workbench_material"); - -GPU_SHADER_CREATE_INFO(workbench_opaque) - .fragment_out(0, Type::VEC4, "materialData") - .fragment_out(1, Type::VEC2, "normalData") - .fragment_out(2, Type::UINT, "objectId") - .uniform_buf(4, "WorldData", "world_data", Frequency::PASS) - .typedef_source("workbench_shader_shared.h") - .fragment_source("workbench_prepass_frag.glsl") - .additional_info("workbench_material"); - -/** \} */ - -/* -------------------------------------------------------------------- */ -/** \name Variations Declaration - * \{ */ - -#define WORKBENCH_SURFACETYPE_VARIATIONS(prefix, ...) \ - GPU_SHADER_CREATE_INFO(prefix##_mesh) \ - .additional_info("workbench_mesh", __VA_ARGS__) \ - .do_static_compilation(true); \ - GPU_SHADER_CREATE_INFO(prefix##_hair) \ - .additional_info("workbench_hair", __VA_ARGS__) \ - .do_static_compilation(true); \ - GPU_SHADER_CREATE_INFO(prefix##_ptcloud) \ - .additional_info("workbench_pointcloud", __VA_ARGS__) \ - .do_static_compilation(true); - -#define WORKBENCH_PIPELINE_VARIATIONS(prefix, ...) \ - WORKBENCH_SURFACETYPE_VARIATIONS(prefix##_transp_studio, \ - "workbench_transparent_accum", \ - "workbench_lighting_studio", \ - __VA_ARGS__) \ - WORKBENCH_SURFACETYPE_VARIATIONS(prefix##_transp_matcap, \ - "workbench_transparent_accum", \ - "workbench_lighting_matcap", \ - __VA_ARGS__) \ - WORKBENCH_SURFACETYPE_VARIATIONS(prefix##_transp_flat, \ - "workbench_transparent_accum", \ - "workbench_lighting_flat", \ - __VA_ARGS__) \ - WORKBENCH_SURFACETYPE_VARIATIONS(prefix##_opaque, "workbench_opaque", __VA_ARGS__) - -WORKBENCH_PIPELINE_VARIATIONS(workbench_tex_none, "workbench_texture_none") -WORKBENCH_PIPELINE_VARIATIONS(workbench_tex_single, "workbench_texture_single") -WORKBENCH_PIPELINE_VARIATIONS(workbench_tex_tile, "workbench_texture_tile") - -/** \} */ diff --git a/source/blender/draw/engines/workbench/shaders/workbench_prepass_pointcloud_vert.glsl b/source/blender/draw/engines/workbench/shaders/workbench_prepass_pointcloud_vert.glsl index 8efe10b8236..6f61874b8f5 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_prepass_pointcloud_vert.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_prepass_pointcloud_vert.glsl @@ -21,10 +21,8 @@ void main() uv_interp = vec2(0.0); -#ifndef WORKBENCH_SHADER_SHARED_H -# ifdef OPAQUE_MATERIAL +#ifdef OPAQUE_MATERIAL float metallic, roughness; -# endif #endif workbench_material_data_get(resource_handle, color_interp, alpha_interp, roughness, metallic); diff --git a/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl b/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl index 1f6a8a63944..1192081caf1 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl @@ -5,12 +5,10 @@ #pragma BLENDER_REQUIRE(workbench_material_lib.glsl) #pragma BLENDER_REQUIRE(workbench_image_lib.glsl) -#ifndef WORKBENCH_SHADER_SHARED_H in vec3 pos; in vec3 nor; in vec4 ac; /* active color */ in vec2 au; /* active texture layer */ -#endif void main() { @@ -25,10 +23,8 @@ void main() normal_interp = normalize(normal_object_to_view(nor)); -#ifndef WORKBENCH_SHADER_SHARED_H -# ifdef OPAQUE_MATERIAL +#ifdef OPAQUE_MATERIAL float metallic, roughness; -# endif #endif workbench_material_data_get(resource_handle, color_interp, alpha_interp, roughness, metallic); diff --git a/source/blender/draw/engines/workbench/shaders/workbench_shader_interface_lib.glsl b/source/blender/draw/engines/workbench/shaders/workbench_shader_interface_lib.glsl index 178e61c8a8d..6bfa351aeb0 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_shader_interface_lib.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_shader_interface_lib.glsl @@ -1,17 +1,15 @@ -#ifndef WORKBENCH_SHADER_SHARED_H IN_OUT ShaderStageInterface { vec3 normal_interp; vec3 color_interp; float alpha_interp; vec2 uv_interp; -# ifdef TRANSPARENT_MATERIAL +#ifdef TRANSPARENT_MATERIAL flat float roughness; flat float metallic; -# else +#else flat float packed_rough_metal; -# endif +#endif flat int object_id; }; -#endif diff --git a/source/blender/draw/engines/workbench/shaders/workbench_transparent_accum_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_transparent_accum_frag.glsl index 0062cbe17a2..3f113fd4b2e 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_transparent_accum_frag.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_transparent_accum_frag.glsl @@ -6,7 +6,6 @@ #pragma BLENDER_REQUIRE(workbench_matcap_lib.glsl) #pragma BLENDER_REQUIRE(workbench_world_light_lib.glsl) -#ifndef WORKBENCH_SHADER_SHARED_H /* Revealage is actually stored in transparentAccum alpha channel. * This is a workaround to older hardware not having separate blend equation per render target. */ layout(location = 0) out vec4 transparentAccum; @@ -14,7 +13,6 @@ layout(location = 1) out vec4 revealageAccum; /* NOTE: Blending will be skipped on objectId because output is a non-normalized integer buffer. */ layout(location = 2) out uint objectId; -#endif /* Special function only to be used with calculate_transparent_weight(). */ float linear_zdepth(float depth, vec4 viewvecs[2], mat4 proj_mat) diff --git a/source/blender/draw/engines/workbench/workbench_shader_shared.h b/source/blender/draw/engines/workbench/workbench_shader_shared.h deleted file mode 100644 index 42d38e54d9a..00000000000 --- a/source/blender/draw/engines/workbench/workbench_shader_shared.h +++ /dev/null @@ -1,48 +0,0 @@ - -#ifndef GPU_SHADER -# include "gpu_shader_shared_utils.h" -#endif - -#define WORKBENCH_SHADER_SHARED_H - -struct LightData { - float4 direction; - float4 specular_color; - float4 diffuse_color_wrap; /* rgb: diffuse col a: wrapped lighting factor */ -}; - -struct WorldData { - float4 viewport_size; - float4 object_outline_color; - float4 shadow_direction_vs; - float shadow_focus; - float shadow_shift; - float shadow_mul; - float shadow_add; - /* - 16 bytes alignment - */ - LightData lights[4]; - float4 ambient_color; - - int cavity_sample_start; - int cavity_sample_end; - float cavity_sample_count_inv; - float cavity_jitter_scale; - - float cavity_valley_factor; - float cavity_ridge_factor; - float cavity_attenuation; - float cavity_distance; - - float curvature_ridge; - float curvature_valley; - float ui_scale; - float _pad0; - - int matcap_orientation; - bool use_specular; - int _pad1; - int _pad2; -}; - -#define viewport_size_inv viewport_size.zw -#define packed_rough_metal roughness diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index 276a8cc3a13..7365ebf59c2 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -70,7 +70,6 @@ #include "GPU_framebuffer.h" #include "GPU_immediate.h" #include "GPU_matrix.h" -#include "GPU_shader_shared.h" #include "GPU_state.h" #include "GPU_uniform_buffer.h" #include "GPU_viewport.h" @@ -2757,15 +2756,11 @@ void DRW_draw_depth_object( GPU_framebuffer_clear_depth(depth_fb, 1.0f); GPU_depth_test(GPU_DEPTH_LESS_EQUAL); - struct GPUClipPlanes planes; - const bool use_clipping_planes = RV3D_CLIPPING_ENABLED(v3d, rv3d); - if (use_clipping_planes) { + const float(*world_clip_planes)[4] = NULL; + if (RV3D_CLIPPING_ENABLED(v3d, rv3d)) { GPU_clip_distances(6); ED_view3d_clipping_local(rv3d, object->obmat); - for (int i = 0; i < 6; i++) { - copy_v4_v4(planes.world[i], rv3d->clip_local[i]); - } - copy_m4_m4(planes.ModelMatrix, object->obmat); + world_clip_planes = rv3d->clip_local; } drw_batch_cache_validate(object); @@ -2787,19 +2782,14 @@ void DRW_draw_depth_object( BLI_task_graph_work_and_wait(task_graph); BLI_task_graph_free(task_graph); - const eGPUShaderConfig sh_cfg = use_clipping_planes ? GPU_SHADER_CFG_CLIPPED : - GPU_SHADER_CFG_DEFAULT; + const eGPUShaderConfig sh_cfg = world_clip_planes ? GPU_SHADER_CFG_CLIPPED : + GPU_SHADER_CFG_DEFAULT; GPU_batch_program_set_builtin_with_config(batch, GPU_SHADER_3D_DEPTH_ONLY, sh_cfg); - - GPUUniformBuf *ubo = NULL; - if (use_clipping_planes) { - ubo = GPU_uniformbuf_create_ex(sizeof(struct GPUClipPlanes), &planes, __func__); - GPU_batch_uniformbuf_bind(batch, "clipPlanes", ubo); + if (world_clip_planes != NULL) { + GPU_batch_uniform_4fv_array(batch, "WorldClipPlanes", 6, world_clip_planes); } GPU_batch_draw(batch); - GPU_uniformbuf_free(ubo); - } break; case OB_CURVE: case OB_SURF: diff --git a/source/blender/draw/intern/draw_shader_shared.h b/source/blender/draw/intern/draw_shader_shared.h deleted file mode 100644 index aa117f44e84..00000000000 --- a/source/blender/draw/intern/draw_shader_shared.h +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef GPU_SHADER -# include "gpu_shader_shared_utils.h" -#endif - -#define DRW_SHADER_SHARED_H - -#define DRW_RESOURCE_CHUNK_LEN 512 - -struct ViewInfos { - /* View matrices */ - float4x4 persmat; - float4x4 persinv; - float4x4 viewmat; - float4x4 viewinv; - float4x4 winmat; - float4x4 wininv; - - float4 clipplanes[6]; - float4 viewvecs[2]; - /* Should not be here. Not view dependent (only main view). */ - float4 viewcamtexcofac; -}; -BLI_STATIC_ASSERT_ALIGN(ViewInfos, 16) - -/* TODO(fclem) Mass rename. */ -#define ViewProjectionMatrix drw_view.persmat -#define ViewProjectionMatrixInverse drw_view.persinv -#define ViewMatrix drw_view.viewmat -#define ViewMatrixInverse drw_view.viewinv -#define ProjectionMatrix drw_view.winmat -#define ProjectionMatrixInverse drw_view.wininv -#define clipPlanes drw_view.clipplanes -#define ViewVecs drw_view.viewvecs -#define CameraTexCoFactors drw_view.viewcamtexcofac - -struct ObjectMatrices { - float4x4 drw_modelMatrix; - float4x4 drw_modelMatrixInverse; -}; -BLI_STATIC_ASSERT_ALIGN(ViewInfos, 16) diff --git a/source/blender/draw/intern/shaders/common_fullscreen_vert.glsl b/source/blender/draw/intern/shaders/common_fullscreen_vert.glsl index 53ec38fea0b..8a7fb97d98c 100644 --- a/source/blender/draw/intern/shaders/common_fullscreen_vert.glsl +++ b/source/blender/draw/intern/shaders/common_fullscreen_vert.glsl @@ -1,7 +1,5 @@ -#ifndef USE_GPU_SHADER_CREATE_INFO out vec4 uvcoordsvar; -#endif void main() { diff --git a/source/blender/draw/intern/shaders/common_pointcloud_lib.glsl b/source/blender/draw/intern/shaders/common_pointcloud_lib.glsl index 2da16d3f6a9..74b989441a2 100644 --- a/source/blender/draw/intern/shaders/common_pointcloud_lib.glsl +++ b/source/blender/draw/intern/shaders/common_pointcloud_lib.glsl @@ -2,8 +2,6 @@ /* NOTE: To be used with UNIFORM_RESOURCE_ID and INSTANCED_ATTR as define. */ #pragma BLENDER_REQUIRE(common_view_lib.glsl) -#ifndef DRW_SHADER_SHARED_H - in vec4 pos; /* Position and radius. */ /* ---- Instanced attribs ---- */ @@ -11,8 +9,6 @@ in vec4 pos; /* Position and radius. */ in vec3 pos_inst; in vec3 nor; -#endif - mat3 pointcloud_get_facing_matrix(vec3 p) { mat3 facing_mat; diff --git a/source/blender/draw/intern/shaders/common_view_lib.glsl b/source/blender/draw/intern/shaders/common_view_lib.glsl index b0d405165f2..e9912ba7d9a 100644 --- a/source/blender/draw/intern/shaders/common_view_lib.glsl +++ b/source/blender/draw/intern/shaders/common_view_lib.glsl @@ -1,7 +1,5 @@ -/* Temporary until we fully make the switch. */ -#ifndef DRW_SHADER_SHARED_H - -# define DRW_RESOURCE_CHUNK_LEN 512 +#define COMMON_VIEW_LIB +#define DRW_RESOURCE_CHUNK_LEN 512 /* keep in sync with DRWManager.view_data */ layout(std140) uniform viewBlock @@ -24,8 +22,6 @@ layout(std140) uniform viewBlock vec4 CameraTexCoFactors; }; -#endif /* DRW_SHADER_SHARED_H */ - #define ViewNear (ViewVecs[0].w) #define ViewFar (ViewVecs[1].w) @@ -145,10 +141,6 @@ flat in int resourceIDFrag; /* clang-format off */ #if !defined(GPU_INTEL) && !defined(GPU_DEPRECATED_AMD_DRIVER) && !defined(OS_MAC) && !defined(INSTANCED_ATTR) /* clang-format on */ - -/* Temporary until we fully make the switch. */ -# ifndef DRW_SHADER_SHARED_H - struct ObjectMatrices { mat4 drw_modelMatrix; mat4 drw_modelMatrixInverse; @@ -158,23 +150,17 @@ layout(std140) uniform modelBlock { ObjectMatrices drw_matrices[DRW_RESOURCE_CHUNK_LEN]; }; -# endif /* DRW_SHADER_SHARED_H */ # define ModelMatrix (drw_matrices[resource_id].drw_modelMatrix) # define ModelMatrixInverse (drw_matrices[resource_id].drw_modelMatrixInverse) #else /* GPU_INTEL */ - -/* Temporary until we fully make the switch. */ -# ifndef DRW_SHADER_SHARED_H /* Intel GPU seems to suffer performance impact when the model matrix is in UBO storage. * So for now we just force using the legacy path. */ /* Note that this is also a workaround of a problem on osx (amd or nvidia) * and older amd driver on windows. */ uniform mat4 ModelMatrix; uniform mat4 ModelMatrixInverse; -# endif /* DRW_SHADER_SHARED_H */ - #endif #define resource_handle (resourceChunk * DRW_RESOURCE_CHUNK_LEN + resource_id) diff --git a/source/blender/draw/intern/shaders/draw_fullscreen_info.hh b/source/blender/draw/intern/shaders/draw_fullscreen_info.hh deleted file mode 100644 index 803ad69ffb7..00000000000 --- a/source/blender/draw/intern/shaders/draw_fullscreen_info.hh +++ /dev/null @@ -1,8 +0,0 @@ - -#include "gpu_shader_create_info.hh" - -GPU_SHADER_INTERFACE_INFO(fullscreen_iface, "").smooth(Type::VEC4, "uvcoordsvar"); - -GPU_SHADER_CREATE_INFO(draw_fullscreen) - .vertex_out(fullscreen_iface) - .vertex_source("common_fullscreen_vert.glsl"); diff --git a/source/blender/draw/intern/shaders/draw_object_infos_info.hh b/source/blender/draw/intern/shaders/draw_object_infos_info.hh deleted file mode 100644 index 10b3754eebb..00000000000 --- a/source/blender/draw/intern/shaders/draw_object_infos_info.hh +++ /dev/null @@ -1,5 +0,0 @@ - -#include "gpu_shader_create_info.hh" - -GPU_SHADER_CREATE_INFO(draw_object_infos) - .uniform_buf(1, "ObjectInfos", "drw_infos[DRW_RESOURCE_CHUNK_LEN]", Frequency::BATCH); diff --git a/source/blender/draw/intern/shaders/draw_view_info.hh b/source/blender/draw/intern/shaders/draw_view_info.hh deleted file mode 100644 index a92284efa5b..00000000000 --- a/source/blender/draw/intern/shaders/draw_view_info.hh +++ /dev/null @@ -1,40 +0,0 @@ - -#include "gpu_shader_create_info.hh" - -/* -------------------------------------------------------------------- */ -/** \name Draw View - * \{ */ - -GPU_SHADER_CREATE_INFO(draw_view) - .uniform_buf(0, "ViewInfos", "drw_view", Frequency::PASS) - .typedef_source("draw_shader_shared.h"); - -GPU_SHADER_CREATE_INFO(draw_view_instanced_attr) - .push_constant(0, Type::MAT4, "ModelMatrix") - .push_constant(16, Type::MAT4, "ModelMatrixInverse") - .additional_info("draw_view"); - -/** \} */ - -/* -------------------------------------------------------------------- */ -/** \name Geometry Type - * \{ */ - -GPU_SHADER_CREATE_INFO(draw_mesh) - .uniform_buf(8, "ObjectMatrices", "drw_matrices[DRW_RESOURCE_CHUNK_LEN]", Frequency::BATCH) - .additional_info("draw_view"); - -GPU_SHADER_CREATE_INFO(draw_hair) - /* TODO(fclem) Finish */ - .uniform_buf(8, "ObjectMatrices", "drw_matrices[DRW_RESOURCE_CHUNK_LEN]", Frequency::BATCH) - .additional_info("draw_view"); - -GPU_SHADER_CREATE_INFO(draw_pointcloud) - .vertex_in(0, Type::VEC4, "pos") - .vertex_in(1, Type::VEC3, "pos_inst") - .vertex_in(2, Type::VEC3, "nor") - .define("UNIFORM_RESOURCE_ID") - .define("INSTANCED_ATTR") - .additional_info("draw_view_instanced_attr"); - -/** \} */ |