changelog for 1.0.0-rc.1

This commit is contained in:
Dmitry Stepanov
2025-09-09 23:23:27 +03:00
parent 41af40422e
commit 3feaf705eb
+302 -336
View File
@@ -4,7 +4,88 @@ First release-candidate version (unreleased).
## Fixed
- Fixed performance issues when deleting an object in the editor
- Use ambient occlusion from material info in ambient lighting shader
- Fixed skybox editing in scene settings
- Fix build window (handle stderr and stdout in different threads)
- Fixed ssao rendering
- Exit build mode after successful build
- Prevent loss of piped data due to BufReader dropping
- Fixed cube texture to use only one size parameter instead width+height
- Fixed layout of resource property editor
- Fixed reflection probe rendering with fxaa enabled
- Add details to FieldTypeDoesNotMatch error to improve warnings
- Check if a property can be cloned/pasted in the inspector
- Fixed box selection in the editor
- Improved selection order in the editor
- Context menu handling for various inspectors
- Fixed smart placement for move interaction mode
- Fixed grid blending issues
- Fail-safe shader/material handling when rendering
- Fixed incorrect sampler params
- Prevent clamping for infinite available size in UI
- Fixed axes colors for grid shader
- Adjust grid cell size to match grid snapping options
- Support all three major plane orientations (oXZ,oXY,oYZ) in grid shader
- Improved selection in the editor
- Fixed incorrect viewport handling for camera render targets
- Do not crash if render data couldn't be created, return an error instead
- Filter out editor-specific scene nodes when using camera preview
- Remove render data for destroyed cameras
- Use separate render target for camera preview in the editor
- Added missing tab labels for 'Settings' and 'Navmesh' panels
- Added missing interaction modes shortcuts for terrain and navmesh
- Fixed terrain holes incorrect command name
- Making relative paths for loading and saving scenes
- Remove redundant BrushMacro method remove_cell
- Highlight allowed types better in the node selector
- Use typed_ref/mut methods in graph indexing impl
- Show/hide camera preview image
- Fixed interaction mode order in the toolbar to follow indices: 1..6
- Fixed distance sorting for meshes
- Collect only supported resources + ignore resources from excluded dirs
- Fixed render order to be back-to-front for correct blending
- Improved gizmo and exposed scale in editor settings
- Prevented the camera frustum in debug draw from being scaled
- Improved camera focus distance to be less close to the object
- Correcting make_relative_path and scene saving logic.
- Allowing make_relative_path to accept non-existing files
- Improving error reporting for missing InspectorEnvironment
- Fixed scene gizmo lighting
- Fixed crash when an invalid asset is drag-dropped onto a surface field
- Fixed crash when an empty string is used in the asset browser search
- Fixed crash when CSM near and far values are superimposed
- Fixed documentation for VisitError::NotSupportedFormat
- Made "Show in explorer" work on other OS's
- More concise naming for Reflect methods
- Handle UI scaling in Screen Widget
- Fixed potential crash in the editor
- Improved performance of dynamic drawing methods
- Fixed resource registration
- Fixed deadlock when loading a resource
- Preserve global transform when reparenting scene nodes
- Fixed misleading docs
- Fixing minimization for windows.
- Fixed distance sorting
- Reset editor camera rotation when in 2d mode
- Fixed matrix2 deserialization
- Fixing cut-off text in tooltips
- Protecting against resource deadlock
- Hold mutex locks as short as possible to prevent deadlocks
- Use blocking resource registry updating where possible
- Correcting terrain hole mask bug
- Fixed asset item context menu not showing on rmb click
- Do not try to reload unsupported resources.
- Moving plugin and script handling to before node handling, to fix teleportation glitch
- Print error message instead of silently writing an error to the resource
- Use trait upcasting and remove `as_any` for `ResourceData`
- Fixed usages of ResourceKind
- Fixed asset preview generation
- Fixed built-in resource handles deserialization
- Ability to create metadata files
- Proper headless mode
- Hide asset preview if there's no actual preview data for it
- Fixed gltf shader
- Fixed incorrect syncing of modified flag in property editor
- Prevent annoying message spam when import options is missing for asset
- Fixed ambient lighting in case of non-skybox lighting
@@ -21,35 +102,109 @@ First release-candidate version (unreleased).
- Handle invalid aabb/division by zero when doing camera fitting
- Fixed menu item content alignment + `make_menu_splitter` helper
- Reset visual state of a selected option in the dropdown list on select
- fixed asset preview update when a resource changes
- significantly reduced annoying visual lag when generating asset previews
- correctly detach content of control panels of various entities
- fixed text alignment in various places in the editor
- fixed asset preview
- do not stop deserialization on invalid resource refs
- fixed inability to add animation track for a node
- better lighting for asset preview
- fixed torus faces orientation
- fixed deferred preview generation for assets in asset selector
- fixed `Option::None` serialization
- fixed camera picking issues
- do not change resource uuid when moving it in the editor
- Fixed asset preview update when a resource changes
- Significantly reduced annoying visual lag when generating asset previews
- Correctly detach content of control panels of various entities
- Fixed text alignment in various places in the editor
- Fixed asset preview
- Do not stop deserialization on invalid resource refs
- Fixed inability to add animation track for a node
- Better lighting for asset preview
- Fixed torus faces orientation
- Fixed deferred preview generation for assets in asset selector
- Fixed `Option::None` serialization
- Fixed camera picking issues
- Do not change resource uuid when moving it in the editor
- Log window improvements + fixes
- fixed crash when trying to select text in the text box via double click
- fixed resource movement in the asset browser
- fixed incorrect position of dragndrop preview when dpi scaling is used
- update asset preview if the asset changes
- properly handle added/removed resources to/from the resource registry
- use correct material in `MaterialFieldEditor`
- fixed crash in case of invalid material resource used in ui renderer
- fixed request of built-in resources in the resource manager
- fixed incorrect color space in standard forward pass of standard shaders
- fixed black screen bug when saving a scene with active camera preview
- prevent deadlock when trying to get a debug name for gpu texture
- fixed incorrect ambient lighting calculation
- Fixed crash when trying to select text in the text box via double click
- Fixed resource movement in the asset browser
- Fixed incorrect position of dragndrop preview when dpi scaling is used
- Update asset preview if the asset changes
- Properly handle added/removed resources to/from the resource registry
- Use correct material in `MaterialFieldEditor`
- Fixed crash in case of invalid material resource used in ui renderer
- Fixed request of built-in resources in the resource manager
- Fixed incorrect color space in standard forward pass of standard shaders
- Fixed black screen bug when saving a scene with active camera preview
- Prevent deadlock when trying to get a debug name for gpu texture
- Fixed incorrect ambient lighting calculation
- Reduced memory usage when generating asset previews
- Clamp anisotropy in `[1.0; 16.0]` range to prevent video driver errors
## Added
- Added image-based lighting (IBL)
- Name for gpu buffers
- Named gpu textures
- Ability to specify mip level for frame buffer attachments
- `GraphicsServer::create_cube_render_target`
- Added runs to FormattedText
- `Texture::new_cube_render_target`
- Environment mapping
- Reflection probe node
- `fyrox_widgetData` built-in property group
- Ability to specify custom shaders for widgets
- Documentation and helper methods for colliders
- Implementing Debug and Display for BitMask.
- Brdf lut generator
- Ability to copy/paste values in the editor setting's inspector
- `UserInterface::has_descendant_or_equal`
- `Inspector::handle_context_menu_simple`
- `GpuShader` entity
- `Reflect::try_clone_box`
- Ability to copy/paste values in inspector
- Added `is_significant` method for editor commands
- Show grid in 2d mode in the editor
- Docking manager for asset browser
- Echo popup messages
- `Copy Value` + `Paste Value` options in context menu of `Inspector`
- Collect property paths in the inspector widget
- `UserInterface::send_messages` to send multiple messages at once
- Implemented `BorrowAs` trait for widget handles
- Enhanced tile set editing, copying pages
- Debug impl for NodeHandleMap
- Movable scene tabs
- `GraphicsServer::generate_mipmap`
- `RendererResources` with pre-loaded resources
- Ability to specify the face of the cube map in frame buffer attachment
- Environment cube map prefilter shader
- Blanket impl for ScriptMessagePayload replaced with derive macro
- Print allowed type name in the node selector + do type checking
- Ability to set derived handle types in the handle editor
- Dynamically typed script messages
- Added a setting to modify editor camera's mouse sensitivity
- `Reflect::fields_info_mut` + optimizations
- More methods for handles accessed via reflection
- Improvements to autotiling
- Multithreaded wave function collapse
- Adding empty tiles to tile map brush
- Render target for cameras
- Thread sleep in headless executor
- `ResourceLoader::convert` impl for native scenes
- Added `ResourceIo::copy_file` method
- Added visitor version number
- Added option to use %MANIFEST_DIR% to open IDE in project manager
- Add render mask to Base node
- Docs improvements for serialization
- Universal `Visitor::load_from_memory` with format autodetection
- Tests for `move_resource`
- Integration tests for fyrox-resource
- Adding support for kinematic physics
- `RG16F` texture format
- Allow user to change editor icon and customize window title
- Tooltip for material resources in the material editor
- Ability to fetch memory usage by the graphics server
- Ability to disable asset convertion when exporting a project
- Convert ui scenes to binary format when exporting a project
- Print warning messages in the log when setting terrain height map
- Resource registry `ResourceManager::register` + `ResourceManager::uuid_to_path` methods
- Introducing multi-window docking tiles
- Resource registry
- `ResourceIo::write_file` + rename `FileLoadError->FileError`
- `ResourceLoadersContainer::is_supported_resource`
- Show selected path in the main window of the asset browser
- Uuids for resources
- Ascii reader and writer for visitor
- Added `#[inline]` attributes for ui drawing methods
- Configurable fadeout margin for particle systems
- Fyrox-graphics documentation
@@ -61,363 +216,174 @@ First release-candidate version (unreleased).
- Placeholder icon for resources without preview generator
- Added placeholder icon for asset items whose preview is being generated
- Loading scenes list window when loading scenes in the editor
- async loading for game and ui scenes in the editor
- ability to specify special title for root item in the filebrowser widget
- ability to paste properties in resource inspector
- ability to inspect and edit supported assets in inspector
- footer attachment point for inspector plugin
- Async loading for game and ui scenes in the editor
- Ability to specify special title for root item in the filebrowser widget
- Ability to paste properties in resource inspector
- Ability to inspect and edit supported assets in inspector
- Footer attachment point for inspector plugin
- `AssetSelection` + inspect asset import options in standard Inspector
- helper methods for selection downcasting
- ability to move a folder with resource in the resource manager
- configurable depth for `walk_directory` method
- asset rename dialog improvements
- ability to rename assets in the asset browser
- add small margin for asset preview
- skybox api improvements
- added folder icon for file browser
- ability to select environment light source for scenes
- Helper methods for selection downcasting
- Ability to move a folder with resource in the resource manager
- Configurable depth for `walk_directory` method
- Asset rename dialog improvements
- Ability to rename assets in the asset browser
- Add small margin for asset preview
- Skybox api improvements
- Added folder icon for file browser
- Ability to select environment light source for scenes
- `Brush` helper methods
- better navigation in the asset browser
- ability to enable or disable debug names for GPU objects
- added confirmation dialog for asset deletion
- use checkerboard background for asset preview tooltips
- improved texture property editor
- increased size of material preview
- preview for surface data editor
- preview for material property editor
- magnified asset preview for resource property editor
- show asset preview in resource field editor
- texture property editor improvements
- Better navigation in the asset browser
- Ability to enable or disable debug names for GPU objects
- Added confirmation dialog for asset deletion
- Use checkerboard background for asset preview tooltips
- Improved texture property editor
- Increased size of material preview
- Preview for surface data editor
- Preview for material property editor
- Magnified asset preview for resource property editor
- Show asset preview in resource field editor
- Texture property editor improvements
- `AssetSelectorWindowBuilder::build_for_type_and_open`
- ability to disable size sync of `Image` widget with its texture
- helper function `make_pick_button`
- generate preview for items in asset selector
- asset selector
- helper methods for `ResourceState`
- direct immutable access to underlying container for ResourceRegistry
- Ability to disable size sync of `Image` widget with its texture
- Helper function `make_pick_button`
- Generate preview for items in asset selector
- Asset selector
- Helper methods for `ResourceState`
- Direct immutable access to underlying container for ResourceRegistry
- `ResourceManager::can_resource_be_moved`
- highlight asset item when it accepts drop
- check for drop content in the file browser to show correct cursor icon
- custom `accepts_drop` for `AssetItem` that checks if drop is possible
- allow to define custom drop response method on ui widgets
- improved visual style of `AssetItem`
- ability to move a folder when dropping it to some other folder
- ability to move a resource by dropping it to a folder asset item
- ability to move a resource by path without loading it
- Highlight asset item when it accepts drop
- Check for drop content in the file browser to show correct cursor icon
- Custom `accepts_drop` for `AssetItem` that checks if drop is possible
- Allow to define custom drop response method on ui widgets
- Improved visual style of `AssetItem`
- Ability to move a folder when dropping it to some other folder
- Ability to move a resource by dropping it to a folder asset item
- Ability to move a resource by path without loading it
- `impl Display for FileError`
- `ResourceRegistry::remove_metadata`
- `ResourceIo::delete_file+delete_file_sync`
- `UntypedResource::type_uuid_non_blocking`
- ability to specify pre and post visit method calls for visitor codegen
- ability to try get resource manager state lock for the given time period
- Ability to specify pre and post visit method calls for visitor codegen
- Ability to try get resource manager state lock for the given time period
- Style api improvements
- Ability to re-bind styled properties of widgets in the editor
- Joint motors
- Show graphics server memory usage in the editor's rendering statistics
## Changed
- Use scene skybox if there's no specific environment map
- Do not prevent building without the opened scene
- Remove dependency on status code 101 (which is cargo specific, while built-tool has tool-agnostic design)
- Detached renderer from scene's `Camera`
- Moved sky box to scene from camera
- Enable seamless cube map filtering by default
- Include breadcrumb into VisitError:RegionDoesNotExist
- Moved all shaders into a centralized storage
- Moved opengl-specific code to `fyrox-graphics-gl`
- Build tool now streams both stdout and stderr
- Increased window size and inspector name column width in settings
- Smart selection of corner arc subdivision when drawing borders
- Recalculate clip bounds only for changed widgets
- Allow engine user control default editor settings
- Use `MaterialResource` in widgets instead of `UntypedResource`
- Refactored ui renderer to use materials
- Documented keyboard focus
- Separate brush for highlighting widgets with keyboard focus
- Prevent selection of asset items while holding alt
- Moved material/shaders to `fyrox-material` crate
- Use separate struct for args for `InspectorContext::from_object` func
- Include all nodes that produces render data in camera picking in editor
- Convert assets to their most efficient version when exporting a project
- Reducing dependencies of fyrox-autotile
- Use sampler+texture pair instead of old-fashioned combined texture
- Migrate to latest winit/glutin/rapier
- Disable texture lod bias for wasm builds
- Moved `set_panic_hook` to engine initialization for wasm builds
- Disable picking restriction for menus and context menus
- Change layout of command stack panel
- Save ui scenes in ascii mode by default
- Normalize paths before passing them to `ResourceManager::request`
- Close a menu by clicking on the menu item.
- Improved docs of `Resource::data_ref`
- Split `FieldInfo` into two parts `FieldInfo` + `FieldMetadata`
- Moving control panels to inspector head
- Merged `DerivedEntityListProvider` trait into `Reflect` trait
- Refactored node handle property editor to accept typed handles
- Register property editors for scene/ui node handles
- Refactored `NodeHandlePropertyEditorDefinition` to accept generic type
- Use typed handles in 2d joints
- Less bright icons for scene nodes
- Do not recreate render target for asset preview if preview is collapsed
- Explicitly disabled unsupported render passes in standard widget shader
- Reduced contrast of the text/images in the default dark theme
- Do not save `NEED_SYNC` flag when serializing an inheriable variable
- Correcting how ScriptPropertyEditorDefinition accesses environment
- Refactor resource manager to use hash map for resources
- Use stable ids when serializing rc/arc
- Isolated visitor's reader and writer into separate entities
- Reversing generate_free_handles to match spawn
- Refactored resource system to use uuids instead of path where possible
- Track vertex/fragment shader line location
- Tidy up menus in the editor
- Vector flattened structure for serialization
- Close dropdown lists on selection
- Open context menus on rmb-up event instead of rmb-down
- Beautifying bitfield widget
- Adding adjustable warning messages to autotile failures
- Select asset item by rmb click
- Expose instance id in the inspector
- Use doc comment for property description
- Expose more properties in the inspector
- Unhide node's global transform in the inspector
- keep the editor active until it loads all the queued scenes
- use special root title for project's root folder in the asset browser
- override title for the root item in the asset browser
- only show folders that in the registry in the asset browser's dir viewer
- show only content from the resource registry in the asset browser
- use command-based approach when editing resources in the inspector
- use respective command to change selection in the asset browser
- save the resource data on change in the inspector
- hide asset previewer for assets without a preview
- moved asset preview to the inspector
- moved selection-specific code to selection itself
- show pretty type name in resource creator
- search in resource registry when searching in the asset browser
- better validation for file name when doing move
- do not allow to delete built-in resources
- Keep the editor active until it loads all the queued scenes
- Use special root title for project's root folder in the asset browser
- Override title for the root item in the asset browser
- Only show folders that in the registry in the asset browser's dir viewer
- Show only content from the resource registry in the asset browser
- Use command-based approach when editing resources in the inspector
- Use respective command to change selection in the asset browser
- Save the resource data on change in the inspector
- Hide asset previewer for assets without a preview
- Moved asset preview to the inspector
- Moved selection-specific code to selection itself
- Show pretty type name in resource creator
- Search in resource registry when searching in the asset browser
- Better validation for file name when doing move
- Do not allow to delete built-in resources
- Improved FormattedText
- use flat gray color background for asset previews
- green color for `add resource` button
- disable `duplicate` and `dependencies` context menu items for folders
- use calculated local instead of screen position when setting new desired position after toggling of a view
- bring selected item into view in the list view when arrow navigating
- use texture property editor for texture bindings in material editor
- use helper methods in resource property editor
- increased margin on `Stop` button in build window
- improved validation when moving a resource
- check if a resource can be moved when moving an asset in asset browser
- moved tooltip from asset item to its text field
- make paths os-independent and canonical when moving a resource
- do not allow to create a resource outside of the data folder
- allow to use build tool with executable that doesn't expect "--" as passthrough marker
- build tools: delegate stderr to Log
- removed redundant empty impls of InteractionMode trait
- share fbx materials as much as possible
- Use flat gray color background for asset previews
- Green color for `add resource` button
- Disable `duplicate` and `dependencies` context menu items for folders
- Use calculated local instead of screen position when setting new desired position after toggling of a view
- Bring selected item into view in the list view when arrow navigating
- Use texture property editor for texture bindings in material editor
- Use helper methods in resource property editor
- Increased margin on `Stop` button in build window
- Improved validation when moving a resource
- Check if a resource can be moved when moving an asset in asset browser
- Moved tooltip from asset item to its text field
- Make paths os-independent and canonical when moving a resource
- Do not allow to create a resource outside of the data folder
- Allow to use build tool with executable that doesn't expect "--" as passthrough marker
- Build tools: delegate stderr to Log
- Removed redundant empty impls of InteractionMode trait
- Share fbx materials as much as possible
- Store a style handle in the widget
## Removed
- correct memory usage by a buffer when changing its content
- reduced memory usage when generating asset previews
- use `f32` to calculate memory usage in megabytes
- clamp anisotropy in `[1.0; 16.0]` range to prevent video driver errors
- show graphics server memory usage in the editor's rendering statistics
- ability to fetch memory usage by the graphics server
- tooltip for material resources in the material editor
- fixed layout of resource property editor
- allow user to change editor icon and customize window title
- fixed performance issues when deleting an object in the editor
- use ambient occlusion from material info in ambient lighting shader
- always update irradiance/specular convolutions at the first frame
- added image-based lighting (IBL)
- name for gpu buffers
- named gpu textures
- fixed ssao rendering
- moved all shaders into a centralized storage
- removed resource duplicates
- `RendererResources` with pre-loaded resources
- ability to specify the face of the cube map in frame buffer attachment
- environment cube map prefilter shader
- blanket impl for ScriptMessagePayload replaced with derive macro
- use scene skybox if there's no specific environment map
- fixed data type for rg16f texture
- brdf lut generator
- `RG16F` texture format
- enable seamless cube map filtering by default
- fixed ambient light shader
- `GraphicsServer::generate_mipmap`
- ability to specify mip level for frame buffer attachments
- fixed skybox editing in scene settings
- fix build window (handle stderr and stdout in different threads)
- moved sky box to scene from camera
- dynamically typed script messages
- fixed reflection probe rendering with fxaa enabled
- include breadcrumb into VisitError:RegionDoesNotExist
- allow engine user control default editor settings
- exit build mode after successful build
- prevent loss of piped data due to BufReader dropping
- build tool now streams both stdout and stderr
- `GraphicsServer::create_cube_render_target`
- Introducing runs to FormattedText
- do not prevent building without the opened scene
- remove dependency on status code 101 (which is cargo specific, while built-tool has tool-agnostic design)
- `Texture::new_cube_render_target`
- fixed cube texture to use only one size parameter instead width+height
- detached renderer from scene's `Camera`
- environment mapping
- reflection probe node
- add details to FieldTypeDoesNotMatch error to improve warnings
- moved opengl-specific code to `fyrox-graphics-gl`
- use `MaterialResource` in widgets instead of `UntypedResource`
- moved material/shaders to `fyrox-material` crate
- refactored ui renderer to use materials
- `fyrox_widgetData` built-in property group
- ability to specify custom shaders for widgets
- ability to copy/paste values in the editor setting's inspector
- context menu handling for various inspectors
- `UserInterface::has_descendant_or_equal`
- `Inspector::handle_context_menu_simple`
- check if a property can be cloned/pasted in the inspector
- echo popup messages
- ability to copy/paste values in inspector
- `Reflect::try_clone_box`
- `Copy Value` + `Paste Value` options in context menu of `Inspector`
- collect property paths in the inspector widget
- use separate struct for args for `InspectorContext::from_object` func
- fixed box selection in the editor
- improved selection order in the editor
- improved selection in the editor
- include all nodes that produces render data in camera picking in editor
- fixed smart placement for move interaction mode
- added `is_significant` method for editor commands
- fixed grid blending issues
- fixed axes colors for grid shader
- adjust grid cell size to match grid snapping options
- show grid in 2d mode in the editor
- support all three major plane orientations (oXZ,oXY,oYZ) in grid shader
- fixed incorrect viewport handling for camera render targets
- do not crash if render data couldn't be created, return an error instead
- show/hide camera preview image
- `UserInterface::send_messages` to send multiple messages at once
- filter out editor-specific scene nodes when using camera preview
- remove render data for destroyed cameras
- use separate render target for camera preview in the editor
- Added missing tab labels for 'Settings' and 'Navmesh' panels
- Added missing interaction modes shortcuts for terrain and navmesh
- Fixed terrain holes incorrect command name
- Removed temporary mouse_user_sensitivity variable
- Fixed interaction mode order in the toolbar to follow indices: 1..6
- Added a setting to modify editor camera's mouse sensitivity
- render target for cameras
- ability to disable asset convertion when exporting a project
- convert ui scenes to binary format when exporting a project
- fixed distance sorting for meshes
- fixed render order to be back-to-front for correct blending
- Thread sleep in headless executor
- convert assets to their most efficient version when exporting a project
- collect only supported resources + ignore resources from excluded dirs
- Fixed focus broken following scale addition
- Improved gizmo and exposed scale in editor settings
- Prevented the camera frustum in debug draw from being scaled
- Improved focus distance to be less close to the object
- Fixed crash when an invalid asset is drag-dropped onto a surface field
- Fixed crash when an empty string is used in the asset browser search
- Fixed crash when CSM near and far values are superimposed
- fixed gltf shader
- `ResourceLoader::convert` impl for native scenes
- added `ResourceIo::copy_file` method
- fixed documentation for VisitError::NotSupportedFormat
- made "Show in explorer" work on other OS's
- use enum for a visitor version
- use visitor's version number when deserializing vectors
- added visitor version number
- added option to use %MANIFEST_DIR% to open IDE in project manager
- do not save `NEED_SYNC` flag when serializing an inheriable variable
- use stable ids when serializing rc/arc
- Handle UI scaling in Screen Widget
- fixed potential crash in the editor
- open context menus on rmb-up event instead of rmb-down
- working vector flattened structure
- save ui scenes in ascii mode by default
- fixed distance sorting
- reset editor camera rotation when in 2d mode
- tests for `calculate_sorting_index`
- write empty children section on the same line for ascii mode
- fixed matrix2 deserialization
- removed invalid assertions + code cleanup
- Moving render_mask check into should_be_rendered
- flatten vector structure at serialization stage
- Add render mask to Base
- Fixing cut-off text in tooltips
- Protecting against resource deadlock
- hold mutex locks as short as possible to prevent deadlocks
- use blocking resource registry updating where possible
- docs improvements for serialization
- Correcting terrain hole mask bug
- universal `Visitor::load_from_memory` with format autodetection
- print warning messages in the log when setting terrain height map
- Fixing potential panic in `patch_error_message`
- select asset item by rmb click
- fixed asset item context menu not showing on rmb click
- separate magic for binary and ascii formats
- ascii reader for visitor
- Documentation and helper methods for colliders
- Implementing Debug and Display for BitMask.
- experimental ascii writer for visitor
- Reversing generate_free_handles to match spawn
- isolated visitor's reader and writer into separate entities
- split visitor module into multiple modules
- do not try to reload unsupported resources.
- Moving plugin and script handling to before node handling, to fix teleportation glitch
- fixed default path for resource registry
- removed invalid assertions
- removed redundant `ResourceLoaderAsAny` trait
- print error message instead of silently writing an error to the resource
- use trait upcasting and remove `as_any` for `ResourceData`
- fixed usages of ResourceKind
- fixed asset preview generation
- fixed built-in resource handles deserialization
- always load the resources using paths
- tests for `move_resource`
- ability to exclude folders from resource registry
- ability to create metadata files
- normalize paths before passing them to `request`
- fixed resource registration + fixed deadlock when loading a resource
- do not block forever if a resource registry is unavailable
- integration tests for fyrox-resource
- returned `try_request` + added docs for type guarantees
- Correcting how ScriptPropertyEditorDefinition accesses environment
- allow calling `request_load_registry` directly
- Adding support for kinematic physics
- refactor resource manager to use hash map for resources
- refactored resource system to use uuids instead of path where possible
- resource registry `register` + `uuid_to_path` methods
- Beautifying bitfield widget
- uuids for resources
- Introducing multi-window docking tiles
- proper headless mode
- resource registry
- `ResourceIo::write_file` + rename `FileLoadError->FileError`
- `ResourceLoadersContainer::is_supported_resource`
- hide asset preview if there's no actual preview data for it
- Adding adjustible warning messages to autotile failures
- show selected path in the main window of the asset browser
- docking manager for asset browser
- `GpuShader` entity
- Reducing dependencies of fyrox-autotile
- moved sampler enums to the respective module
- use sampler+texture pair instead of old-fashioned combined texture
- defaults for gpu sampler
- fixed incorrect sampler params
- Prevent clamping for infinite available size
- added gpu sampler to fyrox-graphics
- Close a menu by clicking on the menu item.
- removed wasm-unsupported `set_border_color` of gpu texture
- removed `get_image+read_pixels` methods from gpu texture
- improved performance of dynamic drawing methods
- fixed misleading docs
- Fixing minimization for windows.
- track vertex/fragment shader line location
- fail-safe shader/material handling when rendering
- improved docs of `Resource::data_ref`
- removed impls for `field/field_mut`
- more concise naming for Reflect methods
- removed redundant codegen for field/field_mut methods
- Correcting make_relative_path and scene saving logic.
- Allowing make_relative_path to accept non-existing files
- Improving error reporting for missing InspectorEnvironment
- removed `Relfect::fields/fields_mut` methods
- `Reflect::fields_info_mut` + optimizations
- Making relative paths for loading and saving scenes
- split `FieldInfo` into two parts `FieldInfo` + `FieldMetadata`
- Movable scene tabs
- removed `owner_type_id` field from `FieldInfo`
- removed redundant `type_name` field from `FieldInfo`
- implemented `BorrowAs` trait for widget handles
- Moving control panels to inspector head
- Remove redundant BrushMacro method remove_cell
- Enhanced tile set editing, copying pages
- use typed handles in 2d joints
- merged `DerivedEntityListProvider` trait into `Reflect` trait
- fixed BorrowAs trait declaration by adding associated type
- highlight allowed types better in the node selector
- print allowed type name in the node selector + do type checking
- use typed_ref/mut methods in graph indexing impl
- generic impl for BorrowAs trait for 1:1 borrowin
- use `BorrowAs` trait for scene node handles + renaming
- experimental `BorrowAs` trait
- removed `Downcast` trait, replaced with `define_as_any_trait` macro
- ability to set derived handle types in the handle editor
- tests for derived types
- Improvements to autotiling
- fixed proc macro for `DerivedEntityListProvider` trait
- fixed mapping of inheriable derived handles
- supply correct type to hierarchy node
- `BaseSceneGraph::actual_type_id` + `try_cast/try_cast_mut`
- Multithreaded wave function collapse
- refactored node handle property editor to accept typed handles
- register property editors for scene/ui node handles
- refactored `NodeHandlePropertyEditorDefinition` to accept generic type
- more methods for handles accessed via reflection
- proc macro for `DerivedEntityListProvider` trait
- fixed derived handle mapping test
- debug impl for NodeHandleMap
- Adding empty tiles to tile map brush
- experimental functionality to link handle types together
- ignore *.version files in template-core
- preserve global transform when reparenting scene nodes
# 0.36.1