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.

699 lines
17 KiB

5 years ago
/*
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__ */