GPU: GLSL-C++ Stubs: Make compilation possible
- Add `main` workaournd. - Define out create info class when compiling with stubs. - Move interfaces and info namespace to global namespace.
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#if !defined(GLSL_CPP_STUBS)
|
||||
#if !defined(GPU_SHADER)
|
||||
# include "BLI_hash.hh"
|
||||
# include "BLI_string_ref.hh"
|
||||
# include "BLI_utildefines_variadic.h"
|
||||
@@ -39,22 +39,20 @@
|
||||
/* Used for primitive expansion. */
|
||||
#define GPU_SSBO_INDEX_BUF_SLOT 7
|
||||
|
||||
namespace blender::gpu::shader {
|
||||
|
||||
#if defined(GLSL_CPP_STUBS)
|
||||
# define GPU_SHADER_NAMED_INTERFACE_INFO(_interface, _inst_name) \
|
||||
namespace create_info::interface::_interface { \
|
||||
namespace interface::_interface { \
|
||||
struct {
|
||||
# define GPU_SHADER_NAMED_INTERFACE_END(_inst_name) \
|
||||
} \
|
||||
_inst_name; \
|
||||
}
|
||||
|
||||
# define GPU_SHADER_INTERFACE_INFO(_interface) namespace create_info::interface::_interface {
|
||||
# define GPU_SHADER_INTERFACE_INFO(_interface) namespace interface::_interface {
|
||||
# define GPU_SHADER_INTERFACE_END() }
|
||||
|
||||
# define GPU_SHADER_CREATE_INFO(_info) \
|
||||
namespace create_info::_info { \
|
||||
namespace _info { \
|
||||
namespace gl_VertexShader { \
|
||||
} \
|
||||
namespace gl_FragmentShader { \
|
||||
@@ -63,19 +61,19 @@ namespace blender::gpu::shader {
|
||||
}
|
||||
# define GPU_SHADER_CREATE_END() }
|
||||
|
||||
# define SHADER_LIBRARY_CREATE_INFO(_info) using namespace create_info::_info;
|
||||
# define SHADER_LIBRARY_CREATE_INFO(_info) using namespace _info;
|
||||
# define VERTEX_SHADER_CREATE_INFO(_info) \
|
||||
using namespace ::gl_VertexShader; \
|
||||
using namespace create_info::_info::gl_VertexShader; \
|
||||
using namespace create_info::_info;
|
||||
using namespace _info::gl_VertexShader; \
|
||||
using namespace _info;
|
||||
# define FRAGMENT_SHADER_CREATE_INFO(_info) \
|
||||
using namespace ::gl_FragmentShader; \
|
||||
using namespace create_info::_info::gl_FragmentShader; \
|
||||
using namespace create_info::_info;
|
||||
using namespace _info::gl_FragmentShader; \
|
||||
using namespace _info;
|
||||
# define COMPUTE_SHADER_CREATE_INFO(_info) \
|
||||
using namespace ::gl_ComputeShader; \
|
||||
using namespace create_info::_info::gl_ComputeShader; \
|
||||
using namespace create_info::_info;
|
||||
using namespace _info::gl_ComputeShader; \
|
||||
using namespace _info;
|
||||
|
||||
#elif !defined(GPU_SHADER_CREATE_INFO)
|
||||
/* Helps intellisense / auto-completion inside info files. */
|
||||
@@ -216,10 +214,10 @@ namespace blender::gpu::shader {
|
||||
namespace gl_VertexShader { \
|
||||
const type name = {}; \
|
||||
}
|
||||
# define VERTEX_OUT(stage_interface) using namespace create_info::interface::stage_interface;
|
||||
# define VERTEX_OUT(stage_interface) using namespace interface::stage_interface;
|
||||
/* TO REMOVE. */
|
||||
# define GEOMETRY_LAYOUT(...)
|
||||
# define GEOMETRY_OUT(stage_interface) using namespace create_info::interface::stage_interface;
|
||||
# define GEOMETRY_OUT(stage_interface) using namespace interface::stage_interface;
|
||||
|
||||
# define SUBPASS_IN(slot, type, name, rog) const type name = {};
|
||||
|
||||
@@ -239,10 +237,10 @@ namespace blender::gpu::shader {
|
||||
# define EARLY_FRAGMENT_TEST(enable)
|
||||
# define DEPTH_WRITE(value)
|
||||
|
||||
# define SPECIALIZATION_CONSTANT(type, name, default_value) constexpr type name = {};
|
||||
# define SPECIALIZATION_CONSTANT(type, name, default_value) constexpr type name = type(1);
|
||||
|
||||
# define PUSH_CONSTANT(type, name) const type name = {};
|
||||
# define PUSH_CONSTANT_ARRAY(type, name, array_size) const type name[array_size] = {};
|
||||
# define PUSH_CONSTANT(type, name) const type name = type(1);
|
||||
# define PUSH_CONSTANT_ARRAY(type, name, array_size) const type name[array_size] = {type(1)};
|
||||
|
||||
# define UNIFORM_BUF(slot, type_name, name) const type_name name = {};
|
||||
# define UNIFORM_BUF_FREQ(slot, type_name, name, freq) const type_name name = {};
|
||||
@@ -272,13 +270,35 @@ namespace blender::gpu::shader {
|
||||
/* TO REMOVE. */
|
||||
# define METAL_BACKEND_ONLY()
|
||||
|
||||
# define ADDITIONAL_INFO(info_name) using namespace create_info::info_name;
|
||||
# define ADDITIONAL_INFO(info_name) \
|
||||
using namespace info_name; \
|
||||
using namespace info_name::gl_FragmentShader; \
|
||||
using namespace info_name::gl_VertexShader;
|
||||
|
||||
# define TYPEDEF_SOURCE(filename)
|
||||
|
||||
# define MTL_MAX_TOTAL_THREADS_PER_THREADGROUP(value) \
|
||||
.mtl_max_total_threads_per_threadgroup(value)
|
||||
#endif
|
||||
|
||||
#define _INFO_EXPAND2(a, b) ADDITIONAL_INFO(a) ADDITIONAL_INFO(b)
|
||||
#define _INFO_EXPAND3(a, b, c) _INFO_EXPAND2(a, b) ADDITIONAL_INFO(c)
|
||||
#define _INFO_EXPAND4(a, b, c, d) _INFO_EXPAND3(a, b, c) ADDITIONAL_INFO(d)
|
||||
#define _INFO_EXPAND5(a, b, c, d, e) _INFO_EXPAND4(a, b, c, d) ADDITIONAL_INFO(e)
|
||||
#define _INFO_EXPAND6(a, b, c, d, e, f) _INFO_EXPAND5(a, b, c, d, e) ADDITIONAL_INFO(f)
|
||||
|
||||
#define ADDITIONAL_INFO_EXPAND(...) VA_NARGS_CALL_OVERLOAD(_INFO_EXPAND, __VA_ARGS__)
|
||||
|
||||
#define CREATE_INFO_VARIANT(name, ...) \
|
||||
GPU_SHADER_CREATE_INFO(name) \
|
||||
DO_STATIC_COMPILATION() \
|
||||
ADDITIONAL_INFO_EXPAND(__VA_ARGS__) \
|
||||
GPU_SHADER_CREATE_END()
|
||||
|
||||
#if !defined(GLSL_CPP_STUBS)
|
||||
|
||||
namespace blender::gpu::shader {
|
||||
|
||||
/* All of these functions is a bit out of place */
|
||||
static inline Type to_type(const eGPUType type)
|
||||
{
|
||||
@@ -623,16 +643,16 @@ struct ShaderCreateInfo {
|
||||
/** Manually set generated dependencies. */
|
||||
Vector<StringRefNull, 0> dependencies_generated;
|
||||
|
||||
#define TEST_EQUAL(a, b, _member) \
|
||||
if (!((a)._member == (b)._member)) { \
|
||||
return false; \
|
||||
}
|
||||
# define TEST_EQUAL(a, b, _member) \
|
||||
if (!((a)._member == (b)._member)) { \
|
||||
return false; \
|
||||
}
|
||||
|
||||
#define TEST_VECTOR_EQUAL(a, b, _vector) \
|
||||
TEST_EQUAL(a, b, _vector.size()); \
|
||||
for (auto i : _vector.index_range()) { \
|
||||
TEST_EQUAL(a, b, _vector[i]); \
|
||||
}
|
||||
# define TEST_VECTOR_EQUAL(a, b, _vector) \
|
||||
TEST_EQUAL(a, b, _vector.size()); \
|
||||
for (auto i : _vector.index_range()) { \
|
||||
TEST_EQUAL(a, b, _vector[i]); \
|
||||
}
|
||||
|
||||
struct VertIn {
|
||||
int index;
|
||||
@@ -848,9 +868,9 @@ struct ShaderCreateInfo {
|
||||
Vector<const char *> tf_names_;
|
||||
|
||||
/* Api-specific parameters. */
|
||||
#ifdef WITH_METAL_BACKEND
|
||||
# ifdef WITH_METAL_BACKEND
|
||||
ushort mtl_max_threads_per_threadgroup_ = 0;
|
||||
#endif
|
||||
# endif
|
||||
|
||||
public:
|
||||
ShaderCreateInfo(const char *name) : name_(name){};
|
||||
@@ -1250,11 +1270,11 @@ struct ShaderCreateInfo {
|
||||
* front. Maximum value is 1024. */
|
||||
Self &mtl_max_total_threads_per_threadgroup(ushort max_total_threads_per_threadgroup)
|
||||
{
|
||||
#ifdef WITH_METAL_BACKEND
|
||||
# ifdef WITH_METAL_BACKEND
|
||||
mtl_max_threads_per_threadgroup_ = max_total_threads_per_threadgroup;
|
||||
#else
|
||||
# else
|
||||
UNUSED_VARS(max_total_threads_per_threadgroup);
|
||||
#endif
|
||||
# endif
|
||||
return *(Self *)this;
|
||||
}
|
||||
|
||||
@@ -1380,8 +1400,8 @@ struct ShaderCreateInfo {
|
||||
|
||||
/** \} */
|
||||
|
||||
#undef TEST_EQUAL
|
||||
#undef TEST_VECTOR_EQUAL
|
||||
# undef TEST_EQUAL
|
||||
# undef TEST_VECTOR_EQUAL
|
||||
};
|
||||
|
||||
} // namespace blender::gpu::shader
|
||||
@@ -1399,16 +1419,4 @@ template<> struct DefaultHash<Vector<blender::gpu::shader::SpecializationConstan
|
||||
};
|
||||
} // namespace blender
|
||||
|
||||
#define _INFO_EXPAND2(a, b) ADDITIONAL_INFO(a) ADDITIONAL_INFO(b)
|
||||
#define _INFO_EXPAND3(a, b, c) _INFO_EXPAND2(a, b) ADDITIONAL_INFO(c)
|
||||
#define _INFO_EXPAND4(a, b, c, d) _INFO_EXPAND3(a, b, c) ADDITIONAL_INFO(d)
|
||||
#define _INFO_EXPAND5(a, b, c, d, e) _INFO_EXPAND4(a, b, c, d) ADDITIONAL_INFO(e)
|
||||
#define _INFO_EXPAND6(a, b, c, d, e, f) _INFO_EXPAND5(a, b, c, d, e) ADDITIONAL_INFO(f)
|
||||
|
||||
#define ADDITIONAL_INFO_EXPAND(...) VA_NARGS_CALL_OVERLOAD(_INFO_EXPAND, __VA_ARGS__)
|
||||
|
||||
#define CREATE_INFO_VARIANT(name, ...) \
|
||||
GPU_SHADER_CREATE_INFO(name) \
|
||||
DO_STATIC_COMPILATION() \
|
||||
ADDITIONAL_INFO_EXPAND(__VA_ARGS__) \
|
||||
GPU_SHADER_CREATE_END()
|
||||
#endif
|
||||
|
||||
@@ -46,65 +46,82 @@ template<typename T, int Sz> struct VecBase {};
|
||||
template<typename T, int Sz> struct VecOp {
|
||||
using VecT = VecBase<T, Sz>;
|
||||
|
||||
T &operator[](int) RET;
|
||||
const T &operator[](int) const RET;
|
||||
const T &operator[](int) const
|
||||
{
|
||||
return *reinterpret_cast<const T *>(this);
|
||||
}
|
||||
T &operator[](int)
|
||||
{
|
||||
return *reinterpret_cast<T *>(this);
|
||||
}
|
||||
|
||||
VecT operator+() RET;
|
||||
VecT operator-() RET;
|
||||
|
||||
VecT operator+(VecT) RET;
|
||||
VecT operator-(VecT) RET;
|
||||
VecT operator/(VecT) RET;
|
||||
VecT operator*(VecT) RET;
|
||||
friend VecT operator+(VecT, VecT) RET;
|
||||
friend VecT operator-(VecT, VecT) RET;
|
||||
friend VecT operator/(VecT, VecT) RET;
|
||||
friend VecT operator*(VecT, VecT) RET;
|
||||
|
||||
VecT operator+=(VecT) RET;
|
||||
VecT operator-=(VecT) RET;
|
||||
VecT operator/=(VecT) RET;
|
||||
VecT operator*=(VecT) RET;
|
||||
|
||||
VecT operator+(T) const RET;
|
||||
VecT operator-(T) const RET;
|
||||
VecT operator/(T) const RET;
|
||||
VecT operator*(T) const RET;
|
||||
|
||||
VecT operator+=(T) const RET;
|
||||
VecT operator-=(T) const RET;
|
||||
VecT operator/=(T) const RET;
|
||||
VecT operator*=(T) const RET;
|
||||
friend VecT operator+(VecT, T) RET;
|
||||
friend VecT operator-(VecT, T) RET;
|
||||
friend VecT operator/(VecT, T) RET;
|
||||
friend VecT operator*(VecT, T) RET;
|
||||
|
||||
friend VecT operator+(T, VecT) RET;
|
||||
friend VecT operator-(T, VecT) RET;
|
||||
friend VecT operator/(T, VecT) RET;
|
||||
friend VecT operator*(T, VecT) RET;
|
||||
|
||||
friend VecT operator+=(VecT, VecT) RET;
|
||||
friend VecT operator-=(VecT, VecT) RET;
|
||||
friend VecT operator/=(VecT, VecT) RET;
|
||||
friend VecT operator*=(VecT, VecT) RET;
|
||||
|
||||
friend VecT operator+=(VecT, T) RET;
|
||||
friend VecT operator-=(VecT, T) RET;
|
||||
friend VecT operator/=(VecT, T) RET;
|
||||
friend VecT operator*=(VecT, T) RET;
|
||||
|
||||
#define INT_OP \
|
||||
template<typename U = T, typename std::enable_if_t<std::is_integral_v<U>> * = nullptr>
|
||||
|
||||
INT_OP VecT operator%(VecT) const RET;
|
||||
INT_OP VecT operator&(VecT) const RET;
|
||||
INT_OP VecT operator|(VecT) const RET;
|
||||
INT_OP VecT operator^(VecT) const RET;
|
||||
INT_OP friend VecT operator~(VecT) RET;
|
||||
|
||||
INT_OP VecT operator%=(VecT) const RET;
|
||||
INT_OP VecT operator&=(VecT) const RET;
|
||||
INT_OP VecT operator|=(VecT) const RET;
|
||||
INT_OP VecT operator^=(VecT) const RET;
|
||||
INT_OP friend VecT operator%(VecT, VecT) RET;
|
||||
INT_OP friend VecT operator&(VecT, VecT) RET;
|
||||
INT_OP friend VecT operator|(VecT, VecT) RET;
|
||||
INT_OP friend VecT operator^(VecT, VecT) RET;
|
||||
|
||||
INT_OP VecT operator%(T) const RET;
|
||||
INT_OP VecT operator&(T) const RET;
|
||||
INT_OP VecT operator|(T) const RET;
|
||||
INT_OP VecT operator^(T) const RET;
|
||||
|
||||
INT_OP VecT operator%=(T) const RET;
|
||||
INT_OP VecT operator&=(T) const RET;
|
||||
INT_OP VecT operator|=(T) const RET;
|
||||
INT_OP VecT operator^=(T) const RET;
|
||||
INT_OP friend VecT operator%(VecT, T) RET;
|
||||
INT_OP friend VecT operator&(VecT, T) RET;
|
||||
INT_OP friend VecT operator|(VecT, T) RET;
|
||||
INT_OP friend VecT operator^(VecT, T) RET;
|
||||
|
||||
INT_OP friend VecT operator%(T, VecT) RET;
|
||||
INT_OP friend VecT operator&(T, VecT) RET;
|
||||
INT_OP friend VecT operator|(T, VecT) RET;
|
||||
INT_OP friend VecT operator^(T, VecT) RET;
|
||||
|
||||
INT_OP friend VecT operator%=(VecT, VecT) RET;
|
||||
INT_OP friend VecT operator&=(VecT, VecT) RET;
|
||||
INT_OP friend VecT operator|=(VecT, VecT) RET;
|
||||
INT_OP friend VecT operator^=(VecT, VecT) RET;
|
||||
|
||||
INT_OP friend VecT operator%=(VecT, T) RET;
|
||||
INT_OP friend VecT operator&=(VecT, T) RET;
|
||||
INT_OP friend VecT operator|=(VecT, T) RET;
|
||||
INT_OP friend VecT operator^=(VecT, T) RET;
|
||||
|
||||
INT_OP friend VecT operator<<(VecT, VecT) RET;
|
||||
INT_OP friend VecT operator>>(VecT, VecT) RET;
|
||||
|
||||
INT_OP friend VecT operator<<(T, VecT) RET;
|
||||
INT_OP friend VecT operator>>(T, VecT) RET;
|
||||
|
||||
INT_OP friend VecT operator<<(VecT, T) RET;
|
||||
INT_OP friend VecT operator>>(VecT, T) RET;
|
||||
|
||||
#undef INT_OP
|
||||
};
|
||||
|
||||
@@ -336,8 +353,14 @@ template<int C, int R> struct MatOp {
|
||||
using ColT = VecBase<double, R>;
|
||||
using RowT = VecBase<double, C>;
|
||||
|
||||
ColT &operator[](int) RET;
|
||||
const ColT &operator[](int) const RET;
|
||||
const ColT &operator[](int) const
|
||||
{
|
||||
return *reinterpret_cast<const ColT *>(this);
|
||||
}
|
||||
ColT &operator[](int)
|
||||
{
|
||||
return *reinterpret_cast<ColT *>(this);
|
||||
}
|
||||
|
||||
MatT operator*(MatT) const RET;
|
||||
|
||||
@@ -406,6 +429,7 @@ using mat3 = float3x3;
|
||||
using mat4 = float4x4;
|
||||
|
||||
using MAT4 = float4x4;
|
||||
using MAT3 = float3x3;
|
||||
|
||||
/** \} */
|
||||
|
||||
@@ -433,13 +457,13 @@ template<typename T, int Dimensions, bool Cube = false, bool Array = false> stru
|
||||
typename DataVec = typename T::data_vec_type, \
|
||||
typename SizeVec = typename T::size_vec_type>
|
||||
|
||||
TEX_TEMPLATE SizeVec textureSize(T, int) {}
|
||||
TEX_TEMPLATE DataVec texelFetch(T, IntCoord, int) {}
|
||||
TEX_TEMPLATE DataVec texelFetchOffset(T, IntCoord, int, IntCoord) {}
|
||||
TEX_TEMPLATE DataVec texture(T, FltCoord, double /*bias*/ = 0.0) {}
|
||||
TEX_TEMPLATE DataVec textureGather(T, FltCoord) {}
|
||||
TEX_TEMPLATE DataVec textureGrad(T, FltCoord, DerivVec, DerivVec) {}
|
||||
TEX_TEMPLATE DataVec textureLod(T, FltCoord, double) {}
|
||||
TEX_TEMPLATE SizeVec textureSize(T, int) RET;
|
||||
TEX_TEMPLATE DataVec texelFetch(T, IntCoord, int) RET;
|
||||
TEX_TEMPLATE DataVec texelFetchOffset(T, IntCoord, int, IntCoord) RET;
|
||||
TEX_TEMPLATE DataVec texture(T, FltCoord, double /*bias*/ = 0.0) RET;
|
||||
TEX_TEMPLATE DataVec textureGather(T, FltCoord) RET;
|
||||
TEX_TEMPLATE DataVec textureGrad(T, FltCoord, DerivVec, DerivVec) RET;
|
||||
TEX_TEMPLATE DataVec textureLod(T, FltCoord, double) RET;
|
||||
|
||||
#undef TEX_TEMPLATE
|
||||
|
||||
@@ -602,14 +626,15 @@ template<typename T> T isinf(T) RET;
|
||||
template<typename T> T isnan(T) RET;
|
||||
template<typename T> T log(T) RET;
|
||||
template<typename T> T log2(T) RET;
|
||||
template<typename T> T mod(T, double);
|
||||
template<typename T> T mod(T, T);
|
||||
double mod(double, double) RET;
|
||||
template<int D> VecBase<double, D> mod(VecBase<double, D>, double) RET;
|
||||
template<int D> VecBase<double, D> mod(VecBase<double, D>, VecBase<double, D>) RET;
|
||||
template<typename T> T modf(T, T);
|
||||
template<typename T> T pow(T, T) RET;
|
||||
template<typename T, typename U> T pow(T, U) RET;
|
||||
template<typename T> T round(T) RET;
|
||||
template<typename T> T smoothstep(T, T, T) RET;
|
||||
template<typename T> T sqrt(T) RET;
|
||||
template<typename T> T step(T) RET;
|
||||
template<typename T> T step(T, T) RET;
|
||||
template<typename T> T trunc(T) RET;
|
||||
template<typename T, typename U> T ldexp(T, U) RET;
|
||||
static inline double smoothstep(double, double, double) RET;
|
||||
@@ -634,6 +659,8 @@ template<typename T> T radians(T) RET;
|
||||
/* Declared explicitly to avoid type errors. */
|
||||
static inline double mix(double, double, double) RET;
|
||||
template<int D> VecBase<double, D> mix(VecBase<double, D>, VecBase<double, D>, double) RET;
|
||||
template<int D>
|
||||
VecBase<double, D> mix(VecBase<double, D>, VecBase<double, D>, VecBase<double, D>) RET;
|
||||
template<typename T, int D> VecBase<T, D> mix(VecBase<T, D>, VecBase<T, D>, VecBase<bool, D>) RET;
|
||||
|
||||
#define select(A, B, C) mix(A, B, C)
|
||||
@@ -809,159 +836,20 @@ static inline void groupMemoryBarrier() {}
|
||||
|
||||
/** \} */
|
||||
|
||||
/* GLSL main function must return void. C++ need to return int.
|
||||
* Inject real main (C++) inside the GLSL main definition. */
|
||||
#define main() \
|
||||
/* Fake main prototype. */ \
|
||||
/* void */ _fake_main(); \
|
||||
/* Real main. */ \
|
||||
int main() \
|
||||
{ \
|
||||
_fake_main(); \
|
||||
return 0; \
|
||||
} \
|
||||
/* Fake main definition. */ \
|
||||
void _fake_main()
|
||||
|
||||
#define GLSL_CPP_STUBS
|
||||
|
||||
/* Include all shader shared files to that custom type definitions are available when create infos
|
||||
* macros are included. Include them here so that only including this file is needed. */
|
||||
#include "GPU_shader_shared.hh"
|
||||
#include "draw_common_shader_shared.hh"
|
||||
#include "draw_shader_shared.hh"
|
||||
#include "eevee_shader_shared.hh"
|
||||
#include "overlay_shader_shared.h"
|
||||
#include "select_shader_shared.hh"
|
||||
#include "workbench_shader_shared.h"
|
||||
|
||||
/* Include all create infos here so that they don't need to be individually included
|
||||
* inside shaders. */
|
||||
#include "draw_debug_info.hh"
|
||||
#include "draw_fullscreen_info.hh"
|
||||
#include "draw_hair_refine_info.hh"
|
||||
#include "draw_object_infos_info.hh"
|
||||
#include "draw_view_info.hh"
|
||||
#include "infos/basic_depth_info.hh"
|
||||
#include "infos/compositor_alpha_crop_info.hh"
|
||||
#include "infos/compositor_bilateral_blur_info.hh"
|
||||
#include "infos/compositor_bokeh_blur_info.hh"
|
||||
#include "infos/compositor_bokeh_blur_variable_size_info.hh"
|
||||
#include "infos/compositor_bokeh_image_info.hh"
|
||||
#include "infos/compositor_box_mask_info.hh"
|
||||
#include "infos/compositor_compute_preview_info.hh"
|
||||
#include "infos/compositor_convert_info.hh"
|
||||
#include "infos/compositor_cryptomatte_info.hh"
|
||||
#include "infos/compositor_defocus_info.hh"
|
||||
#include "infos/compositor_deriche_gaussian_blur_info.hh"
|
||||
#include "infos/compositor_despeckle_info.hh"
|
||||
#include "infos/compositor_directional_blur_info.hh"
|
||||
#include "infos/compositor_displace_info.hh"
|
||||
#include "infos/compositor_double_edge_mask_info.hh"
|
||||
#include "infos/compositor_edge_filter_info.hh"
|
||||
#include "infos/compositor_ellipse_mask_info.hh"
|
||||
#include "infos/compositor_filter_info.hh"
|
||||
#include "infos/compositor_flip_info.hh"
|
||||
#include "infos/compositor_glare_info.hh"
|
||||
#include "infos/compositor_id_mask_info.hh"
|
||||
#include "infos/compositor_image_crop_info.hh"
|
||||
#include "infos/compositor_inpaint_info.hh"
|
||||
#include "infos/compositor_jump_flooding_info.hh"
|
||||
#include "infos/compositor_keying_info.hh"
|
||||
#include "infos/compositor_keying_screen_info.hh"
|
||||
#include "infos/compositor_kuwahara_info.hh"
|
||||
#include "infos/compositor_map_uv_info.hh"
|
||||
#include "infos/compositor_morphological_blur_info.hh"
|
||||
#include "infos/compositor_morphological_distance_feather_info.hh"
|
||||
#include "infos/compositor_morphological_distance_info.hh"
|
||||
#include "infos/compositor_morphological_distance_threshold_info.hh"
|
||||
#include "infos/compositor_morphological_step_info.hh"
|
||||
#include "infos/compositor_motion_blur_info.hh"
|
||||
#include "infos/compositor_movie_distortion_info.hh"
|
||||
#include "infos/compositor_normalize_info.hh"
|
||||
#include "infos/compositor_parallel_reduction_info.hh"
|
||||
#include "infos/compositor_pixelate_info.hh"
|
||||
#include "infos/compositor_plane_deform_info.hh"
|
||||
#include "infos/compositor_premultiply_alpha_info.hh"
|
||||
#include "infos/compositor_projector_lens_distortion_info.hh"
|
||||
#include "infos/compositor_read_input_info.hh"
|
||||
#include "infos/compositor_realize_on_domain_info.hh"
|
||||
#include "infos/compositor_scale_variable_info.hh"
|
||||
#include "infos/compositor_screen_lens_distortion_info.hh"
|
||||
#include "infos/compositor_smaa_info.hh"
|
||||
#include "infos/compositor_split_info.hh"
|
||||
#include "infos/compositor_summed_area_table_info.hh"
|
||||
#include "infos/compositor_sun_beams_info.hh"
|
||||
#include "infos/compositor_symmetric_blur_info.hh"
|
||||
#include "infos/compositor_symmetric_blur_variable_size_info.hh"
|
||||
#include "infos/compositor_symmetric_separable_blur_info.hh"
|
||||
#include "infos/compositor_symmetric_separable_blur_variable_size_info.hh"
|
||||
#include "infos/compositor_tone_map_photoreceptor_info.hh"
|
||||
#include "infos/compositor_tone_map_simple_info.hh"
|
||||
#include "infos/compositor_van_vliet_gaussian_blur_info.hh"
|
||||
#include "infos/compositor_write_output_info.hh"
|
||||
#include "infos/compositor_z_combine_info.hh"
|
||||
#include "infos/eevee_ambient_occlusion_info.hh"
|
||||
#include "infos/eevee_deferred_info.hh"
|
||||
#include "infos/eevee_depth_of_field_info.hh"
|
||||
#include "infos/eevee_film_info.hh"
|
||||
#include "infos/eevee_hiz_info.hh"
|
||||
#include "infos/eevee_light_culling_info.hh"
|
||||
#include "infos/eevee_lightprobe_sphere_info.hh"
|
||||
#include "infos/eevee_lightprobe_volume_info.hh"
|
||||
#include "infos/eevee_lookdev_info.hh"
|
||||
#include "infos/eevee_lut_info.hh"
|
||||
#include "infos/eevee_material_info.hh"
|
||||
#include "infos/eevee_motion_blur_info.hh"
|
||||
#include "infos/eevee_shadow_info.hh"
|
||||
#include "infos/eevee_subsurface_info.hh"
|
||||
#include "infos/eevee_tracing_info.hh"
|
||||
#include "infos/eevee_velocity_info.hh"
|
||||
#include "infos/eevee_volume_info.hh"
|
||||
#include "infos/engine_image_info.hh"
|
||||
#include "infos/gpencil_info.hh"
|
||||
#include "infos/gpencil_vfx_info.hh"
|
||||
#include "infos/gpu_clip_planes_info.hh"
|
||||
#include "infos/gpu_index_load_info.hh"
|
||||
#include "infos/gpu_shader_2D_area_borders_info.hh"
|
||||
#include "infos/gpu_shader_2D_checker_info.hh"
|
||||
#include "infos/gpu_shader_2D_diag_stripes_info.hh"
|
||||
#include "infos/gpu_shader_2D_image_desaturate_color_info.hh"
|
||||
#include "infos/gpu_shader_2D_image_info.hh"
|
||||
#include "infos/gpu_shader_2D_image_overlays_merge_info.hh"
|
||||
#include "infos/gpu_shader_2D_image_overlays_stereo_merge_info.hh"
|
||||
#include "infos/gpu_shader_2D_image_rect_color_info.hh"
|
||||
#include "infos/gpu_shader_2D_image_shuffle_color_info.hh"
|
||||
#include "infos/gpu_shader_2D_nodelink_info.hh"
|
||||
#include "infos/gpu_shader_2D_point_uniform_size_uniform_color_aa_info.hh"
|
||||
#include "infos/gpu_shader_2D_point_uniform_size_uniform_color_outline_aa_info.hh"
|
||||
#include "infos/gpu_shader_2D_point_varying_size_varying_color_info.hh"
|
||||
#include "infos/gpu_shader_2D_widget_info.hh"
|
||||
#include "infos/gpu_shader_3D_depth_only_info.hh"
|
||||
#include "infos/gpu_shader_3D_flat_color_info.hh"
|
||||
#include "infos/gpu_shader_3D_image_info.hh"
|
||||
#include "infos/gpu_shader_3D_point_info.hh"
|
||||
#include "infos/gpu_shader_3D_polyline_info.hh"
|
||||
#include "infos/gpu_shader_3D_smooth_color_info.hh"
|
||||
#include "infos/gpu_shader_3D_uniform_color_info.hh"
|
||||
#include "infos/gpu_shader_gpencil_stroke_info.hh"
|
||||
#include "infos/gpu_shader_icon_info.hh"
|
||||
#include "infos/gpu_shader_index_info.hh"
|
||||
#include "infos/gpu_shader_instance_varying_color_varying_size_info.hh"
|
||||
#include "infos/gpu_shader_keyframe_shape_info.hh"
|
||||
#include "infos/gpu_shader_line_dashed_uniform_color_info.hh"
|
||||
#include "infos/gpu_shader_print_info.hh"
|
||||
#include "infos/gpu_shader_sequencer_info.hh"
|
||||
#include "infos/gpu_shader_simple_lighting_info.hh"
|
||||
#include "infos/gpu_shader_text_info.hh"
|
||||
#include "infos/gpu_srgb_to_framebuffer_space_info.hh"
|
||||
#include "infos/overlay_antialiasing_info.hh"
|
||||
#include "infos/overlay_armature_info.hh"
|
||||
#include "infos/overlay_background_info.hh"
|
||||
#include "infos/overlay_edit_mode_info.hh"
|
||||
#include "infos/overlay_extra_info.hh"
|
||||
#include "infos/overlay_facing_info.hh"
|
||||
#include "infos/overlay_grid_info.hh"
|
||||
#include "infos/overlay_outline_info.hh"
|
||||
#include "infos/overlay_paint_info.hh"
|
||||
#include "infos/overlay_sculpt_curves_info.hh"
|
||||
#include "infos/overlay_sculpt_info.hh"
|
||||
#include "infos/overlay_viewer_attribute_info.hh"
|
||||
#include "infos/overlay_volume_info.hh"
|
||||
#include "infos/overlay_wireframe_info.hh"
|
||||
#include "infos/select_id_info.hh"
|
||||
#include "infos/workbench_composite_info.hh"
|
||||
#include "infos/workbench_depth_info.hh"
|
||||
#include "infos/workbench_effect_antialiasing_info.hh"
|
||||
#include "infos/workbench_effect_dof_info.hh"
|
||||
#include "infos/workbench_effect_outline_info.hh"
|
||||
#include "infos/workbench_prepass_info.hh"
|
||||
#include "infos/workbench_shadow_info.hh"
|
||||
#include "infos/workbench_transparent_resolve_info.hh"
|
||||
#include "infos/workbench_volume_info.hh"
|
||||
|
||||
Reference in New Issue
Block a user