mirror of https://github.com/bjornbytes/lovr.git
Font state;
This commit is contained in:
parent
80c9d7f4d8
commit
6077cae95a
|
@ -22,14 +22,6 @@ static void onCloseWindow(GLFWwindow* window) {
|
|||
}
|
||||
}
|
||||
|
||||
static void lovrGraphicsEnsureFont() {
|
||||
if (!state.activeFont && !state.defaultFont) {
|
||||
FontData* fontData = lovrFontDataCreate(NULL, 32);
|
||||
state.defaultFont = lovrFontCreate(fontData);
|
||||
lovrGraphicsSetFont(state.defaultFont);
|
||||
}
|
||||
}
|
||||
|
||||
// Base
|
||||
|
||||
void lovrGraphicsInit() {
|
||||
|
@ -70,9 +62,6 @@ void lovrGraphicsInit() {
|
|||
#endif
|
||||
|
||||
// Allocations
|
||||
state.activeFont = NULL;
|
||||
state.defaultFont = NULL;
|
||||
state.activeTexture = NULL;
|
||||
glGenBuffers(1, &state.buffer.vbo);
|
||||
glGenBuffers(1, &state.buffer.ibo);
|
||||
glGenVertexArrays(1, &state.buffer.vao);
|
||||
|
@ -264,6 +253,28 @@ void lovrGraphicsSetDepthTest(CompareMode depthTest) {
|
|||
}
|
||||
}
|
||||
|
||||
Font* lovrGraphicsGetFont() {
|
||||
if (!state.font && !state.defaultFont) {
|
||||
FontData* fontData = lovrFontDataCreate(NULL, 32);
|
||||
state.defaultFont = lovrFontCreate(fontData);
|
||||
lovrGraphicsSetFont(state.defaultFont);
|
||||
}
|
||||
|
||||
return state.font;
|
||||
}
|
||||
|
||||
void lovrGraphicsSetFont(Font* font) {
|
||||
if (state.font) {
|
||||
lovrRelease(&state.font->ref);
|
||||
}
|
||||
|
||||
state.font = font;
|
||||
|
||||
if (font) {
|
||||
lovrRetain(&state.font->ref);
|
||||
}
|
||||
}
|
||||
|
||||
GraphicsLimits lovrGraphicsGetLimits() {
|
||||
if (!state.limits.initialized) {
|
||||
glGetFloatv(GL_POINT_SIZE_RANGE, state.limits.pointSizes);
|
||||
|
@ -338,23 +349,6 @@ void lovrGraphicsSetWireframe(int wireframe) {
|
|||
#endif
|
||||
}
|
||||
|
||||
Font* lovrGraphicsGetFont() {
|
||||
lovrGraphicsEnsureFont();
|
||||
return state.activeFont;
|
||||
}
|
||||
|
||||
void lovrGraphicsSetFont(Font* font) {
|
||||
if (state.activeFont) {
|
||||
lovrRelease(&state.activeFont->ref);
|
||||
}
|
||||
|
||||
state.activeFont = font;
|
||||
|
||||
if (font) {
|
||||
lovrRetain(&state.activeFont->ref);
|
||||
}
|
||||
}
|
||||
|
||||
Texture* lovrGraphicsGetTexture() {
|
||||
return state.activeTexture;
|
||||
}
|
||||
|
@ -969,8 +963,7 @@ void lovrGraphicsPrint(const char* str, mat4 transform, float wrap, HorizontalAl
|
|||
lovrGraphicsSetShader(state.fontShader);
|
||||
}
|
||||
|
||||
lovrGraphicsEnsureFont();
|
||||
Font* font = state.activeFont;
|
||||
Font* font = lovrGraphicsGetFont();
|
||||
float scale = 1 / font->pixelDensity;
|
||||
float offsety;
|
||||
lovrFontRender(font, str, wrap, halign, valign, &state.buffer.data, &offsety);
|
||||
|
|
|
@ -69,7 +69,6 @@ typedef struct {
|
|||
Shader* skyboxShader;
|
||||
Shader* fontShader;
|
||||
Shader* fullscreenShader;
|
||||
Font* activeFont;
|
||||
Font* defaultFont;
|
||||
Texture* activeTexture;
|
||||
Texture* defaultTexture;
|
||||
|
@ -93,6 +92,7 @@ typedef struct {
|
|||
int culling;
|
||||
TextureFilter defaultFilter;
|
||||
CompareMode depthTest;
|
||||
Font* font;
|
||||
GraphicsLimits limits;
|
||||
float lineWidth;
|
||||
float pointSize;
|
||||
|
@ -122,19 +122,19 @@ TextureFilter lovrGraphicsGetDefaultFilter();
|
|||
void lovrGraphicsSetDefaultFilter(TextureFilter filter);
|
||||
CompareMode lovrGraphicsGetDepthTest();
|
||||
void lovrGraphicsSetDepthTest(CompareMode depthTest);
|
||||
Font* lovrGraphicsGetFont();
|
||||
void lovrGraphicsSetFont(Font* font);
|
||||
GraphicsLimits lovrGraphicsGetLimits();
|
||||
float lovrGraphicsGetLineWidth();
|
||||
void lovrGraphicsSetLineWidth(float width);
|
||||
float lovrGraphicsGetPointSize();
|
||||
void lovrGraphicsSetPointSize(float size);
|
||||
Shader* lovrGraphicsGetShader();
|
||||
void lovrGraphicsSetShader(Shader* shader);
|
||||
Winding lovrGraphicsGetWinding();
|
||||
void lovrGraphicsSetWinding(Winding winding);
|
||||
int lovrGraphicsIsWireframe();
|
||||
void lovrGraphicsSetWireframe(int wireframe);
|
||||
Shader* lovrGraphicsGetShader();
|
||||
void lovrGraphicsSetShader(Shader* shader);
|
||||
Font* lovrGraphicsGetFont();
|
||||
void lovrGraphicsSetFont(Font* font);
|
||||
Texture* lovrGraphicsGetTexture();
|
||||
void lovrGraphicsBindTexture(Texture* texture);
|
||||
mat4 lovrGraphicsGetProjection();
|
||||
|
|
Loading…
Reference in New Issue