Commit graph

58 commits

Author SHA1 Message Date
marauder2k7 3aef90a6bc Update GFXTextureManager and GBitmap
GBitmap Changes:
Added all other formats to gbitmap that we support
gbitmap now supports cubemaps
added converters for all these other formats
added stb_image_resize for extrudemips so we can extrude mipmaps for all other formats

GFXTextureManager
Can now directly make cubemaps and texture arrays based on the GFXTextureProfile
API implementations for all functions that cubemaps and arrays needed
2025-12-22 10:29:01 +00:00
marauder2k7 34a8e5ef52 follow up to asset data management 2025-12-10 03:27:54 +00:00
marauder2k7 74638c0f2c Asset data management
Added functions to AssetManager to pack/unpack assets using an id hash instead of their id string this cuts down how much data is sent across the network for assets

All asset macros updated to use this new functionality.
2025-12-09 10:05:39 +00:00
JeffR 6b3fcd8e74 Shifts the console method for manually invoking load() from being ShapeAsset specific to being generalized to AssetBase 2025-10-13 08:13:37 -05:00
marauder2k7 e1bcced905 Update assetManager.cpp
load compiled binary if it exists and is newer than the asset file
2025-10-12 19:43:50 +01:00
marauder2k7 55afef7b3d Update assetManager.cpp
fs
2025-10-12 19:43:41 +01:00
marauder2k7 91fc70f15a Update assetManager.cpp 2025-10-12 19:43:39 +01:00
marauder2k7 64605a5c00 Update assetManager_ScriptBinding.h 2025-10-12 19:43:38 +01:00
marauder2k7 f1658d2e1e add compile options to asset manager
CompileAll - allows us to compile all assets to binary
CompileModuleAssets - allows us to just compile assets for a specific module
CompileAsset - compile a single asset
2025-10-12 19:43:36 +01:00
JeffR 9c654d7932 - Fixes the display of the preview in the MaterialAsset fields
- Hides the special-case direct filepath field for ShapeAsset persist fields macro
- Shifts the handling of TSStatics so the shape instance will load materials on the server as well as the client. This opens gameplay options as well as allowing rebaking of meshes functionality more easily
- Expands AssetBase's isValidAsset utility function to actually check validity instead of just returning true
- Adds isValid utility function to AssetPtr
- Added new field flag that makes the field not write out to file
- Removed legacy iconBitmap field from GuiIconButtonCtrl because it was causing errors
- Fixed group filtering check of guiInspector to ignore case
- Removed unneeded isFile checks for common datablock script files in Prototyping module script
- Removed test datablocks from Prototyping module
- Removed unnecessary container control from AssetBrowser
- Adjusted preview regen logic of AssetBrowser so it doesn't trip if you're simply resizing the window
- Fixed issue where row-vs-column layout logic for AssetBrowser when resizing window was fiddly
- Added handling for when Dragging and Dropping datablock from AssetBrowser to spawn, it'll prompt if it spawns the actual object, or a spawnsphere that spawns said object. In the event of an PlayerData will also prompt if it should spawn an AIPlayer
- Added ability to take a TSStatic that uses a baked down mesh and are able to restore it to the cache prefab, or trigger and in-place rebake to refresh it if something has changed in the original contents via RMB menu on the scene tree
- Added ability to explode prefab to RMB menu on scene tree
- Added ability to convert selection to prefab or bake to mesh in RMB menu on scene tree
- Tweaked sizing of the DatablockEditorCreatePrompt window to not have cut off elements and easier to see/work with
- Added sanity check to datablock editor creation
- Fixed preview display of material in Decal Editor
- Made compositeTextureEditor use the cached preview of images
- Fixed sizing/spacing of gui selection dropdown as well as resolution dropdown of GuiEditor
- Fixes MaterialEditor to properly save the group collapse state when editing
- Adds ability to in-flow edit and create datablocks in the NavMesh Editor for the testing panel, and makes the datablock dropdown searchable
- Fixed issue where opening the ShapeEditor via the edit button on a ShapeAsset field would cause the action buttons on the top bar to not show
- Fixed error in shape editor where when exiting it was erroneously checking for a clear value of -1 rather than 0
- Removed unneeded top tabbook and tab page for main editor panel
- Fixed issue where reset button of TerrainBrush Softness Curve editor didn't actually reset
- Resized Object Builder window to not cut off elements and have enough width to show more data
- Added a TypeCommand field type to Object Builder and changed spawnscript field of SpawnSphere to use it rather than a simple text edit field
- Allow SpawnSphere in ObjectBuilder to be passed in spawn class and spawn datablock default info
- Injects button to controllable objects when Inspecting them to make it easy to toggle if you're in control of it or not
-
2025-08-25 23:35:28 -05:00
marauder2k7 fc9f221ac0 Prepend symbol for image files
Prepend image filenames in imageassets with "@" symbol so expand and collapse works correctly for files relative to that asset.taml file.
2025-06-16 08:33:11 +01:00
JeffR 51a43d5be1 Fixed bad return type for AssetManager::getAssetLooseFile 2025-05-26 22:18:14 -05:00
JeffR bb7ee38bf4 - Reimplements autosave logic to handle levels, subscenes and terrains in a more consistent, reliable way.
- Adds entry to RMB menu in Asset Browser to restore an asset to a backup copy taken from autosaves
- Adds reparent out-of-bounds objects button to SceneGroup inspector
- Adds ability to have SubScene have a different loading bounds from the actual subscene bounds, allowing load triggering to happen ahead of the bounds of the subscene itself
- Fixes asset importer handling of animFPS field to be the correct type
- Adds onInspect handling to GameBase allowing better handling for any game class type with editor integration
- Add getAssetLooseFileCount and getAssetLooseFile to AssetManager to be able to iterate over all loose files associated to an asset
- Add standard/default preload function def to forestItem
- Fixes handling of text placement on GuiIconButtonCtrl when text is set to the right
- Adds setGlobalCenter utility function
- Adds ability to set guiInputCtrl active state
- Matched util functions for tracking if left and right mouse buttons are down to EditTSCtrl alongside the existing middle mouse
- Add empty element sanity check to appMesh loader
- Add callback for GameBase when game is created
- Add default graphics options config for steamdeck
- Fix typo in assetImportConfig default
- Filters SceneGroup utility buttons in inspector to only show for relevent class types
2025-05-25 07:40:10 -05:00
marauder2k7 6870a040e2 purge assets and clear image
image asset was missing a clear, passing a null value should clear the image asset and set it to null on materials.
2025-05-14 00:57:38 +01:00
marauder2k7 cbde207fdd Update assetManager.cpp
fix crash on exit
2025-05-12 22:58:52 +01:00
Brian Roberts 6cda97867c
Merge pull request #1452 from marauder2k9-torque/MEMORY-MANAGER-REFACTOR
Memory Manager Refactor
2025-05-12 15:31:06 -05:00
marauder2k7 e1c01cd49a Merge remote-tracking branch 'upstream/development' into imageAsset_refactor_rev3 2025-05-12 14:45:41 +01:00
marauder2k7 8926d1c32b Update assetManager.cpp
purgeAssets correctly on tear down of the asset manager
2025-05-12 11:50:21 +01:00
marauder2k7 e2c4f88faf plugging moar leaks
Namespace Leaks: these leaks would have been freed on app kill but they were still contaminating the log so free em.
Con::shutdown: gGlobablVars again another leak that would of been freed on app kill
AssetManager onRemove should be clearing its lists
Scripting language needs a free for its strings these destructors free after the rule is executed so the data is cached internally and then freed. This may be needed for other types in the union (should not be used on nodes just raw data)
2025-05-12 11:50:20 +01:00
marauder2k7 b630442683 Update assetManager.cpp
stop crash when dumping declared assets if the asset is private
2025-03-26 17:34:25 +00:00
JeffR 3442aceb0f Updates most of the handling of asset types to follow a more standardized type-registration system.
This streamlines much of the code and makes it easier to find and follow how different asset, object and file types are handled by the asset browser
Also clears out various bits of cruft and old commented blocks of code
2024-09-28 16:09:56 -05:00
AzaezelX 3ace31c68c crashfix work for hot-editing shape assets tied to tsstatics 2024-04-06 14:48:22 -05:00
marauder2k7 2b295fb7f0 rest of virtuals removed
virtuals removed and replaced with override where necessary on the rest of the code base, clang-tidy to the rescue.
2024-03-18 18:40:22 +00:00
marauder2k7 efbe5e90f5 virtuals removed
virtuals removed and replaced with override where necessary, clang-tidy to the rescue.
2024-03-18 18:13:00 +00:00
Areloch 55697cffdb Streamlined baseUI profiles
Implemented audioOptions file with structure to comply to BaseUI options menu
Implemented majority of keybind remapping logic for options menu
2023-12-18 23:49:13 -06:00
AzaezelX 1cf754dbca asset load refactor
genral load method, now returns loadedstate across the board
2023-11-12 16:33:17 -06:00
AzaezelX b710a309bd asset load flow work
add reloading state to asset tracking,
convert most asset.isnull() checks on over to skipping out unless the errcode is ::Ok, or ::UsingFallback
add more errstriongcodes to hook up
skip load<type> execution if the asset loaded state is ::Ok
2023-10-08 13:19:43 -05:00
JeffR 167f98b767 Expands ScriptAsset behavior to operate as a generic type-settable asset 2023-02-23 15:29:59 -06:00
AzaezelX f5a34308f9 add a docsURL; macro to link a given set of script config vars to git or similar storage urls via clicking on the inspector 2023-01-27 01:13:15 -06:00
JeffR 305e4851e0 Fixes issue with using Edit Asset in RMB menu in AB on datablocks where it wouldn't correctly recognize the datablock
Fixes issue where the local sfxProfile in a sfxEmitter would share pointer reference to the utilized shapeAsset's sound buffer, so when it's deleted it would nuke the soundAsset's buffer, causing reference exceptions
Adds includes to torqueConfig.h in several files that are blocked out with TORQUE_TOOLS to ensure that if the flag is on in the config file, the files are loaded/compiled as expected
Add sanity check to AssetManager::unloadAsset to ensure that the assetDef being unloaded was actually correctly loaded/registered into the console in the first place
2022-07-02 23:27:18 -05:00
AzaezelX d883575d0f fix compilation flaws 2022-03-17 17:38:41 -05:00
JeffR 630285def6 Shifts handling of material and terrain material definitions to be written into the asset definition taml file instead of having an extra loose file
Also updates importers to correctly handle this change
Adds ability for taml XML serialization to properly assign array'd fields
Adds 'inheritFrom' field to simobjects for when objects with parent objects are serialized
AssetBase how inherits from SimGroup so it can have objects like material definitions embedded in them for save/load in the taml definition file
Updated loading/handling logic in terrain material asset to be more similar to regular material assets
2022-01-30 11:50:16 -06:00
AzaezelX 98a079a797 code duplication prune. should aid in stability 2021-10-03 02:56:26 -05:00
Areloch cfe122f714 Enforces filename string case sensitivity for assets' internal filenames, which avoids the stringtable messing with the case preventing file name case sensitivity issues. 2021-08-21 23:12:37 -05:00
AzaezelX 69abcb862c assetbase crashes: test (most) cases for mpAssetDefinition existing before returning values. return empty if it doesn't. 2021-08-17 15:32:05 -05:00
AzaezelX b5b06c4a10 assettext/macrotext/assetdoc refinements ala https://github.com/TorqueGameEngines/Torque3D/pull/518 2021-07-31 17:06:19 -05:00
AzaezelX 059fb63487 set initial asset loaded state to not loaded 2021-07-22 11:57:11 -05:00
Areloch 5525f8ecdd Converts all game, gui editor, and system classes to utilize assets
Processed core, tools and default modules to utilize assets
Converted all console types that were string based, such as TypeImageFilename to utilize const char*/the string table, which avoids a lot of type swapping shenanigans and avoids string corruption
Removed unneeded MainEditor mockup module
Removed some unused/duplicate image assets from the tools
2021-07-19 01:07:08 -05:00
OTHGMars 8148bdfcdd ModuleManager and AssetManager updated for T3D mount system.
Platform file calls replaced with Torque::FS calls when scanning for or loading files.
2021-01-11 05:03:00 -05:00
AzaezelX ae5f766abe just to save a PR: default asset visitor variables to emptystring 2020-12-03 15:38:42 -06:00
AzaezelX 8bb43dd5ae error string interpreter, example of usage in shapebase::preload, plus flips the datablock filter back on to save some network bandwidth. 2020-12-03 15:37:51 -06:00
AzaezelX 220771d2fe variation on #387 that also introduces errorcodes 2020-12-01 19:16:36 -06:00
Areloch 9ca276fef0 Misc fixes to ensure that the default postFX save, load and editing process is valid
Also fixes it so if a level asset doesn't point to a valid postfx preset file, it'll generate a clean one on save
2020-11-01 15:39:30 -06:00
Areloch 40dd926873 Adds function for sceneObjects to report utilized assets
Add reporting of used assets to tsStatics and TerrData
When saving a Scene, it will write static object asset dependencies to it's levelAsset
Shifted level loader logic to pass up the levelAsset rather than full level path
Made it so when level is loading, the levelAsset loads its dependencies. When the level is ended, as part of cleanup, they are unloaded
Shifts defaultEditorLevel to be an actual asset and made the ToolsModule load assets
Fixes the Save As action to correctly save out to the new level asset
Fixed the autoLoadAssets logic to be cleaner and not manually check types
Removed extra, unused DefaultEditorFile file
2020-08-19 18:30:42 -05:00
Areloch 66cc6fb9d1 Removes current implement of shadow caching
Also removes EC stuff as it's not ready for prime-time yet
2019-12-13 01:14:03 -06:00
Areloch d8cc73f5a1 Added utility methods to AssetBase:
getAssetDependencyFieldCount
clearAssetDependencyFields
addAssetDependencyField
saveAsset

Updated the saveAsset function for terrain block to utilize utility methods to ensure the terrain asset's material dependencies, so they will load properly.
2019-11-07 00:42:55 -06:00
Areloch 3fa7a0d4fa Various fixes 2019-05-11 21:42:27 -05:00
Areloch ddfc416418 Expands/Cleans up a lot of the asset functionality, including management, file association, and creation/importing 2019-05-04 11:49:42 -05:00
Areloch b79030ebb4 Tweaks to the Asset/Module info echo behavior to spam the console less. 2019-02-23 14:20:57 -06:00
Areloch 6cf0c9e360 Merge branch 'development' into EngineAPI-Refactor 2018-12-09 14:48:50 -06:00