增加Node::setClipEnabled方法,实现渲染区域裁剪
This commit is contained in:
parent
c61be531db
commit
4a80f2df88
|
|
@ -4,21 +4,19 @@
|
||||||
|
|
||||||
e2d::Collider::Collider(Node * parent)
|
e2d::Collider::Collider(Node * parent)
|
||||||
: _visible(true)
|
: _visible(true)
|
||||||
, _color(Color::Blue, 0.7)
|
, _color(Color::Blue, 0.6)
|
||||||
, _parentNode(parent)
|
, _parentNode(parent)
|
||||||
, _geometry(nullptr)
|
, _geometry(nullptr)
|
||||||
, _enabled(true)
|
, _enabled(true)
|
||||||
, _shape(Collider::Shape::None)
|
, _shape(Collider::Shape::None)
|
||||||
, _notify(true)
|
, _notify(true)
|
||||||
{
|
{
|
||||||
_shape = Game::getInstance()->getConfig().getDefaultColliderShape();
|
|
||||||
CollisionManager::getInstance()->__addCollider(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::Collider::~Collider()
|
e2d::Collider::~Collider()
|
||||||
{
|
{
|
||||||
SafeRelease(_geometry);
|
SafeRelease(_geometry);
|
||||||
CollisionManager::getInstance()->__removeCollider(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::Color e2d::Collider::getColor() const
|
e2d::Color e2d::Collider::getColor() const
|
||||||
|
|
@ -43,8 +41,20 @@ ID2D1Geometry * e2d::Collider::getGeometry() const
|
||||||
|
|
||||||
void e2d::Collider::setShape(Shape shape)
|
void e2d::Collider::setShape(Shape shape)
|
||||||
{
|
{
|
||||||
|
if (_shape == shape)
|
||||||
|
return;
|
||||||
|
|
||||||
_shape = shape;
|
_shape = shape;
|
||||||
|
if (shape == Shape::None)
|
||||||
|
{
|
||||||
|
SafeRelease(_geometry);
|
||||||
|
CollisionManager::getInstance()->__removeCollider(this);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
this->recreate();
|
this->recreate();
|
||||||
|
CollisionManager::getInstance()->__addCollider(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Collider::setCollisionNotify(bool notify)
|
void e2d::Collider::setCollisionNotify(bool notify)
|
||||||
|
|
@ -78,7 +88,7 @@ void e2d::Collider::render()
|
||||||
brush->SetColor(_color.toD2DColorF());
|
brush->SetColor(_color.toD2DColorF());
|
||||||
brush->SetOpacity(1.f);
|
brush->SetOpacity(1.f);
|
||||||
// »æÖƼ¸ºÎÅöײÌå
|
// »æÖƼ¸ºÎÅöײÌå
|
||||||
renderer->getRenderTarget()->DrawGeometry(_geometry, brush);
|
renderer->getRenderTarget()->DrawGeometry(_geometry, brush, 1.5f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -118,11 +128,11 @@ bool e2d::Collider::isCollisionNotify() const
|
||||||
|
|
||||||
void e2d::Collider::recreate()
|
void e2d::Collider::recreate()
|
||||||
{
|
{
|
||||||
SafeRelease(_geometry);
|
|
||||||
|
|
||||||
if (!_enabled || _shape == Shape::None)
|
if (!_enabled || _shape == Shape::None)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
SafeRelease(_geometry);
|
||||||
|
|
||||||
switch (_shape)
|
switch (_shape)
|
||||||
{
|
{
|
||||||
case Shape::Rect:
|
case Shape::Rect:
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ e2d::Config::Config()
|
||||||
, _soundEnabled(true)
|
, _soundEnabled(true)
|
||||||
, _frameInterval(15)
|
, _frameInterval(15)
|
||||||
, _showFps(false)
|
, _showFps(false)
|
||||||
, _vSyncEnabled(false)
|
, _vSyncEnabled(true)
|
||||||
, _outlineVisible(false)
|
, _outlineVisible(false)
|
||||||
, _collisionEnabled(false)
|
, _collisionEnabled(false)
|
||||||
, _colliderVisible(false)
|
, _colliderVisible(false)
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@ void e2d::CollisionManager::__updateCollider(Collider* collider)
|
||||||
auto passive = _colliders[i]->getNode();
|
auto passive = _colliders[i]->getNode();
|
||||||
// 判断两物体是否是相互冲突的物体
|
// 判断两物体是否是相互冲突的物体
|
||||||
if (active == passive ||
|
if (active == passive ||
|
||||||
|
!passive->isVisible() ||
|
||||||
active->getParentScene() != passive->getParentScene() ||
|
active->getParentScene() != passive->getParentScene() ||
|
||||||
!CollisionManager::isCollidable(active, passive))
|
!CollisionManager::isCollidable(active, passive))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,7 @@ e2d::Node::Node()
|
||||||
, _parent(nullptr)
|
, _parent(nullptr)
|
||||||
, _parentScene(nullptr)
|
, _parentScene(nullptr)
|
||||||
, _hashName(0)
|
, _hashName(0)
|
||||||
|
, _clipEnabled(false)
|
||||||
, _needSort(false)
|
, _needSort(false)
|
||||||
, _needTransform(false)
|
, _needTransform(false)
|
||||||
, _autoUpdate(true)
|
, _autoUpdate(true)
|
||||||
|
|
@ -68,10 +69,10 @@ e2d::Node::Node()
|
||||||
, _collider(this)
|
, _collider(this)
|
||||||
, _extrapolate(Property::Origin)
|
, _extrapolate(Property::Origin)
|
||||||
{
|
{
|
||||||
// 设置默认中心点位置
|
|
||||||
Point defPivot = Game::getInstance()->getConfig().getNodeDefaultPivot();
|
Point defPivot = Game::getInstance()->getConfig().getNodeDefaultPivot();
|
||||||
this->_pivotX = float(defPivot.x);
|
_pivotX = float(defPivot.x);
|
||||||
this->_pivotY = float(defPivot.y);
|
_pivotY = float(defPivot.y);
|
||||||
|
_collider.setShape(Game::getInstance()->getConfig().getDefaultColliderShape());
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::Node::~Node()
|
e2d::Node::~Node()
|
||||||
|
|
@ -87,6 +88,9 @@ e2d::Node::~Node()
|
||||||
|
|
||||||
void e2d::Node::_update()
|
void e2d::Node::_update()
|
||||||
{
|
{
|
||||||
|
if (!_visible)
|
||||||
|
return;
|
||||||
|
|
||||||
if (_children.empty())
|
if (_children.empty())
|
||||||
{
|
{
|
||||||
_updateSelf();
|
_updateSelf();
|
||||||
|
|
@ -139,19 +143,27 @@ void e2d::Node::_updateSelf()
|
||||||
void e2d::Node::_render()
|
void e2d::Node::_render()
|
||||||
{
|
{
|
||||||
if (!_visible)
|
if (!_visible)
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
// 更新转换矩阵
|
// 更新转换矩阵
|
||||||
updateTransform();
|
updateTransform();
|
||||||
// 保留差别属性
|
// 保留差别属性
|
||||||
_extrapolate = this->getProperty();
|
_extrapolate = this->getProperty();
|
||||||
|
|
||||||
|
auto pRT = Renderer::getInstance()->getRenderTarget();
|
||||||
|
if (_clipEnabled)
|
||||||
|
{
|
||||||
|
pRT->SetTransform(_finalMatri);
|
||||||
|
pRT->PushAxisAlignedClip(
|
||||||
|
D2D1::RectF(0, 0, _width, _height),
|
||||||
|
D2D1_ANTIALIAS_MODE_PER_PRIMITIVE
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (_children.empty())
|
if (_children.empty())
|
||||||
{
|
{
|
||||||
// 转换渲染器的二维矩阵
|
// 转换渲染器的二维矩阵
|
||||||
Renderer::getInstance()->getRenderTarget()->SetTransform(_finalMatri);
|
pRT->SetTransform(_finalMatri);
|
||||||
// 渲染自身
|
// 渲染自身
|
||||||
this->onRender();
|
this->onRender();
|
||||||
}
|
}
|
||||||
|
|
@ -176,7 +188,7 @@ void e2d::Node::_render()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 转换渲染器的二维矩阵
|
// 转换渲染器的二维矩阵
|
||||||
Renderer::getInstance()->getRenderTarget()->SetTransform(_finalMatri);
|
pRT->SetTransform(_finalMatri);
|
||||||
// 渲染自身
|
// 渲染自身
|
||||||
this->onRender();
|
this->onRender();
|
||||||
|
|
||||||
|
|
@ -184,20 +196,27 @@ void e2d::Node::_render()
|
||||||
for (; i < _children.size(); ++i)
|
for (; i < _children.size(); ++i)
|
||||||
_children[i]->_render();
|
_children[i]->_render();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_clipEnabled)
|
||||||
|
{
|
||||||
|
pRT->PopAxisAlignedClip();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Node::_renderOutline()
|
void e2d::Node::_renderOutline()
|
||||||
{
|
{
|
||||||
if (_outline && _visible)
|
if (_visible)
|
||||||
|
{
|
||||||
|
if (_outline)
|
||||||
{
|
{
|
||||||
auto renderer = Renderer::getInstance();
|
auto renderer = Renderer::getInstance();
|
||||||
// 获取纯色画刷
|
// 获取纯色画刷
|
||||||
ID2D1SolidColorBrush * brush = renderer->getSolidColorBrush();
|
ID2D1SolidColorBrush * brush = renderer->getSolidColorBrush();
|
||||||
// 设置画刷颜色和透明度
|
// 设置画刷颜色和透明度
|
||||||
brush->SetColor(D2D1::ColorF(D2D1::ColorF::Red, 0.7f));
|
brush->SetColor(D2D1::ColorF(D2D1::ColorF::Red, 0.6f));
|
||||||
brush->SetOpacity(1.f);
|
brush->SetOpacity(1.f);
|
||||||
// 渲染轮廓
|
// 渲染轮廓
|
||||||
renderer->getRenderTarget()->DrawGeometry(_outline, brush);
|
renderer->getRenderTarget()->DrawGeometry(_outline, brush, 1.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 渲染所有子节点的轮廓
|
// 渲染所有子节点的轮廓
|
||||||
|
|
@ -206,14 +225,13 @@ void e2d::Node::_renderOutline()
|
||||||
child->_renderOutline();
|
child->_renderOutline();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void e2d::Node::_renderCollider()
|
void e2d::Node::_renderCollider()
|
||||||
{
|
{
|
||||||
// 绘制自身的几何碰撞体
|
|
||||||
if (_visible)
|
if (_visible)
|
||||||
{
|
{
|
||||||
_collider.render();
|
_collider.render();
|
||||||
}
|
|
||||||
|
|
||||||
// 绘制所有子节点的几何碰撞体
|
// 绘制所有子节点的几何碰撞体
|
||||||
for (auto child : _children)
|
for (auto child : _children)
|
||||||
|
|
@ -221,6 +239,7 @@ void e2d::Node::_renderCollider()
|
||||||
child->_renderCollider();
|
child->_renderCollider();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void e2d::Node::updateTransform()
|
void e2d::Node::updateTransform()
|
||||||
{
|
{
|
||||||
|
|
@ -525,7 +544,14 @@ int e2d::Node::getOrder() const
|
||||||
|
|
||||||
void e2d::Node::setOrder(int order)
|
void e2d::Node::setOrder(int order)
|
||||||
{
|
{
|
||||||
|
if (_order == order)
|
||||||
|
return;
|
||||||
|
|
||||||
_order = order;
|
_order = order;
|
||||||
|
if (_parent)
|
||||||
|
{
|
||||||
|
_parent->_needSort = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Node::setPosX(double x)
|
void e2d::Node::setPosX(double x)
|
||||||
|
|
@ -701,6 +727,11 @@ void e2d::Node::setProperty(Property prop)
|
||||||
this->setSkew(prop.skewAngleX, prop.skewAngleY);
|
this->setSkew(prop.skewAngleX, prop.skewAngleY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void e2d::Node::setClipEnabled(bool enabled)
|
||||||
|
{
|
||||||
|
_clipEnabled = enabled;
|
||||||
|
}
|
||||||
|
|
||||||
void e2d::Node::addChild(Node * child, int order /* = 0 */)
|
void e2d::Node::addChild(Node * child, int order /* = 0 */)
|
||||||
{
|
{
|
||||||
WARN_IF(child == nullptr, "Node::addChild NULL pointer exception.");
|
WARN_IF(child == nullptr, "Node::addChild NULL pointer exception.");
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ void e2d::CircleShape::setRadius(double radius)
|
||||||
Node::setSize(radius * 2, radius * 2);
|
Node::setSize(radius * 2, radius * 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::CircleShape::_renderLine()
|
void e2d::CircleShape::_renderLine() const
|
||||||
{
|
{
|
||||||
auto renderer = Renderer::getInstance();
|
auto renderer = Renderer::getInstance();
|
||||||
renderer->getRenderTarget()->DrawEllipse(
|
renderer->getRenderTarget()->DrawEllipse(
|
||||||
|
|
@ -45,7 +45,7 @@ void e2d::CircleShape::_renderLine()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::CircleShape::_renderFill()
|
void e2d::CircleShape::_renderFill() const
|
||||||
{
|
{
|
||||||
auto renderer = Renderer::getInstance();
|
auto renderer = Renderer::getInstance();
|
||||||
renderer->getRenderTarget()->FillEllipse(
|
renderer->getRenderTarget()->FillEllipse(
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ void e2d::EllipseShape::setRadiusY(double radiusY)
|
||||||
Node::setHeight(radiusY * 2);
|
Node::setHeight(radiusY * 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EllipseShape::_renderLine()
|
void e2d::EllipseShape::_renderLine() const
|
||||||
{
|
{
|
||||||
auto renderer = Renderer::getInstance();
|
auto renderer = Renderer::getInstance();
|
||||||
renderer->getRenderTarget()->DrawEllipse(
|
renderer->getRenderTarget()->DrawEllipse(
|
||||||
|
|
@ -59,7 +59,7 @@ void e2d::EllipseShape::_renderLine()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::EllipseShape::_renderFill()
|
void e2d::EllipseShape::_renderFill() const
|
||||||
{
|
{
|
||||||
auto renderer = Renderer::getInstance();
|
auto renderer = Renderer::getInstance();
|
||||||
renderer->getRenderTarget()->FillEllipse(
|
renderer->getRenderTarget()->FillEllipse(
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ e2d::RectShape::~RectShape()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::RectShape::_renderLine()
|
void e2d::RectShape::_renderLine() const
|
||||||
{
|
{
|
||||||
auto renderer = Renderer::getInstance();
|
auto renderer = Renderer::getInstance();
|
||||||
renderer->getRenderTarget()->DrawRectangle(
|
renderer->getRenderTarget()->DrawRectangle(
|
||||||
|
|
@ -31,7 +31,7 @@ void e2d::RectShape::_renderLine()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::RectShape::_renderFill()
|
void e2d::RectShape::_renderFill() const
|
||||||
{
|
{
|
||||||
auto renderer = Renderer::getInstance();
|
auto renderer = Renderer::getInstance();
|
||||||
renderer->getRenderTarget()->FillRectangle(
|
renderer->getRenderTarget()->FillRectangle(
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ void e2d::RoundRectShape::setRadiusY(double radiusY)
|
||||||
_radiusY = float(radiusY);
|
_radiusY = float(radiusY);
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::RoundRectShape::_renderLine()
|
void e2d::RoundRectShape::_renderLine() const
|
||||||
{
|
{
|
||||||
auto renderer = Renderer::getInstance();
|
auto renderer = Renderer::getInstance();
|
||||||
renderer->getRenderTarget()->DrawRoundedRectangle(
|
renderer->getRenderTarget()->DrawRoundedRectangle(
|
||||||
|
|
@ -57,7 +57,7 @@ void e2d::RoundRectShape::_renderLine()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::RoundRectShape::_renderFill()
|
void e2d::RoundRectShape::_renderFill() const
|
||||||
{
|
{
|
||||||
auto renderer = Renderer::getInstance();
|
auto renderer = Renderer::getInstance();
|
||||||
renderer->getRenderTarget()->FillRoundedRectangle(
|
renderer->getRenderTarget()->FillRoundedRectangle(
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ e2d::Shape::~Shape()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Shape::onRender()
|
void e2d::Shape::onRender() const
|
||||||
{
|
{
|
||||||
auto pBrush = Renderer::getInstance()->getSolidColorBrush();
|
auto pBrush = Renderer::getInstance()->getSolidColorBrush();
|
||||||
pBrush->SetOpacity(_displayOpacity);
|
pBrush->SetOpacity(_displayOpacity);
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,7 @@ e2d::Image * e2d::Sprite::getImage() const
|
||||||
return _image;
|
return _image;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Sprite::onRender()
|
void e2d::Sprite::onRender() const
|
||||||
{
|
{
|
||||||
if (_image && _image->getBitmap())
|
if (_image && _image->getBitmap())
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -287,7 +287,7 @@ void e2d::Text::setOutlineJoin(LineJoin outlineJoin)
|
||||||
_style.outlineJoin = outlineJoin;
|
_style.outlineJoin = outlineJoin;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Text::onRender()
|
void e2d::Text::onRender() const
|
||||||
{
|
{
|
||||||
if (_textLayout)
|
if (_textLayout)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1066,12 +1066,12 @@ public:
|
||||||
);
|
);
|
||||||
|
|
||||||
// 打开或关闭垂直同步
|
// 打开或关闭垂直同步
|
||||||
// 默认:关闭
|
// 默认:打开
|
||||||
void setVSyncEnabled(
|
void setVSyncEnabled(
|
||||||
bool enabled
|
bool enabled
|
||||||
);
|
);
|
||||||
|
|
||||||
// 设置帧率刷新间隔
|
// 设置帧率刷新间隔(关闭垂直同步时生效)
|
||||||
// 默认:15
|
// 默认:15
|
||||||
void setFrameInterval(
|
void setFrameInterval(
|
||||||
int interval
|
int interval
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ namespace e2d
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
class Layer;
|
||||||
class Action;
|
class Action;
|
||||||
class Transition;
|
class Transition;
|
||||||
class CollisionManager;
|
class CollisionManager;
|
||||||
|
|
@ -13,6 +14,7 @@ class Node :
|
||||||
public Ref
|
public Ref
|
||||||
{
|
{
|
||||||
friend class Scene;
|
friend class Scene;
|
||||||
|
friend class Layer;
|
||||||
friend class Collider;
|
friend class Collider;
|
||||||
friend class Transition;
|
friend class Transition;
|
||||||
friend class CollisionManager;
|
friend class CollisionManager;
|
||||||
|
|
@ -48,7 +50,7 @@ public:
|
||||||
virtual void onUpdate() {}
|
virtual void onUpdate() {}
|
||||||
|
|
||||||
// 渲染节点
|
// 渲染节点
|
||||||
virtual void onRender() {}
|
virtual void onRender() const {}
|
||||||
|
|
||||||
// 按键消息
|
// 按键消息
|
||||||
// 说明:返回 false 将阻止消息继续传递
|
// 说明:返回 false 将阻止消息继续传递
|
||||||
|
|
@ -250,26 +252,26 @@ public:
|
||||||
);
|
);
|
||||||
|
|
||||||
// 设置横向缩放比例
|
// 设置横向缩放比例
|
||||||
// 默认为 1.0f
|
// 默认为 1.0
|
||||||
virtual void setScaleX(
|
virtual void setScaleX(
|
||||||
double scaleX
|
double scaleX
|
||||||
);
|
);
|
||||||
|
|
||||||
// 设置纵向缩放比例
|
// 设置纵向缩放比例
|
||||||
// 默认为 1.0f
|
// 默认为 1.0
|
||||||
virtual void setScaleY(
|
virtual void setScaleY(
|
||||||
double scaleY
|
double scaleY
|
||||||
);
|
);
|
||||||
|
|
||||||
// 设置缩放比例
|
// 设置缩放比例
|
||||||
// 默认为 (1.0f, 1.0f)
|
// 默认为 (1.0, 1.0)
|
||||||
virtual void setScale(
|
virtual void setScale(
|
||||||
double scaleX,
|
double scaleX,
|
||||||
double scaleY
|
double scaleY
|
||||||
);
|
);
|
||||||
|
|
||||||
// 设置缩放比例
|
// 设置缩放比例
|
||||||
// 默认为 1.0f
|
// 默认为 1.0
|
||||||
virtual void setScale(
|
virtual void setScale(
|
||||||
double scale
|
double scale
|
||||||
);
|
);
|
||||||
|
|
@ -300,7 +302,7 @@ public:
|
||||||
);
|
);
|
||||||
|
|
||||||
// 设置透明度
|
// 设置透明度
|
||||||
// 默认为 1.0f, 范围 [0, 1]
|
// 默认为 1.0, 范围 [0, 1]
|
||||||
virtual void setOpacity(
|
virtual void setOpacity(
|
||||||
double opacity
|
double opacity
|
||||||
);
|
);
|
||||||
|
|
@ -350,6 +352,11 @@ public:
|
||||||
Property prop
|
Property prop
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// 启用或关闭渲染区域裁剪
|
||||||
|
virtual void setClipEnabled(
|
||||||
|
bool enabled
|
||||||
|
);
|
||||||
|
|
||||||
// 添加子节点
|
// 添加子节点
|
||||||
void addChild(
|
void addChild(
|
||||||
Node * child,
|
Node * child,
|
||||||
|
|
@ -452,6 +459,7 @@ protected:
|
||||||
int _order;
|
int _order;
|
||||||
bool _visible;
|
bool _visible;
|
||||||
bool _autoUpdate;
|
bool _autoUpdate;
|
||||||
|
bool _clipEnabled;
|
||||||
bool _needSort;
|
bool _needSort;
|
||||||
bool _needTransform;
|
bool _needTransform;
|
||||||
bool _positionFixed;
|
bool _positionFixed;
|
||||||
|
|
@ -520,7 +528,7 @@ public:
|
||||||
virtual Image * getImage() const;
|
virtual Image * getImage() const;
|
||||||
|
|
||||||
// 渲染精灵
|
// 渲染精灵
|
||||||
virtual void onRender() override;
|
virtual void onRender() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
E2D_DISABLE_COPY(Sprite);
|
E2D_DISABLE_COPY(Sprite);
|
||||||
|
|
@ -724,7 +732,7 @@ public:
|
||||||
);
|
);
|
||||||
|
|
||||||
// 渲染文字
|
// 渲染文字
|
||||||
virtual void onRender() override;
|
virtual void onRender() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
E2D_DISABLE_COPY(Text);
|
E2D_DISABLE_COPY(Text);
|
||||||
|
|
|
||||||
|
|
@ -59,16 +59,16 @@ public:
|
||||||
);
|
);
|
||||||
|
|
||||||
// äÖȾÐÎ×´
|
// äÖȾÐÎ×´
|
||||||
virtual void onRender() override;
|
virtual void onRender() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
E2D_DISABLE_COPY(Shape);
|
E2D_DISABLE_COPY(Shape);
|
||||||
|
|
||||||
// äÖȾÂÖÀª
|
// äÖȾÂÖÀª
|
||||||
virtual void _renderLine() = 0;
|
virtual void _renderLine() const = 0;
|
||||||
|
|
||||||
// äÖȾÌî³äÉ«
|
// äÖȾÌî³äÉ«
|
||||||
virtual void _renderFill() = 0;
|
virtual void _renderFill() const = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Style _style;
|
Style _style;
|
||||||
|
|
@ -101,10 +101,10 @@ protected:
|
||||||
E2D_DISABLE_COPY(RectShape);
|
E2D_DISABLE_COPY(RectShape);
|
||||||
|
|
||||||
// äÖȾÂÖÀª
|
// äÖȾÂÖÀª
|
||||||
virtual void _renderLine() override;
|
virtual void _renderLine() const override;
|
||||||
|
|
||||||
// äÖȾÌî³äÉ«
|
// äÖȾÌî³äÉ«
|
||||||
virtual void _renderFill() override;
|
virtual void _renderFill() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -150,10 +150,10 @@ protected:
|
||||||
E2D_DISABLE_COPY(RoundRectShape);
|
E2D_DISABLE_COPY(RoundRectShape);
|
||||||
|
|
||||||
// äÖȾÂÖÀª
|
// äÖȾÂÖÀª
|
||||||
virtual void _renderLine() override;
|
virtual void _renderLine() const override;
|
||||||
|
|
||||||
// äÖȾÌî³äÉ«
|
// äÖȾÌî³äÉ«
|
||||||
virtual void _renderFill() override;
|
virtual void _renderFill() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float _radiusX;
|
float _radiusX;
|
||||||
|
|
@ -191,10 +191,10 @@ protected:
|
||||||
E2D_DISABLE_COPY(CircleShape);
|
E2D_DISABLE_COPY(CircleShape);
|
||||||
|
|
||||||
// äÖȾÂÖÀª
|
// äÖȾÂÖÀª
|
||||||
virtual void _renderLine() override;
|
virtual void _renderLine() const override;
|
||||||
|
|
||||||
// äÖȾÌî³äÉ«
|
// äÖȾÌî³äÉ«
|
||||||
virtual void _renderFill() override;
|
virtual void _renderFill() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float _radius;
|
float _radius;
|
||||||
|
|
@ -241,10 +241,10 @@ protected:
|
||||||
E2D_DISABLE_COPY(EllipseShape);
|
E2D_DISABLE_COPY(EllipseShape);
|
||||||
|
|
||||||
// äÖȾÂÖÀª
|
// äÖȾÂÖÀª
|
||||||
virtual void _renderLine() override;
|
virtual void _renderLine() const override;
|
||||||
|
|
||||||
// äÖȾÌî³äÉ«
|
// äÖȾÌî³äÉ«
|
||||||
virtual void _renderFill() override;
|
virtual void _renderFill() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
float _radiusX;
|
float _radiusX;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue