returning raw pointer instead of shared_ptr from RenderContext::createShared, allowing clients to choose lifetime handling policy by themselves.

This commit is contained in:
rachytski 2012-12-14 17:57:43 +03:00 committed by Alex Zolotarev
parent 0f376a46e5
commit f151f3a004
9 changed files with 12 additions and 12 deletions

View file

@ -13,9 +13,9 @@ namespace android
{
}
shared_ptr<graphics::RenderContext> RenderContext::createShared()
graphics::RenderContext * RenderContext::createShared()
{
shared_ptr<RenderContext> rc(new RenderContext());
RenderContext * rc = new RenderContext();
rc->setResourceManager(resourceManager());
return rc;
}

View file

@ -19,6 +19,6 @@ namespace android
void makeCurrent();
shared_ptr<graphics::RenderContext> createShared();
graphics::RenderContext * createShared();
};
}

View file

@ -48,7 +48,7 @@ namespace graphics
/// Create a render context which is shared with this one.
/// Context sharing means that all resources created in one context
/// can be used in shared context and vice versa.
virtual shared_ptr<RenderContext> createShared() = 0;
virtual RenderContext * createShared() = 0;
/// this function should be called from each opengl thread
/// to setup some thread parameters.
virtual void startThreadDrawing(unsigned threadSlot);

View file

@ -34,7 +34,7 @@ namespace iphone
/// Make this rendering context current
void makeCurrent();
/// create a shared render context
shared_ptr<graphics::RenderContext> createShared();
graphics::RenderContext * createShared();
EAGLContext * getEAGLContext();
};

View file

@ -31,9 +31,9 @@ namespace iphone
[EAGLContext setCurrentContext:m_context];
}
shared_ptr<graphics::RenderContext> RenderContext::createShared()
graphics::RenderContext * RenderContext::createShared()
{
shared_ptr<graphics::RenderContext> res(new RenderContext(this));
graphics::RenderContext * res = new RenderContext(this);
res->setResourceManager(resourceManager());
return res;
}

View file

@ -39,7 +39,7 @@ CoverageGenerator::CoverageGenerator(
m_resourceManager = rm;
if (!m_glQueue)
m_renderContext = primaryRC->createShared();
m_renderContext.reset(primaryRC->createShared());
m_queue.AddInitCommand(bind(&CoverageGenerator::InitializeThreadGL, this));
m_queue.AddFinCommand(bind(&CoverageGenerator::FinalizeThreadGL, this));

View file

@ -31,9 +31,9 @@ namespace qt
m_context->makeCurrent();
}
shared_ptr<graphics::RenderContext> RenderContext::createShared()
graphics::RenderContext * RenderContext::createShared()
{
shared_ptr<graphics::gl::RenderContext> res(new RenderContext(this));
graphics::gl::RenderContext * res = new RenderContext(this);
res->setResourceManager(resourceManager());
return res;
}

View file

@ -30,7 +30,7 @@ namespace qt
/// Make this rendering context current
void makeCurrent();
shared_ptr<graphics::RenderContext> createShared();
graphics::RenderContext * createShared();
/// Leave previous logic, but fix thread widget deletion error.
void endThreadDrawing(unsigned threadSlot);

View file

@ -51,7 +51,7 @@ TileRenderer::TileRenderer(
for (unsigned i = 0; i < m_threadData.size(); ++i)
{
if (!packetsQueues)
m_threadData[i].m_renderContext = m_primaryContext->createShared();
m_threadData[i].m_renderContext.reset(m_primaryContext->createShared());
Drawer::Params params;