summaryrefslogtreecommitdiff
path: root/core/variant.cpp
AgeCommit message (Collapse)Author
2017-06-09renamed all Rect3.pos to Rect3.positionalexholly
2017-06-04renamed all Rect2.pos to Rect2.positionalexholly
2017-05-20Removal of InputEvent as built-in Variant type..Juan Linietsky
this might cause bugs I haven't found yet..
2017-05-17Removal of Image from Variant, converted to a Resource.Juan Linietsky
2017-04-14Correct Variant::hash_compare()Hein-Pieter van Braam
There was a logic error in #7815 which made Variant.hash_compare() == Variant.hash_compare() always true. In an attempt to short-circuit the NaN check I made an (in hindsight) obvious error: 10 == 12 || is_nan(10) == is_nan(12) This will be true for all inputs, except for the NaN, not-NaN case. The macro has been updated to now generate: (10 == 12) || (is_nan(10) && is_nan(10)) so: (10 == 12) || (is_nan(10) && is_nan(12)) = false False or (False and False) is False (10 == 10) || (is_nan(10) && is_nan(10)) = true True or (False and False) is True (Nan == 10) || (is_nan(NaN) && is_nan(10)) = false False or (True and False) is False (Nan == Nan) || (is_nan(NaN) && is_nan(NaN)) = true False or (True and True) is True Which is correct for all cases. This bug was triggered because the hash function for floating point numbers can very easily generate collisions for the tested Vector3(). I've also added an extra hashing step to the float hash function to make this less likely to occur. This fixes #8081 and probably many more random weirdness.
2017-04-08Add "Godot Engine contributors" copyright lineRémi Verschelde
2017-03-13fixed ClassDB inconsistenciesKarroffel
fixes #7960
2017-03-05A Whole New World (clang-format edition)Rémi Verschelde
I can show you the code Pretty, with proper whitespace Tell me, coder, now when did You last write readable code? I can open your eyes Make you see your bad indent Force you to respect the style The core devs agreed upon A whole new world A new fantastic code format A de facto standard With some sugar Enforced with clang-format A whole new world A dazzling style we all dreamed of And when we read it through It's crystal clear That now we're in a whole new world of code
2017-03-05really fixed PTRCALL nowKarroffel
2017-03-05Added PowerState casting operator to VariantKarroffel
Without it Godot does not build with PTRCALL_ENABLED
2017-02-28 Various fixes detected using PVS-Studio static analyzer.Thaer Razeq
- Add FIXME tags comments to some unfixed potential bugs - Remove some checks (always false: unsigned never < 0) - Fix some if statements based on reviews. - Bunch of missing `else` statements
2017-02-16Correct hash behavior for floating point numbersHein-Pieter van Braam
This fixes HashMap where a key or part of a key is a floating point number. To fix this the following has been done: * HashMap now takes an extra template argument Comparator. This class gets used to compare keys. The default Comperator now works correctly for common types and floating point numbets. * Variant implements ::hash_compare() now. This function implements nan-safe comparison for all types with components that contain floating point numbers. * Variant now has a VariantComparator which uses Variant::hash_compare() safely compare floating point components of variant's types. * The hash functions for floating point numbers will now normalize NaN values so that all floating point numbers that are NaN hash to the same value. C++ module writers that want to use HashMap internally in their modules can now also safeguard against this crash by defining their on Comperator class that safely compares their types. GDScript users, or writers of modules that don't use HashMap internally in their modules don't need to do anything. This fixes #7354 and fixes #6947.
2017-01-16Style: Fix statements ending with ';;'Rémi Verschelde
2017-01-16Style: Cleanups, added headers, renamed filesRémi Verschelde
Made sure files in core/ and tools/ have a proper Godot license header when written by us. Also renamed aabb.{cpp,h} and object_type_db.{cpp,h} to rect3.{cpp,h} and class_db.{cpp,h} respectively. Also added a proper header to core/io/base64.{c,h} after clarifying the licensing with the original author (public domain).
2017-01-11Both Array and Dictionary are always in shared mode (removed copy on write).Juan Linietsky
2017-01-11Type renames:Juan Linietsky
Matrix32 -> Transform2D Matrix3 -> Basis AABB -> Rect3 RawArray -> PoolByteArray IntArray -> PoolIntArray FloatArray -> PoolFloatArray Vector2Array -> PoolVector2Array Vector3Array -> PoolVector3Array ColorArray -> PoolColorArray
2017-01-08Variant INT and REAL are now 64 bits (other types remain at 32)Juan Linietsky
2017-01-08Made Variant::NIL printable as "Null". Please everyone be on the lookout of ↵Juan Linietsky
bugs related to assigning an empty variant to a string, and expecting it to be not empty!
2017-01-07Memory pool vectors (DVector) have been enormously simplified in code, and ↵Juan Linietsky
renamed to PoolVector
2017-01-02ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to ↵Juan Linietsky
Variant. All usages of "type" to refer to classes were renamed to "class" ClassDB has been exposed to GDScript. OBJ_TYPE() macro is now GDCLASS()
2017-01-01Welcome in 2017, dear changelog reader!Rémi Verschelde
That year should bring the long-awaited OpenGL ES 3.0 compatible renderer with state-of-the-art rendering techniques tuned to work as low as middle end handheld devices - without compromising with the possibilities given for higher end desktop games of course. Great times ahead for the Godot community and the gamers that will play our games!
2016-10-04fixes #6331, Variant::can_convertRăzvan Cosmin Rădulescu
2016-08-06Reverted printable null object, seems to cause bugs around and not sure why.Juan Linietsky
Will have to check better, likely for 3.0
2016-08-06Likely with bugs and with some features are missing, as well as profiler ↵Juan Linietsky
support, but VisualScript should be more or less done!
2016-07-28Fix regression with str() improvements for math typesIgnacio Etcheverry
2016-07-02Prettier str() for arraysIgnacio Etcheverry
2016-06-19Remove CHARTYPE_16BITS unused checksJ08nY
fix #5263
2016-06-12Made error when signal calls a method with the wrong number of parameters ↵Juan Linietsky
more detailed, closes #4893
2016-05-17-Added configuration warning system for nodesJuan Linietsky
-Added a new "add" and "instance" buttons for scene tree -Added a vformat() function to ease translation work
2016-05-04Add missing Vector2Array case to Variant::operator String()Ignacio Etcheverry
- Correcly display Vector2Array default arguments in the documentation
2016-03-09remove trailing whitespaceHubert Jarosz
2016-03-01AnimationTreePlayer: blend value tracks (closes #2299)Josh Grams
Variant: - zero() sets a Variant to the appropriate type of zero value - blend() blends part of one Variant on top of another.
2016-01-04-make signals throw an error when target method is not found, fixes #2036Juan Linietsky
-removed 4 arguments limit for emit_signal() from script -remvoed 4 arguments limit for call_deferred() from script
2016-01-02-Ability to roll-back script-exported properties to their default value on ↵Juan Linietsky
the script, closes #2128
2016-01-01Update copyright to 2016 in headersGeorge Marques
2015-12-31-Changed var2str and str2var in GDScript to use VariantWriter and VariantParserJuan Linietsky
-It is now finally possible to parse back a variant from text!
2015-09-03merged some stuff for okamJuan Linietsky
2015-06-29Several performance improvements, mainly in loading and instancing scenes ↵Juan Linietsky
and resources. A general speedup should be apparent, with even more peformance increase when compiling optimized. WARNING: Tested and it seems to work, but if something breaks, please report.
2015-05-27added conversion from int, string to colorJuan Linietsky
fixes #1971
2015-05-05Made type-checking for arguments less trict between bool, int real. Fixes #1816Juan Linietsky
2015-05-04-More strict argument type-checking, will make many bugs visible, fixes #1809Juan Linietsky
-added NOTIFICATION_INSTANCED
2015-05-04-invalidated string -> int automatic conversion, fixes #1788Juan Linietsky
2015-05-04added return keyword, fixes #1797Juan Linietsky
2015-05-01Sort xml files, so order is constantest31
Makes xml format work better with version control systems.
2015-04-24Ability to convert from nodes or other non resource with a get_rid() ↵Juan Linietsky
function to a rid
2015-04-18Updated copyright year in all headersJuan Linietsky
2015-02-15begin new serialization frameworkJuan Linietsky
also got rid of STL dependency on triangulator
2014-12-16New Code CompletionJuan Linietsky
-=-=-=-=-=-=-=-=-=- -Massive improvement to code completion -Argument hinting for functions If you manage to out-smart the code-completion in a situation where completion should be possible to guess, let me know. Please enter the commit message for your changes. Lines starting
2014-05-14A bit of everything:Juan Linietsky
-IMA-ADPCM support for samples, this means that sound effects can be compressed and use 4 timess less RAM. -New 3D import workflow based on Wavefront OBJ. Import single objects as mesh resources instead of full scenes. Many people prefers to work this way. Just like the rest of the imported resources, these are updated in realtime if modified externally. -Mesh resources now support naming surfaces. This helps reimporting to identify which user-created materials must be kept. -Several fixes and improvements to SurfaceTool. -Anti Aliasing added to WorldEnvironment effects (using FXAA) -2D Physics bodies (RigidBody, KinematicBody, etc), Raycasts, Tilemap, etc support collision layers. This makes easy to group which objects collide against which. -2D Trigger shapes can now also trigger collision reporting in other 2D bodies (it used to be in Area2D before) -Viewport render target textures can now be filtered. -Few fixes in GDscript make it easier to work with static functions and class members. -Several and many bugfixes.
2014-04-10-Fixed a few bugs in ViewportJuan Linietsky
-Made a few demos using Viewport to show it's true power! -Fixed some start-up error messages.