| 932 | } |
| 933 | |
| 934 | void CRenderLayerQuads::RenderQuadLayer(float Alpha, const CRenderLayerParams &Params) |
| 935 | { |
| 936 | CQuadLayerVisuals &Visuals = m_VisualQuad.value(); |
| 937 | if(Visuals.m_BufferContainerIndex == -1) |
| 938 | return; // no visuals were created |
| 939 | |
| 940 | for(auto &QuadCluster : m_vQuadClusters) |
| 941 | { |
| 942 | if(!IsVisibleInClipRegion(QuadCluster.m_ClipRegion)) |
| 943 | continue; |
| 944 | |
| 945 | if(!QuadCluster.m_Grouped) |
| 946 | { |
| 947 | bool AnyVisible = false; |
| 948 | for(int QuadClusterId = 0; QuadClusterId < QuadCluster.m_NumQuads; ++QuadClusterId) |
| 949 | { |
| 950 | CQuad *pQuad = &m_pQuads[QuadCluster.m_StartIndex + QuadClusterId]; |
| 951 | |
| 952 | ColorRGBA Color = ColorRGBA(1.0f, 1.0f, 1.0f, 1.0f); |
| 953 | if(pQuad->m_ColorEnv >= 0) |
| 954 | { |
| 955 | m_pEnvelopeManager->EnvelopeEval()->EnvelopeEval(pQuad->m_ColorEnvOffset, pQuad->m_ColorEnv, Color, 4); |
| 956 | } |
| 957 | Color.a *= Alpha; |
| 958 | |
| 959 | SQuadRenderInfo &QInfo = QuadCluster.m_vQuadRenderInfo[QuadClusterId]; |
| 960 | if(Color.a < 0.0f) |
| 961 | Color.a = 0.0f; |
| 962 | QInfo.m_Color = Color; |
| 963 | const bool IsVisible = Color.a >= 0.0f; |
| 964 | AnyVisible |= IsVisible; |
| 965 | |
| 966 | if(IsVisible) |
| 967 | { |
| 968 | ColorRGBA Position = ColorRGBA(0.0f, 0.0f, 0.0f, 0.0f); |
| 969 | m_pEnvelopeManager->EnvelopeEval()->EnvelopeEval(pQuad->m_PosEnvOffset, pQuad->m_PosEnv, Position, 3); |
| 970 | QInfo.m_Offsets.x = Position.r; |
| 971 | QInfo.m_Offsets.y = Position.g; |
| 972 | QInfo.m_Rotation = Position.b / 180.0f * pi; |
| 973 | } |
| 974 | } |
| 975 | if(AnyVisible) |
| 976 | Graphics()->RenderQuadLayer(Visuals.m_BufferContainerIndex, QuadCluster.m_vQuadRenderInfo.data(), QuadCluster.m_NumQuads, QuadCluster.m_StartIndex); |
| 977 | } |
| 978 | else |
| 979 | { |
| 980 | SQuadRenderInfo &QInfo = QuadCluster.m_vQuadRenderInfo[0]; |
| 981 | |
| 982 | ColorRGBA Color = ColorRGBA(1.0f, 1.0f, 1.0f, 1.0f); |
| 983 | if(QuadCluster.m_ColorEnv >= 0) |
| 984 | { |
| 985 | m_pEnvelopeManager->EnvelopeEval()->EnvelopeEval(QuadCluster.m_ColorEnvOffset, QuadCluster.m_ColorEnv, Color, 4); |
| 986 | } |
| 987 | |
| 988 | Color.a *= Alpha; |
| 989 | if(Color.a <= 0.0f) |
| 990 | continue; |
| 991 | QInfo.m_Color = Color; |
nothing calls this directly
no test coverage detected