Remove all QUADS usage. Replaced with TRIANGLES and TRIANGLE_STRIP. May do another pass and replace un-textured TRIANGLE_STRIPs with TRIANGLES to reduce flush calls.

This commit is contained in:
Shyotl
2017-02-11 02:03:06 -06:00
parent 271c37442d
commit 693781a014
29 changed files with 599 additions and 837 deletions

View File

@@ -433,11 +433,11 @@ void LLWorldMapView::draw()
gGL.color4f(0.2f, 0.0f, 0.0f, 0.4f);
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
gGL.begin(LLRender::QUADS);
gGL.begin(LLRender::TRIANGLE_STRIP);
gGL.vertex2f(left, top);
gGL.vertex2f(left, bottom);
gGL.vertex2f(right, bottom);
gGL.vertex2f(right, top);
gGL.vertex2f(right, bottom);
gGL.end();
gGL.blendFunc(LLRender::BF_SOURCE_ALPHA, LLRender::BF_ONE_MINUS_SOURCE_ALPHA);
}
@@ -475,15 +475,15 @@ void LLWorldMapView::draw()
{
gGL.getTexUnit(0)->bind(overlayimage);
gGL.color4f(1.f, 1.f, 1.f, alpha);
gGL.begin(LLRender::QUADS);
gGL.begin(LLRender::TRIANGLE_STRIP);
gGL.texCoord2f(0.f, 1.f);
gGL.vertex3f(left, top, -0.5f);
gGL.texCoord2f(0.f, 0.f);
gGL.vertex3f(left, bottom, -0.5f);
gGL.texCoord2f(1.f, 0.f);
gGL.vertex3f(right, bottom, -0.5f);
gGL.texCoord2f(1.f, 1.f);
gGL.vertex3f(right, top, -0.5f);
gGL.texCoord2f(1.f, 0.f);
gGL.vertex3f(right, bottom, -0.5f);
gGL.end();
}
}
@@ -582,11 +582,11 @@ void LLWorldMapView::draw()
gGL.color4f(0.5f, 0.0f, 0.0f, 0.4f);
else
gGL.color4f(0.2f, .2f, 0.2f, 0.4f);
gGL.begin(LLRender::QUADS);
gGL.begin(LLRender::TRIANGLE_STRIP);
gGL.vertex2f(base_left+padding, base_top-padding);
gGL.vertex2f(base_left+padding, base_bottom+padding);
gGL.vertex2f(base_right - padding, base_top - padding);
gGL.vertex2f(base_right-padding, base_bottom+padding);
gGL.vertex2f(base_right-padding, base_top-padding);
gGL.end();
if(it != LLWorldMap::getInstance()->getMapBlockEnd(SIM_LAYER_OVERLAY))
{
@@ -610,11 +610,11 @@ void LLWorldMapView::draw()
gGL.color4f(0.0f, 0.5f, 0.0f, 0.4f);
else
gGL.color4f(0.4f, 0.0f, 0.0f, 0.4f);
gGL.begin(LLRender::QUADS);
gGL.begin(LLRender::TRIANGLE_STRIP);
gGL.vertex2f(block_left+padding, block_top-padding);
gGL.vertex2f(block_left+padding, block_bottom+padding);
gGL.vertex2f(block_right - padding, block_top - padding);
gGL.vertex2f(block_right-padding, block_bottom+padding);
gGL.vertex2f(block_right-padding, block_top-padding);
gGL.end();
for(U32 sim_x=0;sim_x<MAP_BLOCK_SIZE;++sim_x)
@@ -632,11 +632,11 @@ void LLWorldMapView::draw()
const F32 sim_right = block_left + sim_x*sMapScale + sMapScale - (sim_x<(MAP_BLOCK_SIZE-1) ? 0 : padding);
gGL.color4f(0.0f, 0.0f, 0.4f, 0.4f);
gGL.begin(LLRender::QUADS);
gGL.begin(LLRender::TRIANGLE_STRIP);
gGL.vertex2f(sim_left, sim_top);
gGL.vertex2f(sim_left, sim_bottom);
gGL.vertex2f(sim_right, sim_bottom);
gGL.vertex2f(sim_right, sim_top);
gGL.vertex2f(sim_right, sim_bottom);
gGL.end();
}
}
@@ -840,29 +840,29 @@ void LLWorldMapView::drawLegacyBackgroundLayers(S32 width, S32 height) {
// Draw map image into RGB
gGL.setColorMask(true, false);
gGL.color4f(1.f, 1.f, 1.f, 1.f);
gGL.begin(LLRender::QUADS);
gGL.begin(LLRender::TRIANGLE_STRIP);
gGL.texCoord2f(0.0f, 1.0f);
gGL.vertex3f(left, top, -1.0f);
gGL.texCoord2f(0.0f, 0.0f);
gGL.vertex3f(left, bottom, -1.0f);
gGL.texCoord2f(1.0f, 0.0f);
gGL.vertex3f(right, bottom, -1.0f);
gGL.texCoord2f(1.0f, 1.0f);
gGL.vertex3f(right, top, -1.0f);
gGL.texCoord2f(1.0f, 0.0f);
gGL.vertex3f(right, bottom, -1.0f);
gGL.end();
// draw an alpha of 1 where the sims are visible
gGL.setColorMask(false, true);
gGL.color4f(1.f, 1.f, 1.f, 1.f);
gGL.begin(LLRender::QUADS);
gGL.begin(LLRender::TRIANGLE_STRIP);
gGL.texCoord2f(0.0f, 1.0f);
gGL.vertex2f(left, top);
gGL.texCoord2f(0.0f, 0.0f);
gGL.vertex2f(left, bottom);
gGL.texCoord2f(1.0f, 0.0f);
gGL.vertex2f(right, bottom);
gGL.texCoord2f(1.0f, 1.0f);
gGL.vertex2f(right, top);
gGL.texCoord2f(1.0f, 0.0f);
gGL.vertex2f(right, bottom);
gGL.end();
gGL.setColorMask(true, true);
@@ -919,15 +919,15 @@ F32 LLWorldMapView::drawLegacySimTile(LLSimInfo& sim_info, S32 left, S32 top, S3
{
gGL.getTexUnit(0)->bind(simimage);
gGL.color4f(1.f, 1.f, 1.f, alpha);
gGL.begin(LLRender::QUADS);
gGL.begin(LLRender::TRIANGLE_STRIP);
gGL.texCoord2f(0.f, 1.f);
gGL.vertex2f(left, top);
gGL.texCoord2f(0.f, 0.f);
gGL.vertex2f(left, bottom);
gGL.texCoord2f(1.f, 0.f);
gGL.vertex2f(right, bottom);
gGL.texCoord2f(1.f, 1.f);
gGL.vertex2f(right, top);
gGL.texCoord2f(1.f, 0.f);
gGL.vertex2f(right, bottom);
gGL.end();
}
}
@@ -1045,15 +1045,15 @@ bool LLWorldMapView::drawMipmapLevel(S32 width, S32 height, S32 level, bool load
gGL.getTexUnit(0)->bind(simimage.get());
simimage->setAddressMode(LLTexUnit::TAM_CLAMP);
gGL.color4f(1.f, 1.0f, 1.0f, 1.0f);
gGL.begin(LLRender::QUADS);
gGL.begin(LLRender::TRIANGLE_STRIP);
gGL.texCoord2f(0.f, 1.f);
gGL.vertex3f(left, top, 0.f);
gGL.texCoord2f(0.f, 0.f);
gGL.vertex3f(left, bottom, 0.f);
gGL.texCoord2f(1.f, 0.f);
gGL.vertex3f(right, bottom, 0.f);
gGL.texCoord2f(1.f, 1.f);
gGL.vertex3f(right, top, 0.f);
gGL.texCoord2f(1.f, 0.f);
gGL.vertex3f(right, bottom, 0.f);
gGL.end();
#if DEBUG_DRAW_TILE
drawTileOutline(level, top, left, bottom, right);