diff options
Diffstat (limited to 'common/quicktime_win32/QD3DShader.h')
| -rw-r--r-- | common/quicktime_win32/QD3DShader.h | 698 |
1 files changed, 698 insertions, 0 deletions
diff --git a/common/quicktime_win32/QD3DShader.h b/common/quicktime_win32/QD3DShader.h new file mode 100644 index 0000000..b0992ab --- /dev/null +++ b/common/quicktime_win32/QD3DShader.h @@ -0,0 +1,698 @@ +/* + File: QD3DShader.h + + Contains: QuickDraw 3D Shader / Color Routines + + Version: Technology: Quickdraw 3D 1.6 + Release: QuickTime 7.3 + + Copyright: (c) 2007 (c) 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 __QD3DSHADER__ +#define __QD3DSHADER__ + +#ifndef __QD3D__ +#include <QD3D.h> +#endif + +#ifndef __MOVIES__ +#include <Movies.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=power +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(push, 2) +#elif PRAGMA_STRUCT_PACK + #pragma pack(2) +#endif + +#if PRAGMA_ENUM_ALWAYSINT + #if defined(__fourbyteints__) && !__fourbyteints__ + #define __QD3DSHADER__RESTORE_TWOBYTEINTS + #pragma fourbyteints on + #endif + #pragma enumsalwaysint on +#elif PRAGMA_ENUM_OPTIONS + #pragma option enum=int +#elif PRAGMA_ENUM_PACK + #if __option(pack_enums) + #define __QD3DSHADER__RESTORE_PACKED_ENUMS + #pragma options(!pack_enums) + #endif +#endif + +/****************************************************************************** + ** ** + ** RGB Color routines ** + ** ** + *****************************************************************************/ +#if CALL_NOT_IN_CARBON +/* + * Q3ColorRGB_Set() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ColorRGB * ) +Q3ColorRGB_Set( + TQ3ColorRGB * color, + float r, + float g, + float b); + + +/* + * Q3ColorARGB_Set() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ColorARGB * ) +Q3ColorARGB_Set( + TQ3ColorARGB * color, + float a, + float r, + float g, + float b); + + +/* + * Q3ColorRGB_Add() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ColorRGB * ) +Q3ColorRGB_Add( + const TQ3ColorRGB * c1, + const TQ3ColorRGB * c2, + TQ3ColorRGB * result); + + +/* + * Q3ColorRGB_Subtract() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ColorRGB * ) +Q3ColorRGB_Subtract( + const TQ3ColorRGB * c1, + const TQ3ColorRGB * c2, + TQ3ColorRGB * result); + + +/* + * Q3ColorRGB_Scale() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ColorRGB * ) +Q3ColorRGB_Scale( + const TQ3ColorRGB * color, + float scale, + TQ3ColorRGB * result); + + +/* + * Q3ColorRGB_Clamp() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ColorRGB * ) +Q3ColorRGB_Clamp( + const TQ3ColorRGB * color, + TQ3ColorRGB * result); + + +/* + * Q3ColorRGB_Lerp() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ColorRGB * ) +Q3ColorRGB_Lerp( + const TQ3ColorRGB * first, + const TQ3ColorRGB * last, + float alpha, + TQ3ColorRGB * result); + + +/* + * Q3ColorRGB_Accumulate() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ColorRGB * ) +Q3ColorRGB_Accumulate( + const TQ3ColorRGB * src, + TQ3ColorRGB * result); + + +#endif /* CALL_NOT_IN_CARBON */ + +#if CALL_NOT_IN_CARBON +/* + * Q3ColorRGB_Luminance() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( float * ) +Q3ColorRGB_Luminance( + const TQ3ColorRGB * color, + float * luminance); + + +#endif /* CALL_NOT_IN_CARBON */ + +/****************************************************************************** + ** ** + ** Shader Types ** + ** ** + *****************************************************************************/ +enum TQ3ShaderUVBoundary { + kQ3ShaderUVBoundaryWrap = 0, + kQ3ShaderUVBoundaryClamp = 1 +}; +typedef enum TQ3ShaderUVBoundary TQ3ShaderUVBoundary; + + +/****************************************************************************** + ** ** + ** Shader Routines ** + ** ** + *****************************************************************************/ +#if CALL_NOT_IN_CARBON +/* + * Q3Shader_GetType() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ObjectType ) +Q3Shader_GetType(TQ3ShaderObject shader); + + +/* + * Q3Shader_Submit() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Shader_Submit( + TQ3ShaderObject shader, + TQ3ViewObject view); + + +/* + * Q3Shader_SetUVTransform() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Shader_SetUVTransform( + TQ3ShaderObject shader, + const TQ3Matrix3x3 * uvTransform); + + +/* + * Q3Shader_GetUVTransform() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Shader_GetUVTransform( + TQ3ShaderObject shader, + TQ3Matrix3x3 * uvTransform); + + +/* + * Q3Shader_SetUBoundary() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Shader_SetUBoundary( + TQ3ShaderObject shader, + TQ3ShaderUVBoundary uBoundary); + + +/* + * Q3Shader_SetVBoundary() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Shader_SetVBoundary( + TQ3ShaderObject shader, + TQ3ShaderUVBoundary vBoundary); + + +/* + * Q3Shader_GetUBoundary() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Shader_GetUBoundary( + TQ3ShaderObject shader, + TQ3ShaderUVBoundary * uBoundary); + + +/* + * Q3Shader_GetVBoundary() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Shader_GetVBoundary( + TQ3ShaderObject shader, + TQ3ShaderUVBoundary * vBoundary); + + + +/****************************************************************************** + ** ** + ** Illumination Shader Classes ** + ** ** + *****************************************************************************/ +/* + * Q3IlluminationShader_GetType() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ObjectType ) +Q3IlluminationShader_GetType(TQ3ShaderObject shader); + + +/* + * Q3PhongIllumination_New() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ShaderObject ) +Q3PhongIllumination_New(void); + + +/* + * Q3LambertIllumination_New() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ShaderObject ) +Q3LambertIllumination_New(void); + + +/* + * Q3NULLIllumination_New() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ShaderObject ) +Q3NULLIllumination_New(void); + + + +/****************************************************************************** + ** ** + ** Surface Shader ** + ** ** + *****************************************************************************/ +/* + * Q3SurfaceShader_GetType() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ObjectType ) +Q3SurfaceShader_GetType(TQ3SurfaceShaderObject shader); + + + +/****************************************************************************** + ** ** + ** Texture Shader ** + ** ** + *****************************************************************************/ +/* + * Q3TextureShader_New() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ShaderObject ) +Q3TextureShader_New(TQ3TextureObject texture); + + +/* + * Q3TextureShader_GetTexture() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3TextureShader_GetTexture( + TQ3ShaderObject shader, + TQ3TextureObject * texture); + + +/* + * Q3TextureShader_SetTexture() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3TextureShader_SetTexture( + TQ3ShaderObject shader, + TQ3TextureObject texture); + + + +/****************************************************************************** + ** ** + ** Texture Objects ** + ** ** + *****************************************************************************/ +/* + * Q3Texture_GetType() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ObjectType ) +Q3Texture_GetType(TQ3TextureObject texture); + + +/* + * Q3Texture_GetWidth() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Texture_GetWidth( + TQ3TextureObject texture, + unsigned long * width); + + +/* + * Q3Texture_GetHeight() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Texture_GetHeight( + TQ3TextureObject texture, + unsigned long * height); + + + +/****************************************************************************** + ** ** + ** Pixmap Texture ** + ** ** + *****************************************************************************/ +/* + * Q3PixmapTexture_New() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3TextureObject ) +Q3PixmapTexture_New(const TQ3StoragePixmap * pixmap); + + +/* + * Q3PixmapTexture_GetPixmap() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3PixmapTexture_GetPixmap( + TQ3TextureObject texture, + TQ3StoragePixmap * pixmap); + + +/* + * Q3PixmapTexture_SetPixmap() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3PixmapTexture_SetPixmap( + TQ3TextureObject texture, + const TQ3StoragePixmap * pixmap); + + + +/****************************************************************************** + ** ** + ** Mipmap Texture ** + ** ** + *****************************************************************************/ +/* + * Q3MipmapTexture_New() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3TextureObject ) +Q3MipmapTexture_New(const TQ3Mipmap * mipmap); + + +/* + * Q3MipmapTexture_GetMipmap() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3MipmapTexture_GetMipmap( + TQ3TextureObject texture, + TQ3Mipmap * mipmap); + + +/* + * Q3MipmapTexture_SetMipmap() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3MipmapTexture_SetMipmap( + TQ3TextureObject texture, + const TQ3Mipmap * mipmap); + + +/****************************************************************************** + ** ** + ** Compressed Pixmap Texture ** + ** ** + *****************************************************************************/ +/* + * Q3CompressedPixmapTexture_New() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3TextureObject ) +Q3CompressedPixmapTexture_New(const TQ3CompressedPixmap * compressedPixmap); + + +/* + * Q3CompressedPixmapTexture_GetCompressedPixmap() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3CompressedPixmapTexture_GetCompressedPixmap( + TQ3TextureObject texture, + TQ3CompressedPixmap * compressedPixmap); + + +/* + * Q3CompressedPixmapTexture_SetCompressedPixmap() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3CompressedPixmapTexture_SetCompressedPixmap( + TQ3TextureObject texture, + const TQ3CompressedPixmap * compressedPixmap); + + +/* + * Q3CompressedPixmapTexture_CompressImage() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3CompressedPixmapTexture_CompressImage( + TQ3CompressedPixmap * compressedPixmap, + PixMapHandle sourcePixMap, + CodecType codecType, + CodecComponent codecComponent, + short codedDepth, + CodecQ codecQuality); + + + + + + + +#endif /* CALL_NOT_IN_CARBON */ + + +#if PRAGMA_ENUM_ALWAYSINT + #pragma enumsalwaysint reset + #ifdef __QD3DSHADER__RESTORE_TWOBYTEINTS + #pragma fourbyteints off + #endif +#elif PRAGMA_ENUM_OPTIONS + #pragma option enum=reset +#elif defined(__QD3DSHADER__RESTORE_PACKED_ENUMS) + #pragma options(pack_enums) +#endif + +#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 /* __QD3DSHADER__ */ + |