Added the OpenSans Hebrew Condensed Light font.

OptionListComponent and SliderComponent now use it.
SliderComponent suffix is now vertically centered properly.
This commit is contained in:
Aloshi 2014-03-16 19:52:15 -05:00
parent 08dfc32f89
commit 3c05d6bc21
9 changed files with 3335 additions and 32 deletions

View file

@ -321,6 +321,7 @@ set(ES_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/data/converted/help_dpad_left_right_png.cpp ${CMAKE_CURRENT_SOURCE_DIR}/data/converted/help_dpad_left_right_png.cpp
${CMAKE_CURRENT_SOURCE_DIR}/data/converted/opensans_hebrew_condensed_regular_ttf.cpp ${CMAKE_CURRENT_SOURCE_DIR}/data/converted/opensans_hebrew_condensed_regular_ttf.cpp
${CMAKE_CURRENT_SOURCE_DIR}/data/converted/opensans_hebrew_condensed_light_ttf.cpp
${CMAKE_CURRENT_SOURCE_DIR}/data/converted/sq_bracket_png.cpp ${CMAKE_CURRENT_SOURCE_DIR}/data/converted/sq_bracket_png.cpp
${CMAKE_CURRENT_SOURCE_DIR}/data/converted/arrow_png.cpp ${CMAKE_CURRENT_SOURCE_DIR}/data/converted/arrow_png.cpp
${CMAKE_CURRENT_SOURCE_DIR}/data/converted/checkbox_checked_png.cpp ${CMAKE_CURRENT_SOURCE_DIR}/data/converted/checkbox_checked_png.cpp

View file

@ -2,7 +2,7 @@
#include "Resources.h" #include "Resources.h"
const size_t res2hNrOfFiles = 31; const size_t res2hNrOfFiles = 32;
const Res2hEntry res2hFiles[res2hNrOfFiles] = { const Res2hEntry res2hFiles[res2hNrOfFiles] = {
{":/arrow.png", arrow_png_size, arrow_png_data}, {":/arrow.png", arrow_png_size, arrow_png_data},
{":/button.png", button_png_size, button_png_data}, {":/button.png", button_png_size, button_png_data},
@ -12,6 +12,7 @@ const Res2hEntry res2hFiles[res2hNrOfFiles] = {
{":/ES_logo_16.png", ES_logo_16_png_size, ES_logo_16_png_data}, {":/ES_logo_16.png", ES_logo_16_png_size, ES_logo_16_png_data},
{":/ES_logo_32.png", ES_logo_32_png_size, ES_logo_32_png_data}, {":/ES_logo_32.png", ES_logo_32_png_size, ES_logo_32_png_data},
{":/frame.png", frame_png_size, frame_png_data}, {":/frame.png", frame_png_size, frame_png_data},
{":/opensans_hebrew_condensed_light.ttf", opensans_hebrew_condensed_light_ttf_size, opensans_hebrew_condensed_light_ttf_data},
{":/opensans_hebrew_condensed_regular.ttf", opensans_hebrew_condensed_regular_ttf_size, opensans_hebrew_condensed_regular_ttf_data}, {":/opensans_hebrew_condensed_regular.ttf", opensans_hebrew_condensed_regular_ttf_size, opensans_hebrew_condensed_regular_ttf_data},
{":/scroll_gradient.png", scroll_gradient_png_size, scroll_gradient_png_data}, {":/scroll_gradient.png", scroll_gradient_png_size, scroll_gradient_png_data},
{":/slider_knob.png", slider_knob_png_size, slider_knob_png_data}, {":/slider_knob.png", slider_knob_png_size, slider_knob_png_data},
@ -46,29 +47,30 @@ res2hMapType::value_type mapTemp[] = {
std::make_pair(":/ES_logo_16.png", res2hFiles[5]), std::make_pair(":/ES_logo_16.png", res2hFiles[5]),
std::make_pair(":/ES_logo_32.png", res2hFiles[6]), std::make_pair(":/ES_logo_32.png", res2hFiles[6]),
std::make_pair(":/frame.png", res2hFiles[7]), std::make_pair(":/frame.png", res2hFiles[7]),
std::make_pair(":/opensans_hebrew_condensed_regular.ttf", res2hFiles[8]), std::make_pair(":/opensans_hebrew_condensed_light.ttf", res2hFiles[8]),
std::make_pair(":/scroll_gradient.png", res2hFiles[9]), std::make_pair(":/opensans_hebrew_condensed_regular.ttf", res2hFiles[9]),
std::make_pair(":/slider_knob.png", res2hFiles[10]), std::make_pair(":/scroll_gradient.png", res2hFiles[10]),
std::make_pair(":/sq_bracket.png", res2hFiles[11]), std::make_pair(":/slider_knob.png", res2hFiles[11]),
std::make_pair(":/star_filled.png", res2hFiles[12]), std::make_pair(":/sq_bracket.png", res2hFiles[12]),
std::make_pair(":/star_unfilled.png", res2hFiles[13]), std::make_pair(":/star_filled.png", res2hFiles[13]),
std::make_pair(":/textbox.png", res2hFiles[14]), std::make_pair(":/star_unfilled.png", res2hFiles[14]),
std::make_pair(":/textbox_glow.png", res2hFiles[15]), std::make_pair(":/textbox.png", res2hFiles[15]),
std::make_pair(":/help/a.png", res2hFiles[16]), std::make_pair(":/textbox_glow.png", res2hFiles[16]),
std::make_pair(":/help/b.png", res2hFiles[17]), std::make_pair(":/help/a.png", res2hFiles[17]),
std::make_pair(":/help/dpad_all.png", res2hFiles[18]), std::make_pair(":/help/b.png", res2hFiles[18]),
std::make_pair(":/help/dpad_down.png", res2hFiles[19]), std::make_pair(":/help/dpad_all.png", res2hFiles[19]),
std::make_pair(":/help/dpad_left.png", res2hFiles[20]), std::make_pair(":/help/dpad_down.png", res2hFiles[20]),
std::make_pair(":/help/dpad_left_right.png", res2hFiles[21]), std::make_pair(":/help/dpad_left.png", res2hFiles[21]),
std::make_pair(":/help/dpad_right.png", res2hFiles[22]), std::make_pair(":/help/dpad_left_right.png", res2hFiles[22]),
std::make_pair(":/help/dpad_up.png", res2hFiles[23]), std::make_pair(":/help/dpad_right.png", res2hFiles[23]),
std::make_pair(":/help/dpad_up_down.png", res2hFiles[24]), std::make_pair(":/help/dpad_up.png", res2hFiles[24]),
std::make_pair(":/help/l.png", res2hFiles[25]), std::make_pair(":/help/dpad_up_down.png", res2hFiles[25]),
std::make_pair(":/help/r.png", res2hFiles[26]), std::make_pair(":/help/l.png", res2hFiles[26]),
std::make_pair(":/help/select.png", res2hFiles[27]), std::make_pair(":/help/r.png", res2hFiles[27]),
std::make_pair(":/help/start.png", res2hFiles[28]), std::make_pair(":/help/select.png", res2hFiles[28]),
std::make_pair(":/help/x.png", res2hFiles[29]), std::make_pair(":/help/start.png", res2hFiles[29]),
std::make_pair(":/help/y.png", res2hFiles[30]) std::make_pair(":/help/x.png", res2hFiles[30]),
std::make_pair(":/help/y.png", res2hFiles[31])
}; };
res2hMapType res2hMap(mapTemp, mapTemp + sizeof mapTemp / sizeof mapTemp[0]); res2hMapType res2hMap(mapTemp, mapTemp + sizeof mapTemp / sizeof mapTemp[0]);

View file

@ -29,6 +29,9 @@ extern const unsigned char ES_logo_32_png_data[];
extern const size_t frame_png_size; extern const size_t frame_png_size;
extern const unsigned char frame_png_data[]; extern const unsigned char frame_png_data[];
extern const size_t opensans_hebrew_condensed_light_ttf_size;
extern const unsigned char opensans_hebrew_condensed_light_ttf_data[];
extern const size_t opensans_hebrew_condensed_regular_ttf_size; extern const size_t opensans_hebrew_condensed_regular_ttf_size;
extern const unsigned char opensans_hebrew_condensed_regular_ttf_data[]; extern const unsigned char opensans_hebrew_condensed_regular_ttf_data[];

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -113,7 +113,7 @@ public:
OptionListComponent(Window* window, const std::string& name, bool multiSelect = false) : GuiComponent(window), mMultiSelect(multiSelect), mName(name), OptionListComponent(Window* window, const std::string& name, bool multiSelect = false) : GuiComponent(window), mMultiSelect(multiSelect), mName(name),
mText(window), mLeftArrow(window), mRightArrow(window) mText(window), mLeftArrow(window), mRightArrow(window)
{ {
auto font = Font::get(FONT_SIZE_MEDIUM); auto font = Font::get(FONT_SIZE_MEDIUM, FONT_PATH_LIGHT);
mText.setFont(font); mText.setFont(font);
mText.setColor(0x777777FF); mText.setColor(0x777777FF);
mText.setCentered(true); mText.setCentered(true);

View file

@ -107,7 +107,7 @@ float SliderComponent::getValue()
void SliderComponent::onSizeChanged() void SliderComponent::onSizeChanged()
{ {
if(!mSuffix.empty()) if(!mSuffix.empty())
mFont = Font::get((int)(mSize.y() * 0.7f)); mFont = Font::get((int)(mSize.y() * 0.8f), FONT_PATH_LIGHT);
onValueChanged(); onValueChanged();
} }
@ -132,9 +132,9 @@ void SliderComponent::onValueChanged()
ss << mSuffix; ss << mSuffix;
const std::string max = ss.str(); const std::string max = ss.str();
float w = mFont->sizeText(max).x(); Eigen::Vector2f textSize = mFont->sizeText(max);
mValueCache = std::shared_ptr<TextCache>(mFont->buildTextCache(val, mSize.x() - w, 0, 0x777777FF)); mValueCache = std::shared_ptr<TextCache>(mFont->buildTextCache(val, mSize.x() - textSize.x(), (mSize.y() - textSize.y()) / 2, 0x777777FF));
mValueCache->metrics.size[0] = w; // fudge the width mValueCache->metrics.size[0] = textSize.x(); // fudge the width
} }
// update knob position/size // update knob position/size

View file

@ -16,6 +16,9 @@ class TextCache;
#define FONT_SIZE_MEDIUM ((unsigned int)(0.045f * Renderer::getScreenHeight())) #define FONT_SIZE_MEDIUM ((unsigned int)(0.045f * Renderer::getScreenHeight()))
#define FONT_SIZE_LARGE ((unsigned int)(0.1f * Renderer::getScreenHeight())) #define FONT_SIZE_LARGE ((unsigned int)(0.1f * Renderer::getScreenHeight()))
#define FONT_PATH_LIGHT ":/opensans_hebrew_condensed_light.ttf"
#define FONT_PATH_REGULAR ":/opensans_hebrew_condensed_regular.ttf"
//A TrueType Font renderer that uses FreeType and OpenGL. //A TrueType Font renderer that uses FreeType and OpenGL.
//The library is automatically initialized when it's needed. //The library is automatically initialized when it's needed.
class Font : public IReloadable class Font : public IReloadable
@ -70,7 +73,7 @@ public:
int getSize() const; int getSize() const;
inline const std::string& getPath() const { return mPath; } inline const std::string& getPath() const { return mPath; }
inline static const char* getDefaultPath() { return ":/opensans_hebrew_condensed_regular.ttf"; } inline static const char* getDefaultPath() { return FONT_PATH_REGULAR; }
static std::shared_ptr<Font> getFromTheme(const ThemeData::ThemeElement* elem, unsigned int properties, const std::shared_ptr<Font>& orig); static std::shared_ptr<Font> getFromTheme(const ThemeData::ThemeElement* elem, unsigned int properties, const std::shared_ptr<Font>& orig);

View file

@ -82,8 +82,8 @@ void TextureResource::initFromMemory(const char* data, size_t length)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
const GLint wrapMode = mTile ? GL_REPEAT : GL_CLAMP_TO_EDGE; const GLint wrapMode = mTile ? GL_REPEAT : GL_CLAMP_TO_EDGE;
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrapMode);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrapMode);
mTextureSize << width, height; mTextureSize << width, height;
} }