odk/examples/cpp/counter/counter.cxx | 36 ------------------- odk/examples/java/Inspector/SourceCodeGenerator.java | 10 ----- 2 files changed, 1 insertion(+), 45 deletions(-)
New commits: commit d7a301476dfbec6a70e45808602838078bad780a Author: Chr. Rossmanith <chrrossman...@gmx.de> Date: Sun Mar 31 17:15:33 2013 +0200 Remove commented code in odk/examples Change-Id: I8b28729d3cc632426efac02028f0d0e332243012 Reviewed-on: https://gerrit.libreoffice.org/3138 Reviewed-by: Thomas Arnhold <tho...@arnhold.org> Tested-by: Thomas Arnhold <tho...@arnhold.org> diff --git a/odk/examples/cpp/counter/counter.cxx b/odk/examples/cpp/counter/counter.cxx index 572d9c1..6f65f5c 100644 --- a/odk/examples/cpp/counter/counter.cxx +++ b/odk/examples/cpp/counter/counter.cxx @@ -164,42 +164,6 @@ Reference< XInterface > SAL_CALL MyCounterImpl_create( //#### EXPORTED ########################################################### //######################################################################### - -/** - * This function creates an implementation section in the registry and another subkey - * - * for each supported service. - * @param pServiceManager the service manager - * @param pRegistryKey the registry key - */ -// extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(void * pServiceManager, void * pRegistryKey) -// { -// sal_Bool result = sal_False; - -// if (pRegistryKey) -// { -// try -// { -// Reference< XRegistryKey > xNewKey( -// reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( -// OUString( RTL_CONSTASCII_USTRINGPARAM("/" IMPLNAME "/UNO/SERVICES") ) ) ); - -// const Sequence< OUString > & rSNL = -// MyCounterImpl::getSupportedServiceNames_Static(); -// const OUString * pArray = rSNL.getConstArray(); -// for ( sal_Int32 nPos = rSNL.getLength(); nPos--; ) -// xNewKey->createKey( pArray[nPos] ); - -// return sal_True; -// } -// catch (InvalidRegistryException &) -// { -// // we should not ignore exceptions -// } -// } -// return result; -// } - /** * This function is called to get service factories for an implementation. * diff --git a/odk/examples/java/Inspector/SourceCodeGenerator.java b/odk/examples/java/Inspector/SourceCodeGenerator.java index ac7bdfa..f8de8c2 100644 --- a/odk/examples/java/Inspector/SourceCodeGenerator.java +++ b/odk/examples/java/Inspector/SourceCodeGenerator.java @@ -92,7 +92,6 @@ public class SourceCodeGenerator { if (oUnoMethodNode.isInvoked()){ UnoObjectDefinition oUnoReturnObjectDefinition = getUnoObjectDefinition(_xTreepathProvider, oUnoMethodNode, i); if (!isVariableDeclared(oUnoReturnObjectDefinition, this.generateVariableNameFromMethod(oUnoMethodNode.getXIdlMethod()))){ -// sStatementCode += "\n"; sStatementCode += "\n" + getMethodStatementSourceCode(oUnoMethodNode, sVariableName, oUnoReturnObjectDefinition); } sVariableName = oUnoReturnObjectDefinition.getVariableName(); @@ -103,7 +102,6 @@ public class SourceCodeGenerator { Any oReturnObject = com.sun.star.uno.Any.complete(oUnoPropertyNode.getUnoReturnObject()); UnoObjectDefinition oUnoReturnObjectDefinition = new UnoObjectDefinition(oReturnObject); if (!isVariableDeclared(oUnoReturnObjectDefinition, oUnoPropertyNode.getProperty().Name)){ -// sStatementCode += "\n"; sStatementCode += "\n" + getPropertyStatementSourceCode(oUnoPropertyNode, sVariableName, oUnoReturnObjectDefinition); } sVariableName = oUnoReturnObjectDefinition.getVariableName(); @@ -858,7 +856,6 @@ class UnoObjectDefinition{ public class JavaCodeGenerator implements XLanguageSourceCodeGenerator{ String sStatementsCode = ""; boolean bAddAnyConverter = false; -// boolean bAddTypeImport = false; boolean bIsPropertyUnoObjectDefined = false; public JavaCodeGenerator(){ @@ -1549,12 +1546,7 @@ class UnoObjectDefinition{ public String getConvertedSourceCodeValueOfObject(String _sReturnVariableName, String _sObjectDescription, TypeClass _aTypeClass, String _sTypeName){ -// if (m_oIntrospector.isPrimitive(_aTypeClass)){ - return _sObjectDescription + " >>= " + _sReturnVariableName; -// } -// else{ -// return _sReturnVariableName + " = " + _sObjectDescription; -// } + return _sObjectDescription + " >>= " + _sReturnVariableName; } commit d054a817be89c2827f53cd17c2df42ef01e4f4e1 Author: Tor Lillqvist <t...@iki.fi> Date: Sun Mar 31 21:54:33 2013 +0300 Revert "Try redrawing in multiple phases to avoid blocking the UI thread too long" This reverts commit 3aae02d02d418222b0b51748008ed5c9c1f1d3c2. diff --git a/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m b/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m index 8daaccd..2f74d48 100644 --- a/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m +++ b/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m @@ -37,7 +37,6 @@ static UIView *theView; r.origin = CGPointMake(0, 0); self.view = [[View alloc] initWithFrame: r]; - self.view.clearsContextBeforeDrawing = NO; vc.view = self.view; theView = self.view; diff --git a/vcl/inc/ios/iosinst.hxx b/vcl/inc/ios/iosinst.hxx index bb33936..3b87de6 100644 --- a/vcl/inc/ios/iosinst.hxx +++ b/vcl/inc/ios/iosinst.hxx @@ -52,13 +52,12 @@ public: void damaged( IosSalFrame *frame, const basegfx::B2IBox& rDamageRect); - typedef enum { IDLE, PENDING, WAITING, GOAHEAD } eRenderWindowsState; - struct { - eRenderWindowsState state; + typedef struct { + bool done; CGContextRef context; CGRect rect; - } m_aRenderWindowsState; - DECL_LINK( RenderWindows, void* ); + } RenderWindowsArg; + DECL_LINK( RenderWindows, RenderWindowsArg* ); pthread_mutex_t m_aRenderMutex; pthread_cond_t m_aRenderCond; diff --git a/vcl/ios/iosinst.cxx b/vcl/ios/iosinst.cxx index 444d1ac..4767c46 100644 --- a/vcl/ios/iosinst.cxx +++ b/vcl/ios/iosinst.cxx @@ -107,8 +107,6 @@ IosSalInstance::IosSalInstance( SalYieldMutex *pMutex ) rc = pthread_mutex_init( &m_aRenderMutex, NULL ); SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_mutex_init failed: " << strerror( rc ) ); #endif - - m_aRenderWindowsState.state = IDLE; } IosSalInstance::~IosSalInstance() @@ -281,7 +279,7 @@ void lo_set_view_size(int width, int height) viewHeight = height; } -IMPL_LINK_NOARG( IosSalInstance, RenderWindows ) +IMPL_LINK( IosSalInstance, RenderWindows, RenderWindowsArg*, arg ) { int rc; @@ -292,19 +290,6 @@ IMPL_LINK_NOARG( IosSalInstance, RenderWindows ) NSLog(@"RenderWindows: mutex locked"); - m_aRenderWindowsState.state = WAITING; - - /* We need to poke the UI thread to do drawRect() which calls - * lo_render_windows() which signals the condition so we can - * continue. - */ - lo_damaged( m_aRenderWindowsState.rect ); - - while (m_aRenderWindowsState.state != GOAHEAD) { - rc = pthread_cond_wait( &m_aRenderCond, &m_aRenderMutex ); - SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_wait failed: " << strerror( rc ) ); - } - NSDate *a = [NSDate date]; for( std::list< SalFrame* >::const_iterator it = getFrames().begin(); @@ -314,7 +299,7 @@ IMPL_LINK_NOARG( IosSalInstance, RenderWindows ) SalFrameGeometry aGeom = pFrame->GetGeometry(); CGRect bbox = CGRectMake( aGeom.nX, aGeom.nY, aGeom.nWidth, aGeom.nHeight ); if ( pFrame->IsVisible() && - CGRectIntersectsRect( m_aRenderWindowsState.rect, bbox ) ) { + CGRectIntersectsRect( arg->rect, bbox ) ) { const basebmp::BitmapDeviceSharedPtr aDevice = pFrame->getDevice(); CGDataProviderRef provider = @@ -331,11 +316,11 @@ IMPL_LINK_NOARG( IosSalInstance, RenderWindows ) NULL, false, kCGRenderingIntentDefault ); - CGContextDrawImage( m_aRenderWindowsState.context, bbox, image ); + CGContextDrawImage( arg->context, bbox, image ); } } - m_aRenderWindowsState.state = IDLE; + arg->done = true; rc = pthread_cond_signal( &m_aRenderCond ); SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_signal failed:" << strerror( rc ) ); @@ -369,25 +354,16 @@ void lo_render_windows( CGContextRef context, CGRect rect ) NSLog(@"lo_render_windows: mutex locked"); - if (pInstance->m_aRenderWindowsState.state == IosSalInstance::IDLE) { - pInstance->m_aRenderWindowsState.state = IosSalInstance::PENDING; - pInstance->m_aRenderWindowsState.context = context; - pInstance->m_aRenderWindowsState.rect = rect; - Application::PostUserEvent( LINK( pInstance, IosSalInstance, RenderWindows ) ); - } else { - pInstance->m_aRenderWindowsState.context = context; - pInstance->m_aRenderWindowsState.rect = CGRectUnion( pInstance->m_aRenderWindowsState.rect, rect ); - if (pInstance->m_aRenderWindowsState.state == IosSalInstance::WAITING) { - pInstance->m_aRenderWindowsState.state = IosSalInstance::GOAHEAD; - pthread_cond_signal( &pInstance->m_aRenderCond ); - while (pInstance->m_aRenderWindowsState.state != IosSalInstance::IDLE) { - rc = pthread_cond_wait( &pInstance->m_aRenderCond, &pInstance->m_aRenderMutex ); - SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_wait failed: " << strerror( rc ) ); - } - } + IosSalInstance::RenderWindowsArg arg = { false, context, 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 ) ); } - NSLog(@"lo_render_windows: unlocking mutex"); + NSLog(@"lo_render_windows: mutex unlocked"); + rc = pthread_mutex_unlock( &pInstance->m_aRenderMutex ); SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_mutex_unlock failed: " << strerror( rc ) ); commit 41a70cc2d32dde3e2c76a6f1d4f3dd1b32bb1c02 Author: Tor Lillqvist <t...@iki.fi> Date: Sun Mar 31 20:39:01 2013 +0300 Try redrawing in multiple phases to avoid blocking the UI thread too long When initially calling lo_render_windows() from a redrawRect(), just post the user event asking for a redraw of the (headless) windows, and return without actually drawing anything to the context. Then when the RenderWindows() callback for that user event eventually gets called (which during startup and/or loading of a document might be several seconds later, as there is lots of other activity going on also as "user events"), ask the UI thread for a fresh redraw, and wait for lo_render_windows() in that phase to signal the actual redraw of the "headless" windows into the context. Unfortunately this doesn't work well enough. It is not a good idea to not draw anything in response to a drawRect() it seems. The affected rectangle gets initialised to black. So there is now irritating flashing. One sees an almost ready document (and the UI elements which still are there), but then it goes away for some time before finally re-appearding. Quite silly. So I will revert this, and I am committing it just to keep the code for reference in git. Change-Id: I9ee490345f093d80113c36f9e3268cab5a810dd0 diff --git a/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m b/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m index 2f74d48..8daaccd 100644 --- a/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m +++ b/ios/experimental/LibreOffice/LibreOffice/AppDelegate.m @@ -37,6 +37,7 @@ static UIView *theView; r.origin = CGPointMake(0, 0); self.view = [[View alloc] initWithFrame: r]; + self.view.clearsContextBeforeDrawing = NO; vc.view = self.view; theView = self.view; diff --git a/vcl/inc/ios/iosinst.hxx b/vcl/inc/ios/iosinst.hxx index 3b87de6..bb33936 100644 --- a/vcl/inc/ios/iosinst.hxx +++ b/vcl/inc/ios/iosinst.hxx @@ -52,12 +52,13 @@ public: void damaged( IosSalFrame *frame, const basegfx::B2IBox& rDamageRect); - typedef struct { - bool done; + typedef enum { IDLE, PENDING, WAITING, GOAHEAD } eRenderWindowsState; + struct { + eRenderWindowsState state; CGContextRef context; CGRect rect; - } RenderWindowsArg; - DECL_LINK( RenderWindows, RenderWindowsArg* ); + } m_aRenderWindowsState; + DECL_LINK( RenderWindows, void* ); pthread_mutex_t m_aRenderMutex; pthread_cond_t m_aRenderCond; diff --git a/vcl/ios/iosinst.cxx b/vcl/ios/iosinst.cxx index 4767c46..444d1ac 100644 --- a/vcl/ios/iosinst.cxx +++ b/vcl/ios/iosinst.cxx @@ -107,6 +107,8 @@ IosSalInstance::IosSalInstance( SalYieldMutex *pMutex ) rc = pthread_mutex_init( &m_aRenderMutex, NULL ); SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_mutex_init failed: " << strerror( rc ) ); #endif + + m_aRenderWindowsState.state = IDLE; } IosSalInstance::~IosSalInstance() @@ -279,7 +281,7 @@ void lo_set_view_size(int width, int height) viewHeight = height; } -IMPL_LINK( IosSalInstance, RenderWindows, RenderWindowsArg*, arg ) +IMPL_LINK_NOARG( IosSalInstance, RenderWindows ) { int rc; @@ -290,6 +292,19 @@ IMPL_LINK( IosSalInstance, RenderWindows, RenderWindowsArg*, arg ) NSLog(@"RenderWindows: mutex locked"); + m_aRenderWindowsState.state = WAITING; + + /* We need to poke the UI thread to do drawRect() which calls + * lo_render_windows() which signals the condition so we can + * continue. + */ + lo_damaged( m_aRenderWindowsState.rect ); + + while (m_aRenderWindowsState.state != GOAHEAD) { + rc = pthread_cond_wait( &m_aRenderCond, &m_aRenderMutex ); + SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_wait failed: " << strerror( rc ) ); + } + NSDate *a = [NSDate date]; for( std::list< SalFrame* >::const_iterator it = getFrames().begin(); @@ -299,7 +314,7 @@ IMPL_LINK( IosSalInstance, RenderWindows, RenderWindowsArg*, arg ) SalFrameGeometry aGeom = pFrame->GetGeometry(); CGRect bbox = CGRectMake( aGeom.nX, aGeom.nY, aGeom.nWidth, aGeom.nHeight ); if ( pFrame->IsVisible() && - CGRectIntersectsRect( arg->rect, bbox ) ) { + CGRectIntersectsRect( m_aRenderWindowsState.rect, bbox ) ) { const basebmp::BitmapDeviceSharedPtr aDevice = pFrame->getDevice(); CGDataProviderRef provider = @@ -316,11 +331,11 @@ IMPL_LINK( IosSalInstance, RenderWindows, RenderWindowsArg*, arg ) NULL, false, kCGRenderingIntentDefault ); - CGContextDrawImage( arg->context, bbox, image ); + CGContextDrawImage( m_aRenderWindowsState.context, bbox, image ); } } - arg->done = true; + m_aRenderWindowsState.state = IDLE; rc = pthread_cond_signal( &m_aRenderCond ); SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_signal failed:" << strerror( rc ) ); @@ -354,16 +369,25 @@ void lo_render_windows( CGContextRef context, CGRect rect ) NSLog(@"lo_render_windows: mutex locked"); - IosSalInstance::RenderWindowsArg arg = { false, context, 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 ) ); + if (pInstance->m_aRenderWindowsState.state == IosSalInstance::IDLE) { + pInstance->m_aRenderWindowsState.state = IosSalInstance::PENDING; + pInstance->m_aRenderWindowsState.context = context; + pInstance->m_aRenderWindowsState.rect = rect; + Application::PostUserEvent( LINK( pInstance, IosSalInstance, RenderWindows ) ); + } else { + pInstance->m_aRenderWindowsState.context = context; + pInstance->m_aRenderWindowsState.rect = CGRectUnion( pInstance->m_aRenderWindowsState.rect, rect ); + if (pInstance->m_aRenderWindowsState.state == IosSalInstance::WAITING) { + pInstance->m_aRenderWindowsState.state = IosSalInstance::GOAHEAD; + pthread_cond_signal( &pInstance->m_aRenderCond ); + while (pInstance->m_aRenderWindowsState.state != IosSalInstance::IDLE) { + rc = pthread_cond_wait( &pInstance->m_aRenderCond, &pInstance->m_aRenderMutex ); + SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_cond_wait failed: " << strerror( rc ) ); + } + } } - NSLog(@"lo_render_windows: mutex unlocked"); - + NSLog(@"lo_render_windows: unlocking mutex"); rc = pthread_mutex_unlock( &pInstance->m_aRenderMutex ); SAL_WARN_IF( rc != 0, "vcl.ios", "pthread_mutex_unlock failed: " << strerror( rc ) ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits