Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
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.

265 lines
6.7 KiB

5 years ago
/*
File: Retrace.h
Contains: Vertical Retrace Interfaces.
Version: Technology: System 7.5
Release: QuickTime 7.3
Copyright: (c) 2007 (c) 1985-1993, 1995-1999 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 __RETRACE__
#define __RETRACE__
#ifndef __MACTYPES__
#include <MacTypes.h>
#endif
#ifndef __OSUTILS__
#include <OSUtils.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
typedef struct VBLTask VBLTask;
typedef VBLTask * VBLTaskPtr;
typedef CALLBACK_API_REGISTER68K( void , VBLProcPtr, (VBLTaskPtr vblTaskPtr) );
typedef REGISTER_UPP_TYPE(VBLProcPtr) VBLUPP;
struct VBLTask {
QElemPtr qLink;
short qType;
VBLUPP vblAddr;
short vblCount;
short vblPhase;
};
#if CALL_NOT_IN_CARBON
/*
* NewVBLUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( VBLUPP )
NewVBLUPP(VBLProcPtr userRoutine);
#if !OPAQUE_UPP_TYPES
enum { uppVBLProcInfo = 0x00009802 }; /* register no_return_value Func(4_bytes:A0) */
#ifdef __cplusplus
inline DEFINE_API_C(VBLUPP) NewVBLUPP(VBLProcPtr userRoutine) { return (VBLUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppVBLProcInfo, GetCurrentArchitecture()); }
#else
#define NewVBLUPP(userRoutine) (VBLUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppVBLProcInfo, GetCurrentArchitecture())
#endif
#endif
/*
* DisposeVBLUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( void )
DisposeVBLUPP(VBLUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) DisposeVBLUPP(VBLUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
#else
#define DisposeVBLUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#endif
#endif
/*
* InvokeVBLUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: not available
* Mac OS X: not available
*/
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter InvokeVBLUPP(__A0, __A1)
#endif
EXTERN_API_C( void )
InvokeVBLUPP(
VBLTaskPtr vblTaskPtr,
VBLUPP userUPP) ONEWORDINLINE(0x4E91);
#if !OPAQUE_UPP_TYPES && (!TARGET_OS_MAC || !TARGET_CPU_68K || TARGET_RT_MAC_CFM)
#ifdef __cplusplus
inline DEFINE_API_C(void) InvokeVBLUPP(VBLTaskPtr vblTaskPtr, VBLUPP userUPP) { CALL_ONE_PARAMETER_UPP(userUPP, uppVBLProcInfo, vblTaskPtr); }
#else
#define InvokeVBLUPP(vblTaskPtr, userUPP) CALL_ONE_PARAMETER_UPP((userUPP), uppVBLProcInfo, (vblTaskPtr))
#endif
#endif
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
#define NewVBLProc(userRoutine) NewVBLUPP(userRoutine)
#define CallVBLProc(userRoutine, vblTaskPtr) InvokeVBLUPP(vblTaskPtr, userRoutine)
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
/*
* GetVBLQHdr()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( QHdrPtr )
GetVBLQHdr(void) THREEWORDINLINE(0x2EBC, 0x0000, 0x0160);
/*
* SlotVInstall()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 SlotVInstall(__A0, __D0)
#endif
EXTERN_API( OSErr )
SlotVInstall(
QElemPtr vblBlockPtr,
short theSlot) ONEWORDINLINE(0xA06F);
/*
* SlotVRemove()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 SlotVRemove(__A0, __D0)
#endif
EXTERN_API( OSErr )
SlotVRemove(
QElemPtr vblBlockPtr,
short theSlot) ONEWORDINLINE(0xA070);
/*
* AttachVBL()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 AttachVBL(__D0)
#endif
EXTERN_API( OSErr )
AttachVBL(short theSlot) ONEWORDINLINE(0xA071);
/*
* DoVBLTask()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 DoVBLTask(__D0)
#endif
EXTERN_API( OSErr )
DoVBLTask(short theSlot) ONEWORDINLINE(0xA072);
/*
* VInstall()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 VInstall(__A0)
#endif
EXTERN_API( OSErr )
VInstall(QElemPtr vblTaskPtr) ONEWORDINLINE(0xA033);
/*
* VRemove()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 VRemove(__A0)
#endif
EXTERN_API( OSErr )
VRemove(QElemPtr vblTaskPtr) ONEWORDINLINE(0xA034);
#endif /* CALL_NOT_IN_CARBON */
#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 /* __RETRACE__ */