Kaydet (Commit) 149e6267 authored tarafından Tomaž Vajngerl's avatar Tomaž Vajngerl

opengl: draw rectangle lines with only one glDrawArrays call

Change-Id: I33e065fe6c084d0bed04ee99c447004fe573278a
üst 33d32a78
...@@ -1195,13 +1195,24 @@ void OpenGLSalGraphicsImpl::drawRect( long nX, long nY, long nWidth, long nHeigh ...@@ -1195,13 +1195,24 @@ void OpenGLSalGraphicsImpl::drawRect( long nX, long nY, long nWidth, long nHeigh
if( UseSolid( mnLineColor ) ) if( UseSolid( mnLineColor ) )
{ {
const long nX1( nX ); GLfloat fX1 = OPENGL_COORD_X(nX);
const long nY1( nY ); GLfloat fY1 = OPENGL_COORD_Y(nY);
const long nX2( nX + nWidth ); GLfloat fX2 = OPENGL_COORD_X(nX + nWidth);
const long nY2( nY + nHeight ); GLfloat fY2 = OPENGL_COORD_Y(nY + nHeight);
const SalPoint aPoints[] = { { nX1, nY1 }, { nX2, nY1 },
{ nX2, nY2 }, { nX1, nY2 } }; GLfloat pPoints[16];
DrawLines( 4, aPoints, true ); // No need for AA.
pPoints[0] = fX1;
pPoints[1] = fY1;
pPoints[2] = fX2;
pPoints[3] = fY1;
pPoints[4] = fX2;
pPoints[5] = fY2;
pPoints[6] = fX1;
pPoints[7] = fY2;
mpProgram->SetVertices(pPoints);
glDrawArrays(GL_LINE_LOOP, 0, 4);
} }
PostDraw(); PostDraw();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment