/* 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 #endif #ifndef __MOVIES__ #include #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__ */