Age | Commit message (Collapse) | Author |
|
Main:
- It's now implemented thanks to `<mutex>`. No more platform-specific implementations.
- `BinaryMutex` (non-recursive) is added, as an alternative for special cases.
- Doesn't need allocation/deallocation anymore. It can live in the stack and be part of other classes.
- Because of that, it's methods are now `const` and the inner mutex is `mutable` so it can be easily used in `const` contexts.
- A no-op implementation is provided if `NO_THREADS` is defined. No more need to add `#ifdef NO_THREADS` just for this.
- `MutexLock` now takes a reference. At this point the cases of null `Mutex`es are rare. If you ever need that, just don't use `MutexLock`.
- Thread-safe utilities are therefore simpler now.
Misc.:
- `ScopedMutexLock` is dropped and replaced by `MutexLock`, because they were pretty much the same.
- Every case of lock, do-something, unlock is replaced by `MutexLock` (complex cases where it's not straightfoward are kept as as explicit lock and unlock).
- `ShaderRD` contained an `std::mutex`, which has been replaced by `Mutex`.
|
|
|
|
|
|
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are
sugar for `Vector<Type>`.
|
|
32 bits.
|
|
|
|
Removes antialiased flag for draw_* methods.
|
|
|
|
-Texture renamed to Texture2D
-TextureLayered as base now inherits 2Darray, cubemap and cubemap array
-Removed all references to flags in textures (they will go in the shader)
-Texture3D gone for now (will come back later done properly)
-Create base rasterizer for RenderDevice, RasterizerRD
|
|
|
|
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.
|
|
Fix 2D scale gizmo placement
|
|
Fix draw_rect
|
|
|
|
|
|
OpenGL uses the diamond exit rule to rasterize lines. If we don't shift
the points down and to the right by 0.5, the line can sometimes miss a
pixel when it shouldn't. The final fragment of a line isn't drawn. By
drawing the lines clockwise, we can avoid a missing pixel in the rectangle.
See section 3.4.1 in the OpenGL 1.5 specification.
Fixes #32279
|
|
|
|
The CanvasItem property setters `set_modulate`, `set_self_modulate`
and `set_light_mask` have some side effects that don't need to be run
if the value hasn't changed.
This closes #31777.
|
|
|
|
Fix DynamicFont outline does not draw using draw_char
|
|
This also removes some duplicated editor code which is now obsoleted
by the new parameters in `draw_rect()`.
|
|
|
|
|
|
This adds support for groups in the import system, which point to a single file.
Add property hint for saving files in file field
|
|
|
|
|
|
|
|
#24484
|
|
Happy new year to the wonderful Godot community!
|
|
Moved dirty material lists from static to lifetime controlled by main.
|
|
|
|
As with 7d82bed4f4cac8f5227d935c0496290e24eb48c8,
The list is now destroyed before the OS object, so can print errors if
there are unfreed materials.
|
|
|
|
|
|
|
|
-Removed one and zero hints for properties, replaced by default value
|
|
Fix picking in CanvasLayer
|
|
Remove animation loop from ParticlesMaterial and move it to
SpatialMaterial for 3D particles and Particles2D for the 2D case.
Added animation to CPUParticles2D as well as the "Convert to
CPUParticles2D" to the PAarticles2D menu.
|
|
This allows more consistency in the manner we include core headers,
where previously there would be a mix of absolute, relative and
include path-dependent includes.
|
|
|
|
New APIs in 2D physics allow intersection queries filtered by CanvasLayer object instance id. Viewport keep an inventory of its descendant CanvasLayers and takes advantage of all that to test picking with the mouse/touch position correctly transformed for each CanvasLayer.
|
|
So it takes advantage of the `get_global_transform` cached data.
|
|
This fixes the situation where a `CanvasItem` descendant of a `Viewport` which in turn is a descendant of a `CanvasLayer` prefers the more outer `CanvasLayer` rather than the `Vierport`'s.
Because of that, `CanvasItem`s inside a `Viewport` inside a `CanvasLayer` were being rendered to the main `Viewport` instead of the render target of the innermost one.
|
|
|
|
creation"
|
|
creation""
This reverts commit 4d277b96ad581358f63870ae051dc73b69c82cd7.
Woops, this wasn't meant to be committed. I just reverted it locally
to test something, nothing wrong with the original commit :)
|
|
This reverts commit d42b17607ef14aeb72036f8747eb4d5c64979872.
|
|
|
|
Prevent visibility notification from being called twice in object creation
|
|
Remove the rect surrounding 2D nodes in 2D editor when it's not pertinent
|