|
|
|
/*==LICENSE==*
|
|
|
|
|
|
|
|
CyanWorlds.com Engine - MMOG client, server and tools
|
|
|
|
Copyright (C) 2011 Cyan Worlds, Inc.
|
|
|
|
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
Additional permissions under GNU GPL version 3 section 7
|
|
|
|
|
|
|
|
If you modify this Program, or any covered work, by linking or
|
|
|
|
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
|
|
|
|
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
|
|
|
|
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
|
|
|
|
(or a modified version of those libraries),
|
|
|
|
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
|
|
|
|
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
|
|
|
|
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
|
|
|
|
licensors of this Program grant you additional
|
|
|
|
permission to convey the resulting work. Corresponding Source for a
|
|
|
|
non-source form of such a combination shall include the source code for
|
|
|
|
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
|
|
|
|
work.
|
|
|
|
|
|
|
|
You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
|
|
|
or by snail mail at:
|
|
|
|
Cyan Worlds, Inc.
|
|
|
|
14617 N Newport Hwy
|
|
|
|
Mead, WA 99021
|
|
|
|
|
|
|
|
*==LICENSE==*/
|
|
|
|
|
|
|
|
#ifndef plWaveSetShaderConsts_inc
|
|
|
|
#define plWaveSetShaderConsts_inc
|
|
|
|
|
|
|
|
// Notice there can be skips for multi-vector consts (e.g. matrices).
|
|
|
|
namespace plGridVS
|
|
|
|
{
|
|
|
|
enum {
|
|
|
|
kLocalToNDC = 0,
|
|
|
|
kProjRow0 = 0,
|
|
|
|
kProjRow1 = 1,
|
|
|
|
kProjRow2 = 2,
|
|
|
|
kProjRow3 = 3,
|
|
|
|
kWaterTint = 4,
|
|
|
|
kFrequency = 5,
|
|
|
|
kPhase = 6,
|
|
|
|
kAmplitude = 7,
|
|
|
|
kDirectionX = 8,
|
|
|
|
kDirectionY = 9,
|
|
|
|
kUTransform = 10,
|
|
|
|
kVTransform = 11,
|
|
|
|
kScrunch = 12,
|
|
|
|
kSinConsts = 13,
|
|
|
|
kCosConsts = 14,
|
|
|
|
kPiConsts = 15,
|
|
|
|
kNumericConsts = 16,
|
|
|
|
kCameraPos = 17,
|
|
|
|
kWindRot = 18,
|
|
|
|
kEnvAdjust = 19,
|
|
|
|
kEnvTint = 20,
|
|
|
|
|
|
|
|
kNumConsts
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
namespace plFixedVS
|
|
|
|
{
|
|
|
|
enum {
|
|
|
|
kWorldToNDC = 0,
|
|
|
|
kProjRow0 = 0,
|
|
|
|
kProjRow1 = 1,
|
|
|
|
kProjRow2 = 2,
|
|
|
|
kProjRow3 = 3,
|
|
|
|
kWaterTint = 4,
|
|
|
|
kFrequency = 5,
|
|
|
|
kPhase = 6,
|
|
|
|
kAmplitude = 7,
|
|
|
|
kDirectionX = 8,
|
|
|
|
kDirectionY = 9,
|
|
|
|
kUTransform = 10,
|
|
|
|
kVTransform = 11,
|
|
|
|
kScrunch = 12,
|
|
|
|
kSinConsts = 13,
|
|
|
|
kCosConsts = 14,
|
|
|
|
kPiConsts = 15,
|
|
|
|
kNumericConsts = 16,
|
|
|
|
kCameraPos = 17,
|
|
|
|
kWindRot = 18,
|
|
|
|
kEnvAdjust = 19,
|
|
|
|
kEnvTint = 20,
|
|
|
|
kLocalToWorld = 21,
|
|
|
|
kL2WRow0 = 21,
|
|
|
|
kL2WRow1 = 22,
|
|
|
|
kL2WRow2 = 23,
|
|
|
|
kLengths = 24,
|
|
|
|
kWaterLevel = 25,
|
|
|
|
kDepthFalloff = 26,
|
|
|
|
kMinAtten = 27,
|
|
|
|
kFogSet = 28,
|
|
|
|
|
|
|
|
kNumConsts
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
namespace plFixedVS7
|
|
|
|
{
|
|
|
|
enum {
|
|
|
|
kWorldToNDC = 0,
|
|
|
|
kProjRow0 = 0,
|
|
|
|
kProjRow1 = 1,
|
|
|
|
kProjRow2 = 2,
|
|
|
|
kProjRow3 = 3,
|
|
|
|
kWaterTint = 4,
|
|
|
|
kFrequency = 5,
|
|
|
|
kPhase = 6,
|
|
|
|
kAmplitude = 7,
|
|
|
|
kDirectionX = 8,
|
|
|
|
kDirectionY = 9,
|
|
|
|
kUVScale = 10,
|
|
|
|
kSpecAtten = 11,
|
|
|
|
kScrunch = 12, // UNUSED
|
|
|
|
kSinConsts = 13,
|
|
|
|
kCosConsts = 14,
|
|
|
|
kPiConsts = 15,
|
|
|
|
kNumericConsts = 16,
|
|
|
|
kCameraPos = 17,
|
|
|
|
kWindRot = 18,
|
|
|
|
kEnvAdjust = 19,
|
|
|
|
kEnvTint = 20,
|
|
|
|
kLocalToWorld = 21,
|
|
|
|
kL2WRow0 = 21,
|
|
|
|
kL2WRow1 = 22,
|
|
|
|
kL2WRow2 = 23,
|
|
|
|
kLengths = 24,
|
|
|
|
kWaterLevel = 25,
|
|
|
|
kDepthFalloff = 26,
|
|
|
|
kMinAtten = 27,
|
|
|
|
kFogSet = 28,
|
|
|
|
kDirXK = 29,
|
|
|
|
kDirYK = 30,
|
|
|
|
kDirXW = 31,
|
|
|
|
kDirYW = 32,
|
|
|
|
kWK = 33,
|
|
|
|
kDirXSqKW = 34,
|
|
|
|
kDirXDirYKW = 35,
|
|
|
|
kDirYSqKW = 36,
|
|
|
|
|
|
|
|
kNumConsts
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
namespace plShoreVS
|
|
|
|
{
|
|
|
|
enum {
|
|
|
|
kWorldToNDC = 0,
|
|
|
|
kProjRow0 = 0,
|
|
|
|
kProjRow1 = 1,
|
|
|
|
kProjRow2 = 2,
|
|
|
|
kProjRow3 = 3,
|
|
|
|
kShoreTint = 4,
|
|
|
|
kFrequency = 5,
|
|
|
|
kPhase = 6,
|
|
|
|
kAmplitude = 7,
|
|
|
|
kDirectionX = 8,
|
|
|
|
kDirectionY = 9,
|
|
|
|
kIncline = 10,
|
|
|
|
kFogSet = 11,
|
|
|
|
kScrunch = 12, // UNUSED
|
|
|
|
kSinConsts = 13,
|
|
|
|
kCosConsts = 14,
|
|
|
|
kPiConsts = 15,
|
|
|
|
kNumericConsts = 16,
|
|
|
|
kQADirX = 17, // Q * Dir.x * A
|
|
|
|
kQADirY = 18, // Q * Dir.y * A
|
|
|
|
kTex0Transform = 19,
|
|
|
|
kTex0_Row0 = 19,
|
|
|
|
kTex0_Row1 = 20,
|
|
|
|
kTex0_Row2 = 21,
|
|
|
|
kTex1Transform = 22, // UNUSED
|
|
|
|
kTex1_Row0 = 22,
|
|
|
|
kTex1_Row1 = 23,
|
|
|
|
kTex1_Row2 = 24,
|
|
|
|
kLocalToWorld = 25,
|
|
|
|
kL2WRow0 = 26,
|
|
|
|
kL2WRow1 = 27,
|
|
|
|
kL2WRow2 = 28,
|
|
|
|
kLengths = 29,
|
|
|
|
kWaterLevel = 30,
|
|
|
|
kDepthFalloff = 31,
|
|
|
|
kMinAtten = 32,
|
|
|
|
|
|
|
|
kNumConsts
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
namespace plGraphVS
|
|
|
|
{
|
|
|
|
enum {
|
|
|
|
kNumericConsts = 0,
|
|
|
|
kFrequency = 1,
|
|
|
|
kPhase = 2,
|
|
|
|
kAmplitude = 3,
|
|
|
|
kPiConsts = 4,
|
|
|
|
kCosConsts = 5,
|
|
|
|
kUVWConsts = 6,
|
|
|
|
kColor = 7,
|
|
|
|
|
|
|
|
kNumConsts
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
namespace plGraphPS
|
|
|
|
{
|
|
|
|
enum {
|
|
|
|
|
|
|
|
kNumConsts
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
namespace plFixedPS
|
|
|
|
{
|
|
|
|
enum {
|
|
|
|
kDir0 = 0,
|
|
|
|
kDir1 = 1,
|
|
|
|
kDir2 = 2,
|
|
|
|
kDir3 = 3,
|
|
|
|
|
|
|
|
kNumConsts
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
namespace plBumpPS
|
|
|
|
{
|
|
|
|
enum {
|
|
|
|
kWave0 = 0,
|
|
|
|
kWave1 = 1,
|
|
|
|
kWave2 = 2,
|
|
|
|
kWave3 = 3,
|
|
|
|
kHalfOne = 4,
|
|
|
|
kBias = 5,
|
|
|
|
|
|
|
|
kNumConsts
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
namespace plBumpVS
|
|
|
|
{
|
|
|
|
enum {
|
|
|
|
kUXform0 = 0,
|
|
|
|
kUXform1 = 1,
|
|
|
|
kUXform2 = 2,
|
|
|
|
kUXform3 = 3,
|
|
|
|
|
|
|
|
kNumbers = 4,
|
|
|
|
|
|
|
|
kNumConsts
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
namespace plBiasPS
|
|
|
|
{
|
|
|
|
enum {
|
|
|
|
|
|
|
|
kNumConsts
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
namespace plBiasVS
|
|
|
|
{
|
|
|
|
enum {
|
|
|
|
kTexU0 = 0,
|
|
|
|
kTexV0 = 1,
|
|
|
|
|
|
|
|
kTexU1 = 2,
|
|
|
|
kTexV1 = 3,
|
|
|
|
|
|
|
|
kNumbers = 4,
|
|
|
|
|
|
|
|
kScaleBias = 5,
|
|
|
|
|
|
|
|
kNumConsts
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
namespace plCompPS
|
|
|
|
{
|
|
|
|
enum {
|
|
|
|
|
|
|
|
|
|
|
|
kNumConsts
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
namespace plCompVS
|
|
|
|
{
|
|
|
|
enum {
|
|
|
|
kTex0Transform = 0,
|
|
|
|
kTex0_Row0 = 0,
|
|
|
|
kTex0_Row1 = 1,
|
|
|
|
kTex1Transform = 2,
|
|
|
|
kTex1_Row0 = 2,
|
|
|
|
kTex1_Row1 = 3,
|
|
|
|
kTex2Transform = 4,
|
|
|
|
kTex2_Row0 = 4,
|
|
|
|
kTex2_Row1 = 5,
|
|
|
|
kTex3Transform = 6,
|
|
|
|
kTex3_Row0 = 6,
|
|
|
|
kTex3_Row1 = 7,
|
|
|
|
|
|
|
|
kNumbers = 8,
|
|
|
|
|
|
|
|
kNumConsts
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
namespace plRipVS // closely related to plFixedVS and plShoreVS
|
|
|
|
{
|
|
|
|
enum {
|
|
|
|
kWorldToNDC = 0,
|
|
|
|
kProjRow0 = 0,
|
|
|
|
kProjRow1 = 1,
|
|
|
|
kProjRow2 = 2,
|
|
|
|
kProjRow3 = 3,
|
|
|
|
kFogSet = 4,
|
|
|
|
kFrequency = 5,
|
|
|
|
kPhase = 6,
|
|
|
|
kAmplitude = 7,
|
|
|
|
kDirectionX = 8,
|
|
|
|
kDirectionY = 9,
|
|
|
|
kQADirX = 10,
|
|
|
|
kQADirY = 11,
|
|
|
|
kScrunch = 12, // UNUSED
|
|
|
|
kSinConsts = 13,
|
|
|
|
kCosConsts = 14,
|
|
|
|
kPiConsts = 15,
|
|
|
|
kNumericConsts = 16,
|
|
|
|
kCameraPos = 17,
|
|
|
|
kWindRot = 18, // UNUSED
|
|
|
|
kTex0Transform = 19, // UNUSED
|
|
|
|
kTex0_Row0 = 19,
|
|
|
|
kTex0_Row1 = 20,
|
|
|
|
kTex0_Row2 = 21,
|
|
|
|
kTex1Transform = 22, // UNUSED
|
|
|
|
kTex1_Row0 = 22,
|
|
|
|
kTex1_Row1 = 23,
|
|
|
|
kTex1_Row2 = 24,
|
|
|
|
kLocalToWorld = 25,
|
|
|
|
kL2WRow0 = 26,
|
|
|
|
kL2WRow1 = 27,
|
|
|
|
kL2WRow2 = 28,
|
|
|
|
kLengths = 29,
|
|
|
|
kWaterLevel = 30,
|
|
|
|
kDepthFalloff = 31,
|
|
|
|
kMinAtten = 32,
|
|
|
|
kTexConsts = 33,
|
|
|
|
kLifeConsts = 34,
|
|
|
|
kRampBias = 35,
|
|
|
|
|
|
|
|
kNumConsts
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
namespace plWaveDecVS // closely related to plFixedVS and plShoreVS
|
|
|
|
{
|
|
|
|
enum {
|
|
|
|
kWorldToNDC = 0,
|
|
|
|
kProjRow0 = 0,
|
|
|
|
kProjRow1 = 1,
|
|
|
|
kProjRow2 = 2,
|
|
|
|
kProjRow3 = 3,
|
|
|
|
kFrequency = 4,
|
|
|
|
kPhase = 5,
|
|
|
|
kAmplitude = 6,
|
|
|
|
kDirectionX = 7,
|
|
|
|
kDirectionY = 8,
|
|
|
|
kScrunch = 9, // UNUSED
|
|
|
|
kSinConsts = 10,
|
|
|
|
kCosConsts = 11,
|
|
|
|
kPiConsts = 12,
|
|
|
|
kNumericConsts = 13,
|
|
|
|
kTex0Transform = 14,
|
|
|
|
kTex0_Row0 = 14,
|
|
|
|
kTex0_Row1 = 15,
|
|
|
|
kTex1Transform = 16,
|
|
|
|
kTex1_Row0 = 16,
|
|
|
|
kTex1_Row1 = 17,
|
|
|
|
kLocalToWorld = 18,
|
|
|
|
kL2WRow0 = 18,
|
|
|
|
kL2WRow1 = 19,
|
|
|
|
kL2WRow2 = 20,
|
|
|
|
kLengths = 21,
|
|
|
|
kWaterLevel = 22,
|
|
|
|
kDepthFalloff = 23,
|
|
|
|
kMinAtten = 24,
|
|
|
|
kBias = 25, // Only using one slot
|
|
|
|
kMatColor = 26,
|
|
|
|
kCameraPos = 27, // Only used by DecalEnv
|
|
|
|
kEnvAdjust = 28, // Only used by DecalEnv
|
|
|
|
kFogSet = 29,
|
|
|
|
kQADirX = 30,
|
|
|
|
kQADirY = 31,
|
|
|
|
|
|
|
|
kDirXW = 32, // Only used by DecalEnv
|
|
|
|
kDirYW = 33, // Only used by DecalEnv
|
|
|
|
kWK = 34, // Only used by DecalEnv
|
|
|
|
kDirXSqKW = 35, // Only used by DecalEnv
|
|
|
|
kDirXDirYKW = 36, // Only used by DecalEnv
|
|
|
|
kDirYSqKW = 37, // Only used by DecalEnv
|
|
|
|
|
|
|
|
kNumConsts
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif // plWaveSetShaderConsts_inc
|