Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/gpu/intern/gpu_uniform_buffer_private.hh')
-rw-r--r--source/blender/gpu/intern/gpu_uniform_buffer_private.hh22
1 files changed, 22 insertions, 0 deletions
diff --git a/source/blender/gpu/intern/gpu_uniform_buffer_private.hh b/source/blender/gpu/intern/gpu_uniform_buffer_private.hh
index e8fc1343eaf..b514b312c11 100644
--- a/source/blender/gpu/intern/gpu_uniform_buffer_private.hh
+++ b/source/blender/gpu/intern/gpu_uniform_buffer_private.hh
@@ -24,11 +24,18 @@
#include "BLI_sys_types.h"
+#include <optional>
+
+#include "GPU_shader.h"
+#include "GPU_uniform_buffer_types.h"
+
struct GPUUniformBuf;
namespace blender {
namespace gpu {
+class ShaderInterface;
+
#ifdef DEBUG
# define DEBUG_NAME_LEN 64
#else
@@ -79,6 +86,21 @@ static inline const UniformBuf *unwrap(const GPUUniformBuf *vert)
return reinterpret_cast<const UniformBuf *>(vert);
}
+class UniformBuiltinStructType {
+ public:
+ UniformBuiltinStructType(const GPUUniformBuiltinStructType type);
+
+ GPUUniformBuiltinStructType type;
+
+ bool has_all_builtin_uniforms(const ShaderInterface &interface) const;
+
+ private:
+ bool has_attribute(const GPUUniformBuiltin builtin_uniform) const;
+};
+
+std::optional<const GPUUniformBuiltinStructType> find_smallest_uniform_builtin_struct(
+ const ShaderInterface &interface);
+
#undef DEBUG_NAME_LEN
} // namespace gpu