From 925125e99bf8d8449de42a4f80ee6604ea7a250b Mon Sep 17 00:00:00 2001 From: zy4n Date: Sun, 2 Mar 2025 22:56:53 +0100 Subject: [PATCH] Started refactor to lazily compilable shaders. --- .idea/codeStyles/Project.xml | 3 + .idea/editor.xml | 479 +++++++++++++++++- .idea/misc.xml | 6 - .idea/vcs.xml | 1 - CMakeLists.txt | 14 +- .../assets/components/material_components.hpp | 4 +- .../components/mesh_vertex_components.hpp | 4 +- .../point_cloud_vertex_components.hpp | 4 +- .../assets/components/texture_components.hpp | 4 +- include/assets/data_loaders/glsl_loader.hpp | 2 +- include/assets/data_loaders/kitti_loader.hpp | 2 +- .../assets/data_loaders/kitti_pose_loader.hpp | 2 +- include/assets/data_loaders/mtl_loader.hpp | 2 +- include/assets/data_loaders/obj_loader.hpp | 4 +- include/assets/data_loaders/stl_loader.hpp | 2 +- .../data_loaders/threedtk_pose_loader.hpp | 2 +- include/assets/dynamic_data_store.hpp | 2 +- .../dynamic_shader_source_store.hpp | 7 + .../dynamic_shader_store.hpp | 9 - .../opengl/data_uploaders/shader_compiler.hpp | 204 ++++++++ .../shader_program_compiler.hpp | 42 ++ .../data_uploaders/texture_data_uploader.hpp | 76 ++- .../requirements/mesh_requirements.hpp | 2 +- .../requirements/point_cloud_requirements.hpp | 2 +- .../attributes/mesh_attributes.hpp | 88 +--- .../attributes/point_cloud_attributes.hpp | 85 +--- .../capabilities/mesh_capabilities.hpp | 85 ---- .../capabilities/point_cloud_capabilities.hpp | 77 --- .../shader_program/features/mesh_features.hpp | 134 +++++ .../features/point_cloud_features.hpp | 112 ++++ include/shader_program/metadata_type.hpp | 219 ++++++++ .../shader_program/uniforms/mesh_uniforms.hpp | 108 ++-- .../uniforms/point_cloud_uniforms.hpp | 94 +--- ...rators.hpp => enum_bitfield_operators.hpp} | 34 +- shaders/fragment_mesh_face.glsl | 59 +++ shaders/fragment_mesh_point.glsl | 18 + shaders/fragment_point_cloud.glsl | 18 + shaders/mesh/fragment_face.glsl | 64 --- shaders/mesh/fragment_point.glsl | 7 - shaders/mesh/vertex_face.glsl | 27 - shaders/mesh/vertex_point.glsl | 59 --- shaders/point_cloud/fragment.glsl | 7 - shaders/point_cloud/vertex.glsl | 51 -- shaders/vertex_mesh_face.glsl | 84 +++ shaders/vertex_mesh_point.glsl | 94 ++++ shaders/vertex_point_cloud.glsl | 95 ++++ source/assets/data_loaders/kitti_loader.cpp | 2 +- .../assets/data_loaders/kitti_pose_loader.cpp | 2 +- source/assets/data_loaders/obj_loader.cpp | 4 +- .../opengl/data_uploaders/shader_compiler.cpp | 413 +++++++++++++++ 50 files changed, 2181 insertions(+), 738 deletions(-) create mode 100644 include/assets/dynamic_data_stores/dynamic_shader_source_store.hpp delete mode 100644 include/assets/dynamic_data_stores/dynamic_shader_store.hpp create mode 100644 include/opengl/data_uploaders/shader_compiler.hpp create mode 100644 include/opengl/data_uploaders/shader_program_compiler.hpp delete mode 100644 include/shader_program/capabilities/mesh_capabilities.hpp delete mode 100644 include/shader_program/capabilities/point_cloud_capabilities.hpp create mode 100644 include/shader_program/features/mesh_features.hpp create mode 100644 include/shader_program/features/point_cloud_features.hpp create mode 100644 include/shader_program/metadata_type.hpp rename include/util/{enum_operators.hpp => enum_bitfield_operators.hpp} (64%) create mode 100644 shaders/fragment_mesh_face.glsl create mode 100644 shaders/fragment_mesh_point.glsl create mode 100644 shaders/fragment_point_cloud.glsl delete mode 100644 shaders/mesh/fragment_face.glsl delete mode 100644 shaders/mesh/fragment_point.glsl delete mode 100644 shaders/mesh/vertex_face.glsl delete mode 100644 shaders/mesh/vertex_point.glsl delete mode 100644 shaders/point_cloud/fragment.glsl delete mode 100644 shaders/point_cloud/vertex.glsl create mode 100644 shaders/vertex_mesh_face.glsl create mode 100644 shaders/vertex_mesh_point.glsl create mode 100644 shaders/vertex_point_cloud.glsl create mode 100644 source/opengl/data_uploaders/shader_compiler.cpp diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index 77ce906..d0c82d8 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -147,6 +147,9 @@ + +