Commit Graph

131 Commits (cb1569345a6f17da08241e645ab03cb2e1b78d2f)

Author SHA1 Message Date
Chaosus fe1447de0c Fix ternary expression for structs in shaders 2025-10-05 14:47:16 +07:00
Apples d674c9e289 Add stencil support for spatial materials 2025-06-11 09:59:10 +07:00
Apples 7574a5dbb3 Add depth function for spatial materials 2025-06-06 09:21:19 +07:00
Chaosus 5a14ab7c39 [Shaders] Allow constants and expressions in `hint_range` 2025-04-17 17:43:01 +07:00
Rob Blanckaert 8c54290b4a Add `color_conversion_disabled` shader hint.
Sometimes shaders want to accept a color as input that is always
in the srgb color space.  This adds a hint to vec3/vec4 to enable
the color picker popup for those vectors but disable color space
conversion.
2025-04-10 21:31:15 +07:00
Thaddeus Crews 324512e11c
Style: Replace header guards with `#pragma once` 2025-03-07 17:33:47 +07:00
clayjohn 35100396e4 Validate varying count when compiling shaders
This avoids crashing on devices when a number of varyings greater than the device limit is used.

For now this accurately prints an error when compiling the shader, but the error text only pops up in the editor if the number of user varyings is above the limit.
2025-02-13 15:07:15 +07:00
Chaosus 570e59df3d Fix shader uniforms has null as default value 2025-01-31 07:35:51 +07:00
Chaosus a7bb85d2b7 Fix shader crash when using varyings with non-`flat` integer type 2024-12-09 12:52:01 +07:00
Chaosus 5a48e527b2 Fix orphan strings in shader preprocessor 2024-11-28 11:22:17 +07:00
Thaddeus Crews 89a311205f
Style: Apply `clang-tidy` fixes
• `modernize-use-default-member-init` and `readability-redundant-member-init`
• Minor adjustments to `.clang-tidy` to improve syntax & remove redundancies
2024-11-04 12:11:06 +07:00
Yuri Rubinsky ff9fb0abea
Merge pull request #93590 from Chaosus/shader_custom_func_discard
Allow usage of `discard` inside custom shader functions
2024-10-24 09:38:10 +07:00
Yuri Rubinsky ad7e7a51b2 Allow usage of `discard` inside custom shader functions 2024-10-17 16:06:33 +07:00
Yuri Rubinsky 74c000db17 Allow using stage functions inside custom shader functions 2024-10-17 15:47:01 +07:00
Yuri Rubinsky 1c86feee0a Implement custom function overloading in shading language 2024-10-08 15:54:00 +07:00
David Snopek 1a6f8512bc Add external texture support (GLES3)
Co-authored-by: Fredia Huya-Kouadio <fhuyakou@gmail.com>
Co-authored-by: Mauricio Narvaez <nvz@meta.com>
2024-09-20 10:48:32 +07:00
Chaosus b2611c198e Fix shader incorrectly expects `int` on `uint` and vice-versa in cases 2024-09-11 09:22:27 +07:00
Yuri Rubinsky af92fdb0ac Add basic support to evaluate operator value in shader language 2024-09-09 15:12:11 +07:00
Rémi Verschelde 10a92287c6
Merge pull request #94352 from Chaosus/shader_ternary_fix
Fix multiple ternary expressions to be used without parenthesis
2024-08-28 00:12:07 +07:00
Rémi Verschelde 7999b4bb8a
Merge pull request #94324 from SomeRanDev/shader_hint_enum
GDShader: Add `hint_enum` for `uniform int`
2024-08-20 10:01:57 +07:00
Rémi Verschelde 6bf64027b7
Merge pull request #94785 from Chaosus/shader_fix_samplers_order
Fix texture samplers to not being last in the property list
2024-08-19 16:05:21 +07:00
Chaosus d74749fd60 Fix shader crash when the comma used in `for` loop as a trailing 2024-08-10 11:23:11 +07:00
Yuri Rubinsky e41048e16e Fix texture samplers to not being last in the property list 2024-07-29 09:19:09 +07:00
clayjohn a2f2699208 Restrict sampler hint validation to only screen texture hints 2024-07-28 22:31:57 +07:00
clayjohn ba3457dfff Emit normal_roughness compatibility code in custom functions 2024-07-26 10:45:36 +07:00
Yuri Rubinsky 965b2f6ca4 Fix shader crash when using a varying in separate func before it defined 2024-07-23 21:55:18 +07:00
Yuri Rubinsky eb4bbbb02d Fix multiple ternary expressions to be used without parenthesis 2024-07-17 10:34:17 +07:00
Robert Borghese 1052985b00 Add `hint_enum` for uniform int in gdshader 2024-07-13 14:30:08 +07:00
Yuri Rubinsky 4f657f5c6d Improve code for setup of `global_func_set` in `ShaderLanguage` 2024-07-02 18:16:04 +07:00
Rémi Verschelde 2e8ebb4a5e
Merge pull request #93469 from Chaosus/shader_fix_crash
Fix crash on shader constant initialization on MinGW compiler
2024-06-25 10:01:46 +07:00
Yuri Rubinsky d5b393a268 Fix crash on shader constant initialization on MinGW compiler 2024-06-22 16:36:54 +07:00
Yuri Rubinsky ae95531e64 Forbid calling of derivative functions in incorrect functions 2024-06-21 20:47:21 +07:00
Yuri Rubinsky aecc4cbc47 Prevent using built-ins for func names in shaders 2024-05-30 21:33:21 +07:00
Yuri Rubinsky 246a760323 Fix completion of functions with struct param/return type in shaders 2024-05-28 12:13:25 +07:00
Thaddeus Crews 9903e6779b
Enforce template syntax `typename` over `class` 2024-03-07 22:39:09 +07:00
Muller-Castro 96a95cb974 Add const lvalue ref to container parameters 2024-01-05 14:49:57 +07:00
Rémi Verschelde 24c166dfe2
Merge pull request #81619 from Chaosus/fix_shader_const
Re-allows constants in global space to be initialized with function call
2023-10-03 17:20:23 +07:00
Yuri Roubinski d3d20f15bf Re-allows constants in global space to be initialized with function call 2023-09-13 21:04:29 +07:00
bitsawer 3c042fb99f Fix shader language preprocessor include marker handling 2023-09-06 16:57:40 +07:00
Ninni Pipping 71ee65dc57 Enable shadow warnings and fix raised errors 2023-05-11 16:00:59 +07:00
Yuri Rubinsky 94831c7209 Forbid passing multiview sampler to the custom function in shaders 2023-02-21 11:23:17 +07:00
Yuri Rubinsky e034d5f764 Fix shader failure when using non-const initializer on a constant 2023-02-01 13:03:11 +07:00
Rémi Verschelde d95794ec8a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +07:00
Yuri Rubinsky f28348fc5c Fix shader crash when using boolean type for vertex->fragment varyings 2022-12-23 07:47:49 +07:00
Yuri Rubinsky 56954485ed Refactor `ShaderData` & fix the sorting of shader uniforms 2022-12-15 10:02:59 +07:00
Yuri Rubinsky 5693286e90 Mark shader built-ins as used when passed to functions as out parameter 2022-11-15 22:06:16 +07:00
Rémi Verschelde 85fe6ecc32 Fix MSVC warnings C4701 and C4703: Potentially uninitialized variable used 2022-09-28 17:05:34 +07:00
Yuri Rubinsky e4a8646c19 Prevent duplicated hints in shader uniform completion 2022-09-11 15:21:43 +07:00
clayjohn 028ef2edc8 Add shader uniform hints for screen textures so users can specify custom filter and repeat modes.
At this time, it works best in the Vulkan Renderers as they support using multiple samplers with the same texture.

In GLES3 this feature really only allows you to use the screen texture without mipmaps if you want to save the cost of generating them.
2022-08-09 12:29:49 +07:00
Hugo Locurcio 813f6a5d57
Add `hint_transparent` to use a transparent black placeholder texture
This can be used in shaders to avoid the need to supply a transparent
placeholder texture manually.
2022-08-01 23:38:06 +07:00