Shape增加线条相交样式

This commit is contained in:
Nomango 2018-05-24 20:10:11 +08:00
parent 6ea9d6ef85
commit 1eca4fbdf5
6 changed files with 38 additions and 8 deletions

View File

@ -39,7 +39,8 @@ void e2d::CircleShape::_renderLine()
Renderer::getRenderTarget()->DrawEllipse( Renderer::getRenderTarget()->DrawEllipse(
D2D1::Ellipse(D2D1::Point2F(_radius, _radius), _radius, _radius), D2D1::Ellipse(D2D1::Point2F(_radius, _radius), _radius, _radius),
Renderer::getSolidColorBrush(), Renderer::getSolidColorBrush(),
_strokeWidth _strokeWidth,
_strokeStyle
); );
} }

View File

@ -53,7 +53,8 @@ void e2d::EllipseShape::_renderLine()
Renderer::getRenderTarget()->DrawEllipse( Renderer::getRenderTarget()->DrawEllipse(
D2D1::Ellipse(D2D1::Point2F(_radiusX, _radiusY), _radiusX, _radiusY), D2D1::Ellipse(D2D1::Point2F(_radiusX, _radiusY), _radiusX, _radiusY),
Renderer::getSolidColorBrush(), Renderer::getSolidColorBrush(),
_strokeWidth _strokeWidth,
_strokeStyle
); );
} }

View File

@ -25,7 +25,8 @@ void e2d::RectShape::_renderLine()
Renderer::getRenderTarget()->DrawRectangle( Renderer::getRenderTarget()->DrawRectangle(
D2D1::RectF(0, 0, _width, _height), D2D1::RectF(0, 0, _width, _height),
Renderer::getSolidColorBrush(), Renderer::getSolidColorBrush(),
_strokeWidth _strokeWidth,
_strokeStyle
); );
} }

View File

@ -51,7 +51,8 @@ void e2d::RoundRectShape::_renderLine()
Renderer::getRenderTarget()->DrawRoundedRectangle( Renderer::getRenderTarget()->DrawRoundedRectangle(
D2D1::RoundedRect(D2D1::RectF(0, 0, _width, _height), _radiusX, _radiusY), D2D1::RoundedRect(D2D1::RectF(0, 0, _width, _height), _radiusX, _radiusY),
Renderer::getSolidColorBrush(), Renderer::getSolidColorBrush(),
_strokeWidth _strokeWidth,
_strokeStyle
); );
} }

View File

@ -2,9 +2,10 @@
e2d::Shape::Shape() e2d::Shape::Shape()
: _style(Style::SOLID) : _style(Style::SOLID)
, _fillColor(Color::BLUE, 0.3) , _fillColor(0x6090A0U)
, _lineColor(Color::BLUE, 0.5) , _lineColor(0x78B7D0U)
, _strokeWidth(1) , _strokeWidth(2)
, _strokeStyle(nullptr)
{ {
} }
@ -80,10 +81,29 @@ void e2d::Shape::setLineColor(Color lineColor)
void e2d::Shape::setStrokeWidth(double strokeWidth) void e2d::Shape::setStrokeWidth(double strokeWidth)
{ {
_strokeWidth = float(strokeWidth); _strokeWidth = float(strokeWidth) * 2;
} }
void e2d::Shape::setStyle(Style style) void e2d::Shape::setStyle(Style style)
{ {
_style = style; _style = style;
} }
void e2d::Shape::setLineJoin(LineJoin lineJoin)
{
switch (lineJoin)
{
case LineJoin::MITER:
_strokeStyle = Renderer::getMiterID2D1StrokeStyle();
break;
case LineJoin::BEVEL:
_strokeStyle = Renderer::getBevelID2D1StrokeStyle();
break;
case LineJoin::ROUND:
_strokeStyle = Renderer::getRoundID2D1StrokeStyle();
break;
default:
_strokeStyle = nullptr;
break;
}
}

View File

@ -53,6 +53,11 @@ public:
// ÉèÖÃÑùʽ // ÉèÖÃÑùʽ
void setStyle(Style style); void setStyle(Style style);
// ÉèÖÃÏßÌõÏཻÑùʽ
void setLineJoin(
LineJoin lineJoin
);
// äÖȾÐÎ×´ // äÖȾÐÎ×´
virtual void onRender() override; virtual void onRender() override;
@ -68,6 +73,7 @@ protected:
float _strokeWidth; float _strokeWidth;
Color _lineColor; Color _lineColor;
Color _fillColor; Color _fillColor;
ID2D1StrokeStyle * _strokeStyle;
}; };