Yuri Roubinsky
b66510d509
Added completion for uniform hints in a shader
2021-12-10 10:12:25 +07:00
Nathan Franke
49403cbfa0
Replace String comparisons with "", String() to is_empty()
...
Also:
- Adds two stress tests to test_string.h
- Changes to .empty() on std::strings
2021-12-09 04:48:38 +07:00
Yuri Roubinsky
76f6c0849c
Make `compile` shader function to use struct instead long parameter list
2021-12-08 11:34:40 +07:00
Yuri Roubinsky
10b10ae1fa
Fix `^=` operator in shaders
2021-12-03 10:20:44 +07:00
Yuri Roubinsky
5ee73dc5a6
Fix shader crash when using existed constant name for struct
2021-12-01 18:11:45 +07:00
Yuri Roubinsky
a48c205191
Fix declaring array size twice in global shader constant
2021-12-01 16:44:25 +07:00
Yuri Roubinsky
5ba93619fa
Allow using empty statements in the shader, added formatting warning
2021-12-01 11:52:25 +07:00
Rémi Verschelde
5643f5e616
Merge pull request #55490 from Chaosus/fix_shader_crash
2021-11-30 20:13:12 +07:00
Yuri Roubinsky
be7c03779a
Fix shader crash when assigning array to non-array in global constant
2021-11-30 21:28:55 +07:00
Yuri Roubinsky
6e80e97b0f
Fix built-in(PI, TAU, E) assignment to a global constant in a shader
2021-11-29 10:32:36 +07:00
Yuri Roubinsky
9b1f8f7a96
Revert "Pushes array of uniforms to first place in the buffer"
2021-11-25 16:13:19 +07:00
Lightning_A
e078f970db
Rename `remove()` to `remove_at()` when removing by index
2021-11-23 18:58:57 +07:00
Yuri Roubinsky
c7043dbfdc
Prevent return statement from using in block in shader main functions
2021-11-23 10:36:33 +07:00
Yuri Roubinsky
f4c0e90fd9
Allow passing non-variable constant to const function param in shaders
2021-11-19 12:14:13 +07:00
Yuri Roubinsky
bbfa5f29c7
Pushes array of uniforms to first place in the buffer to prevent bug
2021-11-07 23:30:09 +07:00
Rémi Verschelde
02ae47154c
Merge pull request #54356 from Chaosus/shader_fix_matrix_autocompletion
2021-11-01 14:06:04 +07:00
clayjohn
1b2cd9f251
Addition of FogVolumes, FogShaders, FogMaterial, and overhaul of VolumetricFog
...
Co-authored-by: Brian Semrau <brian.semrau@gmail.com>
2021-10-28 22:02:23 +07:00
Yuri Roubinsky
04a2053f9b
Removed incorrect autocompletion of matrixes in shader
2021-10-28 20:21:18 +07:00
Rémi Verschelde
3b11e33a09
clang-format: Disable alignment of operands, too unreliable
...
Sets `AlignOperands` to `DontAlign`.
`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.
2021-10-28 15:19:35 +07:00
Yuri Roubinsky
57fd362fe1
Prevent shader crash when passing constant expression to `textureGather`
2021-10-21 19:46:05 +07:00
Yuri Roubinsky
e9b7ffd1fa
Added few more built-ins to shader language
2021-10-13 20:27:36 +07:00
Rémi Verschelde
09b0293fad
Merge pull request #53066 from Chaosus/shader_funcs
2021-10-10 21:37:07 +07:00
Yuri Roubinsky
b1ac3e256f
Allow declare the shader arrays with a size defined before identifier
2021-10-08 10:28:31 +07:00
Yuri Roubinsky
e707391fb8
Fix shader crash when passing array to index expression
2021-10-07 10:48:32 +07:00
Yuri Roubinsky
be6f36a66d
Add missing shader built-ins
2021-10-05 20:50:26 +07:00
Yuri Roubinsky
7c07ae4c50
Fix shader crash when passing array.length to functions
...
and similar cases
2021-10-05 12:49:59 +07:00
Yuri Roubinsky
69ece73653
Fix syntax parsing error of uniform arrays declaration in shader
2021-10-04 23:19:43 +07:00
Yuri Roubinsky
6873ecaaf9
Added support for uniform arrays in shaders
2021-10-04 13:57:44 +07:00
Lightning_A
c63b18507d
Use range iterators for `Map`
2021-09-30 15:09:12 +07:00
Yuri Roubinsky
e9e21a592e
Prevents editor crash when compare with negative float in shader
2021-09-22 13:26:40 +07:00
Yuri Roubinsky
f68d3f67b5
Fix shader crash when passing array to built-in function without index
2021-09-18 14:05:14 +07:00
reduz
700f9d916d
More fixes to mobile renderer
...
* Specify all precision qualifiers
* Makes renderer work on Adreno Vulkan
2021-08-18 12:20:19 +07:00
Yuri Roubinsky
fa96c98bdf
Fix shader crash when using local var with the same name as varying
2021-08-13 09:20:16 +07:00
Rémi Verschelde
b63af73435
Merge pull request #51391 from Chaosus/shader_param_names
...
Added parameter names to shader built-in function autocompletion
2021-08-12 14:58:11 +07:00
Yuri Roubinsky
fb37846b00
Added parameter names to shader built-in function autocompletion
2021-08-12 11:19:53 +07:00
Yuri Roubinsky
efc6b29601
Merge pull request #51505 from Chaosus/shader_fix_shadetype-errorline
2021-08-11 14:46:04 +07:00
Yuri Roubinsky
2fb5231bbc
Break futher shader compilation after missing `;` after`shader_type`
2021-08-11 12:37:59 +07:00
Yuri Roubinsky
0f42a29864
Allow using more assignment operators on matrixes in shaders
2021-08-11 11:51:39 +07:00
Yuri Roubinsky
fead1595f9
Fix shader crash when using varying array in fragment->light context
2021-08-11 09:44:00 +07:00
Yuri Roubinsky
c082982a47
Fix editor crash if passing index as variable to function parameter
2021-07-26 17:42:52 +07:00
Yuri Roubinsky
b47b3a9957
Prevents shader crashing if varying assigned incorrectly
2021-07-26 14:47:14 +07:00
Yuri Roubinsky
3013324a4e
Fix compilation of `shader_language.cpp`
2021-07-26 13:44:21 +07:00
Rémi Verschelde
a8fcfbf029
Merge pull request #50729 from Chaosus/shader_varying_enchancements2
...
Allow using vertex-stage varying in both `fragment` and `light` functions
2021-07-26 12:17:49 +07:00
Rémi Verschelde
9b9e09f675
Merge pull request #50728 from Chaosus/shader_varying_enchancements
...
Allow using vertex varying in custom functions under any circumstances
2021-07-26 12:17:40 +07:00
Rémi Verschelde
ac3322b0af
Use const references where possible for List range iterators
2021-07-25 12:22:25 +07:00
Aaron Franke
4e6efd1b07
Use C++ iterators for Lists in many situations
2021-07-23 17:38:28 +07:00
Yuri Roubinsky
17b462cc5f
Allow using vertex-stage varying in both `fragment` and `light`
2021-07-22 11:55:14 +07:00
Yuri Roubinsky
94a7b04a01
Allow using vertex varying in custom functions under any circumstances
2021-07-22 11:27:13 +07:00
Yuri Roubinsky
39c06604cd
Forbid varyings from assigning in custom functions to prevent crashes
2021-07-21 14:12:54 +07:00
Yuri Roubinsky
14d5b47a27
Prevent error if varying assigned but not used (push warning instead)
2021-07-15 18:07:19 +07:00
Yuri Roubinsky
5100eed012
Added a shader warning about unused local variable
2021-06-29 15:39:37 +07:00
Lightning_A
b6af2a29eb
Rename `is_valid_integer()` to `is_valid_int()`
...
Method from `String`
2021-06-16 10:32:22 +07:00
Yuri Roubinsky
eec82d9f75
Prevent shader crash when returning array when return type is scalar
2021-06-06 14:59:52 +07:00
Aaron Franke
08a85352fb
Rename Variant TRANSFORM to TRANSFORM3D
...
Also _transform to _transform3d
2021-06-03 07:30:01 +07:00
Aaron Franke
de3f6699a5
Rename Transform to Transform3D in core
2021-06-03 07:30:01 +07:00
Yuri Roubinsky
5874b7a29c
Allow shader arrays to be passed as parameters and return value
2021-05-22 20:15:03 +07:00
Yuri Roubinsky
084648bd18
Basic warning support implementation for the Godot Shading Language.
2021-05-22 19:24:31 +07:00
Yuri Roubinsky
6135744786
Implements length() shader function for arrays in structs
2021-05-19 21:50:11 +07:00
Yuri Roubinsky
96b2e54c70
Fix typo in shader_language.cpp
2021-05-18 19:01:02 +07:00
Hugo Locurcio
e905e8f145
Highlight control flow keywords with a different color
...
This makes them easier to distinguish from other keywords.
2021-05-05 22:38:12 +07:00
Yuri Roubinsky
3c82f01134
Fix shader handle constant expressions in function call
2021-04-27 15:23:01 +07:00
Dennis Brakhane
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 +07:00
reduz
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 +07:00
Rémi Verschelde
d83761ba80
Style: Apply clang-tidy's `readability-braces-around-statements`
2021-04-05 14:09:59 +07:00
Rémi Verschelde
9bbe51dc27
Style: Apply clang-tidy's `modernize-use-nullptr`
2021-04-05 14:05:07 +07:00
Rémi Verschelde
e9cb64a8b5
Merge pull request #46522 from Ev1lbl0w/bugfix-shader_noret
...
Added missing returns on error scenarios
2021-03-01 09:36:15 +07:00
Yuri Roubinsky
19e0a1ec9d
Fix parsing hexadecimal (lowercase `e`,`f`) in shaders
2021-03-01 09:08:44 +07:00
Ev1lbl0w
3d9ef1e4de
Added missing returns on error scenarios
2021-02-28 19:48:35 +07:00
Yuri Roubinsky
571f4396ea
Prevents shader crash if two struct with the same name are declared
2021-02-21 13:47:09 +07:00
Yuri Roubinsky
f91e7e3ba4
Prevents shader crash if passing invalid struct to the return statement
2021-02-21 07:55:40 +07:00
Yuri Roubinsky
dd0874e717
Allow passing varying from fragment to light shader function
2021-02-11 15:59:21 +07:00
Aaron Franke
a3e3bf8227
Make hex_to_int and bin_to_int handle the prefix automatically
...
Also add BinToInt to C#
2021-01-28 07:43:53 +07:00
Yuri Roubinsky
289cc89a39
Prevent crash due to assigning incorrect order of instance uniform
2021-01-10 10:52:30 +07:00
Rémi Verschelde
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 +07:00
Marcel Admiraal
5b937d493f
Rename empty() to is_empty()
2020-12-28 10:39:56 +07:00
Yuri Roubinsky
bc0e8e7a21
Fix using post-init shader array constructors
2020-12-27 01:07:24 +07:00
Yuri Roubinsky
fe4c8e387b
Added support for constants in shader `case` and array size declaration
2020-12-17 11:51:18 +07:00
bruvzg
644f739660
Static analyzer fixes:
...
Removes unused code in OS.
Fixes return types.
Fixes few typos.
2020-12-09 10:17:53 +07:00
George Marques
02f60812ed
Rename TYPE_REAL to TYPE_FLOAT
...
To be consistent with the naming everywhere else.
2020-12-04 09:47:26 +07:00
Aaron Franke
02161aad5a
Remove empty lines around braces with the formatting script
2020-11-16 23:38:11 +07:00
reduz
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 +07:00
Yuri Roubinsky
6914597026
FIx autocompletion for emit_particle in shader editor
2020-10-13 14:12:51 +07:00
Yuri Roubinsky
53740c69df
Forbids varying declaration in particles and sky shaders
2020-09-22 10:35:52 +07:00
reduz
d0bddf53c5
Implement manual particle emission and particle sub emitters.
2020-09-06 10:29:27 +07:00
Yuri Roubinsky
b1351fe781
Fix crash regression in the shader function validation
...
introduced in #41780
2020-09-05 13:49:50 +07:00
Yuri Roubinsky
ab9978697e
Improve messages in shader function validation
2020-09-05 13:19:38 +07:00
bruvzg
80b8eff6aa
[Complex Test Layouts] Change `String` to use UTF-32 encoding on all platforms.
2020-09-03 19:56:24 +07:00
Yuri Roubinsky
2a00c868de
Fix particles shader to use built-ins
2020-09-02 22:54:41 +07:00
Aaron Franke
56e2c6c704
Make all String float conversion methods be 64-bit
2020-07-27 18:38:53 +07:00
Yuri Roubinsky
01950553f2
Fix some incorrect conversions which lead to crash in shaders
2020-07-14 21:04:12 +07:00
Yuri Roubinsky
3eeb272b2e
Enables 'fma' for GLES2
2020-07-10 22:21:22 +07:00
Yuri Roubinsky
ecb5f7ea23
Added 'fma' function to shader language
2020-07-10 19:58:03 +07:00
Rémi Verschelde
a8a2769bb6
Merge pull request #38713 from aaronfranke/string-64bit
...
Make all String integer conversion methods be 64-bit
2020-07-01 16:01:05 +07:00
Yuri Roubinsky
c554d9e556
Added const qualifier support for function arguments in shaders
2020-07-01 12:55:00 +07:00
Yuri Roubinsky
2ce77e4b57
Prevents usage of return in main shader functions
2020-06-27 17:36:45 +07:00
Yuri Roubinsky
b6ca9536f2
Fix few places in shaders where const passing still incorrect
2020-06-25 10:40:19 +07:00
Yuri Roubinsky
636a9d9f50
Implemented global const array to shaders
2020-06-19 16:04:54 +07:00
Aaron Franke
e5ae89775a
Remove 32-bit String hex_to_int method
2020-06-03 00:03:34 +07:00
Rémi Verschelde
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 +07:00
Rémi Verschelde
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 +07:00