Commit Graph

1447 Commits

Author SHA1 Message Date
lawnjelly 45b0b8bff8 GLES2 2d Batch rendering (across items)
2d rendering is currently bottlenecked by drawing primitives one at a time, limiting OpenGL efficiency. This PR batches primitives and renders in fewer drawcalls, resulting in significant performance improvements. This also speeds up text rendering.

This PR batches across canvas items as well as within items.

The code dynamically chooses between a vertex format with and without color, depending on the input data for a frame, in order to optimize throughput and maximize batch size. It also adds an option to use glScissor to reduce fillrate in light passes.
2020-04-04 17:13:58 +01:00
Yuri Roubinsky ee93c85ef1 Fix shader constant sorting 2020-03-31 14:32:33 +03:00
Rémi Verschelde acd14e645a Remove unused classes and stray headers
Found by reviewing headers with 1 or less matching includes:
```
find -name thirdparty -prune -o -name "*.h" -exec basename {} \; | sort -u > headers
for header in $(cat headers); do echo "$header: "; rg -l "#include \"(.*/)?$header\"" | wc -l; done > list-includes
```

(cherry picked from commit 9d24541597)
2020-03-25 11:38:54 +01:00
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
Rémi Verschelde cc70b2fa0a
Merge pull request from m4gr3d/external_texture_support_for_godot_3_2
Add support for opengl external textures
2020-03-17 16:29:14 +01:00
Michael Alexsander bd2a2a7e40 Turn Rect2's 'intersects_touch()' into an extra argument of 'intersects()'
(cherry picked from commit 8c8c48a7ad)
2020-03-06 23:51:26 +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
Bastiaan Olij 0ab8889c0d Exposing get_tracker_id for ARVRPositionalTracker to GDScript
(cherry picked from commit f0b1edef8b)
2020-03-04 12:52:47 +01:00
Rémi Verschelde ac63e5d613 Workaround WebM playback bug after AudioServer latency fixes
af9bb0ea15 fixed AudioServer's
`get_output_delay()` (which used to always return 0) while renaming it
to `get_output_latency()`. It now returns the latency from the
AudioDriver, which can be non-0.

While this was a clear bugfix, it broke playback for WebM files without
audio track. It seems like the playback code, even though it queried
the output delay to calculate a time compensation, was designed to work
even though the delay value was actually bogus. Now that it's correct,
it's not working.

As a workaround we comment out uses of the output latency, restoring
the behavior of Godot 3.1.

This code should still be reviewed by someone more versed in video
playback and fixed to properly account for the non-0 driver latency.

Fixes .

(cherry picked from commit da411d1625)
2020-02-14 16:02:34 +01: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
nathanwfranke 2d8289579a Fix bug where Control at origin with 0 size not rendered
Make a new method instead to make the code more elegant


Move Function down a bit


(cherry picked from commit e5cb557b73)
2020-02-14 15:56:12 +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
Rémi Verschelde bb6c0d3e8b doc: Complete documentation for VideoStreams
Also quick clean up of the matching C++ files.
2020-01-26 11:29:07 +01:00
clayjohn eb5cb5d016 Add project setting for max irradiance size 2020-01-25 13:27:13 -08:00
Yuri Roubinsky 3473a195fc Hides high-level functions from GLES2 shader autocompletion 2020-01-23 12:41:21 +03:00
Rémi Verschelde 46820527de
Merge pull request from Chaosus/restrict_uint_gles2
Disallow uint/uvec usage on GLES2 platform
2020-01-23 10:12:30 +01:00
Rémi Verschelde 37897dba80
Merge pull request from lawnjelly/ortho-shadow
Replace CameraMatrix::get_viewport_size with get_viewport_half_extents, shadow culling with ortho camera and other affected issues
2020-01-22 22:02:09 +01:00
lawnjelly eaf8e5ce52 Change CameraMatrix::get_viewport_size to get_viewport_half_extents
Fixes .
Fixes .

The viewport_size returned by get_viewport_size was previously incorrect, being half the correct value. The function is renamed to get_viewport_half_extents, and now returns a Vector2.

Code which called this function has also been modified accordingly.

