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:
authorClément Foucault <foucault.clem@gmail.com>2022-02-06 00:41:08 +0300
committerClément Foucault <foucault.clem@gmail.com>2022-02-06 00:42:34 +0300
commit26b70fce8ae7c9174f4e410fc1f36075a9b333f3 (patch)
treea330e52c8a2b9fe47018b753ff89eb0e626f24db /source/blender/gpu/intern
parent2ee81bf285a0c399ad6c8cb54ca29ba9690877c6 (diff)
GPU: move gpu_shader_shared_utils.h to the public section of the module
This is then easier to include in other modules.
Diffstat (limited to 'source/blender/gpu/intern')
-rw-r--r--source/blender/gpu/intern/gpu_shader.cc2
-rw-r--r--source/blender/gpu/intern/gpu_shader_shared_utils.h116
2 files changed, 1 insertions, 117 deletions
diff --git a/source/blender/gpu/intern/gpu_shader.cc b/source/blender/gpu/intern/gpu_shader.cc
index 93ec317be42..82069730ea9 100644
--- a/source/blender/gpu/intern/gpu_shader.cc
+++ b/source/blender/gpu/intern/gpu_shader.cc
@@ -306,7 +306,7 @@ GPUShader *GPU_shader_create_from_info(const GPUShaderCreateInfo *_info)
Vector<const char *> typedefs;
if (!info.typedef_sources_.is_empty() || !info.typedef_source_generated.empty()) {
- typedefs.append(gpu_shader_dependency_get_source("gpu_shader_shared_utils.h").c_str());
+ typedefs.append(gpu_shader_dependency_get_source("GPU_shader_shared_utils.h").c_str());
}
if (!info.typedef_source_generated.empty()) {
typedefs.append(info.typedef_source_generated.c_str());
diff --git a/source/blender/gpu/intern/gpu_shader_shared_utils.h b/source/blender/gpu/intern/gpu_shader_shared_utils.h
deleted file mode 100644
index 0d283fb1e66..00000000000
--- a/source/blender/gpu/intern/gpu_shader_shared_utils.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2022 Blender Foundation.
- * All rights reserved.
- */
-
-/** \file
- * \ingroup gpu
- *
- * Glue definition to make shared declaration of struct & functions work in both C / C++ and GLSL.
- * We use the same vector and matrix types as Blender C++. Some math functions are defined to use
- * the float version to match the GLSL syntax.
- * This file can be used for C & C++ code and the syntax used should follow the same rules.
- * Some preprocessing is done by the GPU back-end to make it GLSL compatible.
- *
- * IMPORTANT:
- * - Always use `u` suffix for enum values. GLSL do not support implicit cast.
- * - Define all values. This is in order to simplify custom pre-processor code.
- * - (C++ only) Always use `uint32_t` as underlying type (`enum eMyEnum : uint32_t`).
- * - (C only) do NOT use the enum type inside UBO/SSBO structs and use `uint` instead.
- * - Use float suffix by default for float literals to avoid double promotion in C++.
- * - Pack one float or int after a vec3/ivec3 to fulfill alignment rules.
- *
- * NOTE: Due to alignment restriction and buggy drivers, do not try to use mat3 inside structs.
- * NOTE: (UBO only) Do not use arrays of float. They are padded to arrays of vec4 and are not worth
- * it. This does not apply to SSBO.
- *
- * IMPORTANT: Do not forget to align mat4, vec3 and vec4 to 16 bytes, and vec2 to 8 bytes.
- *
- * NOTE: You can use bool type using bool1 a int boolean type matching the GLSL type.
- */
-
-#ifdef GPU_SHADER
-# define BLI_STATIC_ASSERT_ALIGN(type_, align_)
-# define BLI_STATIC_ASSERT_SIZE(type_, size_)
-# define static
-# define inline
-# define cosf cos
-# define sinf sin
-# define tanf tan
-# define acosf acos
-# define asinf asin
-# define atanf atan
-# define floorf floor
-# define ceilf ceil
-# define sqrtf sqrt
-
-# define float2 vec2
-# define float3 vec3
-# define float4 vec4
-# define float4x4 mat4
-# define int2 ivec2
-# define int3 ivec3
-# define int4 ivec4
-# define uint2 uvec2
-# define uint3 uvec3
-# define uint4 uvec4
-# define bool1 bool
-# define bool2 bvec2
-# define bool3 bvec3
-# define bool4 bvec4
-
-#else /* C / C++ */
-# pragma once
-
-# include "BLI_assert.h"
-
-# ifdef __cplusplus
-# include "BLI_float4x4.hh"
-# include "BLI_math_vec_types.hh"
-using blender::float2;
-using blender::float3;
-using blender::float4;
-using blender::float4x4;
-using blender::int2;
-using blender::int3;
-using blender::int4;
-using blender::uint2;
-using blender::uint3;
-using blender::uint4;
-using bool1 = int;
-using bool2 = blender::int2;
-using bool3 = blender::int3;
-using bool4 = blender::int4;
-
-# else /* C */
-typedef float float2[2];
-typedef float float3[3];
-typedef float float4[4];
-typedef float float4x4[4][4];
-typedef int int2[2];
-typedef int int3[2];
-typedef int int4[4];
-typedef uint uint2[2];
-typedef uint uint3[3];
-typedef uint uint4[4];
-typedef int bool1;
-typedef int bool2[2];
-typedef int bool3[2];
-typedef int bool4[4];
-# endif
-
-#endif