ooo-build r11321 - in trunk: . patches/src680



Author: strba
Date: Fri Jan 18 16:21:14 2008
New Revision: 11321
URL: http://svn.gnome.org/viewvc/ooo-build?rev=11321&view=rev

Log:
extract CWS transogl02 and crossmerge changes that were not upstreamed

Added:
   trunk/patches/src680/cws-transogl02-officecfg.diff
   trunk/patches/src680/cws-transogl02-sd.diff
   trunk/patches/src680/cws-transogl02-slideshow.diff
   trunk/patches/src680/cws-transogl02-vcl.diff
   trunk/patches/src680/transogl-transitions-officecfgs.diff   (contents, props changed)
      - copied, changed from r11320, /trunk/patches/src680/transogl01-officecfg-transitions.diff
   trunk/patches/src680/transogl-transitions-scp2.diff   (contents, props changed)
      - copied, changed from r11320, /trunk/patches/src680/transogl01-scp2.diff
   trunk/patches/src680/transogl-transitions-sd.diff   (contents, props changed)
      - copied, changed from r11320, /trunk/patches/src680/transogl01-sd-transitions.diff
   trunk/patches/src680/transogl-transitions-slideshow.diff   (contents, props changed)
      - copied, changed from r11320, /trunk/patches/src680/transogl01-reflections.diff
Removed:
   trunk/patches/src680/transogl01-build.diff
   trunk/patches/src680/transogl01-config.diff
   trunk/patches/src680/transogl01-officecfg-transitions.diff
   trunk/patches/src680/transogl01-reflections.diff
   trunk/patches/src680/transogl01-scp2.diff
   trunk/patches/src680/transogl01-sd-transitions.diff
   trunk/patches/src680/transogl01-slideshow-smooth.diff
   trunk/patches/src680/transogl01-transitions-enable.diff
   trunk/patches/src680/transogl01-transitions.diff
   trunk/patches/src680/transogl01-vcl-syschild-show.diff
Modified:
   trunk/ChangeLog
   trunk/patches/src680/apply

Modified: trunk/patches/src680/apply
==============================================================================
--- trunk/patches/src680/apply	(original)
+++ trunk/patches/src680/apply	Fri Jan 18 16:21:14 2008
@@ -866,9 +866,6 @@
 # even when it is built with JDK 1.5
 #FIXME src680: build-java-target.diff, pmladek
 
-# fix build without STLport
-transogl-Primitive-not-explicit.diff, i#84017
-
 # don't include asm/sigcontext.h, see Debian Bug #442418
 buildfix-sal-system.h-no-asm-sigcontext.h.diff
 
@@ -1538,16 +1535,14 @@
 cairo-canvas-win32.diff, i#70519, n#300398, tml
 
 [ OpenGLTransitions ]
-transogl01-config.diff
-transogl01-build.diff
-transogl01-transitions.diff
-transogl01-transitions-enable.diff
-transogl01-reflections.diff
-transogl01-sd-transitions.diff
-transogl01-officecfg-transitions.diff
-transogl01-slideshow-smooth.diff
-transogl01-vcl-syschild-show.diff
-transogl01-scp2.diff
+cws-transogl02-officecfg.diff
+cws-transogl02-sd.diff
+cws-transogl02-slideshow.diff
+cws-transogl02-vcl.diff
+transogl-transitions-slideshow.diff
+transogl-transitions-sd.diff
+transogl-transitions-officecfgs.diff
+transogl-transitions-scp2.diff
 
 [ Experimental ]
 # sal_uInt32 -> sal_uIntPtr for events on some places

Added: trunk/patches/src680/cws-transogl02-officecfg.diff
==============================================================================
--- (empty file)
+++ trunk/patches/src680/cws-transogl02-officecfg.diff	Fri Jan 18 16:21:14 2008
@@ -0,0 +1,38 @@
+--- officecfg/registry/schema/org/openoffice/Office/Impress.xcs	17 Jul 2007 14:28:24 -0000	1.29
++++ officecfg/registry/schema/org/openoffice/Office/Impress.xcs	16 Jan 2008 16:47:50 -0000	1.29.124.3
+@@ -445,7 +444,34 @@
+ 				</info>
+ 				<value>true</value>
+ 			</prop>
+-
++			<prop oor:name="TransitionFiles" oor:type="oor:string-list">
++				<!-- OldPath: -->
++				<!-- OldLocation: -->
++				<!-- UIHints: List of files containing transition effects -->
++				<info>
++					<author>THB</author>
++					<desc>Contains a list of odf files, that define
++					slideshow transitions. Values are put through
++					macro expansion, so, vnd.sun.star.expand prefix
++					is allowed. </desc>
++					<label>List of files containing transition effects</label>
++				</info>
++                <value oor:separator=";">vnd.sun.star.expand:$ORIGIN/../share/config/soffice.cfg/simpress/transitions.xml</value>
++			</prop>
++			<prop oor:name="EffectFiles" oor:type="oor:string-list">
++				<!-- OldPath: -->
++				<!-- OldLocation: -->
++				<!-- UIHints: List of files containing object effects -->
++				<info>
++					<author>THB</author>
++					<desc>Contains a list of odf files, that define
++					slideshow shape effects. Values are put through
++					macro expansion, so, vnd.sun.star.expand prefix
++					is allowed.</desc>
++					<label>List of files containing object effects</label>
++				</info>
++                <value oor:separator=";">vnd.sun.star.expand:$ORIGIN/../share/config/soffice.cfg/simpress/effects.xml</value>
++			</prop>
+ 			<prop oor:name="PreviewNewEffects" oor:type="xs:boolean">
+ 				<!-- OldPath: -->
+ 				<!-- OldLocation: -->

