mirror of
https://github.com/leozide/leocad
synced 2024-11-17 07:47:55 +01:00
Replaced GL_QUAD calls.
This commit is contained in:
parent
9a2f4c6678
commit
cfdfe30b40
3 changed files with 40 additions and 16 deletions
|
@ -186,7 +186,7 @@ void TexFont::PrintText(lcContext* Context, float Left, float Top, float Z, cons
|
|||
if (!Length)
|
||||
return;
|
||||
|
||||
float* Verts = new float[4 * 5 * Length];
|
||||
float* Verts = new float[6 * 5 * Length];
|
||||
float* CurVert = Verts;
|
||||
|
||||
while (*Text)
|
||||
|
@ -211,12 +211,24 @@ void TexFont::PrintText(lcContext* Context, float Left, float Top, float Z, cons
|
|||
*CurVert++ = mGlyphs[ch].right;
|
||||
*CurVert++ = mGlyphs[ch].bottom;
|
||||
|
||||
*CurVert++ = Left + mGlyphs[ch].width;
|
||||
*CurVert++ = Top - mFontHeight;
|
||||
*CurVert++ = Z;
|
||||
*CurVert++ = mGlyphs[ch].right;
|
||||
*CurVert++ = mGlyphs[ch].bottom;
|
||||
|
||||
*CurVert++ = Left + mGlyphs[ch].width;
|
||||
*CurVert++ = Top;
|
||||
*CurVert++ = Z;
|
||||
*CurVert++ = mGlyphs[ch].right;
|
||||
*CurVert++ = mGlyphs[ch].top;
|
||||
|
||||
*CurVert++ = Left;
|
||||
*CurVert++ = Top;
|
||||
*CurVert++ = Z;
|
||||
*CurVert++ = mGlyphs[ch].left;
|
||||
*CurVert++ = mGlyphs[ch].top;
|
||||
|
||||
Left += mGlyphs[ch].width;
|
||||
Text++;
|
||||
}
|
||||
|
@ -224,14 +236,14 @@ void TexFont::PrintText(lcContext* Context, float Left, float Top, float Z, cons
|
|||
Context->SetVertexBufferPointer(Verts);
|
||||
Context->SetVertexFormat(0, 3, 2, 0);
|
||||
|
||||
Context->DrawPrimitives(GL_QUADS, 0, 4 * (GLsizei)Length);
|
||||
Context->DrawPrimitives(GL_TRIANGLES, 0, 6 * (GLsizei)Length);
|
||||
|
||||
Context->ClearVertexBuffer(); // context remove
|
||||
|
||||
delete[] Verts;
|
||||
}
|
||||
|
||||
void TexFont::GetGlyphQuad(float Left, float Top, float Z, int Glyph, float* Buffer) const
|
||||
void TexFont::GetGlyphTriangles(float Left, float Top, float Z, int Glyph, float* Buffer) const
|
||||
{
|
||||
Left -= mGlyphs[Glyph].width / 2.0f;
|
||||
Top += mFontHeight / 2.0f;
|
||||
|
@ -254,9 +266,21 @@ void TexFont::GetGlyphQuad(float Left, float Top, float Z, int Glyph, float* Buf
|
|||
*Buffer++ = mGlyphs[Glyph].right;
|
||||
*Buffer++ = mGlyphs[Glyph].bottom;
|
||||
|
||||
*Buffer++ = Left + mGlyphs[Glyph].width;
|
||||
*Buffer++ = Top - mFontHeight;
|
||||
*Buffer++ = Z;
|
||||
*Buffer++ = mGlyphs[Glyph].right;
|
||||
*Buffer++ = mGlyphs[Glyph].bottom;
|
||||
|
||||
*Buffer++ = Left + mGlyphs[Glyph].width;
|
||||
*Buffer++ = Top;
|
||||
*Buffer++ = Z;
|
||||
*Buffer++ = mGlyphs[Glyph].right;
|
||||
*Buffer++ = mGlyphs[Glyph].top;
|
||||
|
||||
*Buffer++ = Left;
|
||||
*Buffer++ = Top;
|
||||
*Buffer++ = Z;
|
||||
*Buffer++ = mGlyphs[Glyph].left;
|
||||
*Buffer++ = mGlyphs[Glyph].top;
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ public:
|
|||
void Release();
|
||||
|
||||
void PrintText(lcContext* Context, float Left, float Top, float Z, const char* Text) const;
|
||||
void GetGlyphQuad(float Left, float Top, float Z, int Glyph, float* Buffer) const;
|
||||
void GetGlyphTriangles(float Left, float Top, float Z, int Glyph, float* Buffer) const;
|
||||
void GetStringDimensions(int* cx, int* cy, const char* Text) const;
|
||||
|
||||
protected:
|
||||
|
|
|
@ -1383,17 +1383,17 @@ void View::DrawGrid()
|
|||
*CurVert++ = 0.0f;
|
||||
*CurVert++ = 0.0f;
|
||||
|
||||
*CurVert++ = Right;
|
||||
*CurVert++ = Bottom;
|
||||
*CurVert++ = Z;
|
||||
*CurVert++ = U;
|
||||
*CurVert++ = 0.0f;
|
||||
|
||||
*CurVert++ = Right;
|
||||
*CurVert++ = Top;
|
||||
*CurVert++ = Z;
|
||||
*CurVert++ = U;
|
||||
*CurVert++ = V;
|
||||
|
||||
*CurVert++ = Right;
|
||||
*CurVert++ = Bottom;
|
||||
*CurVert++ = Z;
|
||||
*CurVert++ = U;
|
||||
*CurVert++ = 0.0f;
|
||||
}
|
||||
|
||||
if (Preferences.mDrawGridLines)
|
||||
|
@ -1449,7 +1449,7 @@ void View::DrawGrid()
|
|||
mContext->SetColor(lcVector4FromColor(Preferences.mGridStudColor));
|
||||
|
||||
mContext->SetVertexFormat(0, 3, 2, 0);
|
||||
mContext->DrawPrimitives(GL_QUADS, 0, 4);
|
||||
mContext->DrawPrimitives(GL_TRIANGLE_STRIP, 0, 4);
|
||||
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
glDisable(GL_BLEND);
|
||||
|
@ -1526,19 +1526,19 @@ void View::DrawAxes()
|
|||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
glEnable(GL_BLEND);
|
||||
|
||||
float TextBuffer[4 * 5 * 3];
|
||||
float TextBuffer[6 * 5 * 3];
|
||||
lcVector3 PosX = lcMul30(lcVector3(25.0f, 0.0f, 0.0f), WorldViewMatrix);
|
||||
gTexFont.GetGlyphQuad(PosX.x, PosX.y, PosX.z, 'X', TextBuffer);
|
||||
gTexFont.GetGlyphTriangles(PosX.x, PosX.y, PosX.z, 'X', TextBuffer);
|
||||
lcVector3 PosY = lcMul30(lcVector3(0.0f, 25.0f, 0.0f), WorldViewMatrix);
|
||||
gTexFont.GetGlyphQuad(PosY.x, PosY.y, PosY.z, 'Y', TextBuffer + 5 * 4);
|
||||
gTexFont.GetGlyphTriangles(PosY.x, PosY.y, PosY.z, 'Y', TextBuffer + 5 * 6);
|
||||
lcVector3 PosZ = lcMul30(lcVector3(0.0f, 0.0f, 25.0f), WorldViewMatrix);
|
||||
gTexFont.GetGlyphQuad(PosZ.x, PosZ.y, PosZ.z, 'Z', TextBuffer + 5 * 4 * 2);
|
||||
gTexFont.GetGlyphTriangles(PosZ.x, PosZ.y, PosZ.z, 'Z', TextBuffer + 5 * 6 * 2);
|
||||
|
||||
mContext->SetVertexBufferPointer(TextBuffer);
|
||||
mContext->SetVertexFormat(0, 3, 2, 0);
|
||||
|
||||
mContext->SetColor(0.0f, 0.0f, 0.0f, 1.0f);
|
||||
mContext->DrawPrimitives(GL_QUADS, 0, 4 * 3);
|
||||
mContext->DrawPrimitives(GL_TRIANGLES, 0, 6 * 3);
|
||||
|
||||
glDisable(GL_BLEND);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
|
|
Loading…
Reference in a new issue