45b2336dce
* WIP - small legacy cleanup Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com> * More cleanups + build fixes Use AZstd instead of std types in a few places. Remove m_nameTable. Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com> * Legacy code cleanups Remove unused methods using legacy functionality * EditorViewportWidget::AdjustObjectPosition * DisplayContext - remove `renderer` pointer * DisplayContext - log errors when functions using `renderer` are called * CTrackGizmo::DrawAxis - log errors when function uses `renderer`. * Legacy CCamera - remove Project, Unproject and CalcScreenBounds * Remove all unused methods from Cry_GeoDistance.h/Cry_GeoIntersect.h * Remove Lineseg_Triangle from Cry_GeoOverlap.h * IEntityRenderState.h - remove unused types * SMeshColor remove Lerp method and associated constructor. * IMaterial.h - remove unused types and a few methods * IRenderMesh.h - remove a few unused methods and use int8 instead of byte * IRender.h - remove almost all of the contents * IShader.h - remove unused types and a few methods * IStatObj.h - remove unused types and a few methods * SSystemGlobalEnvironment - remove `renderer` pointer * IRenderGraph - remove 2 unused methods * physinterface.h - remove almost all of the contents * CXmlUtils no longer inherits ISystemEventListener * CXmlNode no longer has custom new/delete * Remove IRenderer from some test mocks. Removed files: * CryName.h * Cry_MatrixDiag.h * Cry_XOptimise.h * HeapAllocator.h * IRendererMock.h * PoolAllocator.h Things to consider: * Remove GetMemoryUsage & friends. Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com> * Apply review suggestions IMovieSystem.h - remove unused includes. Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com> * Move unreachable code to `#if 0` block This is hopefully temporary measure until the original functionality is re-implemented Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com> * Fix bad merge I messed up. Fix bad merge I messed up, by re-removing FrameProfiler.h from crycommon_files.cmake (this was removed in an earlier commit this morning: https://github.com/o3de/o3de/pull/3394). Signed-off-by: bosnichd <bosnichd@amazon.com> * Update Code/Framework/AzCore/AzCore/std/string/string_view.h Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com> Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com> * implement review suggestion Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com> * following review, using LYSHINE_ATOM_TODO to guard Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com> * Remove commented out include Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com> * EditorViewportWidget.cpp: Convert commented out code to guarded one Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com> Co-authored-by: bosnichd <bosnichd@amazon.com> Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
81 lines
3.3 KiB
C++
81 lines
3.3 KiB
C++
/*
|
|
* Copyright (c) Contributors to the Open 3D Engine Project.
|
|
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
|
*
|
|
*/
|
|
#pragma once
|
|
|
|
#include <IRenderer.h>
|
|
#include <ITexture.h>
|
|
#include <LyShine/UiBase.h>
|
|
|
|
namespace AZ
|
|
{
|
|
class Color;
|
|
class Vector2;
|
|
}
|
|
|
|
namespace LyShine
|
|
{
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// UI visual components use this interface to add primitives to the render graph, which is how the
|
|
// UI gets rendered.
|
|
// There is one render graph per UI canvas. The render graph (like a display list) is rebuilt when
|
|
// any visual change occurs on the canvas.
|
|
class IRenderGraph
|
|
{
|
|
public:
|
|
|
|
//! Virtual destructor
|
|
virtual ~IRenderGraph() {}
|
|
|
|
//---- Functions for creating and adding primitives to the render graph ----
|
|
|
|
//! Begin the setup of a mask render node, primitives added between this call and StartChildrenForMask define the mask
|
|
virtual void BeginMask(bool isMaskingEnabled, bool useAlphaTest, bool drawBehind, bool drawInFront) = 0;
|
|
|
|
//! Start defining the children (masked primitives) of a mask
|
|
virtual void StartChildrenForMask() = 0;
|
|
|
|
//! End the setup of a mask render node, this marks the end of adding child primitives
|
|
virtual void EndMask() = 0;
|
|
|
|
//! Begin rendering to a texture
|
|
virtual void BeginRenderToTexture(int renderTargetHandle, SDepthTexture* renderTargetDepthSurface,
|
|
const AZ::Vector2& viewportTopLeft, const AZ::Vector2& viewportSize, const AZ::Color& clearColor) = 0;
|
|
|
|
//! End rendering to a texture
|
|
virtual void EndRenderToTexture() = 0;
|
|
|
|
//! Get a dynamic quad primitive that can be added as an image primitive to the render graph
|
|
//! The graph handles the allocation of this DynUiPrimitive and deletes it when the graph is reset
|
|
//! This can be used if the UI component doesn't want to own the storage of the primitive. Used infrequently,
|
|
//! e.g. for the selection rect on a text component.
|
|
virtual DynUiPrimitive* GetDynamicQuadPrimitive(const AZ::Vector2* positions, uint32 packedColor) = 0;
|
|
|
|
//---- Functions for supporting masking (used during creation of the graph, not rendering ) ----
|
|
|
|
//! Get flag that indicates we are rendering into a mask. Used to avoid masks on child mask elements.
|
|
virtual bool IsRenderingToMask() const = 0;
|
|
|
|
//! Set flag that we are rendering into a mask. Used to avoid masks on child mask elements.
|
|
virtual void SetIsRenderingToMask(bool isRenderingToMask) = 0;
|
|
|
|
//---- Functions for supporting fading (used during creation of the graph, not rendering ) ----
|
|
|
|
//! Push an alpha fade, this is multiplied with any existing alpha fade from parents
|
|
virtual void PushAlphaFade(float alphaFadeValue) = 0;
|
|
|
|
//! Push a new alpha fade value, this replaces any existing alpha fade
|
|
virtual void PushOverrideAlphaFade(float alphaFadeValue) = 0;
|
|
|
|
//! Pop an alpha fade off the stack
|
|
virtual void PopAlphaFade() = 0;
|
|
|
|
//! Get the current alpha fade value
|
|
virtual float GetAlphaFade() const = 0;
|
|
};
|
|
}
|