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 .
|
|
|
|
*/
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2006-09-17 07:41:26 +00:00
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
#include <canvas/debug.hxx>
|
2008-06-24 11:14:33 +00:00
|
|
|
#include <tools/diagnose_ex.h>
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
#include <canvas/canvastools.hxx>
|
2006-12-13 14:45:24 +00:00
|
|
|
#include <basegfx/numeric/ftools.hxx>
|
|
|
|
#include <basegfx/polygon/b2dpolygontools.hxx>
|
|
|
|
#include <basegfx/polygon/b2dpolypolygontools.hxx>
|
2009-09-22 18:14:05 +02:00
|
|
|
#include <basegfx/matrix/b2dhommatrixtools.hxx>
|
2006-12-13 14:45:24 +00:00
|
|
|
#include <cppcanvas/basegfxfactory.hxx>
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
#include "slidechangebase.hxx"
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
#include "tools.hxx"
|
2006-12-13 14:45:24 +00:00
|
|
|
|
|
|
|
#include <boost/bind.hpp>
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
#include <algorithm>
|
|
|
|
|
|
|
|
using namespace com::sun::star;
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
namespace slideshow {
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
namespace internal {
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
SlideChangeBase::SlideChangeBase( boost::optional<SlideSharedPtr> const & leavingSlide,
|
|
|
|
const SlideSharedPtr& pEnteringSlide,
|
|
|
|
const SoundPlayerSharedPtr& pSoundPlayer,
|
|
|
|
const UnoViewContainer& rViewContainer,
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
ScreenUpdater& rScreenUpdater,
|
2006-12-13 14:45:24 +00:00
|
|
|
EventMultiplexer& rEventMultiplexer,
|
|
|
|
bool bCreateLeavingSprites,
|
|
|
|
bool bCreateEnteringSprites ) :
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
mpSoundPlayer( pSoundPlayer ),
|
2006-12-13 14:45:24 +00:00
|
|
|
mrEventMultiplexer(rEventMultiplexer),
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
mrScreenUpdater(rScreenUpdater),
|
|
|
|
maLeavingSlide( leavingSlide ),
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
mpEnteringSlide( pEnteringSlide ),
|
2006-12-13 14:45:24 +00:00
|
|
|
maViewData(),
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
mrViewContainer(rViewContainer),
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
mbCreateLeavingSprites(bCreateLeavingSprites),
|
|
|
|
mbCreateEnteringSprites(bCreateEnteringSprites),
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
mbSpritesVisible(false),
|
|
|
|
mbFinished(false),
|
|
|
|
mbPrefetched(false)
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
{
|
2008-06-24 11:14:33 +00:00
|
|
|
ENSURE_OR_THROW(
|
2006-12-13 14:45:24 +00:00
|
|
|
pEnteringSlide,
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
"SlideChangeBase::SlideChangeBase(): Invalid entering slide!" );
|
|
|
|
}
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
SlideBitmapSharedPtr SlideChangeBase::getLeavingBitmap( const ViewEntry& rViewEntry ) const
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
{
|
2006-12-13 14:45:24 +00:00
|
|
|
if( !rViewEntry.mpLeavingBitmap )
|
|
|
|
rViewEntry.mpLeavingBitmap = createBitmap(rViewEntry.mpView,
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
maLeavingSlide);
|
2006-12-13 14:45:24 +00:00
|
|
|
|
|
|
|
return rViewEntry.mpLeavingBitmap;
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
}
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
SlideBitmapSharedPtr SlideChangeBase::getEnteringBitmap( const ViewEntry& rViewEntry ) const
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
{
|
2006-12-13 14:45:24 +00:00
|
|
|
if( !rViewEntry.mpEnteringBitmap )
|
|
|
|
rViewEntry.mpEnteringBitmap = createBitmap( rViewEntry.mpView,
|
|
|
|
boost::optional<SlideSharedPtr>(mpEnteringSlide) );
|
|
|
|
|
|
|
|
return rViewEntry.mpEnteringBitmap;
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
}
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
SlideBitmapSharedPtr SlideChangeBase::createBitmap( const UnoViewSharedPtr& rView,
|
|
|
|
const boost::optional<SlideSharedPtr>& rSlide ) const
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
{
|
|
|
|
SlideBitmapSharedPtr pRet;
|
2006-12-13 14:45:24 +00:00
|
|
|
if( !rSlide )
|
|
|
|
return pRet;
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
SlideSharedPtr const & pSlide = *rSlide;
|
|
|
|
if( !pSlide )
|
|
|
|
{
|
|
|
|
// TODO(P3): No need to generate a bitmap here. This only made
|
|
|
|
// the code more uniform. Faster would be to simply clear the
|
|
|
|
// sprite to black.
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
// create empty, black-filled bitmap
|
|
|
|
const basegfx::B2ISize slideSizePixel(
|
2012-07-03 08:53:24 +02:00
|
|
|
getSlideSizePixel( basegfx::B2DSize( mpEnteringSlide->getSlideSize() ),
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
rView ));
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
cppcanvas::CanvasSharedPtr pCanvas( rView->getCanvas() );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
// create a bitmap of appropriate size
|
|
|
|
cppcanvas::BitmapSharedPtr pBitmap(
|
|
|
|
cppcanvas::BaseGfxFactory::getInstance().createBitmap(
|
|
|
|
pCanvas,
|
|
|
|
slideSizePixel ) );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2008-06-24 11:14:33 +00:00
|
|
|
ENSURE_OR_THROW(
|
2006-12-13 14:45:24 +00:00
|
|
|
pBitmap,
|
|
|
|
"SlideChangeBase::createBitmap(): Cannot create page bitmap" );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
cppcanvas::BitmapCanvasSharedPtr pBitmapCanvas(
|
|
|
|
pBitmap->getBitmapCanvas() );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2008-06-24 11:14:33 +00:00
|
|
|
ENSURE_OR_THROW( pBitmapCanvas,
|
2006-12-13 14:45:24 +00:00
|
|
|
"SlideChangeBase::createBitmap(): "
|
|
|
|
"Cannot create page bitmap canvas" );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
// set transformation to identitiy (->device pixel)
|
|
|
|
pBitmapCanvas->setTransformation( ::basegfx::B2DHomMatrix() );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
// clear bitmap to black
|
|
|
|
fillRect( pBitmapCanvas,
|
|
|
|
::basegfx::B2DRectangle( 0.0, 0.0,
|
|
|
|
slideSizePixel.getX(),
|
|
|
|
slideSizePixel.getY() ),
|
|
|
|
0x000000FFU );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
pRet.reset( new SlideBitmap( pBitmap ));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
pRet = pSlide->getCurrentSlideBitmap( rView );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
}
|
2006-12-13 14:45:24 +00:00
|
|
|
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
return pRet;
|
|
|
|
}
|
|
|
|
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
::basegfx::B2ISize SlideChangeBase::getEnteringSlideSizePixel( const UnoViewSharedPtr& pView ) const
|
|
|
|
{
|
2012-07-03 08:53:24 +02:00
|
|
|
return getSlideSizePixel( basegfx::B2DSize( mpEnteringSlide->getSlideSize() ),
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
pView );
|
|
|
|
}
|
|
|
|
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
void SlideChangeBase::renderBitmap(
|
|
|
|
SlideBitmapSharedPtr const & pSlideBitmap,
|
|
|
|
cppcanvas::CanvasSharedPtr const & pCanvas )
|
|
|
|
{
|
2006-12-13 14:45:24 +00:00
|
|
|
if( pSlideBitmap && pCanvas )
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
{
|
|
|
|
// need to render without any transformation (we
|
|
|
|
// assume device units):
|
|
|
|
const basegfx::B2DHomMatrix viewTransform(
|
|
|
|
pCanvas->getTransformation() );
|
|
|
|
const basegfx::B2DPoint pageOrigin(
|
|
|
|
viewTransform * basegfx::B2DPoint() );
|
|
|
|
const cppcanvas::CanvasSharedPtr pDevicePixelCanvas(
|
|
|
|
pCanvas->clone() );
|
2009-09-22 18:14:05 +02:00
|
|
|
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
// render at output position, don't modify bitmap object (no move!):
|
2009-09-22 18:14:05 +02:00
|
|
|
const basegfx::B2DHomMatrix transform(basegfx::tools::createTranslateB2DHomMatrix(
|
|
|
|
pageOrigin.getX(), pageOrigin.getY()));
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
|
|
|
pDevicePixelCanvas->setTransformation( transform );
|
|
|
|
pSlideBitmap->draw( pDevicePixelCanvas );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
void SlideChangeBase::prefetch( const AnimatableShapeSharedPtr&,
|
|
|
|
const ShapeAttributeLayerSharedPtr& )
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
{
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
// we're a one-shot activity, and already finished
|
|
|
|
if( mbFinished || mbPrefetched )
|
|
|
|
return;
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
// register ourselves for view change events
|
|
|
|
mrEventMultiplexer.addViewHandler( shared_from_this() );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
// init views and create slide bitmaps
|
|
|
|
std::for_each( mrViewContainer.begin(),
|
|
|
|
mrViewContainer.end(),
|
|
|
|
boost::bind( &SlideChangeBase::viewAdded,
|
|
|
|
this,
|
|
|
|
_1 ));
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
mbPrefetched = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SlideChangeBase::start( const AnimatableShapeSharedPtr& rShape,
|
|
|
|
const ShapeAttributeLayerSharedPtr& rLayer )
|
|
|
|
{
|
|
|
|
// we're a one-shot activity, and already finished
|
|
|
|
if( mbFinished )
|
|
|
|
return;
|
|
|
|
|
|
|
|
prefetch(rShape,rLayer); // no-op, if already done
|
|
|
|
|
2012-08-14 14:44:18 +02:00
|
|
|
// get the subclasses a chance to do any specific initialization before run
|
|
|
|
for ( ViewsVecT::const_iterator aCurr( beginViews() ), aEnd( endViews() ); aCurr != aEnd; ++aCurr )
|
|
|
|
prepareForRun( *aCurr, aCurr->mpView->getCanvas() );
|
|
|
|
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
// start accompanying sound effect, if any
|
2006-12-13 14:45:24 +00:00
|
|
|
if( mpSoundPlayer )
|
|
|
|
{
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
mpSoundPlayer->startPlayback();
|
2005-10-11 07:46:00 +00:00
|
|
|
// xxx todo: for now, presentation.cxx takes care about the slide
|
|
|
|
// #i50492# transition sound object, so just release it here
|
|
|
|
mpSoundPlayer.reset();
|
|
|
|
}
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
}
|
|
|
|
|
2005-10-11 07:46:00 +00:00
|
|
|
void SlideChangeBase::end()
|
|
|
|
{
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
// we're a one-shot activity, and already finished
|
|
|
|
if( mbFinished )
|
|
|
|
return;
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
try
|
|
|
|
{
|
|
|
|
// draw fully entered bitmap:
|
|
|
|
ViewsVecT::const_iterator aCurr( beginViews() );
|
|
|
|
const ViewsVecT::const_iterator aEnd( endViews() );
|
|
|
|
while( aCurr != aEnd )
|
|
|
|
{
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
// fully clear view content to background color
|
|
|
|
aCurr->mpView->clearAll();
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
const SlideBitmapSharedPtr pSlideBitmap( getEnteringBitmap( *aCurr ));
|
|
|
|
pSlideBitmap->clip( basegfx::B2DPolyPolygon() /* no clipping */ );
|
|
|
|
renderBitmap( pSlideBitmap,
|
|
|
|
aCurr->mpView->getCanvas() );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
++aCurr;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch( uno::Exception& )
|
|
|
|
{
|
|
|
|
// make sure releasing below happens
|
|
|
|
}
|
|
|
|
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
// swap changes to screen
|
|
|
|
mrScreenUpdater.notifyUpdate();
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
// make object dysfunctional
|
|
|
|
mbFinished = true;
|
2006-12-13 14:45:24 +00:00
|
|
|
ViewsVecT().swap(maViewData);
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
maLeavingSlide.reset();
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
mpEnteringSlide.reset();
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
|
|
|
|
// sprites have been binned above
|
|
|
|
mbSpritesVisible = false;
|
|
|
|
|
|
|
|
// remove also from event multiplexer, we're dead anyway
|
|
|
|
mrEventMultiplexer.removeViewHandler( shared_from_this() );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool SlideChangeBase::operator()( double nValue )
|
|
|
|
{
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
if( mbFinished )
|
2006-12-13 14:45:24 +00:00
|
|
|
return false;
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
const std::size_t nEntries( maViewData.size() );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
bool bSpritesVisible( mbSpritesVisible );
|
|
|
|
|
|
|
|
for( ::std::size_t i=0; i<nEntries; ++i )
|
|
|
|
{
|
|
|
|
// calc sprite offsets. The enter/leaving bitmaps are only
|
|
|
|
// as large as the actual slides. For scaled-down
|
|
|
|
// presentations, we have to move the left, top edge of
|
|
|
|
// those bitmaps to the actual position, governed by the
|
|
|
|
// given view transform. The aSpritePosPixel local
|
|
|
|
// variable is already in device coordinate space
|
|
|
|
// (i.e. pixel).
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
ViewEntry& rViewEntry( maViewData[i] );
|
|
|
|
const ::cppcanvas::CanvasSharedPtr& rCanvas( rViewEntry.mpView->getCanvas() );
|
|
|
|
::cppcanvas::CustomSpriteSharedPtr& rInSprite( rViewEntry.mpInSprite );
|
|
|
|
::cppcanvas::CustomSpriteSharedPtr& rOutSprite( rViewEntry.mpOutSprite );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
|
|
|
// TODO(F2): Properly respect clip here.
|
|
|
|
|
|
|
|
// Might have to be transformed, too.
|
|
|
|
const ::basegfx::B2DHomMatrix aViewTransform(
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
rViewEntry.mpView->getTransformation() );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
const ::basegfx::B2DPoint aSpritePosPixel(
|
|
|
|
aViewTransform * ::basegfx::B2DPoint() );
|
|
|
|
|
|
|
|
// move sprite to final output position, in
|
|
|
|
// device coordinates
|
2006-12-13 14:45:24 +00:00
|
|
|
if( rOutSprite )
|
|
|
|
rOutSprite->movePixel( aSpritePosPixel );
|
|
|
|
if( rInSprite )
|
|
|
|
rInSprite->movePixel( aSpritePosPixel );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
if( !mbSpritesVisible )
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
{
|
2006-12-13 14:45:24 +00:00
|
|
|
if( rOutSprite )
|
|
|
|
{
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
// only render once: clipping is done
|
|
|
|
// exclusively with the sprite
|
|
|
|
const ::cppcanvas::CanvasSharedPtr pOutContentCanvas(
|
2006-12-13 14:45:24 +00:00
|
|
|
rOutSprite->getContentCanvas() );
|
|
|
|
if( pOutContentCanvas)
|
|
|
|
{
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
// TODO(Q2): Use basegfx bitmaps here
|
|
|
|
|
|
|
|
// TODO(F1): SlideBitmap is not fully portable
|
|
|
|
// between different canvases!
|
|
|
|
|
|
|
|
// render the content
|
2006-12-13 14:45:24 +00:00
|
|
|
OSL_ASSERT( getLeavingBitmap( rViewEntry ) );
|
|
|
|
if( getLeavingBitmap( rViewEntry ) )
|
|
|
|
getLeavingBitmap( rViewEntry )->draw( pOutContentCanvas );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
if( rInSprite )
|
|
|
|
{
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
// only render once: clipping is done
|
|
|
|
// exclusively with the sprite
|
|
|
|
const ::cppcanvas::CanvasSharedPtr pInContentCanvas(
|
2006-12-13 14:45:24 +00:00
|
|
|
rInSprite->getContentCanvas() );
|
|
|
|
if( pInContentCanvas )
|
|
|
|
{
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
// TODO(Q2): Use basegfx bitmaps here
|
|
|
|
|
|
|
|
// TODO(F1): SlideBitmap is not fully portable
|
|
|
|
// between different canvases!
|
|
|
|
|
|
|
|
// render the content
|
2006-12-13 14:45:24 +00:00
|
|
|
getEnteringBitmap( rViewEntry )->draw( pInContentCanvas );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
if( rOutSprite )
|
|
|
|
performOut( rOutSprite, rViewEntry, rCanvas, nValue );
|
|
|
|
if( rInSprite )
|
|
|
|
performIn( rInSprite, rViewEntry, rCanvas, nValue );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
|
|
|
// finishing deeds for first run.
|
2006-12-13 14:45:24 +00:00
|
|
|
if( !mbSpritesVisible)
|
|
|
|
{
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
// enable sprites:
|
2006-12-13 14:45:24 +00:00
|
|
|
if( rOutSprite )
|
|
|
|
rOutSprite->show();
|
|
|
|
if( rInSprite )
|
|
|
|
rInSprite->show();
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
bSpritesVisible = true;
|
|
|
|
}
|
|
|
|
} // for_each( sprite )
|
|
|
|
|
|
|
|
mbSpritesVisible = bSpritesVisible;
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
mrScreenUpdater.notifyUpdate();
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2012-08-14 14:44:18 +02:00
|
|
|
void SlideChangeBase::prepareForRun(
|
|
|
|
const ViewEntry& /* rViewEntry */,
|
|
|
|
const boost::shared_ptr<cppcanvas::Canvas>& /* rDestinationCanvas */ )
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
void SlideChangeBase::performIn(
|
2006-10-12 13:02:29 +00:00
|
|
|
const cppcanvas::CustomSpriteSharedPtr& /*rSprite*/,
|
2006-12-13 14:45:24 +00:00
|
|
|
const ViewEntry& /*rViewEntry*/,
|
2006-10-12 13:02:29 +00:00
|
|
|
const cppcanvas::CanvasSharedPtr& /*rDestinationCanvas*/,
|
|
|
|
double /*t*/ )
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void SlideChangeBase::performOut(
|
2006-10-12 13:02:29 +00:00
|
|
|
const cppcanvas::CustomSpriteSharedPtr& /*rSprite*/,
|
2006-12-13 14:45:24 +00:00
|
|
|
const ViewEntry& /*rViewEntry*/,
|
2006-10-12 13:02:29 +00:00
|
|
|
const cppcanvas::CanvasSharedPtr& /*rDestinationCanvas*/,
|
|
|
|
double /*t*/ )
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
double SlideChangeBase::getUnderlyingValue() const
|
|
|
|
{
|
|
|
|
return 0.0; // though this should be used in concert with
|
|
|
|
// ActivitiesFactory::createSimpleActivity, better
|
2011-12-01 23:41:42 +02:00
|
|
|
// explicitly name our start value.
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
// Permissible range for operator() above is [0,1]
|
|
|
|
}
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
void SlideChangeBase::viewAdded( const UnoViewSharedPtr& rView )
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
{
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
// we're a one-shot activity, and already finished
|
|
|
|
if( mbFinished )
|
|
|
|
return;
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
maViewData.push_back( ViewEntry(rView) );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
ViewEntry& rEntry( maViewData.back() );
|
|
|
|
getEnteringBitmap( rEntry );
|
|
|
|
getLeavingBitmap( rEntry );
|
|
|
|
addSprites( rEntry );
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
}
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
void SlideChangeBase::viewRemoved( const UnoViewSharedPtr& rView )
|
2005-10-11 07:46:00 +00:00
|
|
|
{
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
// we're a one-shot activity, and already finished
|
|
|
|
if( mbFinished )
|
|
|
|
return;
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
// erase corresponding entry from maViewData
|
|
|
|
maViewData.erase(
|
|
|
|
std::remove_if(
|
|
|
|
maViewData.begin(),
|
|
|
|
maViewData.end(),
|
|
|
|
boost::bind(
|
|
|
|
std::equal_to<UnoViewSharedPtr>(),
|
|
|
|
rView,
|
|
|
|
// select view:
|
|
|
|
boost::bind( &ViewEntry::getView, _1 ))),
|
|
|
|
maViewData.end() );
|
2005-10-11 07:46:00 +00:00
|
|
|
}
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
void SlideChangeBase::viewChanged( const UnoViewSharedPtr& rView )
|
2005-10-11 07:46:00 +00:00
|
|
|
{
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
// we're a one-shot activity, and already finished
|
|
|
|
if( mbFinished )
|
|
|
|
return;
|
|
|
|
|
2006-12-13 14:45:24 +00:00
|
|
|
// find entry corresponding to modified view
|
|
|
|
ViewsVecT::iterator aModifiedEntry(
|
|
|
|
std::find_if(
|
|
|
|
maViewData.begin(),
|
|
|
|
maViewData.end(),
|
|
|
|
boost::bind(
|
|
|
|
std::equal_to<UnoViewSharedPtr>(),
|
|
|
|
rView,
|
|
|
|
// select view:
|
|
|
|
boost::bind( &ViewEntry::getView, _1 ) )));
|
|
|
|
|
|
|
|
OSL_ASSERT( aModifiedEntry != maViewData.end() );
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
if( aModifiedEntry == maViewData.end() )
|
2006-12-13 14:45:24 +00:00
|
|
|
return;
|
|
|
|
|
|
|
|
// clear stale info (both bitmaps and sprites prolly need a
|
|
|
|
// resize)
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
clearViewEntry( *aModifiedEntry );
|
2006-12-13 14:45:24 +00:00
|
|
|
addSprites( *aModifiedEntry );
|
2005-10-11 07:46:00 +00:00
|
|
|
}
|
|
|
|
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
void SlideChangeBase::viewsChanged()
|
|
|
|
{
|
|
|
|
// we're a one-shot activity, and already finished
|
|
|
|
if( mbFinished )
|
|
|
|
return;
|
|
|
|
|
|
|
|
ViewsVecT::iterator aIter( maViewData.begin() );
|
|
|
|
ViewsVecT::iterator const aEnd ( maViewData.end() );
|
|
|
|
while( aIter != aEnd )
|
|
|
|
{
|
|
|
|
// clear stale info (both bitmaps and sprites prolly need a
|
|
|
|
// resize)
|
|
|
|
clearViewEntry( *aIter );
|
|
|
|
addSprites( *aIter );
|
|
|
|
|
|
|
|
++aIter;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
cppcanvas::CustomSpriteSharedPtr SlideChangeBase::createSprite(
|
|
|
|
UnoViewSharedPtr const & pView,
|
|
|
|
basegfx::B2DSize const & rSpriteSize,
|
|
|
|
double nPrio ) const
|
|
|
|
{
|
|
|
|
// TODO(P2): change to bitmapsprite once that's working
|
|
|
|
const cppcanvas::CustomSpriteSharedPtr pSprite(
|
|
|
|
pView->createSprite( rSpriteSize,
|
|
|
|
nPrio ));
|
|
|
|
|
|
|
|
// alpha default is 0.0, which seems to be
|
|
|
|
// a bad idea when viewing content...
|
|
|
|
pSprite->setAlpha( 1.0 );
|
|
|
|
if (mbSpritesVisible)
|
|
|
|
pSprite->show();
|
|
|
|
|
|
|
|
return pSprite;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SlideChangeBase::addSprites( ViewEntry& rEntry )
|
|
|
|
{
|
|
|
|
if( mbCreateLeavingSprites && maLeavingSlide )
|
|
|
|
{
|
|
|
|
// create leaving sprite:
|
|
|
|
const basegfx::B2ISize leavingSlideSizePixel(
|
|
|
|
getLeavingBitmap( rEntry )->getSize() );
|
|
|
|
|
|
|
|
rEntry.mpOutSprite = createSprite( rEntry.mpView,
|
2012-07-03 08:53:24 +02:00
|
|
|
basegfx::B2DSize( leavingSlideSizePixel ),
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
100 );
|
|
|
|
}
|
|
|
|
|
|
|
|
if( mbCreateEnteringSprites )
|
|
|
|
{
|
|
|
|
// create entering sprite:
|
|
|
|
const basegfx::B2ISize enteringSlideSizePixel(
|
2012-07-03 08:53:24 +02:00
|
|
|
getSlideSizePixel( basegfx::B2DSize( mpEnteringSlide->getSlideSize() ),
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
rEntry.mpView ));
|
|
|
|
|
|
|
|
rEntry.mpInSprite = createSprite( rEntry.mpView,
|
2012-07-03 08:53:24 +02:00
|
|
|
basegfx::B2DSize( enteringSlideSizePixel ),
|
INTEGRATION: CWS presfixes12 (1.7.12); FILE MERGED
2007/06/15 20:38:59 thb 1.7.12.8: #i78433# Posting myself an event, to delay-prefetch incoming slide bitmap (follow-up issue for the root cause fix: i78544
2007/05/10 20:32:41 thb 1.7.12.7: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border
2007/05/02 21:37:24 thb 1.7.12.6: #i37778# Changed calls to cppcanvas::Canvas::getTransformation() to ViewLayer::getTransformation() where appropriate (because that's more direct); added initial Slide rendering back in (this time optional)
2007/04/30 07:26:34 thb 1.7.12.5: #i37778# Rendering slide bitmap at the end of a slide transition, instead of during Slide::show(), to avoid temporary display of previous slide after transition sprite vanished.
2007/01/31 14:30:33 thb 1.7.12.4: #i37778# removed View::isContentDestroyed() and mbContentValid distinction on View::clear() - clear() now always clears view the hard way; added explicit screen update to CombTransition, which bypasses SlideChangeBase functionality
2007/01/31 12:29:06 thb 1.7.12.3: #i37778# Slide animations now notify screen updates themselves
2007/01/31 11:25:17 thb 1.7.12.2: #i37778# Added prefetch to Animation interface (to facilitate prefetching - nice for slide transitions, which otherwise lag noticeably while generating the slide bitmap); brought tests up to par, re-enabling unit tests and demo show
2007/01/29 14:02:17 thb 1.7.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:59:50 +00:00
|
|
|
101 );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void SlideChangeBase::clearViewEntry( ViewEntry& rEntry )
|
|
|
|
{
|
|
|
|
// clear stale info (both bitmaps and sprites prolly need a
|
|
|
|
// resize)
|
|
|
|
rEntry.mpEnteringBitmap.reset();
|
|
|
|
rEntry.mpLeavingBitmap.reset();
|
|
|
|
rEntry.mpInSprite.reset();
|
|
|
|
rEntry.mpOutSprite.reset();
|
|
|
|
}
|
|
|
|
|
INTEGRATION: CWS presfixes01 (1.1.2); FILE ADDED
2005/02/15 23:51:00 thb 1.1.2.5: #i42440# Moved sprite-growing code to slideshow, some minor issues with size calculations for empty slides (when a 'leaving' slide is needed, but there's no previous one, an empty bitmap is generated)
2005/02/15 12:45:09 thb 1.1.2.4: #i42440# Moved sprite-growing code to slideshow, we already handle the case there for update areas of antialiased shapes; Improved/reformatted documentation; (Hopefully) fixed the problem that sometimes, the first effect preview did not work. The reason there was presumably the clearing of the EventQueue before every slide, and the fact that EventMultiplexer only generated new tick events when it thought ticking was switched off.
2005/02/07 01:05:37 thb 1.1.2.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/01/30 15:54:43 dbo 1.1.2.2: #i39787# correct bitmap dimensions
Issue number:
Submitted by:
Reviewed by:
2005/01/26 11:18:32 dbo 1.1.2.1: #i39787# slide transition revision: recalc bitmaps/sprites in case of view changes
Issue number:
Submitted by:
Reviewed by:
2005-03-10 12:52:21 +00:00
|
|
|
} // namespace internal
|
|
|
|
} // namespace presentation
|
2010-10-12 15:51:52 +02:00
|
|
|
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|