| 938 | } |
| 939 | |
| 940 | void CGraphics_Threaded::QuadsDrawFreeform(const CFreeformItem *pArray, int Num) |
| 941 | { |
| 942 | dbg_assert(m_Drawing == EDrawing::QUADS || m_Drawing == EDrawing::TRIANGLES, "called Graphics()->QuadsDrawFreeform without begin"); |
| 943 | |
| 944 | if((g_Config.m_GfxQuadAsTriangle && !m_GLUseTrianglesAsQuad) || m_Drawing == EDrawing::TRIANGLES) |
| 945 | { |
| 946 | for(int i = 0; i < Num; ++i) |
| 947 | { |
| 948 | m_aVertices[m_NumVertices + 6 * i].m_Pos.x = pArray[i].m_X0; |
| 949 | m_aVertices[m_NumVertices + 6 * i].m_Pos.y = pArray[i].m_Y0; |
| 950 | m_aVertices[m_NumVertices + 6 * i].m_Tex = m_aTexture[0]; |
| 951 | SetColor(&m_aVertices[m_NumVertices + 6 * i], 0); |
| 952 | |
| 953 | m_aVertices[m_NumVertices + 6 * i + 1].m_Pos.x = pArray[i].m_X1; |
| 954 | m_aVertices[m_NumVertices + 6 * i + 1].m_Pos.y = pArray[i].m_Y1; |
| 955 | m_aVertices[m_NumVertices + 6 * i + 1].m_Tex = m_aTexture[1]; |
| 956 | SetColor(&m_aVertices[m_NumVertices + 6 * i + 1], 1); |
| 957 | |
| 958 | m_aVertices[m_NumVertices + 6 * i + 2].m_Pos.x = pArray[i].m_X3; |
| 959 | m_aVertices[m_NumVertices + 6 * i + 2].m_Pos.y = pArray[i].m_Y3; |
| 960 | m_aVertices[m_NumVertices + 6 * i + 2].m_Tex = m_aTexture[3]; |
| 961 | SetColor(&m_aVertices[m_NumVertices + 6 * i + 2], 3); |
| 962 | |
| 963 | m_aVertices[m_NumVertices + 6 * i + 3].m_Pos.x = pArray[i].m_X0; |
| 964 | m_aVertices[m_NumVertices + 6 * i + 3].m_Pos.y = pArray[i].m_Y0; |
| 965 | m_aVertices[m_NumVertices + 6 * i + 3].m_Tex = m_aTexture[0]; |
| 966 | SetColor(&m_aVertices[m_NumVertices + 6 * i + 3], 0); |
| 967 | |
| 968 | m_aVertices[m_NumVertices + 6 * i + 4].m_Pos.x = pArray[i].m_X3; |
| 969 | m_aVertices[m_NumVertices + 6 * i + 4].m_Pos.y = pArray[i].m_Y3; |
| 970 | m_aVertices[m_NumVertices + 6 * i + 4].m_Tex = m_aTexture[3]; |
| 971 | SetColor(&m_aVertices[m_NumVertices + 6 * i + 4], 3); |
| 972 | |
| 973 | m_aVertices[m_NumVertices + 6 * i + 5].m_Pos.x = pArray[i].m_X2; |
| 974 | m_aVertices[m_NumVertices + 6 * i + 5].m_Pos.y = pArray[i].m_Y2; |
| 975 | m_aVertices[m_NumVertices + 6 * i + 5].m_Tex = m_aTexture[2]; |
| 976 | SetColor(&m_aVertices[m_NumVertices + 6 * i + 5], 2); |
| 977 | } |
| 978 | |
| 979 | AddVertices(3 * 2 * Num); |
| 980 | } |
| 981 | else |
| 982 | { |
| 983 | for(int i = 0; i < Num; ++i) |
| 984 | { |
| 985 | m_aVertices[m_NumVertices + 4 * i].m_Pos.x = pArray[i].m_X0; |
| 986 | m_aVertices[m_NumVertices + 4 * i].m_Pos.y = pArray[i].m_Y0; |
| 987 | m_aVertices[m_NumVertices + 4 * i].m_Tex = m_aTexture[0]; |
| 988 | SetColor(&m_aVertices[m_NumVertices + 4 * i], 0); |
| 989 | |
| 990 | m_aVertices[m_NumVertices + 4 * i + 1].m_Pos.x = pArray[i].m_X1; |
| 991 | m_aVertices[m_NumVertices + 4 * i + 1].m_Pos.y = pArray[i].m_Y1; |
| 992 | m_aVertices[m_NumVertices + 4 * i + 1].m_Tex = m_aTexture[1]; |
| 993 | SetColor(&m_aVertices[m_NumVertices + 4 * i + 1], 1); |
| 994 | |
| 995 | m_aVertices[m_NumVertices + 4 * i + 2].m_Pos.x = pArray[i].m_X3; |
| 996 | m_aVertices[m_NumVertices + 4 * i + 2].m_Pos.y = pArray[i].m_Y3; |
| 997 | m_aVertices[m_NumVertices + 4 * i + 2].m_Tex = m_aTexture[3]; |
no outgoing calls
no test coverage detected