Commit graph

178 commits

Author SHA1 Message Date
Yuri Roubinsky
4dd1eee769 Enables passing out built-in parameter from parent function in shaders
(cherry picked from commit 7a2c6a8c0e)
2020-03-25 11:38:53 +01:00
fhuya
30d738eda7 Add support for opengl external textures as defined by https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external.txt 2020-03-05 13:09:49 -08:00
Yuri Roubinsky
3b2490f19c Prevent shader crash if invalid builtin used after array member accessor
(cherry picked from commit 3a70566b15)
2020-02-14 16:02:21 +01:00
Yuri Roubinsky
0995696e08 Prevent shader crash when name conflict with "dus" and "__" occured
(cherry picked from commit 2c4367441c)
2020-02-06 13:02:07 +01:00
Yuri Roubinsky
3473a195fc Hides high-level functions from GLES2 shader autocompletion 2020-01-23 12:41:21 +03:00
Yuri Roubinsky
4c456ef979 Disallow uint/uvec usage on GLES2 platform 2020-01-20 18:59:35 +03:00
Yuri Roubinsky
3dea1c725e Clears completion_class in shaders (may cause troubles if not). 2020-01-19 16:35:54 +03:00
Yuri Roubinsky
1eb8d5e142 Added missing form of array constructor in shaders 2020-01-18 11:41:55 +03:00
Yuri Roubinsky
5098232ee6 Disabled array initialization, const array and arr.length in shaders 2020-01-16 11:46:11 +03:00
Yuri Roubinsky
1e154e0947 Fix nested break/return in shader switch statement 2020-01-10 11:57:56 +03:00
Rémi Verschelde
5edd1a27d2
Merge pull request #34671 from Chaosus/shader_hex_support
Support for hex numbers in shaders
2020-01-08 10:01:49 +01:00
Rémi Verschelde
a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
Yuri Roubinsky
99b92c885f Support for hex numbers in shaders 2019-12-29 12:19:10 +03:00
Rémi Verschelde
2845e6a21a
Merge pull request #34040 from qarmin/unused_variable_more_precise_numbers
Removed unused variables, add some constants numbers
2019-12-10 08:25:31 +01:00
Rafał Mikrut
ed1c4bc77d Removed unused variables, add some constants numbers 2019-12-10 05:13:02 +01:00
Yuri Roubinsky
8b8faf03d5 Fix expressions for global constants in shaders 2019-12-02 19:00:21 +03:00
Marcel Admiraal
6c3be2ca74 Fix Visual Studio throwing C4146 warning. 2019-11-18 15:14:04 +00:00
Yuri Roubinsky
5e44b5be81 Prevents usage of unsupported texture shader types in GLES2 2019-11-03 13:41:15 +03:00
Yuri Roubinsky
6b7f8558d9 Removed switch operator from GLES2 shader back-end 2019-11-02 12:43:32 +03:00
Yuri Roubinsky
1b003f3d64 Prevents shader crash on GLES2 if unsupported built-in has been used 2019-10-31 09:21:44 +03:00
Yuri Roubinsky
76eb486413 Added check if field name in the shader is equal to builtin 2019-10-29 15:37:19 +03:00
Yuri Roubinsky
ef6161532d Fix shader crash if non-boolean expression inserted into "if" 2019-10-28 08:35:33 +03:00
Hugo Locurcio
701581d1d3
Improve error messages related to shader_type
The list of allowed shader types is now displayed if any
`shader_type`-related error is emitted.

This makes it easier to remember which shader types are allowed
when creating a new shader.
2019-10-26 17:43:14 +02:00
Yuri Roubinsky
ada4bcbe30 Fix invalid autocompletion pasting of shader param name 2019-10-08 18:33:22 +03:00
Yuri Roubinsky
76324bec8d Prevent shader crash if name of variable overrides function name 2019-10-06 20:35:41 +03:00
Yuri Roubinsky
d9087e1b44 Prevent shader crash if function call been used on constant 2019-10-06 18:20:05 +03:00
Yuri Roubinsky
5a5a062d61 Fix few redefinition name errors for variable/param/function in shaders 2019-10-06 17:27:28 +03:00
Yuri Roubinsky
1472fca951 Removed unnecessary shader error log messages 2019-10-02 12:37:22 +03:00
Chaosus
1333ea2a2d Implement shader array support for varyings 2019-09-14 18:23:25 +03:00
Yuri Roubinski
38601dd3e9 Fix shader crash when users miss the return statement 2019-08-28 11:32:33 +03:00
Yuri Roubinski
4dda253ee0 Implements switch to shaders 2019-08-23 14:43:09 +03:00
Yuri Roubinski
a525e3c5ce Implemented do/while loops for shaders 2019-08-13 18:39:55 +03:00
Yuri Roubinski
24417f1975 Force user to initialize local shader constants 2019-08-13 12:31:25 +03:00
Cameron Reikes
9f7a166c35 Show that identifier found in function names 2019-08-09 21:15:33 -07:00
Yuri Roubinski
b24b3497d6 Implemented local shader constants 2019-08-05 10:35:53 +03:00
qarmin
aab8da25ad Fix some code found by Coverity Scan and PVS Studio 2019-07-23 09:14:31 +02:00
Chaosus
cfcc9ee9c1 Allows to use non-constants in the local shader array initializer 2019-07-16 08:04:49 +03:00
Chaosus
9379cbc774 Added local array initializer 2019-07-16 07:13:37 +03:00
Chaosus
c37379456f Implemented local shader arrays 2019-07-15 15:57:39 +03:00
Chaosus
e7f5640632 Added missed "textureProjLod" shader built-in overload for 3D textures 2019-07-15 09:59:11 +03:00
hbina085
26c0609656 Make the default return value on crash explicit
Noticed that the error condition will return a NULL instead of something more explicit like "false".
Should make the code more readable at a glance.
2019-07-11 23:06:58 -04:00
Chaosus
a2b2da2454 Removed invalid mix shader overloads 2019-07-11 17:16:26 +03:00
Chaosus
4083d0c784 Fix "not" shader function return type 2019-07-09 15:55:00 +03:00
geequlim
253cd73f1d Fix code completion for shader editor 2019-07-06 12:03:17 +08:00
Chaosus
c2d4abf62e Added constant support to shaders
Co-authored-by: DavidSichma <sichmada@gmail.com>
2019-06-01 13:41:07 +03:00
Rémi Verschelde
193837a8f5
Merge pull request #28829 from vreon/swizzle-up
Allow constructing larger data types by swizzling
2019-05-24 17:02:26 +02:00
Rémi Verschelde
e0574e1d98 Fix typos with codespell
Using codespell 1.15.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
doubleclick
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF

$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2019-05-19 13:10:35 +02:00
Jesse Dubay
1b9d26765f Allow constructing larger data types by swizzling
GLSL allows the construction of larger data types by swizzling smaller
ones, but Godot shading language treated this as an error:

  vec2 test2 = vec2(0.0, 1.0);
  vec3 test3 = test2.xxx; // error: Invalid member for vec2 expression

This commit updates the expression parser for the 2 and 3-component data
types accordingly.

Fixes #10496
2019-05-11 11:01:09 -07:00
Rémi Verschelde
c8994b56f9 Style: Apply new changes from clang-format 8.0
It seems to stay compatible with formatting done by clang-format 6.0 and 7.0,
so contributors can keep using those versions for now (they will not undo those
changes).
2019-04-09 17:09:48 +02:00
Juan Linietsky
ffb9f342a5 Ensure implicit conversions for scalar constants work in shaders, closes #26239 2019-02-26 23:21:37 -03:00