Hein-Pieter van Braam
0e29f7974b
Reduce unnecessary COW on Vector by make writing explicit
...
This commit makes operator[] on Vector const and adds a write proxy to it. From
now on writes to Vectors need to happen through the .write proxy. So for
instance:
Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;
Failing to use the .write proxy will cause a compilation error.
In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.
_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
2018-07-26 00:54:16 +02:00
Todd Ross
9423f23ffb
allow comments and whitespace before shader_type declaration
2018-07-26 00:17:57 +02:00
Rémi Verschelde
237148e80f
Merge pull request #18368 from Gamblify/RasterizerEngineSync
...
sync rasterizers with engine
2018-07-25 20:33:37 +02:00
Chaosus
ca0a6c3fca
Added conversions between matrixes in shaders
2018-07-25 18:14:52 +03:00
Rémi Verschelde
f778bd8e69
Merge pull request #20404 from TigerCaldwell/master
...
Ensured consistency between RigidBody, PhysicsDirectBodyState, PhysicsServers and their 2D counterparts
2018-07-25 08:25:34 +02:00
Tiger Caldwell
40c7716586
Modified RigidBody, PhysicsDirectBodyState, PhysicsServer, and their respective 2D counterparts to be more consistent and to include more useful methods.
...
RigidBody:
- Added add_central_force
- Added add_force
- Added add_torque
- Added apply_central_impulse
RigidBody2D:
- Added add_central_force
- Added add_torque
- Added apply_central_impulse
- Added apply_torque_impulse
PhysicsDirectBodyState:
- Added apply_central_impulse
Physics2DDirectBodyState:
- Added add_central_force
- Added add_force
- Added add_torque
- Added apply_central_impulse
- Added apply_impulse
- Added apply_torque_impulse
PhysicsServer:
- Added body_add_force
- Added body_add_torque
- Added body_add_central_force
- Added body_apply_central_impulse
Physics2DServer:
- Added body_add_torque
- Added body_add_central_force
- Added body_apply_central_impulse
- Added body_apply_torque_impulse
Also fixed some small bugs along the way
2018-07-24 05:00:56 -04:00
Wilson E. Alvarez
a22e746bc3
Removed unnecessary assignments
2018-07-24 09:51:03 +02:00
Juan Linietsky
dc976cac57
Merge pull request #12678 from AndreaCatania/soft
...
Soft body
2018-07-23 16:04:32 -03:00
AndreaCatania
17ebbfb56d
Implemented Soft body
...
- Soft Body Physics node
- Soft Body Rendering
- Soft body Editor
- Soft body importer
2018-07-23 20:50:23 +02:00
Juan Linietsky
ec85fd554b
Fix issues with CPUParticles and related conversion from Particles. Closes #20126
2018-07-23 12:28:50 -03:00
AndreaCatania
fbf3ad2841
Added some API to visual server so from control VRAM buffer is more easy
2018-07-23 12:59:27 +02:00
Juan Linietsky
1ad20dc2f1
Merge pull request #12403 from AndreaCatania/phymat
...
Physics material
2018-07-23 07:37:03 -03:00
Juan Linietsky
2b9902db06
-Fix disable_3d flag
...
-Add extra flag optimize=[size,speed] to be able to prioritize size
2018-07-21 17:26:49 -03:00
Juan Linietsky
c69de2ba46
-Project/Editor settings now use new inspector
...
-Project/Editor settings now show tooltips properly
-Settings thar require restart now will show a restart warning
-Video driver is now visible all the time, can be changed easily
-Added function to request current video driver
2018-07-19 19:02:04 -03:00
Alex Roman
2ce1118faa
Add disable ambient light flag to shaders and materials
2018-07-17 21:30:43 +02:00
Marcelo Fernandez
9f6536bd0a
Add Audio Server profiling time to the profiler
2018-07-17 10:11:56 -03:00
Max Hilbrunner
044737246b
Merge pull request #20215 from marcelofg55/audio_latency
...
Added Performance.AUDIO_OUTPUT_LATENCY
2018-07-17 14:37:12 +02:00
Rémi Verschelde
1d84c4f870
Merge pull request #20158 from Overblob/Fixed_shader_parsing_error_log
...
Fixed shader parsing error log
2018-07-17 14:16:56 +02:00
Juan Linietsky
13a801430b
Further fixes to KinematicBody2D API, support for sync motion in moving objects
2018-07-17 08:58:04 -03:00
Marcelo Fernandez
3930e755e4
Added Performance.AUDIO_OUTPUT_LATENCY
2018-07-17 08:54:59 -03:00
Juan Linietsky
063a22851a
-Added support for raycast in KinematicBody2D
...
-Added support for snapping in KinematicBody2D
2018-07-16 20:04:07 -03:00
Juan Linietsky
de910f8c26
Finally figured out how to implement AnimatedTexture properly.
2018-07-16 11:43:49 -03:00
Juan Linietsky
f6ce73f724
Visual Shaders are back.
2018-07-14 18:16:18 -03:00
Overblob
7a74d310aa
Fixed error due to bad cursor handling when parsing shader code
...
Fixed completion error log thrown on "no auto-completion found" for typings with no completion.
2018-07-14 19:59:11 +02:00
Max Hilbrunner
d488c35efa
Merge pull request #20026 from taylorjoshuaw/fix-window-height-crash
...
Temporary fix to issue #19628 and #19207
2018-07-12 05:29:03 +02:00
Max Hilbrunner
118d4f3115
Merge pull request #19540 from muiroc/cylinder
...
Cylinder resource and collision shape (bullet only)
2018-07-12 05:09:37 +02:00
Josh Taylor
892a4b175a
Changed minimum visible viewport size
...
When the viewport's size.y becomes lower than 2, the storage->frame.current_rt->effects.mip_maps[0].sizes Vector during rendering becomes empty, resulting in crashes in at least GLES3. This is a temporary fix to stop rendering a viewport when its size is below 2 rather than below 1.
2018-07-07 17:10:32 -05:00
Juan Linietsky
7dcaabaf19
Support for CPU based particles, which aids compatibility with OpenGL ES 2.0
2018-07-06 20:21:42 -03:00
Rémi Verschelde
92bfde531c
Merge pull request #19786 from JFonS/correct_normal_scaling
...
Add render mode to ensure correct normals when using non-uniform scaling
2018-07-04 15:09:59 +02:00
Juan Linietsky
e179bf0726
Ensure, if a texture meant for a normal map is imported and size limit exists, that it's renormalized after resize.
2018-07-03 10:56:31 -03:00
Juan Linietsky
d280b14e6e
Hacked around duplication bug. I think duplicate needs to be even smarter, maybe pass two bools? (containers and/or resources)
2018-07-03 08:34:06 -03:00
Juan Linietsky
7fc2367508
Added ability for SSAO to affect AO textures too
2018-07-02 16:50:52 -03:00
muiroc
0a36e974da
added cylinder shape support
2018-07-01 11:16:54 +02:00
George Marques
3852c5f8a0
Merge pull request #19678 from vnen/remove-latency-print
...
Remove audio latency print
2018-06-29 22:28:29 -03:00
Bastiaan Olij
ddc40e5115
Fix typo in y shift
2018-06-23 22:41:29 +10:00
JFonS
c8cf71753c
Add render mode to ensure correct normals when using non-uniform scaling
2018-06-21 00:12:12 +02:00
George Marques
5d61cdf5b5
Remove audio latency print
2018-06-20 14:00:19 -03:00
Marcelo Fernandez
c8a5145a6d
Removed unused AudioServer::update function
2018-06-15 14:13:33 -03:00
Bastiaan Olij
3fc9b5d93f
Moved culling, updated lights and shadows into a prepare function so it is only called once for stereo rendering
2018-06-11 21:51:30 +10:00
Juan Linietsky
b659fd6d74
Entirely new (and much improved) animation editor.
2018-06-07 12:52:00 -03:00
Gustav Lund
35eb7f2d6a
Rasterizers are now in sync with engine
...
The rasterisers (both GLES3 and GLES2) were calculating their own frame delta time
This fix lets the rasterizers get the frame delta through the draw call
That way any regulations to the frame step from the main script will not cause particle systems to process at a different step than the rest of the Engine.
Remove unused rasterizer storage variable
frame.prev_tick variable were not used anywhere and has been removed
2018-06-05 16:33:02 +02:00
Oliver Rausch
2368b31e1e
Fix return type of isnan and isinf in the shader language
2018-06-01 01:34:32 +02:00
Max Hilbrunner
e790d4aafa
Merge pull request #18349 from Gorgexpress/master
...
Fixed 2D intersect_shape limiting broadphase results
2018-05-26 18:29:49 +02:00
MrCdK
0ea9c7c4dd
Expose methods area_set_area_monitor_callback and area_set_monitorable in PhysicsServer and Physics2DServer
2018-05-25 20:46:54 +02:00
Rémi Verschelde
97b1e8b517
Merge pull request #18868 from bruvzg/clang_6_workaround
...
Workaround for clang 6.0.0 / Xcode 9.3 release (-O3) build bug.
2018-05-16 23:16:43 +02:00
nemerle
f2ba9a1f65
Fix bad operator check in ShaderLanguage::_validate_assign
2018-05-16 21:28:12 +02:00
bruvzg
b68222e4e7
Workaround for clang 6 bug.
2018-05-14 18:11:26 +03:00
AndreaCatania
5f66734d2d
Implemented physics material
...
Hidden a function
Fixed travis static check
2018-05-11 03:23:09 +02:00
Marcelo Fernandez
3fa352dc9c
canvas_item_add_triangle_array bind fixup
2018-05-08 21:41:41 -03:00
Rémi Verschelde
de9683b605
Merge pull request #17559 from simedis/joint_motors
...
Implemented interface for bullet linear motors
2018-05-08 10:23:41 +02:00