2010-10-12 15:51:52 +02:00
|
|
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2012-07-11 09:51:50 +01:00
|
|
|
/*
|
|
|
|
* This file is part of the LibreOffice project.
|
|
|
|
*
|
|
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
*
|
|
|
|
* This file incorporates work covered by the following license notice:
|
|
|
|
*
|
|
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
|
|
* contributor license agreements. See the NOTICE file distributed
|
|
|
|
* with this work for additional information regarding copyright
|
|
|
|
* ownership. The ASF licenses this file to you under the Apache
|
|
|
|
* License, Version 2.0 (the "License"); you may not use this file
|
|
|
|
* except in compliance with the License. You may obtain a copy of
|
|
|
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
|
|
*/
|
2004-03-18 09:44:39 +00:00
|
|
|
|
2006-09-17 07:22:40 +00:00
|
|
|
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
// must be first
|
|
|
|
#include <canvas/debug.hxx>
|
2004-03-18 09:44:39 +00:00
|
|
|
#include <canvas/verbosetrace.hxx>
|
2006-12-13 14:11:52 +00:00
|
|
|
|
2005-03-30 06:51:18 +00:00
|
|
|
#include <comphelper/anytostring.hxx>
|
|
|
|
#include <cppuhelper/exc_hlp.hxx>
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
|
INTEGRATION: CWS presfixes12 (1.9.12); FILE MERGED
2007/03/05 13:47:05 thb 1.9.12.3: #i37778# Removed Activity::needsScreenUpdate() method - this is now handled by notifying ScreenUpdater explicitely; reorg of SlideShowImpl members, to align lifetime with mutual references; fixed (hopefully) last repaint issues with new LayerManager; added more tests
2007/02/25 01:10:23 thb 1.9.12.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/01/29 14:01:51 thb 1.9.12.1: Issue number: #i37778#
Larger slideshow refactoring. Wrote design and coding style manifest,
and adapted the code to actually conform to this. In detail:
- cleaned up ownership/disposable/weak_ptr story. removed hacks and
explicit Disposable implementations, where workaround were available
- removed object mutices, where superfluous
- reworked EventMultiplexer (using templatized listener class now), added
more events. EventMultiplexer now serves as a true blackboard
- reworked directory structure: disjunct parts are now physically separated
into directories, instantiation happens via factories & abstract interfaces
- added CursorManager, to make setting mouse cursor less hackish
- reworked DrawShape, to implement SeparateListener pattern
- reworked IntrinsicAnimationActivity, to avoid cyclic references
- modified hyperlink & shape cursor handling to communicate via
EventMultiplexer
- renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx,
etc.)
- added first version of the z-order fix to layer/layermanager
- cleaned up include guards and include syntax
2007-07-17 13:33:38 +00:00
|
|
|
#include "slideshowexceptions.hxx"
|
|
|
|
#include "activity.hxx"
|
|
|
|
#include "activitiesqueue.hxx"
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
|
2012-05-16 13:57:07 +01:00
|
|
|
#include <boost/mem_fn.hpp>
|
|
|
|
#include <boost/shared_ptr.hpp>
|
2005-03-30 06:51:18 +00:00
|
|
|
#include <algorithm>
|
|
|
|
|
2004-03-18 09:44:39 +00:00
|
|
|
|
|
|
|
using namespace ::com::sun::star;
|
|
|
|
|
2006-12-13 14:11:52 +00:00
|
|
|
namespace slideshow
|
2004-03-18 09:44:39 +00:00
|
|
|
{
|
|
|
|
namespace internal
|
|
|
|
{
|
INTEGRATION: CWS presfixes12 (1.9.12); FILE MERGED
2007/03/05 13:47:05 thb 1.9.12.3: #i37778# Removed Activity::needsScreenUpdate() method - this is now handled by notifying ScreenUpdater explicitely; reorg of SlideShowImpl members, to align lifetime with mutual references; fixed (hopefully) last repaint issues with new LayerManager; added more tests
2007/02/25 01:10:23 thb 1.9.12.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/01/29 14:01:51 thb 1.9.12.1: Issue number: #i37778#
Larger slideshow refactoring. Wrote design and coding style manifest,
and adapted the code to actually conform to this. In detail:
- cleaned up ownership/disposable/weak_ptr story. removed hacks and
explicit Disposable implementations, where workaround were available
- removed object mutices, where superfluous
- reworked EventMultiplexer (using templatized listener class now), added
more events. EventMultiplexer now serves as a true blackboard
- reworked directory structure: disjunct parts are now physically separated
into directories, instantiation happens via factories & abstract interfaces
- added CursorManager, to make setting mouse cursor less hackish
- reworked DrawShape, to implement SeparateListener pattern
- reworked IntrinsicAnimationActivity, to avoid cyclic references
- modified hyperlink & shape cursor handling to communicate via
EventMultiplexer
- renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx,
etc.)
- added first version of the z-order fix to layer/layermanager
- cleaned up include guards and include syntax
2007-07-17 13:33:38 +00:00
|
|
|
ActivitiesQueue::ActivitiesQueue(
|
|
|
|
const ::boost::shared_ptr< ::canvas::tools::ElapsedTime >& pPresTimer ) :
|
INTEGRATION: CWS presfixes01 (1.3.6); FILE MERGED
2005/03/03 14:17:25 thb 1.3.6.6: #i43927# Slightly changed the way updateScreen() is handled: since just lately, there were several places introduced which had to call View::updateScreen() manually (RehearsetimtinActivity, WaitSymbol, etc.). Together with the recent change regarding #i42499#, this resulted in the unfortunate situation that LayerManager::update() was not called before updateScreen(). Now, the view update is centrally handled by the EventMultiplexer (which also knows the LayerManager), I've therefore changed all direct calls to View::updateScreen() to EventMultiplexer::updateScreenContent()
2005/02/17 23:56:50 thb 1.3.6.5: #i42499# Made de-spriting of shape effects happen in new Activity::dequeued() method; removed Activity::end() method; fixed calculation of XSlideShow::update() wait interval; slightly modified pres time handling, pres time is now held during _all_ queue processing, including EventQueue (generated funny bounce and break effects, because delayed activities got out of sync); clarified documentation
2005/02/16 11:17:40 fs 1.3.6.4: #i42558# drafts.com.sun.star.drawing/rendering/geometry moved to com.sun.star.*
2005/02/07 01:05:35 thb 1.3.6.3: #i38960# Slight adaptions for new timer handling: event and activities queue now share a timer, such that e.g. a hold on this timer affects the other queue, too; slight reworks to slidechangebase, now creating the slide bitmap(s) on start(), too.
2005/02/02 22:46:57 dbo 1.3.6.2: #i37777#
- timing changes for activities queue
- minor fixes
Issue number:
Submitted by:
Reviewed by:
2005/01/30 16:00:55 dbo 1.3.6.1: #i37777#
- using single presentation time base
- activities queue detects and sets timing lag (calcTimeLag())
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:40:32 +00:00
|
|
|
mpTimer( pPresTimer ),
|
2004-03-18 09:44:39 +00:00
|
|
|
maCurrentActivitiesWaiting(),
|
|
|
|
maCurrentActivitiesReinsert(),
|
INTEGRATION: CWS presfixes12 (1.9.12); FILE MERGED
2007/03/05 13:47:05 thb 1.9.12.3: #i37778# Removed Activity::needsScreenUpdate() method - this is now handled by notifying ScreenUpdater explicitely; reorg of SlideShowImpl members, to align lifetime with mutual references; fixed (hopefully) last repaint issues with new LayerManager; added more tests
2007/02/25 01:10:23 thb 1.9.12.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/01/29 14:01:51 thb 1.9.12.1: Issue number: #i37778#
Larger slideshow refactoring. Wrote design and coding style manifest,
and adapted the code to actually conform to this. In detail:
- cleaned up ownership/disposable/weak_ptr story. removed hacks and
explicit Disposable implementations, where workaround were available
- removed object mutices, where superfluous
- reworked EventMultiplexer (using templatized listener class now), added
more events. EventMultiplexer now serves as a true blackboard
- reworked directory structure: disjunct parts are now physically separated
into directories, instantiation happens via factories & abstract interfaces
- added CursorManager, to make setting mouse cursor less hackish
- reworked DrawShape, to implement SeparateListener pattern
- reworked IntrinsicAnimationActivity, to avoid cyclic references
- modified hyperlink & shape cursor handling to communicate via
EventMultiplexer
- renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx,
etc.)
- added first version of the z-order fix to layer/layermanager
- cleaned up include guards and include syntax
2007-07-17 13:33:38 +00:00
|
|
|
maDequeuedActivities()
|
2004-03-18 09:44:39 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
ActivitiesQueue::~ActivitiesQueue()
|
|
|
|
{
|
INTEGRATION: CWS presfixes01 (1.3.6); FILE MERGED
2005/03/03 14:17:25 thb 1.3.6.6: #i43927# Slightly changed the way updateScreen() is handled: since just lately, there were several places introduced which had to call View::updateScreen() manually (RehearsetimtinActivity, WaitSymbol, etc.). Together with the recent change regarding #i42499#, this resulted in the unfortunate situation that LayerManager::update() was not called before updateScreen(). Now, the view update is centrally handled by the EventMultiplexer (which also knows the LayerManager), I've therefore changed all direct calls to View::updateScreen() to EventMultiplexer::updateScreenContent()
2005/02/17 23:56:50 thb 1.3.6.5: #i42499# Made de-spriting of shape effects happen in new Activity::dequeued() method; removed Activity::end() method; fixed calculation of XSlideShow::update() wait interval; slightly modified pres time handling, pres time is now held during _all_ queue processing, including EventQueue (generated funny bounce and break effects, because delayed activities got out of sync); clarified documentation
2005/02/16 11:17:40 fs 1.3.6.4: #i42558# drafts.com.sun.star.drawing/rendering/geometry moved to com.sun.star.*
2005/02/07 01:05:35 thb 1.3.6.3: #i38960# Slight adaptions for new timer handling: event and activities queue now share a timer, such that e.g. a hold on this timer affects the other queue, too; slight reworks to slidechangebase, now creating the slide bitmap(s) on start(), too.
2005/02/02 22:46:57 dbo 1.3.6.2: #i37777#
- timing changes for activities queue
- minor fixes
Issue number:
Submitted by:
Reviewed by:
2005/01/30 16:00:55 dbo 1.3.6.1: #i37777#
- using single presentation time base
- activities queue detects and sets timing lag (calcTimeLag())
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:40:32 +00:00
|
|
|
// dispose all queue entries
|
INTEGRATION: CWS presfixes12 (1.9.12); FILE MERGED
2007/03/05 13:47:05 thb 1.9.12.3: #i37778# Removed Activity::needsScreenUpdate() method - this is now handled by notifying ScreenUpdater explicitely; reorg of SlideShowImpl members, to align lifetime with mutual references; fixed (hopefully) last repaint issues with new LayerManager; added more tests
2007/02/25 01:10:23 thb 1.9.12.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/01/29 14:01:51 thb 1.9.12.1: Issue number: #i37778#
Larger slideshow refactoring. Wrote design and coding style manifest,
and adapted the code to actually conform to this. In detail:
- cleaned up ownership/disposable/weak_ptr story. removed hacks and
explicit Disposable implementations, where workaround were available
- removed object mutices, where superfluous
- reworked EventMultiplexer (using templatized listener class now), added
more events. EventMultiplexer now serves as a true blackboard
- reworked directory structure: disjunct parts are now physically separated
into directories, instantiation happens via factories & abstract interfaces
- added CursorManager, to make setting mouse cursor less hackish
- reworked DrawShape, to implement SeparateListener pattern
- reworked IntrinsicAnimationActivity, to avoid cyclic references
- modified hyperlink & shape cursor handling to communicate via
EventMultiplexer
- renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx,
etc.)
- added first version of the z-order fix to layer/layermanager
- cleaned up include guards and include syntax
2007-07-17 13:33:38 +00:00
|
|
|
try
|
|
|
|
{
|
2005-03-30 06:51:18 +00:00
|
|
|
std::for_each( maCurrentActivitiesWaiting.begin(),
|
|
|
|
maCurrentActivitiesWaiting.end(),
|
|
|
|
boost::mem_fn( &Disposable::dispose ) );
|
|
|
|
std::for_each( maCurrentActivitiesReinsert.begin(),
|
|
|
|
maCurrentActivitiesReinsert.end(),
|
|
|
|
boost::mem_fn( &Disposable::dispose ) );
|
|
|
|
}
|
INTEGRATION: CWS presfixes12 (1.9.12); FILE MERGED
2007/03/05 13:47:05 thb 1.9.12.3: #i37778# Removed Activity::needsScreenUpdate() method - this is now handled by notifying ScreenUpdater explicitely; reorg of SlideShowImpl members, to align lifetime with mutual references; fixed (hopefully) last repaint issues with new LayerManager; added more tests
2007/02/25 01:10:23 thb 1.9.12.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/01/29 14:01:51 thb 1.9.12.1: Issue number: #i37778#
Larger slideshow refactoring. Wrote design and coding style manifest,
and adapted the code to actually conform to this. In detail:
- cleaned up ownership/disposable/weak_ptr story. removed hacks and
explicit Disposable implementations, where workaround were available
- removed object mutices, where superfluous
- reworked EventMultiplexer (using templatized listener class now), added
more events. EventMultiplexer now serves as a true blackboard
- reworked directory structure: disjunct parts are now physically separated
into directories, instantiation happens via factories & abstract interfaces
- added CursorManager, to make setting mouse cursor less hackish
- reworked DrawShape, to implement SeparateListener pattern
- reworked IntrinsicAnimationActivity, to avoid cyclic references
- modified hyperlink & shape cursor handling to communicate via
EventMultiplexer
- renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx,
etc.)
- added first version of the z-order fix to layer/layermanager
- cleaned up include guards and include syntax
2007-07-17 13:33:38 +00:00
|
|
|
catch (uno::Exception &)
|
|
|
|
{
|
2013-04-07 12:06:47 +02:00
|
|
|
OSL_FAIL( OUStringToOString(
|
2005-03-30 06:51:18 +00:00
|
|
|
comphelper::anyToString(
|
|
|
|
cppu::getCaughtException() ),
|
|
|
|
RTL_TEXTENCODING_UTF8 ).getStr() );
|
|
|
|
}
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
}
|
|
|
|
|
2004-03-18 09:44:39 +00:00
|
|
|
bool ActivitiesQueue::addActivity( const ActivitySharedPtr& pActivity )
|
|
|
|
{
|
2006-12-13 14:11:52 +00:00
|
|
|
OSL_ENSURE( pActivity, "ActivitiesQueue::addActivity: activity ptr NULL" );
|
2004-03-18 09:44:39 +00:00
|
|
|
|
2006-12-13 14:11:52 +00:00
|
|
|
if( !pActivity )
|
2004-03-18 09:44:39 +00:00
|
|
|
return false;
|
|
|
|
|
|
|
|
// add entry to waiting list
|
|
|
|
maCurrentActivitiesWaiting.push_back( pActivity );
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
void ActivitiesQueue::process()
|
|
|
|
{
|
|
|
|
VERBOSE_TRACE( "ActivitiesQueue: outer loop heartbeat" );
|
|
|
|
|
INTEGRATION: CWS presfixes01 (1.3.6); FILE MERGED
2005/03/03 14:17:25 thb 1.3.6.6: #i43927# Slightly changed the way updateScreen() is handled: since just lately, there were several places introduced which had to call View::updateScreen() manually (RehearsetimtinActivity, WaitSymbol, etc.). Together with the recent change regarding #i42499#, this resulted in the unfortunate situation that LayerManager::update() was not called before updateScreen(). Now, the view update is centrally handled by the EventMultiplexer (which also knows the LayerManager), I've therefore changed all direct calls to View::updateScreen() to EventMultiplexer::updateScreenContent()
2005/02/17 23:56:50 thb 1.3.6.5: #i42499# Made de-spriting of shape effects happen in new Activity::dequeued() method; removed Activity::end() method; fixed calculation of XSlideShow::update() wait interval; slightly modified pres time handling, pres time is now held during _all_ queue processing, including EventQueue (generated funny bounce and break effects, because delayed activities got out of sync); clarified documentation
2005/02/16 11:17:40 fs 1.3.6.4: #i42558# drafts.com.sun.star.drawing/rendering/geometry moved to com.sun.star.*
2005/02/07 01:05:35 thb 1.3.6.3: #i38960# Slight adaptions for new timer handling: event and activities queue now share a timer, such that e.g. a hold on this timer affects the other queue, too; slight reworks to slidechangebase, now creating the slide bitmap(s) on start(), too.
2005/02/02 22:46:57 dbo 1.3.6.2: #i37777#
- timing changes for activities queue
- minor fixes
Issue number:
Submitted by:
Reviewed by:
2005/01/30 16:00:55 dbo 1.3.6.1: #i37777#
- using single presentation time base
- activities queue detects and sets timing lag (calcTimeLag())
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:40:32 +00:00
|
|
|
// accumulate time lag for all activities, and lag time
|
|
|
|
// base if necessary:
|
|
|
|
ActivityQueue::const_iterator iPos(
|
|
|
|
maCurrentActivitiesWaiting.begin() );
|
|
|
|
const ActivityQueue::const_iterator iEnd(
|
|
|
|
maCurrentActivitiesWaiting.end() );
|
|
|
|
double fLag = 0.0;
|
|
|
|
for ( ; iPos != iEnd; ++iPos )
|
|
|
|
fLag = std::max<double>( fLag, (*iPos)->calcTimeLag() );
|
INTEGRATION: CWS presfixes12 (1.9.12); FILE MERGED
2007/03/05 13:47:05 thb 1.9.12.3: #i37778# Removed Activity::needsScreenUpdate() method - this is now handled by notifying ScreenUpdater explicitely; reorg of SlideShowImpl members, to align lifetime with mutual references; fixed (hopefully) last repaint issues with new LayerManager; added more tests
2007/02/25 01:10:23 thb 1.9.12.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/01/29 14:01:51 thb 1.9.12.1: Issue number: #i37778#
Larger slideshow refactoring. Wrote design and coding style manifest,
and adapted the code to actually conform to this. In detail:
- cleaned up ownership/disposable/weak_ptr story. removed hacks and
explicit Disposable implementations, where workaround were available
- removed object mutices, where superfluous
- reworked EventMultiplexer (using templatized listener class now), added
more events. EventMultiplexer now serves as a true blackboard
- reworked directory structure: disjunct parts are now physically separated
into directories, instantiation happens via factories & abstract interfaces
- added CursorManager, to make setting mouse cursor less hackish
- reworked DrawShape, to implement SeparateListener pattern
- reworked IntrinsicAnimationActivity, to avoid cyclic references
- modified hyperlink & shape cursor handling to communicate via
EventMultiplexer
- renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx,
etc.)
- added first version of the z-order fix to layer/layermanager
- cleaned up include guards and include syntax
2007-07-17 13:33:38 +00:00
|
|
|
if (fLag > 0.0)
|
|
|
|
{
|
INTEGRATION: CWS presfixes01 (1.3.6); FILE MERGED
2005/03/03 14:17:25 thb 1.3.6.6: #i43927# Slightly changed the way updateScreen() is handled: since just lately, there were several places introduced which had to call View::updateScreen() manually (RehearsetimtinActivity, WaitSymbol, etc.). Together with the recent change regarding #i42499#, this resulted in the unfortunate situation that LayerManager::update() was not called before updateScreen(). Now, the view update is centrally handled by the EventMultiplexer (which also knows the LayerManager), I've therefore changed all direct calls to View::updateScreen() to EventMultiplexer::updateScreenContent()
2005/02/17 23:56:50 thb 1.3.6.5: #i42499# Made de-spriting of shape effects happen in new Activity::dequeued() method; removed Activity::end() method; fixed calculation of XSlideShow::update() wait interval; slightly modified pres time handling, pres time is now held during _all_ queue processing, including EventQueue (generated funny bounce and break effects, because delayed activities got out of sync); clarified documentation
2005/02/16 11:17:40 fs 1.3.6.4: #i42558# drafts.com.sun.star.drawing/rendering/geometry moved to com.sun.star.*
2005/02/07 01:05:35 thb 1.3.6.3: #i38960# Slight adaptions for new timer handling: event and activities queue now share a timer, such that e.g. a hold on this timer affects the other queue, too; slight reworks to slidechangebase, now creating the slide bitmap(s) on start(), too.
2005/02/02 22:46:57 dbo 1.3.6.2: #i37777#
- timing changes for activities queue
- minor fixes
Issue number:
Submitted by:
Reviewed by:
2005/01/30 16:00:55 dbo 1.3.6.1: #i37777#
- using single presentation time base
- activities queue detects and sets timing lag (calcTimeLag())
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:40:32 +00:00
|
|
|
mpTimer->adjustTimer( -fLag );
|
|
|
|
}
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
|
2004-03-18 09:44:39 +00:00
|
|
|
// process list of activities
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
while( !maCurrentActivitiesWaiting.empty() )
|
2004-03-18 09:44:39 +00:00
|
|
|
{
|
|
|
|
// process topmost activity
|
|
|
|
ActivitySharedPtr pActivity( maCurrentActivitiesWaiting.front() );
|
|
|
|
maCurrentActivitiesWaiting.pop_front();
|
|
|
|
|
|
|
|
bool bReinsert( false );
|
|
|
|
|
|
|
|
try
|
|
|
|
{
|
|
|
|
// fire up activity
|
|
|
|
bReinsert = pActivity->perform();
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
}
|
INTEGRATION: CWS presfixes12 (1.9.12); FILE MERGED
2007/03/05 13:47:05 thb 1.9.12.3: #i37778# Removed Activity::needsScreenUpdate() method - this is now handled by notifying ScreenUpdater explicitely; reorg of SlideShowImpl members, to align lifetime with mutual references; fixed (hopefully) last repaint issues with new LayerManager; added more tests
2007/02/25 01:10:23 thb 1.9.12.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/01/29 14:01:51 thb 1.9.12.1: Issue number: #i37778#
Larger slideshow refactoring. Wrote design and coding style manifest,
and adapted the code to actually conform to this. In detail:
- cleaned up ownership/disposable/weak_ptr story. removed hacks and
explicit Disposable implementations, where workaround were available
- removed object mutices, where superfluous
- reworked EventMultiplexer (using templatized listener class now), added
more events. EventMultiplexer now serves as a true blackboard
- reworked directory structure: disjunct parts are now physically separated
into directories, instantiation happens via factories & abstract interfaces
- added CursorManager, to make setting mouse cursor less hackish
- reworked DrawShape, to implement SeparateListener pattern
- reworked IntrinsicAnimationActivity, to avoid cyclic references
- modified hyperlink & shape cursor handling to communicate via
EventMultiplexer
- renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx,
etc.)
- added first version of the z-order fix to layer/layermanager
- cleaned up include guards and include syntax
2007-07-17 13:33:38 +00:00
|
|
|
catch( uno::RuntimeException& )
|
|
|
|
{
|
|
|
|
throw;
|
|
|
|
}
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
catch( uno::Exception& )
|
|
|
|
{
|
|
|
|
// catch anything here, we don't want
|
|
|
|
// to leave this scope under _any_
|
|
|
|
// circumstance. Although, do _not_
|
|
|
|
// reinsert an activity that threw
|
|
|
|
// once.
|
2004-03-18 09:44:39 +00:00
|
|
|
|
2011-12-01 23:41:42 +02:00
|
|
|
// NOTE: we explicitly don't catch(...) here,
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
// since this will also capture segmentation
|
|
|
|
// violations and the like. In such a case, we
|
|
|
|
// still better let our clients now...
|
2013-04-07 12:06:47 +02:00
|
|
|
OSL_FAIL( OUStringToOString(
|
INTEGRATION: CWS presfixes12 (1.9.12); FILE MERGED
2007/03/05 13:47:05 thb 1.9.12.3: #i37778# Removed Activity::needsScreenUpdate() method - this is now handled by notifying ScreenUpdater explicitely; reorg of SlideShowImpl members, to align lifetime with mutual references; fixed (hopefully) last repaint issues with new LayerManager; added more tests
2007/02/25 01:10:23 thb 1.9.12.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/01/29 14:01:51 thb 1.9.12.1: Issue number: #i37778#
Larger slideshow refactoring. Wrote design and coding style manifest,
and adapted the code to actually conform to this. In detail:
- cleaned up ownership/disposable/weak_ptr story. removed hacks and
explicit Disposable implementations, where workaround were available
- removed object mutices, where superfluous
- reworked EventMultiplexer (using templatized listener class now), added
more events. EventMultiplexer now serves as a true blackboard
- reworked directory structure: disjunct parts are now physically separated
into directories, instantiation happens via factories & abstract interfaces
- added CursorManager, to make setting mouse cursor less hackish
- reworked DrawShape, to implement SeparateListener pattern
- reworked IntrinsicAnimationActivity, to avoid cyclic references
- modified hyperlink & shape cursor handling to communicate via
EventMultiplexer
- renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx,
etc.)
- added first version of the z-order fix to layer/layermanager
- cleaned up include guards and include syntax
2007-07-17 13:33:38 +00:00
|
|
|
comphelper::anyToString( cppu::getCaughtException() ),
|
|
|
|
RTL_TEXTENCODING_UTF8 ).getStr() );
|
2004-03-18 09:44:39 +00:00
|
|
|
}
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
catch( SlideShowException& )
|
2004-03-18 09:44:39 +00:00
|
|
|
{
|
|
|
|
// catch anything here, we don't want
|
|
|
|
// to leave this scope under _any_
|
|
|
|
// circumstance. Although, do _not_
|
|
|
|
// reinsert an activity that threw
|
|
|
|
// once.
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
|
2011-12-01 23:41:42 +02:00
|
|
|
// NOTE: we explicitly don't catch(...) here,
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
// since this will also capture segmentation
|
|
|
|
// violations and the like. In such a case, we
|
|
|
|
// still better let our clients now...
|
|
|
|
OSL_TRACE( "::presentation::internal::ActivitiesQueue: Activity threw a SlideShowException, removing from ring" );
|
2004-03-18 09:44:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if( bReinsert )
|
|
|
|
maCurrentActivitiesReinsert.push_back( pActivity );
|
INTEGRATION: CWS presfixes01 (1.3.6); FILE MERGED
2005/03/03 14:17:25 thb 1.3.6.6: #i43927# Slightly changed the way updateScreen() is handled: since just lately, there were several places introduced which had to call View::updateScreen() manually (RehearsetimtinActivity, WaitSymbol, etc.). Together with the recent change regarding #i42499#, this resulted in the unfortunate situation that LayerManager::update() was not called before updateScreen(). Now, the view update is centrally handled by the EventMultiplexer (which also knows the LayerManager), I've therefore changed all direct calls to View::updateScreen() to EventMultiplexer::updateScreenContent()
2005/02/17 23:56:50 thb 1.3.6.5: #i42499# Made de-spriting of shape effects happen in new Activity::dequeued() method; removed Activity::end() method; fixed calculation of XSlideShow::update() wait interval; slightly modified pres time handling, pres time is now held during _all_ queue processing, including EventQueue (generated funny bounce and break effects, because delayed activities got out of sync); clarified documentation
2005/02/16 11:17:40 fs 1.3.6.4: #i42558# drafts.com.sun.star.drawing/rendering/geometry moved to com.sun.star.*
2005/02/07 01:05:35 thb 1.3.6.3: #i38960# Slight adaptions for new timer handling: event and activities queue now share a timer, such that e.g. a hold on this timer affects the other queue, too; slight reworks to slidechangebase, now creating the slide bitmap(s) on start(), too.
2005/02/02 22:46:57 dbo 1.3.6.2: #i37777#
- timing changes for activities queue
- minor fixes
Issue number:
Submitted by:
Reviewed by:
2005/01/30 16:00:55 dbo 1.3.6.1: #i37777#
- using single presentation time base
- activities queue detects and sets timing lag (calcTimeLag())
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:40:32 +00:00
|
|
|
else
|
INTEGRATION: CWS presfixes12 (1.9.12); FILE MERGED
2007/03/05 13:47:05 thb 1.9.12.3: #i37778# Removed Activity::needsScreenUpdate() method - this is now handled by notifying ScreenUpdater explicitely; reorg of SlideShowImpl members, to align lifetime with mutual references; fixed (hopefully) last repaint issues with new LayerManager; added more tests
2007/02/25 01:10:23 thb 1.9.12.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/01/29 14:01:51 thb 1.9.12.1: Issue number: #i37778#
Larger slideshow refactoring. Wrote design and coding style manifest,
and adapted the code to actually conform to this. In detail:
- cleaned up ownership/disposable/weak_ptr story. removed hacks and
explicit Disposable implementations, where workaround were available
- removed object mutices, where superfluous
- reworked EventMultiplexer (using templatized listener class now), added
more events. EventMultiplexer now serves as a true blackboard
- reworked directory structure: disjunct parts are now physically separated
into directories, instantiation happens via factories & abstract interfaces
- added CursorManager, to make setting mouse cursor less hackish
- reworked DrawShape, to implement SeparateListener pattern
- reworked IntrinsicAnimationActivity, to avoid cyclic references
- modified hyperlink & shape cursor handling to communicate via
EventMultiplexer
- renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx,
etc.)
- added first version of the z-order fix to layer/layermanager
- cleaned up include guards and include syntax
2007-07-17 13:33:38 +00:00
|
|
|
maDequeuedActivities.push_back( pActivity );
|
2004-03-18 09:44:39 +00:00
|
|
|
|
|
|
|
VERBOSE_TRACE( "ActivitiesQueue: inner loop heartbeat" );
|
|
|
|
}
|
|
|
|
|
INTEGRATION: CWS presfixes12 (1.9.12); FILE MERGED
2007/03/05 13:47:05 thb 1.9.12.3: #i37778# Removed Activity::needsScreenUpdate() method - this is now handled by notifying ScreenUpdater explicitely; reorg of SlideShowImpl members, to align lifetime with mutual references; fixed (hopefully) last repaint issues with new LayerManager; added more tests
2007/02/25 01:10:23 thb 1.9.12.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/01/29 14:01:51 thb 1.9.12.1: Issue number: #i37778#
Larger slideshow refactoring. Wrote design and coding style manifest,
and adapted the code to actually conform to this. In detail:
- cleaned up ownership/disposable/weak_ptr story. removed hacks and
explicit Disposable implementations, where workaround were available
- removed object mutices, where superfluous
- reworked EventMultiplexer (using templatized listener class now), added
more events. EventMultiplexer now serves as a true blackboard
- reworked directory structure: disjunct parts are now physically separated
into directories, instantiation happens via factories & abstract interfaces
- added CursorManager, to make setting mouse cursor less hackish
- reworked DrawShape, to implement SeparateListener pattern
- reworked IntrinsicAnimationActivity, to avoid cyclic references
- modified hyperlink & shape cursor handling to communicate via
EventMultiplexer
- renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx,
etc.)
- added first version of the z-order fix to layer/layermanager
- cleaned up include guards and include syntax
2007-07-17 13:33:38 +00:00
|
|
|
if( !maCurrentActivitiesReinsert.empty() )
|
2004-03-18 09:44:39 +00:00
|
|
|
{
|
INTEGRATION: CWS presfixes12 (1.9.12); FILE MERGED
2007/03/05 13:47:05 thb 1.9.12.3: #i37778# Removed Activity::needsScreenUpdate() method - this is now handled by notifying ScreenUpdater explicitely; reorg of SlideShowImpl members, to align lifetime with mutual references; fixed (hopefully) last repaint issues with new LayerManager; added more tests
2007/02/25 01:10:23 thb 1.9.12.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/01/29 14:01:51 thb 1.9.12.1: Issue number: #i37778#
Larger slideshow refactoring. Wrote design and coding style manifest,
and adapted the code to actually conform to this. In detail:
- cleaned up ownership/disposable/weak_ptr story. removed hacks and
explicit Disposable implementations, where workaround were available
- removed object mutices, where superfluous
- reworked EventMultiplexer (using templatized listener class now), added
more events. EventMultiplexer now serves as a true blackboard
- reworked directory structure: disjunct parts are now physically separated
into directories, instantiation happens via factories & abstract interfaces
- added CursorManager, to make setting mouse cursor less hackish
- reworked DrawShape, to implement SeparateListener pattern
- reworked IntrinsicAnimationActivity, to avoid cyclic references
- modified hyperlink & shape cursor handling to communicate via
EventMultiplexer
- renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx,
etc.)
- added first version of the z-order fix to layer/layermanager
- cleaned up include guards and include syntax
2007-07-17 13:33:38 +00:00
|
|
|
// reinsert all processed, but not finished
|
|
|
|
// activities back to waiting queue. With swap(),
|
|
|
|
// we kill two birds with one stone: we reuse the
|
|
|
|
// list nodes, and we clear the
|
|
|
|
// maCurrentActivitiesReinsert list
|
|
|
|
maCurrentActivitiesWaiting.swap( maCurrentActivitiesReinsert );
|
2004-03-18 09:44:39 +00:00
|
|
|
}
|
INTEGRATION: CWS presfixes12 (1.9.12); FILE MERGED
2007/03/05 13:47:05 thb 1.9.12.3: #i37778# Removed Activity::needsScreenUpdate() method - this is now handled by notifying ScreenUpdater explicitely; reorg of SlideShowImpl members, to align lifetime with mutual references; fixed (hopefully) last repaint issues with new LayerManager; added more tests
2007/02/25 01:10:23 thb 1.9.12.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/01/29 14:01:51 thb 1.9.12.1: Issue number: #i37778#
Larger slideshow refactoring. Wrote design and coding style manifest,
and adapted the code to actually conform to this. In detail:
- cleaned up ownership/disposable/weak_ptr story. removed hacks and
explicit Disposable implementations, where workaround were available
- removed object mutices, where superfluous
- reworked EventMultiplexer (using templatized listener class now), added
more events. EventMultiplexer now serves as a true blackboard
- reworked directory structure: disjunct parts are now physically separated
into directories, instantiation happens via factories & abstract interfaces
- added CursorManager, to make setting mouse cursor less hackish
- reworked DrawShape, to implement SeparateListener pattern
- reworked IntrinsicAnimationActivity, to avoid cyclic references
- modified hyperlink & shape cursor handling to communicate via
EventMultiplexer
- renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx,
etc.)
- added first version of the z-order fix to layer/layermanager
- cleaned up include guards and include syntax
2007-07-17 13:33:38 +00:00
|
|
|
}
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
|
INTEGRATION: CWS presfixes12 (1.9.12); FILE MERGED
2007/03/05 13:47:05 thb 1.9.12.3: #i37778# Removed Activity::needsScreenUpdate() method - this is now handled by notifying ScreenUpdater explicitely; reorg of SlideShowImpl members, to align lifetime with mutual references; fixed (hopefully) last repaint issues with new LayerManager; added more tests
2007/02/25 01:10:23 thb 1.9.12.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/01/29 14:01:51 thb 1.9.12.1: Issue number: #i37778#
Larger slideshow refactoring. Wrote design and coding style manifest,
and adapted the code to actually conform to this. In detail:
- cleaned up ownership/disposable/weak_ptr story. removed hacks and
explicit Disposable implementations, where workaround were available
- removed object mutices, where superfluous
- reworked EventMultiplexer (using templatized listener class now), added
more events. EventMultiplexer now serves as a true blackboard
- reworked directory structure: disjunct parts are now physically separated
into directories, instantiation happens via factories & abstract interfaces
- added CursorManager, to make setting mouse cursor less hackish
- reworked DrawShape, to implement SeparateListener pattern
- reworked IntrinsicAnimationActivity, to avoid cyclic references
- modified hyperlink & shape cursor handling to communicate via
EventMultiplexer
- renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx,
etc.)
- added first version of the z-order fix to layer/layermanager
- cleaned up include guards and include syntax
2007-07-17 13:33:38 +00:00
|
|
|
void ActivitiesQueue::processDequeued()
|
|
|
|
{
|
|
|
|
// notify all dequeued activities from last round
|
|
|
|
::std::for_each( maDequeuedActivities.begin(),
|
|
|
|
maDequeuedActivities.end(),
|
INTEGRATION: CWS presfixes01 (1.3.6); FILE MERGED
2005/03/03 14:17:25 thb 1.3.6.6: #i43927# Slightly changed the way updateScreen() is handled: since just lately, there were several places introduced which had to call View::updateScreen() manually (RehearsetimtinActivity, WaitSymbol, etc.). Together with the recent change regarding #i42499#, this resulted in the unfortunate situation that LayerManager::update() was not called before updateScreen(). Now, the view update is centrally handled by the EventMultiplexer (which also knows the LayerManager), I've therefore changed all direct calls to View::updateScreen() to EventMultiplexer::updateScreenContent()
2005/02/17 23:56:50 thb 1.3.6.5: #i42499# Made de-spriting of shape effects happen in new Activity::dequeued() method; removed Activity::end() method; fixed calculation of XSlideShow::update() wait interval; slightly modified pres time handling, pres time is now held during _all_ queue processing, including EventQueue (generated funny bounce and break effects, because delayed activities got out of sync); clarified documentation
2005/02/16 11:17:40 fs 1.3.6.4: #i42558# drafts.com.sun.star.drawing/rendering/geometry moved to com.sun.star.*
2005/02/07 01:05:35 thb 1.3.6.3: #i38960# Slight adaptions for new timer handling: event and activities queue now share a timer, such that e.g. a hold on this timer affects the other queue, too; slight reworks to slidechangebase, now creating the slide bitmap(s) on start(), too.
2005/02/02 22:46:57 dbo 1.3.6.2: #i37777#
- timing changes for activities queue
- minor fixes
Issue number:
Submitted by:
Reviewed by:
2005/01/30 16:00:55 dbo 1.3.6.1: #i37777#
- using single presentation time base
- activities queue detects and sets timing lag (calcTimeLag())
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:40:32 +00:00
|
|
|
::boost::mem_fn( &Activity::dequeued ) );
|
INTEGRATION: CWS presfixes12 (1.9.12); FILE MERGED
2007/03/05 13:47:05 thb 1.9.12.3: #i37778# Removed Activity::needsScreenUpdate() method - this is now handled by notifying ScreenUpdater explicitely; reorg of SlideShowImpl members, to align lifetime with mutual references; fixed (hopefully) last repaint issues with new LayerManager; added more tests
2007/02/25 01:10:23 thb 1.9.12.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/01/29 14:01:51 thb 1.9.12.1: Issue number: #i37778#
Larger slideshow refactoring. Wrote design and coding style manifest,
and adapted the code to actually conform to this. In detail:
- cleaned up ownership/disposable/weak_ptr story. removed hacks and
explicit Disposable implementations, where workaround were available
- removed object mutices, where superfluous
- reworked EventMultiplexer (using templatized listener class now), added
more events. EventMultiplexer now serves as a true blackboard
- reworked directory structure: disjunct parts are now physically separated
into directories, instantiation happens via factories & abstract interfaces
- added CursorManager, to make setting mouse cursor less hackish
- reworked DrawShape, to implement SeparateListener pattern
- reworked IntrinsicAnimationActivity, to avoid cyclic references
- modified hyperlink & shape cursor handling to communicate via
EventMultiplexer
- renamed & cleaned up files (presentation.cxx now named slideshowimpl.cxx,
etc.)
- added first version of the z-order fix to layer/layermanager
- cleaned up include guards and include syntax
2007-07-17 13:33:38 +00:00
|
|
|
maDequeuedActivities.clear();
|
2004-03-18 09:44:39 +00:00
|
|
|
}
|
|
|
|
|
2006-02-09 13:47:39 +00:00
|
|
|
bool ActivitiesQueue::isEmpty() const
|
2004-03-18 09:44:39 +00:00
|
|
|
{
|
|
|
|
return maCurrentActivitiesWaiting.empty() && maCurrentActivitiesReinsert.empty();
|
|
|
|
}
|
|
|
|
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
void ActivitiesQueue::clear()
|
|
|
|
{
|
2005-03-30 06:51:18 +00:00
|
|
|
// dequeue all entries:
|
|
|
|
std::for_each( maCurrentActivitiesWaiting.begin(),
|
|
|
|
maCurrentActivitiesWaiting.end(),
|
|
|
|
boost::mem_fn( &Activity::dequeued ) );
|
|
|
|
ActivityQueue().swap( maCurrentActivitiesWaiting );
|
|
|
|
|
|
|
|
std::for_each( maCurrentActivitiesReinsert.begin(),
|
|
|
|
maCurrentActivitiesReinsert.end(),
|
|
|
|
boost::mem_fn( &Activity::dequeued ) );
|
|
|
|
ActivityQueue().swap( maCurrentActivitiesReinsert );
|
INTEGRATION: CWS presentationengine01 (1.2.2); FILE MERGED
2004/11/01 22:28:42 thb 1.2.2.14: #110496# Various fixes: Added true shape bound functionality (to limit e.g. sprite size to area actually painted into); Added explicit check in ActivitiesQueue, whether the LayerManager has any pending updates; Factored out a generic lerp from ActivitiesFactory; Improved docs; Performance optimizations: added profiling traces
2004/10/08 20:08:14 thb 1.2.2.13: #i34997# Fixed several node state inconsistencies, which led to start/end activities not correctly updating the shapes; added proper updating behaviour to LayerManager (several display-changing cases were missing); fixed SLIDEWIPE for shape transitions; improved docs and structure slightly
2004/09/12 21:03:38 thb 1.2.2.12: #110496# Now painting views black, intially. The slide now has an explicit shape, which, if necessary, paints the page background in white. Furthermore, slide transitions now handle the case correctly, when the leaving slide is invalid
2004/08/27 18:54:29 thb 1.2.2.11: #110496# Implemented slide transitions, fixed some minor sd integration probs (repaints, updateScreen
2004/08/26 12:33:52 thb 1.2.2.10: #110496# Fixed the problem that a slide's LayerManager stayed registered at the ActivitiesQueue; work-arounded various basegfx clipper bugs; fixed the problem that the SlideChanger painted repeatedly into its sprites
2004/08/19 00:17:16 thb 1.2.2.9: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw
2004/08/09 11:50:05 thb 1.2.2.8: #i10000# Fixed various const-incorrectnesses (made the stuff compile under Linux and Solaris)
2004/08/01 20:08:11 thb 1.2.2.7: #110496# Changed slideshow API to match the needs of sd more closely
2004/07/26 14:10:08 thb 1.2.2.6: #i10000# Madebind and mem_fn build under Solaris
2004/07/22 19:41:56 thb 1.2.2.5: #110496# Slideshow milestone, all smil attributes implemented, effects basically working, UI events basically working, text iterations working
2004/05/27 20:51:30 thb 1.2.2.4: #110496#
Added classification code to all TODO/HACK/FIXME comments.
There are four categories:
- code quality (C)
- performance (P)
- missing functionality (F)
- and missing/incomplete error handling (E)
Furthermore, every category has a severity number between
1 and 3 associated, where 1 is lowest and 3 highest
severity
2004/05/27 15:04:59 thb 1.2.2.3: Initial revision
2004/05/23 08:22:35 thb 1.2.2.2: #110496# First working version with SMIL support (basic effects only
2004/04/05 16:06:00 thb 1.2.2.1: Resync with canvas01 changes
2004-11-26 17:45:21 +00:00
|
|
|
}
|
2004-03-18 09:44:39 +00:00
|
|
|
}
|
|
|
|
}
|
2010-10-12 15:51:52 +02:00
|
|
|
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|