summaryrefslogtreecommitdiff
path: root/servers/visual/visual_server_canvas.cpp
AgeCommit message (Collapse)Author
2018-07-26Reduce unnecessary COW on Vector by make writing explicitHein-Pieter van Braam
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-05-03Skeleton for 2D WIPJuan Linietsky
2018-03-19Fix crash in `canvas_item_add_polyline` when passing more points than colorsrobfram
When `p_points.size() > p_colors.size()`, it crashed with invalid array access to `p_colors`. Also, when `p_colors` was an empty `Vector` it crashed due a missing `else` checking the `size` condition, as the code handling that special case exists. This PR fixes the missing `else` for `p_colors.size == 0` and, following the `canvas_item_add_multiline` spirit, it only uses the first color for the whole polyline if points and colors differ in size. Fix #17621.
2018-02-212D Skeletons WORK IN PROGRESSJuan Linietsky
2018-02-21Add base support for 2D meshes in Godot, including Sprite -> Mesh2D conversion.Juan Linietsky
2018-01-05Add missing copyright headers and fix formattingRémi Verschelde
Using `misc/scripts/fix_headers.py` on all Godot files. Some missing header guards were added, and the header inclusion order was fixed in the Bullet module.
2018-01-04Merge pull request #15191 from Jerome67000/z_renamingRémi Verschelde
renames "z" Node2D property to "z_index"
2018-01-03#15078 renamed "z" -> "z_index" property in Node2DJerome67000
2018-01-01Update copyright statements to 2018Rémi Verschelde
Happy new year to the wonderful Godot community!
2017-12-17Cleanup some #if 0'd codeRémi Verschelde
2017-12-09-Ability to and unwrap lightmap coordinates on importJuan Linietsky
-Added unwrap functionality to Mesh -Ability to display and debug mesh UVs -Added multiline draw, so it's easier and faster to draw UVs -Many fixes to SurfaceTool -Fixes to Thekla Unwrap, but it's a piece of ass and it keeps crashing. Will have to go away
2017-11-25Made Vector::ptrw explicit for writing, compiler was sometimes using the ↵Juan Linietsky
wrong function, leading to unnecesary copy on writes and reduced performance.
2017-08-28Disable antialiasing for CanvasItem triangle arraysRémi Verschelde
Fixes #10461 and supersedes #10645 as suggested by @bruvzg.
2017-08-28Merge pull request #10676 from hpvb/speedup-_render_canvas_item_treeRémi Verschelde
Use memset to zero z_list
2017-08-27Use HTTPS URL for Godot's website in the headersRémi Verschelde
2017-08-27Use memset to zero z_listHein-Pieter van Braam
Using gprof I found the engine spending 10 - 20% of time in the _render_canvas_item_tree function. The function profiles as using about 0.09ms. Swapping the loop with two memset() calls reduces the time spent in this function a lot, and the time per call to about 0.02ms. Likewise the render_canvas function was using ~10% of time, replacing the loop there dropped per-call time from 0.22ms to 0.18ms.
2017-08-26Added/Fixed null pointer checksWilson E. Alvarez
2017-08-19Added polygon antialiasing, but it does not work on nvidia. Will have to try ↵Juan Linietsky
something else..
2017-08-17Add closest_power_of_2 func and implement mix_rate/latency on OS XMarcelo Fernandez
2017-08-16Synchronize parameter names in definition and declarationTwistedTwigleg
Fixes #10244.
2017-06-30-Many fixes to VisualScript, fixed property names, etc.Juan Linietsky
-Added ability to set/get a field in GetSet, as well as assignment ops -Added a Select node -Fixed update bugs related to variable list and exported properties, closes #9458
2017-06-22Order of 2D nodes in tree affects drawing properly again.Juan Linietsky
2017-06-212D GPU Particles working..Juan Linietsky
2017-06-18Texture rect_region drawing now clamps UV to avoid bleeding. This avoids ↵Juan Linietsky
scenarios like single-texture tilemap tiles leaking pixels to the next tile when filter is enabled on it.
2017-06-17Add normalmap support for drawing in all low level primitives. Only added ↵Juan Linietsky
support in Sprite so far.
2017-06-13-Fixed occluder rendering, closes #8560Juan Linietsky
-Ability to smooth out 2D shadow filters
2017-06-05Fix build errorPoommetee Ketson
2017-06-04renamed all Rect2.pos to Rect2.positionalexholly
2017-04-09-Fix eternal black screen on WindowsJuan Linietsky
-Disabled warnings on windows, need to properly set up warnings
2017-04-08Add "Godot Engine contributors" copyright lineRémi Verschelde
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-05Add a bunch of missing Godot headers in own filesRémi Verschelde
2017-01-16Style: Fix statements ending with ';;'Rémi Verschelde
2017-01-14Style: Fix whole-line commented codeRémi Verschelde
They do not play well with clang-format which aligns the `//` part with the rest of the code block, thus producing badly indented commented code.
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-07Memory pool vectors (DVector) have been enormously simplified in code, and ↵Juan Linietsky
renamed to PoolVector
2016-10-03Begining of GLES3 renderer:Juan Linietsky
-Most 2D drawing is implemented -Missing shaders -Missing all 3D -Editor needs to be set on update always to be used, otherwise it does not refresh -Large parts of editor not working