summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/ScalerStreamTypes.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/ScalerStreamTypes.h')
-rw-r--r--common/quicktime_win32/ScalerStreamTypes.h141
1 files changed, 141 insertions, 0 deletions
diff --git a/common/quicktime_win32/ScalerStreamTypes.h b/common/quicktime_win32/ScalerStreamTypes.h
new file mode 100644
index 0000000..3a26d93
--- /dev/null
+++ b/common/quicktime_win32/ScalerStreamTypes.h
@@ -0,0 +1,141 @@
+/*
+ File: ScalerStreamTypes.h
+
+ Contains: Scaler streaming data structures and constants for OFA 1.x
+
+ Version: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 1994-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 __SCALERSTREAMTYPES__
+#define __SCALERSTREAMTYPES__
+
+#ifndef __MACTYPES__
+#include <MacTypes.h>
+#endif
+
+#ifndef __SFNTTYPES__
+#include <SFNTTypes.h>
+#endif
+
+
+
+
+#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
+
+/* ScalerStream input/output types */
+enum {
+ cexec68K = 0x00000001,
+ truetypeStreamType = 0x00000001,
+ type1StreamType = 0x00000002,
+ type3StreamType = 0x00000004,
+ type42StreamType = 0x00000008,
+ type42GXStreamType = 0x00000010,
+ portableStreamType = 0x00000020,
+ flattenedStreamType = 0x00000040,
+ cidType2StreamType = 0x00000080,
+ cidType0StreamType = 0x00000100,
+ type1CFFStreamType = 0x00000200,
+ evenOddModifierStreamType = 0x00008000,
+ eexecBinaryModifierStreamType = 0x00010000, /* encrypted portion of Type1Stream to be binary */
+ unicodeMappingModifierStreamType = 0x00020000, /* include glyph ID to unicode mapping info for PDF */
+ scalerSpecifcModifierMask = 0x0000F000, /* for scaler's internal use */
+ streamTypeModifierMask = (long)0xFFFFF000 /* 16 bits for Apple, 4 bits for scaler */
+};
+
+/* Possible streamed font formats */
+typedef unsigned long scalerStreamTypeFlag;
+enum {
+ downloadStreamAction = 0, /* Transmit the (possibly sparse) font data */
+ asciiDownloadStreamAction = 1, /* Transmit font data to a 7-bit ASCII destination */
+ fontSizeQueryStreamAction = 2, /* Estimate in-printer memory used if the font were downloaded */
+ encodingOnlyStreamAction = 3, /* Transmit only the encoding for the font */
+ prerequisiteQueryStreamAction = 4, /* Return a list of prerequisite items needed for the font */
+ prerequisiteItemStreamAction = 5, /* Transmit a specified prerequisite item */
+ variationQueryStreamAction = 6, /* Return information regarding support for variation streaming */
+ variationPSOperatorStreamAction = 7 /* Transmit Postscript code necessary to effect variation of a font */
+};
+
+typedef long scalerStreamAction;
+enum {
+ selectAllVariations = -1 /* Special variationCount value meaning include all variation data */
+};
+
+struct scalerPrerequisiteItem {
+ long enumeration; /* Shorthand tag identifying the item */
+ long size; /* Worst case vm in printer item requires */
+ unsigned char name[1]; /* Name to be used by the client when emitting the item (Pascal string) */
+};
+typedef struct scalerPrerequisiteItem scalerPrerequisiteItem;
+struct scalerStream {
+ const void * streamRefCon; /* <- private reference for client */
+ const char * targetVersion; /* <- e.g. Postscript printer name (C string) */
+ scalerStreamTypeFlag types; /* <-> Data stream formats desired/supplied */
+ scalerStreamAction action; /* <- What action to take */
+ unsigned long memorySize; /* -> Worst case memory use (vm) in printer or as sfnt */
+ long variationCount; /* <- The number of variations, or selectAllVariations */
+ const void * variations; /* <- A pointer to an array of the variations (gxFontVariation) */
+ union {
+ /* Normal font streaming information*/
+ struct {
+ const unsigned short * encoding; /* <- Intention is * unsigned short[256] */
+ long * glyphBits; /* <-> Bitvector: a bit for each glyph, 1 = desired/supplied */
+ char * name; /* <-> The printer font name to use/used (C string) */
+ } font;
+
+ /* Used to obtain a list of prerequisites from the scaler*/
+ struct {
+ long size; /* -> Size of the prereq. list in bytes (0 indicates no prerequisites)*/
+ void * list; /* <- Pointer to client block to hold list (nil = list size query only) */
+ } prerequisiteQuery;
+
+ long prerequisiteItem; /* <- Enumeration value for the prerequisite item to be streamed.*/
+
+ long variationQueryResult; /* -> Output from the variationQueryStreamAction */
+ } info;
+};
+typedef struct scalerStream scalerStream;
+struct scalerStreamData {
+ long hexFlag; /* Indicates that the data is to be interpreted as hex, versus binary */
+ long byteCount; /* Number of bytes in the data being streamed */
+ const void * data; /* Pointer to the data being streamed */
+};
+typedef struct scalerStreamData scalerStreamData;
+
+#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
+
+
+#endif /* __SCALERSTREAMTYPES__ */
+