Commit Graph

105 Commits

Author SHA1 Message Date
5874b7a29c Allow shader arrays to be passed as parameters and return value 2021-05-22 20:15:03 +03:00
084648bd18 Basic warning support implementation for the Godot Shading Language. 2021-05-22 19:24:31 +03:00
6135744786 Implements length() shader function for arrays in structs 2021-05-19 21:50:11 +03:00
96b2e54c70 Fix typo in shader_language.cpp 2021-05-18 19:01:02 +03:00
e905e8f145 Highlight control flow keywords with a different color
This makes them easier to distinguish from other keywords.
2021-05-05 22:38:12 +02:00
3c82f01134 Fix shader handle constant expressions in function call 2021-04-27 15:23:01 +03:00
31d41d83c3 Remove duplicate comments
A few single line comments were duplicated, probably due to bad merges.

This commit removes the obviously duplicate ones.
2021-04-25 20:03:52 +02:00
d3b49c416a Refactor GLSL shader compilation
-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-14 11:37:52 -03:00
d83761ba80 Style: Apply clang-tidy's readability-braces-around-statements 2021-04-05 14:09:59 +02:00
9bbe51dc27 Style: Apply clang-tidy's modernize-use-nullptr 2021-04-05 14:05:07 +02:00
e9cb64a8b5 Merge pull request #46522 from Ev1lbl0w/bugfix-shader_noret
Added missing returns on error scenarios
2021-03-01 09:36:15 +01:00
19e0a1ec9d Fix parsing hexadecimal (lowercase e,f) in shaders 2021-03-01 09:08:44 +03:00
3d9ef1e4de Added missing returns on error scenarios 2021-02-28 19:48:35 +00:00
571f4396ea Prevents shader crash if two struct with the same name are declared 2021-02-21 13:47:09 +03:00
f91e7e3ba4 Prevents shader crash if passing invalid struct to the return statement 2021-02-21 07:55:40 +03:00
dd0874e717 Allow passing varying from fragment to light shader function 2021-02-11 15:59:21 +03:00
a3e3bf8227 Make hex_to_int and bin_to_int handle the prefix automatically
Also add BinToInt to C#
2021-01-28 07:43:53 -05:00
289cc89a39 Prevent crash due to assigning incorrect order of instance uniform 2021-01-10 10:52:30 +03:00
b5334d14f7 Update copyright statements to 2021
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 🎆
2021-01-01 20:19:21 +01:00
5b937d493f Rename empty() to is_empty() 2020-12-28 10:39:56 +00:00
bc0e8e7a21 Fix using post-init shader array constructors 2020-12-27 01:07:24 +03:00
fe4c8e387b Added support for constants in shader case and array size declaration 2020-12-17 11:51:18 +03:00
644f739660 Static analyzer fixes:
Removes unused code in OS.
Fixes return types.
Fixes few typos.
2020-12-09 10:17:53 +02:00
02f60812ed Rename TYPE_REAL to TYPE_FLOAT
To be consistent with the naming everywhere else.
2020-12-04 09:47:26 -03:00
02161aad5a Remove empty lines around braces with the formatting script 2020-11-16 23:38:11 -05:00
127458ed17 Reorganized core/ directory, it was too fatty already
-Removed FuncRef, since Callable makes it obsolete
-Removed int_types.h as its obsolete in c++11+
-Changed color names code
2020-11-07 20:17:12 -03:00
6914597026 FIx autocompletion for emit_particle in shader editor 2020-10-13 14:12:51 +03:00
53740c69df Forbids varying declaration in particles and sky shaders 2020-09-22 10:35:52 +03:00
d0bddf53c5 Implement manual particle emission and particle sub emitters. 2020-09-06 10:29:27 -03:00
b1351fe781 Fix crash regression in the shader function validation
introduced in #41780
2020-09-05 13:49:50 +03:00
ab9978697e Improve messages in shader function validation 2020-09-05 13:19:38 +03:00
80b8eff6aa [Complex Test Layouts] Change String to use UTF-32 encoding on all platforms. 2020-09-03 19:56:24 +03:00
2a00c868de Fix particles shader to use built-ins 2020-09-02 22:54:41 +03:00
56e2c6c704 Make all String float conversion methods be 64-bit 2020-07-27 18:38:53 -04:00
01950553f2 Fix some incorrect conversions which lead to crash in shaders 2020-07-14 21:04:12 +03:00
3eeb272b2e Enables 'fma' for GLES2 2020-07-10 22:21:22 +03:00
ecb5f7ea23 Added 'fma' function to shader language 2020-07-10 19:58:03 +03:00
a8a2769bb6 Merge pull request #38713 from aaronfranke/string-64bit
Make all String integer conversion methods be 64-bit
2020-07-01 16:01:05 +02:00
c554d9e556 Added const qualifier support for function arguments in shaders 2020-07-01 12:55:00 +03:00
2ce77e4b57 Prevents usage of return in main shader functions 2020-06-27 17:36:45 +03:00
b6ca9536f2 Fix few places in shaders where const passing still incorrect 2020-06-25 10:40:19 +03:00
636a9d9f50 Implemented global const array to shaders 2020-06-19 16:04:54 +03:00
e5ae89775a Remove 32-bit String hex_to_int method 2020-06-03 00:03:34 -04:00
0ee0fa42e6 Style: Enforce braces around if blocks and loops
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14 21:57:34 +02:00
07bc4e2f96 Style: Enforce separation line between function definitions
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-14 16:54:55 +02:00
0be6d925dc Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
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-14 16:54:55 +02:00
1bea8e1eac New lightmapper
-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-10 15:59:09 -03:00
69de7ce38c Style: clang-format: Disable AllowShortCaseLabelsOnASingleLine
Part of #33027.
2020-05-10 13:13:54 +02:00
e956e80c1f Style: clang-format: Disable AllowShortIfStatementsOnASingleLine
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-05-10 13:12:16 +02:00
0bf6a86db4 Merge pull request #37795 from Chaosus/shader_fix_const_order2
Fix shader constant sorting
2020-04-29 09:41:34 +02:00