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_structs.cc')
-rw-r--r--source/blender/gpu/intern/gpu_uniform_buffer_structs.cc59
1 files changed, 29 insertions, 30 deletions
diff --git a/source/blender/gpu/intern/gpu_uniform_buffer_structs.cc b/source/blender/gpu/intern/gpu_uniform_buffer_structs.cc
index b48cc8469eb..0f14a4ae8b0 100644
--- a/source/blender/gpu/intern/gpu_uniform_buffer_structs.cc
+++ b/source/blender/gpu/intern/gpu_uniform_buffer_structs.cc
@@ -63,23 +63,23 @@ static constexpr UniformBuiltinStructType::AttributeBinding determine_binding_st
switch (builtin_uniform) {
case GPU_UNIFORM_MODEL:
result.binding = to_binding_location(builtin_uniform);
- result.offset = offsetof(GPUUniformBuiltinStruct1, ModelMatrix);
+ result.offset = offsetof(GPUShaderBlock3dColor, ModelMatrix);
break;
case GPU_UNIFORM_MVP:
result.binding = to_binding_location(builtin_uniform);
- result.offset = offsetof(GPUUniformBuiltinStruct1, ModelViewProjectionMatrix);
+ result.offset = offsetof(GPUShaderBlock3dColor, ModelViewProjectionMatrix);
break;
case GPU_UNIFORM_COLOR:
result.binding = to_binding_location(builtin_uniform);
- result.offset = offsetof(GPUUniformBuiltinStruct1, color);
+ result.offset = offsetof(GPUShaderBlock3dColor, color);
break;
case GPU_UNIFORM_CLIPPLANES:
result.binding = to_binding_location(builtin_uniform);
- result.offset = offsetof(GPUUniformBuiltinStruct1, WorldClipPlanes);
+ result.offset = offsetof(GPUShaderBlock3dColor, WorldClipPlanes);
break;
case GPU_UNIFORM_SRGB_TRANSFORM:
result.binding = to_binding_location(builtin_uniform);
- result.offset = offsetof(GPUUniformBuiltinStruct1, SrgbTransform);
+ result.offset = offsetof(GPUShaderBlock3dColor, SrgbTransform);
break;
default:
@@ -90,22 +90,22 @@ static constexpr UniformBuiltinStructType::AttributeBinding determine_binding_st
}
static constexpr UniformBuiltinStructType::AttributeBinding determine_binding(
- const GPUUniformBuiltinStructType struct_type, const GPUUniformBuiltin builtin_uniform)
+ const GPUShaderBlockType struct_type, const GPUUniformBuiltin builtin_uniform)
{
switch (struct_type) {
- case GPU_UNIFORM_STRUCT_NONE:
- case GPU_NUM_UNIFORM_STRUCTS:
+ case GPU_SHADER_BLOCK_CUSTOM:
+ case GPU_NUM_SHADER_BLOCK_TYPES:
return {};
- case GPU_UNIFORM_STRUCT_1:
+ case GPU_SHADER_BLOCK_3D_COLOR:
return determine_binding_struct_1(builtin_uniform);
};
return {};
}
static constexpr std::array<const UniformBuiltinStructType::AttributeBinding, GPU_NUM_UNIFORMS>
-builtin_uniforms_for_struct_type(const GPUUniformBuiltinStructType struct_type)
+builtin_uniforms_for_struct_type(const GPUShaderBlockType struct_type)
{
return {
determine_binding(struct_type, GPU_UNIFORM_MODEL),
@@ -132,22 +132,22 @@ builtin_uniforms_for_struct_type(const GPUUniformBuiltinStructType struct_type)
static constexpr std::array<
const std::array<const UniformBuiltinStructType::AttributeBinding, GPU_NUM_UNIFORMS>,
- GPU_NUM_UNIFORM_STRUCTS>
+ GPU_NUM_SHADER_BLOCK_TYPES>
ATTRIBUTE_BINDINGS = {
- builtin_uniforms_for_struct_type(GPU_UNIFORM_STRUCT_NONE),
- builtin_uniforms_for_struct_type(GPU_UNIFORM_STRUCT_1),
+ builtin_uniforms_for_struct_type(GPU_SHADER_BLOCK_CUSTOM),
+ builtin_uniforms_for_struct_type(GPU_SHADER_BLOCK_3D_COLOR),
};
-static constexpr size_t data_size_for(const GPUUniformBuiltinStructType struct_type)
+static constexpr size_t data_size_for(const GPUShaderBlockType struct_type)
{
switch (struct_type) {
- case GPU_UNIFORM_STRUCT_NONE:
- case GPU_NUM_UNIFORM_STRUCTS:
+ case GPU_SHADER_BLOCK_CUSTOM:
+ case GPU_NUM_SHADER_BLOCK_TYPES:
return 0;
- case GPU_UNIFORM_STRUCT_1:
- return sizeof(GPUUniformBuiltinStruct1);
+ case GPU_SHADER_BLOCK_3D_COLOR:
+ return sizeof(GPUShaderBlock3dColor);
};
return 0;
}
@@ -158,8 +158,7 @@ static constexpr size_t data_size_for(const GPUUniformBuiltinStructType struct_t
/** \name Struct type
* \{ */
-constexpr UniformBuiltinStructType::UniformBuiltinStructType(
- const GPUUniformBuiltinStructType type)
+constexpr UniformBuiltinStructType::UniformBuiltinStructType(const GPUShaderBlockType type)
: type(type), m_attribute_bindings(ATTRIBUTE_BINDINGS[type]), m_data_size(data_size_for(type))
{
}
@@ -183,27 +182,27 @@ bool UniformBuiltinStructType::has_all_builtin_uniforms(const ShaderInterface &i
return true;
}
-static constexpr std::array<UniformBuiltinStructType, GPU_NUM_UNIFORM_STRUCTS> STRUCT_TYPE_INFOS =
- {
- UniformBuiltinStructType(GPU_UNIFORM_STRUCT_NONE),
- UniformBuiltinStructType(GPU_UNIFORM_STRUCT_1),
+static constexpr std::array<UniformBuiltinStructType, GPU_NUM_SHADER_BLOCK_TYPES>
+ STRUCT_TYPE_INFOS = {
+ UniformBuiltinStructType(GPU_SHADER_BLOCK_CUSTOM),
+ UniformBuiltinStructType(GPU_SHADER_BLOCK_3D_COLOR),
};
-const UniformBuiltinStructType &UniformBuiltinStructType::get(
- const GPUUniformBuiltinStructType type)
+const UniformBuiltinStructType &UniformBuiltinStructType::get(const GPUShaderBlockType type)
{
return STRUCT_TYPE_INFOS[type];
}
-std::optional<const GPUUniformBuiltinStructType> find_smallest_uniform_builtin_struct(
+std::optional<const GPUShaderBlockType> find_smallest_uniform_builtin_struct(
const ShaderInterface &interface)
{
if (!interface.has_builtin_uniforms()) {
return std::nullopt;
}
- if (UniformBuiltinStructType::get(GPU_UNIFORM_STRUCT_1).has_all_builtin_uniforms(interface)) {
- return std::make_optional(GPU_UNIFORM_STRUCT_1);
+ if (UniformBuiltinStructType::get(GPU_SHADER_BLOCK_3D_COLOR)
+ .has_all_builtin_uniforms(interface)) {
+ return std::make_optional(GPU_SHADER_BLOCK_3D_COLOR);
}
return std::nullopt;
@@ -215,7 +214,7 @@ std::optional<const GPUUniformBuiltinStructType> find_smallest_uniform_builtin_s
/** \name Struct type
* \{ */
-UniformBuiltinStruct::UniformBuiltinStruct(const GPUUniformBuiltinStructType type)
+UniformBuiltinStruct::UniformBuiltinStruct(const GPUShaderBlockType type)
: m_type_info(UniformBuiltinStructType::get(type))
{
m_data = MEM_mallocN(m_type_info.data_size(), __func__);