Format to LLVL
This commit is contained in:
@@ -1,76 +1,66 @@
|
||||
#include <renderd7/Fonts/NFontApi.hpp>
|
||||
#define STB_TRUETYPE_IMPLEMENTATION // force following include to generate implementation
|
||||
#define STB_TRUETYPE_IMPLEMENTATION // force following include to generate
|
||||
// implementation
|
||||
#include <renderd7/external/stb_truetype.h>
|
||||
|
||||
#define STB_IMAGE_WRITE_IMPLEMENTATION
|
||||
#include <renderd7/external/stb_image_write.h>
|
||||
|
||||
RenderD7::NFontApi::NFontApi()
|
||||
{
|
||||
|
||||
RenderD7::NFontApi::NFontApi() {}
|
||||
|
||||
RenderD7::NFontApi::~NFontApi() {}
|
||||
|
||||
void RenderD7::NFontApi::LoadTTF(std::string path) {
|
||||
/////READ FILE
|
||||
unsigned char *buffer;
|
||||
long size = 0;
|
||||
FILE *ttf__ = fopen(path.c_str(), "rb");
|
||||
fseek(ttf__, 0, SEEK_END);
|
||||
size = ftell(ttf__);
|
||||
fseek(ttf__, 0, SEEK_SET);
|
||||
buffer = (unsigned char *)malloc(size);
|
||||
fread(buffer, size, 1, ttf__);
|
||||
fclose(ttf__);
|
||||
/////Setup Font
|
||||
if (!stbtt_InitFont(&font, buffer, 0)) {
|
||||
printf("failed\n");
|
||||
status += "failed\n";
|
||||
return;
|
||||
}
|
||||
status += "success!\n";
|
||||
b_h = 128;
|
||||
b_w = 512;
|
||||
l_h = 24; /* line height */
|
||||
scale = stbtt_ScaleForPixelHeight(&font, l_h);
|
||||
|
||||
stbtt_GetFontVMetrics(&font, &ascent, &decent, &linegap);
|
||||
linespace = scale * (ascent - decent + linegap);
|
||||
|
||||
baseline = (int)(ascent * scale);
|
||||
height = (int)((ascent - decent) * scale);
|
||||
}
|
||||
|
||||
RenderD7::NFontApi::~NFontApi()
|
||||
{
|
||||
|
||||
unsigned char *RenderD7::NFontApi::GetGlyphBitmap(char glyph) {
|
||||
// stbtt_GetGlyphBitmapBox(&font, glyph, scale, scale, &x0, &y0, &x1, &y1);
|
||||
stbtt_GetCodepointBitmapBox(&font, glyph, scale, scale, &x0, &y0, &x1, &y1);
|
||||
w = x1 - x0;
|
||||
h = y1 - y0;
|
||||
|
||||
unsigned char *bitmap;
|
||||
bitmap = stbtt_GetCodepointBitmap(&font, scale, scale, glyph, &w, &h, 0, 0);
|
||||
return bitmap;
|
||||
}
|
||||
|
||||
void RenderD7::NFontApi::LoadTTF(std::string path)
|
||||
{
|
||||
/////READ FILE
|
||||
unsigned char* buffer;
|
||||
long size = 0;
|
||||
FILE *ttf__ = fopen(path.c_str(), "rb");
|
||||
fseek(ttf__, 0, SEEK_END);
|
||||
size = ftell(ttf__);
|
||||
fseek(ttf__, 0, SEEK_SET);
|
||||
buffer = (unsigned char*)malloc(size);
|
||||
fread(buffer, size, 1, ttf__);
|
||||
fclose(ttf__);
|
||||
/////Setup Font
|
||||
if (!stbtt_InitFont(&font, buffer, 0))
|
||||
{
|
||||
printf("failed\n");
|
||||
status+="failed\n";
|
||||
return;
|
||||
}
|
||||
status+="success!\n";
|
||||
b_h = 128;
|
||||
b_w = 512;
|
||||
l_h = 24; /* line height */
|
||||
scale = stbtt_ScaleForPixelHeight(&font, l_h);
|
||||
|
||||
stbtt_GetFontVMetrics(&font, &ascent,&decent,&linegap);
|
||||
linespace = scale * (ascent - decent + linegap);
|
||||
|
||||
baseline = (int) (ascent*scale);
|
||||
height = (int) ((ascent - decent)*scale);
|
||||
int RenderD7::NFontApi::GetGlyphHeight(char glyph) {
|
||||
stbtt_GetCodepointBitmapBox(&font, glyph, scale, scale, &x0, &y0, &x1, &y1);
|
||||
w = x1 - x0;
|
||||
h = y1 - y0;
|
||||
return h;
|
||||
}
|
||||
|
||||
unsigned char* RenderD7::NFontApi::GetGlyphBitmap(char glyph)
|
||||
{
|
||||
//stbtt_GetGlyphBitmapBox(&font, glyph, scale, scale, &x0, &y0, &x1, &y1);
|
||||
stbtt_GetCodepointBitmapBox(&font, glyph, scale, scale, &x0, &y0, &x1, &y1);
|
||||
w = x1-x0;
|
||||
h = y1-y0;
|
||||
|
||||
unsigned char* bitmap;
|
||||
bitmap = stbtt_GetCodepointBitmap(&font, scale, scale, glyph, &w, &h, 0, 0);
|
||||
return bitmap;
|
||||
}
|
||||
|
||||
int RenderD7::NFontApi::GetGlyphHeight(char glyph)
|
||||
{
|
||||
stbtt_GetCodepointBitmapBox(&font, glyph, scale, scale, &x0, &y0, &x1, &y1);
|
||||
w = x1-x0;
|
||||
h = y1-y0;
|
||||
return h;
|
||||
}
|
||||
|
||||
int RenderD7::NFontApi::GetGlyphWidth(char glyph)
|
||||
{
|
||||
stbtt_GetCodepointBitmapBox(&font, glyph, scale, scale, &x0, &y0, &x1, &y1);
|
||||
w = x1-x0;
|
||||
h = y1-y0;
|
||||
return w;
|
||||
int RenderD7::NFontApi::GetGlyphWidth(char glyph) {
|
||||
stbtt_GetCodepointBitmapBox(&font, glyph, scale, scale, &x0, &y0, &x1, &y1);
|
||||
w = x1 - x0;
|
||||
h = y1 - y0;
|
||||
return w;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user