diff --git a/src/framework/CMakeLists.txt b/src/framework/CMakeLists.txt index 0dc08ef8..b401d9d8 100644 --- a/src/framework/CMakeLists.txt +++ b/src/framework/CMakeLists.txt @@ -136,6 +136,7 @@ SET(framework_SOURCES ${framework_SOURCES} # framework util ${CMAKE_CURRENT_LIST_DIR}/util/utf8.cpp + ${CMAKE_CURRENT_LIST_DIR}/math/color.cpp # framework core ${CMAKE_CURRENT_LIST_DIR}/core/logger.cpp diff --git a/src/framework/const.h b/src/framework/const.h index 9ba5e3cf..2321136b 100644 --- a/src/framework/const.h +++ b/src/framework/const.h @@ -30,30 +30,7 @@ namespace Fw { - constexpr double pi = 3.14159265; - - // NOTE: AABBGGRR order - enum GlobalColor : uint32 { - alpha = 0x00000000, - white = 0xffffffff, - black = 0xff000000, - red = 0xff0000ff, - darkRed = 0xff000080, - green = 0xff00ff00, - darkGreen = 0xff008000, - blue = 0xffff0000, - darkBlue = 0xff800000, - pink = 0xffff00ff, - darkPink = 0xff800080, - yellow = 0xff00ffff, - darkYellow = 0xff008080, - teal = 0xffffff00, - darkTeal = 0xff808000, - gray = 0xffa0a0a0, - darkGray = 0xff808080, - lightGray = 0xffc0c0c0, - orange = 0xffff8c00 - }; + constexpr float pi = 3.14159265; enum Key : uint8 { KeyUnknown = 0, diff --git a/src/framework/core/clock.cpp b/src/framework/core/clock.cpp index 34aee743..180a1aaa 100644 --- a/src/framework/core/clock.cpp +++ b/src/framework/core/clock.cpp @@ -37,6 +37,7 @@ ticks_t Clock::updateTicks() { auto timeNow = std::chrono::high_resolution_clock::now(); m_currentTicks = std::chrono::duration_cast(timeNow - m_startupTime).count(); + m_currentTime = m_currentTicks/1000.0f; return m_currentTicks; } diff --git a/src/framework/core/clock.h b/src/framework/core/clock.h index 1b58dc5a..7057a15a 100644 --- a/src/framework/core/clock.h +++ b/src/framework/core/clock.h @@ -34,15 +34,16 @@ public: void sleep(int ms); ticks_t ticks() { return m_currentTicks; } - ticks_t ticksElapsed(long prevTicks) { return ticks() - prevTicks; } - ticks_t ticksFor(int delay) { return ticks() + delay; } + ticks_t ticksElapsed(long prevTicks) { return m_currentTicks - prevTicks; } + ticks_t ticksFor(int delay) { return m_currentTicks + delay; } - double time() { return m_currentTicks/1000.0; } - double timeElapsed(double prevTime) { return time() - prevTime; } - double timeFor(double delay) { return time() + delay; } + float time() { return m_currentTime; } + float timeElapsed(float prevTime) { return m_currentTime - prevTime; } + float timeFor(float delay) { return m_currentTime + delay; } private: ticks_t m_currentTicks; + float m_currentTime; std::chrono::system_clock::time_point m_startupTime; }; diff --git a/src/framework/core/timer.h b/src/framework/core/timer.h index 318eb5bb..b6c61a72 100644 --- a/src/framework/core/timer.h +++ b/src/framework/core/timer.h @@ -35,7 +35,7 @@ public: ticks_t startTicks() { return m_startTicks; } ticks_t ticksElapsed(); - double timeElapsed() { return ticksElapsed()/1000.0; } + float timeElapsed() { return ticksElapsed()/1000.0f; } bool running() { return !m_stopped; } diff --git a/src/framework/graphics/coordsbuffer.cpp b/src/framework/graphics/coordsbuffer.cpp index 27ea8e2e..aa28eca0 100644 --- a/src/framework/graphics/coordsbuffer.cpp +++ b/src/framework/graphics/coordsbuffer.cpp @@ -100,7 +100,7 @@ void CoordsBuffer::cacheVertexArrays() m_vertices.clear(); m_textureCoords.clear(); - for(int i=0;i& calculateGlyphsPositions(const std::string& text, diff --git a/src/framework/graphics/framebuffer.cpp b/src/framework/graphics/framebuffer.cpp index 8ead7420..5d1dad19 100644 --- a/src/framework/graphics/framebuffer.cpp +++ b/src/framework/graphics/framebuffer.cpp @@ -28,7 +28,7 @@ uint FrameBuffer::boundFbo = 0; FrameBuffer::FrameBuffer() { - m_clearColor = Fw::alpha; + m_clearColor = Color::alpha; glGenFramebuffers(1, &m_fbo); if(!m_fbo) @@ -37,7 +37,7 @@ FrameBuffer::FrameBuffer() FrameBuffer::FrameBuffer(const Size& size) { - m_clearColor = Fw::alpha; + m_clearColor = Color::alpha; glGenFramebuffers(1, &m_fbo); if(!m_fbo) diff --git a/src/framework/graphics/painter.cpp b/src/framework/graphics/painter.cpp index a0460b58..fab3f937 100644 --- a/src/framework/graphics/painter.cpp +++ b/src/framework/graphics/painter.cpp @@ -32,7 +32,7 @@ Painter g_painter; void Painter::init() { - setColor(Fw::white); + setColor(Color::white); setOpacity(1.0f); setCompositionMode(CompositionMode_Normal); @@ -67,16 +67,11 @@ void Painter::drawProgram(const PainterShaderProgramPtr& program, CoordsBuffer& void Painter::drawTextureCoords(CoordsBuffer& coordsBuffer, const TexturePtr& texture) { - PainterShaderProgramPtr program = m_customProgram ? m_customProgram : m_drawTexturedProgram; + PainterShaderProgramPtr& program = m_customProgram ? m_customProgram : m_drawTexturedProgram; program->setTexture(texture); drawProgram(program, coordsBuffer); } -void Painter::drawTexturedRect(const Rect& dest, const TexturePtr& texture) -{ - drawTexturedRect(dest, texture, Rect(Point(0,0), texture->getSize())); -} - void Painter::drawTexturedRect(const Rect& dest, const TexturePtr& texture, const Rect& src) { if(dest.isEmpty() || src.isEmpty() || !texture->getId()) @@ -153,7 +148,7 @@ void Painter::saveAndResetState() m_oldCompostionMode = m_compostionMode; releaseCustomProgram(); - setColor(Fw::white); + setColor(Color::white); setOpacity(1); setCompositionMode(CompositionMode_Normal); } @@ -166,7 +161,7 @@ void Painter::restoreSavedState() setCompositionMode(m_oldCompostionMode); m_oldCustomProgram = nullptr; - m_oldColor = Fw::white; + m_oldColor = Color::white; m_oldOpacity = 1; m_oldCompostionMode = CompositionMode_Normal; } diff --git a/src/framework/graphics/painter.h b/src/framework/graphics/painter.h index 4693e353..7d9263de 100644 --- a/src/framework/graphics/painter.h +++ b/src/framework/graphics/painter.h @@ -27,6 +27,7 @@ #include #include "coordsbuffer.h" #include "paintershaderprogram.h" +#include "texture.h" class Painter { @@ -44,8 +45,8 @@ public: void drawProgram(const PainterShaderProgramPtr& program, CoordsBuffer& coordsBuffer, PainterShaderProgram::DrawMode drawMode = PainterShaderProgram::Triangles); void drawTextureCoords(CoordsBuffer& coordsBuffer, const TexturePtr& texture); - void drawTexturedRect(const Rect& dest, const TexturePtr& texture); void drawTexturedRect(const Rect& dest, const TexturePtr& texture, const Rect& src); + void drawTexturedRect(const Rect& dest, const TexturePtr& texture) { drawTexturedRect(dest, texture, Rect(Point(0,0), texture->getSize())); } void drawRepeatedTexturedRect(const Rect& dest, const TexturePtr& texture, const Rect& src); void drawFilledRect(const Rect& dest); void drawBoundingRect(const Rect& dest, int innerLineWidth = 1); diff --git a/src/framework/graphics/paintershaderprogram.cpp b/src/framework/graphics/paintershaderprogram.cpp index c5a9a72c..ffde9af8 100644 --- a/src/framework/graphics/paintershaderprogram.cpp +++ b/src/framework/graphics/paintershaderprogram.cpp @@ -29,6 +29,7 @@ PainterShaderProgram::PainterShaderProgram() { m_textures.fill(std::make_tuple(-1, 0)); + m_startTime = g_clock.time(); } bool PainterShaderProgram::link() @@ -44,7 +45,7 @@ bool PainterShaderProgram::link() bindUniformLocation(TIME_UNIFORM, "time"); return true; } - m_startTimer.restart(); + m_startTime = g_clock.time(); return false; } @@ -94,7 +95,7 @@ void PainterShaderProgram::draw(const CoordsBuffer& coordsBuffer, DrawMode drawM { bind(); - setUniformValue(TIME_UNIFORM, (float)m_startTimer.timeElapsed()); + setUniformValue(TIME_UNIFORM, g_clock.timeElapsed(m_startTime)); int numVertices = coordsBuffer.getVertexCount(); if(numVertices == 0) diff --git a/src/framework/graphics/paintershaderprogram.h b/src/framework/graphics/paintershaderprogram.h index 4f492a5a..49647c9d 100644 --- a/src/framework/graphics/paintershaderprogram.h +++ b/src/framework/graphics/paintershaderprogram.h @@ -58,7 +58,7 @@ public: private: DrawMode m_drawMode; - Timer m_startTimer; + float m_startTime; std::array, 4> m_textures; }; diff --git a/src/framework/graphics/particle.cpp b/src/framework/graphics/particle.cpp index d91397ac..5d82cde3 100644 --- a/src/framework/graphics/particle.cpp +++ b/src/framework/graphics/particle.cpp @@ -56,7 +56,7 @@ void Particle::render() } } -void Particle::update(double elapsedTime) +void Particle::update(float elapsedTime) { // check if finished if(m_duration >= 0 && m_elapsedTime >= m_duration) { @@ -71,7 +71,7 @@ void Particle::update(double elapsedTime) m_elapsedTime += elapsedTime; } -void Particle::updatePosition(double elapsedTime) +void Particle::updatePosition(float elapsedTime) { if(m_ignorePhysicsAfter < 0 || m_elapsedTime < m_ignorePhysicsAfter ) { // update position diff --git a/src/framework/graphics/particle.h b/src/framework/graphics/particle.h index 305cf1d9..c4f1e829 100644 --- a/src/framework/graphics/particle.h +++ b/src/framework/graphics/particle.h @@ -32,7 +32,7 @@ public: Particle(const Point& pos, const Size& startSize, const Size& finalSize, const PointF& velocity, const PointF& acceleration, float duration, float ignorePhysicsAfter, const std::vector& colors, const std::vector& colorsStops, Painter::CompositionMode compositionMode = Painter::CompositionMode_Normal, TexturePtr texture = nullptr); void render(); - void update(double elapsedTime); + void update(float elapsedTime); bool hasFinished() { return m_finished; } @@ -44,7 +44,7 @@ public: private: void updateColor(); - void updatePosition(double elapsedTime); + void updatePosition(float elapsedTime); void updateSize(); Color m_color; @@ -58,7 +58,7 @@ private: Rect m_rect; Painter::CompositionMode m_compositionMode; float m_duration, m_ignorePhysicsAfter; - double m_elapsedTime; + float m_elapsedTime; bool m_finished; }; diff --git a/src/framework/graphics/particleaffector.cpp b/src/framework/graphics/particleaffector.cpp index 0596e6a2..b45164c4 100644 --- a/src/framework/graphics/particleaffector.cpp +++ b/src/framework/graphics/particleaffector.cpp @@ -33,7 +33,7 @@ ParticleAffector::ParticleAffector() m_elapsedTime = 0; } -void ParticleAffector::update(double elapsedTime) +void ParticleAffector::update(float elapsedTime) { if(m_duration >= 0 && m_elapsedTime >= m_duration + m_delay) { m_finished = true; @@ -94,7 +94,7 @@ bool GravityAffector::load(const OTMLNodePtr& node) return true; } -void GravityAffector::updateParticle(const ParticlePtr& particle, double elapsedTime) +void GravityAffector::updateParticle(const ParticlePtr& particle, float elapsedTime) { if(!m_active) return; @@ -126,7 +126,7 @@ bool AttractionAffector::load(const OTMLNodePtr& node) return true; } -void AttractionAffector::updateParticle(const ParticlePtr& particle, double elapsedTime) +void AttractionAffector::updateParticle(const ParticlePtr& particle, float elapsedTime) { if(!m_active) return; diff --git a/src/framework/graphics/particleaffector.h b/src/framework/graphics/particleaffector.h index dbfd2f2c..810b08bc 100644 --- a/src/framework/graphics/particleaffector.h +++ b/src/framework/graphics/particleaffector.h @@ -30,22 +30,22 @@ class ParticleAffector { public: ParticleAffector(); - void update(double elapsedTime); + void update(float elapsedTime); virtual bool load(const OTMLNodePtr& node); - virtual void updateParticle(const ParticlePtr&, double) {} + virtual void updateParticle(const ParticlePtr&, float) {} bool hasFinished() { return m_finished; } protected: bool m_finished, m_active; float m_delay, m_duration; - double m_elapsedTime; + float m_elapsedTime; }; class GravityAffector : public ParticleAffector { public: bool load(const OTMLNodePtr& node); - void updateParticle(const ParticlePtr& particle, double elapsedTime); + void updateParticle(const ParticlePtr& particle, float elapsedTime); private: float m_angle, m_gravity; @@ -54,7 +54,7 @@ private: class AttractionAffector : public ParticleAffector { public: bool load(const OTMLNodePtr& node); - void updateParticle(const ParticlePtr& particle, double elapsedTime); + void updateParticle(const ParticlePtr& particle, float elapsedTime); private: Point m_position; diff --git a/src/framework/graphics/particleemitter.cpp b/src/framework/graphics/particleemitter.cpp index 8111291a..2a9c5e21 100644 --- a/src/framework/graphics/particleemitter.cpp +++ b/src/framework/graphics/particleemitter.cpp @@ -180,7 +180,7 @@ bool ParticleEmitter::load(const OTMLNodePtr& node) return true; } -void ParticleEmitter::update(double elapsedTime) +void ParticleEmitter::update(float elapsedTime) { // check if finished if(m_duration >= 0 && m_elapsedTime >= m_duration + m_delay) { diff --git a/src/framework/graphics/particleemitter.h b/src/framework/graphics/particleemitter.h index 402a96e4..2e618524 100644 --- a/src/framework/graphics/particleemitter.h +++ b/src/framework/graphics/particleemitter.h @@ -36,7 +36,7 @@ public: bool load(const OTMLNodePtr& node); - void update(double elapsedTime); + void update(float elapsedTime); bool hasFinished() { return m_finished; } @@ -46,7 +46,7 @@ private: // self related Point m_position; float m_duration, m_delay; - double m_elapsedTime; + float m_elapsedTime; bool m_finished, m_active; float m_burstRate; int m_currentBurst, m_burstCount; diff --git a/src/framework/graphics/particlesystem.cpp b/src/framework/graphics/particlesystem.cpp index 8927462d..9ea6ec8d 100644 --- a/src/framework/graphics/particlesystem.cpp +++ b/src/framework/graphics/particlesystem.cpp @@ -70,7 +70,7 @@ void ParticleSystem::render() void ParticleSystem::update() { - static const double delay = 0.0166; // 60 updates/s + static const float delay = 0.0166; // 60 updates/s // check if finished if(m_particles.empty() && m_emitters.empty()) { @@ -79,7 +79,7 @@ void ParticleSystem::update() } // check time - double elapsedTime = g_clock.timeElapsed(m_lastUpdateTime); + float elapsedTime = g_clock.timeElapsed(m_lastUpdateTime); if(elapsedTime < delay) return; m_lastUpdateTime = g_clock.time() - std::fmod(elapsedTime, delay); diff --git a/src/framework/graphics/particlesystem.h b/src/framework/graphics/particlesystem.h index a24d4948..3a065db8 100644 --- a/src/framework/graphics/particlesystem.h +++ b/src/framework/graphics/particlesystem.h @@ -42,7 +42,7 @@ public: private: bool m_finished; - double m_lastUpdateTime; + float m_lastUpdateTime; std::list m_particles; std::list m_emitters; std::list m_affectors; diff --git a/src/framework/luascript/luavaluecasts.cpp b/src/framework/luascript/luavaluecasts.cpp index c1eeb903..77917e31 100644 --- a/src/framework/luascript/luavaluecasts.cpp +++ b/src/framework/luascript/luavaluecasts.cpp @@ -116,7 +116,7 @@ bool luavalue_cast(int index, Color& color) } else if(g_lua.isString()) { return Fw::cast(g_lua.toString(index), color); } else if(g_lua.isNil()) { - color = Fw::white; + color = Color::white; return true; } return false; diff --git a/src/framework/math/color.cpp b/src/framework/math/color.cpp new file mode 100644 index 00000000..bffcbbbe --- /dev/null +++ b/src/framework/math/color.cpp @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2010-2012 OTClient + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "color.h" + +// NOTE: AABBGGRR order +const Color Color::alpha = 0x00000000; +const Color Color::white = 0xffffffff; +const Color Color::black = 0xff000000; +const Color Color::red = 0xff0000ff; +const Color Color::darkRed = 0xff000080; +const Color Color::green = 0xff00ff00; +const Color Color::darkGreen = 0xff008000; +const Color Color::blue = 0xffff0000; +const Color Color::darkBlue = 0xff800000; +const Color Color::pink = 0xffff00ff; +const Color Color::darkPink = 0xff800080; +const Color Color::yellow = 0xff00ffff; +const Color Color::darkYellow = 0xff008080; +const Color Color::teal = 0xffffff00; +const Color Color::darkTeal = 0xff808000; +const Color Color::gray = 0xffa0a0a0; +const Color Color::darkGray = 0xff808080; +const Color Color::lightGray = 0xffc0c0c0; +const Color Color::orange = 0xffff8c00; diff --git a/src/framework/math/color.h b/src/framework/math/color.h index 346690cb..b319df89 100644 --- a/src/framework/math/color.h +++ b/src/framework/math/color.h @@ -76,6 +76,26 @@ public: return Color(r, g, b); } + static const Color alpha; + static const Color white; + static const Color black; + static const Color red; + static const Color darkRed; + static const Color green; + static const Color darkGreen; + static const Color blue; + static const Color darkBlue; + static const Color pink; + static const Color darkPink; + static const Color yellow; + static const Color darkYellow; + static const Color teal; + static const Color darkTeal; + static const Color gray; + static const Color darkGray; + static const Color lightGray; + static const Color orange; + private: float m_r; float m_g; @@ -118,43 +138,43 @@ inline std::istream& operator>>(std::istream& in, Color& color) in >> tmp; if(tmp == "alpha") { - color = Fw::alpha; + color = Color::alpha; } else if(tmp == "black") { - color = Fw::black; + color = Color::black; } else if(tmp == "white") { - color = Fw::white; + color = Color::white; } else if(tmp == "red") { - color = Fw::red; + color = Color::red; } else if(tmp == "darkRed") { - color = Fw::darkRed; + color = Color::darkRed; } else if(tmp == "green") { - color = Fw::green; + color = Color::green; } else if(tmp == "darkGreen") { - color = Fw::darkGreen; + color = Color::darkGreen; } else if(tmp == "blue") { - color = Fw::blue; + color = Color::blue; } else if(tmp == "darkBlue") { - color = Fw::darkBlue; + color = Color::darkBlue; } else if(tmp == "pink") { - color = Fw::pink; + color = Color::pink; } else if(tmp == "darkPink") { - color = Fw::darkPink; + color = Color::darkPink; } else if(tmp == "yellow") { - color = Fw::yellow; + color = Color::yellow; } else if(tmp == "darkYellow") { - color = Fw::darkYellow; + color = Color::darkYellow; } else if(tmp == "teal") { - color = Fw::teal; + color = Color::teal; } else if(tmp == "darkTeal") { - color = Fw::darkTeal; + color = Color::darkTeal; } else if(tmp == "gray") { - color = Fw::gray; + color = Color::gray; } else if(tmp == "darkGray") { - color = Fw::darkGray; + color = Color::darkGray; } else if(tmp == "lightGray") { - color = Fw::lightGray; + color = Color::lightGray; } else if(tmp == "orange") { - color = Fw::orange; + color = Color::orange; } else { in.seekg(-tmp.length(), ios_base::cur); } diff --git a/src/framework/platform/win32window.cpp b/src/framework/platform/win32window.cpp index 43c029a2..bb3a4dcd 100644 --- a/src/framework/platform/win32window.cpp +++ b/src/framework/platform/win32window.cpp @@ -646,9 +646,9 @@ void WIN32Window::setMouseCursor(const std::string& file, const Point& hotSpot) uchar b = apng.pdata[i*4+2]; uchar a = apng.pdata[i*4+3]; Color color(r,g,b,a); - if(color == Fw::white) { //white + if(color == Color::white) { //white HSB_BIT_SET(xorMask, i); - } else if(color == Fw::alpha) { //alpha + } else if(color == Color::alpha) { //alpha HSB_BIT_SET(andMask, i); } //otherwise black } diff --git a/src/framework/platform/x11window.cpp b/src/framework/platform/x11window.cpp index 996ec07b..4b257a2a 100644 --- a/src/framework/platform/x11window.cpp +++ b/src/framework/platform/x11window.cpp @@ -864,9 +864,9 @@ void X11Window::setMouseCursor(const std::string& file, const Point& hotSpot) uchar b = apng.pdata[i*4+2]; uchar a = apng.pdata[i*4+3]; Color color(r,g,b,a); - if(color == Fw::white) { //background + if(color == Color::white) { //background LSB_BIT_SET(maskBits, i); - } else if(color == Fw::black) { //foreground + } else if(color == Color::black) { //foreground LSB_BIT_SET(mapBits, i); LSB_BIT_SET(maskBits, i); } //otherwise alpha diff --git a/src/framework/ui/uiframecounter.cpp b/src/framework/ui/uiframecounter.cpp index d5fe06b6..919feb00 100644 --- a/src/framework/ui/uiframecounter.cpp +++ b/src/framework/ui/uiframecounter.cpp @@ -47,7 +47,7 @@ void UIFrameCounter::draw() } m_frameCount++; - m_font->renderText(m_fpsText, m_rect, m_align, Fw::white); + m_font->renderText(m_fpsText, m_rect, m_align, Color::white); } void UIFrameCounter::onStyleApply(const std::string& styleName, const OTMLNodePtr& styleNode) diff --git a/src/framework/ui/uiwidget.cpp b/src/framework/ui/uiwidget.cpp index 29b14773..95edde98 100644 --- a/src/framework/ui/uiwidget.cpp +++ b/src/framework/ui/uiwidget.cpp @@ -60,7 +60,7 @@ void UIWidget::draw() void UIWidget::drawSelf() { // draw style components in order - if(m_backgroundColor.a() > 0) { + if(m_backgroundColor.aF() != 0.0f) { Rect backgroundDestRect = m_rect; backgroundDestRect.expand(-m_borderWidth.top, -m_borderWidth.right, -m_borderWidth.bottom, -m_borderWidth.left); drawBackground(m_rect); @@ -92,10 +92,10 @@ void UIWidget::drawChildren() // debug draw box if(g_ui.isDrawingDebugBoxes()) { - g_painter.setColor(Fw::green); + g_painter.setColor(Color::green); g_painter.drawBoundingRect(child->getRect()); } - //g_fonts.getDefaultFont()->renderText(child->getId(), child->getPosition() + Point(2, 0), Fw::red); + //g_fonts.getDefaultFont()->renderText(child->getId(), child->getPosition() + Point(2, 0), Color::red); g_painter.setOpacity(oldOpacity); } diff --git a/src/framework/ui/uiwidgetbasestyle.cpp b/src/framework/ui/uiwidgetbasestyle.cpp index 4e175c0f..a9c180d8 100644 --- a/src/framework/ui/uiwidgetbasestyle.cpp +++ b/src/framework/ui/uiwidgetbasestyle.cpp @@ -33,10 +33,10 @@ void UIWidget::initBaseStyle() { - m_backgroundColor = Fw::alpha; - m_borderColor.set(Fw::black); - m_iconColor = Fw::white; - m_color = Fw::white; + m_backgroundColor = Color::alpha; + m_borderColor.set(Color::black); + m_iconColor = Color::white; + m_color = Color::white; m_opacity = 1.0f; // generate an unique id, this is need because anchored layouts find widgets by id @@ -312,7 +312,7 @@ void UIWidget::parseBaseStyle(const OTMLNodePtr& styleNode) void UIWidget::drawBackground(const Rect& screenCoords) { - if(m_backgroundColor.a() > 0) { + if(m_backgroundColor.aF() != 0.0f) { Rect drawRect = screenCoords; drawRect.translate(m_backgroundRect.topLeft()); if(m_backgroundRect.isValid()) @@ -325,28 +325,28 @@ void UIWidget::drawBackground(const Rect& screenCoords) void UIWidget::drawBorder(const Rect& screenCoords) { // top - if(m_borderWidth.top > 0 && m_borderColor.top.a() > 0) { + if(m_borderWidth.top > 0 && m_borderColor.top.aF() != 0.0f) { g_painter.setColor(m_borderColor.top); Rect borderRect(screenCoords.topLeft(), screenCoords.width(), m_borderWidth.top); g_painter.drawFilledRect(borderRect); } // right - if(m_borderWidth.right > 0 && m_borderColor.right.a() > 0) { + if(m_borderWidth.right > 0 && m_borderColor.right.aF() != 0.0f) { g_painter.setColor(m_borderColor.right); Rect borderRect(screenCoords.topRight() - Point(m_borderWidth.right - 1, 0), m_borderWidth.right, screenCoords.height()); g_painter.drawFilledRect(borderRect); } // bottom - if(m_borderWidth.bottom > 0 && m_borderColor.bottom.a() > 0) { + if(m_borderWidth.bottom > 0 && m_borderColor.bottom.aF() != 0.0f) { g_painter.setColor(m_borderColor.bottom); Rect borderRect(screenCoords.bottomLeft() - Point(0, m_borderWidth.bottom - 1), screenCoords.width(), m_borderWidth.bottom); g_painter.drawFilledRect(borderRect); } // left - if(m_borderWidth.left > 0 && m_borderColor.left.a() > 0) { + if(m_borderWidth.left > 0 && m_borderColor.left.aF() != 0.0f) { g_painter.setColor(m_borderColor.left); Rect borderRect(screenCoords.topLeft(), m_borderWidth.left, screenCoords.height()); @@ -356,7 +356,7 @@ void UIWidget::drawBorder(const Rect& screenCoords) void UIWidget::drawIcon(const Rect& screenCoords) { - if(m_icon && m_iconColor.a() > 0) { + if(m_icon && m_iconColor.aF() != 0.0f) { Rect drawRect; if(m_iconRect.isValid()) { drawRect = screenCoords; diff --git a/src/framework/ui/uiwidgetimage.cpp b/src/framework/ui/uiwidgetimage.cpp index 8652a44c..c2de69ff 100644 --- a/src/framework/ui/uiwidgetimage.cpp +++ b/src/framework/ui/uiwidgetimage.cpp @@ -70,7 +70,7 @@ void UIWidget::parseImageStyle(const OTMLNodePtr& styleNode) void UIWidget::drawImage(const Rect& screenCoords) { - if(!m_imageTexture || m_imageColor.a() == 0 || !screenCoords.isValid()) + if(!m_imageTexture || m_imageColor.aF() == 0.0f || !screenCoords.isValid()) return; // cache vertex buffers diff --git a/src/framework/ui/uiwidgettext.cpp b/src/framework/ui/uiwidgettext.cpp index cb371179..d798944f 100644 --- a/src/framework/ui/uiwidgettext.cpp +++ b/src/framework/ui/uiwidgettext.cpp @@ -48,7 +48,7 @@ void UIWidget::parseTextStyle(const OTMLNodePtr& styleNode) void UIWidget::drawText(const Rect& screenCoords) { - if(m_text.length() == 0 || m_color.a() == 0) + if(m_text.length() == 0 || m_color.aF() == 0.0f) return; #if 0 @@ -66,7 +66,7 @@ void UIWidget::drawText(const Rect& screenCoords) virtualTextRect.translate(m_textOffset); g_painter.saveAndResetState(); g_painter.setCompositionMode(Painter::CompositionMode_DestBlending); - m_font->renderText(m_text, virtualTextRect, m_textAlign, Fw::white); + m_font->renderText(m_text, virtualTextRect, m_textAlign, Color::white); g_painter.restoreSavedState(); m_textFramebuffer->release(); diff --git a/src/otclient/core/creature.cpp b/src/otclient/core/creature.cpp index 64eecd4e..787207f5 100644 --- a/src/otclient/core/creature.cpp +++ b/src/otclient/core/creature.cpp @@ -86,7 +86,7 @@ void Creature::draw(const Point& dest, float scaleFactor, bool animate) void Creature::internalDrawOutfit(const Point& dest, float scaleFactor, bool animateWalk, bool animateIdle, Otc::Direction direction) { - g_painter.setColor(Fw::white); + g_painter.setColor(Color::white); if(!outfitProgram) { outfitProgram = PainterShaderProgramPtr(new PainterShaderProgram); outfitProgram->addShaderFromSourceCode(Shader::Vertex, glslMainWithTexCoordsVertexShader + glslPositionOnlyVertexShader); @@ -225,7 +225,7 @@ void Creature::drawInformation(const Point& point, bool useGray, const Rect& par healthRect.setWidth((m_healthPercent / 100.0) * 25); // draw - g_painter.setColor(Fw::black); + g_painter.setColor(Color::black); g_painter.drawFilledRect(backgroundRect); g_painter.setColor(fillColor); @@ -235,15 +235,15 @@ void Creature::drawInformation(const Point& point, bool useGray, const Rect& par m_informationFont->renderText(m_name, textRect, Fw::AlignTopCenter, fillColor); if(m_skull != Otc::SkullNone && m_skullTexture) { - g_painter.setColor(Fw::white); + g_painter.setColor(Color::white); g_painter.drawTexturedRect(Rect(point.x + 12, point.y + 5, m_skullTexture->getSize()), m_skullTexture); } if(m_shield != Otc::ShieldNone && m_shieldTexture && m_showShieldTexture) { - g_painter.setColor(Fw::white); + g_painter.setColor(Color::white); g_painter.drawTexturedRect(Rect(point.x, point.y + 5, m_shieldTexture->getSize()), m_shieldTexture); } if(m_emblem != Otc::EmblemNone && m_emblemTexture) { - g_painter.setColor(Fw::white); + g_painter.setColor(Color::white); g_painter.drawTexturedRect(Rect(point.x + 12, point.y + 16, m_emblemTexture->getSize()), m_emblemTexture); } } @@ -431,7 +431,7 @@ void Creature::setName(const std::string& name) void Creature::setHealthPercent(uint8 healthPercent) { - m_informationColor = Fw::black; + m_informationColor = Color::black; if(healthPercent > 92) { m_informationColor.setGreen(188); diff --git a/src/otclient/core/game.cpp b/src/otclient/core/game.cpp index abf8aac9..39d577d8 100644 --- a/src/otclient/core/game.cpp +++ b/src/otclient/core/game.cpp @@ -887,7 +887,7 @@ void Game::setAttackingCreature(const CreaturePtr& creature) } if(creature) { - creature->showStaticSquare(Fw::red); + creature->showStaticSquare(Color::red); m_attackingCreature = creature; } @@ -902,7 +902,7 @@ void Game::setFollowingCreature(const CreaturePtr& creature) } if(creature) { - creature->showStaticSquare(Fw::green); + creature->showStaticSquare(Color::green); m_followingCreature = creature; } diff --git a/src/otclient/core/mapview.cpp b/src/otclient/core/mapview.cpp index 189b7ead..b30188ee 100644 --- a/src/otclient/core/mapview.cpp +++ b/src/otclient/core/mapview.cpp @@ -46,7 +46,7 @@ MapView::MapView() std::min(g_graphics.getMaxTextureSize(), (int)DEFAULT_FRAMBUFFER_HEIGHT)); m_framebuffer = FrameBufferPtr(new FrameBuffer(frameBufferSize)); - m_framebuffer->setClearColor(Fw::black); + m_framebuffer->setClearColor(Color::black); setVisibleDimension(Size(15, 11)); m_shaderProgram = PainterShaderProgramPtr(new PainterShaderProgram); @@ -106,7 +106,7 @@ void MapView::draw(const Rect& rect) } g_painter.setCustomProgram(m_shaderProgram); - g_painter.setColor(Fw::white); + g_painter.setColor(Color::white); Point drawOffset = ((m_drawDimension - m_visibleDimension - Size(1,1)).toPoint()/2) * m_tileSize; if(m_followingCreature) @@ -175,7 +175,7 @@ void MapView::draw(const Rect& rect) Rect hRect(0, 0, 10, 2); vRect.moveCenter(rect.center()); hRect.moveCenter(rect.center()); - g_painter.setColor(Fw::white); + g_painter.setColor(Color::white); g_painter.drawFilledRect(vRect); g_painter.drawFilledRect(hRect); } diff --git a/src/otclient/core/thing.cpp b/src/otclient/core/thing.cpp index a557b499..73178887 100644 --- a/src/otclient/core/thing.cpp +++ b/src/otclient/core/thing.cpp @@ -80,7 +80,7 @@ void Thing::internalDraw(const Point& dest, float scaleFactor, int w, int h, int int spriteId = getSpriteId(w, h, layer, xPattern, yPattern, zPattern, animationPhase); if(spriteId) { Rect drawRect(dest - getDisplacement()*scaleFactor, Size(scaledSize, scaledSize)); - g_painter.setColor(Fw::white); + g_painter.setColor(Color::white); g_painter.drawTexturedRect(drawRect, g_sprites.getSpriteTexture(spriteId)); } } diff --git a/src/otclient/ui/uicreature.cpp b/src/otclient/ui/uicreature.cpp index 543586d0..d1b67270 100644 --- a/src/otclient/ui/uicreature.cpp +++ b/src/otclient/ui/uicreature.cpp @@ -29,7 +29,7 @@ void UICreature::draw() drawSelf(); if(m_creature) { - g_painter.setColor(Fw::white); + g_painter.setColor(Color::white); Rect drawRect = getChildrenRect(); m_creature->drawOutfit(drawRect, !m_fixedCreatureSize); } diff --git a/src/otclient/ui/uiitem.cpp b/src/otclient/ui/uiitem.cpp index c3aec1fc..3622ab8b 100644 --- a/src/otclient/ui/uiitem.cpp +++ b/src/otclient/ui/uiitem.cpp @@ -37,7 +37,7 @@ void UIItem::draw() if(m_item) { Point topLeft = m_rect.bottomRight() - Point(32, 32) + Point(m_padding.left, m_padding.top); - g_painter.setColor(Fw::white); + g_painter.setColor(Color::white); m_item->draw(topLeft, 1, true); if(m_font && m_item->isStackable() && m_item->getCount() > 1) { diff --git a/src/otclient/ui/uimap.cpp b/src/otclient/ui/uimap.cpp index b7816d05..91fe3c4f 100644 --- a/src/otclient/ui/uimap.cpp +++ b/src/otclient/ui/uimap.cpp @@ -45,7 +45,7 @@ void UIMap::draw() drawSelf(); // draw map border - g_painter.setColor(Fw::black); + g_painter.setColor(Color::black); g_painter.drawBoundingRect(m_mapRect.expanded(1)); m_mapView->draw(m_mapRect);