Commit Graph

155 Commits

Author SHA1 Message Date
ada4bcbe30 Fix invalid autocompletion pasting of shader param name 2019-10-08 18:33:22 +03:00
76324bec8d Prevent shader crash if name of variable overrides function name 2019-10-06 20:35:41 +03:00
d9087e1b44 Prevent shader crash if function call been used on constant 2019-10-06 18:20:05 +03:00
5a5a062d61 Fix few redefinition name errors for variable/param/function in shaders 2019-10-06 17:27:28 +03:00
1472fca951 Removed unnecessary shader error log messages 2019-10-02 12:37:22 +03:00
1333ea2a2d Implement shader array support for varyings 2019-09-14 18:23:25 +03:00
38601dd3e9 Fix shader crash when users miss the return statement 2019-08-28 11:32:33 +03:00
4dda253ee0 Implements switch to shaders 2019-08-23 14:43:09 +03:00
a525e3c5ce Implemented do/while loops for shaders 2019-08-13 18:39:55 +03:00
24417f1975 Force user to initialize local shader constants 2019-08-13 12:31:25 +03:00
9f7a166c35 Show that identifier found in function names 2019-08-09 21:15:33 -07:00
b24b3497d6 Implemented local shader constants 2019-08-05 10:35:53 +03:00
aab8da25ad Fix some code found by Coverity Scan and PVS Studio 2019-07-23 09:14:31 +02:00
cfcc9ee9c1 Allows to use non-constants in the local shader array initializer 2019-07-16 08:04:49 +03:00
9379cbc774 Added local array initializer 2019-07-16 07:13:37 +03:00
c37379456f Implemented local shader arrays 2019-07-15 15:57:39 +03:00
e7f5640632 Added missed "textureProjLod" shader built-in overload for 3D textures 2019-07-15 09:59:11 +03:00
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
a2b2da2454 Removed invalid mix shader overloads 2019-07-11 17:16:26 +03:00
4083d0c784 Fix "not" shader function return type 2019-07-09 15:55:00 +03:00
253cd73f1d Fix code completion for shader editor 2019-07-06 12:03:17 +08:00
c2d4abf62e Added constant support to shaders
Co-authored-by: DavidSichma <sichmada@gmail.com>
2019-06-01 13:41:07 +03:00
193837a8f5 Merge pull request #28829 from vreon/swizzle-up
Allow constructing larger data types by swizzling
2019-05-24 17:02:26 +02:00
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
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
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
ffb9f342a5 Ensure implicit conversions for scalar constants work in shaders, closes #26239 2019-02-26 23:21:37 -03:00
fd68bb2596 -Treat scalar conversions when calling functions as error, closes #24261
-Make shader editor display errors if exist when just opening it
-Make ShaderMaterial not lose parameters if opened in error.
2019-02-23 17:55:09 -03:00
8d51618949 Add -Wshadow=local to warnings and fix reported issues.
Fixes #25316.
2019-02-20 19:44:12 +01:00
d308eb091a Fix many asan and ubsan reported issues
This allows most demos to run without any ubsan or asan errors. There
are still some things in thirdpart/ and some things in AudioServer that
needs a look but this fixes a lot of issues. This should help debug less
obvious issues, hopefully.

This fixes #25217 and fixes #25218
2019-01-30 06:43:56 +01:00
b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
c1a53d8b06 Always treat exponent as float 2018-12-30 13:10:58 +01:00
33a7fae127 Allow *= operator between vec and mat types in shaders 2018-11-24 18:57:29 +01:00
631cf676c3 Removed noperspective (not in GLSL ES 3.0), do not write smooth if not specified. Fixes #20435 2018-11-21 23:07:09 -03:00
fb92c7b0fa Use hint_color when getting shader default params 2018-11-16 12:20:23 +01:00
d2e642b2dc Proper validation of out arguments in built-in shader functions, closes #16244 2018-11-14 18:56:19 -03:00
baa8678d2a Do not allow samplers where they dont belong (variables/return types), fixes #15133 2018-11-12 08:36:26 -03:00
9fcf9ee813 fixed uninitialized variables and false positives found by CppCheck 2018-10-25 20:38:17 +02:00
b902a2f2a7 Fixing warnings generated by MSVC
Fixes #22684.
2018-10-19 11:45:24 +02:00
7b081a7fc8 Fix warnings about unhandled enum value in switch [-Wswitch]
Fixes GCC 5 warnings of the form:

core/io/http_client.cpp:288:9: warning: enumeration value 'STATUS_SSL_HANDSHAKE_ERROR' not handled in switch [-Wswitch]
core/io/marshalls.cpp:806:9: warning: enumeration value 'AABB' not handled in switch [-Wswitch]

