diff options
Diffstat (limited to 'src/libjin/Graphics/Font/je_ttf.h')
-rw-r--r-- | src/libjin/Graphics/Font/je_ttf.h | 288 |
1 files changed, 0 insertions, 288 deletions
diff --git a/src/libjin/Graphics/Font/je_ttf.h b/src/libjin/Graphics/Font/je_ttf.h deleted file mode 100644 index e3d63b2..0000000 --- a/src/libjin/Graphics/Font/je_ttf.h +++ /dev/null @@ -1,288 +0,0 @@ -#ifndef __JETTF_H -#define __JE_TTF_H -#include "../../core/je_configuration.h" -#if defined(jin_graphics) - -#include <vector> -#include <map> - -#include "../../3rdparty/stb/stb_truetype.h" -#include "../../math/je_quad.h" - -#include "../je_color.h" -#include "../je_graphic.h" - -#include "je_page.h" -#include "je_font.h" -#include "je_text.h" - -namespace JinEngine -{ - namespace Graphics - { - - class TTF; - - // - // TTFData - // |- TTF(14px) - // |- TTF(15px) - // . - // . - // . - // - class TTFData - { - public: - - /// - /// - /// - static TTFData* createTTFData(const unsigned char* data, unsigned int size); - - /// - /// - /// - ~TTFData(); - - /// - /// - /// - TTF* createTTF(unsigned ttfsize); - - /// - /// - /// - void pushTTFsize(unsigned ttfsize); - - /// - /// - /// - void popTTFsize(); - - /// - /// - /// - Channel* getCodepointBitmapAlpha(unsigned int codepoint, int* width, int* height, int* xoff, int* yoff) const; - - /// - /// - /// - Color* getCodepointBitmap(unsigned int codepoint, int* width, int* height, int* xoff, int* yoff) const; - - /// - /// - /// - void getVMetrics(int* baseline, int* descent); - - /// - /// - /// - void getHMetrics(unsigned int codepoint, int* advanceWidth, int* leftSideBearing); - - private: - - /// - /// - /// - static const unsigned int FONT_SIZE = 12; - - /// - /// - /// - TTFData(const unsigned char* data, unsigned int size); - - /// - /// - /// - stbtt_fontinfo info; - - /// - /// - /// - struct - { - unsigned char* data; - unsigned int size; - } raw; - - /// - /// - /// - std::vector<float> scales; - - }; - - class TTF : public Font - { - public: - //static TTF* createTTF(TTFData* ttfData, unsigned ttfSzie); - - /// - /// - /// - Page* typeset(const Text& text, int lineheight, int spacing = 0) override; - - /// - /// - /// - Page* typeset(const Content& text, int lineheight, int spacing = 0) override; - - /// - /// - /// - void print(const Text& text, int x, int y, int lineheight, int spacing = 0) override; - - /// - /// - /// - void print(const Content& text, int x, int y, int lineheight, int spacing = 0) override; - - /// - /// - /// - void print(const Page* page, int x, int y) override; - - /// - /// - /// - ~TTF(); - - private: - - friend class TTFData; - - /// - /// - /// - struct TTFGlyph - { - GLuint atlas; - // normalized coordinates - struct Bbox - { - float x, y; - float w, h; - } bbox; - // glyph size in pixel - unsigned int width, height; - }; - - /// - /// - /// - static const int TEXTURE_SIZE_LEVELS_COUNT = 7; - - /// - /// - /// - static const int TEXTURE_SIZE_LEVEL_MAX = TEXTURE_SIZE_LEVELS_COUNT - 1; - - /// - /// - /// - static const int TEXTURE_WIDTHS[TEXTURE_SIZE_LEVELS_COUNT]; - - /// - /// - /// - static const int TEXTURE_HEIGHTS[TEXTURE_SIZE_LEVELS_COUNT]; - - /// - /// - /// - TTF(TTFData* ttf, Codepoint ttfSize); - - /// - /// - /// - void estimateSize(); - - /// - /// - /// - GLuint createAtlas(); - - /// - /// - /// - TTFGlyph& bakeGlyph(Codepoint character); - - /// - /// - /// - TTFGlyph& findGlyph(Codepoint character); - - /// - /// - /// - int getCharWidth(int c); - - /// - /// - /// - int getCharHeight(int c); - - /// - /// - /// - int getTextWidth(const Content& text, int spacing = 0); - - /// - /// - /// - int getTextHeight(const Content& text, int lineheight); - - /// - /// - /// - void getTextBox(const Content& text, int* w, int* h, int lineheight, int spacing = 0); - - /// - /// - /// - int textureWidth; - - /// - /// - /// - int textureHeight; - - /// - /// - /// - std::vector<GLuint> atlases; - - /// - /// - /// - std::map<Codepoint, TTFGlyph> glyphs; - - /// - /// - /// - TTFData* ttf; - - /// - /// - /// - int baseline; - - /// - /// - /// - int descent; - - /// - /// - /// - Math::Vector2<float> cursor; - - }; - - } // namespace Graphics -} // namespace JinEngine - -#endif // defined(jin_graphics) - -#endif // __JE_FONT_H
\ No newline at end of file |