summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndres Gomez <agomez@igalia.com>2017-07-14 21:58:05 +0300
committerAndres Gomez <agomez@igalia.com>2017-07-14 21:58:05 +0300
commit2542ddd4dcf2e7029120982d15f787e525b1d45f (patch)
tree0dc3480226a66c65474ba93eb1c693f8b7bdbff8
parent3a8cc82fefdcb567bde4bb2eca3ff610b5696bde (diff)
docs: add release notes for 17.1.5mesa-17.1.5
Signed-off-by: Andres Gomez <agomez@igalia.com>
-rw-r--r--docs/relnotes/17.1.5.html202
1 files changed, 202 insertions, 0 deletions
diff --git a/docs/relnotes/17.1.5.html b/docs/relnotes/17.1.5.html
new file mode 100644
index 00000000000..3dd79b08511
--- /dev/null
+++ b/docs/relnotes/17.1.5.html
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8">
+ <title>Mesa Release Notes</title>
+ <link rel="stylesheet" type="text/css" href="../mesa.css">
+</head>
+<body>
+
+<div class="header">
+ <h1>The Mesa 3D Graphics Library</h1>
+</div>
+
+<iframe src="../contents.html"></iframe>
+<div class="content">
+
+<h1>Mesa 17.1.5 Release Notes / July 14, 2017</h1>
+
+<p>
+Mesa 17.1.5 is a bug fix release which fixes bugs found since the 17.1.4 release.
+</p>
+<p>
+Mesa 17.1.5 implements the OpenGL 4.5 API, but the version reported by
+glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
+glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 4.5. OpenGL
+4.5 is <strong>only</strong> available if requested at context creation
+because compatibility contexts are not supported.
+</p>
+
+
+<h2>SHA256 checksums</h2>
+<pre>
+TBD
+</pre>
+
+
+<h2>New features</h2>
+<p>None</p>
+
+
+<h2>Bug fixes</h2>
+
+<ul>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=100242">Bug 100242</a> - radeon buffer allocation failure during startup of Factorio</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101657">Bug 101657</a> - strtod.c:32:10: fatal error: xlocale.h: No such file or directory</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101666">Bug 101666</a> - bitfieldExtract is marked as a built-in function on OpenGL ES 3.0, but was added in OpenGL ES 3.1</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101703">Bug 101703</a> - No stencil buffer allocated when requested by GLUT</li>
+
+</ul>
+
+
+<h2>Changes</h2>
+
+<p>Aaron Watry (1):</p>
+<ul>
+ <li>radeon/winsys: Limit max allocation size to 70% of VRAM</li>
+</ul>
+
+<p>Aleksander Morgado (2):</p>
+<ul>
+ <li>etnaviv: fix refcnt initialization in etna_screen</li>
+ <li>etnaviv: don't dereference etna_resource pointer if allocation fails</li>
+</ul>
+
+<p>Alex Smith (2):</p>
+<ul>
+ <li>ac/nir: Use correct LLVM intrinsics for atomic ops on imageBuffers</li>
+ <li>ac/nir: Fix ordering of parameters for image atomic cmpswap intrinsics</li>
+</ul>
+
+<p>Andres Gomez (3):</p>
+<ul>
+ <li>docs: add sha256 checksums for 17.1.4</li>
+ <li>cherry-ignore: i965: Fix anisotropic filtering for mag filter</li>
+ <li>Update version to 17.1.5</li>
+</ul>
+
+<p>Anuj Phogat (2):</p>
+<ul>
+ <li>intel/isl: Use uint64_t to store total surface size</li>
+ <li>intel/isl: Add the maximum surface size limit</li>
+</ul>
+
+<p>Brian Paul (3):</p>
+<ul>
+ <li>draw: check for line_width != 1.0f in validate_pipeline()</li>
+ <li>svga: clamp device line width to at least 1 to fix HWv8 line stippling</li>
+ <li>svga: fix PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE value</li>
+</ul>
+
+<p>Bruce Cherniak (1):</p>
+<ul>
+ <li>swr: Limit memory held by defer deleted resources.</li>
+</ul>
+
+<p>Chandu Babu N (1):</p>
+<ul>
+ <li>st/va: Fix leak in VAAPI subpictures</li>
+</ul>
+
+<p>Charmaine Lee (1):</p>
+<ul>
+ <li>svga: fixed surface size to include array size</li>
+</ul>
+
+<p>Connor Abbott (2):</p>
+<ul>
+ <li>spirv: fix OpBitcast when the src and dst bitsize are different (v3)</li>
+ <li>ac/nir: implement 64-bit packing and unpacking</li>
+</ul>
+
+<p>Iago Toral Quiroga (1):</p>
+<ul>
+ <li>glsl: gl_Max{Vertex,Fragment}UniformComponents exist in all desktop GL versions</li>
+</ul>
+
+<p>Ilia Mirkin (1):</p>
+<ul>
+ <li>glsl: check if any of the named builtins are available first</li>
+</ul>
+
+<p>James Legg (2):</p>
+<ul>
+ <li>ac/nir: Make intrinsic_name buffer long enough</li>
+ <li>spirv: Fix reaching unreachable for compare exchange on images</li>
+</ul>
+
+<p>Jason Ekstrand (1):</p>
+<ul>
+ <li>nir/spirv: Use the type from the deref for atomics</li>
+</ul>
+
+<p>Juan A. Suarez Romero (1):</p>
+<ul>
+ <li>glsl: do not call link_xfb_stride_layout_qualifiers() for fragment shaders</li>
+</ul>
+
+<p>Kenneth Graunke (2):</p>
+<ul>
+ <li>i965: Use true AA line distance on G45/Ironlake.</li>
+ <li>i965: Always set AALINEDISTANCE_TRUE on Sandybridge.</li>
+</ul>
+
+<p>Lucas Stach (1):</p>
+<ul>
+ <li>etnaviv: fix shader miscompilation with more than 16 labels</li>
+</ul>
+
+<p>Marek Olšák (1):</p>
+<ul>
+ <li>gallium/radeon: fix a possible crash for buffer exports</li>
+</ul>
+
+<p>Neha Bhende (1):</p>
+<ul>
+ <li>svga: loop over box.depth for ReadBack_image on each slice</li>
+</ul>
+
+<p>Nicolai Hähnle (1):</p>
+<ul>
+ <li>winsys/radeon: only call pb_slabs_reclaim when slabs are actually used</li>
+</ul>
+
+<p>Olivier Lauffenburger (1):</p>
+<ul>
+ <li>st/wgl: improve selection of pixel format</li>
+</ul>
+
+<p>Philipp Zabel (1):</p>
+<ul>
+ <li>st/mesa: release EGLImage on EGLImageTarget* error</li>
+</ul>
+
+<p>Plamena Manolova (1):</p>
+<ul>
+ <li>mesa/main: Move NULL pointer check.</li>
+</ul>
+
+<p>Tim Rowley (2):</p>
+<ul>
+ <li>swr/rast: _mm*_undefined_* implementations for gcc&lt;4.9</li>
+ <li>swr/rast: Correctly allocate SWR_STATS memory as cacheline aligned</li>
+</ul>
+
+<p>Tomasz Figa (1):</p>
+<ul>
+ <li>intel: common: Fix link failure with standalone Android build</li>
+</ul>
+
+<p>Vinson Lee (1):</p>
+<ul>
+ <li>scons: Check for xlocale.h before defining HAVE_XLOCALE_H.</li>
+</ul>
+
+</div>
+</body>
+</html>
tion value='feature/opengl-canvas-rework'>feature/opengl-canvas-rework main, development code repositoryroot
summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorsj <sj@openoffice.org>2010-06-04 21:03:24 +0200
committersj <sj@openoffice.org>2010-06-04 21:03:24 +0200
commitf8a226ebeb998080394cf662bd5fee542d6d1691 (patch)
tree57dc0359cbf66992f2d37f195d640ebc36af0d16 /oox
parent394385ef1745762e14445519557e2c2d59614273 (diff)
impress190: #i112086# added support of CustomGeometry
Diffstat (limited to 'oox')
-rw-r--r--oox/inc/oox/drawingml/customshapeproperties.hxx265
-rw-r--r--oox/source/drawingml/customshapegeometry.cxx1083
-rw-r--r--oox/source/drawingml/customshapeproperties.cxx196
-rw-r--r--oox/source/token/properties.txt17
-rw-r--r--oox/source/token/tokens.txt26
5 files changed, 1469 insertions, 118 deletions
diff --git a/oox/inc/oox/drawingml/customshapeproperties.hxx b/oox/inc/oox/drawingml/customshapeproperties.hxx
index 4e4b82cd5acd..62e42701b273 100644
--- a/oox/inc/oox/drawingml/customshapeproperties.hxx
+++ b/oox/inc/oox/drawingml/customshapeproperties.hxx
@@ -25,65 +25,244 @@
*
************************************************************************/
-#ifndef OOX_DRAWINGML_CUSTOMSHAPEPROPERTIES_HXX
-#define OOX_DRAWINGML_CUSTOMSHAPEPROPERTIES_HXX
-
+#include "oox/drawingml/customshapeproperties.hxx"
+#include "oox/helper/helper.hxx"
#include "oox/helper/propertymap.hxx"
-#include "oox/drawingml/color.hxx"
-#include <com/sun/star/graphic/XGraphic.hpp>
-#include <boost/shared_ptr.hpp>
+#include "oox/helper/propertyset.hxx"
+#include "oox/core/namespaces.hxx"
+#include "properties.hxx"
#include "tokens.hxx"
-#include <vector>
-#include <map>
-#include <com/sun/star/drawing/EnhancedCustomShapeParameterPair.hpp>
-#include <com/sun/star/drawing/EnhancedCustomShapeParameterType.hpp>
-#include <com/sun/star/drawing/EnhancedCustomShapeSegment.hpp>
-#include <com/sun/star/drawing/EnhancedCustomShapeGluePointType.hpp>
-#include <com/sun/star/drawing/EnhancedCustomShapeSegmentCommand.hpp>
-#include <com/sun/star/drawing/EnhancedCustomShapeTextFrame.hpp>
-#include <com/sun/star/drawing/EnhancedCustomShapeAdjustmentValue.hpp>
-#include <com/sun/star/drawing/EnhancedCustomShapeTextPathMode.hpp>
-#ifndef __com_sun_star_beans_PropertyValues_hpp__
-#include <com/sun/star/beans/PropertyValues.hpp>
-#endif
-#include <com/sun/star/drawing/ProjectionMode.hpp>
+#include <com/sun/star/awt/Rectangle.hpp>
+#include <com/sun/star/beans/XMultiPropertySet.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/graphic/XGraphicTransformer.hpp>
#include <com/sun/star/drawing/XShape.hpp>
+#include <com/sun/star/drawing/XEnhancedCustomShapeDefaulter.hpp>
+
+using rtl::OUString;
+using namespace ::oox::core;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::graphic;
+using namespace ::com::sun::star::drawing;
namespace oox { namespace drawingml {
-class CustomShapeProperties;
+CustomShapeProperties::CustomShapeProperties()
+{
+}
+CustomShapeProperties::~CustomShapeProperties()
+{
+}
-typedef boost::shared_ptr< CustomShapeProperties > CustomShapePropertiesPtr;
+sal_Int32 CustomShapeProperties::SetCustomShapeGuideValue( std::vector< CustomShapeGuide >& rGuideList, const CustomShapeGuide& rGuide )
+{
+ sal_uInt32 nIndex = 0;
+ for( ; nIndex < rGuideList.size(); nIndex++ )
+ {
+ if ( rGuideList[ nIndex ].maName == rGuide.maName )
+ break;
+ }
+ if ( nIndex == rGuideList.size() )
+ rGuideList.push_back( rGuide );
+ return static_cast< sal_Int32 >( nIndex );
+}
-struct CustomShapeGuide
+// returns the index into the guidelist for a given formula name,
+// if the return value is < 0 then the guide value could not be found
+sal_Int32 CustomShapeProperties::GetCustomShapeGuideValue( const std::vector< CustomShapeGuide >& rGuideList, const rtl::OUString& rFormulaName )
{
- rtl::OUString maName;
- rtl::OUString maFormula;
-};
+ sal_Int32 nIndex = 0;
+ for( ; nIndex < static_cast< sal_Int32 >( rGuideList.size() ); nIndex++ )
+ {
+ if ( rGuideList[ nIndex ].maName == rFormulaName )
+ break;
+ }
+ if ( nIndex == static_cast< sal_Int32 >( rGuideList.size() ) )
+ nIndex = -1;
+ return nIndex;
+}
-class CustomShapeProperties
+void CustomShapeProperties::apply( const CustomShapePropertiesPtr& /* rSourceCustomShapeProperties */ )
{
-public:
+ // not sure if this needs to be implemented
+}
- CustomShapeProperties();
- virtual ~CustomShapeProperties();
+void CustomShapeProperties::pushToPropSet( const ::oox::core::FilterBase& /* rFilterBase */,
+ const Reference < XPropertySet >& xPropSet, const Reference < XShape > & xShape ) const
+{
+ if ( maShapePresetType.getLength() )
+ {
+ //const uno::Reference < drawing::XShape > xShape( xPropSet, UNO_QUERY );
+ Reference< drawing::XEnhancedCustomShapeDefaulter > xDefaulter( xShape, UNO_QUERY );
+ if( xDefaulter.is() )
+ xDefaulter->createCustomShapeDefaults( maShapePresetType );
- void apply( const CustomShapePropertiesPtr& );
- void pushToPropSet( const ::oox::core::FilterBase& rFilterBase,
- const ::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySet > & xPropSet,
- const ::com::sun::star::uno::Reference < ::com::sun::star::drawing::XShape > & xShape) const;
+ if ( maAdjustmentGuideList.size() )
+ {
+ const OUString sType = CREATE_OUSTRING( "Type" );
+ const OUString sCustomShapeGeometry( RTL_CONSTASCII_USTRINGPARAM( "CustomShapeGeometry" ) );
+ uno::Any aGeoPropSet = xPropSet->getPropertyValue( sCustomShapeGeometry );
+ uno::Sequence< beans::PropertyValue > aGeoPropSeq;
+ if ( aGeoPropSet >>= aGeoPropSeq )
+ {
+ sal_Int32 i, nCount = aGeoPropSeq.getLength();
+ for ( i = 0; i < nCount; i++ )
+ {
+ const rtl::OUString sAdjustmentValues( RTL_CONSTASCII_USTRINGPARAM( "AdjustmentValues" ) );
+ if ( aGeoPropSeq[ i ].Name.equals( sAdjustmentValues ) )
+ {
+ uno::Sequence< com::sun::star::drawing::EnhancedCustomShapeAdjustmentValue > aAdjustmentSeq;
+ if ( aGeoPropSeq[ i ].Value >>= aAdjustmentSeq )
+ {
+ std::vector< CustomShapeGuide >::const_iterator aIter( maAdjustmentGuideList.begin() );
+ while( aIter != maAdjustmentGuideList.end() )
+ {
+ if ( (*aIter).maName.getLength() > 3 )
+ {
+ sal_Int32 nAdjustmentIndex = (*aIter).maName.copy( 3 ).toInt32() - 1;
+ if ( ( nAdjustmentIndex >= 0 ) && ( nAdjustmentIndex < aAdjustmentSeq.getLength() ) )
+ {
+ EnhancedCustomShapeAdjustmentValue aAdjustmentVal;
+ aAdjustmentVal.Value <<= (*aIter).maFormula.toInt32();
+ aAdjustmentVal.State = PropertyState_DIRECT_VALUE;
+ aAdjustmentSeq[ nAdjustmentIndex ] = aAdjustmentVal;
+ }
+ }
+ aIter++;
+ }
+ aGeoPropSeq[ i ].Value <<= aAdjustmentSeq;
+ xPropSet->setPropertyValue( sCustomShapeGeometry, Any( aGeoPropSeq ) );
+ }
+ }
+ else if ( aGeoPropSeq[ i ].Name.equals( sType ) )
+ {
+ aGeoPropSeq[ i ].Value <<= maShapePresetType;
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ sal_uInt32 i;
+ PropertyMap aPropertyMap;
+ aPropertyMap[ PROP_Type ] <<= CREATE_OUSTRING( "non-primitive" );
- void setShapePresetType( const rtl::OUString& rShapePresetType ){ maShapePresetType = rShapePresetType; };
- std::vector< CustomShapeGuide >& getAdjustmentValues(){ return maAdjustmentValues; };
+ awt::Size aSize( xShape->getSize() );
+ awt::Rectangle aViewBox( 0, 0, aSize.Width * 360, aSize.Height * 360 );
+ if ( maPath2DList.size() )
+ { // TODO: each polygon may have its own size, but I think it is rather been used
+ // so we are only taking care of the first
+ if ( maPath2DList[ 0 ].w )
+ aViewBox.Width = static_cast< sal_Int32 >( maPath2DList[ 0 ].w );
+ if ( maPath2DList[ 0 ].h )
+ aViewBox.Height = static_cast< sal_Int32 >( maPath2DList[ 0 ].h );
+ }
+ aPropertyMap[ PROP_ViewBox ] <<= aViewBox;
- double getValue( const std::vector< CustomShapeGuide >&, sal_uInt32 nIndex ) const;
+ Sequence< EnhancedCustomShapeAdjustmentValue > aAdjustmentValues( maAdjustmentGuideList.size() );
+ for ( i = 0; i < maAdjustmentGuideList.size(); i++ )
+ {
+ EnhancedCustomShapeAdjustmentValue aAdjustmentVal;
+ aAdjustmentVal.Value <<= maAdjustmentGuideList[ i ].maFormula.toInt32();
+ aAdjustmentVal.State = PropertyState_DIRECT_VALUE;
+ aAdjustmentValues[ i ] = aAdjustmentVal;
+ }
+ aPropertyMap[ PROP_AdjustmentValues ] <<= aAdjustmentValues;
-private:
+ Sequence< rtl::OUString > aEquations( maGuideList.size() );
+ for ( i = 0; i < maGuideList.size(); i++ )
+ aEquations[ i ] = maGuideList[ i ].maFormula;
+ aPropertyMap[ PROP_Equations ] <<= aEquations;
- rtl::OUString maShapePresetType;
- std::vector< CustomShapeGuide > maAdjustmentValues;
-};
+ PropertyMap aPath;
+ Sequence< EnhancedCustomShapeSegment > aSegments( maSegments.size() );
+ for ( i = 0; i < maSegments.size(); i++ )
+ aSegments[ i ] = maSegments[ i ];
+ aPath[ PROP_Segments ] <<= aSegments;
+ sal_uInt32 j, k, nParameterPairs = 0;
+ for ( i = 0; i < maPath2DList.size(); i++ )
+ nParameterPairs += maPath2DList[ i ].parameter.size();
+ Sequence< EnhancedCustomShapeParameterPair > aParameterPairs( nParameterPairs );
+ for ( i = 0, k = 0; i < maPath2DList.size(); i++ )
+ for ( j = 0; j < maPath2DList[ i ].parameter.size(); j++ )
+ aParameterPairs[ k++ ] = maPath2DList[ i ].parameter[ j ];
+ aPath[ PROP_Coordinates ] <<= aParameterPairs;
+ Sequence< PropertyValue > aPathSequence = aPath.makePropertyValueSequence();
+ aPropertyMap[ PROP_Path ] <<= aPathSequence;
-} }
+ Sequence< PropertyValues > aHandles( maAdjustHandleList.size() );
+ for ( i = 0; i < maAdjustHandleList.size(); i++ )
+ {
+ PropertyMap aHandle;
+ // maAdjustmentHandle[ i ].gdRef1 ... maAdjustmentHandle[ i ].gdRef2 ... :(
+ // gdRef1 && gdRef2 -> we do not offer such reference, so it is difficult
+ // to determine the correct adjustment handle that should be updated with the adjustment
+ // position. here is the solution: the adjustment value that is used within the position
+ // has to be updated, in case the position is a formula the first usage of a
+ // adjument value is decisive
+ if ( maAdjustHandleList[ i ].polar )
+ {
+ aHandle[ PROP_Position ] <<= maAdjustHandleList[ i ].pos;
+ if ( maAdjustHandleList[ i ].min1.has() )
+ aHandle[ PROP_RadiusRangeMinimum ] <<= maAdjustHandleList[ i ].min1.get();
+ if ( maAdjustHandleList[ i ].max1.has() )
+ aHandle[ PROP_RadiusRangeMaximum ] <<= maAdjustHandleList[ i ].max1.get();
-#endif // OOX_DRAWINGML_CUSTOMSHAPEPROPERTIES_HXX
+ /* TODO: AngleMin & AngleMax
+ if ( maAdjustHandleList[ i ].min2.has() )
+ aHandle[ PROP_ ] = maAdjustHandleList[ i ].min2.get();
+ if ( maAdjustHandleList[ i ].max2.has() )
+ aHandle[ PROP_ ] = maAdjustHandleList[ i ].max2.get();
+ */
+ }
+ else
+ {
+ aHandle[ PROP_Position ] <<= maAdjustHandleList[ i ].pos;
+ if ( maAdjustHandleList[ i ].gdRef1.has() )
+ {
+ // TODO: PROP_RefX and PROP_RefY are not yet part of our file format,
+ // so the handles will not work after save/reload
+ sal_Int32 nIndex = GetCustomShapeGuideValue( maAdjustmentGuideList, maAdjustHandleList[ i ].gdRef1.get() );
+ if ( nIndex >= 0 )
+ aHandle[ PROP_RefX ] <<= nIndex;
+ }
+ if ( maAdjustHandleList[ i ].gdRef2.has() )
+ {
+ sal_Int32 nIndex = GetCustomShapeGuideValue( maAdjustmentGuideList, maAdjustHandleList[ i ].gdRef2.get() );
+ if ( nIndex >= 0 )
+ aHandle[ PROP_RefY ] <<= nIndex;
+ }
+ if ( maAdjustHandleList[ i ].min1.has() )
+ aHandle[ PROP_RangeXMinimum ] <<= maAdjustHandleList[ i ].min1.get();
+ if ( maAdjustHandleList[ i ].max1.has() )
+ aHandle[ PROP_RangeXMaximum ] <<= maAdjustHandleList[ i ].max1.get();
+ if ( maAdjustHandleList[ i ].min2.has() )
+ aHandle[ PROP_RangeYMinimum ] <<= maAdjustHandleList[ i ].min2.get();
+ if ( maAdjustHandleList[ i ].max2.has() )
+ aHandle[ PROP_RangeYMaximum ] <<= maAdjustHandleList[ i ].max2.get();
+ }
+ aHandles[ i ] = aHandle.makePropertyValueSequence();
+ }
+ aPropertyMap[ PROP_Handles ] <<= aHandles;
+
+ // converting the vector to a sequence
+ Sequence< PropertyValue > aSeq = aPropertyMap.makePropertyValueSequence();
+ PropertySet aPropSet( xPropSet );
+ aPropSet.setProperty( PROP_CustomShapeGeometry, aSeq );
+ }
+}
+
+double CustomShapeProperties::getValue( const std::vector< CustomShapeGuide >& rGuideList, sal_uInt32 nIndex ) const
+{
+ double fRet = 0.0;
+ if ( nIndex < rGuideList.size() )
+ {
+
+ }
+ return fRet;
+}
+
+} }
diff --git a/oox/source/drawingml/customshapegeometry.cxx b/oox/source/drawingml/customshapegeometry.cxx
index decb759579f3..98fa68729847 100644
--- a/oox/source/drawingml/customshapegeometry.cxx
+++ b/oox/source/drawingml/customshapegeometry.cxx
@@ -30,8 +30,9 @@
#include <com/sun/star/xml/sax/FastToken.hpp>
#include <comphelper/stl_types.hxx>
#include <hash_map>
-
#include "oox/helper/helper.hxx"
+#include "oox/helper/attributelist.hxx"
+#include "oox/token/tokenmap.hxx"
#include "oox/helper/propertymap.hxx"
#include "oox/core/namespaces.hxx"
#include "tokens.hxx"
@@ -39,6 +40,8 @@
using ::rtl::OUString;
using namespace ::oox::core;