mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
0023457: Slow text rendering
Added class Font_FTFont wrapper over FreeType face Unify collections methods NCollection_Array1, NCollection_Sequence, NCollection_Vector: declare Upper, Lower, First, Last, ChangeFirst, ChangeLast methods for all these collections. Added method NCollection_DataMap::Find() with check key is bound + retrieve value within single call interface. OpenGl_Context::ReleaseResource() method now supports lazy release of shared resources. Added class OpenGl_Font which implements textured fonts support. Added class OpenGl_TextFormatter for text formatting using OpenGl_Font. OpenGl_Text was redesigned to use OpenGl_FontFormatter. OpenGl_FontMgr class was removed. All methods related to text rendered removed from OpenGl_Display class. OpenGl_Trihedron and OpenGl_GraduatedTrihedron classes were redesigned to use OpenGl_Text. OpenGl_PrinterContext instance was moved to OpenGl_GraphicDriver fields (eliminated usage of global instance). Added test cases into 3rdparty/fonts grid to check different font styles and perform FPS tests (no automated results - requires manual analysis or snapshots comparisons). Removed unused CSF_FTGL dependency. OpenGl_Text::setupMatrix - do not apply floor for myWinZ
This commit is contained in:
@@ -39,19 +39,6 @@ static inline bool isPowerOfTwo (const GLsizei theNumber)
|
||||
return !(theNumber & (theNumber - 1));
|
||||
}
|
||||
|
||||
static inline GLsizei getPowerOfTwo (const GLsizei theNumber,
|
||||
const GLsizei theThreshold)
|
||||
{
|
||||
for (GLsizei p2 = 2; p2 <= theThreshold; p2 <<= 1)
|
||||
{
|
||||
if (theNumber <= p2)
|
||||
{
|
||||
return p2;
|
||||
}
|
||||
}
|
||||
return theThreshold;
|
||||
}
|
||||
|
||||
OpenGl_FrameBuffer::OpenGl_FrameBuffer (GLint theTextureFormat)
|
||||
: mySizeX (0),
|
||||
mySizeY (0),
|
||||
@@ -84,10 +71,8 @@ Standard_Boolean OpenGl_FrameBuffer::Init (const Handle(OpenGl_Context)& theGlCo
|
||||
// upscale width/height if numbers are odd
|
||||
if (toForcePowerOfTwo)
|
||||
{
|
||||
GLint aMaxTexDim = 2048;
|
||||
glGetIntegerv (GL_MAX_TEXTURE_SIZE, &aMaxTexDim);
|
||||
mySizeX = getPowerOfTwo (theViewportSizeX, aMaxTexDim);
|
||||
mySizeY = getPowerOfTwo (theViewportSizeY, aMaxTexDim);
|
||||
mySizeX = OpenGl_Context::GetPowerOfTwo (theViewportSizeX, theGlContext->MaxTextureSize());
|
||||
mySizeY = OpenGl_Context::GetPowerOfTwo (theViewportSizeY, theGlContext->MaxTextureSize());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Reference in New Issue
Block a user