diff --git a/CHANGELOG.md b/CHANGELOG.md index 05744df69..ba6ab9a68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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