2018-07-26 11:56:21 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2022-02-14 14:18:53 +01:00
<class name= "VisualShader" inherits= "Shader" version= "4.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2018-07-26 11:56:21 +02:00
<brief_description >
2019-10-11 17:06:57 +02:00
A custom shader program with a visual editor.
2018-07-26 11:56:21 +02:00
</brief_description>
<description >
2019-10-11 17:06:57 +02:00
This class allows you to define a custom shader program that can be used for various materials to render objects.
The visual shader editor creates the shader.
2018-07-26 11:56:21 +02:00
</description>
<tutorials >
</tutorials>
<methods >
<method name= "add_node" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
<argument index= "0" name= "type" type= "int" enum= "VisualShader.Type" />
<argument index= "1" name= "node" type= "VisualShaderNode" />
<argument index= "2" name= "position" type= "Vector2" />
<argument index= "3" name= "id" type= "int" />
2018-07-26 11:56:21 +02:00
<description >
2020-03-03 19:21:21 +01:00
Adds the specified node to the shader.
2018-07-26 11:56:21 +02:00
</description>
</method>
2022-01-09 15:02:13 +01:00
<method name= "add_varying" >
<return type= "void" />
<argument index= "0" name= "name" type= "String" />
<argument index= "1" name= "mode" type= "int" enum= "VisualShader.VaryingMode" />
<argument index= "2" name= "type" type= "int" enum= "VisualShader.VaryingType" />
<description >
</description>
</method>
2018-07-26 11:56:21 +02:00
<method name= "can_connect_nodes" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "bool" />
<argument index= "0" name= "type" type= "int" enum= "VisualShader.Type" />
<argument index= "1" name= "from_node" type= "int" />
<argument index= "2" name= "from_port" type= "int" />
<argument index= "3" name= "to_node" type= "int" />
<argument index= "4" name= "to_port" type= "int" />
2018-07-26 11:56:21 +02:00
<description >
2020-03-03 19:21:21 +01:00
Returns [code]true[/code] if the specified nodes and ports can be connected together.
2018-07-26 11:56:21 +02:00
</description>
</method>
<method name= "connect_nodes" >
2021-07-30 15:28:05 +02:00
<return type= "int" enum= "Error" />
<argument index= "0" name= "type" type= "int" enum= "VisualShader.Type" />
<argument index= "1" name= "from_node" type= "int" />
<argument index= "2" name= "from_port" type= "int" />
<argument index= "3" name= "to_node" type= "int" />
<argument index= "4" name= "to_port" type= "int" />
2018-07-26 11:56:21 +02:00
<description >
2020-03-03 19:21:21 +01:00
Connects the specified nodes and ports.
2018-07-26 11:56:21 +02:00
</description>
</method>
2019-05-28 18:08:13 +02:00
<method name= "connect_nodes_forced" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
<argument index= "0" name= "type" type= "int" enum= "VisualShader.Type" />
<argument index= "1" name= "from_node" type= "int" />
<argument index= "2" name= "from_port" type= "int" />
<argument index= "3" name= "to_node" type= "int" />
<argument index= "4" name= "to_port" type= "int" />
2019-05-28 18:08:13 +02:00
<description >
2020-03-03 19:21:21 +01:00
Connects the specified nodes and ports, even if they can't be connected. Such connection is invalid and will not function properly.
2019-05-28 18:08:13 +02:00
</description>
</method>
2018-07-26 11:56:21 +02:00
<method name= "disconnect_nodes" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
<argument index= "0" name= "type" type= "int" enum= "VisualShader.Type" />
<argument index= "1" name= "from_node" type= "int" />
<argument index= "2" name= "from_port" type= "int" />
<argument index= "3" name= "to_node" type= "int" />
<argument index= "4" name= "to_port" type= "int" />
2018-07-26 11:56:21 +02:00
<description >
2020-03-03 19:21:21 +01:00
Connects the specified nodes and ports.
2018-07-26 11:56:21 +02:00
</description>
</method>
<method name= "get_node" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "VisualShaderNode" />
<argument index= "0" name= "type" type= "int" enum= "VisualShader.Type" />
<argument index= "1" name= "id" type= "int" />
2018-07-26 11:56:21 +02:00
<description >
2020-03-03 19:21:21 +01:00
Returns the shader node instance with specified [code]type[/code] and [code]id[/code].
2018-07-26 11:56:21 +02:00
</description>
</method>
<method name= "get_node_connections" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "Array" />
<argument index= "0" name= "type" type= "int" enum= "VisualShader.Type" />
2018-07-26 11:56:21 +02:00
<description >
2020-03-03 19:21:21 +01:00
Returns the list of connected nodes with the specified type.
2018-07-26 11:56:21 +02:00
</description>
</method>
<method name= "get_node_list" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "PackedInt32Array" />
<argument index= "0" name= "type" type= "int" enum= "VisualShader.Type" />
2018-07-26 11:56:21 +02:00
<description >
2020-03-03 19:21:21 +01:00
Returns the list of all nodes in the shader with the specified type.
2018-07-26 11:56:21 +02:00
</description>
</method>
<method name= "get_node_position" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "Vector2" />
<argument index= "0" name= "type" type= "int" enum= "VisualShader.Type" />
<argument index= "1" name= "id" type= "int" />
2018-07-26 11:56:21 +02:00
<description >
2020-03-03 19:21:21 +01:00
Returns the position of the specified node within the shader graph.
2018-07-26 11:56:21 +02:00
</description>
</method>
<method name= "get_valid_node_id" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "int" />
<argument index= "0" name= "type" type= "int" enum= "VisualShader.Type" />
2018-07-26 11:56:21 +02:00
<description >
</description>
</method>
2022-01-09 15:02:13 +01:00
<method name= "has_varying" qualifiers= "const" >
<return type= "bool" />
<argument index= "0" name= "name" type= "String" />
<description >
</description>
</method>
2018-07-26 11:56:21 +02:00
<method name= "is_node_connection" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "bool" />
<argument index= "0" name= "type" type= "int" enum= "VisualShader.Type" />
<argument index= "1" name= "from_node" type= "int" />
<argument index= "2" name= "from_port" type= "int" />
<argument index= "3" name= "to_node" type= "int" />
<argument index= "4" name= "to_port" type= "int" />
2018-07-26 11:56:21 +02:00
<description >
2020-03-03 19:21:21 +01:00
Returns [code]true[/code] if the specified node and port connection exist.
2018-07-26 11:56:21 +02:00
</description>
</method>
<method name= "remove_node" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
<argument index= "0" name= "type" type= "int" enum= "VisualShader.Type" />
<argument index= "1" name= "id" type= "int" />
2018-07-26 11:56:21 +02:00
<description >
2020-03-03 19:21:21 +01:00
Removes the specified node from the shader.
2018-07-26 11:56:21 +02:00
</description>
</method>
2022-01-09 15:02:13 +01:00
<method name= "remove_varying" >
<return type= "void" />
<argument index= "0" name= "name" type= "String" />
<description >
</description>
</method>
2020-12-30 09:45:31 +01:00
<method name= "replace_node" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
<argument index= "0" name= "type" type= "int" enum= "VisualShader.Type" />
<argument index= "1" name= "id" type= "int" />
<argument index= "2" name= "new_class" type= "StringName" />
2020-12-30 09:45:31 +01:00
<description >
Replaces the specified node with a node of new class type.
</description>
</method>
2018-07-26 11:56:21 +02:00
<method name= "set_mode" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
<argument index= "0" name= "mode" type= "int" enum= "Shader.Mode" />
2018-07-26 11:56:21 +02:00
<description >
2020-03-03 19:21:21 +01:00
Sets the mode of this shader.
2018-07-26 11:56:21 +02:00
</description>
</method>
<method name= "set_node_position" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
<argument index= "0" name= "type" type= "int" enum= "VisualShader.Type" />
<argument index= "1" name= "id" type= "int" />
<argument index= "2" name= "position" type= "Vector2" />
2018-07-26 11:56:21 +02:00
<description >
2020-03-03 19:21:21 +01:00
Sets the position of the specified node.
2018-07-26 11:56:21 +02:00
</description>
</method>
</methods>
<members >
2021-08-01 17:13:51 +02:00
<member name= "engine_version" type= "Dictionary" setter= "set_engine_version" getter= "get_engine_version" default= "{}" >
The Godot version this [VisualShader] was designed for, in the form of a [Dictionary] with [code]major[/code] and [code]minor[/code] keys with integer values. Example: [code]{"major": 4, "minor": 0}[/code]
This is used by the editor to convert visual shaders from older Godot versions.
</member>
2019-09-24 19:45:03 +02:00
<member name= "graph_offset" type= "Vector2" setter= "set_graph_offset" getter= "get_graph_offset" default= "Vector2(0, 0)" >
2020-03-03 19:21:21 +01:00
The offset vector of the whole graph.
2018-07-26 11:56:21 +02:00
</member>
</members>
<constants >
<constant name= "TYPE_VERTEX" value= "0" enum= "Type" >
2020-03-03 19:21:21 +01:00
A vertex shader, operating on vertices.
2018-07-26 11:56:21 +02:00
</constant>
<constant name= "TYPE_FRAGMENT" value= "1" enum= "Type" >
2020-03-03 19:21:21 +01:00
A fragment shader, operating on fragments (pixels).
2018-07-26 11:56:21 +02:00
</constant>
<constant name= "TYPE_LIGHT" value= "2" enum= "Type" >
2020-03-13 17:16:44 +01:00
A shader for light calculations.
2018-07-26 11:56:21 +02:00
</constant>
2020-09-15 09:57:40 +02:00
<constant name= "TYPE_START" value= "3" enum= "Type" >
2020-09-04 10:43:11 +02:00
</constant>
2020-09-11 12:22:10 +02:00
<constant name= "TYPE_PROCESS" value= "4" enum= "Type" >
</constant>
2020-09-15 09:57:40 +02:00
<constant name= "TYPE_COLLIDE" value= "5" enum= "Type" >
2020-09-11 12:22:10 +02:00
</constant>
2020-09-15 09:57:40 +02:00
<constant name= "TYPE_START_CUSTOM" value= "6" enum= "Type" >
2021-04-19 12:26:37 +02:00
</constant>
2020-09-15 09:57:40 +02:00
<constant name= "TYPE_PROCESS_CUSTOM" value= "7" enum= "Type" >
</constant>
<constant name= "TYPE_SKY" value= "8" enum= "Type" >
</constant>
2021-10-03 13:28:55 +02:00
<constant name= "TYPE_FOG" value= "9" enum= "Type" >
A compute shader that runs for each froxel of the volumetric fog map.
</constant>
<constant name= "TYPE_MAX" value= "10" enum= "Type" >
2019-06-27 11:10:53 +02:00
Represents the size of the [enum Type] enum.
2018-07-26 11:56:21 +02:00
</constant>
2022-01-09 15:02:13 +01:00
<constant name= "VARYING_MODE_VERTEX_TO_FRAG_LIGHT" value= "0" enum= "VaryingMode" >
</constant>
<constant name= "VARYING_MODE_FRAG_TO_LIGHT" value= "1" enum= "VaryingMode" >
</constant>
<constant name= "VARYING_MODE_MAX" value= "2" enum= "VaryingMode" >
</constant>
<constant name= "VARYING_TYPE_FLOAT" value= "0" enum= "VaryingType" >
</constant>
<constant name= "VARYING_TYPE_VECTOR_2D" value= "1" enum= "VaryingType" >
</constant>
<constant name= "VARYING_TYPE_VECTOR_3D" value= "2" enum= "VaryingType" >
</constant>
2022-04-12 19:09:29 +02:00
<constant name= "VARYING_TYPE_VECTOR_4D" value= "3" enum= "VaryingType" >
2022-01-09 15:02:13 +01:00
</constant>
2022-04-12 19:09:29 +02:00
<constant name= "VARYING_TYPE_COLOR" value= "4" enum= "VaryingType" >
2022-01-09 15:02:13 +01:00
</constant>
2022-04-12 19:09:29 +02:00
<constant name= "VARYING_TYPE_TRANSFORM" value= "5" enum= "VaryingType" >
</constant>
<constant name= "VARYING_TYPE_MAX" value= "6" enum= "VaryingType" >
2022-01-09 15:02:13 +01:00
</constant>
2018-07-26 11:56:21 +02:00
<constant name= "NODE_ID_INVALID" value= "-1" >
</constant>
<constant name= "NODE_ID_OUTPUT" value= "0" >
</constant>
</constants>
</class>