Added: trunk/patches/src680/cws-transogl02-sd.diff
==============================================================================
--- (empty file)
+++ trunk/patches/src680/cws-transogl02-sd.diff	Fri Jan 18 16:21:14 2008
@@ -0,0 +1,369 @@
+--- sd/inc/TransitionPreset.hxx	9 Sep 2005 02:52:23 -0000	1.3
++++ sd/inc/TransitionPreset.hxx	7 Jan 2008 20:35:53 -0000	1.3.568.1
+@@ -49,6 +49,7 @@
+ #endif
+ 
+ #include <list>
++#include <hash_map>
+ 
+ namespace com { namespace sun { namespace star { 
+ 	namespace animations { class XAnimationNode; }
+@@ -56,12 +57,14 @@ namespace com { namespace sun { namespac
+ } } }
+ 
+ class SdPage;
++class String;
+ 
+ namespace sd {
+ 
+ class TransitionPreset;
+ typedef boost::shared_ptr< TransitionPreset > TransitionPresetPtr;
+ typedef std::list< TransitionPresetPtr > TransitionPresetList;
++typedef std::hash_map< rtl::OUString, rtl::OUString, comphelper::UStringHash, comphelper::UStringEqual > UStringMap;
+ 
+ class TransitionPreset
+ {
+@@ -90,6 +93,11 @@ private:
+ 	rtl::OUString maUIName;
+ 
+ 	static sd::TransitionPresetList* mpTransitionPresetList;
++
++    static bool importTransitionsFile( TransitionPresetList& rList,
++                                       ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
++                                       UStringMap& rTransitionNameMape,
++                                       String aFilaname );
+ };
+ 
+ }
+--- sd/source/core/CustomAnimationPreset.cxx	12 Dec 2006 16:29:29 -0000	1.5
++++ sd/source/core/CustomAnimationPreset.cxx	16 Jan 2008 00:01:03 -0000	1.5.242.2
+@@ -39,6 +39,9 @@
+ #ifndef _COM_SUN_STAR_UTIL_XCLONEABLE_HPP_
+ #include <com/sun/star/util/XCloneable.hpp>
+ #endif
++#ifndef _COM_SUN_STAR_UTIL_XMACROEXPANDER_HPP_
++#include <com/sun/star/util/XMacroExpander.hpp>
++#endif
+ #ifndef _COM_SUN_STAR_ANIMATIONS_XANIMATIONNODESUPPLIER_HPP_
+ #include <com/sun/star/animations/XAnimationNodeSupplier.hpp>
+ #endif
+@@ -57,6 +60,9 @@
+ #ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_
+ #include <com/sun/star/beans/PropertyValue.hpp>
+ #endif
++#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
++#include <com/sun/star/beans/XPropertySet.hpp>
++#endif
+ #ifndef _COM_SUN_STAR_PRESENTATION_EFFECTPRESETCLASS_HPP_
+ #include <com/sun/star/presentation/EffectPresetClass.hpp>
+ #endif
+@@ -85,6 +91,7 @@
+ #endif
+ 
+ #include <tools/debug.hxx>
++#include <rtl/uri.hxx>
+ 
+ #ifndef _SV_SVAPP_HXX
+ #include <vcl/svapp.hxx>
+@@ -375,6 +382,8 @@ Reference< XAnimationNode > implImportEf
+ 	return xRootNode;
+ }
+ 
++#define EXPAND_PROTOCOL "vnd.sun.star.expand:"
++
+ void CustomAnimationPresets::importEffects()
+ {
+ 	try
+@@ -385,12 +394,50 @@ void CustomAnimationPresets::importEffec
+ 		if( !xServiceFactory.is() )
+ 			return;
+ 
+-		INetURLObject	aURL( SvtPathOptions().GetConfigPath() );
+-		aURL.Append( String( RTL_CONSTASCII_USTRINGPARAM("soffice.cfg") ) );
+-		aURL.Append( String( RTL_CONSTASCII_USTRINGPARAM("simpress" ) ) );
+-		aURL.Append( String( RTL_CONSTASCII_USTRINGPARAM("effects.xml" ) ) );
+-		const OUString aPath( aURL.GetMainURL( INetURLObject::NO_DECODE ) );
+-		mxRootNode = implImportEffects( xServiceFactory, aPath );
++        uno::Reference< beans::XPropertySet > xProps( xServiceFactory, UNO_QUERY );
++        uno::Reference< uno::XComponentContext > xContext;
++        xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultContext" ))) >>= xContext;
++
++        uno::Reference< util::XMacroExpander > xMacroExpander;
++        if( xContext.is() )
++            xMacroExpander.set( xContext->getValueByName( 
++                                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/singletons/com.sun.star.util.theMacroExpander"))),
++                                UNO_QUERY );
++
++		Reference< XMultiServiceFactory > xConfigProvider(
++			xServiceFactory->createInstance( 
++				OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.configuration.ConfigurationProvider" ))),
++			UNO_QUERY_THROW );
++
++        // read path to transition effects files from config
++        Any propValue = uno::makeAny( 
++            beans::PropertyValue(
++				OUString( RTL_CONSTASCII_USTRINGPARAM( "nodepath" )), -1,
++                uno::makeAny( OUString( RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Office.Impress/Misc") )),
++                beans::PropertyState_DIRECT_VALUE ) );
++
++        Reference<container::XNameAccess> xNameAccess(
++            xConfigProvider->createInstanceWithArguments(
++                OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.configuration.ConfigurationAccess")),
++                Sequence<Any>( &propValue, 1 ) ), UNO_QUERY_THROW );
++        uno::Sequence< rtl::OUString > aFiles;
++        xNameAccess->getByName(
++            OUString( RTL_CONSTASCII_USTRINGPARAM("EffectFiles"))) >>= aFiles;
++
++        for( sal_Int32 i=0; i<aFiles.getLength(); ++i )
++        {
++            rtl::OUString aURL = aFiles[i];
++            if( aURL.compareToAscii( RTL_CONSTASCII_STRINGPARAM( EXPAND_PROTOCOL )) == 0 )
++            {
++                // cut protocol
++                rtl::OUString aMacro( aURL.copy( sizeof ( EXPAND_PROTOCOL ) -1 ) );
++                // decode uric class chars
++                aMacro = rtl::Uri::decode( aMacro, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8 );
++                // expand macro string
++                aURL = xMacroExpander->expandMacros( aMacro );
++            }
++
++            mxRootNode = implImportEffects( xServiceFactory, aURL );
+ 
+ 		if( mxRootNode.is() )
+ 		{
+@@ -419,6 +466,7 @@ void CustomAnimationPresets::importEffec
+ 			}
+ 		}
+ 	}
++    }
+ 	catch( xml::sax::SAXParseException& r )
+ 	{
+         (void)r;
+--- sd/source/core/TransitionPreset.cxx	23 Nov 2006 12:12:54 -0000	1.5
++++ sd/source/core/TransitionPreset.cxx	16 Jan 2008 00:01:03 -0000	1.5.252.3
+@@ -45,9 +45,18 @@
+ #ifndef _COM_SUN_STAR_CONTAINER_XENUMERATIONACCESS_HPP_
+ #include <com/sun/star/container/XEnumerationAccess.hpp>
+ #endif
++#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_
++#include <com/sun/star/container/XNameAccess.hpp>
++#endif
+ #ifndef _COM_SUN_STAR_BEANS_NAMEDVALUE_HPP_
+ #include <com/sun/star/beans/NamedValue.hpp>
+ #endif
++#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
++#include <com/sun/star/beans/XPropertySet.hpp>
++#endif
++#ifndef _COM_SUN_STAR_UTIL_XMACROEXPANDER_HPP_
++#include <com/sun/star/util/XMacroExpander.hpp>
++#endif
+ #ifndef _COM_SUN_STAR_ANIMATIONS_ANIMATIONNODETYPE_HPP_
+ #include <com/sun/star/animations/AnimationNodeType.hpp>
+ #endif
+@@ -79,6 +88,7 @@
+ #include <tools/stream.hxx>
+ #endif
+ 
++#include <rtl/uri.hxx>
+ #include <tools/debug.hxx>
+ 
+ #ifndef _SD_CUSTOMANIMATIONPRESET_HXX
+@@ -92,7 +102,6 @@
+ #include <algorithm>
+ 
+ #include "sdpage.hxx"
+-#include <hash_map>
+ 
+ using namespace ::vos;
+ using namespace ::com::sun::star;
+@@ -112,7 +121,6 @@ using ::com::sun::star::beans::NamedValu
+ 
+ namespace sd {
+ 
+-typedef std::hash_map<rtl::OUString, rtl::OUString, comphelper::UStringHash, comphelper::UStringEqual> UStringMap;
+ extern Reference< XAnimationNode > implImportEffects( const Reference< XMultiServiceFactory >& xConfigProvider, const OUString& rPath );
+ extern void implImportLabels( const Reference< XMultiServiceFactory >& xConfigProvider, const OUString& rNodePath, UStringMap& rStringMap );
+ 
+@@ -142,34 +150,19 @@ TransitionPreset::TransitionPreset( cons
+ 	mnFadeColor = xTransition->getFadeColor();
+ }
+ 
+-bool TransitionPreset::importTransitionPresetList( TransitionPresetList& rList )
++bool TransitionPreset::importTransitionsFile( TransitionPresetList& rList,
++                                              Reference< XMultiServiceFactory >& xServiceFactory,
++                                              UStringMap& rTransitionNameMape,
++                                              String aURL )
+ {
+-	try
+-	{
+-		// Get service factory
+-		Reference< XMultiServiceFactory > xServiceFactory( comphelper::getProcessServiceFactory() );
+-		DBG_ASSERT( xServiceFactory.is(), "sd::CustomAnimationPresets::import(), got no service manager" );
+-		if( !xServiceFactory.is() )
+-			return false;
+-
+-		// import ui strings
+-		Reference< XMultiServiceFactory > xConfigProvider(
+-			xServiceFactory->createInstance( 
+-				OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.configuration.ConfigurationProvider" ))),
+-			UNO_QUERY_THROW );
+-
+-		UStringMap aTransitionNameMape;
+-		const OUString aTransitionPath( RTL_CONSTASCII_USTRINGPARAM( "/org.openoffice.Office.UI.Effects/UserInterface/Transitions" ) );
+-		implImportLabels( xConfigProvider, aTransitionPath, aTransitionNameMape );
+-
+ 		// import transition presets
+-		INetURLObject	aURL( SvtPathOptions().GetConfigPath() );
+-		aURL.Append( String( RTL_CONSTASCII_USTRINGPARAM("soffice.cfg") ) );
+-		aURL.Append( String( RTL_CONSTASCII_USTRINGPARAM("simpress" ) ) );
+-		aURL.Append( String( RTL_CONSTASCII_USTRINGPARAM("transitions.xml" ) ) );
++    Reference< XAnimationNode > xAnimationNode;
+ 
+-		Reference< XEnumerationAccess > xEnumerationAccess( implImportEffects( xServiceFactory, aURL.GetMainURL( INetURLObject::NO_DECODE ) ), UNO_QUERY_THROW );
++    try {
++        xAnimationNode = implImportEffects( xServiceFactory, aURL );
++        Reference< XEnumerationAccess > xEnumerationAccess( xAnimationNode, UNO_QUERY_THROW );
+ 		Reference< XEnumeration > xEnumeration( xEnumerationAccess->createEnumeration(), UNO_QUERY_THROW );
++
+ 		while( xEnumeration->hasMoreElements() )
+ 		{
+ 			Reference< XAnimationNode > xChildNode( xEnumeration->nextElement(), UNO_QUERY_THROW );
+@@ -182,8 +175,8 @@ bool TransitionPreset::importTransitionP
+ 				OUString aPresetId( pPreset->getPresetId() );
+ 				if( aPresetId.getLength() )
+ 				{
+-					UStringMap::const_iterator aIter( aTransitionNameMape.find( aPresetId ) );
+-					if( aIter != aTransitionNameMape.end() )
++                    UStringMap::const_iterator aIter( rTransitionNameMape.find( aPresetId ) );
++                    if( aIter != rTransitionNameMape.end() )
+ 						pPreset->maUIName = (*aIter).second;
+ 
+ 					// add it
+@@ -196,16 +189,90 @@ bool TransitionPreset::importTransitionP
+ 				break;
+ 			}
+ 		}
++    } catch( Exception& ) {
++        return false;
++    }
+ 
+ 		return true;
+ 	}
++
++#define EXPAND_PROTOCOL "vnd.sun.star.expand:"
++
++bool TransitionPreset::importTransitionPresetList( TransitionPresetList& rList )
++{
++    bool bRet = false;
++
++	try
++	{
++		// Get service factory
++		Reference< XMultiServiceFactory > xServiceFactory( comphelper::getProcessServiceFactory() );
++		DBG_ASSERT( xServiceFactory.is(), "sd::CustomAnimationPresets::import(), got no service manager" );
++		if( !xServiceFactory.is() )
++			return false;
++
++        uno::Reference< beans::XPropertySet > xProps( xServiceFactory, UNO_QUERY );
++        uno::Reference< uno::XComponentContext > xContext;
++        xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultContext" ))) >>= xContext;
++
++        uno::Reference< util::XMacroExpander > xMacroExpander;
++        if( xContext.is() )
++            xMacroExpander.set( xContext->getValueByName( 
++                                    rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/singletons/com.sun.star.util.theMacroExpander"))),
++                                UNO_QUERY );
++
++		// import ui strings
++		Reference< XMultiServiceFactory > xConfigProvider(
++			xServiceFactory->createInstance( 
++				OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.configuration.ConfigurationProvider" ))),
++			UNO_QUERY_THROW );
++
++		UStringMap aTransitionNameMape;
++		const OUString aTransitionPath( RTL_CONSTASCII_USTRINGPARAM( "/org.openoffice.Office.UI.Effects/UserInterface/Transitions" ) );
++		implImportLabels( xConfigProvider, aTransitionPath, aTransitionNameMape );
++
++        // read path to transition effects files from config
++        Any propValue = uno::makeAny( 
++            beans::PropertyValue(
++                OUString( RTL_CONSTASCII_USTRINGPARAM("nodepath")), -1,
++                uno::makeAny( OUString( RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Office.Impress/Misc"))),
++                beans::PropertyState_DIRECT_VALUE ) );
++
++        Reference<container::XNameAccess> xNameAccess(
++            xConfigProvider->createInstanceWithArguments(
++                OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.configuration.ConfigurationAccess")),
++                Sequence<Any>( &propValue, 1 ) ), UNO_QUERY_THROW );
++        uno::Sequence< rtl::OUString > aFiles;
++        xNameAccess->getByName(
++            OUString( RTL_CONSTASCII_USTRINGPARAM("TransitionFiles"))) >>= aFiles;
++
++        for( sal_Int32 i=0; i<aFiles.getLength(); ++i )
++        {
++            rtl::OUString aURL = aFiles[i];
++            if( aURL.compareToAscii( RTL_CONSTASCII_STRINGPARAM( EXPAND_PROTOCOL )) == 0 )
++            {
++                // cut protocol
++                rtl::OUString aMacro( aURL.copy( sizeof ( EXPAND_PROTOCOL ) -1 ) );
++                // decode uric class chars
++                aMacro = rtl::Uri::decode( aMacro, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8 );
++                // expand macro string
++                aURL = xMacroExpander->expandMacros( aMacro );
++            }
++
++            bRet |= importTransitionsFile( rList, 
++                                           xServiceFactory, 
++                                           aTransitionNameMape, 
++                                           aURL );
++        }
++
++		return bRet;
++	}
+ 	catch( Exception& e )
+ 	{
+ 		(void)e;
+ 		DBG_ERROR( "sd::TransitionPreset::importResources(), Exception cought!" );
+ 	}
+ 
+-	return false;
++	return bRet;
+ }
+ 
+ TransitionPresetList* TransitionPreset::mpTransitionPresetList = 0;
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ sd/xml/transitions-ogl	7 Jan 2008 20:35:54 -0000	1.1.2.1
+@@ -0,0 +1,33 @@
++<?xml version="1.0"?>
++<anim:seq xmlns:office="urn:oasis:names:tc:openoffice:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:openoffice:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:openoffice:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:openoffice:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:openoffice:xmlns:drawing:1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format"; xmlns:xlink="http://www.w3.org/1999/xlink"; xmlns:dc="http://purl.org/dc/elements/1.1/"; xmlns:meta="urn:oasis:names:tc:openoffice:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:openoffice:xmlns:datastyle:1.0" xmlns:pres="urn:oasis:names:tc:openoffice:xmlns:presentation:1.0" xmlns:svg="http://www.w3.org/2000/svg"; xmlns:chart="urn:oasis:names:tc:openoffice:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:openoffice:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML"; xmlns:form="urn:oasis:names:tc:openoffice:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:openoffice:xmlns:script:1.0" xmlns:ooo="http://openoffice.or
 g/2004/office" xmlns:ooow="http://openoffice.org/2004/writer"; xmlns:oooc="http://openoffice.org/2004/calc"; xmlns:dom="http://www.w3.org/2001/xml-events"; xmlns:smil="http://www.w3.org/2001/SMIL20"; xmlns:anim="urn:oasis:names:tc:openoffice:xmlns:animation:1.0" pres:node-type="main-sequence">
++ <anim:par pres:preset-id="tile-flip">
++  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="across"/>
++ </anim:par>
++ <anim:par pres:preset-id="outside-cube">
++  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="cornersOut"/>
++ </anim:par>
++ <anim:par pres:preset-id="revolving-circles">
++  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="circle"/>
++ </anim:par>
++ <anim:par pres:preset-id="turning-helix">
++  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="fanOutHorizontal"/>
++ </anim:par>
++ <anim:par pres:preset-id="inside-cube">
++  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="cornersIn"/>
++ </anim:par>
++ <anim:par pres:preset-id="fall">
++  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="leftToRight"/>
++ </anim:par>
++ <anim:par pres:preset-id="turn-around">
++  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="topToBottom"/>
++ </anim:par>
++ <anim:par pres:preset-id="iris">
++  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="topLeft"/>
++ </anim:par>
++ <anim:par pres:preset-id="turn-down">
++  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="topRight"/>
++ </anim:par>
++ <anim:par pres:preset-id="rochade">
++  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="bottomRight"/>
++ </anim:par>
++ </anim:seq>

Added: trunk/patches/src680/cws-transogl02-slideshow.diff
==============================================================================
--- (empty file)
+++ trunk/patches/src680/cws-transogl02-slideshow.diff	Fri Jan 18 16:21:14 2008
@@ -0,0 +1,675 @@
+--- slideshow/source/engine/slideshowimpl.cxx	9 Nov 2007 10:16:38 -0000	1.6
++++ slideshow/source/engine/slideshowimpl.cxx	16 Jan 2008 10:56:20 -0000	1.6.4.3
+@@ -1448,10 +1448,16 @@ sal_Bool SlideShowImpl::update( double &
+         // hold timer, while processing the queues (ensures
+         // same time for all activities and events)
+         {
+-            comphelper::ScopeGuard const scopeGuard(
++            comphelper::ScopeGuard scopeGuard(
+                 boost::bind( &canvas::tools::ElapsedTime::releaseTimer,
+                              boost::cref(mpPresTimer) ) );
++
++            // no need to hold timer for only one active animation -
++            // it's only meant to keep multiple ones in sync
++            if( maActivitiesQueue.size() > 1 ) 
+             mpPresTimer->holdTimer();
++            else
++                scopeGuard.dismiss(); // we're not holding the timer
+                     
+             // process queues
+             maEventQueue.process();
+cvs diff: Diffing slideshow/source/engine/OGLTrans
+--- slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.cxx	9 Nov 2007 10:17:00 -0000	1.2
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.cxx	14 Jan 2008 20:43:28 -0000	1.2.4.3
+@@ -42,6 +42,9 @@ void OGLTransitionImpl::clear()
+     OverallOperations.clear();
+     maLeavingSlidePrimitives.clear();
+     maEnteringSlidePrimitives.clear();
++    for(unsigned int i(0); i < maSceneObjects.size(); ++i)
++        delete maSceneObjects[i];
++    maSceneObjects.clear();
+ }
+ 
+ OGLTransitionImpl::~OGLTransitionImpl()
+@@ -49,8 +52,28 @@ OGLTransitionImpl::~OGLTransitionImpl()
+     clear();
+ }
+ 
+-void OGLTransitionImpl::display( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex , double SlideWidthScale, double SlideHeightScale)
++void OGLTransitionImpl::prepare()
+ {
++    for(unsigned int i(0); i < maSceneObjects.size(); ++i) {
++        maSceneObjects[i]->prepare();
++    }
++}
++
++void OGLTransitionImpl::finish()
++{
++    for(unsigned int i(0); i < maSceneObjects.size(); ++i) {
++        maSceneObjects[i]->finish();
++    }
++}
++
++void OGLTransitionImpl::display( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex,
++                                 double SlideWidth, double SlideHeight, double DispWidth, double DispHeight )
++{
++    double SlideWidthScale, SlideHeightScale;
++
++    SlideWidthScale = SlideWidth/DispWidth;
++    SlideHeightScale = SlideHeight/DispHeight;
++
+     glPushMatrix();
+     glEnable(GL_TEXTURE_2D);
+     //TODO change to foreach
+@@ -62,16 +85,20 @@ void OGLTransitionImpl::display( double 
+     glBindTexture(GL_TEXTURE_2D, glEnteringSlideTex);
+     for(unsigned int i(0); i < maEnteringSlidePrimitives.size(); ++i)
+         maEnteringSlidePrimitives[i].display(nTime,SlideWidthScale,SlideHeightScale);
++
++    for(unsigned int i(0); i < maSceneObjects.size(); ++i)
++        maSceneObjects[i]->display(nTime, SlideWidth, SlideHeight, DispWidth, DispHeight);
++    
++
+     glPopMatrix();
+ }
+ 
+-void Primitive::display(double nTime, double SlideWidthScale, double SlideHeightScale)
++void Primitive::display(double nTime, double WidthScale, double HeightScale)
+ {
+     glPushMatrix();
+-    glEnable(GL_TEXTURE_2D);
+     for(unsigned int i(0); i < Operations.size(); ++i)
+-        Operations[i]->interpolate( nTime ,SlideWidthScale,SlideHeightScale);
+-    glScaled(SlideWidthScale,SlideHeightScale,1);
++        Operations[i]->interpolate( nTime ,WidthScale,HeightScale);
++    glScaled(WidthScale,HeightScale,1);
+     
+     glEnableClientState( GL_VERTEX_ARRAY );
+     if(!Normals.empty())
+@@ -92,6 +119,60 @@ Primitive::~Primitive()
+         delete Operations[i];
+ }
+ 
++void SceneObject::display(double nTime, double /* SlideWidth */, double /* SlideHeight */, double DispWidth, double DispHeight )
++{
++    for(unsigned int i(0); i < maPrimitives.size(); ++i) {
++        // fixme: allow various model spaces, now we make it so that
++        // it is regular -1,-1 to 1,1, where the whole display fits in
++        glPushMatrix();
++        if (DispHeight > DispWidth)
++            glScaled(DispHeight/DispWidth, 1, 1);
++        else
++            glScaled(1, DispWidth/DispHeight, 1);
++        maPrimitives[i].display(nTime, 1, 1);
++        glPopMatrix();
++    }
++}
++
++void SceneObject::pushPrimitive(const Primitive &p)
++{
++    maPrimitives.push_back(p);
++}
++
++SceneObject::SceneObject()
++    : maPrimitives()
++{
++}
++
++Iris::Iris()
++    : SceneObject ()
++{
++}
++
++void Iris::display(double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight )
++{
++    glBindTexture(GL_TEXTURE_2D, maTexture);
++    SceneObject::display(nTime, SlideWidth, SlideHeight, DispWidth, DispHeight);
++}
++
++void Iris::prepare()
++{
++    static GLubyte img[3] = { 80, 80, 80 };
++    
++    glGenTextures(1, &maTexture);
++    glBindTexture(GL_TEXTURE_2D, maTexture);
++    glTexImage2D(GL_TEXTURE_2D, 0, 3, 1, 1, 0, GL_RGB, GL_UNSIGNED_BYTE, img);
++    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
++    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
++    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
++    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
++}
++
++void Iris::finish()
++{
++    glDeleteTextures(1, &maTexture);
++}
++
+ void OGLTransitionImpl::makeOutsideCubeFaceToLeft()
+ {
+     clear();
+@@ -102,11 +183,11 @@ void OGLTransitionImpl::makeOutsideCubeF
+ 
+     maLeavingSlidePrimitives.push_back(Slide);
+ 
+-    Slide.Operations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,-1),-90,false,0.0,1.0));
++    Slide.Operations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,-1),90,false,0.0,1.0));
+ 
+     maEnteringSlidePrimitives.push_back(Slide);
+ 
+-    OverallOperations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,-1),90,true,0.0,1.0));
++    OverallOperations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,-1),-90,true,0.0,1.0));
+ }
+ 
+ void OGLTransitionImpl::makeInsideCubeFaceToLeft()
+@@ -119,11 +200,150 @@ void OGLTransitionImpl::makeInsideCubeFa
+ 
+     maLeavingSlidePrimitives.push_back(Slide);
+ 
+-    Slide.Operations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,1),90,false,0.0,1.0));
++    Slide.Operations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,1),-90,false,0.0,1.0));
++
++    maEnteringSlidePrimitives.push_back(Slide);
++    
++    OverallOperations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,1),90,true,0.0,1.0));
++}
++
++void OGLTransitionImpl::makeFallLeaving()
++{
++    clear();
++    Primitive Slide;
++    
++    Slide.pushTriangle(basegfx::B2DVector(0,0),basegfx::B2DVector(1,0),basegfx::B2DVector(0,1));
++    Slide.pushTriangle(basegfx::B2DVector(1,0),basegfx::B2DVector(0,1),basegfx::B2DVector(1,1));
++    maEnteringSlidePrimitives.push_back(Slide);
++
++    Slide.Operations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(1,0,0),basegfx::B3DVector(0,-1,0), 90,true,0.0,1.0));
++    maLeavingSlidePrimitives.push_back(Slide);
++}
++
++void OGLTransitionImpl::makeTurnAround()
++{
++    clear();
++    Primitive Slide;
++    
++    Slide.pushTriangle(basegfx::B2DVector(0,0),basegfx::B2DVector(1,0),basegfx::B2DVector(0,1));
++    Slide.pushTriangle(basegfx::B2DVector(1,0),basegfx::B2DVector(0,1),basegfx::B2DVector(1,1));
++    maLeavingSlidePrimitives.push_back(Slide);
+ 
++    Slide.Operations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,0),-180,false,0.0,1.0));
+     maEnteringSlidePrimitives.push_back(Slide);
+     
+-    OverallOperations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,1),-90,true,0.0,1.0));
++    OverallOperations.push_back(new STranslate(basegfx::B3DVector(0, 0, -1.5),true, 0, 0.5));
++    OverallOperations.push_back(new STranslate(basegfx::B3DVector(0, 0, 1.5), true, 0.5, 1));
++    OverallOperations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(0, 1, 0),basegfx::B3DVector(0, 0, 0), -180, true, 0.0, 1.0));
++}
++
++void OGLTransitionImpl::makeTurnDown()
++{
++    clear();
++    Primitive Slide;
++    
++    Slide.pushTriangle(basegfx::B2DVector(0,0),basegfx::B2DVector(1,0),basegfx::B2DVector(0,1));
++    Slide.pushTriangle(basegfx::B2DVector(1,0),basegfx::B2DVector(0,1),basegfx::B2DVector(1,1));
++    maLeavingSlidePrimitives.push_back(Slide);
++
++    Slide.Operations.push_back(new STranslate(basegfx::B3DVector(0, 0, 0.0001), false, -1.0, 0.0));
++    Slide.Operations.push_back(new SRotate (basegfx::B3DVector(0, 0, 1), basegfx::B3DVector(-1, 1, 0), -90, true, 0.0, 1.0));
++    Slide.Operations.push_back(new SRotate (basegfx::B3DVector(0, 0, 1), basegfx::B3DVector(-1, 1, 0), 90, false, -1.0, 0.0));
++    maEnteringSlidePrimitives.push_back(Slide);
++}
++
++void OGLTransitionImpl::makeIris()
++{
++    clear();
++    Primitive Slide;
++    
++    Slide.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (1,0), basegfx::B2DVector (0,1));
++    Slide.pushTriangle (basegfx::B2DVector (1,0), basegfx::B2DVector (0,1), basegfx::B2DVector (1,1));
++    maEnteringSlidePrimitives.push_back (Slide);
++
++    Slide.Operations.push_back (new STranslate (basegfx::B3DVector (0, 0, 0.0001), false, -1, 0));
++    Slide.Operations.push_back (new STranslate (basegfx::B3DVector (0, 0, -0.0002), false, 0.5, 1));
++    maLeavingSlidePrimitives.push_back (Slide);
++
++
++    Primitive irisPart, part;
++    int i, nSteps = 24, nParts = 7;
++    double lt = 0, t = 1.0/nSteps, cx, cy, lcx, lcy, lx = 1, ly = 0, x, y, cxo, cyo, lcxo, lcyo, of=2.2, f=1.42;
++
++    for (i=1; i<=nSteps; i++) {
++        x = cos ((3*2*M_PI*t)/nParts);
++        y = -sin ((3*2*M_PI*t)/nParts);
++        cx = (f*x + 1)/2;
++        cy = (f*y + 1)/2;
++        lcx = (f*lx + 1)/2;
++        lcy = (f*ly + 1)/2;
++        cxo = (of*x + 1)/2;
++        cyo = (of*y + 1)/2;
++        lcxo = (of*lx + 1)/2;
++        lcyo = (of*ly + 1)/2;
++        irisPart.pushTriangle (basegfx::B2DVector (lcx, lcy),
++                               basegfx::B2DVector (lcxo, lcyo),
++                               basegfx::B2DVector (cx, cy));
++        irisPart.pushTriangle (basegfx::B2DVector (cx, cy),
++                               basegfx::B2DVector (lcxo, lcyo),
++                               basegfx::B2DVector (cxo, cyo));
++        lx = x;
++        ly = y;
++        lt = t;
++        t += 1.0/nSteps;
++    }
++
++    Iris* pIris = new Iris();
++    double angle = 87;
++
++    for (i = 0; i < nParts; i++) {
++        irisPart.Operations.clear ();
++        double rx, ry;
++
++        rx = cos ((2*M_PI*i)/nParts);
++        ry = sin ((2*M_PI*i)/nParts);
++        irisPart.Operations.push_back (new SRotate (basegfx::B3DVector(0, 0, 1), basegfx::B3DVector(rx, ry, 0),  angle, true, 0.0, 0.5));
++        irisPart.Operations.push_back (new SRotate (basegfx::B3DVector(0, 0, 1), basegfx::B3DVector(rx, ry, 0), -angle, true, 0.5, 1));
++        if (i > 0) {
++            irisPart.Operations.push_back (new STranslate (basegfx::B3DVector(rx, ry, 0),  false, -1, 0));
++            irisPart.Operations.push_back (new SRotate (basegfx::B3DVector(0, 0, 1), basegfx::B3DVector(0, 0, 0), i*360.0/nParts, false, -1, 0));
++            irisPart.Operations.push_back (new STranslate (basegfx::B3DVector(-1, 0, 0),  false, -1, 0));
++        }
++        irisPart.Operations.push_back(new STranslate(basegfx::B3DVector(0, 0, 1), false, -2, 0.0));
++        irisPart.Operations.push_back (new SRotate (basegfx::B3DVector(1, .5, 0), basegfx::B3DVector(1, 0, 0), -30, false, -1, 0));
++        pIris->pushPrimitive (irisPart);
++    }
++
++    maSceneObjects.push_back (pIris);
++}
++
++void OGLTransitionImpl::makeRochade()
++{
++    clear();
++    Primitive Slide;
++    
++    double w, h;
++
++    w = 2.2;
++    h = 5;
++
++    Slide.pushTriangle(basegfx::B2DVector(0,0),basegfx::B2DVector(1,0),basegfx::B2DVector(0,1));
++    Slide.pushTriangle(basegfx::B2DVector(1,0),basegfx::B2DVector(0,1),basegfx::B2DVector(1,1));
++
++    Slide.Operations.push_back(new SEllipseTranslate(w, h, 0.25, -0.25, true, 0, 1));
++    Slide.Operations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,0), -45, true, 0, 1));
++    maLeavingSlidePrimitives.push_back(Slide);
++
++    Slide.Operations.clear();
++    Slide.Operations.push_back(new SEllipseTranslate(w, h, 0.75, 0.25, true, 0, 1));
++    Slide.Operations.push_back(new STranslate(basegfx::B3DVector(0, 0, -h), false, -1, 0));
++    Slide.Operations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,0), -45, true, 0, 1));
++    Slide.Operations.push_back(new RotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,0), 45, false, -1, 0));
++    maEnteringSlidePrimitives.push_back(Slide);
++
++    //     OverallOperations.push_back(new SEllipseTranslate(0.5, 2, 0, 1, true, 0, 1));
++//      push_back(new STranslate(basegfx::B3DVector(0, 0, -2), true, 0, 0.5));
++//      OverallOperations.push_back(new STranslate(basegfx::B3DVector(0, 0, 2), true, 0.5, 1));
+ }
+ 
+ // TODO(Q3): extract to basegfx
+@@ -237,7 +457,7 @@ void OGLTransitionImpl::makeRevolvingCir
+         NextRadius += dRadius;
+     }
+     {
+-        Radius = sqrt(2);
++        Radius = sqrt(2.0);
+         Primitive LeavingSlide;
+         Primitive EnteringSlide;
+         for(int Side(0); Side < nPointsOnCircles - 1; ++Side)
+@@ -408,6 +628,34 @@ void RotateAndScaleDepthByWidth::interpo
+     glTranslated(-SlideWidthScale*origin.getX(),-SlideHeightScale*origin.getY(),-SlideWidthScale*origin.getZ());
+ }
+ 
++SEllipseTranslate::SEllipseTranslate(double dWidth, double dHeight, double dStartPosition, double dEndPosition, bool bInter, double T0, double T1)
++{
++    nT0 = T0;
++    nT1 = T1;
++    bInterpolate = bInter;
++    width = dWidth;
++    height = dHeight;
++    startPosition = dStartPosition;
++    endPosition = dEndPosition;
++}
++
++void SEllipseTranslate::interpolate(double t,double /* SlideWidthScale */,double /* SlideHeightScale */)
++{
++    if(t <= nT0)
++        return;
++    if(!bInterpolate || t > nT1)
++        t = nT1;
++    t = intervalInter(t,nT0,nT1);
++
++    double a1, a2, x, y;
++    a1 = startPosition*2*M_PI;
++    a2 = (startPosition + t*(endPosition - startPosition))*2*M_PI;
++    x = width*(cos (a2) - cos (a1))/2;
++    y = height*(sin (a2) - sin (a1))/2;
++
++    glTranslated(x, 0, y);
++}
++
+ STranslate* STranslate::clone()
+ {
+     return new STranslate(*this);
+@@ -422,6 +670,11 @@ SScale* SScale::clone()
+     return new SScale(*this);
+ }
+ 
++SEllipseTranslate* SEllipseTranslate::clone()
++{
++    return new SEllipseTranslate(*this);
++}
++
+ RotateAndScaleDepthByWidth* RotateAndScaleDepthByWidth::clone()
+ {
+     return new RotateAndScaleDepthByWidth(*this);
+@@ -464,7 +717,7 @@ void Primitive::pushTriangle(const baseg
+     Verts.push_back(basegfx::B3DVector( 2*SlideLocation2.getX() - 1, -2*SlideLocation2.getY() + 1 , 0.0 ));
+ 
+     //figure out if they're facing the correct way, and make them face the correct way.
+-    basegfx::B3DVector Normal( cross( Verts[0] - Verts[1] , Verts[1] - Verts[2] ) );
++    basegfx::B3DVector Normal( basegfx::cross( Verts[0] - Verts[1] , Verts[1] - Verts[2] ) );
+     if(Normal.getZ() >= 0.0)//if the normal is facing us
+     {
+         Texs.push_back(SlideLocation0);
+--- slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.hxx	9 Nov 2007 10:17:11 -0000	1.2
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.hxx	15 Jan 2008 10:07:34 -0000	1.2.4.3
+@@ -32,16 +32,18 @@
+  *    MA  02111-1307  USA
+  *
+  ************************************************************************/
+-#ifndef INCLUDED_SLIDESHOW_TRANSITION_HXX_
+-#define INCLUDED_SLIDESHOW_TRANSITION_HXX_
++#ifndef INCLUDED_OGLTRANS_TRANSITIONIMPL_HXX_
++#define INCLUDED_OGLTRANS_TRANSITIONIMPL_HXX_
+ 
+ #include <basegfx/vector/b2dvector.hxx>
+ #include <basegfx/vector/b3dvector.hxx>
+ 
+ #include <vector>
++#include <GL/gl.h>
+ 
+ class Primitive;
+ class Operation;
++class SceneObject;
+ 
+ /** OpenGL 3D Transition class. It implicitly is constructed from XOGLTransition
+ 
+@@ -52,17 +54,26 @@ class OGLTransitionImpl
+ public:
+     OGLTransitionImpl() :
+         maLeavingSlidePrimitives(),
+-        maEnteringSlidePrimitives()
++        maEnteringSlidePrimitives(),
++        maSceneObjects()
+     {}
+ 
+     ~OGLTransitionImpl();
+     
+-    void display( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex , double SlideWidthScale, double SlideHeightScale);
++    void prepare();
++    void display( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight);
++    void finish();
++
+     void makeOutsideCubeFaceToLeft();
+     void makeInsideCubeFaceToLeft();
+     void makeNByMTileFlip( ::sal_uInt16 n, ::sal_uInt16 m );
+     void makeRevolvingCircles( ::sal_uInt16 nCircles , ::sal_uInt16 nPointsOnCircles );
+     void makeHelix( ::sal_uInt16 nRows );
++    void makeFallLeaving();
++    void makeTurnAround();
++    void makeTurnDown();
++    void makeIris();
++    void makeRochade();
+ 
+ private:
+     /** clears all the primitives and operations
+@@ -77,18 +88,54 @@ private:
+ 	*/
+     std::vector<Primitive> maEnteringSlidePrimitives;
+     
++    /** All the surrounding scene objects
++	*/
++    std::vector<SceneObject*> maSceneObjects;
++
+     /** All the operations that should be applied to both leaving and entering slide primitives. These operations will be called in the order they were pushed back in. In OpenGL this effectively uses the operations in the opposite order they were pushed back.
+ 	*/
+ 	std::vector<Operation*> OverallOperations;
+ };
+ 
++class SceneObject
++{
++public:
++    SceneObject();
++
++    virtual void prepare() {};
++    virtual void display(double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight);
++    virtual void finish() {};
++
++    void pushPrimitive (const Primitive &p);
++
++protected:
++    /** All the surrounding scene primitives
++	*/
++    std::vector<Primitive> maPrimitives;
++};
++
++class Iris : public SceneObject
++{
++public:
++    Iris ();
++
++    virtual void prepare();
++    virtual void display(double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight);
++    virtual void finish();
++
++private:
++
++    GLuint maTexture;
++};
++
+ /** This class is a list of Triangles that will share Operations, and could possibly share  
+ */
+ class Primitive
+ {
+ public:
+     Primitive() {}
+-    explicit Primitive(const Primitive& rvalue);
++	// making copy constructor explicit makes the class un-suitable for use with stl containers
++    Primitive(const Primitive& rvalue);
+ 	~Primitive();
+ 
+     void display(double nTime, double SlideWidthScale, double SlideHeightScale);
+@@ -301,6 +348,42 @@ private:
+ 	basegfx::B3DVector vector;
+ };
+ 
++/** translation transformation
++*/
++class SEllipseTranslate: public Operation
++{
++public:
++	void interpolate(double t,double SlideWidthScale,double SlideHeightScale);
++    SEllipseTranslate* clone();
++	
++	/** Constructor
++	    
++	    @param Vector
++	    vector to translate
++	    
++	    @param bInter
++	    see Operation
++	    
++	    @param T0
++	    transformation starting time
++	    
++	    @param T1
++	    transformation ending time
++	
++	*/
++	SEllipseTranslate(double dWidth, double dHeight, double dStartPosition, double dEndPosition, bool bInter, double T0, double T1);
++	~SEllipseTranslate(){}
++private:
++    /** width and length of the ellipse
++     */
++    double width, height;
++
++    /** start and end position on the ellipse <0,1>
++     */
++    double startPosition;
++    double endPosition;
++};
++
+ /** Same as SRotate, except the depth is scaled by the width of the slide divided by the width of the window.
+ */
+ class RotateAndScaleDepthByWidth: public Operation
+--- slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx	12 Dec 2007 13:26:16 -0000	1.3
++++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx	17 Dec 2007 19:54:16 -0000	1.2.4.4
+@@ -236,9 +236,7 @@ void OGLTransitionerImpl::initWindowFrom
+             SystemWindowData winData;
+             winData.nSize = sizeof(winData);
+             winData.pVisual = (void*)(vi->visual);
+-            pWindow=new SystemChildWindow(pPWindow,
+-                                          0,
+-                                          &winData);
++            pWindow=new SystemChildWindow(pPWindow, 0, &winData, FALSE);
+             pChildSysData = pWindow->GetSystemData();
+             if( pChildSysData )
+             {
+@@ -275,10 +273,9 @@ void OGLTransitionerImpl::initWindowFrom
+                                  GL_TRUE);
+ 
+     glXMakeCurrent( GLWin.dpy, GLWin.win, GLWin.ctx );
+-
+-    OSL_ENSURE( glXIsDirect(GLWin.dpy, GLWin.ctx) , "Can't Directly Render to the Screen, perhaps 3D transitions aren't for you." );
+     glEnable(GL_CULL_FACE);
+     glCullFace(GL_BACK);
++    glClearColor (0, 0, 0, 0);
+     glClear(GL_COLOR_BUFFER_BIT);
+     unx::glXSwapBuffers(GLWin.dpy, GLWin.win);
+     
+@@ -290,8 +287,11 @@ void OGLTransitionerImpl::initWindowFrom
+     glEnable(GL_LIGHT0);
+     glEnable(GL_NORMALIZE);
+         
+-    if( EnteringBytes.hasElements() && EnteringBytes.hasElements())
++    if( LeavingBytes.hasElements() && EnteringBytes.hasElements())
+        GLInitSlides();//we already have uninitialized slides, let's initialize 
++
++    if (pTransition)
++        pTransition->prepare ();
+ }
+ 
+ void OGLTransitionerImpl::setSlides( const uno::Reference< rendering::XBitmap >& xLeavingSlide, 
+@@ -333,20 +333,22 @@ void OGLTransitionerImpl::GLInitSlides()
+     glMatrixMode(GL_PROJECTION);
+     glLoadIdentity();
+     double EyePos(10.0);
+-    double RealF(-1.0);
+-    double RealN(1.0);
++    double RealF(1.0);
++    double RealN(-1.0);
+     double RealL(-1.0);
+     double RealR(1.0);
+     double RealB(-1.0);
+     double RealT(1.0);
+-    double ClipN(EyePos+2.0*RealN);
+-    double ClipF(EyePos+2.0*RealF);
++    double ClipN(EyePos+5.0*RealN);
++    double ClipF(EyePos+15.0*RealF);
+     double ClipL(RealL*8.0);
+     double ClipR(RealR*8.0);
+     double ClipB(RealB*8.0);
+     double ClipT(RealT*8.0);
+     //This scaling is to take the plane with BottomLeftCorner(-1,-1,0) and TopRightCorner(1,1,0) and map it to the screen after the perspective division.
+-    glScaled( 1.0 / ( ( ( RealR * 2.0 * ClipN ) / ( EyePos * ( ClipR - ClipL ) ) ) - ( ( ClipR + ClipL ) / ( ClipR - ClipL ) ) ), 1 / ( ( ( RealT * 2.0 * ClipN ) / ( EyePos * ( ClipT - ClipB ) ) ) - ( ( ClipT + ClipB ) / ( ClipT - ClipB ) ) ) , 1.0 );
++    glScaled( 1.0 / ( ( ( RealR * 2.0 * ClipN ) / ( EyePos * ( ClipR - ClipL ) ) ) - ( ( ClipR + ClipL ) / ( ClipR - ClipL ) ) ),
++              1.0 / ( ( ( RealT * 2.0 * ClipN ) / ( EyePos * ( ClipT - ClipB ) ) ) - ( ( ClipT + ClipB ) / ( ClipT - ClipB ) ) ),
++              1.0 );
+ 	glFrustum(ClipL,ClipR,ClipB,ClipT,ClipN,ClipF);
+     glMatrixMode(GL_MODELVIEW);
+     glLoadIdentity();
+@@ -449,11 +451,12 @@ void SAL_CALL OGLTransitionerImpl::updat
+         
+     glEnable(GL_DEPTH_TEST);
+ 	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+-	//glLoadIdentity();
++
+ 	if(pTransition)
+ 	    pTransition->display( nTime , GLleavingSlide , GLenteringSlide , 
+-                              SlideSize.Width/static_cast<double>(GLWin.Width),
+-                              SlideSize.Height/static_cast<double>(GLWin.Height) );
++                              SlideSize.Width, SlideSize.Height,
++                              static_cast<double>(GLWin.Width),
++                              static_cast<double>(GLWin.Height) );
+ 	unx::glXSwapBuffers(GLWin.dpy, GLWin.win);
+ 	if( pWindow )
+         pWindow->Show();
+@@ -465,6 +468,10 @@ void OGLTransitionerImpl::disposing()
+     osl::MutexGuard const guard( m_aMutex );
+     glDeleteTextures(1,&GLleavingSlide);
+     glDeleteTextures(1,&GLenteringSlide);
++
++    if (pTransition)
++        pTransition->finish();
++
+     if(GLWin.ctx)
+ 	{
+ 	    OSL_ENSURE( glXMakeCurrent(GLWin.dpy, None, NULL) , "Error releasing glX context" );
+@@ -512,6 +519,11 @@ public:
+             case animations::TransitionSubType::CIRCLE:
+             case animations::TransitionSubType::FANOUTHORIZONTAL:
+             case animations::TransitionSubType::CORNERSIN:  
++            case animations::TransitionSubType::LEFTTORIGHT:
++            case animations::TransitionSubType::TOPTOBOTTOM:
++            case animations::TransitionSubType::TOPRIGHT:
++            case animations::TransitionSubType::TOPLEFT:
++            case animations::TransitionSubType::BOTTOMRIGHT:
+                 return sal_True;
+ 
+             default:
+@@ -548,6 +560,21 @@ public:
+             case animations::TransitionSubType::CORNERSIN :  
+                 pTransition->makeInsideCubeFaceToLeft();
+                 break;
++            case animations::TransitionSubType::LEFTTORIGHT:
++                pTransition->makeFallLeaving();
++                break;
++            case animations::TransitionSubType::TOPTOBOTTOM:
++                pTransition->makeTurnAround();
++                break;
++            case animations::TransitionSubType::TOPRIGHT:
++                pTransition->makeTurnDown();
++                break;
++            case animations::TransitionSubType::TOPLEFT:
++                pTransition->makeIris();
++                break;
++            case animations::TransitionSubType::BOTTOMRIGHT:
++                pTransition->makeRochade();
++                break;
+             default:
+                 return uno::Reference< presentation::XTransition >();
+         }
+--- slideshow/source/inc/activitiesqueue.hxx	17 Jul 2007 15:01:06 -0000	1.8
++++ slideshow/source/inc/activitiesqueue.hxx	16 Jan 2008 10:22:09 -0000	1.8.32.2
+@@ -102,6 +102,13 @@ namespace slideshow
+             ::boost::shared_ptr< ::canvas::tools::ElapsedTime > const &
+             getTimer() const { return mpTimer; }
+             
++            /** returns number of all activities, waiting, reinserted and dequeued
++             */
++            std::size_t size() const
++            { 
++                return maCurrentActivitiesWaiting.size() + maCurrentActivitiesReinsert.size() + maDequeuedActivities.size();
++            }
++            
+         private:
+             ::boost::shared_ptr< ::canvas::tools::ElapsedTime > mpTimer;
+             

Added: trunk/patches/src680/cws-transogl02-vcl.diff
==============================================================================
--- (empty file)
+++ trunk/patches/src680/cws-transogl02-vcl.diff	Fri Jan 18 16:21:14 2008
@@ -0,0 +1,259 @@
+--- vcl/aqua/inc/salinst.h	9 Oct 2007 15:09:54 -0000	1.13
++++ vcl/aqua/inc/salinst.h	17 Jan 2008 09:44:37 -0000	1.13.86.1
+@@ -110,7 +110,7 @@ public:
+     virtual SalFrame*      	CreateChildFrame( SystemParentData* pParent, ULONG nStyle );
+     virtual SalFrame*      	CreateFrame( SalFrame* pParent, ULONG nStyle );
+     virtual void			DestroyFrame( SalFrame* pFrame );
+-    virtual SalObject*		CreateObject( SalFrame* pParent, SystemWindowData* pWindowData );
++    virtual SalObject*		CreateObject( SalFrame* pParent, SystemWindowData* pWindowData, BOOL bShow = TRUE );
+     virtual void			DestroyObject( SalObject* pObject );
+     virtual SalVirtualDevice*	CreateVirtualDevice( SalGraphics* pGraphics,
+                                                      long nDX, long nDY,
+--- vcl/aqua/source/app/salinst.cxx	7 Dec 2007 11:49:10 -0000	1.41
++++ vcl/aqua/source/app/salinst.cxx	17 Jan 2008 09:44:37 -0000	1.41.22.1
+@@ -779,7 +779,7 @@ void AquaSalInstance::DestroyFrame( SalF
+ 
+ // -----------------------------------------------------------------------
+ 
+-SalObject* AquaSalInstance::CreateObject( SalFrame* pParent, SystemWindowData* /* pWindowData */ )
++SalObject* AquaSalInstance::CreateObject( SalFrame* pParent, SystemWindowData* /* pWindowData */, BOOL /* bShow */ )
+ {
+     // SystemWindowData is meaningless on Mac OS X
+ 	AquaSalObject *pObject = NULL;
+--- vcl/inc/vcl/salinst.hxx	11 Apr 2007 18:07:19 -0000	1.2
++++ vcl/inc/vcl/salinst.hxx	10 Dec 2007 19:00:17 -0000	1.2.246.1
+@@ -109,7 +109,7 @@ public:
+     virtual void				DestroyFrame( SalFrame* pFrame ) = 0;
+ 
+     // Object (System Child Window)
+-    virtual SalObject*			CreateObject( SalFrame* pParent, SystemWindowData* pWindowData ) = 0;
++    virtual SalObject*			CreateObject( SalFrame* pParent, SystemWindowData* pWindowData, BOOL bShow = TRUE ) = 0;
+     virtual void				DestroyObject( SalObject* pObject ) = 0;
+ 
+     // VirtualDevice
+--- vcl/inc/vcl/syschild.hxx	11 Apr 2007 18:13:33 -0000	1.2
++++ vcl/inc/vcl/syschild.hxx	10 Dec 2007 19:00:17 -0000	1.2.246.1
+@@ -58,7 +58,7 @@ class VCL_DLLPUBLIC SystemChildWindow : 
+ {
+ private:
+     using Window::ImplInit;
+-	SAL_DLLPRIVATE void     ImplInitSysChild( Window* pParent, WinBits nStyle, SystemWindowData *pData );
++	SAL_DLLPRIVATE void     ImplInitSysChild( Window* pParent, WinBits nStyle, SystemWindowData *pData, BOOL bShow = TRUE );
+ 
+     // Copy assignment is forbidden and not implemented.
+ 	SAL_DLLPRIVATE          SystemChildWindow (const SystemChildWindow &);
+@@ -67,7 +67,7 @@ private:
+ public:
+ 							SystemChildWindow( Window* pParent, WinBits nStyle = 0 );
+                             // create a SystemChildWindow using the given SystemWindowData
+-							SystemChildWindow( Window* pParent, WinBits nStyle, SystemWindowData *pData );
++							SystemChildWindow( Window* pParent, WinBits nStyle, SystemWindowData *pData, BOOL bShow = TRUE );
+ 							SystemChildWindow( Window* pParent, const ResId& rResId );
+ 							~SystemChildWindow();
+ 
+--- vcl/source/window/syschild.cxx	24 Jul 2007 10:22:04 -0000	1.11
++++ vcl/source/window/syschild.cxx	10 Dec 2007 19:00:17 -0000	1.11.144.1
+@@ -128,9 +128,9 @@ long ImplSysChildProc( void* pInst, SalO
+ 
+ // =======================================================================
+ 
+-void SystemChildWindow::ImplInitSysChild( Window* pParent, WinBits nStyle, SystemWindowData *pData )
++void SystemChildWindow::ImplInitSysChild( Window* pParent, WinBits nStyle, SystemWindowData *pData, BOOL bShow )
+ {
+-	mpWindowImpl->mpSysObj = ImplGetSVData()->mpDefInst->CreateObject( pParent->ImplGetFrame(), pData );
++	mpWindowImpl->mpSysObj = ImplGetSVData()->mpDefInst->CreateObject( pParent->ImplGetFrame(), pData, bShow );
+ 
+ 	Window::ImplInit( pParent, nStyle, NULL );
+ 
+@@ -153,10 +153,10 @@ SystemChildWindow::SystemChildWindow( Wi
+ 
+ // -----------------------------------------------------------------------
+ 
+-SystemChildWindow::SystemChildWindow( Window* pParent, WinBits nStyle, SystemWindowData *pData ) :
++SystemChildWindow::SystemChildWindow( Window* pParent, WinBits nStyle, SystemWindowData *pData, BOOL bShow ) :
+ 	Window( WINDOW_SYSTEMCHILDWINDOW )
+ {
+-	ImplInitSysChild( pParent, nStyle, pData );
++	ImplInitSysChild( pParent, nStyle, pData, bShow );
+ }
+ 
+ // -----------------------------------------------------------------------
+--- vcl/unx/gtk/app/gtkinst.cxx	30 Aug 2007 13:55:37 -0000	1.17
++++ vcl/unx/gtk/app/gtkinst.cxx	10 Dec 2007 19:00:18 -0000	1.17.104.1
+@@ -216,14 +216,14 @@ SalFrame* GtkInstance::CreateChildFrame(
+ 	return pFrame;
+ }
+ 
+-SalObject* GtkInstance::CreateObject( SalFrame* pParent, SystemWindowData* pWindowData )
++SalObject* GtkInstance::CreateObject( SalFrame* pParent, SystemWindowData* pWindowData, BOOL bShow )
+ {
+     // there is no method to set a visual for a GtkWidget
+     // so we need the X11SalObject in that case
+     if( pWindowData )
+-        return X11SalObject::CreateObject( pParent, pWindowData );
++        return X11SalObject::CreateObject( pParent, pWindowData, bShow );
+     
+-    return new GtkSalObject( static_cast<GtkSalFrame*>(pParent) );
++    return new GtkSalObject( static_cast<GtkSalFrame*>(pParent), bShow );
+ }
+ 
+ GtkYieldMutex::GtkYieldMutex()
+--- vcl/unx/gtk/window/gtkobject.cxx	6 Oct 2006 10:00:15 -0000	1.11
++++ vcl/unx/gtk/window/gtkobject.cxx	10 Dec 2007 19:00:18 -0000	1.11.392.1
+@@ -41,7 +41,7 @@
+ #include <plugins/gtk/gtkdata.hxx>
+ #include <plugins/gtk/gtkinst.hxx>
+ 
+-GtkSalObject::GtkSalObject( GtkSalFrame* pParent ) 
++GtkSalObject::GtkSalObject( GtkSalFrame* pParent, BOOL bShow ) 
+         : m_pSocket( NULL ),
+           m_pRegion( NULL )
+ {
+@@ -49,6 +49,7 @@ GtkSalObject::GtkSalObject( GtkSalFrame*
+     {
+         // our plug window
+         m_pSocket = gtk_drawing_area_new();
++        Show( bShow );
+         // insert into container
+         gtk_fixed_put( pParent->getFixedContainer(),
+                        m_pSocket,
+--- vcl/unx/headless/svpinst.cxx	24 Jul 2007 10:27:49 -0000	1.2
++++ vcl/unx/headless/svpinst.cxx	10 Dec 2007 19:00:18 -0000	1.2.144.1
+@@ -245,7 +245,7 @@ void SvpSalInstance::DestroyFrame( SalFr
+     delete pFrame;
+ }
+ 
+-SalObject* SvpSalInstance::CreateObject( SalFrame*, SystemWindowData* )
++SalObject* SvpSalInstance::CreateObject( SalFrame*, SystemWindowData*, BOOL )
+ {
+     return new SvpSalObject();
+ }
+--- vcl/unx/headless/svpinst.hxx	24 Jul 2007 10:27:59 -0000	1.2
++++ vcl/unx/headless/svpinst.hxx	10 Dec 2007 19:00:18 -0000	1.2.144.1
+@@ -139,7 +139,7 @@ public:
+     virtual void			DestroyFrame( SalFrame* pFrame );
+ 
+     // Object (System Child Window)
+-    virtual SalObject*		CreateObject( SalFrame* pParent, SystemWindowData* pWindowData );
++    virtual SalObject*		CreateObject( SalFrame* pParent, SystemWindowData* pWindowData, BOOL bShow = TRUE );
+     virtual void			DestroyObject( SalObject* pObject );
+ 
+     // VirtualDevice
+--- vcl/unx/inc/salinst.h	27 Jun 2007 20:41:36 -0000	1.14
++++ vcl/unx/inc/salinst.h	10 Dec 2007 19:00:18 -0000	1.14.170.1
+@@ -89,7 +89,7 @@ public:
+     virtual SalFrame*      	CreateFrame( SalFrame* pParent, ULONG nStyle );
+     virtual void				DestroyFrame( SalFrame* pFrame );
+ 
+-    virtual SalObject*			CreateObject( SalFrame* pParent, SystemWindowData* pWindowData );
++    virtual SalObject*			CreateObject( SalFrame* pParent, SystemWindowData* pWindowData, BOOL bShow = TRUE );
+     virtual void				DestroyObject( SalObject* pObject );
+ 
+     virtual SalVirtualDevice*	CreateVirtualDevice( SalGraphics* pGraphics,
+--- vcl/unx/inc/salobj.h	9 Nov 2007 10:20:33 -0000	1.8
++++ vcl/unx/inc/salobj.h	10 Dec 2007 19:00:18 -0000	1.8.44.1
+@@ -93,7 +93,7 @@ public:
+ 	BOOL			mbVisible;
+ 
+ 	static VCL_DLLPUBLIC long Dispatch( XEvent* pEvent );
+-    static VCL_DLLPUBLIC X11SalObject* CreateObject( SalFrame* pParent, SystemWindowData* pWindowData );
++    static VCL_DLLPUBLIC X11SalObject* CreateObject( SalFrame* pParent, SystemWindowData* pWindowData, BOOL bShow = TRUE );
+ 
+     X11SalObject();
+     virtual ~X11SalObject();
+--- vcl/unx/inc/plugins/gtk/gtkinst.hxx	11 Aug 2006 17:47:36 -0000	1.7
++++ vcl/unx/inc/plugins/gtk/gtkinst.hxx	10 Dec 2007 19:00:18 -0000	1.7.426.1
+@@ -94,7 +94,7 @@ public:
+ 
+     virtual SalFrame*			CreateFrame( SalFrame* pParent, ULONG nStyle );
+     virtual SalFrame*           CreateChildFrame( SystemParentData* pParent, ULONG nStyle );
+-    virtual SalObject*			CreateObject( SalFrame* pParent, SystemWindowData* pWindowData );
++    virtual SalObject*			CreateObject( SalFrame* pParent, SystemWindowData* pWindowData, BOOL bShow = TRUE );
+     virtual SalSystem*			CreateSalSystem();
+ };
+ 
+--- vcl/unx/inc/plugins/gtk/gtkobject.hxx	24 Jul 2007 10:30:41 -0000	1.6
++++ vcl/unx/inc/plugins/gtk/gtkobject.hxx	10 Dec 2007 19:00:18 -0000	1.6.144.1
+@@ -60,7 +60,7 @@ class GtkSalObject : public SalObject
+     static gboolean		signalFocus( GtkWidget*, GdkEventFocus*, gpointer );
+     static void			signalDestroy( GtkObject*, gpointer );
+ public:
+-    GtkSalObject( GtkSalFrame* pParent );
++    GtkSalObject( GtkSalFrame* pParent, BOOL bShow = TRUE );
+     virtual ~GtkSalObject();
+ 
+     // overload all pure virtual methods
+--- vcl/unx/source/window/salobj.cxx	9 Nov 2007 10:20:46 -0000	1.22
++++ vcl/unx/source/window/salobj.cxx	10 Dec 2007 19:00:19 -0000	1.22.44.1
+@@ -74,12 +74,12 @@
+ // =======================================================================
+ // SalInstance member to create and destroy a SalObject
+ 
+-SalObject* X11SalInstance::CreateObject( SalFrame* pParent, SystemWindowData* pWindowData )
++SalObject* X11SalInstance::CreateObject( SalFrame* pParent, SystemWindowData* pWindowData, BOOL bShow )
+ {
+-    return X11SalObject::CreateObject( pParent, pWindowData );
++    return X11SalObject::CreateObject( pParent, pWindowData, bShow );
+ }
+ 
+-X11SalObject* X11SalObject::CreateObject( SalFrame* pParent, SystemWindowData* pWindowData )
++X11SalObject* X11SalObject::CreateObject( SalFrame* pParent, SystemWindowData* pWindowData, BOOL bShow )
+ {
+ 	int error_base, event_base;
+ 	X11SalObject*		pObject  = new X11SalObject();
+@@ -183,8 +183,10 @@ X11SalObject* X11SalObject::CreateObject
+     }
+ 
+     pSalDisp->GetXLib()->PushXErrorLevel( true );
+-    XMapWindow( pDisp, pObject->maPrimary );
++    if( bShow ) {
+ 	XMapWindow( pDisp, pObject->maSecondary );
++        XMapWindow( pDisp, pObject->maPrimary );
++    }
+ 
+ 	pObjData->pDisplay		= pDisp;
+ 	pObjData->aWindow		= pObject->maSecondary;
+@@ -421,13 +423,17 @@ X11SalObject::Show( BOOL bVisible )
+ 	if	( ! maSystemChildData.aWindow )
+ 		return;
+ 
+-	if ( bVisible ) 
++	if ( bVisible ) {
++		XMapWindow( (Display*)maSystemChildData.pDisplay,
++                    maSecondary );
+ 		XMapWindow( (Display*)maSystemChildData.pDisplay,
+                     maPrimary );
+-	else
++	} else {
+ 		XUnmapWindow( (Display*)maSystemChildData.pDisplay,
+                     maPrimary );
+-
++		XUnmapWindow( (Display*)maSystemChildData.pDisplay,
++                      maSecondary );
++    }
+ 	mbVisible = bVisible;
+ }
+ 
+--- vcl/win/inc/salinst.h	27 Jun 2007 20:53:41 -0000	1.13
++++ vcl/win/inc/salinst.h	15 Jan 2008 00:15:06 -0000	1.13.170.1
+@@ -67,7 +67,7 @@ public:
+     virtual SalFrame*      	CreateChildFrame( SystemParentData* pParent, ULONG nStyle );
+     virtual SalFrame*      	CreateFrame( SalFrame* pParent, ULONG nStyle );
+     virtual void			DestroyFrame( SalFrame* pFrame );
+-    virtual SalObject*		CreateObject( SalFrame* pParent, SystemWindowData* pWindowData );
++    virtual SalObject*		CreateObject( SalFrame* pParent, SystemWindowData* pWindowData, BOOL bShow = TRUE );
+     virtual void			DestroyObject( SalObject* pObject );
+     virtual SalVirtualDevice*	CreateVirtualDevice( SalGraphics* pGraphics,
+                                                      long nDX, long nDY,
+--- vcl/win/source/app/salinst.cxx	2 Aug 2007 18:29:24 -0000	1.39
++++ vcl/win/source/app/salinst.cxx	15 Jan 2008 00:15:07 -0000	1.39.138.1
+@@ -1089,7 +1089,8 @@ void WinSalInstance::DestroyFrame( SalFr
+ // -----------------------------------------------------------------------
+ 
+ SalObject* WinSalInstance::CreateObject( SalFrame* pParent,
+-										SystemWindowData* /*pWindowData*/ ) // SystemWindowData meaningless on Windows
++                                         SystemWindowData* /*pWindowData*/, // SystemWindowData meaningless on Windows
++                                         BOOL /*bShow*/ ) 
+ {
+ 	// Um auf Main-Thread umzuschalten
+ 	return (SalObject*)ImplSendMessage( mhComWnd, SAL_MSG_CREATEOBJECT, 0, (LPARAM)static_cast<WinSalFrame*>(pParent) );

Copied: trunk/patches/src680/transogl-transitions-officecfgs.diff (from r11320, /trunk/patches/src680/transogl01-officecfg-transitions.diff)
==============================================================================
--- /trunk/patches/src680/transogl01-officecfg-transitions.diff	(original)
+++ trunk/patches/src680/transogl-transitions-officecfgs.diff	Fri Jan 18 16:21:14 2008
@@ -1,10 +1,35 @@
 diff -rup ../src680-m237.orig/officecfg/registry/data/org/openoffice/Office/UI/Effects.xcu officecfg/registry/data/org/openoffice/Office/UI/Effects.xcu
 --- ../src680-m237.orig/officecfg/registry/data/org/openoffice/Office/UI/Effects.xcu	2007-12-05 15:02:57.000000000 +0100
 +++ officecfg/registry/data/org/openoffice/Office/UI/Effects.xcu	2007-12-05 16:29:43.000000000 +0100
-@@ -1937,6 +1937,31 @@
-           <value xml:lang="en-US">Inside turning cube</value>
-         </prop>
-       </node>
+@@ -1912,6 +1912,56 @@
+					
+				</prop>
+			</node>
++      <node oor:name="tile-flip" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Flipping tiles</value>
++        </prop>
++      </node>
++      <node oor:name="outside-cube" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Outside turning cube</value>
++        </prop>
++      </node>
++      <node oor:name="revolving-circles" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Revolving circles</value>
++        </prop>
++      </node>
++      <node oor:name="turning-helix" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Turning helix</value>
++        </prop>
++      </node>
++      <node oor:name="inside-cube" oor:op="replace">
++        <prop oor:name="Label" oor:type="xs:string">
++          <value xml:lang="en-US">Inside turning cube</value>
++        </prop>
++      </node>
 +      <node oor:name="fall" oor:op="replace">
 +        <prop oor:name="Label" oor:type="xs:string">
 +          <value xml:lang="en-US">Fall</value>

Copied: trunk/patches/src680/transogl-transitions-scp2.diff (from r11320, /trunk/patches/src680/transogl01-scp2.diff)
==============================================================================
--- /trunk/patches/src680/transogl01-scp2.diff	(original)
+++ trunk/patches/src680/transogl-transitions-scp2.diff	Fri Jan 18 16:21:14 2008
@@ -1,6 +1,26 @@
-diff -rup scp2-orig/source/impress/file_impress.scp scp2/source/impress/file_impress.scp
---- scp2-orig/source/impress/file_impress.scp	2008-01-07 18:09:23.000000000 +0100
+--- scp2/source/impress/file_impress.scp	2008-01-07 18:09:23.000000000 +0100
 +++ scp2/source/impress/file_impress.scp	2008-01-07 18:12:45.000000000 +0100
+@@ -59,6 +59,20 @@ File gid_File_Exe_Simpress
+     Styles = (PACKED, PATCH);
+ End
+ 
++#if defined ENABLE_OPENGL
++File gid_File_Lib_OpenGLTransitions
++    TXT_FILE_BODY;
++    Styles = (PACKED,UNO_COMPONENT);
++    RegistryID = gid_Starregistry_Services_Rdb;
++    Dir = gid_Dir_Program;
++  #ifdef UNX
++    Name = STRING(CONCAT2(OGLTrans.uno,UNXSUFFIX));
++  #else
++    Name = "OGLTrans.uno.dll";
++  #endif
++End
++#endif
++
+ #if defined UNX && ! defined MACOSX
+ 
+ File gid_File_Xdg_Impress
 @@ -180,6 +180,15 @@ File gid_File_Share_Config_Sofficecfg_Im
      Name = "transitions.xml";
  End
@@ -17,9 +37,20 @@
  File gid_File_Oo_Office_Ui_Effects_Xcs
      TXT_FILE_BODY;
      Styles = (PACKED);
-Common subdirectories: scp2-orig/source/impress/CVS and scp2/source/impress/CVS
-diff -u scp2-orig/source/impress/module_impress.scp scp2/source/impress/module_impress.scp
---- scp2-orig/source/impress/module_impress.scp	2008-01-08 11:25:39.000000000 +0100
+--- scp2/source/impress/makefile.mk
++++ scp2/source/impress/makefile.mk
+@@ -47,6 +47,10 @@ TARGETTYPE=CUI
+ 
+ SCP_PRODUCT_TYPE=osl
+ 
++.IF "$(ENABLE_OPENGL)" == "TRUE"
++SCPDEFS+=-DENABLE_OPENGL
++.ENDIF
++
+ PARFILES= \
+         module_impress.par              \
+         help_impress.par                \
+--- scp2/source/impress/module_impress.scp	2008-01-08 11:25:39.000000000 +0100
 +++ scp2/source/impress/module_impress.scp	2008-01-08 11:26:49.000000000 +0100
 @@ -51,7 +51,7 @@
      Files = (gid_File_Exe_Simpress,gid_File_Extra_Urldesktop_Impress,gid_File_Extra_Urlnew_Impress,gid_File_Extra_Urlstart_Impress,gid_File_Extra_Urltasks_Impress,gid_File_Lib_Placeware,
@@ -30,4 +61,3 @@
  	gid_File_Oo_Office_Ui_Effects_Xcs, gid_File_Oo_Office_Ui_Effects_Xcu, gid_File_Xdg_Impress, gid_File_Registry_Spool_Oo_Office_Embedding_Impress_Xcu,
      gid_File_Registry_Spool_Oo_TypeDetection_Impress_Filters_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Impress_Types_Xcu, gid_File_Tmp_Userinstall_Impress_Inf);
  End
-Only in scp2/source/impress/: module_impress.scp~

Copied: trunk/patches/src680/transogl-transitions-sd.diff (from r11320, /trunk/patches/src680/transogl01-sd-transitions.diff)
==============================================================================
--- /trunk/patches/src680/transogl01-sd-transitions.diff	(original)
+++ trunk/patches/src680/transogl-transitions-sd.diff	Fri Jan 18 16:21:14 2008
@@ -1,223 +1,5 @@
-diff -rup sd-orig/inc/TransitionPreset.hxx sd/inc/TransitionPreset.hxx
---- sd-orig/inc/TransitionPreset.hxx	2008-01-07 17:09:15.000000000 +0100
-+++ sd/inc/TransitionPreset.hxx	2008-01-07 20:41:05.000000000 +0100
-@@ -49,6 +49,7 @@
- #endif
- 
- #include <list>
-+#include <hash_map>
- 
- namespace com { namespace sun { namespace star { 
- 	namespace animations { class XAnimationNode; }
-@@ -56,12 +57,14 @@ namespace com { namespace sun { namespac
- } } }
- 
- class SdPage;
-+class String;
- 
- namespace sd {
- 
- class TransitionPreset;
- typedef boost::shared_ptr< TransitionPreset > TransitionPresetPtr;
- typedef std::list< TransitionPresetPtr > TransitionPresetList;
-+typedef std::hash_map< rtl::OUString, rtl::OUString, comphelper::UStringHash, comphelper::UStringEqual > UStringMap;
- 
- class TransitionPreset
- {
-@@ -90,6 +93,11 @@ private:
- 	rtl::OUString maUIName;
- 
- 	static sd::TransitionPresetList* mpTransitionPresetList;
-+
-+    static bool importTransitionsFile( TransitionPresetList& rList,
-+                                       ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
-+                                       UStringMap& rTransitionNameMape,
-+                                       String aFilaname );
- };
- 
- }
-diff -rup sd-orig/source/core/TransitionPreset.cxx sd/source/core/TransitionPreset.cxx
---- sd-orig/source/core/TransitionPreset.cxx	2008-01-07 17:09:16.000000000 +0100
-+++ sd/source/core/TransitionPreset.cxx	2008-01-07 20:43:22.000000000 +0100
-@@ -92,7 +92,6 @@
- #include <algorithm>
- 
- #include "sdpage.hxx"
--#include <hash_map>
- 
- using namespace ::vos;
- using namespace ::com::sun::star;
-@@ -112,7 +111,6 @@ using ::com::sun::star::beans::NamedValu
- 
- namespace sd {
- 
--typedef std::hash_map<rtl::OUString, rtl::OUString, comphelper::UStringHash, comphelper::UStringEqual> UStringMap;
- extern Reference< XAnimationNode > implImportEffects( const Reference< XMultiServiceFactory >& xConfigProvider, const OUString& rPath );
- extern void implImportLabels( const Reference< XMultiServiceFactory >& xConfigProvider, const OUString& rNodePath, UStringMap& rStringMap );
- 
-@@ -142,10 +140,64 @@ TransitionPreset::TransitionPreset( cons
- 	mnFadeColor = xTransition->getFadeColor();
- }
- 
-+bool TransitionPreset::importTransitionsFile( TransitionPresetList& rList,
-+                                              Reference< XMultiServiceFactory >& xServiceFactory,
-+                                              UStringMap& rTransitionNameMape,
-+                                              String aFilename )
-+{
-+    // import transition presets
-+    INetURLObject	aURL( SvtPathOptions().GetConfigPath() );
-+    aURL.Append( String( RTL_CONSTASCII_USTRINGPARAM("soffice.cfg") ) );
-+    aURL.Append( String( RTL_CONSTASCII_USTRINGPARAM("simpress" ) ) );
-+    aURL.Append( aFilename );
-+
-+    Reference< XAnimationNode > xAnimationNode;
-+
-+    try {
-+        xAnimationNode = implImportEffects( xServiceFactory, aURL.GetMainURL( INetURLObject::NO_DECODE ) );
-+        Reference< XEnumerationAccess > xEnumerationAccess( xAnimationNode, UNO_QUERY_THROW );
-+		Reference< XEnumeration > xEnumeration( xEnumerationAccess->createEnumeration(), UNO_QUERY_THROW );
-+
-+		while( xEnumeration->hasMoreElements() )
-+        {
-+            Reference< XAnimationNode > xChildNode( xEnumeration->nextElement(), UNO_QUERY_THROW );
-+            if( xChildNode->getType() == AnimationNodeType::PAR )
-+            {
-+                // create it
-+                TransitionPresetPtr pPreset( new TransitionPreset( xChildNode ) );
-+
-+                // name it
-+                OUString aPresetId( pPreset->getPresetId() );
-+                if( aPresetId.getLength() )
-+                {
-+                    UStringMap::const_iterator aIter( rTransitionNameMape.find( aPresetId ) );
-+                    if( aIter != rTransitionNameMape.end() )
-+                        pPreset->maUIName = (*aIter).second;
-+
-+                                // add it
-+                    rList.push_back( pPreset );
-+                }
-+            }
-+            else
-+                {
-+                    DBG_ERROR( "sd::TransitionPreset::importTransitionPresetList(), missformed xml configuration file, giving up!" );
-+                    break;
-+                }
-+        }
-+    } catch( Exception& ) {
-+        return false;
-+    }
-+
-+    return true;
-+}
-+
- bool TransitionPreset::importTransitionPresetList( TransitionPresetList& rList )
- {
-+    bool bRet = false;
-+
- 	try
- 	{
-+
- 		// Get service factory
- 		Reference< XMultiServiceFactory > xServiceFactory( comphelper::getProcessServiceFactory() );
- 		DBG_ASSERT( xServiceFactory.is(), "sd::CustomAnimationPresets::import(), got no service manager" );
-@@ -162,42 +214,10 @@ bool TransitionPreset::importTransitionP
- 		const OUString aTransitionPath( RTL_CONSTASCII_USTRINGPARAM( "/org.openoffice.Office.UI.Effects/UserInterface/Transitions" ) );
- 		implImportLabels( xConfigProvider, aTransitionPath, aTransitionNameMape );
- 
--		// import transition presets
--		INetURLObject	aURL( SvtPathOptions().GetConfigPath() );
--		aURL.Append( String( RTL_CONSTASCII_USTRINGPARAM("soffice.cfg") ) );
--		aURL.Append( String( RTL_CONSTASCII_USTRINGPARAM("simpress" ) ) );
--		aURL.Append( String( RTL_CONSTASCII_USTRINGPARAM("transitions.xml" ) ) );
-+        bRet = importTransitionsFile( rList, xServiceFactory, aTransitionNameMape, String( RTL_CONSTASCII_USTRINGPARAM( "transitions-ogl.xml" ) ) );
-+        bRet |= importTransitionsFile( rList, xServiceFactory, aTransitionNameMape, String( RTL_CONSTASCII_USTRINGPARAM( "transitions.xml" ) ) );
- 
--		Reference< XEnumerationAccess > xEnumerationAccess( implImportEffects( xServiceFactory, aURL.GetMainURL( INetURLObject::NO_DECODE ) ), UNO_QUERY_THROW );
--		Reference< XEnumeration > xEnumeration( xEnumerationAccess->createEnumeration(), UNO_QUERY_THROW );
--		while( xEnumeration->hasMoreElements() )
--		{
--			Reference< XAnimationNode > xChildNode( xEnumeration->nextElement(), UNO_QUERY_THROW );
--			if( xChildNode->getType() == AnimationNodeType::PAR )
--			{
--				// create it
--				TransitionPresetPtr pPreset( new TransitionPreset( xChildNode ) );
--
--				// name it
--				OUString aPresetId( pPreset->getPresetId() );
--				if( aPresetId.getLength() )
--				{
--					UStringMap::const_iterator aIter( aTransitionNameMape.find( aPresetId ) );
--					if( aIter != aTransitionNameMape.end() )
--						pPreset->maUIName = (*aIter).second;
--
--					// add it
--					rList.push_back( pPreset );
--				}
--			}
--			else
--			{
--				DBG_ERROR( "sd::TransitionPreset::importTransitionPresetList(), missformed xml configuration file, giving up!" );
--				break;
--			}
--		}
--
--		return true;
-+		return bRet;
- 	}
- 	catch( Exception& e )
- 	{
-@@ -205,7 +225,7 @@ bool TransitionPreset::importTransitionP
- 		DBG_ERROR( "sd::TransitionPreset::importResources(), Exception cought!" );
- 	}
- 
--	return false;
-+	return bRet;
- }
- 
- TransitionPresetList* TransitionPreset::mpTransitionPresetList = 0;
-@@ -237,4 +257,3 @@ void TransitionPreset::apply( SdPage* pS
- }
- 
- }
--
---- /dev/null	2007-09-21 21:12:45.000000000 +0200
-+++ sd/xml/transitions-ogl	2008-01-07 17:13:24.000000000 +0100
-@@ -0,0 +1,33 @@
-+<?xml version="1.0"?>
-+<anim:seq xmlns:office="urn:oasis:names:tc:openoffice:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:openoffice:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:openoffice:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:openoffice:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:openoffice:xmlns:drawing:1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format"; xmlns:xlink="http://www.w3.org/1999/xlink"; xmlns:dc="http://purl.org/dc/elements/1.1/"; xmlns:meta="urn:oasis:names:tc:openoffice:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:openoffice:xmlns:datastyle:1.0" xmlns:pres="urn:oasis:names:tc:openoffice:xmlns:presentation:1.0" xmlns:svg="http://www.w3.org/2000/svg"; xmlns:chart="urn:oasis:names:tc:openoffice:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:openoffice:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML"; xmlns:form="urn:oasis:names:tc:openoffice:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:openoffice:xmlns:script:1.0" xmlns:ooo="http://openoffice.or
 g/2004/office" xmlns:ooow="http://openoffice.org/2004/writer"; xmlns:oooc="http://openoffice.org/2004/calc"; xmlns:dom="http://www.w3.org/2001/xml-events"; xmlns:smil="http://www.w3.org/2001/SMIL20"; xmlns:anim="urn:oasis:names:tc:openoffice:xmlns:animation:1.0" pres:node-type="main-sequence">
-+ <anim:par pres:preset-id="tile-flip">
-+  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="across"/>
-+ </anim:par>
-+ <anim:par pres:preset-id="outside-cube">
-+  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="cornersOut"/>
-+ </anim:par>
-+ <anim:par pres:preset-id="revolving-circles">
-+  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="circle"/>
-+ </anim:par>
-+ <anim:par pres:preset-id="turning-helix">
-+  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="fanOutHorizontal"/>
-+ </anim:par>
-+ <anim:par pres:preset-id="inside-cube">
-+  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="cornersIn"/>
-+ </anim:par>
-+ <anim:par pres:preset-id="fall">
-+  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="leftToRight"/>
-+ </anim:par>
-+ <anim:par pres:preset-id="turn-around">
-+  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="topToBottom"/>
-+ </anim:par>
-+ <anim:par pres:preset-id="iris">
-+  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="topLeft"/>
-+ </anim:par>
-+ <anim:par pres:preset-id="turn-down">
-+  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="topRight"/>
-+ </anim:par>
-+ <anim:par pres:preset-id="rochade">
-+  <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="bottomRight"/>
-+ </anim:par>
-+ </anim:seq>
 diff -ru sd-orig/prj/build.lst sd/prj/build.lst
---- sd-orig/prj/build.lst	2008-01-07 17:09:15.000000000 +0100
+--- sd/prj/build.lst	2008-01-07 17:09:15.000000000 +0100
 +++ sd/prj/build.lst	2008-01-07 21:03:56.000000000 +0100
 @@ -31,7 +31,7 @@
  sd	sd\source\filter\cgm					nmake	-	all	sd_cgm sd_inc NULL
@@ -235,7 +17,6 @@
 -sd	sd\util									nmake	-	all	sd_util sd_app sd_cgm sd_core sd_dlg sd_docsh sd_eppt sd_filt sd_func sd_grf sd_unid sd_view sd_xml sd_html sd_ppt sd_accessibility sd_animations sd_toolpanel sd_toolpanel_controls sd_tools sd_slsshell sd_slsmodel sd_slsview sd_slscontroller sd_slscache sd_notes sd_slideshow sd_undo sd_helper sd_framework_pane sd_framework_view sd_framework_configuration sd_framework_module sd_framework_toolbar sd_framework_tools sd_framework_command NULL
 +sd	sd\util									nmake	-	all	sd_util sd_app sd_cgm sd_core sd_dlg sd_docsh sd_eppt sd_filt sd_func sd_grf sd_unid sd_view sd_filter_xml sd_html sd_ppt sd_accessibility sd_animations sd_toolpanel sd_toolpanel_controls sd_tools sd_slsshell sd_slsmodel sd_slsview sd_slscontroller sd_slscache sd_notes sd_slideshow sd_undo sd_helper sd_framework_pane sd_framework_view sd_framework_configuration sd_framework_module sd_framework_toolbar sd_framework_tools sd_framework_command NULL
 +sd	sd\xml									nmake	-	all	sd_xml NULL
-Only in sd/prj: build.lst.~1.17.~
 --- /dev/null	2007-09-21 21:12:45.000000000 +0200
 +++ sd/xml/makefile.mk	2008-01-07 17:19:14.000000000 +0100
 @@ -0,0 +1,13 @@

Copied: trunk/patches/src680/transogl-transitions-slideshow.diff (from r11320, /trunk/patches/src680/transogl01-reflections.diff)
==============================================================================
--- /trunk/patches/src680/transogl01-reflections.diff	(original)
+++ trunk/patches/src680/transogl-transitions-slideshow.diff	Fri Jan 18 16:21:14 2008
@@ -1,14 +1,3 @@
-diff -rup slideshow/source/engine/OGLTrans.orig/OGLTrans_TransitionerImpl.cxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx
---- slideshow/source/engine/OGLTrans.orig/OGLTrans_TransitionerImpl.cxx	2007-12-17 17:04:21.000000000 +0100
-+++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx	2007-12-18 12:05:30.000000000 +0100
-@@ -457,6 +457,7 @@ void SAL_CALL OGLTransitionerImpl::updat
-                               SlideSize.Width, SlideSize.Height,
-                               static_cast<double>(GLWin.Width),
-                               static_cast<double>(GLWin.Height) );
-+
- 	unx::glXSwapBuffers(GLWin.dpy, GLWin.win);
- 	if( pWindow )
-         pWindow->Show();
 diff -rup slideshow/source/engine/OGLTrans.orig/OGLTrans_TransitionImpl.cxx slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.cxx
 --- slideshow/source/engine/OGLTrans.orig/OGLTrans_TransitionImpl.cxx	2007-12-17 17:04:21.000000000 +0100
 +++ slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.cxx	2007-12-18 12:25:11.000000000 +0100
@@ -140,11 +129,7 @@
  
      glEnableClientState( GL_VERTEX_ARRAY );
      if(!Normals.empty())
-@@ -110,9 +185,17 @@ void Primitive::display(double nTime, do
-     glTexCoordPointer( 2, GL_DOUBLE, 0, &TexCoords[0] );
-     glVertexPointer( 3, GL_DOUBLE, 0, &Vertices[0] );
-     glDrawArrays( GL_TRIANGLES, 0, Vertices.size() );
-+
+@@ -113,6 +188,13 @@ void Primitive::display(double nTime, do
      glPopMatrix();
  }
  
@@ -200,7 +185,7 @@
  };
  
  class SceneObject
-@@ -137,6 +146,7 @@ public:
+@@ -138,6 +147,7 @@ public:
      Primitive(const Primitive& rvalue);
  	~Primitive();
  
@@ -208,3 +193,15 @@
      void display(double nTime, double SlideWidthScale, double SlideHeightScale);
      const Primitive& operator=(const Primitive& rvalue);
      
+diff --git a/slideshow/source/engine/OGLTrans/makefile.mk b/slideshow/source/engine/OGLTrans/makefile.mk
+index 44de526..73f41cd 100644
+--- slideshow/source/engine/OGLTrans/makefile.mk
++++ slideshow/source/engine/OGLTrans/makefile.mk
+@@ -63,6 +63,7 @@ SLOFILES = \
+         $(SLO)$/OGLTrans_TransitionImpl.obj \
+         $(SLO)$/OGLTrans_TransitionerImpl.obj
+         
++DLLPRE=
+ SHL1TARGET=$(TARGET).uno
+ 
+ SHL1STDLIBS= $(SALLIB) $(VCLLIB) $(CPPULIB) $(CPPUHELPERLIB) $(COMPHELPERLIB) $(CANVASTOOLSLIB) -lGL -lGLU -lX11



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]