csgo-2018-source/public/shaderlib/baseshader_declarations.h
2021-07-24 21:11:47 -07:00

74 lines
1.7 KiB
C

//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
//
// Purpose: These are declarations (functions, structs, enums) used in both
// SPU and PPU on PS/3, as well as potentially on different processor targets
// on future platforms
//===========================================================================//
#ifndef BASESHADER_SHARED_DECLARATIONS_HDR
#define BASESHADER_SHARED_DECLARATIONS_HDR
//-----------------------------------------------------------------------------
// Standard material vars
//-----------------------------------------------------------------------------
// Note: if you add to these, add to s_StandardParams in CBaseShader.cpp
enum ShaderMaterialVars_t
{
FLAGS = 0,
FLAGS_DEFINED, // mask indicating if the flag was specified
FLAGS2,
FLAGS_DEFINED2,
COLOR,
ALPHA,
BASETEXTURE,
FRAME,
BASETEXTURETRANSFORM,
FLASHLIGHTTEXTURE,
FLASHLIGHTTEXTUREFRAME,
COLOR2,
SRGBTINT,
NUM_SHADER_MATERIAL_VARS
};
// Alpha belnd mode enums. Moved from basevsshader
enum BlendType_t
{
// no alpha blending
BT_NONE = 0,
// src * srcAlpha + dst * (1-srcAlpha)
// two passes for HDR:
// pass 1:
// color: src * srcAlpha + dst * (1-srcAlpha)
// alpha: srcAlpha * zero + dstAlpha * (1-srcAlpha)
// pass 2:
// color: none
// alpha: srcAlpha * one + dstAlpha * one
//
BT_BLEND,
// src * one + dst * one
// one pass for HDR
BT_ADD,
// Why do we ever use this instead of using premultiplied alpha?
// src * srcAlpha + dst * one
// two passes for HDR
// pass 1:
// color: src * srcAlpha + dst * one
// alpha: srcAlpha * one + dstAlpha * one
// pass 2:
// color: none
// alpha: srcAlpha * one + dstAlpha * one
BT_BLENDADD
};
#endif