From 62a34b9ba2096963d710a0e7765f6b90f3e62361 Mon Sep 17 00:00:00 2001 From: Nomango <569629550@qq.com> Date: Sun, 29 Jul 2018 02:24:34 +0800 Subject: [PATCH] Color 2 D2D1_COLOR_F --- core/Base/Renderer.cpp | 2 +- core/Common/Collider.cpp | 2 +- core/Common/Color.cpp | 10 +++++----- core/Node/Shape/Shape.cpp | 8 ++++---- core/Node/Text.cpp | 4 ++-- core/e2dcommon.h | 2 +- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/core/Base/Renderer.cpp b/core/Base/Renderer.cpp index ef833cf6..57b07813 100644 --- a/core/Base/Renderer.cpp +++ b/core/Base/Renderer.cpp @@ -177,7 +177,7 @@ e2d::Color e2d::Renderer::getBackgroundColor() void e2d::Renderer::setBackgroundColor(Color color) { - _clearColor = color.toD2DColorF(); + _clearColor = (D2D1_COLOR_F)color; } ID2D1HwndRenderTarget * e2d::Renderer::getRenderTarget() diff --git a/core/Common/Collider.cpp b/core/Common/Collider.cpp index 079669de..d4205c68 100644 --- a/core/Common/Collider.cpp +++ b/core/Common/Collider.cpp @@ -84,7 +84,7 @@ void e2d::Collider::render() // 获取纯色画刷 ID2D1SolidColorBrush * brush = renderer->getSolidColorBrush(); // 设置画刷颜色和透明度 - brush->SetColor(_color.toD2DColorF()); + brush->SetColor((D2D1_COLOR_F)_color); brush->SetOpacity(1.f); // 绘制几何碰撞体 renderer->getRenderTarget()->DrawGeometry(_geometry, brush, 1.5f); diff --git a/core/Common/Color.cpp b/core/Common/Color.cpp index 2f4d60e4..9daee063 100644 --- a/core/Common/Color.cpp +++ b/core/Common/Color.cpp @@ -42,6 +42,11 @@ e2d::Color::Color(UINT rgb, float alpha) _init(rgb, alpha); } +e2d::Color::operator D2D1_COLOR_F() const +{ + return D2D1::ColorF(r, g, b, a); +} + void e2d::Color::_init(UINT rgb, float alpha) { r = ((rgb & sc_redMask) >> sc_redShift) / 255.f; @@ -49,8 +54,3 @@ void e2d::Color::_init(UINT rgb, float alpha) b = ((rgb & sc_blueMask) >> sc_blueShift) / 255.f; a = alpha; } - -D2D1_COLOR_F e2d::Color::toD2DColorF() const -{ - return D2D1::ColorF(r, g, b, a); -} diff --git a/core/Node/Shape/Shape.cpp b/core/Node/Shape/Shape.cpp index d06c0861..ce4ee333 100644 --- a/core/Node/Shape/Shape.cpp +++ b/core/Node/Shape/Shape.cpp @@ -22,24 +22,24 @@ void e2d::Shape::onRender() const { case Style::Fill: { - pBrush->SetColor(_fillColor.toD2DColorF()); + pBrush->SetColor((D2D1_COLOR_F)_fillColor); this->_renderFill(); - pBrush->SetColor(_lineColor.toD2DColorF()); + pBrush->SetColor((D2D1_COLOR_F)_lineColor); this->_renderLine(); break; } case Style::Round: { - pBrush->SetColor(_lineColor.toD2DColorF()); + pBrush->SetColor((D2D1_COLOR_F)_lineColor); this->_renderLine(); break; } case Style::Solid: { - pBrush->SetColor(_fillColor.toD2DColorF()); + pBrush->SetColor((D2D1_COLOR_F)_fillColor); this->_renderFill(); break; } diff --git a/core/Node/Text.cpp b/core/Node/Text.cpp index 83f9ff56..9a49b751 100644 --- a/core/Node/Text.cpp +++ b/core/Node/Text.cpp @@ -299,9 +299,9 @@ void e2d::Text::onRender() const // 获取文本渲染器 auto pTextRenderer = renderer->getTextRenderer(); pTextRenderer->SetTextStyle( - _style.color.toD2DColorF(), + (D2D1_COLOR_F)_style.color, _style.hasOutline, - _style.outlineColor.toD2DColorF(), + (D2D1_COLOR_F)_style.outlineColor, _style.outlineWidth, D2D1_LINE_JOIN(_style.outlineJoin) ); diff --git a/core/e2dcommon.h b/core/e2dcommon.h index 7f5641f0..7aeda3bd 100644 --- a/core/e2dcommon.h +++ b/core/e2dcommon.h @@ -312,7 +312,7 @@ public: float alpha ); - D2D1_COLOR_F toD2DColorF() const; + E2D_OP_EXPLICIT operator D2D1_COLOR_F() const; public: enum Value : UINT