- FrameBufferTexture* offscreen = NULL;
-
- if ( instruction.mOffscreenTextureId != 0 )
- {
- offscreen = mImpl->textureCache.GetFramebuffer( instruction.mOffscreenTextureId );
- DALI_ASSERT_DEBUG( NULL != offscreen );
-
- if( NULL != offscreen &&
- offscreen->Prepare() )
- {
- // Check whether a viewport is specified, otherwise the full surface size is used
- if ( instruction.mIsViewportSet )
- {
- // For glViewport the lower-left corner is (0,0)
- const int y = ( offscreen->GetHeight() - instruction.mViewport.height ) - instruction.mViewport.y;
- viewportRect.Set( instruction.mViewport.x, y, instruction.mViewport.width, instruction.mViewport.height );
- }
- else
- {
- viewportRect.Set( 0, 0, offscreen->GetWidth(), offscreen->GetHeight() );
- }
- }
- else
- {
- // Offscreen is NULL or could not be prepared.
- return;
- }
- }
- else if( instruction.mFrameBuffer != 0 )