This PR also fixes shadow culling when using ortho cameras, because the correct input for CameraMatrix::set_orthogonal should be the full HEIGHT from get_viewport_half_extents, and not half the width.

It also fixes state.ubo_data.viewport_size in rasterizer_scene_gles3.cpp to be the width and the height of the viewport in pixels as stated in the documentation, rather than the current value which is half the viewport extents in worldspace, presumed to be a bug.
2020-01-22 18:22:00 +00:00
Rémi Verschelde 4faaf6089a Remove unused #if 0'ed code 2020-01-21 21:41:54 +01:00
Yuri Roubinsky 4c456ef979 Disallow uint/uvec usage on GLES2 platform 2020-01-20 18:59:35 +03:00
Rémi Verschelde 837adb30fd Revert "Exposes capture methods to AudioServer + documentation"
Reverts the following commits:

- c81ec6f26d40b70283958a4ef3e216fb32cbaf14:
  "Exposes capture methods to AudioServer, variable renames for
  consistency, added documentation."
- 47c558b98abf842910c780294314326662410cdf:
  "Expose audio callbacks as signals."
- dabaa11b3c451e9b8f2cca7e563bd9ec51edb169:
  "Fix to make sure the capture buffers are deallocated at shutdown.
  Silences warnings."

Some documentation improvements were kept for pre-existing methods.

See rationale for reverting these changes in .
2020-01-20 13:18:01 +01: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
Rémi Verschelde 669cd46495
Merge pull request from clayjohn/multimesh-error
Add multimesh format max for proper error checking
2020-01-16 23:06:20 +01:00
Rémi Verschelde 6fd4afa96b
Merge pull request from raphael10241024/fix_shape_change
refresh area2d collision when shape changes
2020-01-16 22:56:16 +01:00
clayjohn 041fa57a88 Add multimesh format max for proper error checking 2020-01-16 13:31:17 -08:00
Yuri Roubinsky 5098232ee6 Disabled array initialization, const array and arr.length in shaders 2020-01-16 11:46:11 +03:00
clayjohn 3579187f90 Make texture_debug_usage thread safe 2020-01-12 15:22:54 -08: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 from Chaosus/shader_hex_support
Support for hex numbers in shaders
2020-01-08 10:01:49 +01:00
Hugo Locurcio 0cad2c0cd1
Add VisualServer methods to get the video adapter name and vendor
These methods can be used in scripts to retrieve the OpenGL
`GL_RENDERER` and `GL_VENDOR` strings (respectively).

This closes .
2020-01-06 00:37:56 +01:00
Rémi Verschelde fa82664419
Merge pull request from nekomatata/polygon2d-antialiasing-fix
Fixed antialiasing option for Polygon2D with concave/hollow shapes
2020-01-03 14:17:05 +01:00
PouleyKetchoupp 1591677eb8 Fixed antialiasing option for Polygon2D
Some cases were not handled properly for Polygon2D after making changes in common code to fix Line2D antialiasing. Added an option for drawing polygons to differentiate the two use cases.

Fixes 
2020-01-01 11:40:14 +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
Catchawink 86096313be Fixed an issue with recording audio.
Prior to this fix, AudioEffectRecordInstance::init() was called before recording_active is set to true in AudioEffectRecord::set_recording_active(). This was setting is_recording to false in AudioEffectRecordInstance, because is_recording updates to the value of recording_active in AudioEffectRecordInstance::_io_thread_process(). To fix this issue, AudioEffectRecordInstance::init() is now called after recording_active is set to true.
2019-12-12 10:28:46 -05:00
Rémi Verschelde 2845e6a21a
Merge pull request 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
Rémi Verschelde 4eff13d768 doc: Markup fixes for enums and constants 2019-12-06 23:09:20 +01:00
Rémi Verschelde 99b81aa1b9
Merge pull request from Eoin-ONeill-Yokai/multimeshfix
Added Missing Binding for `multimesh_create` to VisualServer
2019-12-05 06:49:43 +01:00
Eoin O'Neill f7f7544997 Added method binding for `multimesh_create` that was missing from VisualServer class. 2019-12-04 16:00:18 -08:00
Rémi Verschelde e77c34ab4a
Merge pull request from Chaosus/fix_shader_const
Fix expressions for global constants in shaders
2019-12-03 08:53:55 +01:00
Rémi Verschelde 10bae7c05b
Merge pull request from nekomatata/polygon-2d-antialiasing
Fixed antialiased option for Polygon2D
2019-12-03 07:51:16 +01:00
Yuri Roubinsky 8b8faf03d5 Fix expressions for global constants in shaders 2019-12-02 19:00:21 +03:00
bruvzg 2ef8c5fac5
iOS modular build and export implementation. 2019-12-01 21:57:18 +02:00
PouleyKetchoupp e6ebc43d72 Fixed antialiased option for Polygon2D / Line2D
Polygon2D:
The property wasn't used anymore after switching from canvas_item_add_polygon() to canvas_item_add_triangle_array() for drawing.

