topical media & game development
lib-of-vs-libs-QTDevWin-CIncludes-VideoServices.h / h
/*
File: VideoServices.h
Contains: Video Services Library Interfaces.
Version: Technology: PowerSurge 1.0.2
Release: QuickTime 6.0.2
Copyright: (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 __VIDEOSERVICES__
define __VIDEOSERVICES__
ifndef __MACTYPES__
include <MacTypes.h>
endif
ifndef __NAMEREGISTRY__
include <NameRegistry.h>
endif
ifndef __QUICKDRAW__
include <Quickdraw.h>
endif
if PRAGMA_ONCE
#pragma once
endif
ifdef __cplusplus
extern "C" {
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
enum {
kTransparentEncoding = 0,
kInvertingEncoding = 1
};
enum {
kTransparentEncodingShift = (kTransparentEncoding << 1),
kTransparentEncodedPixel = (0x01 << kTransparentEncodingShift),
kInvertingEncodingShift = (kInvertingEncoding << 1),
kInvertingEncodedPixel = (0x01 << kInvertingEncodingShift)
};
enum {
kHardwareCursorDescriptorMajorVersion = 0x0001,
kHardwareCursorDescriptorMinorVersion = 0x0000
};
typedef UInt32 * UInt32Ptr;
struct HardwareCursorDescriptorRec {
UInt16 majorVersion;
UInt16 minorVersion;
UInt32 height;
UInt32 width;
UInt32 bitDepth;
UInt32 maskBitDepth;
UInt32 numColors;
UInt32Ptr colorEncodings;
UInt32 flags;
UInt32 supportedSpecialEncodings;
UInt32 specialEncodings[16];
};
typedef struct HardwareCursorDescriptorRec HardwareCursorDescriptorRec;
typedef HardwareCursorDescriptorRec * HardwareCursorDescriptorPtr;
enum {
kHardwareCursorInfoMajorVersion = 0x0001,
kHardwareCursorInfoMinorVersion = 0x0000
};
struct HardwareCursorInfoRec {
UInt16 majorVersion; /* Test tool should check for kHardwareCursorInfoMajorVersion1*/
UInt16 minorVersion; /* Test tool should check for kHardwareCursorInfoMinorVersion1*/
UInt32 cursorHeight;
UInt32 cursorWidth;
CTabPtr colorMap; /* nil or big enough for hardware's max colors*/
Ptr hardwareCursor;
UInt32 reserved[6]; /* Test tool should check for 0s*/
};
typedef struct HardwareCursorInfoRec HardwareCursorInfoRec;
typedef HardwareCursorInfoRec * HardwareCursorInfoPtr;
enum {
kVBLInterruptServiceType = FOUR_CHAR_CODE('vbl '),
kHBLInterruptServiceType = FOUR_CHAR_CODE('hbl '),
kFrameInterruptServiceType = FOUR_CHAR_CODE('fram'),
kConnectInterruptServiceType = FOUR_CHAR_CODE('dci '), /* Renamed -- Use kFBCheckInterruptServiceType*/
kFBConnectInterruptServiceType = kConnectInterruptServiceType, /* Demand to check configuration (Hardware unchanged)*/
kFBChangedInterruptServiceType = FOUR_CHAR_CODE('chng'), /* Demand to rebuild (Hardware has reinitialized on dependent change)*/
kFBOfflineInterruptServiceType = FOUR_CHAR_CODE('remv'), /* Demand to remove framebuffer (Hardware not available on dependent change -- but must not buserror)*/
kFBOnlineInterruptServiceType = FOUR_CHAR_CODE('add ') /* Notice that hardware is available (after being removed)*/
};
enum {
kMaxDisplayConfigDataSize = 64 /* Max data size for VSLSetDisplayConfiguration*/
};
typedef ResType InterruptServiceType;
typedef UInt32 InterruptServiceIDType;
typedef InterruptServiceIDType * InterruptServiceIDPtr;
if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
VSLNewInterruptService (RegEntryID * serviceDevice,
InterruptServiceType serviceType,
InterruptServiceIDPtr serviceID);
EXTERN_API_C( OSErr )
VSLWaitOnInterruptService (InterruptServiceIDType serviceID,
Duration timeout);
EXTERN_API_C( OSErr )
VSLDisposeInterruptService (InterruptServiceIDType serviceID);
EXTERN_API_C( OSErr )
VSLDoInterruptService (InterruptServiceIDType serviceID);
EXTERN_API_C( Boolean )
VSLPrepareCursorForHardwareCursor (void * cursorRef,
HardwareCursorDescriptorPtr hardwareDescriptor,
HardwareCursorInfoPtr hwCursorInfo);
EXTERN_API_C( OSErr )
VSLSetDisplayConfiguration (RegEntryID * device,
RegPropertyName * propertyName,
void * configData,
long configDataSize);
endif /* CALL_NOT_IN_CARBON */
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
ifdef __cplusplus
}
endif
endif /* __VIDEOSERVICES__ */
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.