Improve PICT compatibility, add batch mode to gpr2gpa

This commit is contained in:
elasota
2020-05-17 17:54:58 -04:00
parent 35308e41f3
commit 153213e079
19 changed files with 870 additions and 158 deletions

View File

@@ -7,7 +7,8 @@ struct Rect;
namespace PortabilityLayer
{
struct RGBAColor;
struct QDPictEmitScanlineParameters;
struct QDPictEmitScanlineParameters;
class IOStream;
enum QDPictBlitSourceType
{
@@ -25,11 +26,27 @@ namespace PortabilityLayer
class QDPictEmitContext
{
public:
public:
enum ErrorCode
{
kMissingHeader,
kInvalidRegionRect,
kMalformedArguments,
kUnusedError1,
kUnusedError2,
kRasterOpFailure,
kUnsupportedClipRegionFormat,
kMalformedOpcode,
kUnsupportedOpcode,
};
virtual bool SpecifyFrame(const Rect &rect) = 0;
virtual Rect ConstrainRegion(const Rect &rect) const = 0;
virtual void Start(QDPictBlitSourceType sourceType, const QDPictEmitScanlineParameters &params) = 0;
virtual void BlitScanlineAndAdvance(const void *) = 0;
virtual bool AllocTempBuffers(uint8_t *&buffer1, size_t buffer1Size, uint8_t *&buffer2, size_t buffer2Size) = 0;
virtual bool EmitQTContent(IOStream *stream, uint32_t dataSize, bool isCompressed) = 0;
virtual bool AllocTempBuffers(uint8_t *&buffer1, size_t buffer1Size, uint8_t *&buffer2, size_t buffer2Size) = 0;
virtual void ReportError(int errorType, int errorSubtype) { }
};
}
}