summaryrefslogtreecommitdiff
path: root/servers/rendering/renderer_rd/shader_compiler_rd.h
diff options
context:
space:
mode:
authorclayjohn <claynjohn@gmail.com>2021-11-16 07:25:42 -0800
committerclayjohn <claynjohn@gmail.com>2022-01-11 22:26:18 -0800
commit99064d57db563f85f0585aac3fa056b980b63cfe (patch)
treee0e4aa8e76668cb8399f7c8452a8bad443396c63 /servers/rendering/renderer_rd/shader_compiler_rd.h
parent98ac002c3430b1ff50052b19d16fe6fa8fecf0c3 (diff)
New OpenGL batching canvas renderer
Diffstat (limited to 'servers/rendering/renderer_rd/shader_compiler_rd.h')
-rw-r--r--servers/rendering/renderer_rd/shader_compiler_rd.h133
1 files changed, 0 insertions, 133 deletions
diff --git a/servers/rendering/renderer_rd/shader_compiler_rd.h b/servers/rendering/renderer_rd/shader_compiler_rd.h
deleted file mode 100644
index 5670d881f6..0000000000
--- a/servers/rendering/renderer_rd/shader_compiler_rd.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*************************************************************************/
-/* shader_compiler_rd.h */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#ifndef SHADER_COMPILER_RD_H
-#define SHADER_COMPILER_RD_H
-
-#include "core/templates/pair.h"
-#include "servers/rendering/shader_language.h"
-#include "servers/rendering/shader_types.h"
-#include "servers/rendering_server.h"
-
-class ShaderCompilerRD {
-public:
- enum Stage {
- STAGE_VERTEX,
- STAGE_FRAGMENT,
- STAGE_COMPUTE,
- STAGE_MAX
- };
-
- struct IdentifierActions {
- Map<StringName, Stage> entry_point_stages;
-
- Map<StringName, Pair<int *, int>> render_mode_values;
- Map<StringName, bool *> render_mode_flags;
- Map<StringName, bool *> usage_flag_pointers;
- Map<StringName, bool *> write_flag_pointers;
-
- Map<StringName, ShaderLanguage::ShaderNode::Uniform> *uniforms;
- };
-
- struct GeneratedCode {
- Vector<String> defines;
- struct Texture {
- StringName name;
- ShaderLanguage::DataType type;
- ShaderLanguage::ShaderNode::Uniform::Hint hint;
- ShaderLanguage::TextureFilter filter;
- ShaderLanguage::TextureRepeat repeat;
- bool global;
- int array_size;
- };
-
- Vector<Texture> texture_uniforms;
-
- Vector<uint32_t> uniform_offsets;
- uint32_t uniform_total_size;
- String uniforms;
- String stage_globals[STAGE_MAX];
-
- Map<String, String> code;
-
- bool uses_global_textures;
- bool uses_fragment_time;
- bool uses_vertex_time;
- };
-
- struct DefaultIdentifierActions {
- Map<StringName, String> renames;
- Map<StringName, String> render_mode_defines;
- Map<StringName, String> usage_defines;
- Map<StringName, String> custom_samplers;
- ShaderLanguage::TextureFilter default_filter;
- ShaderLanguage::TextureRepeat default_repeat;
- String sampler_array_name;
- int base_texture_binding_index = 0;
- int texture_layout_set = 0;
- String base_uniform_string;
- String global_buffer_array_variable;
- String instance_uniform_index_variable;
- uint32_t base_varying_index = 0;
- bool apply_luminance_multiplier = false;
- };
-
-private:
- ShaderLanguage parser;
-
- String _get_sampler_name(ShaderLanguage::TextureFilter p_filter, ShaderLanguage::TextureRepeat p_repeat);
-
- void _dump_function_deps(const ShaderLanguage::ShaderNode *p_node, const StringName &p_for_func, const Map<StringName, String> &p_func_code, String &r_to_add, Set<StringName> &added);
- String _dump_node_code(const ShaderLanguage::Node *p_node, int p_level, GeneratedCode &r_gen_code, IdentifierActions &p_actions, const DefaultIdentifierActions &p_default_actions, bool p_assigning, bool p_scope = true);
-
- const ShaderLanguage::ShaderNode *shader;
- const ShaderLanguage::FunctionNode *function;
- StringName current_func_name;
- StringName time_name;
- Set<StringName> texture_functions;
-
- Set<StringName> used_name_defines;
- Set<StringName> used_flag_pointers;
- Set<StringName> used_rmode_defines;
- Set<StringName> internal_functions;
- Set<StringName> fragment_varyings;
-
- DefaultIdentifierActions actions;
-
- static ShaderLanguage::DataType _get_variable_type(const StringName &p_type);
-
-public:
- Error compile(RS::ShaderMode p_mode, const String &p_code, IdentifierActions *p_actions, const String &p_path, GeneratedCode &r_gen_code);
-
- void initialize(DefaultIdentifierActions p_actions);
- ShaderCompilerRD();
-};
-
-#endif // SHADERCOMPILERRD_H