performing glFinish before glReadPixels.

This commit is contained in:
rachytski 2012-02-15 15:55:20 +04:00 committed by Alex Zolotarev
parent 771f2372f7
commit 7763abae5f
3 changed files with 4 additions and 3 deletions

View file

@ -131,6 +131,7 @@ void TileRenderer::ReadPixels(yg::gl::PacketsQueue * glQueue, core::CommandsQueu
unsigned tileHeight = m_resourceManager->params().m_renderTargetTexturesParams.m_texHeight;
shared_ptr<vector<unsigned char> > buf = SharedBufferManager::instance().reserveSharedBuffer(tileWidth * tileHeight * 4);
drawer->screen()->finish(true);
drawer->screen()->readPixels(m2::RectU(0, 0, tileWidth, tileHeight), &(buf->at(0)), true);
SharedBufferManager::instance().freeSharedBuffer(tileWidth * tileHeight * 4, buf);
}

View file

@ -202,10 +202,10 @@ namespace yg
processCommand(make_shared_ptr(new ReadPixels(r, data)), Packet::ECommand, doForce);
}
void Renderer::finish()
void Renderer::finish(bool doForce)
{
shared_ptr<Command> command(new FinishCommand());
processCommand(command);
processCommand(make_shared_ptr(new FinishCommand()), Packet::ECommand, doForce);
}
Renderer::ChangeFrameBuffer::ChangeFrameBuffer(shared_ptr<FrameBuffer> const & fb)

View file

@ -138,7 +138,7 @@ namespace yg
unsigned int width() const;
unsigned int height() const;
void finish();
void finish(bool doForce = false);
void readPixels(m2::RectU const & r, void * data, bool doForce = false);
bool isDebugging() const;