Refactored Math::IntPoint in CText
parent
48d2b4a618
commit
bd2ad39f6a
|
@ -64,7 +64,7 @@ struct MultisizeFont
|
||||||
struct FontTexture
|
struct FontTexture
|
||||||
{
|
{
|
||||||
unsigned int id = 0;
|
unsigned int id = 0;
|
||||||
Math::IntPoint tileSize;
|
glm::ivec2 tileSize;
|
||||||
int freeSlots = 0;
|
int freeSlots = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -94,8 +94,8 @@ struct CachedFont
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
const Math::IntPoint REFERENCE_SIZE(800, 600);
|
constexpr glm::ivec2 REFERENCE_SIZE(800, 600);
|
||||||
const Math::IntPoint FONT_TEXTURE_SIZE(256, 256);
|
constexpr glm::ivec2 FONT_TEXTURE_SIZE(256, 256);
|
||||||
} // anonymous namespace
|
} // anonymous namespace
|
||||||
|
|
||||||
/// The QuadBatch is responsible for collecting as many quad (aka rectangle) draws as possible and
|
/// The QuadBatch is responsible for collecting as many quad (aka rectangle) draws as possible and
|
||||||
|
@ -324,7 +324,7 @@ void CText::DrawText(const std::string &text, std::vector<FontMetaChar>::iterato
|
||||||
pos.x -= sw;
|
pos.x -= sw;
|
||||||
}
|
}
|
||||||
|
|
||||||
Math::IntPoint intPos = m_engine->InterfaceToWindowCoords(pos);
|
glm::ivec2 intPos = m_engine->InterfaceToWindowCoords(pos);
|
||||||
int intWidth = width * m_engine->GetWindowSize().x;
|
int intWidth = width * m_engine->GetWindowSize().x;
|
||||||
DrawString(text, format, end, size, intPos, intWidth, eol, color);
|
DrawString(text, format, end, size, intPos, intWidth, eol, color);
|
||||||
}
|
}
|
||||||
|
@ -348,7 +348,7 @@ void CText::DrawText(const std::string &text, FontType font,
|
||||||
pos.x -= sw;
|
pos.x -= sw;
|
||||||
}
|
}
|
||||||
|
|
||||||
Math::IntPoint intPos = m_engine->InterfaceToWindowCoords(pos);
|
glm::ivec2 intPos = m_engine->InterfaceToWindowCoords(pos);
|
||||||
int intWidth = width * m_engine->GetWindowSize().x;
|
int intWidth = width * m_engine->GetWindowSize().x;
|
||||||
DrawString(text, font, size, intPos, intWidth, eol, color);
|
DrawString(text, font, size, intPos, intWidth, eol, color);
|
||||||
}
|
}
|
||||||
|
@ -406,8 +406,7 @@ float CText::GetAscent(FontType font, float size)
|
||||||
|
|
||||||
CachedFont* cf = GetOrOpenFont(font, size);
|
CachedFont* cf = GetOrOpenFont(font, size);
|
||||||
assert(cf != nullptr);
|
assert(cf != nullptr);
|
||||||
Math::IntPoint wndSize;
|
glm::ivec2 wndSize = { 0, TTF_FontAscent(cf->font) };
|
||||||
wndSize.y = TTF_FontAscent(cf->font);
|
|
||||||
Math::Point ifSize = m_engine->WindowToInterfaceSize(wndSize);
|
Math::Point ifSize = m_engine->WindowToInterfaceSize(wndSize);
|
||||||
return ifSize.y;
|
return ifSize.y;
|
||||||
}
|
}
|
||||||
|
@ -418,8 +417,7 @@ float CText::GetDescent(FontType font, float size)
|
||||||
|
|
||||||
CachedFont* cf = GetOrOpenFont(font, size);
|
CachedFont* cf = GetOrOpenFont(font, size);
|
||||||
assert(cf != nullptr);
|
assert(cf != nullptr);
|
||||||
Math::IntPoint wndSize;
|
glm::ivec2 wndSize = { 0, TTF_FontDescent(cf->font) };
|
||||||
wndSize.y = TTF_FontDescent(cf->font);
|
|
||||||
Math::Point ifSize = m_engine->WindowToInterfaceSize(wndSize);
|
Math::Point ifSize = m_engine->WindowToInterfaceSize(wndSize);
|
||||||
return ifSize.y;
|
return ifSize.y;
|
||||||
}
|
}
|
||||||
|
@ -430,8 +428,7 @@ float CText::GetHeight(FontType font, float size)
|
||||||
|
|
||||||
CachedFont* cf = GetOrOpenFont(font, size);
|
CachedFont* cf = GetOrOpenFont(font, size);
|
||||||
assert(cf != nullptr);
|
assert(cf != nullptr);
|
||||||
Math::IntPoint wndSize;
|
glm::ivec2 wndSize = { 0, TTF_FontHeight(cf->font) };
|
||||||
wndSize.y = TTF_FontHeight(cf->font);
|
|
||||||
Math::Point ifSize = m_engine->WindowToInterfaceSize(wndSize);
|
Math::Point ifSize = m_engine->WindowToInterfaceSize(wndSize);
|
||||||
return ifSize.y;
|
return ifSize.y;
|
||||||
}
|
}
|
||||||
|
@ -490,7 +487,7 @@ float CText::GetStringWidth(std::string text, FontType font, float size)
|
||||||
|
|
||||||
CachedFont* cf = GetOrOpenFont(font, size);
|
CachedFont* cf = GetOrOpenFont(font, size);
|
||||||
assert(cf != nullptr);
|
assert(cf != nullptr);
|
||||||
Math::IntPoint wndSize;
|
glm::ivec2 wndSize{};
|
||||||
TTF_SizeUTF8(cf->font, text.c_str(), &wndSize.x, &wndSize.y);
|
TTF_SizeUTF8(cf->font, text.c_str(), &wndSize.x, &wndSize.y);
|
||||||
Math::Point ifSize = m_engine->WindowToInterfaceSize(wndSize);
|
Math::Point ifSize = m_engine->WindowToInterfaceSize(wndSize);
|
||||||
return ifSize.x;
|
return ifSize.x;
|
||||||
|
@ -500,7 +497,7 @@ float CText::GetCharWidth(UTF8Char ch, FontType font, float size, float offset)
|
||||||
{
|
{
|
||||||
if (font == FONT_BUTTON)
|
if (font == FONT_BUTTON)
|
||||||
{
|
{
|
||||||
Math::IntPoint windowSize = m_engine->GetWindowSize();
|
glm::ivec2 windowSize = m_engine->GetWindowSize();
|
||||||
float height = GetHeight(FONT_COMMON, size);
|
float height = GetHeight(FONT_COMMON, size);
|
||||||
float width = height*(static_cast<float>(windowSize.y)/windowSize.x);
|
float width = height*(static_cast<float>(windowSize.y)/windowSize.x);
|
||||||
return width;
|
return width;
|
||||||
|
@ -528,7 +525,7 @@ float CText::GetCharWidth(UTF8Char ch, FontType font, float size, float offset)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Math::IntPoint wndSize;
|
glm::ivec2 wndSize{};
|
||||||
std::string text;
|
std::string text;
|
||||||
text.append({ch.c1, ch.c2, ch.c3});
|
text.append({ch.c1, ch.c2, ch.c3});
|
||||||
TTF_SizeUTF8(cf->font, text.c_str(), &wndSize.x, &wndSize.y);
|
TTF_SizeUTF8(cf->font, text.c_str(), &wndSize.x, &wndSize.y);
|
||||||
|
@ -542,7 +539,7 @@ int CText::GetCharWidthInt(UTF8Char ch, FontType font, float size, float offset)
|
||||||
{
|
{
|
||||||
if (font == FONT_BUTTON)
|
if (font == FONT_BUTTON)
|
||||||
{
|
{
|
||||||
Math::IntPoint windowSize = m_engine->GetWindowSize();
|
glm::ivec2 windowSize = m_engine->GetWindowSize();
|
||||||
int height = GetHeightInt(FONT_COMMON, size);
|
int height = GetHeightInt(FONT_COMMON, size);
|
||||||
int width = height*(static_cast<float>(windowSize.y)/windowSize.x);
|
int width = height*(static_cast<float>(windowSize.y)/windowSize.x);
|
||||||
return width;
|
return width;
|
||||||
|
@ -562,7 +559,7 @@ int CText::GetCharWidthInt(UTF8Char ch, FontType font, float size, float offset)
|
||||||
CachedFont* cf = GetOrOpenFont(font, size);
|
CachedFont* cf = GetOrOpenFont(font, size);
|
||||||
assert(cf != nullptr);
|
assert(cf != nullptr);
|
||||||
|
|
||||||
Math::IntPoint charSize;
|
glm::ivec2 charSize{ 0, 0 };
|
||||||
auto it = cf->cache.find(ch);
|
auto it = cf->cache.find(ch);
|
||||||
if (it != cf->cache.end())
|
if (it != cf->cache.end())
|
||||||
{
|
{
|
||||||
|
@ -795,10 +792,12 @@ UTF8Char CText::TranslateSpecialChar(int specialChar)
|
||||||
|
|
||||||
void CText::DrawString(const std::string &text, std::vector<FontMetaChar>::iterator format,
|
void CText::DrawString(const std::string &text, std::vector<FontMetaChar>::iterator format,
|
||||||
std::vector<FontMetaChar>::iterator end,
|
std::vector<FontMetaChar>::iterator end,
|
||||||
float size, Math::IntPoint pos, int width, int eol, Color color)
|
float size, const glm::ivec2& position, int width, int eol, Color color)
|
||||||
{
|
{
|
||||||
m_engine->SetWindowCoordinates();
|
m_engine->SetWindowCoordinates();
|
||||||
|
|
||||||
|
glm::ivec2 pos = position;
|
||||||
|
|
||||||
int start = pos.x;
|
int start = pos.x;
|
||||||
|
|
||||||
unsigned int fmtIndex = 0;
|
unsigned int fmtIndex = 0;
|
||||||
|
@ -859,7 +858,7 @@ void CText::DrawString(const std::string &text, std::vector<FontMetaChar>::itera
|
||||||
// draw highlight background or link underline
|
// draw highlight background or link underline
|
||||||
if (font != FONT_BUTTON)
|
if (font != FONT_BUTTON)
|
||||||
{
|
{
|
||||||
Math::IntPoint charSize;
|
glm::ivec2 charSize{};
|
||||||
charSize.x = GetCharWidthInt(ch, font, size, offset);
|
charSize.x = GetCharWidthInt(ch, font, size, offset);
|
||||||
charSize.y = GetHeightInt(font, size);
|
charSize.y = GetHeightInt(font, size);
|
||||||
// NB. for quad batching to improve highlight drawing performance, this code would have
|
// NB. for quad batching to improve highlight drawing performance, this code would have
|
||||||
|
@ -955,10 +954,12 @@ int CText::GetCharSizeAt(Gfx::FontType font, const std::string& text, unsigned i
|
||||||
}
|
}
|
||||||
|
|
||||||
void CText::DrawString(const std::string &text, FontType font,
|
void CText::DrawString(const std::string &text, FontType font,
|
||||||
float size, Math::IntPoint pos, int width, int eol, Color color)
|
float size, const glm::ivec2& position, int width, int eol, Color color)
|
||||||
{
|
{
|
||||||
assert(font != FONT_BUTTON);
|
assert(font != FONT_BUTTON);
|
||||||
|
|
||||||
|
glm::ivec2 pos = position;
|
||||||
|
|
||||||
std::vector<UTF8Char> chars;
|
std::vector<UTF8Char> chars;
|
||||||
StringToUTFCharList(text, chars);
|
StringToUTFCharList(text, chars);
|
||||||
m_engine->SetWindowCoordinates();
|
m_engine->SetWindowCoordinates();
|
||||||
|
@ -970,7 +971,7 @@ void CText::DrawString(const std::string &text, FontType font,
|
||||||
m_engine->SetInterfaceCoordinates();
|
m_engine->SetInterfaceCoordinates();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CText::DrawHighlight(FontMetaChar hl, Math::IntPoint pos, Math::IntPoint size)
|
void CText::DrawHighlight(FontMetaChar hl, const glm::ivec2& pos, const glm::ivec2& size)
|
||||||
{
|
{
|
||||||
// Gradient colors
|
// Gradient colors
|
||||||
Color grad[4];
|
Color grad[4];
|
||||||
|
@ -993,7 +994,7 @@ void CText::DrawHighlight(FontMetaChar hl, Math::IntPoint pos, Math::IntPoint si
|
||||||
|
|
||||||
m_quadBatch->Flush();
|
m_quadBatch->Flush();
|
||||||
|
|
||||||
Math::IntPoint vsize = m_engine->GetWindowSize();
|
glm::ivec2 vsize = m_engine->GetWindowSize();
|
||||||
float h = 0.0f;
|
float h = 0.0f;
|
||||||
if (vsize.y <= 768.0f) // 1024x768 or less?
|
if (vsize.y <= 768.0f) // 1024x768 or less?
|
||||||
h = 1.01f; // 1 pixel
|
h = 1.01f; // 1 pixel
|
||||||
|
@ -1027,16 +1028,16 @@ void CText::DrawHighlight(FontMetaChar hl, Math::IntPoint pos, Math::IntPoint si
|
||||||
m_device->SetTextureEnabled(0, true);
|
m_device->SetTextureEnabled(0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CText::DrawCharAndAdjustPos(UTF8Char ch, FontType font, float size, Math::IntPoint &pos, Color color)
|
void CText::DrawCharAndAdjustPos(UTF8Char ch, FontType font, float size, glm::ivec2&pos, Color color)
|
||||||
{
|
{
|
||||||
if (font == FONT_BUTTON)
|
if (font == FONT_BUTTON)
|
||||||
{
|
{
|
||||||
Math::IntPoint windowSize = m_engine->GetWindowSize();
|
glm::ivec2 windowSize = m_engine->GetWindowSize();
|
||||||
int height = GetHeightInt(FONT_COMMON, size);
|
int height = GetHeightInt(FONT_COMMON, size);
|
||||||
int width = height * (static_cast<float>(windowSize.y)/windowSize.x);
|
int width = height * (static_cast<float>(windowSize.y)/windowSize.x);
|
||||||
|
|
||||||
Math::IntPoint p1(pos.x, pos.y - height);
|
glm::ivec2 p1(pos.x, pos.y - height);
|
||||||
Math::IntPoint p2(pos.x + width, pos.y);
|
glm::ivec2 p2(pos.x + width, pos.y);
|
||||||
|
|
||||||
// For whatever reason ch.c1 is a SIGNED char, we need to fix that
|
// For whatever reason ch.c1 is a SIGNED char, we need to fix that
|
||||||
unsigned char icon = static_cast<unsigned char>(ch.c1);
|
unsigned char icon = static_cast<unsigned char>(ch.c1);
|
||||||
|
@ -1114,7 +1115,7 @@ void CText::DrawCharAndAdjustPos(UTF8Char ch, FontType font, float size, Math::I
|
||||||
|
|
||||||
CachedFont* CText::GetOrOpenFont(FontType font, float size)
|
CachedFont* CText::GetOrOpenFont(FontType font, float size)
|
||||||
{
|
{
|
||||||
Math::IntPoint windowSize = m_engine->GetWindowSize();
|
glm::ivec2 windowSize = m_engine->GetWindowSize();
|
||||||
int pointSize = static_cast<int>(size * (glm::length(glm::vec2(windowSize)) / glm::length(glm::vec2(REFERENCE_SIZE))));
|
int pointSize = static_cast<int>(size * (glm::length(glm::vec2(windowSize)) / glm::length(glm::vec2(REFERENCE_SIZE))));
|
||||||
|
|
||||||
if (m_lastCachedFont != nullptr &&
|
if (m_lastCachedFont != nullptr &&
|
||||||
|
@ -1187,7 +1188,7 @@ CharTexture CText::GetCharTexture(UTF8Char ch, FontType font, float size)
|
||||||
return tex;
|
return tex;
|
||||||
}
|
}
|
||||||
|
|
||||||
Math::IntPoint CText::GetFontTextureSize()
|
glm::ivec2 CText::GetFontTextureSize()
|
||||||
{
|
{
|
||||||
return FONT_TEXTURE_SIZE;
|
return FONT_TEXTURE_SIZE;
|
||||||
}
|
}
|
||||||
|
@ -1208,7 +1209,7 @@ CharTexture CText::CreateCharTexture(UTF8Char ch, CachedFont* font)
|
||||||
}
|
}
|
||||||
|
|
||||||
const int pixelMargin = 1;
|
const int pixelMargin = 1;
|
||||||
Math::IntPoint tileSize(Math::Max(16, Math::NextPowerOfTwo(textSurface->w)) + pixelMargin,
|
glm::ivec2 tileSize(Math::Max(16, Math::NextPowerOfTwo(textSurface->w)) + pixelMargin,
|
||||||
Math::Max(16, Math::NextPowerOfTwo(textSurface->h)) + pixelMargin);
|
Math::Max(16, Math::NextPowerOfTwo(textSurface->h)) + pixelMargin);
|
||||||
|
|
||||||
FontTexture* fontTexture = GetOrCreateFontTexture(tileSize);
|
FontTexture* fontTexture = GetOrCreateFontTexture(tileSize);
|
||||||
|
@ -1221,7 +1222,7 @@ CharTexture CText::CreateCharTexture(UTF8Char ch, CachedFont* font)
|
||||||
{
|
{
|
||||||
texture.id = fontTexture->id;
|
texture.id = fontTexture->id;
|
||||||
texture.charPos = GetNextTilePos(*fontTexture);
|
texture.charPos = GetNextTilePos(*fontTexture);
|
||||||
texture.charSize = Math::IntPoint(textSurface->w, textSurface->h);
|
texture.charSize = { textSurface->w, textSurface->h };
|
||||||
|
|
||||||
ImageData imageData;
|
ImageData imageData;
|
||||||
imageData.surface = textSurface;
|
imageData.surface = textSurface;
|
||||||
|
@ -1240,7 +1241,7 @@ CharTexture CText::CreateCharTexture(UTF8Char ch, CachedFont* font)
|
||||||
return texture;
|
return texture;
|
||||||
}
|
}
|
||||||
|
|
||||||
FontTexture* CText::GetOrCreateFontTexture(Math::IntPoint tileSize)
|
FontTexture* CText::GetOrCreateFontTexture(const glm::ivec2& tileSize)
|
||||||
{
|
{
|
||||||
for (auto& fontTexture : m_fontTextures)
|
for (auto& fontTexture : m_fontTextures)
|
||||||
{
|
{
|
||||||
|
@ -1258,7 +1259,7 @@ FontTexture* CText::GetOrCreateFontTexture(Math::IntPoint tileSize)
|
||||||
return &m_fontTextures.back();
|
return &m_fontTextures.back();
|
||||||
}
|
}
|
||||||
|
|
||||||
FontTexture CText::CreateFontTexture(Math::IntPoint tileSize)
|
FontTexture CText::CreateFontTexture(const glm::ivec2& tileSize)
|
||||||
{
|
{
|
||||||
SDL_Surface* textureSurface = SDL_CreateRGBSurface(0, FONT_TEXTURE_SIZE.x, FONT_TEXTURE_SIZE.y, 32,
|
SDL_Surface* textureSurface = SDL_CreateRGBSurface(0, FONT_TEXTURE_SIZE.x, FONT_TEXTURE_SIZE.y, 32,
|
||||||
0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000);
|
0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000);
|
||||||
|
@ -1284,7 +1285,7 @@ FontTexture CText::CreateFontTexture(Math::IntPoint tileSize)
|
||||||
return fontTexture;
|
return fontTexture;
|
||||||
}
|
}
|
||||||
|
|
||||||
Math::IntPoint CText::GetNextTilePos(const FontTexture& fontTexture)
|
glm::ivec2 CText::GetNextTilePos(const FontTexture& fontTexture)
|
||||||
{
|
{
|
||||||
int horizontalTiles = FONT_TEXTURE_SIZE.x / std::max(1, fontTexture.tileSize.x); //this should prevent crashes in some combinations of resolution and font size, see issue #1128
|
int horizontalTiles = FONT_TEXTURE_SIZE.x / std::max(1, fontTexture.tileSize.x); //this should prevent crashes in some combinations of resolution and font size, see issue #1128
|
||||||
int verticalTiles = FONT_TEXTURE_SIZE.y / std::max(1, fontTexture.tileSize.y);
|
int verticalTiles = FONT_TEXTURE_SIZE.y / std::max(1, fontTexture.tileSize.y);
|
||||||
|
@ -1295,8 +1296,8 @@ Math::IntPoint CText::GetNextTilePos(const FontTexture& fontTexture)
|
||||||
int verticalTileIndex = tileNumber / std::max(1, horizontalTiles);
|
int verticalTileIndex = tileNumber / std::max(1, horizontalTiles);
|
||||||
int horizontalTileIndex = tileNumber % horizontalTiles;
|
int horizontalTileIndex = tileNumber % horizontalTiles;
|
||||||
|
|
||||||
return Math::IntPoint(horizontalTileIndex * fontTexture.tileSize.x,
|
return { horizontalTileIndex * fontTexture.tileSize.x,
|
||||||
verticalTileIndex * fontTexture.tileSize.y);
|
verticalTileIndex * fontTexture.tileSize.y };
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Gfx
|
} // namespace Gfx
|
||||||
|
|
|
@ -27,13 +27,14 @@
|
||||||
|
|
||||||
#include "graphics/core/color.h"
|
#include "graphics/core/color.h"
|
||||||
|
|
||||||
#include "math/intpoint.h"
|
|
||||||
#include "math/point.h"
|
#include "math/point.h"
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include <glm/glm.hpp>
|
||||||
|
|
||||||
|
|
||||||
// Graphics module namespace
|
// Graphics module namespace
|
||||||
namespace Gfx
|
namespace Gfx
|
||||||
|
@ -199,8 +200,8 @@ struct UTF8Char
|
||||||
struct CharTexture
|
struct CharTexture
|
||||||
{
|
{
|
||||||
unsigned int id = 0;
|
unsigned int id = 0;
|
||||||
Math::IntPoint charPos;
|
glm::ivec2 charPos;
|
||||||
Math::IntPoint charSize;
|
glm::ivec2 charSize;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Definition is private - in text.cpp
|
// Definition is private - in text.cpp
|
||||||
|
@ -320,22 +321,22 @@ public:
|
||||||
UTF8Char TranslateSpecialChar(int specialChar);
|
UTF8Char TranslateSpecialChar(int specialChar);
|
||||||
|
|
||||||
CharTexture GetCharTexture(UTF8Char ch, FontType font, float size);
|
CharTexture GetCharTexture(UTF8Char ch, FontType font, float size);
|
||||||
Math::IntPoint GetFontTextureSize();
|
glm::ivec2 GetFontTextureSize();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
CachedFont* GetOrOpenFont(FontType font, float size);
|
CachedFont* GetOrOpenFont(FontType font, float size);
|
||||||
CharTexture CreateCharTexture(UTF8Char ch, CachedFont* font);
|
CharTexture CreateCharTexture(UTF8Char ch, CachedFont* font);
|
||||||
FontTexture* GetOrCreateFontTexture(Math::IntPoint tileSize);
|
FontTexture* GetOrCreateFontTexture(const glm::ivec2& tileSize);
|
||||||
FontTexture CreateFontTexture(Math::IntPoint tileSize);
|
FontTexture CreateFontTexture(const glm::ivec2& tileSize);
|
||||||
Math::IntPoint GetNextTilePos(const FontTexture& fontTexture);
|
glm::ivec2 GetNextTilePos(const FontTexture& fontTexture);
|
||||||
|
|
||||||
void DrawString(const std::string &text, std::vector<FontMetaChar>::iterator format,
|
void DrawString(const std::string &text, std::vector<FontMetaChar>::iterator format,
|
||||||
std::vector<FontMetaChar>::iterator end,
|
std::vector<FontMetaChar>::iterator end,
|
||||||
float size, Math::IntPoint pos, int width, int eol, Color color);
|
float size, const glm::ivec2& pos, int width, int eol, Color color);
|
||||||
void DrawString(const std::string &text, FontType font,
|
void DrawString(const std::string &text, FontType font,
|
||||||
float size, Math::IntPoint pos, int width, int eol, Color color);
|
float size, const glm::ivec2& pos, int width, int eol, Color color);
|
||||||
void DrawHighlight(FontMetaChar hl, Math::IntPoint pos, Math::IntPoint size);
|
void DrawHighlight(FontMetaChar hl, const glm::ivec2& pos, const glm::ivec2& size);
|
||||||
void DrawCharAndAdjustPos(UTF8Char ch, FontType font, float size, Math::IntPoint &pos, Color color);
|
void DrawCharAndAdjustPos(UTF8Char ch, FontType font, float size, glm::ivec2&pos, Color color);
|
||||||
void StringToUTFCharList(const std::string &text, std::vector<UTF8Char> &chars);
|
void StringToUTFCharList(const std::string &text, std::vector<UTF8Char> &chars);
|
||||||
void StringToUTFCharList(const std::string &text, std::vector<UTF8Char> &chars, std::vector<FontMetaChar>::iterator format, std::vector<FontMetaChar>::iterator end);
|
void StringToUTFCharList(const std::string &text, std::vector<UTF8Char> &chars, std::vector<FontMetaChar>::iterator format, std::vector<FontMetaChar>::iterator end);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue