Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'extern/bFTGL/include/FTCharToGlyphIndexMap.h')
-rw-r--r--extern/bFTGL/include/FTCharToGlyphIndexMap.h130
1 files changed, 0 insertions, 130 deletions
diff --git a/extern/bFTGL/include/FTCharToGlyphIndexMap.h b/extern/bFTGL/include/FTCharToGlyphIndexMap.h
deleted file mode 100644
index 6e40d3c9574..00000000000
--- a/extern/bFTGL/include/FTCharToGlyphIndexMap.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#ifndef __FTCharToGlyphIndexMap__
-#define __FTCharToGlyphIndexMap__
-
-#include <stdlib.h>
-
-#include "FTGL.h"
-
-/**
- * Provides a non-STL alternative to the STL map<unsigned long, unsigned long>
- * which maps character codes to glyph indices inside FTCharmap.
- *
- * Implementation:
- * - NumberOfBuckets buckets are considered.
- * - Each bucket has BucketSize entries.
- * - When the glyph index for the character code C has to be stored, the
- * bucket this character belongs to is found using 'C div BucketSize'.
- * If this bucket has not been allocated yet, do it now.
- * The entry in the bucked is found using 'C mod BucketSize'.
- * If it is set to IndexNotFound, then the glyph entry has not been set.
- * - Try to mimic the calls made to the STL map API.
- *
- * Caveats:
- * - The glyph index is now a signed long instead of unsigned long, so
- * the special value IndexNotFound (= -1) can be used to specify that the
- * glyph index has not been stored yet.
- */
-class FTGL_EXPORT FTCharToGlyphIndexMap
-{
- public:
-
- typedef unsigned long CharacterCode;
- typedef signed long GlyphIndex;
-
- enum
- {
- NumberOfBuckets = 256,
- BucketSize = 256,
- IndexNotFound = -1
- };
-
- FTCharToGlyphIndexMap()
- {
- this->Indices = 0;
- }
-
- virtual ~FTCharToGlyphIndexMap()
- {
- if( this->Indices)
- {
- // Free all buckets
- this->clear();
-
- // Free main structure
- delete [] this->Indices;
- this->Indices = 0;
- }
- }
-
- void clear()
- {
- if(this->Indices)
- {
- for( int i = 0; i < FTCharToGlyphIndexMap::NumberOfBuckets; i++)
- {
- if( this->Indices[i])
- {
- delete [] this->Indices[i];
- this->Indices[i] = 0;
- }
- }
- }
- }
-
- const GlyphIndex find( CharacterCode c)
- {
- if( !this->Indices)
- {
- return 0;
- }
-
- // Find position of char code in buckets
- div_t pos = div( c, FTCharToGlyphIndexMap::BucketSize);
-
- if( !this->Indices[pos.quot])
- {
- return 0;
- }
-
- const FTCharToGlyphIndexMap::GlyphIndex *ptr = &this->Indices[pos.quot][pos.rem];
- if( *ptr == FTCharToGlyphIndexMap::IndexNotFound)
- {
- return 0;
- }
-
- return *ptr;
- }
-
- void insert( CharacterCode c, GlyphIndex g)
- {
- if( !this->Indices)
- {
- this->Indices = new GlyphIndex* [FTCharToGlyphIndexMap::NumberOfBuckets];
- for( int i = 0; i < FTCharToGlyphIndexMap::NumberOfBuckets; i++)
- {
- this->Indices[i] = 0;
- }
- }
-
- // Find position of char code in buckets
- div_t pos = div(c, FTCharToGlyphIndexMap::BucketSize);
-
- // Allocate bucket if does not exist yet
- if( !this->Indices[pos.quot])
- {
- this->Indices[pos.quot] = new GlyphIndex [FTCharToGlyphIndexMap::BucketSize];
- for( int i = 0; i < FTCharToGlyphIndexMap::BucketSize; i++)
- {
- this->Indices[pos.quot][i] = FTCharToGlyphIndexMap::IndexNotFound;
- }
- }
-
- this->Indices[pos.quot][pos.rem] = g;
- }
-
- private:
- GlyphIndex** Indices;
-};
-
-
-#endif // __FTCharToGlyphIndexMap__