summaryrefslogtreecommitdiffstats
path: root/src/graphics/engine
diff options
context:
space:
mode:
authorPiotr Dziwinski <piotrdz@gmail.com>2012-09-26 16:40:27 +0200
committerPiotr Dziwinski <piotrdz@gmail.com>2012-09-26 16:40:27 +0200
commit6bdc1e8ac1f0183ae635a342b7c2bb3c9ab6f63c (patch)
tree0743ec727b22c5f91579d9baafa10a5cbb67bd60 /src/graphics/engine
parentdad42df4c7878e3da67ab66549fc1a3132893160 (diff)
parent45fd8aad33029746424031e12777f2824bda245e (diff)
downloadcolobot-6bdc1e8ac1f0183ae635a342b7c2bb3c9ab6f63c.tar.gz
colobot-6bdc1e8ac1f0183ae635a342b7c2bb3c9ab6f63c.tar.bz2
colobot-6bdc1e8ac1f0183ae635a342b7c2bb3c9ab6f63c.zip
Merge master & dev
Diffstat (limited to 'src/graphics/engine')
-rw-r--r--src/graphics/engine/engine.cpp16
-rw-r--r--src/graphics/engine/text.cpp78
-rw-r--r--src/graphics/engine/text.h7
3 files changed, 51 insertions, 50 deletions
diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp
index 37f9b00..c170922 100644
--- a/src/graphics/engine/engine.cpp
+++ b/src/graphics/engine/engine.cpp
@@ -3417,10 +3417,10 @@ void CEngine::DrawBackgroundGradient(const Color& up, const Color& down)
VertexCol vertex[4] =
{
- VertexCol(Math::Vector(p1.x, p1.y, 0.0f), color[1], color[2]),
- VertexCol(Math::Vector(p1.x, p2.y, 0.0f), color[0], color[2]),
- VertexCol(Math::Vector(p2.x, p1.y, 0.0f), color[1], color[2]),
- VertexCol(Math::Vector(p2.x, p2.y, 0.0f), color[0], color[2])
+ VertexCol(Math::Vector(p1.x, p1.y, 0.0f), color[1]),
+ VertexCol(Math::Vector(p1.x, p2.y, 0.0f), color[0]),
+ VertexCol(Math::Vector(p2.x, p1.y, 0.0f), color[1]),
+ VertexCol(Math::Vector(p2.x, p2.y, 0.0f), color[0])
};
m_device->DrawPrimitive(PRIMITIVE_TRIANGLE_STRIP, vertex, 4);
@@ -3567,10 +3567,10 @@ void CEngine::DrawOverColor()
VertexCol vertex[4] =
{
- VertexCol(Math::Vector(p1.x, p1.y, 0.0f), color[1], color[2]),
- VertexCol(Math::Vector(p1.x, p2.y, 0.0f), color[0], color[2]),
- VertexCol(Math::Vector(p2.x, p1.y, 0.0f), color[1], color[2]),
- VertexCol(Math::Vector(p2.x, p2.y, 0.0f), color[0], color[2])
+ VertexCol(Math::Vector(p1.x, p1.y, 0.0f), color[1]),
+ VertexCol(Math::Vector(p1.x, p2.y, 0.0f), color[0]),
+ VertexCol(Math::Vector(p2.x, p1.y, 0.0f), color[1]),
+ VertexCol(Math::Vector(p2.x, p2.y, 0.0f), color[0])
};
m_device->DrawPrimitive(PRIMITIVE_TRIANGLE_STRIP, vertex, 4);
diff --git a/src/graphics/engine/text.cpp b/src/graphics/engine/text.cpp
index da9f4ac..00b6617 100644
--- a/src/graphics/engine/text.cpp
+++ b/src/graphics/engine/text.cpp
@@ -150,8 +150,8 @@ void CText::FlushCache()
}
void CText::DrawText(const std::string &text, const std::vector<FontMetaChar> &format,
- float size, Math::Point pos, float width, TextAlign align,
- int eol)
+ float size, Math::Point pos, float width, TextAlign align,
+ int eol)
{
float sw = 0.0f;
@@ -172,8 +172,8 @@ void CText::DrawText(const std::string &text, const std::vector<FontMetaChar> &f
}
void CText::DrawText(const std::string &text, FontType font,
- float size, Math::Point pos, float width, TextAlign align,
- int eol)
+ float size, Math::Point pos, float width, TextAlign align,
+ int eol)
{
float sw = 0.0f;
@@ -194,8 +194,8 @@ void CText::DrawText(const std::string &text, FontType font,
}
void CText::SizeText(const std::string &text, const std::vector<FontMetaChar> &format,
- float size, Math::Point pos, TextAlign align,
- Math::Point &start, Math::Point &end)
+ float size, Math::Point pos, TextAlign align,
+ Math::Point &start, Math::Point &end)
{
start = end = pos;
@@ -217,8 +217,8 @@ void CText::SizeText(const std::string &text, const std::vector<FontMetaChar> &f
}
void CText::SizeText(const std::string &text, FontType font,
- float size, Math::Point pos, TextAlign align,
- Math::Point &start, Math::Point &end)
+ float size, Math::Point pos, TextAlign align,
+ Math::Point &start, Math::Point &end)
{
start = end = pos;
@@ -277,7 +277,7 @@ float CText::GetHeight(FontType font, float size)
float CText::GetStringWidth(const std::string &text,
- const std::vector<FontMetaChar> &format, float size)
+ const std::vector<FontMetaChar> &format, float size)
{
assert(StrUtils::Utf8StringLength(text) == format.size());
@@ -344,7 +344,7 @@ float CText::GetCharWidth(UTF8Char ch, FontType font, float size, float offset)
int CText::Justify(const std::string &text, const std::vector<FontMetaChar> &format,
- float size, float width)
+ float size, float width)
{
assert(StrUtils::Utf8StringLength(text) == format.size());
@@ -427,7 +427,7 @@ int CText::Justify(const std::string &text, FontType font, float size, float wid
}
int CText::Detect(const std::string &text, const std::vector<FontMetaChar> &format,
- float size, float offset)
+ float size, float offset)
{
assert(StrUtils::Utf8StringLength(text) == format.size());
@@ -500,7 +500,7 @@ int CText::Detect(const std::string &text, FontType font, float size, float offs
}
void CText::DrawString(const std::string &text, const std::vector<FontMetaChar> &format,
- float size, Math::Point pos, float width, int eol)
+ float size, Math::Point pos, float width, int eol)
{
assert(StrUtils::Utf8StringLength(text) == format.size());
@@ -511,9 +511,10 @@ void CText::DrawString(const std::string &text, const std::vector<FontMetaChar>
unsigned int fmtIndex = 0;
- std::vector<UTF8Char> chars = StringToUTFCharList(text);
- for(auto it=chars.begin(); it != chars.end(); ++it){
-
+ std::vector<UTF8Char> chars;
+ StringToUTFCharList(text, chars);
+ for (auto it = chars.begin(); it != chars.end(); ++it)
+ {
font = static_cast<FontType>(format[fmtIndex] & FONT_MASK_FONT);
// TODO: if (font == FONT_BUTTON)
@@ -546,37 +547,38 @@ void CText::DrawString(const std::string &text, const std::vector<FontMetaChar>
// TODO: eol
}
-std::vector<UTF8Char> CText::StringToUTFCharList(const std::string &text) {
- std::vector<UTF8Char> v;
- unsigned int index = 0;
- while (index < text.length())
- {
- UTF8Char ch;
-
- int len = StrUtils::Utf8CharSizeAt(text, index);
- if (len >= 1)
- ch.c1 = text[index];
- if (len >= 2)
- ch.c2 = text[index+1];
- if (len >= 3)
- ch.c3 = text[index+2];
-
- index += len;
-
- v.push_back(ch);
- }
- return v;
+void CText::StringToUTFCharList(const std::string &text, std::vector<UTF8Char> &chars)
+{
+ unsigned int index = 0;
+ while (index < text.length())
+ {
+ UTF8Char ch;
+
+ int len = StrUtils::Utf8CharSizeAt(text, index);
+ if (len >= 1)
+ ch.c1 = text[index];
+ if (len >= 2)
+ ch.c2 = text[index+1];
+ if (len >= 3)
+ ch.c3 = text[index+2];
+
+ index += len;
+
+ chars.push_back(ch);
+ }
}
void CText::DrawString(const std::string &text, FontType font,
- float size, Math::Point pos, float width, int eol)
+ float size, Math::Point pos, float width, int eol)
{
assert(font != FONT_BUTTON);
m_engine->SetState(ENG_RSTATE_TEXT);
- std::vector<UTF8Char> chars = StringToUTFCharList(text);
- for(auto it=chars.begin(); it != chars.end(); ++it){
+ std::vector<UTF8Char> chars;
+ StringToUTFCharList(text, chars);
+ for (auto it = chars.begin(); it != chars.end(); ++it)
+ {
DrawCharAndAdjustPos(*it, font, size, pos);
}
}
diff --git a/src/graphics/engine/text.h b/src/graphics/engine/text.h
index 0ecf7cd..bb9a32d 100644
--- a/src/graphics/engine/text.h
+++ b/src/graphics/engine/text.h
@@ -293,11 +293,10 @@ protected:
float size, Math::Point pos, float width, int eol);
void DrawHighlight(FontHighlight hl, Math::Point pos, Math::Point size);
void DrawCharAndAdjustPos(UTF8Char ch, FontType font, float size, Math::Point &pos);
- std::vector<UTF8Char>
- StringToUTFCharList(const std::string &text);
+ void StringToUTFCharList(const std::string &text, std::vector<UTF8Char> &chars);
protected:
- CInstanceManager* m_iMan;
+ CInstanceManager* m_iMan;
CEngine* m_engine;
CDevice* m_device;
@@ -307,7 +306,7 @@ protected:
std::map<FontType, MultisizeFont*> m_fonts;
FontType m_lastFontType;
- int m_lastFontSize;
+ int m_lastFontSize;
CachedFont* m_lastCachedFont;
};