1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-23 15:16:17 +00:00

Allow setting a cubemap as default parameter to shader

This commit is contained in:
Chaosus
2024-08-04 14:43:55 +03:00
parent db76de5de8
commit db251a3f99
13 changed files with 171 additions and 26 deletions

View File

@@ -31,6 +31,7 @@
#ifndef VISUAL_SHADER_NODES_H
#define VISUAL_SHADER_NODES_H
#include "scene/resources/compressed_texture.h"
#include "scene/resources/curve_texture.h"
#include "scene/resources/visual_shader.h"
@@ -562,9 +563,15 @@ VARIANT_ENUM_CAST(VisualShaderNodeSample3D::Source)
class VisualShaderNodeTexture2DArray : public VisualShaderNodeSample3D {
GDCLASS(VisualShaderNodeTexture2DArray, VisualShaderNodeSample3D);
Ref<Texture2DArray> texture_array;
Ref<TextureLayered> texture_array;
protected:
#ifndef DISABLE_DEPRECATED
void _set_texture_array_bind_compat_95126(Ref<Texture2DArray> p_texture_array);
Ref<Texture2DArray> _get_texture_array_bind_compat_95126() const;
static void _bind_compatibility_methods();
#endif // DISABLE_DEPRECATED
static void _bind_methods();
public:
@@ -575,8 +582,8 @@ public:
virtual Vector<VisualShader::DefaultTextureParam> get_default_texture_parameters(VisualShader::Type p_type, int p_id) const override;
virtual String generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const override;
void set_texture_array(Ref<Texture2DArray> p_texture_array);
Ref<Texture2DArray> get_texture_array() const;
void set_texture_array(Ref<TextureLayered> p_texture_array);
Ref<TextureLayered> get_texture_array() const;
virtual Vector<StringName> get_editable_properties() const override;
@@ -608,7 +615,7 @@ public:
class VisualShaderNodeCubemap : public VisualShaderNode {
GDCLASS(VisualShaderNodeCubemap, VisualShaderNode);
Ref<Cubemap> cube_map;
Ref<TextureLayered> cube_map;
public:
enum Source {
@@ -629,6 +636,12 @@ private:
TextureType texture_type = TYPE_DATA;
protected:
#ifndef DISABLE_DEPRECATED
void _set_cube_map_bind_compat_95126(Ref<Cubemap> p_cube_map);
Ref<Cubemap> _get_cube_map_bind_compat_95126() const;
static void _bind_compatibility_methods();
#endif // DISABLE_DEPRECATED
static void _bind_methods();
public:
@@ -650,8 +663,8 @@ public:
void set_source(Source p_source);
Source get_source() const;
void set_cube_map(Ref<Cubemap> p_cube_map);
Ref<Cubemap> get_cube_map() const;
void set_cube_map(Ref<TextureLayered> p_cube_map);
Ref<TextureLayered> get_cube_map() const;
void set_texture_type(TextureType p_texture_type);
TextureType get_texture_type() const;