Remove legacy renderer dependencies in LyShine and move LyShine headers to gem (#6049)

* Remove CryRenderer dependencies

Signed-off-by: abrmich <abrmich@amazon.com>

* Fix non-unity compile error

Signed-off-by: abrmich <abrmich@amazon.com>

* Remove ITexture.h reference

Signed-off-by: abrmich <abrmich@amazon.com>

* Simple file moves from CryCommon to LyShine Gem

Signed-off-by: abrmich <abrmich@amazon.com>

* More simple file moves from CryCommon to LyShine Gem

Signed-off-by: abrmich <abrmich@amazon.com>

* Move more headers from CryCommon to LyShine Gem

Signed-off-by: abrmich <abrmich@amazon.com>

* Add LyShine gem module as a build dependency to fix compile error in some gems

Signed-off-by: abrmich <abrmich@amazon.com>
This commit is contained in:
michabr
2021-12-02 14:47:32 -08:00
committed by GitHub
parent 28f38ca009
commit 4d5aad13d1
131 changed files with 329 additions and 318 deletions
+32 -8
View File
@@ -1053,6 +1053,23 @@ namespace
return maxLinesElementCanHold;
}
//! Converts the vertex format used by FFont to the format being used by the dynamic draw context in LyShine.
//!
//! Note that the formats are currently identical, but this may change with the removal of more legacy code
void FontVertexToUiVertex(const SVF_P2F_C4B_T2F_F4B* fontVertices, LyShine::UiPrimitiveVertex* uiVertices, int numVertices)
{
for (int i = 0; i < numVertices; ++i)
{
uiVertices[i].xy = fontVertices[i].xy;
uiVertices[i].color.dcolor = fontVertices[i].color.dcolor;
uiVertices[i].st = fontVertices[i].st;
uiVertices[i].texIndex = fontVertices[i].texIndex;
uiVertices[i].texHasColorChannel = fontVertices[i].texHasColorChannel;
uiVertices[i].texIndex2 = fontVertices[i].texIndex2;
uiVertices[i].pad = fontVertices[i].pad;
}
}
} // anonymous namespace
////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -1823,7 +1840,7 @@ void UiTextComponent::Render(LyShine::IRenderGraph* renderGraph)
for (UiTransformInterface::RectPoints& rect : rectPoints)
{
DynUiPrimitive* primitive = renderGraph->GetDynamicQuadPrimitive(rect.pt, packedColor);
LyShine::UiPrimitive* primitive = renderGraph->GetDynamicQuadPrimitive(rect.pt, packedColor);
primitive->m_next = nullptr;
LyShine::RenderGraph* lyRenderGraph = static_cast<LyShine::RenderGraph*>(renderGraph); // LYSHINE_ATOM_TODO - find a different solution from downcasting - GHI #3570
@@ -4078,16 +4095,19 @@ void UiTextComponent::RenderDrawBatchLines(
cacheBatch->m_font = drawBatch.font;
cacheBatch->m_color = batchColor;
cacheBatch->m_cachedPrimitive.m_vertices = new SVF_P2F_C4B_T2F_F4B[numQuads * 4];
cacheBatch->m_cachedPrimitive.m_vertices = new LyShine::UiPrimitiveVertex[numQuads * 4];
cacheBatch->m_cachedPrimitive.m_indices = new uint16[numQuads * 6];
AZStd::vector<SVF_P2F_C4B_T2F_F4B> vertices(numQuads * 4);
uint32 numQuadsWritten = cacheBatch->m_font->WriteTextQuadsToBuffers(
cacheBatch->m_cachedPrimitive.m_vertices, cacheBatch->m_cachedPrimitive.m_indices, numQuads,
vertices.data(), cacheBatch->m_cachedPrimitive.m_indices, numQuads,
cacheBatch->m_position.GetX(), cacheBatch->m_position.GetY(), 1.0f, cacheBatch->m_text.c_str(), true, fontContext);
AZ_Assert(numQuadsWritten <= numQuads, "value returned from WriteTextQuadsToBuffers is larger than size allocated");
cacheBatch->m_cachedPrimitive.m_numVertices = numQuadsWritten * 4;
int numVertices = numQuadsWritten * 4;
FontVertexToUiVertex(vertices.data(), cacheBatch->m_cachedPrimitive.m_vertices, numVertices);
cacheBatch->m_cachedPrimitive.m_numVertices = numVertices;
cacheBatch->m_cachedPrimitive.m_numIndices = numQuadsWritten * 6;
cacheBatch->m_fontTextureVersion = drawBatch.font->GetFontTextureVersion();
@@ -4148,7 +4168,7 @@ void UiTextComponent::RenderDrawBatchLines(
cacheImageBatch->m_texture = drawBatch.image->m_texture;
cacheImageBatch->m_cachedPrimitive.m_vertices = new SVF_P2F_C4B_T2F_F4B[4];
cacheImageBatch->m_cachedPrimitive.m_vertices = new LyShine::UiPrimitiveVertex[4];
for (int i = 0; i < 4; ++i)
{
cacheImageBatch->m_cachedPrimitive.m_vertices[i].xy = Vec2(imageQuad[i].GetX(), imageQuad[i].GetY());
@@ -4197,15 +4217,19 @@ void UiTextComponent::UpdateTextRenderBatchesForFontTextureChange()
delete [] cacheBatch->m_cachedPrimitive.m_vertices;
delete [] cacheBatch->m_cachedPrimitive.m_indices;
cacheBatch->m_cachedPrimitive.m_vertices = new SVF_P2F_C4B_T2F_F4B[numQuads * 4];
cacheBatch->m_cachedPrimitive.m_vertices = new LyShine::UiPrimitiveVertex[numQuads * 4];
cacheBatch->m_cachedPrimitive.m_indices = new uint16[numQuads * 6];
}
AZStd::vector<SVF_P2F_C4B_T2F_F4B> vertices(numQuads * 4);
uint32 numQuadsWritten = cacheBatch->m_font->WriteTextQuadsToBuffers(
cacheBatch->m_cachedPrimitive.m_vertices, cacheBatch->m_cachedPrimitive.m_indices, numQuads,
vertices.data(), cacheBatch->m_cachedPrimitive.m_indices, numQuads,
cacheBatch->m_position.GetX(), cacheBatch->m_position.GetY(), 1.0f, cacheBatch->m_text.c_str(), true, fontContext);
cacheBatch->m_cachedPrimitive.m_numVertices = numQuadsWritten * 4;
int numVertices = numQuadsWritten * 4;
FontVertexToUiVertex(vertices.data(), cacheBatch->m_cachedPrimitive.m_vertices, numVertices);
cacheBatch->m_cachedPrimitive.m_numVertices = numVertices;
cacheBatch->m_cachedPrimitive.m_numIndices = numQuadsWritten * 6;
cacheBatch->m_fontTextureVersion = cacheBatch->m_font->GetFontTextureVersion();