PictureDataWriter: Style fixes only

No functional change intended
This commit is contained in:
John Scipione
2015-03-16 20:19:52 -04:00
parent 70adf6d5d3
commit 2c3505de79
2 changed files with 239 additions and 188 deletions
+41 -22
View File
@@ -1,9 +1,9 @@
/*
* Copyright 2006-2007, Haiku Inc.
* Copyright 2006-2007 Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Stefano Ceccherini ([email protected])
* Stefano Ceccherini, [email protected]
*/
#ifndef _PICTURE_DATA_WRITER_H
#define _PICTURE_DATA_WRITER_H
@@ -16,10 +16,10 @@
#include <stack>
class BPositionIO;
class BRegion;
class PictureDataWriter {
public:
PictureDataWriter();
@@ -34,10 +34,12 @@ public:
status_t WriteSetDrawingMode(const drawing_mode& mode);
status_t WriteSetPenLocation(const BPoint& point);
status_t WriteSetPenSize(const float& penSize);
status_t WriteSetLineMode(const cap_mode &cap, const join_mode &join, const float &miterLimit);
status_t WriteSetLineMode(const cap_mode& cap,
const join_mode& join,
const float& miterLimit);
status_t WriteSetScale(const float& scale);
status_t WriteSetTransform(BAffineTransform transform);
status_t WriteSetPattern(const pattern &pat);
status_t WriteSetPattern(const ::pattern& pattern);
status_t WriteSetClipping(const BRegion& region);
status_t WriteClearClipping();
@@ -54,36 +56,53 @@ public:
status_t WriteSetFontShear(const float& shear);
status_t WriteSetFontFace(const int32& face);
status_t WriteStrokeLine(const BPoint &start, const BPoint &end);
status_t WriteStrokeLine(const BPoint& start,
const BPoint& end);
status_t WriteInvertRect(const BRect& rect);
status_t WriteDrawRect(const BRect &rect, const bool &fill);
status_t WriteDrawRoundRect(const BRect &rect, const BPoint &radius, const bool &fill);
status_t WriteDrawEllipse(const BRect &rect, const bool &fill);
status_t WriteDrawArc(const BPoint &center, const BPoint &radius,
const float &startTheta, const float &arcTheta, const bool &fill);
status_t WriteDrawPolygon(const int32 &numPoints, BPoint *points,
const bool &isClosed, const bool &fill);
status_t WriteDrawBezier(const BPoint points[4], const bool &fill);
status_t WriteDrawString(const BPoint &where, const char *string,
const int32 &length, const escapement_delta &delta);
status_t WriteDrawShape(const int32 &opCount, const void *opList,
const int32 &ptCount, const void *ptList, const bool &fill);
status_t WriteDrawBitmap(const BRect &srcRect, const BRect &dstRect, const int32 &width, const int32 &height,
const int32 &bytesPerRow, const int32 &colorSpace, const int32 &flags,
status_t WriteDrawRect(const BRect& rect,
const bool& fill);
status_t WriteDrawRoundRect(const BRect& rect,
const BPoint& radius, const bool& fill);
status_t WriteDrawEllipse(const BRect& rect,
const bool& fill);
status_t WriteDrawArc(const BPoint& center,
const BPoint& radius,
const float& startTheta,
const float& arcTheta, const bool& fill);
status_t WriteDrawPolygon(const int32& numPoints,
BPoint* points, const bool& isClosed,
const bool& fill);
status_t WriteDrawBezier(const BPoint points[4],
const bool& fill);
status_t WriteDrawString(const BPoint& where,
const char* string, const int32& length,
const escapement_delta& delta);
status_t WriteDrawShape(const int32& opCount,
const void* opList, const int32& ptCount,
const void* ptList, const bool& fill);
status_t WriteDrawBitmap(const BRect& srcRect,
const BRect& dstRect, const int32& width,
const int32& height,
const int32& bytesPerRow,
const int32& colorSpace,
const int32& flags,
const void* data, const int32& length);
status_t WriteDrawPicture(const BPoint &where, const int32 &token);
status_t WriteDrawPicture(const BPoint& where,
const int32& token);
protected:
// throw a status_t on error
void BeginOp(const int16& op);
void EndOp();
void WriteData(const void* data, size_t size);
template <typename T> void Write(const T &data) { WriteData(&data, sizeof(data)); }
template <typename T> void Write(const T& data)
{ WriteData(&data, sizeof(data)); }
private:
BPositionIO* fData;
std::stack<off_t> fStack;
};
#endif // _PICTURE_DATA_WRITER_H
+65 -33
View File
@@ -1,9 +1,9 @@
/*
* Copyright 2006-2009, Haiku Inc.
* Copyright 2006-2009 Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Stefano Ceccherini ([email protected])
* Stefano Ceccherini, [email protected]
*/
#include <PictureDataWriter.h>
@@ -20,6 +20,7 @@
#define THROW_ERROR(error) throw (status_t)(error)
// TODO: Review writing of strings. AFAIK in the picture data format
// They are not supposed to be NULL terminated
// (at least, it's not mandatory) so we should write their size too.
@@ -47,7 +48,9 @@ PictureDataWriter::SetTo(BPositionIO *data)
{
if (data == NULL)
return B_BAD_VALUE;
fData = data;
return B_OK;
}
@@ -62,6 +65,7 @@ PictureDataWriter::WriteSetOrigin(const BPoint &point)
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -80,6 +84,7 @@ PictureDataWriter::WriteInvertRect(const BRect &rect)
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -94,6 +99,7 @@ PictureDataWriter::WriteSetDrawingMode(const drawing_mode &mode)
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -108,6 +114,7 @@ PictureDataWriter::WriteSetPenLocation(const BPoint &point)
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -122,13 +129,14 @@ PictureDataWriter::WriteSetPenSize(const float &penSize)
} catch (status_t& status) {
return status;
}
return B_OK;
}
status_t
PictureDataWriter::WriteSetLineMode(const cap_mode &cap,
const join_mode &join, const float &miterLimit)
PictureDataWriter::WriteSetLineMode(const cap_mode& cap, const join_mode& join,
const float& miterLimit)
{
try {
BeginOp(B_PIC_SET_LINE_MODE);
@@ -139,6 +147,7 @@ PictureDataWriter::WriteSetLineMode(const cap_mode &cap,
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -153,6 +162,7 @@ PictureDataWriter::WriteSetScale(const float &scale)
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -167,20 +177,22 @@ PictureDataWriter::WriteSetTransform(BAffineTransform transform)
} catch (status_t& status) {
return status;
}
return B_OK;
}
status_t
PictureDataWriter::WriteSetPattern(const pattern &pat)
PictureDataWriter::WriteSetPattern(const ::pattern& pattern)
{
try {
BeginOp(B_PIC_SET_STIPLE_PATTERN);
Write<pattern>(pat);
Write< ::pattern>(pattern);
EndOp();
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -194,9 +206,9 @@ PictureDataWriter::WriteSetClipping(const BRegion &region)
if (numRects > 0 && region.Frame().IsValid()) {
BeginOp(B_PIC_SET_CLIPPING_RECTS);
Write<uint32>(numRects);
for (int32 i = 0; i < numRects; i++) {
for (int32 i = 0; i < numRects; i++)
Write<BRect>(region.RectAt(i));
}
EndOp();
} else
WriteClearClipping();
@@ -217,6 +229,7 @@ PictureDataWriter::WriteClearClipping()
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -231,6 +244,7 @@ PictureDataWriter::WriteSetHighColor(const rgb_color &color)
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -245,13 +259,13 @@ PictureDataWriter::WriteSetLowColor(const rgb_color &color)
} catch (status_t& status) {
return status;
}
return B_OK;
}
status_t
PictureDataWriter::WriteDrawRect(const BRect &rect,
const bool &fill)
PictureDataWriter::WriteDrawRect(const BRect& rect, const bool& fill)
{
try {
BeginOp(fill ? B_PIC_FILL_RECT : B_PIC_STROKE_RECT);
@@ -260,13 +274,14 @@ PictureDataWriter::WriteDrawRect(const BRect &rect,
} catch (status_t& status) {
return status;
}
return B_OK;
}
status_t
PictureDataWriter::WriteDrawRoundRect(const BRect &rect,
const BPoint &radius, const bool &fill)
PictureDataWriter::WriteDrawRoundRect(const BRect& rect, const BPoint& radius,
const bool& fill)
{
try {
BeginOp(fill ? B_PIC_FILL_ROUND_RECT : B_PIC_STROKE_ROUND_RECT);
@@ -276,6 +291,7 @@ PictureDataWriter::WriteDrawRoundRect(const BRect &rect,
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -290,14 +306,14 @@ PictureDataWriter::WriteDrawEllipse(const BRect &rect, const bool &fill)
} catch (status_t& status) {
return status;
}
return B_OK;
}
status_t
PictureDataWriter::WriteDrawArc(const BPoint &center,
const BPoint &radius, const float &startTheta,
const float &arcTheta, const bool &fill)
PictureDataWriter::WriteDrawArc(const BPoint& center, const BPoint& radius,
const float& startTheta, const float& arcTheta, const bool& fill)
{
try {
BeginOp(fill ? B_PIC_FILL_ARC : B_PIC_STROKE_ARC);
@@ -309,48 +325,52 @@ PictureDataWriter::WriteDrawArc(const BPoint &center,
} catch (status_t& status) {
return status;
}
return B_OK;
}
status_t
PictureDataWriter::WriteDrawPolygon(const int32 &numPoints,
BPoint *points, const bool &isClosed, const bool &fill)
PictureDataWriter::WriteDrawPolygon(const int32& numPoints, BPoint* points,
const bool& isClosed, const bool& fill)
{
try {
BeginOp(fill ? B_PIC_FILL_POLYGON : B_PIC_STROKE_POLYGON);
Write<int32>(numPoints);
for (int32 i = 0; i < numPoints; i++)
Write<BPoint>(points[i]);
if (!fill)
Write<uint8>((uint8)isClosed);
EndOp();
} catch (status_t& status) {
return status;
}
return B_OK;
}
status_t
PictureDataWriter::WriteDrawBezier(const BPoint points[4],
const bool &fill)
PictureDataWriter::WriteDrawBezier(const BPoint points[4], const bool& fill)
{
try {
BeginOp(fill ? B_PIC_FILL_BEZIER : B_PIC_STROKE_BEZIER);
for (int32 i = 0; i < 4; i++)
Write<BPoint>(points[i]);
EndOp();
} catch (status_t& status) {
return status;
}
return B_OK;
}
status_t
PictureDataWriter::WriteStrokeLine(const BPoint &start,
const BPoint &end)
PictureDataWriter::WriteStrokeLine(const BPoint& start, const BPoint& end)
{
try {
BeginOp(B_PIC_STROKE_LINE);
@@ -360,14 +380,14 @@ PictureDataWriter::WriteStrokeLine(const BPoint &start,
} catch (status_t& status) {
return status;
}
return B_OK;
}
status_t
PictureDataWriter::WriteDrawString(const BPoint &where,
const char *string, const int32 &length,
const escapement_delta &escapement)
PictureDataWriter::WriteDrawString(const BPoint& where, const char* string,
const int32& length, const escapement_delta& escapement)
{
try {
BeginOp(B_PIC_SET_PEN_LOCATION);
@@ -391,9 +411,8 @@ PictureDataWriter::WriteDrawString(const BPoint &where,
status_t
PictureDataWriter::WriteDrawShape(const int32 &opCount,
const void *opList, const int32 &ptCount, const void *ptList,
const bool &fill)
PictureDataWriter::WriteDrawShape(const int32& opCount, const void* opList,
const int32& ptCount, const void* ptList, const bool& fill)
{
try {
BeginOp(fill ? B_PIC_FILL_SHAPE : B_PIC_STROKE_SHAPE);
@@ -411,10 +430,10 @@ PictureDataWriter::WriteDrawShape(const int32 &opCount,
status_t
PictureDataWriter::WriteDrawBitmap(const BRect &srcRect,
const BRect &dstRect, const int32 &width, const int32 &height,
const int32 &bytesPerRow, const int32 &colorSpace,
const int32 &flags, const void *data, const int32 &length)
PictureDataWriter::WriteDrawBitmap(const BRect& srcRect, const BRect& dstRect,
const int32& width, const int32& height, const int32& bytesPerRow,
const int32& colorSpace, const int32& flags, const void* data,
const int32& length)
{
if (length != height * bytesPerRow)
debugger("PictureDataWriter::WriteDrawBitmap: invalid length");
@@ -432,13 +451,13 @@ PictureDataWriter::WriteDrawBitmap(const BRect &srcRect,
} catch (status_t& status) {
return status;
}
return B_OK;
}
status_t
PictureDataWriter::WriteDrawPicture(const BPoint &where,
const int32 &token)
PictureDataWriter::WriteDrawPicture(const BPoint& where, const int32& token)
{
// TODO: I'm not sure about this function. I think we need
// to attach the picture data too.
@@ -452,6 +471,7 @@ PictureDataWriter::WriteDrawPicture(const BPoint &where,
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -467,6 +487,7 @@ PictureDataWriter::WriteSetFontFamily(const font_family family)
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -482,6 +503,7 @@ PictureDataWriter::WriteSetFontStyle(const font_style style)
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -496,6 +518,7 @@ PictureDataWriter::WriteSetFontSpacing(const int32 &spacing)
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -510,6 +533,7 @@ PictureDataWriter::WriteSetFontSize(const float &size)
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -524,6 +548,7 @@ PictureDataWriter::WriteSetFontRotation(const float &rotation)
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -538,6 +563,7 @@ PictureDataWriter::WriteSetFontEncoding(const int32 &encoding)
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -552,6 +578,7 @@ PictureDataWriter::WriteSetFontFlags(const int32 &flags)
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -566,6 +593,7 @@ PictureDataWriter::WriteSetFontShear(const float &shear)
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -580,6 +608,7 @@ PictureDataWriter::WriteSetFontFace(const int32 &face)
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -593,6 +622,7 @@ PictureDataWriter::WritePushState()
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -606,6 +636,7 @@ PictureDataWriter::WritePopState()
} catch (status_t& status) {
return status;
}
return B_OK;
}
@@ -656,6 +687,7 @@ PictureDataWriter::WriteData(const void *data, size_t size)
ssize_t result = fData->Write(data, size);
if (result < 0)
THROW_ERROR(result);
if ((size_t)result != size)
THROW_ERROR(B_IO_ERROR);
}