summaryrefslogtreecommitdiff
path: root/vcl/ios
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2014-04-22 14:37:13 +0300
committerTor Lillqvist <tml@collabora.com>2014-04-22 14:43:55 +0300
commit848ff96d0b3ecca7d9d3c00924aa88bfa5d7d5d5 (patch)
tree2b8d5e950ba67d6789f0fce42c99d17f6e14cc8b /vcl/ios
parentaba9d4ba8bed2ea1ee4cf1da0984da62521bdeed (diff)
With tiled rendering for iOS there is no need for a "frame buffer"
The resulting dropping of the basebmp code reduces app size by 0.7 MB. Change-Id: Id263873ed5c4bb2435d929a1319fedeedb6daa14
Diffstat (limited to 'vcl/ios')
-rw-r--r--vcl/ios/iosinst.cxx149
1 files changed, 3 insertions, 146 deletions
diff --git a/vcl/ios/iosinst.cxx b/vcl/ios/iosinst.cxx
index b4fa76a7a5f9..db7fb0fa889d 100644
--- a/vcl/ios/iosinst.cxx
+++ b/vcl/ios/iosinst.cxx
@@ -43,12 +43,6 @@ public:
virtual bool ErrorTrapPop( bool ) { return false; }
};
-void IosSalInstance::damaged( IosSalFrame */* frame */,
- const basegfx::B2IBox& rDamageRect )
-{
- touch_ui_damaged( rDamageRect.getMinX(), rDamageRect.getMinY(), rDamageRect.getWidth(), rDamageRect.getHeight() );
-}
-
void IosSalInstance::GetWorkArea( Rectangle& rRect )
{
rRect = Rectangle( Point( 0, 0 ),
@@ -90,32 +84,10 @@ IosSalInstance *IosSalInstance::getInstance()
IosSalInstance::IosSalInstance( SalYieldMutex *pMutex )
: SvpSalInstance( pMutex )
{
- int rc;
-
- rc = pthread_cond_init( &m_aRenderCond, NULL );
- SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_init failed: " << strerror( rc ) );
-
-#if OSL_DEBUG_LEVEL > 0
- pthread_mutexattr_t mutexattr;
-
- rc = pthread_mutexattr_init( &mutexattr );
- SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_mutexattr_init failed: " << strerror( rc ) );
-
- rc = pthread_mutexattr_settype( &mutexattr, PTHREAD_MUTEX_ERRORCHECK );
- SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_mutexattr_settype failed: " << strerror( rc ) );
-
- rc = pthread_mutex_init( &m_aRenderMutex, &mutexattr );
- SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_mutex_init failed: " << strerror( rc ) );
-#else
- rc = pthread_mutex_init( &m_aRenderMutex, NULL );
- SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_mutex_init failed: " << strerror( rc ) );
-#endif
}
IosSalInstance::~IosSalInstance()
{
- pthread_cond_destroy( &m_aRenderCond );
- pthread_mutex_destroy( &m_aRenderMutex );
}
#if 0
@@ -149,9 +121,6 @@ SalSystem *IosSalInstance::CreateSalSystem()
class IosSalFrame : public SvpSalFrame
{
-private:
- basegfx::B2IBox m_DamagedRect;
-
public:
IosSalFrame( IosSalInstance *pInstance,
SalFrame *pParent,
@@ -161,31 +130,22 @@ public:
true, basebmp::FORMAT_THIRTYTWO_BIT_TC_MASK_RGBA,
pSysParent )
{
- enableDamageTracker();
if (pParent == NULL && viewWidth > 1 && viewHeight > 1)
SetPosSize(0, 0, viewWidth, viewHeight, SAL_FRAME_POSSIZE_WIDTH | SAL_FRAME_POSSIZE_HEIGHT);
}
- virtual void GetWorkArea( Rectangle& rRect )
+ virtual void GetWorkArea( Rectangle& rRect ) SAL_OVERRIDE
{
IosSalInstance::getInstance()->GetWorkArea( rRect );
}
- void ShowFullScreen( bool, sal_Int32 )
+ virtual void ShowFullScreen( bool, sal_Int32 ) SAL_OVERRIDE
{
SetPosSize( 0, 0, viewWidth, viewHeight,
SAL_FRAME_POSSIZE_WIDTH | SAL_FRAME_POSSIZE_HEIGHT );
}
- virtual void damaged( const basegfx::B2IBox& rDamageRect )
- {
- if (rDamageRect.isEmpty())
- return;
-
- m_DamagedRect.expand(rDamageRect);
- }
-
- virtual void UpdateSettings( AllSettings &rSettings )
+ virtual void UpdateSettings( AllSettings &rSettings ) SAL_OVERRIDE
{
// Clobber the UI fonts
Font aFont( OUString( "Helvetica" ), Size( 0, 14 ) );
@@ -205,16 +165,6 @@ public:
rSettings.SetStyleSettings( aStyleSet );
}
-
- virtual void Flush()
- {
- IosSalInstance::getInstance()->damaged( this, m_DamagedRect );
- }
-
- void resetDamaged()
- {
- m_DamagedRect.reset();
- }
};
SalFrame *IosSalInstance::CreateChildFrame( SystemParentData* pParent, sal_uLong nStyle )
@@ -308,7 +258,6 @@ IMPL_LINK( IosSalInstance, DisplayConfigurationChanged, void*, )
(*it)->Show( true, false );
}
- touch_ui_damaged( 0, 0, viewWidth, viewHeight );
return 0;
}
@@ -332,69 +281,6 @@ void touch_lo_set_view_size(int width, int height)
}
}
-IMPL_LINK( IosSalInstance, RenderWindows, RenderWindowsArg*, arg )
-{
- int rc;
-
- rc = pthread_mutex_lock( &m_aRenderMutex );
- SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_mutex_lock failed: " << strerror( rc ) );
-
- CGRect invalidRect = arg->rect;
-
- for( std::list< SalFrame* >::const_reverse_iterator it = getFrames().rbegin();
- it != getFrames().rend();
- ++it ) {
- IosSalFrame *pFrame = static_cast<IosSalFrame *>(*it);
- SalFrameGeometry aGeom = pFrame->GetGeometry();
- CGRect bbox = CGRectMake( 0, 0, aGeom.nWidth, aGeom.nHeight );
- if ( pFrame->IsVisible() &&
- CGRectIntersectsRect( invalidRect, bbox ) ) {
-
- const basebmp::BitmapDeviceSharedPtr aDevice = pFrame->getDevice();
- touch_lo_copy_buffer(aDevice->getBuffer().get(),
- aDevice->getSize().getX(),
- aDevice->getSize().getY(),
- aDevice->getScanlineStride(),
- arg->context,
- aGeom.nWidth,
- aGeom.nHeight);
- /*CGDataProviderRef provider =
- CGDataProviderCreateWithData( NULL,
- aDevice->getBuffer().get(),
- aDevice->getSize().getY() * aDevice->getScanlineStride(),
- NULL );
- CGImage *image =
- CGImageCreate( aDevice->getSize().getX(), aDevice->getSize().getY(),
- 8, 32, aDevice->getScanlineStride(),
- CGColorSpaceCreateDeviceRGB(),
- kCGImageAlphaNoneSkipLast,
- provider,
- NULL,
- false,
- kCGRenderingIntentDefault );
- CGContextDrawImage( arg->context, bbox, image );
- */
- // if current frame covers the whole invalidRect then break
- if (CGRectEqualToRect(CGRectIntersection(invalidRect, bbox), invalidRect))
- {
- break;
- }
-
- pFrame->resetDamaged();
- }
- }
-
- arg->done = true;
-
- rc = pthread_cond_signal( &m_aRenderCond );
- SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_signal failed:" << strerror( rc ) );
-
- rc = pthread_mutex_unlock( &m_aRenderMutex );
- SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_mutex_unlock failed: " << strerror( rc ) );
-
- return 0;
-}
-
extern "C"
void
touch_lo_copy_buffer(const void * source, size_t sourceWidth, size_t sourceHeight, size_t sourceBytesPerRow, void * target, size_t targetWidth, size_t targetHeight){
@@ -422,35 +308,6 @@ touch_lo_copy_buffer(const void * source, size_t sourceWidth, size_t sourceHeigh
}
extern "C"
-void touch_lo_render_windows(void *context, int minX, int minY, int width, int height)
-{
- CGContextRef cgContext = (CGContextRef) context;
- int rc;
- IosSalInstance *pInstance = IosSalInstance::getInstance();
-
- if ( pInstance == NULL )
- return;
-
- rc = pthread_mutex_lock( &pInstance->m_aRenderMutex );
- if (rc != 0) {
- SAL_WARN( "vcl.ios", "pthread_mutex_lock failed: " << strerror( rc ) );
- return;
- }
-
- CGRect rect = CGRectMake(minX, minY, width, height);
- IosSalInstance::RenderWindowsArg arg = { false, cgContext, rect };
- Application::PostUserEvent( LINK( pInstance, IosSalInstance, RenderWindows), &arg );
-
- while (!arg.done) {
- rc = pthread_cond_wait( &pInstance->m_aRenderCond, &pInstance->m_aRenderMutex );
- SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_wait failed: " << strerror( rc ) );
- }
-
- rc = pthread_mutex_unlock( &pInstance->m_aRenderMutex );
- SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_mutex_unlock failed: " << strerror( rc ) );
-}
-
-extern "C"
void touch_lo_tap(int x, int y)
{
touch_lo_mouse(x, y, DOWN, NONE);