Thumbnails for the AtomLyIntegration common feature gem were no longer being rendered. The setup code was modified to initialize the thumbnail system after receiving a new event that critical assets finished compiling. This event was being sent and handled correctly in the main editor. This process was failing in other tools because the event was sent before systems were registered to listen for it.
To resolve the problem, atom tools application now explicitly connects to the asset processor and processes critical assets after the base application StartCommon function is called. This ensures that the connection is established and the event gets sent after all of the system components have been activated.
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
The CriticalAssetsCompiled event can be handled to detect when the
AssetProcessor has finished processing Critical Assets
Also with the new event, an audit has been performed over all the
locations where the AssetCatalogEventBus OnCatalogLoaded event was being
handle to make sure it was the proper event to use.
If the handler was actually examing the enumerating over the full
catalog or querying all assets within the catalog, then it was a proper
use.
For handlers that were interested in a particular asset it was not
Moreover added implementations of `OnCatalogAssetChanged` and
`OnCatalogAssetAdded` to the FileTagComponent and the MaterialViewportComponent.
Any applications which uses the AtomToolsApplication
class(MaterialEditor, AtomSampleViewerStandalone,
ShaderMangementConsole) now signals a "CriticalAssetsCompiled" lifecycle
event as well as loads the "assetcatalog.xml" if it exists.
The Launcher application signals the "CrticalAssetsCompiled" event and
reloads the "assetcatalog.xml" for the ${project}.GameLauncher and
${project}.ServerLauncher in Launcher.cpp
Finally the Editor signals the "CriticalAssetsCompiled" and reloads the
"assetcatalog.xml" in CryEdit.cpp
resolves#6093
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* draft
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
* Removes automatic generation of relative paths for external references for materials
Updated material editor functions for creating new materials, creating or saving model or lighting presets, to save to the project asset folder instead of the material folder which is not included in the new templates
Changed function for getting saved file names to handle case where Qt save file dialog adds double extensions if the extension contains a dot
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
* Fixed problems with material editor hot reloading after documents or dependencies changed.
Triggering message boxes within the tick function, which is executed from the main application timer, caused the tick function to be called a second time recursively.
Switched from using the tick bus to a timer so that the documents re opening and dialogs are triggered outside of the main tick.
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
Reduce the application update interval when it’s not in focus to reduce power consumption and interference with other applications
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
Moved settings registry wrapper function to atom tools framework
Created registry settings with default values for preview configurations based on asset type
Changed lighting preset previews and thumbnails to use reflective material
Created registry settings for preset selection dialog borders, padding, sizes
Updated shared preview utility functions to compare against registered asset types instead of passing them in individually
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
* Re-enabled linux tests physics
* Fix for python load errors on Linux (#5627)
* Explicitly load libpython on Linux
Downstream loads of python modules that weren't linked to libpython would
fail to load because libraries were loaded using the RTLD_LOCAL flag. This
adds a function that will explicitly load libpython on Linux using the
RTLD_GLOBAL flag.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Fix misspelled function name
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Addressing PR feedback
- Updates naming and location of things.
- Adds load code to a Gem template.
- Updates error checking.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Address further feedback
Removes the api function in favor of just having modules inherit off a
PythonLoader class, that way we get RAAI behavior and lifetime management
for free.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
Signed-off-by: aljanru <aljanru@amazon.co.uk>
Co-authored-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Explicitly load libpython on Linux
Downstream loads of python modules that weren't linked to libpython would
fail to load because libraries were loaded using the RTLD_LOCAL flag. This
adds a function that will explicitly load libpython on Linux using the
RTLD_GLOBAL flag.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Fix misspelled function name
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Addressing PR feedback
- Updates naming and location of things.
- Adds load code to a Gem template.
- Updates error checking.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Address further feedback
Removes the api function in favor of just having modules inherit off a
PythonLoader class, that way we get RAAI behavior and lifetime management
for free.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
Replaced and removed the CryTimer (gEnv->pTimer). The new TimeSystem is a merger of the current time functionality found in the engine.
* Rename TimeSystemComponent.h/.cpp to TimeSystem.h/.cpp
* Adding New TimeSystem
* remove old timer cvars
* small improvements to the time system.
- updated parts to use the time conversion functions.
- in AdvanceTickDeltaTimes applying t_simulationTickScale is now uses doubles instead of floats.
* Replace gEnv->pTimer / ITimer usages with TimeSystem
* Updating usages of AZ::TimeMs{ 0 } and AZ::TimeUs{ 0 } to AZ::Time::ZeroTimeMs and AZ::Time::ZeroTimeUs
* red code the CryTimer
* using TimeUs instead of TimeMs is some cases + updating usages of old cvars to new
Signed-off-by: amzn-sean <75276488+amzn-sean@users.noreply.github.com>
Material Editor also warns the user when saving a material that is populated with fallback image references.
Factored out the path strings for the default images to ImateSystemInterface.h.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
Made it a warning instead of an error when MaterialAssetCreator can't find a texture.
Updated the Material Editor's MaterialDocument class to not elevate warnings to errors.
Material Editor uses new features in TraceRecorder to show a message dialog when warnings are detected so the user is notified of the missing texture.
Next I will work on making MaterialAssetCreator put a "missing" texture in place of the requested one.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>