forked from shks/ofkTools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ofkFontObjectRenderer.cpp
executable file
·89 lines (67 loc) · 1.57 KB
/
ofkFontObjectRenderer.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//
// ofkRenderObj.cpp
//
// Created by Shunichi Kasahara on 2/20/13.
//
//
#include "ofkFontObjectRenderer.h"
bool ofkFontObjectRenderer::isRenderDebug = false;
ofkFontObjectRenderer::ofkFontObjectRenderer()
{
x = y = z = 0.0;
rx = ry = rz = 0.0;
scaleX = scaleY = scaleZ = 1.0f;
text = "";
isMultiLine = false;
}
void ofkFontObjectRenderer::init(string fontFilePath, int size)
{
font.loadFont(fontFilePath, size);
fontPath = fontFilePath;
initFontSize = size;
}
void ofkFontObjectRenderer::render()
{
if(isMultiLine)
{
if(ex_text != text)
{
//Check Multi Line
//TODO
}
}
glPushMatrix();
applyMatrix();
font.drawString(text, 0, 0);
glPopMatrix();
}
void ofkFontObjectRenderer::checkMultiLine()
{
/*
int len = text.length();
string newtext = text;
int cursor = 0;
int newLineIndex = 0;
while (cursor < len) {
if(
(font.getStringBoundingBox(text.substr(newLineIndex , cursor), 0, 0)).width > 300
){
text.insert(cursor, "\n") ;
newLineIndex = cursor;
}
cursor ++;
}
*/
}
void ofkFontObjectRenderer::applyMatrix()
{
glTranslatef(x, y, z);
glRotatef(rx, 1.0, 0.0, 0.0);
glRotatef(ry, 0.0, 1.0, 0.0);
glRotatef(rz, 0.0, 0.0, 1.0);
if(isRenderDebug)
{
ofDrawBitmapString("Font:" + fontPath + "Size :" +ofToString(initFontSize * scaleX) , 0,20);
}
glScalef(scaleX, scaleY, scaleZ);
}