38 , hasTransformation(false)
40 , blendFactors(nullptr)
42 , surroundColorsNumber(0)
70 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\tHeader: 0x" << std::hex <<
header);
81 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\tSolid color: 0x" << std::hex <<
color << std::dec);
87 sal_uInt32 foregroundColor;
88 sal_uInt32 backgroundColor;
94 solidColor =
::Color(
ColorAlpha, (foregroundColor >> 24), (foregroundColor >> 16) & 0xff, (foregroundColor >> 8) & 0xff, foregroundColor & 0xff);
95 secondColor =
::Color(
ColorAlpha, (backgroundColor >> 24), (backgroundColor >> 16) & 0xff, (backgroundColor >> 8) & 0xff, backgroundColor & 0xff);
96 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\tHatch style: 0x" << std::hex << style);
103 SAL_WARN(
"drawinglayer.emf",
"EMF+\tTODO: implement BrushTypeTextureFill brush");
113 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\tCenter color: 0x" << std::hex <<
color << std::dec);
127 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\tSurround color[" <<
i <<
"]: 0x" << std::hex <<
color << std::dec);
132 sal_Int32 pathLength;
135 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\tPath length: " << pathLength);
137 sal_uInt64
const pos = s.
Tell();
139 sal_uInt32 pathHeader;
140 sal_Int32 pathPoints, pathFlags;
143 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\tPath (brush path gradient)");
144 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\t\tHeader: 0x" << std::hex << pathHeader);
145 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\t\tPoints: " << std::dec << pathPoints);
146 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\t\tAdditional flags: 0x" << std::hex << pathFlags << std::dec);
149 path->Read(s, pathFlags);
153 const ::basegfx::B2DRectangle aBounds(::basegfx::utils::getRange(
path->GetPolygon(rR,
false)));
154 aWidth = aBounds.getWidth();
156 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\tPolygon bounding box: " << aBounds.getMinX() <<
"," << aBounds.getMinY() <<
" "
157 << aBounds.getWidth() <<
"x" << aBounds.getHeight());
161 sal_Int32 boundaryPointCount;
164 sal_uInt64
const pos = s.
Tell();
165 SAL_INFO(
"drawinglayer.emf",
"EMF+\t use boundary, points: " << boundaryPointCount);
169 s.
Seek(
pos + 8 * boundaryPointCount);
171 const ::basegfx::B2DRectangle aBounds(::basegfx::utils::getRange(
path->GetPolygon(rR,
false)));
172 aWidth = aBounds.getWidth();
174 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\tPolygon bounding box: " << aBounds.getMinX() <<
"," << aBounds.getMinY() <<
" "
175 << aBounds.getWidth() <<
"x" << aBounds.getHeight());
188 SAL_WARN(
"drawinglayer.emf",
"EMF+\t Brush must not contain both BrushDataPresetColors and BrushDataBlendFactorsH");
228 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\tColor[" <<
i <<
"]: 0x" << std::hex <<
color << std::dec);
237 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\tLinear gradient, additional flags: 0x" << std::hex <<
additionalFlags << std::dec <<
", wrapMode: " <<
wrapMode);
244 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\tfirst color: 0x" << std::hex <<
color << std::dec);
247 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\tsecond color: 0x" << std::hex <<
color << std::dec);
262 SAL_WARN(
"drawinglayer.emf",
"EMF+\t Brush must not contain both BrushDataPresetColors and BrushDataBlendFactorsH");
303 SAL_INFO(
"drawinglayer.emf",
"EMF+\t\t\t\tColor[" <<
i <<
"]: 0x" << std::hex <<
color << std::dec);
311 SAL_WARN(
"drawinglayer.emf",
"EMF+\tunhandled brush type: " << std::hex <<
type << std::dec);
constexpr sal_Int8 header[]
OUString AsRGBHexString() const
SvStream & ReadFloat(float &rFloat)
SvStream & ReadUInt32(sal_uInt32 &rUInt32)
sal_uInt64 Seek(sal_uInt64 nPos)
SvStream & ReadInt32(sal_Int32 &rInt32)
#define SAL_WARN(area, stream)
#define SAL_INFO(area, stream)
@ BrushTypeLinearGradient
static OUString BrushTypeToString(sal_uInt32 type)
std::unique_ptr<::Color[]> surroundColors
sal_uInt32 surroundColorsNumber
virtual ~EMFPBrush() override
sal_uInt32 colorblendPoints
std::unique_ptr< float[]> blendPositions
void Read(SvStream &s, EmfPlusHelperData const &rR)
sal_uInt32 additionalFlags
std::unique_ptr< float[]> colorblendPositions
std::unique_ptr< EMFPPath > path
basegfx::B2DHomMatrix brush_transformation
std::unique_ptr<::Color[]> colorblendColors
EmfPlusHatchStyle hatchStyle
static bool readXForm(SvStream &rIn, basegfx::B2DHomMatrix &rTarget)