mirror of
https://github.com/godotengine/godot-vscode-plugin.git
synced 2025-12-31 13:48:24 +03:00
119 lines
2.2 KiB
Plaintext
119 lines
2.2 KiB
Plaintext
shader_type canvas_item;
|
|
shader_type spatial;
|
|
|
|
/* ************************************************************************** */
|
|
|
|
// types
|
|
void a;
|
|
bool b = true;
|
|
bool b2 = false;
|
|
bvec2 c;
|
|
bvec3 d;
|
|
bvec4 e;
|
|
int f;
|
|
ivec2 g;
|
|
ivec3 h;
|
|
ivec4 i;
|
|
uint j;
|
|
uvec2 k;
|
|
uvec3 l;
|
|
uvec4 m;
|
|
float n;
|
|
vec2 o;
|
|
vec3 p;
|
|
vec4 q;
|
|
mat2 r;
|
|
mat3 s;
|
|
mat4 t;
|
|
sampler2D u;
|
|
isampler2D v;
|
|
usampler2D w;
|
|
samplerCube x;
|
|
|
|
// qualifiers
|
|
uniform int qualifier_a;
|
|
global uniform int qualifier_b;
|
|
instance uniform int qualifier_c;
|
|
varying flat int qualifier_d;
|
|
|
|
// hints
|
|
uniform sampler2D hint_a : hint_albedo; // godot 3
|
|
uniform sampler2D hint_b : source_color; // godot 4
|
|
|
|
uniform sampler2D hint_c : hint_black; // godot 3
|
|
uniform sampler2D hint_d : hint_white; // godot 3
|
|
uniform sampler2D hint_e : hint_default_black; // godot 4
|
|
uniform sampler2D hint_f : hint_default_white; // godot 4
|
|
|
|
uniform sampler2D hint_g : hint_aniso;
|
|
|
|
uniform vec4 hint_h : hint_color;
|
|
uniform float hint_i : hint_range(0, 1);
|
|
uniform vec4 hint_o : hint_color = vec4(1.0);
|
|
|
|
/* ************************************************************************** */
|
|
|
|
// the remaining examples are copied directly from
|
|
// https://docs.godotengine.org/en/3.0/tutorials/shading/shading_language.html
|
|
|
|
float a = 2; // valid
|
|
float a = 2.0; // valid
|
|
float a = float(2); // valid
|
|
|
|
// The required amount of scalars
|
|
vec4 a = vec4(0.0, 1.0, 2.0, 3.0);
|
|
// Complementary vectors and/or scalars
|
|
vec4 a = vec4(vec2(0.0, 1.0), vec2(2.0, 3.0));
|
|
vec4 a = vec4(vec3(0.0, 1.0, 2.0), 3.0);
|
|
// A single scalar for the whole vector
|
|
vec4 a = vec4(0.0);
|
|
|
|
// if and else
|
|
if (cond) {
|
|
|
|
} else {
|
|
|
|
}
|
|
|
|
// for loops
|
|
for (int i = 0; i < 10; i++) {
|
|
|
|
}
|
|
|
|
// while
|
|
while (true) {
|
|
|
|
}
|
|
|
|
|
|
int sum2(int a, int b) {
|
|
return a + b;
|
|
}
|
|
|
|
void sum3(int a, int b, inout int result) {
|
|
result = a + b;
|
|
}
|
|
|
|
/* ************************************************************************** */
|
|
|
|
struct Test {
|
|
vec3 color;
|
|
};
|
|
|
|
struct MyStruct {
|
|
float power;
|
|
vec3 color;
|
|
Test result;
|
|
};
|
|
|
|
Test foo(MyStruct a, MyStruct b) {
|
|
MyStruct k;
|
|
k.result.color = (a.color + b.color) * k.power;
|
|
return k.result;
|
|
}
|
|
|
|
void fragment() {
|
|
MyStruct inst = MyStruct(0.0, vec3(0.0), Test(vec3(1.0)));
|
|
Test result = foo(inst, MyStruct(1.0, vec3(0, 1, 0), Test(vec3(0.0))));
|
|
}
|