Commit Graph

1972 Commits

Author SHA1 Message Date
Bastiaan Olij
8349d4fbd9 Add option to have viewport render into supplied texture 2019-04-06 08:24:58 +11:00
Rémi Verschelde
afe45f9796
Merge pull request #26847 from IronicallySerious/capitalise-drive-letter-case
Capitalise drive letters
2019-04-05 16:58:04 +02:00
K. S. Ernest (iFire) Lee
e3ef7f214a Add Open Asset Import Library to Godot.
FBX support and MMD (pmx) support.

Normals, Albedo, Metallic, and Roughness through Arnold 5 Materials for Maya FBX.

Maya FBX Stingray PBS support.

Importing FBX static meshes work.

Importing FBX animations is a work in progress.

Supports FBX 4 bone influence animations.

Supports FBX blend shapes.

MMDs do not have an associated animation import yet.

Sponsored by IMVU Inc.
2019-04-05 07:17:52 -07:00
Rémi Verschelde
cffbb99327
Merge pull request #27411 from KidRigger/raster_store
Added GLES2 RenderStorage Info calculations.
2019-04-05 15:22:22 +02:00
toasteater
7cbfce7a8c Respect keep_3d_linear when transparent_bg is on.
When transparent_bg is on, or the render target is too small,
Godot would skip postprocessing and disregard keep_3d_linear.

This fixes #26817.
2019-04-05 20:42:59 +08:00
Chaosus
8d12dfa24d Fix File opened with READ_WRITE on Windows
To allows use read and write anytime and in any order
2019-04-05 15:15:40 +03:00
Rémi Verschelde
25c1363a11
Merge pull request #27597 from marxin/fix-Wnon-virtual-dtor-warnings
Fix -Wnon-virtual-dtor warnings.
2019-04-02 18:25:02 +02:00
marxin
e7f22ebdcd Enable warnings=extra on clang and GCC testers.
And remove 2 warnings from warnings=extra.
2019-04-02 17:14:47 +02:00
marxin
f9f2413e69 Fix -Wnon-virtual-dtor warnings.
Example of the warning:
./core/script_language.h:198:7: warning: 'class ScriptCodeCompletionCache' has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor]
2019-04-02 14:07:29 +02:00
Rémi Verschelde
ba1a168659
Merge pull request #27505 from clayjohn/depth_bug
Keep DEPTH from causing compile error in GLES2
2019-04-01 14:53:18 +02:00
clayjohn
5056b4a02c keep DEPTH from causing compile error in GLES2 2019-03-28 22:14:41 -07:00
Daniel Rakos
849596c40c Fixed handling of depth texture so it's resolved and bound when needed
- Cleaned up and improved the code determining when we need to use a depth
  prepass (previously it wasn't executed in certain cases even if it was
  needed)
- Added code to prepare and bind the depth texture even when no depth prepass
  or MRTs (more precisely effect buffers) are used

Fixes #25870, #25535, and #25387.
2019-03-26 17:48:22 +01:00
Anish Bhobe
4839b17f93 Added GLES2 RenderStorage Info calculations.
Proper counting code has been added to update info struct.

Extra: Added the render_info_capture calculations.
Fixes: #27273
2019-03-25 23:08:23 +05:30
Pedro J. Estébanez
9c3ddf05cb Revert accidental commits
This reverts commit fb37284c02.
This reverts commit 4db0f51b9a.
2019-03-20 21:43:55 +01:00
Pedro J. Estébanez
fb37284c02 Create class for shared memory blocks [wip] 2019-03-20 20:44:43 +01:00
Rémi Verschelde
ac483345c4 GLES2: Convert unsupported float texture types to 8-bit types 2019-03-12 12:14:37 +01:00
Rémi Verschelde
3ebde6fac3 GLES2: Fix comments in previous commit that broke rendering (!)
Do NOT use "[vertex]" in a comment...

Kids, don't try to learn OpenGL on a production branch right before
a stable release.
2019-03-12 00:26:56 +01:00
Rémi Verschelde
74e224f2c7 GLES2: Add comments around EXT_shader_texture_lod check
To avoid reintroducing bugs as I did in #26928 and #26932.

texture2DLodEXT and textureCubeLodEXT are only for the fragment shader with
https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_shader_texture_lod.txt
In the vertex shader, texture2DLod and textureCubeLod are built-in.
2019-03-11 23:18:21 +01:00
Rémi Verschelde
764671d2d0 Revert "GLES2: Ensure extension checks for texture2DLod"
This reverts commit f5f565e3e4.
2019-03-11 23:12:49 +01:00
Rémi Verschelde
4cdb2d0502 Revert "GLES2: Fix regression on texture2DLod extension checks"
This reverts commit 8c2d38152f.
2019-03-11 23:12:39 +01:00
Rémi Verschelde
8c2d38152f GLES2: Fix regression on texture2DLod extension checks
These can't be done after any non-preprocessor token.
2019-03-11 21:59:20 +01:00
Rémi Verschelde
bc3c6338cf
Merge pull request #26928 from akien-mga/gles2-texture2DLod-ext-check
GLES2: Ensure extension checks for texture2DLod
2019-03-11 20:51:36 +01:00
Juan Linietsky
d9235be54b Enable seamless cubemap only if extension is present. 2019-03-11 16:49:04 -03:00
Rémi Verschelde
f5f565e3e4 GLES2: Ensure extension checks for texture2DLod
In canvas.glsl and scene.glsl, we were using texel2DFetch from stdlib.glsl,
which uses texture2DLod. In both cases, the stdlib.glsl include came before
the define of texture2DLod.