Line2D:
Added the same property as for Polygon2D & fixed smooth line drawing to use indices correctly.

Fixes 
2019-11-28 22:57:27 +01:00
Bojidar Marinov 2952dc3fe2
Fix crash when disabling a YSort node
Fixes 
2019-11-27 10:47:11 +02:00
Marcel Admiraal 6c3be2ca74 Fix Visual Studio throwing C4146 warning. 2019-11-18 15:14:04 +00:00
RaphaelHunter 8330e70e2c refresh area2d collision when shape changes, close 2019-11-14 15:48:41 +08:00
Rémi Verschelde 4b8feff594
Merge pull request from BastiaanOlij/msaa_ext_modes
Add MSAA mode for Quest
2019-11-11 11:46:50 +01:00
Bastiaan Olij 4e2343160c Add special external MSAA modes for GLES2 Rift S/Quest and OpenXR optimisation 2019-11-11 21:02:06 +11:00
Rémi Verschelde 2143f46df2
Merge pull request from qarmin/small_fixes
Memory leaks and crash fixes
2019-11-10 10:17:19 +01:00
Rafał Mikrut 7dda9309f9 Memory leak and crash fixes 2019-11-10 09:49:13 +01:00
PouleyKetchoupp 530665197f Fixed Particles restart after visibility has been set to off and on again
Make sure particles are processed during the same frame when visibility is set to on, in case they are still active from before and need to be restarted.

Fixed 
2019-11-09 09:51:17 +01:00
Rémi Verschelde 621dc7022f
Merge pull request from rxlecky/camera-replication
Game camera override
2019-11-08 10:02:18 +01:00
Marcel Admiraal fea58321e6 Fix 'r1' (and r2) may be used uninitialized warning in eq.cpp. 2019-11-08 08:37:06 +01:00
Rémi Verschelde 341f37aaed
Merge pull request from raphael10241024/fix_occluder
fix occluders positions error under canvas_layer
2019-11-05 14:41:28 +01:00
Yuri Roubinsky 5e44b5be81 Prevents usage of unsupported texture shader types in GLES2 2019-11-03 13:41:15 +03:00
Rémi Verschelde d89f24b6c9
Merge pull request from Chaosus/remove_gles2_switch_op
Removed switch operator from GLES2 shader back-end
2019-11-02 19:28:18 +01:00
Yuri Roubinsky 6b7f8558d9 Removed switch operator from GLES2 shader back-end 2019-11-02 12:43:32 +03:00
Rémi Verschelde af4fd9de9c
Merge pull request from qarmin/other_fixes
Fix some crashes, overflows and using variables without  values
2019-11-01 22:12:47 +01:00
Rafał Mikrut 9ddb3265e1 Fix some crashes, overflows and using variables without values 2019-11-01 16:16:31 +01: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
RaphaelHunter c4cea10402 fix occluders positions error under canvas_layer, close 2019-10-29 14:51:58 +08: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
Rémi Verschelde 5cdecb8227
Merge pull request from madmiraal/rigidbody-mode-change
Activate Body(2D)SW when switching to rigid or character mode.
2019-10-25 23:36:17 +02:00
Rafał Mikrut d468e28874 Fix leak in Physics2DServerSW 2019-10-24 20:12:46 +02:00
Erik 8b0546d93b Implement game camera override
Implemented uniform API in Viewport class to override 2D and/or
3D camera.

