|
|
//===== Copyright � 1996-2008, Valve Corporation, All rights reserved. ======//
#ifndef SHADERAPI_ISHADERDYNAMIC_DECLARATIONS_H
#define SHADERAPI_ISHADERDYNAMIC_DECLARATIONS_H
//-----------------------------------------------------------------------------
// the 3D shader API interface
// This interface is all that shaders see.
//-----------------------------------------------------------------------------
enum StandardTextureId_t { // Lightmaps
TEXTURE_LIGHTMAP = 0, TEXTURE_LIGHTMAP_FULLBRIGHT, TEXTURE_LIGHTMAP_BUMPED, TEXTURE_LIGHTMAP_BUMPED_FULLBRIGHT,
// Flat colors
TEXTURE_WHITE, TEXTURE_BLACK, TEXTURE_BLACK_ALPHA_ZERO, TEXTURE_GREY, TEXTURE_GREY_ALPHA_ZERO,
// Normalmaps
TEXTURE_NORMALMAP_FLAT, TEXTURE_SSBUMP_FLAT,
// Normalization
TEXTURE_NORMALIZATION_CUBEMAP, TEXTURE_NORMALIZATION_CUBEMAP_SIGNED,
// Frame-buffer textures
TEXTURE_FRAME_BUFFER_FULL_TEXTURE_0, TEXTURE_FRAME_BUFFER_FULL_TEXTURE_1,
// Color correction
TEXTURE_COLOR_CORRECTION_VOLUME_0, TEXTURE_COLOR_CORRECTION_VOLUME_1, TEXTURE_COLOR_CORRECTION_VOLUME_2, TEXTURE_COLOR_CORRECTION_VOLUME_3,
// An alias to the Back Frame Buffer
TEXTURE_FRAME_BUFFER_ALIAS,
// Noise for shadow mapping algorithm
TEXTURE_SHADOW_NOISE_2D,
// A texture in which morph data gets accumulated (vs30, fast vertex textures required)
TEXTURE_MORPH_ACCUMULATOR,
// A texture which contains morph weights
TEXTURE_MORPH_WEIGHTS,
// A snapshot of the frame buffer's depth. Currently only valid on the 360
TEXTURE_FRAME_BUFFER_FULL_DEPTH,
// A snapshot of the frame buffer's depth. Currently only valid on the 360
TEXTURE_IDENTITY_LIGHTWARP,
// The current local env_cubemap
TEXTURE_LOCAL_ENV_CUBEMAP,
// Texture containing subdivision surface patch data
TEXTURE_SUBDIVISION_PATCHES,
// Screen-space texture which contains random 3D reflection vectors used in SSAO algorithm
TEXTURE_SSAO_NOISE_2D,
TEXTURE_PAINT,
TEXTURE_MAX_STD_TEXTURES = TEXTURE_SSAO_NOISE_2D + 1 };
//-----------------------------------------------------------------------------
// State from ShaderAPI used to select proper vertex and pixel shader combos
//-----------------------------------------------------------------------------
struct LightState_t { int m_nNumLights; bool m_bAmbientLight; bool m_bStaticLight; inline int HasDynamicLight() { return (m_bAmbientLight || (m_nNumLights > 0)) ? 1 : 0; } };
#endif
|