* Queue shader loads and register with the dynamic draw context after the shader is loaded to avoid a deadlock when there are multiple scenes processing at the same time.
Signed-off-by: amzn-tommy <waltont@amazon.com>
* Fixed AzCore case in AtomFont.h and two other files I found while searching
Signed-off-by: amzn-tommy <waltont@amazon.com>
* Switched to a utility that will both get the assetId and create the Asset, without calling GetAsset explicitely
Signed-off-by: amzn-tommy <waltont@amazon.com>
* Fixing typos in error message
Signed-off-by: amzn-tommy <waltont@amazon.com>
* Final update copyright headers to reference license files at the repo root
Signed-off-by: spham <spham@amazon.com>
* Fix copyright validator unit tests to support the stale O3DE header scenario
Signed-off-by: spham <spham@amazon.com>
* Move AtomFont over to use the new per viewport dynamic draw context.
Remove scene tracking and listening for bootstrap scene created.
Remove build dependency on the Bootstrap gem.
Add build dependency on the AtomBridge gem.
FFont's are now initialized with a viewport Id.
Remove previous DynamicDraw context per scene system.
Verify FFont can get a dynamic draw context before attempting initialization.
Ensure a render scene exists before attempting font initialization (as a proxy for rendering has begun)
* Move AtomFont FFont to use ShaderInputNameIndex's
This allowed removing all of the InitFont function as no longer need to query compiled shader info for constant data offsets.
* cache the AZ::Name used to find the dynamic draw context rather than recreate it each use
Updated AzFramework::Scene to allow it to serve as the one-stop location for localized singletons. Localized singletons in this case are instance that can only occur once in an environment but multiple times within an application. As an example, this allows settings up a single camera per viewport for instance.
Highlights of changes:
Replaced the original ebuses with interfaces and events for easy of use and performance.
Removed the Entity Context specific code and moved that to new locations within the Entity Context itself.
Allowed basic inheritance. If a subsystem isn't found in a scene the parent can optionally be searched.
Scenes can enter a zombie state and avoid immediately being deleted. This is needed for situations where subsystems can't be destroyed until async calls have been completed.