mirror of https://github.com/axmolengine/axmol.git
Merge branch 'develop' of https://github.com/cocos2d/cocos2d-x into develop
This commit is contained in:
commit
d611cfb49f
|
@ -102,6 +102,7 @@ Renderer::Renderer()
|
||||||
:_lastMaterialID(0)
|
:_lastMaterialID(0)
|
||||||
,_numQuads(0)
|
,_numQuads(0)
|
||||||
,_glViewAssigned(false)
|
,_glViewAssigned(false)
|
||||||
|
,_isRendering(false)
|
||||||
#if CC_ENABLE_CACHE_TEXTURE_DATA
|
#if CC_ENABLE_CACHE_TEXTURE_DATA
|
||||||
,_cacheTextureListener(nullptr)
|
,_cacheTextureListener(nullptr)
|
||||||
#endif
|
#endif
|
||||||
|
@ -236,6 +237,7 @@ void Renderer::addCommand(RenderCommand* command)
|
||||||
|
|
||||||
void Renderer::addCommand(RenderCommand* command, int renderQueue)
|
void Renderer::addCommand(RenderCommand* command, int renderQueue)
|
||||||
{
|
{
|
||||||
|
CCASSERT(!_isRendering, "Cannot add command while rendering");
|
||||||
CCASSERT(renderQueue >=0, "Invalid render queue");
|
CCASSERT(renderQueue >=0, "Invalid render queue");
|
||||||
CCASSERT(command->getType() != RenderCommand::Type::UNKNOWN_COMMAND, "Invalid Command Type");
|
CCASSERT(command->getType() != RenderCommand::Type::UNKNOWN_COMMAND, "Invalid Command Type");
|
||||||
_renderGroups[renderQueue].push_back(command);
|
_renderGroups[renderQueue].push_back(command);
|
||||||
|
@ -243,11 +245,13 @@ void Renderer::addCommand(RenderCommand* command, int renderQueue)
|
||||||
|
|
||||||
void Renderer::pushGroup(int renderQueueID)
|
void Renderer::pushGroup(int renderQueueID)
|
||||||
{
|
{
|
||||||
|
CCASSERT(!_isRendering, "Cannot change render queue while rendering");
|
||||||
_commandGroupStack.push(renderQueueID);
|
_commandGroupStack.push(renderQueueID);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Renderer::popGroup()
|
void Renderer::popGroup()
|
||||||
{
|
{
|
||||||
|
CCASSERT(!_isRendering, "Cannot change render queue while rendering");
|
||||||
_commandGroupStack.pop();
|
_commandGroupStack.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -317,6 +321,7 @@ void Renderer::render()
|
||||||
//glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
//glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
//TODO setup camera or MVP
|
//TODO setup camera or MVP
|
||||||
|
_isRendering = true;
|
||||||
|
|
||||||
if (_glViewAssigned)
|
if (_glViewAssigned)
|
||||||
{
|
{
|
||||||
|
@ -333,6 +338,7 @@ void Renderer::render()
|
||||||
flush();
|
flush();
|
||||||
}
|
}
|
||||||
clean();
|
clean();
|
||||||
|
_isRendering = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Renderer::clean()
|
void Renderer::clean()
|
||||||
|
|
|
@ -148,6 +148,8 @@ protected:
|
||||||
// stats
|
// stats
|
||||||
ssize_t _drawnBatches;
|
ssize_t _drawnBatches;
|
||||||
ssize_t _drawnVertices;
|
ssize_t _drawnVertices;
|
||||||
|
//the flag for checking whether renderer is rendering
|
||||||
|
bool _isRendering;
|
||||||
|
|
||||||
#if CC_ENABLE_CACHE_TEXTURE_DATA
|
#if CC_ENABLE_CACHE_TEXTURE_DATA
|
||||||
EventListenerCustom* _cacheTextureListener;
|
EventListenerCustom* _cacheTextureListener;
|
||||||
|
|
|
@ -304,7 +304,7 @@ void ProtectedNode::visit(Renderer* renderer, const kmMat4 &parentTransform, boo
|
||||||
{
|
{
|
||||||
auto node = _children.at(i);
|
auto node = _children.at(i);
|
||||||
|
|
||||||
if ( node && node->getZOrder() < 0 )
|
if ( node && node->getLocalZOrder() < 0 )
|
||||||
node->visit(renderer, _modelViewTransform, dirty);
|
node->visit(renderer, _modelViewTransform, dirty);
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
@ -314,7 +314,7 @@ void ProtectedNode::visit(Renderer* renderer, const kmMat4 &parentTransform, boo
|
||||||
{
|
{
|
||||||
auto node = _protectedChildren.at(j);
|
auto node = _protectedChildren.at(j);
|
||||||
|
|
||||||
if ( node && node->getZOrder() < 0 )
|
if ( node && node->getLocalZOrder() < 0 )
|
||||||
node->visit(renderer, _modelViewTransform, dirty);
|
node->visit(renderer, _modelViewTransform, dirty);
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -790,7 +790,7 @@ void Layout::stencilClippingVisit(Renderer *renderer, const kmMat4 &parentTransf
|
||||||
{
|
{
|
||||||
auto node = _children.at(i);
|
auto node = _children.at(i);
|
||||||
|
|
||||||
if ( node && node->getZOrder() < 0 )
|
if ( node && node->getLocalZOrder() < 0 )
|
||||||
node->visit(renderer, _modelViewTransform, dirty);
|
node->visit(renderer, _modelViewTransform, dirty);
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
@ -800,7 +800,7 @@ void Layout::stencilClippingVisit(Renderer *renderer, const kmMat4 &parentTransf
|
||||||
{
|
{
|
||||||
auto node = _protectedChildren.at(j);
|
auto node = _protectedChildren.at(j);
|
||||||
|
|
||||||
if ( node && node->getZOrder() < 0 )
|
if ( node && node->getLocalZOrder() < 0 )
|
||||||
node->visit(renderer, _modelViewTransform, dirty);
|
node->visit(renderer, _modelViewTransform, dirty);
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -670,6 +670,10 @@ std::string RenderTextureTargetNode::subtitle() const
|
||||||
// SpriteRenderTextureBug
|
// SpriteRenderTextureBug
|
||||||
|
|
||||||
SpriteRenderTextureBug::SimpleSprite::SimpleSprite() : _rt(nullptr) {}
|
SpriteRenderTextureBug::SimpleSprite::SimpleSprite() : _rt(nullptr) {}
|
||||||
|
SpriteRenderTextureBug::SimpleSprite::~SimpleSprite()
|
||||||
|
{
|
||||||
|
CC_SAFE_RELEASE(_rt);
|
||||||
|
}
|
||||||
|
|
||||||
SpriteRenderTextureBug::SimpleSprite* SpriteRenderTextureBug::SimpleSprite::create(const char* filename, const Rect &rect)
|
SpriteRenderTextureBug::SimpleSprite* SpriteRenderTextureBug::SimpleSprite::create(const char* filename, const Rect &rect)
|
||||||
{
|
{
|
||||||
|
@ -687,16 +691,6 @@ SpriteRenderTextureBug::SimpleSprite* SpriteRenderTextureBug::SimpleSprite::crea
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpriteRenderTextureBug::SimpleSprite::draw(Renderer *renderer, const kmMat4 &transform, bool transformUpdated)
|
void SpriteRenderTextureBug::SimpleSprite::draw(Renderer *renderer, const kmMat4 &transform, bool transformUpdated)
|
||||||
{
|
|
||||||
_customCommand.init(_globalZOrder);
|
|
||||||
_customCommand.func = CC_CALLBACK_0(SpriteRenderTextureBug::SimpleSprite::onBeforeDraw, this);
|
|
||||||
renderer->addCommand(&_customCommand);
|
|
||||||
|
|
||||||
Sprite::draw(renderer, transform, transformUpdated);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void SpriteRenderTextureBug::SimpleSprite::onBeforeDraw()
|
|
||||||
{
|
{
|
||||||
if (_rt == nullptr)
|
if (_rt == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -706,6 +700,9 @@ void SpriteRenderTextureBug::SimpleSprite::onBeforeDraw()
|
||||||
}
|
}
|
||||||
_rt->beginWithClear(0.0f, 0.0f, 0.0f, 1.0f);
|
_rt->beginWithClear(0.0f, 0.0f, 0.0f, 1.0f);
|
||||||
_rt->end();
|
_rt->end();
|
||||||
|
|
||||||
|
Sprite::draw(renderer, transform, transformUpdated);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SpriteRenderTextureBug::SpriteRenderTextureBug()
|
SpriteRenderTextureBug::SpriteRenderTextureBug()
|
||||||
|
|
|
@ -139,14 +139,10 @@ public:
|
||||||
public:
|
public:
|
||||||
static SimpleSprite* create(const char* filename, const Rect &rect);
|
static SimpleSprite* create(const char* filename, const Rect &rect);
|
||||||
SimpleSprite();
|
SimpleSprite();
|
||||||
|
~SimpleSprite();
|
||||||
virtual void draw(Renderer *renderer, const kmMat4 &transform, bool transformUpdated);
|
virtual void draw(Renderer *renderer, const kmMat4 &transform, bool transformUpdated);
|
||||||
|
|
||||||
protected:
|
|
||||||
void onBeforeDraw();
|
|
||||||
public:
|
public:
|
||||||
RenderTexture *_rt;
|
RenderTexture *_rt;
|
||||||
protected:
|
|
||||||
CustomCommand _customCommand;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -118,9 +118,9 @@ void TileDemo::onEnter()
|
||||||
BaseTest::onEnter();
|
BaseTest::onEnter();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TileMapTestScene::onExit()
|
void TileDemo::onExit()
|
||||||
{
|
{
|
||||||
TileDemo::onExit();
|
BaseTest::onExit();
|
||||||
Director::getInstance()->setDepthTest(false);
|
Director::getInstance()->setDepthTest(false);
|
||||||
}
|
}
|
||||||
void TileDemo::restartCallback(Ref* sender)
|
void TileDemo::restartCallback(Ref* sender)
|
||||||
|
|
Loading…
Reference in New Issue