summaryrefslogtreecommitdiff
path: root/servers/rendering/shader_language.h
AgeCommit message (Collapse)Author
2023-01-05One Copyright Update to rule them allRémi Verschelde
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".
2022-12-23Fix shader crash when using boolean type for vertex->fragment varyingsYuri Rubinsky
2022-12-15Refactor `ShaderData` & fix the sorting of shader uniformsYuri Rubinsky
2022-11-15Mark shader built-ins as used when passed to functions as out parameter Yuri Rubinsky
2022-09-28Fix MSVC warnings C4701 and C4703: Potentially uninitialized variable usedRémi Verschelde
2022-09-11Prevent duplicated hints in shader uniform completionYuri Rubinsky
2022-08-09Add shader uniform hints for screen textures so users can specify custom ↵clayjohn
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-01Add `hint_transparent` to use a transparent black placeholder textureHugo Locurcio
This can be used in shaders to avoid the need to supply a transparent placeholder texture manually.
2022-07-28Rename RenderingServer global shader uniform methods to be more explicitHugo Locurcio
The `global_shader_uniform` name is longer, but it makes it much easier to find the methods when searching in the class reference.
2022-07-26Implement shader uniform groups/subgroupsYuri Rubinsky
2022-07-25Fix errors when using built-ins in shaderincYuri Rubinsky
2022-07-22Clean up Shader Preprocessorreduz
* Moved preprocessor to Shader and ShaderInclude * Clean up RenderingServer side * Preprocessor is separate from parser now, but it emits tokens with include location hints. * Improved ShaderEditor validation code * Added include file code completion * Added notification for all files affected by a broken include.
2022-07-22Adding shader preprocessor supportYuri Roubinsky
Co-authored-by: TheOrangeDay <6472143+TheOrangeDay@users.noreply.github.com>
2022-06-14Remove GLES2 shader constraints from GLES3clayjohn
2022-05-31Refactor shader hintsYuri Rubinsky
2022-05-24Merge pull request #60803 from Chaosus/shader_hint_renameRémi Verschelde
Rename `hint_albedo`, `hint_white/black` in shaders
2022-05-23Merge pull request #61226 from Chaosus/shader_fix_keyword_completionRémi Verschelde
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-20Fix incorrect keyword completion after period in shader editorYuri Rubinsky
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-05-09Rename `hint_albedo`, `hint_white/black` in shadersYuri Roubinsky
2022-05-04Merge pull request #60568 from Chaosus/shader_keyword_completionsRémi Verschelde
Add keyword completion to shader editor
2022-05-02Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`Rémi Verschelde
Didn't commit all the changes where it wants to initialize a struct with `{}`. Should be reviewed in a separate PR. Option `IgnoreArrays` enabled for now to be conservative, can be disabled to see if it proposes more useful changes. Also fixed manually a handful of other missing initializations / moved some from constructors.
2022-04-29Add keyword completion to shader editorYuri Roubinsky
2022-04-26Prevent shader crash when using precision on boolean typesYuri Roubinsky
2022-04-12Merge pull request #59825 from Chaosus/shader_fixRémi Verschelde
Fix incorrect parsing array's `length()` at return statement in shader
2022-04-04Zero initialize all pointer class and struct membersRémi Verschelde
This prevents the pitfall of UB when checking if they have been assigned something valid by comparing to nullptr.
2022-04-03Fix incorrect parsing array's `length()` at return statement in shaderYuri Roubinsky
2022-03-27Add GDExtension support to Scriptreduz
* Ability to create script languages from GDExtension * Some additions to gdnative_extension.h to make this happen * Moved the GDExtension binder to core This now allows creating scripting languages from GDExtension, with the same ease as if it was a module. It replaces the old PluginScript from Godot 3.x. Warning: GodotCPP will need to be updated to support this (it may be a bit of work as ScriptInstance needs to be created over there again).
2022-02-03Allow multiple declarations in for loop in a shaderYuri Roubinsky
2022-01-19Add translation links to shader errorsYuri Roubinsky
2022-01-18Unify variable and array declarations in shadersYuri Roubinsky
2022-01-15Refactor size expression parsing for arrays in the shadersYuri Roubinsky
2022-01-13Add completion for shader_typeYuri Roubinsky
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2022-01-03Add a shader warning when the uniform buffer limit is exceededYuri Roubinsky
2021-12-23Allow pass varyings as out param to the function, when it's possibleYuri Roubinsky
2021-12-21Refactor render_mode in shaders, forbid declaring duplicatesYuri Roubinsky
2021-12-15Rename shader hint `filter_anisotropy` to `filter_anisotropic`Yuri Roubinsky
2021-12-15Fix shader array parsing in variable declarationYuri Roubinsky
2021-12-15Merge pull request #55913 from Chaosus/fix_shader_crashRémi Verschelde
2021-12-15Rename shader hint `filter_aniso` to `filter_anisotropy`Yuri Roubinsky
2021-12-13Fix shader crash when assigned array from struct to a variable by indexYuri Roubinsky
2021-12-10Rename `hint_aniso` to `hint_anisotropy` in the shader languageHugo Locurcio
The word "anisotropy" is used in full form in BaseMaterial3D's anisotropy-related properties.
2021-12-10Refactor constant suffix parsing in a shaderYuri Roubinsky
2021-12-10Added completion for uniform hints in a shaderYuri Roubinsky
2021-12-08Make `compile` shader function to use struct instead long parameter listYuri Roubinsky
2021-12-01Allow using empty statements in the shader, added formatting warningYuri Roubinsky
2021-11-29Fix built-in(PI, TAU, E) assignment to a global constant in a shaderYuri Roubinsky
2021-10-13Added few more built-ins to shader languageYuri Roubinsky