summaryrefslogtreecommitdiff
path: root/servers/rendering/shader_language.cpp
AgeCommit message (Collapse)Author
2021-04-25Remove duplicate commentsDennis Brakhane
A few single line comments were duplicated, probably due to bad merges. This commit removes the obviously duplicate ones.
2021-04-14Refactor GLSL shader compilationreduz
-Used a more consistent set of keywords for the shader -Remove all harcoded entry points -Re-wrote the GLSL shader parser, new system is more flexible. Allows any entry point organization. -Entry point for sky shaders is now sky(). -Entry point for particle shaders is now process().
2021-04-05Style: Apply clang-tidy's `readability-braces-around-statements`Rémi Verschelde
2021-04-05Style: Apply clang-tidy's `modernize-use-nullptr`Rémi Verschelde
2021-03-01Merge pull request #46522 from Ev1lbl0w/bugfix-shader_noretRémi Verschelde
Added missing returns on error scenarios
2021-03-01Fix parsing hexadecimal (lowercase `e`,`f`) in shadersYuri Roubinsky
2021-02-28Added missing returns on error scenariosEv1lbl0w
2021-02-21Prevents shader crash if two struct with the same name are declaredYuri Roubinsky
2021-02-21Prevents shader crash if passing invalid struct to the return statementYuri Roubinsky
2021-02-11Allow passing varying from fragment to light shader functionYuri Roubinsky
2021-01-28Make hex_to_int and bin_to_int handle the prefix automaticallyAaron Franke
Also add BinToInt to C#
2021-01-10Prevent crash due to assigning incorrect order of instance uniformYuri Roubinsky
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2020-12-28Rename empty() to is_empty()Marcel Admiraal
2020-12-27Fix using post-init shader array constructorsYuri Roubinsky
2020-12-17Added support for constants in shader `case` and array size declarationYuri Roubinsky
2020-12-09Static analyzer fixes:bruvzg
Removes unused code in OS. Fixes return types. Fixes few typos.
2020-12-04Rename TYPE_REAL to TYPE_FLOATGeorge Marques
To be consistent with the naming everywhere else.
2020-11-16Remove empty lines around braces with the formatting scriptAaron Franke
2020-11-07Reorganized core/ directory, it was too fatty alreadyreduz
-Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
2020-10-13FIx autocompletion for emit_particle in shader editorYuri Roubinsky
2020-09-22Forbids varying declaration in particles and sky shadersYuri Roubinsky
2020-09-06Implement manual particle emission and particle sub emitters.reduz
2020-09-05Fix crash regression in the shader function validationYuri Roubinsky
introduced in #41780
2020-09-05Improve messages in shader function validationYuri Roubinsky
2020-09-03[Complex Test Layouts] Change `String` to use UTF-32 encoding on all platforms.bruvzg
2020-09-02Fix particles shader to use built-insYuri Roubinsky
2020-07-27Make all String float conversion methods be 64-bitAaron Franke
2020-07-14Fix some incorrect conversions which lead to crash in shadersYuri Roubinsky
2020-07-10Enables 'fma' for GLES2Yuri Roubinsky
2020-07-10Added 'fma' function to shader languageYuri Roubinsky
2020-07-01Merge pull request #38713 from aaronfranke/string-64bitRémi Verschelde
Make all String integer conversion methods be 64-bit
2020-07-01Added const qualifier support for function arguments in shadersYuri Roubinsky
2020-06-27Prevents usage of return in main shader functionsYuri Roubinsky
2020-06-25Fix few places in shaders where const passing still incorrectYuri Roubinsky
2020-06-19Implemented global const array to shadersYuri Roubinsky
2020-06-03Remove 32-bit String hex_to_int methodAaron Franke
2020-05-14Style: Enforce braces around if blocks and loopsRémi Verschelde
Using clang-tidy's `readability-braces-around-statements`. https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14Style: Enforce separation line between function definitionsRémi Verschelde
I couldn't find a tool that enforces it, so I went the manual route: ``` find -name "thirdparty" -prune \ -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \ -o -name "*.glsl" > files perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files) misc/scripts/fix_style.sh -c ``` This adds a newline after all `}` on the first column, unless they are followed by `#` (typically `#endif`). This leads to having lots of places with two lines between function/class definitions, but clang-format then fixes it as we enforce max one line of separation. This doesn't fix potential occurrences of function definitions which are indented (e.g. for a helper class defined in a .cpp), but it's better than nothing. Also can't be made to run easily on CI/hooks so we'll have to be careful with new code. Part of #33027.
2020-05-14Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde
Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
2020-05-10New lightmapperJuan Linietsky
-Added LocalVector (needed it) -Added stb_rect_pack (It's pretty cool, we could probably use it for other stuff too) -Fixes and changes all around the place -Added library for 128 bits fixed point (required for Delaunay3D)
2020-05-10Style: clang-format: Disable AllowShortCaseLabelsOnASingleLineRémi Verschelde
Part of #33027.
2020-05-10Style: clang-format: Disable AllowShortIfStatementsOnASingleLineRémi Verschelde
Part of #33027, also discussed in #29848. Enforcing the use of brackets even on single line statements would be preferred, but `clang-format` doesn't have this functionality yet.
2020-04-29Merge pull request #37795 from Chaosus/shader_fix_const_order2Rémi Verschelde
Fix shader constant sorting
2020-04-17Implement global and per instance shader uniforms.Juan Linietsky
Adds two keywords to shader language for uniforms: -'global' -'instance' This allows them to reference values outside the material.
2020-04-11Fix shader constant sortingYuri Roubinsky
2020-04-02Replace NULL with nullptrlupoDharkael
2020-03-28Prevent shader crash if multiple variables has been declared in 'for'Yuri Roubinsky
2020-03-27Renaming of servers for coherency.Juan Linietsky
VisualServer -> RenderingServer PhysicsServer -> PhysicsServer3D Physics2DServer -> PhysicsServer2D NavigationServer -> NavigationServer3D Navigation2DServer -> NavigationServer2D Also renamed corresponding files.