Might fix issues for drivers that don't support GL_EXT_shader_texture_lod.
2019-03-11 19:34:31 +01:00
Juan Linietsky
0eb61c3106 Undo #25557 (was not right anyway), fixes #26258 2019-03-11 14:58:51 -03:00
clayjohn
13eee31461 increase size of radiance map in gles2 2019-03-10 22:08:08 -07:00
Twarit
501fabe914 Capitalise drive letters
Matches how other application like to display the drive letters
2019-03-10 00:36:54 +05:30
clayjohn
63bb6808e6 gles2 reallocate texture when transparent is set 2019-03-09 10:56:51 -08:00
samHFIT
fbaee40b1d Added default color to mesh render 2019-03-08 18:26:58 +01:00
Juan Linietsky
6cb841edcb Ensure ETC2 textures are ALSO compressed to Po2 when have mipmaps. Fixes #26733 2019-03-07 12:16:20 -03:00
Juan Linietsky
7141c73ae8 Use glCopyTexSubImage2D instead of glCopyTexImage2D, should be safer and faster.
May be a solution to #26500
2019-03-07 00:14:13 -03:00
Juan Linietsky
53bec9deeb Fix and restore text, material and mesh previewers. 2019-03-04 15:53:18 -03:00
Rémi Verschelde
b753223ac2
Merge pull request #26567 from clayjohn/pixel_snap_artifact
Fixed pixel snap precision artifact
2019-03-04 16:58:08 +01:00
clayjohn
b804c491b7 fixed pixel snap precision artifact 2019-03-04 07:18:02 -08:00
Rémi Verschelde
453d239a69
Merge pull request #26532 from aqnuep/texture_array_fixes
Fixed TextureArray and Texture3D issues
2019-03-04 15:09:11 +01:00
Rémi Verschelde
91596f2f7a
Merge pull request #26574 from Chaosus/update_libpng
Update libpng (1.6.35 --> 1.6.36)
2019-03-04 13:49:11 +01:00
Chaosus
4655eb9b8b Silences annoying "iCCP: known incorrect sRGB profile" spam 2019-03-04 15:28:21 +03:00
Chaosus
5a89d08e3f Update libpng (1.6.35 --> 1.6.36) 2019-03-04 14:55:47 +03:00
Rémi Verschelde
b811207406 More style cleanup... 2019-03-04 10:11:29 +01:00
Juan Linietsky
4d875f115c Also take dof blur in consideration for using MRTs, fixes #26236 2019-03-03 16:28:07 -03:00
Juan Linietsky
34dd772054 Properly redraw if something animated is visible 2019-03-03 13:43:54 -03:00
Daniel Rakos
582f62c2b2 Fixed TextureArray and Texture3D issues
- Texture arrays and 3D textures weren't working previously due to an
  incorrect number of calls to glTexImage3D with incorrect level parameters.
  This change fixes that.
