mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-16 05:37:00 +00:00
1
This commit is contained in:
@@ -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__ */
|
||||
|
||||
Reference in New Issue
Block a user