summaryrefslogtreecommitdiffstats
path: root/editor/shader_create_dialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/shader_create_dialog.cpp')
-rw-r--r--editor/shader_create_dialog.cpp69
1 files changed, 48 insertions, 21 deletions
diff --git a/editor/shader_create_dialog.cpp b/editor/shader_create_dialog.cpp
index 3d8a6e368d..607b53718b 100644
--- a/editor/shader_create_dialog.cpp
+++ b/editor/shader_create_dialog.cpp
@@ -164,37 +164,64 @@ void ShaderCreateDialog::_create_new() {
code += vformat("shader_type %s;\n", mode_menu->get_text().to_snake_case());
if (current_template == 0) { // Default template.
- code += "\n";
switch (current_mode) {
case Shader::MODE_SPATIAL:
- code += "void fragment() {\n";
- code += "\t// Place fragment code here.\n";
- code += "}\n";
+ code += R"(
+void vertex() {
+ // Called for every vertex the material is visible on.
+}
+
+void fragment() {
+ // Called for every pixel the material is visible on.
+}
+
+void light() {
+ // Called for every pixel for every light affecting the material.
+}
+)";
break;
case Shader::MODE_CANVAS_ITEM:
- code += "void fragment() {\n";
- code += "\t// Place fragment code here.\n";
- code += "}\n";
+ code += R"(
+void vertex() {
+ // Called for every vertex the material is visible on.
+}
+
+void fragment() {
+ // Called for every pixel the material is visible on.
+}
+
+void light() {
+ // Called for every pixel for every light affecting the CanvasItem.
+}
+)";
break;
case Shader::MODE_PARTICLES:
- code += "void start() {\n";
- code += "\t// Place start code here.\n";
- code += "}\n";
- code += "\n";
- code += "void process() {\n";
- code += "\t// Place process code here.\n";
- code += "}\n";
+ code += R"(
+void start() {
+ // Called when a particle is spawned.
+}
+
+void process() {
+ // Called every frame on existing particles (according to the Fixed FPS property).
+}
+)";
break;
case Shader::MODE_SKY:
- code += "void sky() {\n";
- code += "\t// Place sky code here.\n";
- code += "}\n";
+ code += R"(
+void sky() {
+ // Called for every visible pixel in the sky background, as well as all pixels
+ // in the radiance cubemap.
+}
+)";
break;
case Shader::MODE_FOG:
- code += "void fog() {\n";
- code += "\t// Place fog code here.\n";
- code += "}\n";
- break;
+ code += R"(
+void fog() {
+ // Called once for every froxel that is touched by an axis-aligned bounding box
+ // of the associated FogVolume. This means that froxels that just barely touch
+ // a given FogVolume will still be used.
+}
+)";
}
}
text_shader->set_code(code.as_string());