- Fixed the incorrect calculation of the byte size of layered textures.
- Added the layer count to the debugger info when viewing video memory usage.
2019-03-03 16:40:48 +01:00
Juan Linietsky
2f32a75d2e Skeletons can now choose between using local or world coords for processing, fixes #26468 2019-03-03 12:24:00 -03:00
Rémi Verschelde
467f18b738 Fix style issues from recent commits 2019-03-03 12:45:20 +01:00
Juan Linietsky
6dc2669361 Remove some windows prints 2019-03-02 11:58:42 -03:00
Rémi Verschelde
e930fb9a6e Fix typo in 7bad170
And cleanup.
2019-03-02 00:45:01 +01:00
Juan Linietsky
7bad1706c2 -Fix prepass state not being reset, closes #26348
-Send zero values for shader if no default exists
2019-03-01 19:28:24 -03:00
Juan Linietsky
834a984b08 Fixed RGTC (and other compressed) texture supports in GLES2. Fixes #26414 an probably others. 2019-03-01 18:18:55 -03:00
Juan Linietsky
ff34cd58ff Skeleton was not providing prober AABB in GLES2, fixed. 2019-03-01 17:41:15 -03:00
Juan Linietsky
51b80f6857 Fixed some crashers, closes #26393 2019-03-01 17:24:57 -03:00
Juan Linietsky
8a9119ad7f Fix non initialized variable. 2019-03-01 16:45:38 -03:00
Rémi Verschelde
3ece0004fa Remove unused include from previous commit 2019-03-01 20:12:35 +01:00
Juan Linietsky
3f681b0681 Clean up blend shape support in GLES2 and GLES3. 2019-03-01 16:01:44 -03:00
Juan Linietsky
8799f69b2c Strive for maximum compatibility in GLES2 regarding depth buffers. 2019-03-01 11:21:21 -03:00
Juan Linietsky
5efd693384 Massive improvement to GLES2 performance, rewrote most ShaderGLES2 class.
This fixes #26337
2019-02-27 23:49:34 -03:00
Juan Linietsky
057d3e874d Detect for 24 bits oes support on GLES2, closes #26344 2019-02-27 18:57:33 -03:00
Rémi Verschelde
372152220b
Merge pull request #26159 from marxin/fix-Wsuggest-attribute=format
Fix -Wsuggest-attribute=format warnings.
2019-02-27 09:23:26 +01:00
Rémi Verschelde
426a6fdc17
Merge pull request #26134 from marxin/fix-Wsign-compare
Fix -Wsign-compare warnings.
2019-02-27 09:22:47 +01:00
Rémi Verschelde
0ba75c195e Fix GCC 5 build after #26331 and cleanup style
Also cleanup after 01a3dd3.
2019-02-27 09:01:24 +01:00
marxin
e5f665c718 Fix -Wsign-compare warnings.
I decided to modify code in a defensive way. Ideally functions
like size() or length() should return an unsigned type.
2019-02-27 07:45:57 +01:00
marxin
aff84ec55d Fix -Wsuggest-attribute=format warnings. 2019-02-27 06:56:50 +01:00
Hein-Pieter van Braam
270bbee018
Merge pull request #26316 from marxin/fix-26100-Wextra-warning
Fix #26100 by casting to integer.
2019-02-27 00:19:32 +01:00
Juan Linietsky
01a3dd389c Remove references to OES24, which is incompatible with many devices. 2019-02-26 19:45:15 -03:00
marxin
7f289304af Fix #26100 by casting to integer. 2019-02-26 19:29:08 +01:00
Juan Linietsky
5eeb06ffd1 -Remove harcoded opengl extension testing from OS, ask rasterizer instead.
-Fixed a bug where etc textures were imported broken
2019-02-26 11:58:47 -03:00
Rémi Verschelde
e47b4bdc3d
Merge pull request #26286 from kaadmy/gles2_ortho_shadow
Fix orthographic shadow color when using GLES2
2019-02-26 08:50:42 +01:00
Juan Linietsky
a32b26dfa2 Several fixes to make GLES2 on HTML5 work much better.
Changed math class error reporting to be a bit less paranoid.
2019-02-25 21:47:29 -03:00
KaadmY
e1a34d0728 Fix orthographic shadow color when using GLES2 2019-02-25 13:57:23 -08:00
Juan Linietsky
31656301b2 Removed debug function. 2019-02-24 23:12:27 -03:00
Juan Linietsky
74d0ed2236 Many separate fixes to ensure non power of 2 textures work on GLES2, closes #25897 and many others 2019-02-24 22:36:53 -03:00
Hein-Pieter van Braam
a83e77fded Explicitly use floating point numbers in the our shaders
We need to be explicit about using floating point numbers in our shaders
for compatibility with mobile GLES drivers.
2019-02-24 23:35:10 +00:00
Juan Linietsky
ab8f3d7842 Fixed issue with buffers being wrongly cleared, closes #25484 2019-02-24 00:33:22 -03:00
Juan Linietsky
d79c8d7655 Fix vertex lighting in GLES2, closes #25365 2019-02-23 19:53:04 -03:00
Marcelo Fernandez
e1e4f96995 Fix WASAPI driver not working when the device doesn't supports the mix format 2019-02-23 00:01:17 -03:00
Hein-Pieter van Braam
5a27a456d8
Merge pull request #26158 from marcelofg55/wasapi_init_err
Extended WASAPI Initialize error message
2019-02-23 00:28:34 +01:00
Juan Linietsky
16e67388a2 Properly update materials when adding surface, fixes #23790 2019-02-22 16:27:00 -03:00
Marcelo Fernandez
548a66a621 Extended WASAPI Initialize error message 2019-02-22 14:56:15 -03:00
Juan Linietsky
aef5b36bfa Ensure that no depth test is used (specially in prepass) for objects that dont test or draw depth, fixes #25201 2019-02-22 14:48:10 -03:00
Juan Linietsky
95e34967d8 Fix precision issue with skeletons, closes #26057, closes #26062 2019-02-22 13:27:19 -03:00
Rémi Verschelde
513b7ddab6 Remove unused variable after aab8f44 2019-02-22 16:51:16 +01:00
Juan Linietsky
aab8f443f9 -Support DEPTH_TEXTURE in GLES2, fixes #25106
-Fix use of transparent framebuffers in GLES2
-Fix use of ambient color clearing in GLES2 when no environment exists.
2019-02-22 11:35:39 -03:00
Rémi Verschelde
c4b736d7ad Fix code style issues 2019-02-22 09:52:27 +01:00
Juan Linietsky
5784caae73 Make alpha 1.0 when using texscreen, fixes #25850 2019-02-21 19:43:34 -03:00
Rémi Verschelde
a01dca79e2
Merge pull request #26125 from JFonS/revert_light_vec_shadows
Revert back to ignoring LIGHT_VEC for 2D shadows
2019-02-21 18:49:14 +01:00
Juan Linietsky
8fd2eb6234 Many fixes regarding depth buffer clearing, closes #25994, closes #25975 2019-02-21 12:31:41 -03:00
JFonS
32e7641667 Revert back to ignoring LIGHT_VEC for 2D shadows 2019-02-21 12:16:10 +01:00
marxin
8d51618949 Add -Wshadow=local to warnings and fix reported issues.
Fixes #25316.
2019-02-20 19:44:12 +01:00
Rémi Verschelde
51c9ffaec0 Drop RtAudio driver on Windows
We've been defaulting to WASAPI since 3.0 and it's superior to RtAudio
in all aspects.

Obsoletes and closes #25503.

Also enable WINMIDI on MinGW, this had been missed initially.

Fix os_windows.cpp and crash_handler_windows.cpp which had weird
dependencies on RtAudio.h's includes (ugh).
2019-02-20 13:47:01 +01:00
Rémi Verschelde
19f79d04fb
Merge pull request #26005 from clayjohn/gles2_shadow_color
Added shadow_color property to gles2
2019-02-18 13:48:17 +01:00
clayjohn
9b0326d2f3 added shadow_color property to gles2 2019-02-17 23:57:57 -08:00
Juan Linietsky
be9b938398 Fix skeleton not being updated in shader, closes #25911 2019-02-16 19:39:35 -03:00
Juan Linietsky
d6a88bbc30 Remove all references to stencil, fixes problems on iOS. 2019-02-13 07:58:52 -03:00
Juan Linietsky
4f72ff4f1c On mobile, check for float and half float frameuffers supported, fixes #25324, fixes #25325. 2019-02-13 07:14:36 -03:00
Rémi Verschelde
5fc86026ca Fix typos with codespell
Using codespell 1.14.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
doubleclick
lod
nd
numer
que
te
unselect
EOF
$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2019-02-13 09:23:29 +01:00
Rémi Verschelde
55ca2a7c88
Merge pull request #25821 from akien-mga/sync-class-and-filenames
Ensure classes match their header filename
2019-02-13 08:49:39 +01:00
Rémi Verschelde
5aff990354 Fix infinite recursion in GLES2 _copy_texscreen
Bug introduced in 9430e68cf3,
likely a typo.
2019-02-12 23:38:33 +01:00
Juan Linietsky
9430e68cf3 Support SCREEN_TEXTURE in GLES2, fixes #25405 2019-02-12 18:49:57 -03:00
Juan Linietsky
b8319e7c60 Ability to vflip viewports in GLES2, fixes #24555
Also culling was reversed somehow.
2019-02-12 15:56:39 -03:00
Juan Linietsky
0d0d074c4d Use UVs with the nvidia rendering hack, fixes #24563 2019-02-12 15:31:10 -03:00
Juan Linietsky
4af8009b9d Fix fog in GLES2 by using epic hack, closes #25410 2019-02-12 14:35:16 -03:00
Rémi Verschelde
75dae1b9a9 Drivers, main, servers: Ensure classes match their header filename
Renamed:
- `drivers/alsamidi/alsa_midi.h` -> `midi_driver_alsamidi.h`
  (same for `coremidi` and `winmidi`)