Added buttons in 2D and 3D editor viewport toolbars that override
the running game camera transform with the editor viewport camera
transform. Implemented via remote debugger protocol and camera
override API.

Removed LiveEditFuncs function pointers from ScriptDebugger class.
Since the debugger got access to the SceneTree instance (if one
exists), there is no need to store the function pointers. The live
edit functions in SceneTree are used directly instead. Also removed
the static version of live edit functions in SceneTree for the same
reason. This reduced the SceneTree -> Debugger coupling too since
the function pointers don't need to be set from SceneTree anymore.

Moved script_debugger_remote.h/cpp from 'core/' to 'scene/debugger/'.
This is because the remote debugger is now using SceneTree directly
and 'core/' classes should not depend on 'scene/' classes.
2019-10-23 02:51:32 +01:00
Marcel Admiraal 13798746e7 Activate Body(2D)SW when switching to rigid or character mode. 2019-10-15 07:41:13 +02:00
Rémi Verschelde d0628180ae
Merge pull request from clayjohn/free_pools
Properly free sky and lightmap caches in multithreaded server
2019-10-13 19:44:04 +02:00
clayjohn 62fb462165 Properly free sky and lightmap caches in multithreaded server 2019-10-13 09:31:00 -07:00
Rémi Verschelde 5d63cf1610
Merge pull request from madmiraal/body2d-can_sleep-default
Fix mismatch between RigidBody2D and Body2DSW can_sleep defaults.
2019-10-12 14:06:46 +02:00
Marcel Admiraal 42a9ae7a82 Fix mismatch between RigidBody(2D) and Body(2D)SW can_sleep defaults.
- Set Body2DSW can_sleep default to true.

- Set Body2D can_sleep default to true.
2019-10-12 12:11:11 +02:00
Saracen dabaa11b3c Fix to make sure the capture buffers are deallocated at shutdown. Silences warnings. 2019-10-11 23:40:43 +01:00
Yuri Roubinsky ada4bcbe30 Fix invalid autocompletion pasting of shader param name 2019-10-08 18:33:22 +03:00
Rémi Verschelde 45577e4233
Merge pull request from DavidSichma/rect_flip
Correctly flip texture src region
2019-10-08 16:15:45 +02: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
David Sichma f73e1fae37 Correctly flip texture src region 2019-10-05 16:51:06 +02:00
Yuri Roubinsky 1472fca951 Removed unnecessary shader error log messages 2019-10-02 12:37:22 +03:00
lawnjelly 236ce550c0 Showing and hiding geometry updates shadows
Showing and hiding geometry nodes was not showing or hiding their respective shadows. This fixes this by marking any affected lights as dirty.
Fixes 
2019-10-01 19:09:03 +01:00
Rémi Verschelde dec10dd776
Merge pull request from qarmin/some_error_explanation
Added some obvious errors explanations
2019-09-25 11:51:54 +02:00
qarmin 17732fe698 Added some obvious errors explanations 2019-09-25 10:28:50 +02:00
Rémi Verschelde 4f294b958f doc: Sync classref with current source
Fix a few missing bindings or unspecified argument names and default values.
2019-09-24 11:52:06 +02:00
Rémi Verschelde 159470df08
Merge pull request from godotengine/skin_support
Added skin support and simplified APIs to override bone position + glTF 2.0 import fixes
2019-09-23 15:02:15 +02:00
qarmin 50be65bf43 Changed some code found by Clang Tidy and Coverity 2019-09-22 18:45:08 +02:00
Rémi Verschelde fdc2463a1b
Merge pull request from luzpaz/typos
Fix misc. source comment typos
2019-09-20 17:09:05 +02:00
luz.paz 91ecd7b6a6 Fix misc. source comment typos
Found using `codespell -q 3 -S ./thirdparty,*.po -L ang,ba,cas,dof,doubleclick,fave,hist,leapyear,lod,nd,numer,ois,paket,seeked,sinc,switchs,te,uint -D ~/Projects/codespell/codespell_lib/data/dictionary.txt `
2019-09-19 14:36:52 -04:00
Rémi Verschelde 28265fb526
Merge pull request from azagaya/light-data
Create shadow_vec for altering shadow computation
2019-09-19 20:03:04 +02:00
Juan Linietsky d81ddaf33e Added skin support and simplified APIs to override bone position. 2019-09-18 19:46:32 -03:00
Chaosus 1333ea2a2d Implement shader array support for varyings 2019-09-14 18:23:25 +03:00
azagaya b835868067 Create shadow_vec for altering shadow computation
In 2.1 and 3.0, light_vec could be modified for altering shadow_computations.
But it broke shadows when rotating light. shadow_vec would do the same, but without breaking
shadows in rotated lights if not used.

