aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Graphics/Font.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/Graphics/Font.h')
-rw-r--r--src/libjin/Graphics/Font.h104
1 files changed, 0 insertions, 104 deletions
diff --git a/src/libjin/Graphics/Font.h b/src/libjin/Graphics/Font.h
deleted file mode 100644
index 0cb07de..0000000
--- a/src/libjin/Graphics/Font.h
+++ /dev/null
@@ -1,104 +0,0 @@
-#ifndef __LIBJIN_FONT_H
-#define __LIBJIN_FONT_H
-#include "../jin_configuration.h"
-#if LIBJIN_MODULES_RENDER
-
-#include <vector>
-#include <map>
-#include "drawable.h"
-#include "FontData.h"
-#include "../math/quad.h"
-
-namespace jin
-{
-namespace graphics
-{
-
- struct GlyphVertex
- {
- int x, y; // screen coordinates
- float u, v; // texture uv
- };
-
- struct GlyphArrayDrawInfo
- {
- GLuint texture; // atlas
- unsigned int start; // glyph vertex indecies
- unsigned int count; // glyph vertex count
- };
-
- struct Glyph
- {
- GLuint atlas;
- /* normalized coordinates */
- struct Bbox
- {
- float x, y;
- float width, height;
- } bbox;
- /* glyph size in pixel */
- unsigned int width, height;
- };
-
- struct Page
- {
- std::vector<GlyphArrayDrawInfo> glyphinfolist;
- std::vector<GlyphVertex> glyphvertices;
- int width, height;
- };
-
- class Font
- {
- public:
- typedef unsigned int Codepoint;
-
- static Font* createFont(FontData* fontData, unsigned int fontSzie);
-
- Page* typeset(const char* text, int lineheight, int spacing);
- void print(const char* text, int x, int y, int lineheight, int spacing = 0);
- void print(const Page* page, int x, int y);
- //Bitmap* bake(const char* text);
-#if defined(font_debug)
- void drawAtlas();
-#endif
- ~Font();
-
- private:
- 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];
-
- Font(FontData* font, Codepoint fontSize);
-
- void estimateSize();
- GLuint createAtlas();
- Glyph* bakeGlyph(Codepoint character);
- Glyph* findGlyph(Codepoint character);
-
- int getCharWidth(int c);
- int getCharHeight(int c);
- int getTextWidth(const char* text, int spacing = 0);
- int getTextHeight(const char* text, int lineheight);
- void getTextBox(const char* text, int* w, int* h, int lineheight, int spacing = 0);
-
- int textureWidth;
- int textureHeight;
- std::vector<GLuint> atlases;
- /* map unicode codepoint to glyph */
- std::map<Codepoint, Glyph*> glyphs;
- FontData* font;
- const unsigned int fontsize;
- int baseline;
- int descent;
-
- /* cursor helped render to texture */
- math::Vector2<float> cursor;
-
- };
-
-} // graphics
-} // jin
-
-#endif // LIBJIN_MODULES_RENDER
-#endif // __LIBJIN_FONT_H \ No newline at end of file