- `main/timer_sync.h` -> `main_timer_sync.h`
- `servers/visual/visual_server_global.h` -> `visual_server_globals.h`
2019-02-12 14:39:47 +01:00
Juan Linietsky
8fd6a02d3e Missing canvas end left mask turned on, fixes #25666 2019-02-12 09:55:22 -03:00
Rémi Verschelde
b7cc2bb1e2 Core: Ensure classes match their header filename
Also drop some unused files.

Renamed:
- `core/dvector.h` -> `pool_vector.h`
- `core/io/resource_import.h` -> `resource_importer.h`
- `core/sort.h` -> `sort_array.h`
- `core/string_db.h` -> `string_name.h`

Dropped:
- `core/allocators.h`
- `core/os/shell.h`
- `core/variant_construct_string.cpp`
2019-02-12 13:34:25 +01:00
Rémi Verschelde
13c50e8aa5
Merge pull request #25481 from hpvb/fix-ubsan-asan-reports
Fix many asan and ubsan reported issues
2019-02-12 12:21:01 +01:00
Rémi Verschelde
279bfb3503
Merge pull request #25557 from kaadmy/master
Allow usage of depth texture when contact shadows are disabled
2019-02-12 11:38:44 +01:00
Rémi Verschelde
6e43bd4e85
Merge pull request #25623 from clayjohn/multimesh_color_bug
[GLES2] Initialize color buffer to white in gles2 multimesh
2019-02-12 11:31:45 +01:00
Rémi Verschelde
204f9083f4
Merge pull request #25682 from JFonS/fix_light_canvas_gles2
Fix canvas light shaders on GLES2
2019-02-12 11:27:21 +01:00
Rémi Verschelde
48bc7aedaa
Merge pull request #25779 from JFonS/fix_25581
Make LIGHT_VEC affect 2D shadows again
2019-02-12 11:24:27 +01:00
Juan Linietsky
7713ec8637
Merge pull request #25134 from staddy/master
Check for null pointer in RasterizerSceneGLES2::render_shadow
2019-02-12 07:04:12 -03:00
JFonS
076a342a4e Make LIGHT_VEC affect 2D shadows again 2019-02-10 21:14:32 +01:00
JFonS
5186d4f3ad Fix canvas light shaders on GLES2 2019-02-07 15:58:36 +01:00
clayjohn
f752aaf970 initialize color buffer to white in gles2 multimesh 2019-02-04 20:08:35 -08:00
Ignacio Etcheverry
9bd9d21358 Fix OS_Unix::set_environment 2019-02-04 00:44:37 +01:00
Ignacio Etcheverry
4e4e889c75
Merge pull request #25478 from neikeq/rr
Mono: Fix MonoPosixHelper not being found
2019-02-03 06:31:52 +01:00
Ignacio Etcheverry
41873ffa88 Added set_environment to OS class 2019-02-03 05:38:47 +01:00
KaadmY
d116705538 Allow usage of depth texture when contact shadows are disabled 2019-02-01 12:46:43 -08:00
Hein-Pieter van Braam
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
Rémi Verschelde
b77b536582 Cleanup and identify ShaderCompilerGLES[23] differences 2019-01-28 19:28:00 +01:00
Rémi Verschelde
1148a33b20 GLES2: Define LIGHT Spatial shader builtin
Fixes #25421.
2019-01-28 17:27:20 +01:00
Leon Krause
bd55ac8964
Merge pull request #25397 from lethiandev/fix-gles2-polygon-drawing
Fix polygon drawing on WebGL1
2019-01-28 04:02:25 +01:00
Juan Linietsky
2e5ede7a4e Properly discard fragments during depth prepass opaque pass, fixes #23321 2019-01-27 20:20:07 -03:00
Konrad Nowakowski
a0bdd9605a Fix polygon drawing on WebGL1 2019-01-27 23:09:18 +00:00
Juan Linietsky
0c60d4c682 Properly get proxy texture size for canvas light, fixes #17067 2019-01-27 16:57:05 -03:00
Juan Linietsky
953cd03ea6 Use transparent framebuffer only when set to transparent, closes #21827 2019-01-27 15:47:17 -03:00
Rémi Verschelde
e321004098
Merge pull request #25356 from muiroc/bug_web_comp_tex
Fix S3TC texture loading for WebGL
2019-01-27 09:41:50 +01:00
Rémi Verschelde
c3b0ee5941 Fix code style issues 2019-01-26 22:35:31 +01:00
muiroc
d1e399a971 fix s3tc support detection for webgl 2019-01-26 22:25:03 +01:00
Rémi Verschelde
d355469c1f
Merge pull request #25300 from neikeq/improve-thread-id
Improve custom thread numbering for POSIX
2019-01-26 20:33:18 +01:00
Hein-Pieter van Braam
a8510331c0 Fix compilation on UWP
It appears that MSVC and Mingw disagree about what conversions are legal
here. We just use the 'wide' version of the call and use our native
CharType instead of TCHAR.
2019-01-26 16:27:10 +01:00
Juan Linietsky
18c3ed245a Further fixes to avoid memory corruption, closes #25336 2019-01-26 10:47:04 -03:00
Juan Linietsky
973b68f396 Properly dispose of custom shaders, closes #19300 2019-01-25 19:28:27 -03:00
Juan Linietsky
6d4d55cd42 Do not use depth prepass if effects are disabled, fixes #25267 2019-01-25 15:58:07 -03:00
Bastiaan Olij
fe72e69c79
Revert "Fix GLES3 error 502 on iOS" 2019-01-26 01:51:41 +11:00
Juan Linietsky
677d4400de Ensure contact shadows are only used when lights use them. 2019-01-25 11:41:25 -03:00
Bastiaan Olij
da7f9e1ed1 Fix GLES3 error 502 on iOS 2019-01-26 00:52:54 +11:00
Juan Linietsky
5b5db08a51 Fix depth prepass in GLES2, closes #23321 2019-01-25 09:41:25 -03:00
Ignacio Etcheverry
6de04cf04c Improve custom thread numbering for POSIX
We lazily assign new IDs to threads that do not have one. This is the case for threads not created by the Godot API.
2019-01-25 00:59:07 +01:00
Juan Linietsky
b32298a660 Ensure WebGL uses highp by default, and fix some wrong mediump usages. Fixes #22962. 2019-01-24 18:58:42 -03:00
Juan Linietsky
fb7c526ec4 Fix crash with cube shadows in gles2, closes #22635 2019-01-24 17:51:49 -03:00
Juan Linietsky
42764ed252
Revert "Fix errors on iOS" 2019-01-24 17:15:52 -03:00
Juan Linietsky
7fa41f17a6 Makes screen texture work in GLES2 (2D for now), fixes #23604 2019-01-24 17:00:33 -03:00
Rémi Verschelde
148e62102b
Merge pull request #25257 from karroffel/tex3d-get-data-fix
implemented texture_get_data() for TextureLayered
2019-01-24 16:19:21 +01:00
Juan Linietsky
2d57ec2460 Fix problem with texture2Dlod, closes #25263 2019-01-23 17:06:37 -03:00
thomas.herzog
dddfe9a2df implemented texture_get_data() for TextureLayered 2019-01-23 16:12:29 +01:00
Rémi Verschelde
d747e30140
Merge pull request #25242 from BastiaanOlij/fix_ios_issues
Fix errors on iOS
2019-01-23 11:14:09 +01:00
Rémi Verschelde
2a45b298c1 Remove unused method in RasterizerStorageGLES2
Added in 4f4e46edd5 but not used in the end.
2019-01-23 10:31:05 +01:00
Bastiaan Olij
cab45f2f26 Fix errors on iOS 2019-01-23 13:38:19 +11:00
Juan Linietsky
4f4e46edd5 Implement unpacking for compressed vertex formats on GLES2 when not supported, fixes #22957 2019-01-22 21:57:09 -03:00
Juan Linietsky
4333a68ca0 Do not use shadow cubemaps if depth write is not supported to avoid errors, closes #25219 2019-01-22 11:07:26 -03:00
Juan Linietsky
46af4b0a4b Changes to GLES2 renderer to not use cube shadows if not available, fixes #25132 2019-01-22 10:05:23 -03:00
santouits
3c1cd2873b WebGL1 some changes
glRenderBufferStorage doesn't accept the _DEPTH_COMPONENT24_OES so I changed it to GL_DEPTH_COMPONENT16
https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/renderbufferStorage
https://www.khronos.org/registry/webgl/extensions/rejected/OES_depth24/