Add inverse light transformation to shadow vec, so it's not affected when rotating lights;

Added usage define for shadow vec.

For shadow vec working properly when rotating a light, it's needed to multiply it by light_matrix normalized. Added usage define in order to don't do that if shadow_vec not used.
2019-09-06 13:55:49 -03:00
Yuri Roubinsky 96ea1e6fb0
Merge pull request from Chaosus/shader_func_return_fix
Fix shader crash when users miss the return statement
2019-08-28 16:39:33 +03:00
Yuri Roubinski 38601dd3e9 Fix shader crash when users miss the return statement 2019-08-28 11:32:33 +03:00
follower 8499033354
Typo fix: "differt" -> "different" 2019-08-28 19:12:54 +12:00
Rémi Verschelde f2777c04c3
Merge pull request from Chaosus/shader_switch
Implements switch flow control operator in shaders
2019-08-24 14:47:44 +02:00
Andrii Doroshenko (Xrayez) 718f09ad20 Fix uninitialized inertia value in Body2DSW 2019-08-23 20:13:57 +03:00
Yuri Roubinski 4dda253ee0 Implements switch to shaders 2019-08-23 14:43:09 +03:00
RaphaelHunter 74713fe970 Fix custom inertia in physics2d, closes#30838 2019-08-22 20:30:03 +08:00
Rémi Verschelde 6c607c3564
Merge pull request from IAmActuallyCthulhu/pr/remove-redundant-author-comments
Remove redundant author doc comments
2019-08-14 13:45:54 +02: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
IAmActuallyCthulhu 82b9557803
Remove redundant author doc comments 2019-08-12 04:26:38 -05:00
Saracen d8ba9f1824 Fix recording bus regression. 2019-08-12 08:10:56 +01:00
Cameron Reikes 9f7a166c35 Show that identifier found in function names 2019-08-09 21:15:33 -07:00
Michael Alexsander Silva Dias 5ca7460421 Replace 'ERR_EXPLAIN' with 'ERR_FAIL_*_MSG' in "main" and "servers" directories 2019-08-09 11:27:39 -03:00
Rémi Verschelde 7b514d920d
Merge pull request from Chaosus/shader_local_const
Implemented local shader constants
2019-08-07 15:14:35 +02:00
Rémi Verschelde ba541bceca
Merge pull request from qarmin/coverity_bugs
Change some code proposed by Coverity and Cppcheck
2019-08-07 13:49:33 +02:00
Rémi Verschelde af935af38d
Merge pull request from SaracenOne/expose_audio_capture
Exposes capture methods to AudioServer + documentation
2019-08-07 13:27:25 +02:00
qarmin e0b5b21863 Add some code changes/fixes proposed by Coverity and Clang Tidy 2019-08-07 12:54:30 +02:00
Yuri Roubinski b24b3497d6 Implemented local shader constants 2019-08-05 10:35:53 +03:00
Rémi Verschelde 507e41e698
Merge pull request from nekomatata/fix-regression-godot-physics
Fixed regression in Godot Physics
2019-07-31 19:47:33 +02:00
PouleyKetchoupp 53ac260d19 Reverted fix that makes sense for collision_solver_2d_sat but not for the 3d version
(original commit: aab8da25ad)

