Files
lime/project/include/text/Font.h

74 lines
1.1 KiB
C++

#ifndef LIME_TEXT_FONT_H
#define LIME_TEXT_FONT_H
#include <graphics/ImageBuffer.h>
#include <system/System.h>
#include <text/GlyphSet.h>
#include <utils/Resource.h>
#include <hx/CFFI.h>
namespace lime {
typedef struct {
unsigned long codepoint;
size_t size;
int index;
int height;
} GlyphInfo;
typedef struct {
uint32_t index;
uint32_t width;
uint32_t height;
uint32_t x;
uint32_t y;
unsigned char data;
} GlyphImage;
class Font {
public:
Font (void* face = 0);
Font (Resource *resource, int faceIndex = 0);
~Font ();
value Decompose (int em);
int GetAscender ();
int GetCharIndex (char* character);
int GetDescender ();
wchar_t *GetFamilyName ();
value GetGlyphMetrics (GlyphSet *glyphSet);
int GetHeight ();
int GetNumGlyphs ();
int GetUnderlinePosition ();
int GetUnderlineThickness ();
int GetUnitsPerEM ();
int RenderGlyph (int index, ByteArray *bytes, int offset = 0);
int RenderGlyphs (value indices, ByteArray *bytes);
void SetSize (size_t size);
void* face;
private:
size_t mSize;
};
}
#endif