Enabled ext_shader_texture_lod extension. I guess it does the same like the GL_ARB_shader_texture_lod extension, but in WebGL1
https://www.khronos.org/registry/webgl/extensions/EXT_shader_texture_lod/

And last WebGL1 doesn't allow indexes not constant, so I changed it into a loop reading this:
https://stackoverflow.com/questions/19529690/index-expression-must-be-constant-webgl-glsl-error
2019-01-22 13:40:28 +02:00
Rémi Verschelde
3548b6b6b2
Merge pull request #25196 from santouits/webgl-backslashes
webgl1 in firefox doesn't like backslashes in #define directive
2019-01-21 23:02:32 +01:00
Juan Linietsky
6fa632b821 Add function to obtain filesystem type from DirAccess.
Change EditorFileSystem to not use directory modification times on FAT32, fixes #20946
2019-01-21 18:06:14 -03:00
santouits
e7e9a7cc6c webgl1 doesn't like backslashes in #define
According to
https://www.khronos.org/registry/OpenGL/specs/es/2.0/GLSL_ES_Specification_1.00.pdf
, backslashes aren't necessary supported as line continuation characters
in preprocessor directives
2019-01-21 21:41:39 +02:00
Rémi Verschelde
d4ab9d1d6e
Merge pull request #25115 from marxin/fix-19633-proper
Fix #19633 by proper store to &ubo_data.shadow_matrix[1234].
2019-01-21 17:40:56 +01:00
Rémi Verschelde
ad633b6c9c
Merge pull request #25117 from dragmz/patch-6
Replace CreateThread with QueueUserWorkItem
2019-01-21 16:18:58 +01:00
Rémi Verschelde
769341e180 Cleanup after @reduz :)
Fixes #25172.
2019-01-21 11:12:55 +01:00
Stanislav
dc7d9f8868 Check for null pointer in RasterizerSceneGLES2::render_shadow
Fixes #25131
2019-01-19 16:48:43 +03:00
marxin
d9eb6a5b20 Fix #19633 by proper store to &ubo_data.shadow_matrix[1234].
It is not valid in C++ to store into shadow_matrix1[16] with shadow_matrix1[16 * j]
(for j > 0). Even though there's a valid space in a struct after shadow_matrix1.
Knowing that GCC performs aggressive optimizations that eventually lead
to a wrong code. Code has been changed into union where one can either
use shadow_matrix[4 * 16], or individual shadow_matrix1, shadow_matrix2, etc. GCC pragma
is not needed any longer.
2019-01-19 10:25:01 +01:00
Rémi Verschelde
50c8019dcd Fix excluding GCC pragmas from Clang
Why the heck does Clang define __GNUC__...
2019-01-19 08:17:32 +01:00
Rémi Verschelde
a9fcd574f4 Only define GCC pragmas for GCC 2019-01-19 08:00:17 +01:00
Marcin Zawiejski
e65bce3083
Replace CreateThread with QueueUserWorkItem
Fixes #24869 stuttering on Windows by reusing long running threadpool threads instead of creating a new thread on each call to Thread::start.
2019-01-19 00:31:10 +01:00
Juan Linietsky
682fdf0f74 Use 16 bit indices on phones that dont support 32, fixes #19797 2019-01-18 17:30:12 -03:00
Juan Linietsky
e3ef52a270
Merge pull request #25101 from hpvb/fix-19633
Work around a GCC optimizer bug at -O3
2019-01-18 12:32:30 -03:00
Hein-Pieter van Braam
6793908a3f Work around a GCC optimizer bug at -O3
This bug has been reported upstream, once it gets fixed we'll add some
version guards to only disable this for specific GCC versions.