Fixes 
2019-07-31 17:36:09 +02:00
IAmActuallyCthulhu 4e617d2ca2
Correct typo and format of comments 2019-07-30 16:43:07 -05:00
santouits 472cda9047 Remove physics thread getting the gl context 2019-07-27 22:08:10 +03:00
Michael Alexsander Silva Dias 12ae7a4c02 Update some dead links in the codebase 2019-07-23 21:06:12 -03:00
Rémi Verschelde 4c943cca2c
Merge pull request from qarmin/fixed_static_analiser_code
Fix some code found by Coverity Scan and PVS Studio
2019-07-23 15:08:44 +02:00
qarmin aab8da25ad Fix some code found by Coverity Scan and PVS Studio 2019-07-23 09:14:31 +02:00
Rémi Verschelde fec28da0ad
Merge pull request from qarmin/fix_arvr_crash_at_exit
Fix ARVRServer crash at exit
2019-07-20 12:41:56 +02:00
Rémi Verschelde d15cf7b672
Merge pull request from qarmin/lgtm_coverage
Changed some code reported by LGTM and Coverity
2019-07-20 12:00:13 +02:00
qarmin 6cbaf7662f Changed some code showed in LGTM and Coverage 2019-07-20 08:09:57 +02:00
Rémi Verschelde df62bfdd49
Merge pull request from Calinou/tweak-audio-cutoff-property-hints
Tweak audio cutoff property hints to allow reasonable values only
2019-07-16 08:54:25 +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
Saracen 47c558b98a Expose audio callbacks as signals. 2019-07-16 04:10:26 +01:00
Saracen c81ec6f26d Exposes capture methods to AudioServer, variable renames for consistency,
added documentation.
2019-07-15 15:12:29 +01: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
Hugo Locurcio 9387114ce1
Tweak audio cutoff property hints to allow reasonable values only
This also makes all cutoff property hints consistent.

This closes .
2019-07-12 22:44:17 +02: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
Rémi Verschelde 34d7484039
Merge pull request from qarmin/const_reference
Pass by reference to const
2019-07-10 15:43:15 +02:00
qarmin 01cc7a996b Use reference to constant in functions 2019-07-10 11:54:12 +02:00
Chaosus 4083d0c784 Fix "not" shader function return type 2019-07-09 15:55:00 +03:00
Rémi Verschelde af80182016
Merge pull request from qarmin/small_fixess
Fixes minor issues found by static analyzer
2019-07-08 08:16:50 +02:00
qarmin 9a77d748c0 Fixes minor issues found by static analyzer 2019-07-07 23:08:51 +02:00
Ibrahn Sahir 4e4697b1c4 Added release function to PoolVector::Access.
For clarity, assign-to-release idiom for PoolVector::Read/Write
replaced with a function call.
Existing uses replaced (or removed if already handled by scope)
2019-07-06 12:04:27 +01:00
geequlim 253cd73f1d Fix code completion for shader editor 2019-07-06 12:03:17 +08:00
qarmin a4ae7131c3 Fix ARVRServer crash at exit 2019-07-05 21:14:43 +02:00
Rémi Verschelde 916c5c1e4b
Merge pull request from bojidar-bg/28501-ysort-modulate
Ensure that nested YSort preserves intermediate modulate values
2019-07-05 09:41:11 +02:00
Bojidar Marinov c3495ef652
Ensure that nested YSort preserves intermediate modulate values
Fixes 
2019-07-04 17:57:47 +03:00
Bojidar Marinov f7dad789e9
Fix various memory leaks and errors 2019-07-02 17:23:54 +03:00
Rémi Verschelde d40dbd6d11
Merge pull request from raphael10241024/add_physics_2d_optimize
add 2d physic optimization similar to 3d physics
2019-07-01 17:08:05 +02:00
Rémi Verschelde 6b30f284a0
Merge pull request from Dentrax/directed-by-qarmin
Fix some editor crashes
2019-07-01 14:59:29 +02:00
Rémi Verschelde 380bf04566
Merge pull request from YeldhamDev/global_rate_scale
Add 'global_rate_scale' to the AudioServer
2019-07-01 13:53:04 +02:00
Furkan Türkal 7d8d337b2c fix some crashes 2019-07-01 14:28:29 +03:00
Rémi Verschelde 538c8eec15
Merge pull request from santouits/mt-pools
Free server id pools directly on closing
2019-06-27 15:15:15 +02:00
santouits 7aa4622222 Free server id pools directly.
When closing the game, we flush the command queue but after we are pushing the freeing calls of the id pool to the
command queue and they are never being run. Now we free them directly.
2019-06-27 03:25:36 +03:00
qarmin 4e5310cc60 Some code changed with Clang-Tidy 2019-06-26 15:08:25 +02:00
yakun.zhang 434fd71d2a add 2d physic optimization simlilar to 3d physics 2019-06-21 19:33:01 +08:00
Rémi Verschelde 5c66771e3e
Merge pull request from qarmin/fix_some_always_same_values
Remove always true/false values
2019-06-20 21:10:10 +02:00
qarmin 072e40368e Fix always true/false values 2019-06-20 16:59:48 +02:00
Rémi Verschelde cf76b713cb
Merge pull request from Meirinha/master
Added UV and UV2 to shader function light() built-in, fixes issue 
2019-06-20 12:46:54 +02:00
Rémi Verschelde 5a29be31b3
Merge pull request from samH-FIT/MacroUpdate
Made use of semicolons after GDCLASS more consistent, added semicolons where I found them missing.
2019-06-19 22:59:49 +02:00
Rémi Verschelde 922a4f5413
Merge pull request from BastiaanOlij/fix_cameraserver_const
Made constants fully upper case in camera server
2019-06-19 20:20:47 +02:00
Michael Alexsander Silva Dias 1c2ba35074 Add 'global_rate_scale' to the AudioServer
Closes .
2019-06-19 11:36:46 -03:00
JohnJLight 38d3bfe971 Made use of semicolons more consitent, fixed formatting 2019-06-19 15:24:31 +02:00
Rémi Verschelde 30cbe28677
Merge pull request from KoBeWi/angular_dank
Make angular_damp of new Area nodes match the global default
2019-06-19 15:00:44 +02:00
Bastiaan Olij 4ebedb5f11 Made constants fully upper case in camera server 2019-06-19 22:24:54 +10:00
Rémi Verschelde 0eb8484c8a
Merge pull request from mdahlgrengadd/master
Make FFT size and oversampling adjustable in smbPitchShifter, add windowing to smbFFT
2019-06-19 12:31:09 +02:00
Rémi Verschelde 24ee8c3566 Add script to fix style issues and copyright headers
This is only meant to check the validity of the whole codebase every
now and then, or to apply clang-format config changes when relevant.
2019-06-17 13:35:47 +02:00
Rémi Verschelde 6ba1b4e371
Merge pull request from Calinou/boot-splash-no-filter-option
Add an option to disable boot splash filtering
2019-06-16 10:39:53 +02:00
Hugo Locurcio 786a7341a7
Add an option to disable boot splash filtering
Disabling filtering is usually desired in projects using a pixel art style.

