mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-29 14:00:49 +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:
@@ -1,5 +1,5 @@
|
||||
// Copyright (c) 1998-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2012 OPEN CASCADE SAS
|
||||
// Copyright (c) 1999-2013 OPEN CASCADE SAS
|
||||
//
|
||||
// The content of this file is subject to the Open CASCADE Technology Public
|
||||
// License Version 6.5 (the "License"). You may not use the content of this file
|
||||
@@ -47,7 +47,6 @@ __Standard_API long NextPrime (const long me);
|
||||
__Standard_API Standard_Integer CharToInt (const Standard_Character me);
|
||||
__Standard_API Standard_Integer CharToInt (const Standard_CString me);
|
||||
__Standard_API Standard_Integer ShallowCopy (const Standard_Integer me);
|
||||
//__Standard_API Standard_Integer HashCode (const Standard_Integer, const Standard_Integer);
|
||||
|
||||
// ===============
|
||||
// Inline methods
|
||||
@@ -64,19 +63,41 @@ inline Standard_Integer Abs (const Standard_Integer Value)
|
||||
// ------------------------------------------------------------------
|
||||
// Hascode : Computes a hascoding value for a given Integer
|
||||
// ------------------------------------------------------------------
|
||||
inline Standard_Integer HashCode(const Standard_Integer me,
|
||||
const Standard_Integer Upper)
|
||||
inline Standard_Integer HashCode (const Standard_Integer theMe,
|
||||
const Standard_Integer theUpper)
|
||||
{
|
||||
// return (Abs(me) % Upper) + 1;
|
||||
return ( ( me & 0x7fffffff ) % Upper) + 1;
|
||||
//return (Abs (theMe) % theUpper) + 1;
|
||||
return ((theMe & 0x7fffffff ) % theUpper) + 1;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// IsEqual : Returns Standard_True if two integers are equal
|
||||
// ------------------------------------------------------------------
|
||||
inline Standard_Boolean IsEqual(const Standard_Integer One
|
||||
,const Standard_Integer Two)
|
||||
{ return One == Two; }
|
||||
inline Standard_Boolean IsEqual (const Standard_Integer theOne,
|
||||
const Standard_Integer theTwo)
|
||||
{
|
||||
return theOne == theTwo;
|
||||
}
|
||||
|
||||
#if (defined(_LP64) || defined(__LP64__) || defined(_WIN64))
|
||||
// ------------------------------------------------------------------
|
||||
// Hascode : Computes a hascoding value for a given unsigned integer
|
||||
// ------------------------------------------------------------------
|
||||
inline Standard_Integer HashCode (const Standard_Utf32Char theMe,
|
||||
const Standard_Integer theUpper)
|
||||
{
|
||||
return ((theMe & 0x7fffffff ) % theUpper) + 1;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// IsEqual : Returns Standard_True if two integers are equal
|
||||
// ------------------------------------------------------------------
|
||||
inline Standard_Boolean IsEqual (const Standard_Utf32Char theOne,
|
||||
const Standard_Utf32Char theTwo)
|
||||
{
|
||||
return theOne == theTwo;
|
||||
}
|
||||
#endif
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
// IsSimilar : Returns Standard_True if two integers are equal
|
||||
|
Reference in New Issue
Block a user