reduce upload since of vertices if drawing quads

This commit is contained in:
Jupeyy 2017-09-14 02:50:31 +02:00
parent 77b3c39553
commit 1167ab822c
2 changed files with 5 additions and 9 deletions

View file

@ -59,7 +59,7 @@ void CGraphics_Threaded::FlushVertices()
if(m_Drawing == DRAWING_QUADS) if(m_Drawing == DRAWING_QUADS)
{ {
if(g_Config.m_GfxQuadAsTriangle || m_UseOpenGL3_3) if(g_Config.m_GfxQuadAsTriangle && !m_UseOpenGL3_3)
{ {
Cmd.m_PrimType = CCommandBuffer::PRIMTYPE_TRIANGLES; Cmd.m_PrimType = CCommandBuffer::PRIMTYPE_TRIANGLES;
Cmd.m_PrimCount = NumVerts/3; Cmd.m_PrimCount = NumVerts/3;
@ -594,11 +594,10 @@ void CGraphics_Threaded::QuadsDraw(CQuadItem *pArray, int Num)
void CGraphics_Threaded::QuadsDrawTL(const CQuadItem *pArray, int Num) void CGraphics_Threaded::QuadsDrawTL(const CQuadItem *pArray, int Num)
{ {
CCommandBuffer::SPoint Center; CCommandBuffer::SPoint Center;
Center.z = 0;
dbg_assert(m_Drawing == DRAWING_QUADS, "called Graphics()->QuadsDrawTL without begin"); dbg_assert(m_Drawing == DRAWING_QUADS, "called Graphics()->QuadsDrawTL without begin");
if(g_Config.m_GfxQuadAsTriangle || m_UseOpenGL3_3) if(g_Config.m_GfxQuadAsTriangle && !m_UseOpenGL3_3)
{ {
for(int i = 0; i < Num; ++i) for(int i = 0; i < Num; ++i)
{ {
@ -686,7 +685,7 @@ void CGraphics_Threaded::QuadsDrawFreeform(const CFreeformItem *pArray, int Num)
{ {
dbg_assert(m_Drawing == DRAWING_QUADS, "called Graphics()->QuadsDrawFreeform without begin"); dbg_assert(m_Drawing == DRAWING_QUADS, "called Graphics()->QuadsDrawFreeform without begin");
if(g_Config.m_GfxQuadAsTriangle || m_UseOpenGL3_3) if(g_Config.m_GfxQuadAsTriangle && !m_UseOpenGL3_3)
{ {
for(int i = 0; i < Num; ++i) for(int i = 0; i < Num; ++i)
{ {
@ -1256,10 +1255,6 @@ int CGraphics_Threaded::Init()
m_pStorage = Kernel()->RequestInterface<IStorage>(); m_pStorage = Kernel()->RequestInterface<IStorage>();
m_pConsole = Kernel()->RequestInterface<IConsole>(); m_pConsole = Kernel()->RequestInterface<IConsole>();
// Set all z to -5.0f
for(int i = 0; i < MAX_VERTICES; i++)
m_aVertices[i].m_Pos.z = -5.0f;
// init textures // init textures
m_FirstFreeTexture = 0; m_FirstFreeTexture = 0;
for(int i = 0; i < MAX_TEXTURES-1; i++) for(int i = 0; i < MAX_TEXTURES-1; i++)

View file

@ -53,6 +53,7 @@ public:
enum enum
{ {
MAX_TEXTURES=1024*4, MAX_TEXTURES=1024*4,
MAX_VERTICES=32*1024,
}; };
enum enum
@ -140,7 +141,7 @@ public:
//fix all alignments in any struct -- e.g. don't align to 8 bytes at 64bit code //fix all alignments in any struct -- e.g. don't align to 8 bytes at 64bit code
#pragma pack(push, 1) #pragma pack(push, 1)
struct SPoint { float x, y, z; }; struct SPoint { float x, y; };
struct STexCoord { float u, v; }; struct STexCoord { float u, v; };
struct SColor { float r, g, b, a; }; struct SColor { float r, g, b, a; };