This closes .
2019-06-15 23:53:39 +02:00
BastiaanOlij 02ea99129e Adding a new Camera Server implementation to Godot.
This is a new singleton where camera sources such as webcams or cameras on a mobile phone can register themselves with the Server.
Other parts of Godot can interact with this to obtain images from the camera as textures.
This work includes additions to the Visual Server to use this functionality to present the camera image in the background. This is specifically targetted at AR applications.
2019-06-15 21:30:32 +10:00
Rémi Verschelde c8db517993
Merge pull request from Chaosus/shader_const
Added constant support to shaders
2019-06-12 14:26:45 +02:00
Rémi Verschelde 30e8b53c38
Merge pull request from akien-mga/fix-headers
Add missing license headers
2019-06-11 19:01:40 +02:00
Rémi Verschelde f18121824c Add missing license headers
Make `fix_headers.py` script compatible with Python 3.
2019-06-11 15:33:32 +02:00
Rémi Verschelde 6d16f2f053 Fix error macro calls not ending with semicolon
It's not necessary, but the vast majority of calls of error macros
do have an ending semicolon, so it's best to be consistent.
Most WARN_DEPRECATED calls did *not* have a semicolon, but there's
no reason for them to be treated differently.
2019-06-11 14:49:34 +02:00
Martin Dahlgren 17adece6ad Add windowing before FFT to avoid flickering spectrogram 2019-06-03 12:58:33 +02:00
Martin Dahlgren f78c7377c9 Make FFT size and oversampling adjustable for pitchshifting 2019-06-03 12:56:45 +02:00
Chaosus c2d4abf62e Added constant support to shaders
Co-authored-by: DavidSichma <sichmada@gmail.com>
2019-06-01 13:41:07 +03:00
Arthur Brainville 147b2403e4
audio_server.h : fix typo in comment (minor)
Line 152 : `//re-expose this her,` should be `//re-expose this here`
2019-05-30 13:47:18 +02:00
qarmin 66a36ba474 Fix some unincialised variables 2019-05-28 19:12:19 +02:00
Rémi Verschelde 6305030ee5
Merge pull request from raphael10241024/inertia
Fix some shape2d get_moment_of_inertia error
2019-05-28 10:23:55 +02:00
Rémi Verschelde 01c41c782b
Merge pull request from clayjohn/GLES2-optimization
GLES2: Allow Viewports to render directly to screen
2019-05-24 17:31:44 +02:00
Rémi Verschelde 193837a8f5
Merge pull request from vreon/swizzle-up
Allow constructing larger data types by swizzling
2019-05-24 17:02:26 +02:00
Martin Dahlgren 47f628a013 Fix getting max magnitude in AudioEffectSpectrumAnalyzer 2019-05-24 12:40:04 +02:00
Bastiaan Olij 3ea778e66e Implement shadow to opacity 2019-05-21 20:07:46 +10:00
yakun.zhang 1808c5113a Fix some shape2d get_moment_of_inertia error 2019-05-20 12:19:14 +08: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
clayjohn 65c211d303 Implement ability to render viewports directly to screen 2019-05-13 15:20:15 -07:00
Rémi Verschelde 86a74e2cb3
Merge pull request from clayjohn/gles2-proj-mat-bug
Fixes bug when setting projection matrix in shader GLES2
2019-05-13 17:59:40 +02:00
Rémi Verschelde 0594db96a9
Merge pull request from bojidar-bg/x-audio-record-passthrough
Fix AudioEffectRecord messing up the effect stack by not writing to dst_frames
2019-05-13 13:50:34 +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 
2019-05-11 11:01:09 -07:00
Bojidar Marinov 9285aad8b3
Fix AudioEffectRecord messing up the effect stack by not writing to dst_frames 2019-05-09 18:03:08 +03:00
Aaron Franke 702b539405
Change "ID" to lowercase "id"
Reasoning: ID is not an acronym, it is simply short for identification, so it logically should not be capitalized. But even if it was an acronym, other acronyms in Godot are not capitalized, like p_rid, p_ip, and p_json.
2019-05-09 06:25:32 -04:00
Rémi Verschelde 262924296b
Merge pull request from aqnuep/kinematicbody_fixes
KinematicBody performance and quality improvements
2019-05-02 18:03:58 +02:00
Rémi Verschelde dd2cd06165
Merge pull request from aqnuep/bake_mode_affect_gi_prove
Disable GI probe capturing lights with bake mode disabled
2019-04-30 18:33:34 +02:00
clayjohn e37d723695 fixes bug when setting projection matrix 2019-04-30 08:36:38 -07:00
LATRio 0562b78f40 Properly expose PhysicsServer methods 2019-04-30 20:42:07 +09:00
Rémi Verschelde 0327d57cfd
Merge pull request from BastiaanOlij/arvr_notifications
Send notifications to ARVRInterfaces
2019-04-30 12:05:46 +02:00
Rémi Verschelde f40c62fa29
Merge pull request from ShyRed/fixdisabled2dcollisions
Allow adding disabled shapes
2019-04-30 11:43:11 +02:00
Rémi Verschelde 18e88c8563
Merge pull request from aaronfranke/mono-equal-approx
[Core] [Mono] Improve and use approximate equality methods
2019-04-29 10:16:46 +02:00
Juan Linietsky c2027c8233 Added functions to further improve music timing 2019-04-27 14:05:16 -03:00
Juan Linietsky af9bb0ea15 Clean up latency related functions 2019-04-27 12:23:05 -03:00
Bastiaan Olij 1a1b35721a Send notifications to ARVRInterfaces 2019-04-27 08:39:21 +10:00
Aaron Franke b659e1eb2b
Use approximate equallity methods in many places 2019-04-25 13:20:29 -04:00