This fixes #19633
2019-01-18 16:31:37 +01:00
Rémi Verschelde
6384dd8f2c
Merge pull request #25070 from RedMser/shader_errors_linefix
Fix shader compile error line numbers starting at 0
2019-01-18 11:15:44 +01:00
Emanuele Fornara
e1be09d8fd Fix enum scope 2019-01-17 20:29:01 +01:00
RedMser
a285a1cfdf Fix shader compile error line numbers starting at 0. 2019-01-17 19:25:08 +01:00
Juan Linietsky
7478f468b2 Fixes to 2D lights, closes #24750 2019-01-17 10:40:36 -03:00
Juan Linietsky
ffcb5cd18c Ensure texture hints are obeyed, fixes #24875 2019-01-16 00:37:00 -03:00
Juan Linietsky
ca03d7e0d7 Ensure canvas copy texscreen will not crash if render target is configured without copy buffers. Closes #24749. 2019-01-15 15:14:43 -03:00
Rémi Verschelde
72f501de13 GLES2: Fix typo in project setting
It used a different name than the equivalent GLES3 parameter.
2019-01-15 13:26:54 +01:00
Juan Linietsky
9ed34d4423 Use GLES2 approach to vertex shading in GLES3, which has been more developed. Fixes #21852 2019-01-14 20:41:12 -03:00
Juan Linietsky
ee3eadf345 Implement black margins in GLES2, which was missing, fixes #24556 2019-01-14 19:00:36 -03:00
Rémi Verschelde
02ffc59270 GLES2: Make Nvidia flicker workaround opt-in
It has a big impact on 2D and text rendering performance (cf. #24466)
so the solution seems worse than the bug it aims to work around.

It's now opt-in via "rendering/quality/2d/gles2_use_nvidia_rect_flicker_workaround"
for those who need it and have a simple enough game for the performance
drop not to be an issue.

Fixes #24466.
2019-01-14 19:02:07 +01:00
Juan Linietsky
b3dc02b5df Was not properly re-setting light uniforms, fixes #24976 2019-01-14 12:04:26 -03:00
Juan Linietsky
6d8083ea65 Do not use the workaround for desktop nvidia on mobile and html5. 2019-01-14 11:24:00 -03:00
Daniel Rakos
1dd98baaa6 Mute errors on surface->index_array_len == 0 in the GLES3 renderer
This error is generated whenever rendering collision debug meshes.
There's no reason why this should be treated as an error as index-less
meshes are supported and used across the engine.
2019-01-13 11:46:40 +01:00
Rémi Verschelde
1185f4c4ac GLES2: Clarify why we exclude debug code on iOS
Supersedes and closes #24873.
2019-01-11 20:04:13 +01:00
Rémi Verschelde
e5f1d19352 Consistency in resource format saver/loader de-registration
Some used 'is_valid()' checks, others not. Validity is already checked in 'unref()',
and 'remove_resource_format_*()' has an ERR_FAIL condition on 'is_null()' already
(which shouldn't happen since we're only unregistering things that we previously
registered.

Also add missing GDCLASS statement in ResourceFormatLoaderVideoStreamGDNative,
missed in #20552 which was last amended before #19501 was merged.
2019-01-10 12:45:57 +01:00
Rémi Verschelde
e4b02513fe
Merge pull request #24301 from marcelofg55/default_device_pulseaudio
PulseAudio driver will now change the device if the default system device changes
2019-01-07 20:10:50 +01:00
Juan Linietsky
a3a537c2cf Fix background color rendering on GLES2 (linear should not be used) 2019-01-07 10:52:24 -03:00
Daeil Kim
ecf520b70e Change blend equation for canvasitems 2019-01-06 00:57:52 +09:00
Rémi Verschelde
d8f0087dc8
Merge pull request #24568 from Shinryuuji/fix-wrong-texture-array-target
Fix wrong default target for sampler2DArray
2019-01-04 16:14:29 +01:00
Rémi Verschelde
1504c96112
Merge pull request #24539 from BastiaanOlij/override_gl_position
Override GL_position
2019-01-04 15:40:05 +01:00
Rémi Verschelde
99c4faf837
Merge pull request #24575 from nekomatata/android-curve-texture
Fixed CurveTexture with GLES3 on Android
2019-01-04 15:31:08 +01:00
Marcin Zawiejski
4e73274837
Fix negative size rectangle drawing
Fixes rectangle being drawn as it was a non-negative size in case it actually is. This can be observed e.g. when drawing a negative size selection rectangle (i.e. press mouse button and move cursor up and left).
2019-01-02 14:47:28 +01:00
Rémi Verschelde
c7c87a0624
Merge pull request #24687 from DavidSichma/draw-rect-rot
fix draw_rect rotation
2019-01-01 19:01:18 +01:00
Rémi Verschelde
b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Rémi Verschelde
d1f3b622f0 Fix missing/malformed license headers 2019-01-01 12:46:36 +01:00
David Sichma
9ba6849cf4 fix draw_rect rotation 2018-12-31 20:56:10 +01:00
PouleyKetchoupp
a1160ff8e7 Fixed CurveTexture with GLES3 on Android 2018-12-30 19:49:55 +01:00
Rémi Verschelde
6a07d7f83f
Merge pull request #24661 from humblers/fix-unshaded-gles2
Fix unshaded light mode on GLES2
2018-12-30 13:48:01 +01:00
Rémi Verschelde
6c67ca3f5b
Merge pull request #24653 from avril-gh/fixes-syntax-error-in-scene-glsl
fixes glsl syntax error
2018-12-30 13:07:12 +01:00
Daeil Kim
8c99b6fb2f Change unshaded logic to match with GLES3 2018-12-30 02:02:37 +09:00
Avril
971c05dc5e fixes glsl syntax error 2018-12-29 15:37:50 +01:00
Bastiaan Olij
9f266cf7e5 Override GL_position 2018-12-29 23:56:50 +11:00
Bastiaan Olij
9055386de9 Fix texture type not being initialised 2018-12-29 23:44:28 +11:00
Juan Linietsky
a366d45856 -Implented 2D Mesh support for GLES2
-Implemented 2D Skeleton deform for GLES2
-Implement Multimesh support for GLES2, closes #20524, closes #21839
2018-12-27 20:41:04 -03:00
Shinryuuji
7bfddbec3a Fix wrong default target for sampler2DArray 2018-12-23 15:25:46 +01:00
PouleyKetchoupp
ab7759dbd1 Fixed fragment shader compilation error on android (S0001: Cannot compare 'float' with 'int') 2018-12-21 20:31:10 +01:00
Rémi Verschelde
57416bfbce GLES2: Define 'lowp' for OpenGL 2.1
Precision qualifiers are only used on OpenGL ES 2.0 and 3.0,
and while OpenGL 3.3 defines them for compatibility (but without
practical effect), they're missing from OpenGL 2.1, so we define
them to prevent compilation errors.

Fixes #24521.
2018-12-21 15:14:58 +01:00
Juan Linietsky
7b1cbe9874 Reverse RGBA shadow test on GLES2 2018-12-21 10:02:43 -03:00
Juan Linietsky
7535c5a56a Further GLES2 fixes 2018-12-21 10:01:16 -03:00
Juan Linietsky
9ea27ec032 Fixes to framebuffer formats for GLES2, closes #24518 2018-12-21 09:50:57 -03:00
Juan Linietsky
f3cb236f9d Remove usage of VAO, which does not work in GLES2 2018-12-20 17:28:01 -03:00
Rémi Verschelde
2709113c83
Merge pull request #24499 from akien-mga/android-thirdparty
Android: Better identify thirdparty C/C++ code
2018-12-20 19:12:58 +01:00
Juan Linietsky
3bdd1ff387 Support lights and shadows in GLES2, fixes #21853 2018-12-20 10:10:30 -03:00
Rémi Verschelde
6770357e47 Android: Better identify thirdparty C/C++ code
- The `cpu-features.{c,h}` code was only used by chance by the webm
  (libvpx) code, so I moved it there. It was actually introduced before
  that and wasn't in use, and libvpx just happened to be able to
  compile thanks to it being bundled.
  It could potentially be compiled on the fly from the Android NDK, but
  since we plan to replace the webm module by a GDNative plugin in the
  near future, I went the bundling route.

- `ifaddrs_android.h` is already provided in the Android NDK as
  `ifaddrs.h`, same as on other Unixes. Yet we cannot use it until we
  up the min API level to 24, where `getifaddrs` is first defined.
  I moved the files to `thirdparty/misc` and synced them with upstream
  WebRTC (only indentation changes and removal of `static` qualifiers).

Also removes dropped thirdparty files from COPYRIGHT.txt after changes
in #24105 and #24145.
2018-12-20 13:07:54 +01:00
Rémi Verschelde
a8faa55042
Merge pull request #24485 from volzhs/system-time-ms
Added OS.get_system_time_msecs()
2018-12-20 11:31:16 +01:00
volzhs
84d060c768 Added OS.get_system_time_msecs() 2018-12-20 18:50:50 +09:00
Rémi Verschelde
b3f6e54cc6 Style: Fix formatting in GLES2 shaders 2018-12-20 10:33:48 +01:00
Gitea
9f48094982 fix gles2 spotlight problem 2018-12-20 15:01:59 +08:00
Juan Linietsky
aa819a8538 Properly support light shaders in GLES2, fixes #21651 2018-12-19 10:25:45 -03:00
Juan Linietsky
bec76cfa19 Change how rects are drawn (and also will help batching eventually), to workaround problem in #9913 2018-12-18 17:50:35 -03:00
Juan Linietsky
89abfd40ed Reduce considerably the cubemap sizes on sky, to better match GLES3, fixes #21551 2018-12-18 13:01:46 -03:00
Juan Linietsky
85d44dd7b6 Actually respect the low quality cubemap filter on mobile, should fix crashes on mobile for #21551 but not sure on intel. 2018-12-18 12:52:50 -03:00
Rémi Verschelde
20379119c3
Merge pull request #24366 from BastiaanOlij/adjust_sky_orientation
Adding option to re-orient our sky
2018-12-16 22:56:43 +01:00
Rémi Verschelde
e73afd8dc9
Merge pull request #24382 from BastiaanOlij/fix_highp_lens_gles2
Fix highp issue in lens shader on gles2
2018-12-16 15:49:31 +01:00
Rémi Verschelde
9df7ed59fb
Merge pull request #19501 from Zylann/custom_loaders
Added basic support for custom resource savers and loaders
2018-12-16 14:26:56 +01:00
Bastiaan Olij
205bcff279 Fix highp issue in lens shader on gles2 2018-12-16 08:47:47 +11:00
Bastiaan Olij
f3dd3c0830 Adding option to re-orient our sky 2018-12-15 19:41:34 +11:00
Marc Gilleron
065e2670af Added basic support for custom resource savers and loaders 2018-12-15 05:34:53 +00:00
volzhs
7d387dc63f Request mic access only when is needed 2018-12-14 06:40:13 +09:00
QbieShay
7c55228f5c fixed uv missing in vertex shader of canvas. 2018-12-13 07:48:30 +01:00
Marcelo Fernandez
a6743414f8 PulseAudio driver will now change the device if the default system device changes 2018-12-12 11:17:46 -03:00
Rémi Verschelde
c8a5400654
Merge pull request #24241 from Rubonnek/move-to-initializer-list
Moved member variables to initializer list
2018-12-12 09:25:34 +01:00
Wilson E. Alvarez
08f22f1cf0
Moved member variables to initializer list 2018-12-11 18:33:01 -05:00
Rémi Verschelde
37e198c320
Merge pull request #23483 from clayjohn/fragment_camera_view
Make VIEW vector available in fragment shader
2018-12-11 20:44:41 +01:00
clayjohn
2042d6214e make VIEW vector available in fragment 2018-12-11 09:44:38 -08:00
muiroc
2827ee77d0 gles2 implemented VIEWPORT_SIZE builtin for spatial shader 2018-12-11 18:11:07 +01:00
Rémi Verschelde
022ae53191
Merge pull request #23126 from QbieShay/nine_uv
UV for ninepatch now maps to the proper  ninepatch mapped UV.
2018-12-11 16:05:20 +01:00
Rémi Verschelde
e2caaf1b6d
Merge pull request #23899 from BastiaanOlij/fix_particle_active
Remapped ACTIVE to shader_active, now works
2018-12-02 21:26:12 +01:00
Rémi Verschelde
f8bb7e0673
Merge pull request #24089 from clayjohn/gles2_camera_matrix_bug
Fixed gles2 camera_matrix bug
2018-12-02 20:48:08 +01:00
Bastiaan Olij
0b4b477674 Remapped ACTIVE to shader_active, now works 2018-12-01 21:10:04 +11:00
clayjohn
fd7607bf82 fixed gles2 camera_matrix bug 2018-11-30 10:20:16 -08:00
Rémi Verschelde
a741f83811
Merge pull request #23945 from DavidSichma/gles2artifact
Fixed black artifacts on SpatialMaterial [GLES2]
2018-11-28 16:21:59 +01:00
Rémi Verschelde
c7dd58a4d5
Merge pull request #23981 from khairul169/fix_gles2_clearcolor
GLES2: Set clear color based on env background mode when rendering scene and fix viewport transparent bg flag
2018-11-28 15:10:28 +01:00
Rémi Verschelde
06db076fc6
Merge pull request #24025 from aaronfranke/analyzer-errors
Fix many errors found by PVS-Studio
2018-11-28 14:08:50 +01:00
Rémi Verschelde
b47d4e1ba5
Merge pull request #24017 from eska014/rt-squish
Enable squish decompression in runtime builds
2018-11-28 12:40:43 +01:00
Leon Krause
93bed8cf57 Check for WebGL RGTC extension 2018-11-28 11:12:26 +01:00
Aaron Franke
cb01268562 Fix many errors found by PVS-Studio
Fix errors 2, 3, 4, 6, 8, 9, 11, 12, 13, 14, and 15.
2018-11-28 05:03:24 -05:00
Rémi Verschelde
dd06f6ee70 Fix style issues and signature mismatch 2018-11-28 10:21:07 +01:00
Juan Linietsky
af8d941c55 Added luminance capping to avoid glitches on small dots. closes #17996 2018-11-28 01:22:20 -03:00
Juan Linietsky
f2ae14f309 Attempt to avoid breaking people's workflows on the change from 8ba0d513fa 2018-11-27 18:13:36 -03:00
Juan Linietsky
e6bc152de8 NORMALMAP was not working (no normal being used detected), fixes #9263 2018-11-27 18:05:20 -03:00
khairul169
797bcfd44d GLES2: clear color on scene render 2018-11-27 01:47:34 +07:00
Marcelo Fernandez
b33464d1ae Fix possible error when switching audio devices with PulseAudio 2018-11-25 14:57:31 -03:00
David Sichma
1a7d1d88f8 Fixed black artifacts on SpatialMaterial [GLES2] 2018-11-24 16:51:32 +01:00
Rémi Verschelde
c5ebf38490 Prevent GLAPIENTRY redefine in rasterizer, now included in glad.h
We otherwise had conflicting defines since 1a41daf3.
2018-11-23 21:19:59 +01:00