You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
3.2 KiB
94 lines
3.2 KiB
/* |
|
File: PMRaster.h |
|
|
|
Contains: Mac OS X Printing Manager Raster Definitions. |
|
|
|
Version: QuickTime 7.3 |
|
|
|
Copyright: (c) 2007 (c) 1999-2001 by Apple Computer, Inc., all rights reserved |
|
|
|
Bugs?: For bug reports, consult the following page on |
|
the World Wide Web: |
|
|
|
http://developer.apple.com/bugreporter/ |
|
|
|
*/ |
|
#ifndef __MACTYPES__ |
|
#include <MacTypes.h> |
|
#endif |
|
|
|
/* MIME type for our raster format (will move to PMDefinitions.h) */ |
|
|
|
|
|
#if PRAGMA_ONCE |
|
#pragma once |
|
#endif |
|
|
|
#if PRAGMA_IMPORT |
|
#pragma import on |
|
#endif |
|
|
|
#if PRAGMA_STRUCT_ALIGN |
|
#pragma options align=mac68k |
|
#elif PRAGMA_STRUCT_PACKPUSH |
|
#pragma pack(push, 2) |
|
#elif PRAGMA_STRUCT_PACK |
|
#pragma pack(2) |
|
#endif |
|
|
|
#define kPMDataFormatRaster CFSTR("application/vnd.apple.printing-raster") |
|
typedef UInt32 PMPixelLayout; |
|
enum { |
|
kPMDataPlanar = 0x0001, /* One color for all pixels, followed by next color. */ |
|
kPMDataChunky = 0x0002, /* All colors for each pixel before next pixel. */ |
|
kPMDataUnused = 0xFFFC /* Remaining bits not used at this time. */ |
|
}; |
|
|
|
/* Pixel formats supported at this time: */ |
|
typedef UInt32 PMPixelFormat; |
|
enum { |
|
kPMGray_1 = 0x0001, /* 1 bit gray scale (B/W) data only (not implemented). */ |
|
kPMGray_8 = 0x0002, /* 8 bit grayscale. 256 possible values, no color table assumed */ |
|
kPMRGB_16 = 0x0004, /* 16 bit, 5-5-5 RGB data, with MSB unused. */ |
|
kPMRGB_24 = 0x0008, /* 24 bit, 8-8-8 RGB data, no unused bits or bytes. */ |
|
kPMXRGB_32 = 0x0010, /* 32 bit x-8-8-8 RGB data, first byte unused in each pixel. */ |
|
kPMRGBX_32 = 0x0020, /* 32 bit 8-8-8-x RGB data, last byte unused in each pixel. */ |
|
kPMRGBX_32_Sep_Gray_8 = 0x0040, /* Same as kPMRGBX_32 but with an extra plane of 8-bit K-separation. */ |
|
kPMCMYK_32 = 0x0080, /* 32 bit 8-8-8-8 CMYK data. All bytes used. */ |
|
kPMUnused = 0xFF00 /* Remaining bits are unused for now and should be clear. */ |
|
}; |
|
|
|
|
|
typedef UInt32 PMBandOrder; |
|
enum { |
|
kPMFirstBand = 0x0000, /* First band of the frame */ |
|
kPMMiddleBand = 0x0001, /* Mid-pack band */ |
|
kPMLastBand = 0x0002, /* Last band */ |
|
kPMLoneBand = 0x0003 /* The only band (whole frame) */ |
|
}; |
|
|
|
/* PMRasterBand: */ |
|
struct PMRasterBand { |
|
Ptr baseAddress; /* ptr to where data is stored */ |
|
UInt32 size; /* #bytes in band */ |
|
UInt32 yOffset; /* Band position in the page. */ |
|
UInt32 height; /* How many scanlines in this band. */ |
|
UInt32 depth; /* How many bits per pixel for this band. */ |
|
PMBandOrder order; /* band order in page: first, middle, last, lone. */ |
|
}; |
|
typedef struct PMRasterBand PMRasterBand; |
|
|
|
#if PRAGMA_STRUCT_ALIGN |
|
#pragma options align=reset |
|
#elif PRAGMA_STRUCT_PACKPUSH |
|
#pragma pack(pop) |
|
#elif PRAGMA_STRUCT_PACK |
|
#pragma pack() |
|
#endif |
|
|
|
#ifdef PRAGMA_IMPORT_OFF |
|
#pragma import off |
|
#elif PRAGMA_IMPORT |
|
#pragma import reset |
|
#endif |
|
|
|
|