Those can be trivial cases where adding a default fallback is the solution,
or more complex issues/hidden bugs where missed values are actually meant
to be handled.
2018-09-27 18:34:30 +02:00
d95bbb8922 Fix warnings about set but unused variables [-Wunused-but-set-variable]
Fixes the following GCC 5 warnings:
```
drivers/gles2/rasterizer_canvas_gles2.cpp:814:8: warning: variable 'rt_size' set but not used [-Wunused-but-set-variable]
drivers/gles2/rasterizer_scene_gles2.cpp:2270:11: warning: variable 'vp_height' set but not used [-Wunused-but-set-variable]
drivers/gles2/rasterizer_scene_gles2.cpp:2673:22: warning: variable 'e' set but not used [-Wunused-but-set-variable]
drivers/gles2/rasterizer_scene_gles2.cpp:715:7: warning: variable 'no_cull' set but not used [-Wunused-but-set-variable]
drivers/gles2/shader_gles2.cpp:693:14: warning: variable 'cc' set but not used [-Wunused-but-set-variable]
drivers/gles3/rasterizer_canvas_gles3.cpp:1226:8: warning: variable 'rt_size' set but not used [-Wunused-but-set-variable]
drivers/gles3/rasterizer_scene_gles3.cpp:3039:10: warning: variable 'contrib' set but not used [-Wunused-but-set-variable]
drivers/gles3/rasterizer_scene_gles3.cpp:4504:32: warning: variable 'vp_height' set but not used [-Wunused-but-set-variable]
editor/editor_inspector.cpp:272:9: warning: variable 'guide_color' set but not used [-Wunused-but-set-variable]
editor/editor_themes.cpp:1067:14: warning: variable 'alpha3' set but not used [-Wunused-but-set-variable]
editor/editor_themes.cpp:263:8: warning: variable 'script_bg_color' set but not used [-Wunused-but-set-variable]
editor/plugins/collision_shape_2d_editor_plugin.cpp:326:11: warning: variable 'cpoint' set but not used [-Wunused-but-set-variable]
editor/plugins/mesh_editor_plugin.cpp:72:9: warning: variable 'size' set but not used [-Wunused-but-set-variable]
editor/plugins/shader_editor_plugin.cpp:471:12: warning: variable 'mpos' set but not used [-Wunused-but-set-variable]
editor/plugins/shader_editor_plugin.cpp:89:8: warning: variable 'basetype_color' set but not used [-Wunused-but-set-variable]
editor/plugins/shader_editor_plugin.cpp:90:8: warning: variable 'type_color' set but not used [-Wunused-but-set-variable]
editor/plugins/shader_editor_plugin.cpp:92:8: warning: variable 'string_color' set but not used [-Wunused-but-set-variable]
modules/visual_script/visual_script_editor.cpp:2521:7: warning: variable 'seq_connect' set but not used [-Wunused-but-set-variable]
platform/android/export/export.cpp:580:12: warning: variable 'styles_count' set but not used [-Wunused-but-set-variable]
platform/android/export/export.cpp:584:12: warning: variable 'styles_offset' set but not used [-Wunused-but-set-variable]
platform/osx/export/export.cpp:464:9: warning: variable 'zerr' set but not used [-Wunused-but-set-variable]
scene/2d/tile_map.cpp:260:10: warning: variable 'tcenter' set but not used [-Wunused-but-set-variable]
scene/3d/light.cpp:166:7: warning: variable 'editor_ok' set but not used [-Wunused-but-set-variable]
scene/3d/navigation.cpp:566:11: warning: variable 'closest_navmesh' set but not used [-Wunused-but-set-variable]
scene/gui/rich_text_label.cpp:869:8: warning: variable 'size' set but not used [-Wunused-but-set-variable]
scene/main/viewport.cpp:705:14: warning: variable 'xform' set but not used [-Wunused-but-set-variable]
scene/main/viewport.cpp:706:8: warning: variable 'ss' set but not used [-Wunused-but-set-variable]
scene/main/viewport.cpp:726:14: warning: variable 'xform' set but not used [-Wunused-but-set-variable]
scene/main/viewport.cpp:727:8: warning: variable 'ss' set but not used [-Wunused-but-set-variable]
scene/resources/material.cpp:430:7: warning: variable 'using_world' set but not used [-Wunused-but-set-variable]
servers/visual/shader_language.cpp:2026:7: warning: variable 'all_const' set but not used [-Wunused-but-set-variable]
servers/visual/visual_server_scene.cpp:1383:28: warning: variable 'z_max_cam' set but not used [-Wunused-but-set-variable]
```

Also fixes two [-Wunused-value] warnings:
```
scene/gui/text_edit.cpp:4405:20: warning: statement has no effect [-Wunused-value]
servers/visual/visual_server_scene.cpp:905:48: warning: value computed is not used [-Wunused-value]
```

Some of those are bugs and need further work, they are identified with
`// FIXME` comments.
2018-09-27 16:25:24 +02:00
16e5ef6894 Added missed min/max shader overloads 2018-09-21 20:10:03 +03:00
bff864818f Fixed an access after free in ShaderLanguage::_reduce_expression.
Passing an element reference of a vector to a push_back call to
that same vector can cause an access after free. This is because push_back
will resize the vector, reallocating if necessary, leaving the reference
referring to the freed memory.
Removed an instance of this usage here.
2018-09-19 14:28:19 +01:00
3cedec5f75 Set uniform default values in inspector 2018-09-13 23:05:33 +02:00
277b24dfb7 Make core/ includes absolute, remove subfolders from include path
This allows more consistency in the manner we include core headers,
where previously there would be a mix of absolute, relative and
include path-dependent includes.
2018-09-12 09:52:22 +02:00
f495cede0b Fix handling of shader constants that caused crash, closes #15166 2018-08-31 19:24:48 +02:00
52466d57e9 Make some debug prints verbose-only, remove others 2018-08-24 14:59:01 +02:00
9634d74d31 Allow matrixes in varyings 2018-08-19 15:36:58 +03:00
0fc1c4eda8 Merge pull request #20149 from Overblob/shader_float_typing
Shader language - Add optional float typings
2018-08-10 18:21:28 -03:00
b4d3f541e7 add 3D textures 2018-07-30 12:20:27 +02:00