Files
bluflame/evoke-64k/trunk/ev10/ShaderFactory.h
2026-04-18 22:31:51 +02:00

161 lines
7.2 KiB
C

#pragma once
#include "globals.h"
#include "shader.h"
// --> Neuen Shader hinzufuegen:
//
// in globals.h und globals.cpp ein neues Char Array fuer den Quellcode des Shader anlegen
// in globals.h das Enum ShaderIndices erweitern
// eine Datei im cfg Verzeichnis anlegen, die diesen Shader enthaelt
// in ConfigFiles.cpp die Funktion ReadShaders() erweitern, damit die Datei in das Array eingelesen wird
// den Shader in PrepareShaders compilieren
void RenderLoading( int iPercent );
void PrepareShaders()
{
IDirect3DVertexShader9* pVSGeneral = NULL;
IDirect3DVertexShader9* pVSFSQuad = NULL;
#ifdef EXTRACODE
OutputDebugString( "Creating shaders: \n" );
DWORD dwTicks = GetTickCount();
#endif
//Postprocessing Zeug
g_Shaders[ PreDepth ].CompileVS(g_ShaderVSGeneral, "vs_main", &pVSGeneral );
g_Shaders[ PreDepth ].CompilePS(g_ShaderPSDepth, "ps_main" );
g_Shaders[ PSSM_Proj ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ PSSM_Proj ].CompilePS(g_ShaderPSPSSM, "ps_main" );
g_Shaders[ SSAO ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ SSAO ].CompilePS(g_ShaderPSAmbOcc, "ps_main" );
g_Shaders[ SSAO_BlurH ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ SSAO_BlurH ].CompilePS(g_ShaderPSAmbOcc, "ps_blur_hor" );
g_Shaders[ SSAO_BlurV ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ SSAO_BlurV ].CompilePS(g_ShaderPSAmbOcc, "ps_blur_ver" );
g_Shaders[ DOF_Intensity ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ DOF_Intensity ].CompilePS(g_ShaderPSDOF, "ps_blur_intensity" );
g_Shaders[ DOF ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ DOF ].CompilePS(g_ShaderPSDOF, "ps_main" );
g_Shaders[ BlurBilH ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ BlurBilH ].CompilePS(g_ShaderPSBlur, "ps_blur_bil_hor" );
g_Shaders[ BlurBilV ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ BlurBilV ].CompilePS(g_ShaderPSBlur, "ps_blur_bil_ver" );
g_Shaders[ Underwater ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ Underwater ].CompilePS(g_ShaderPSRay, "ps_underwater" );
g_Shaders[ Underwater ].SetTextureStageSettings( 3, TI_Wave );
g_Shaders[ Underwater_Filter ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ Underwater_Filter ].CompilePS(g_ShaderPSRay, "ps_underwater_filter" );
g_Shaders[ Underwater_Filter ].SetTextureStageSettings( 3, TI_Wave );
g_Shaders[ Ray_Mask ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ Ray_Mask ].CompilePS(g_ShaderPSRay, "ps_ray_mask" );
g_Shaders[ Ray_Extrude ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ Ray_Extrude ].CompilePS(g_ShaderPSRay, "ps_ray_extrude" );
g_Shaders[ Extract_InvAlpha ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ Extract_InvAlpha ].CompilePS(g_ShaderPSBlur, "ps_extract_inv_alpha" );
g_Shaders[ BlurH ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ BlurH ].CompilePS(g_ShaderPSBlur, "ps_blur_hor" );
g_Shaders[ BlurV ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ BlurV ].CompilePS(g_ShaderPSBlur, "ps_blur_ver" );
g_Shaders[ Crystal ].CompileVS(g_ShaderVSGeneral, "vs_main", &pVSGeneral );
g_Shaders[ Crystal ].CompilePS(g_ShaderPSCrystal, "ps_main" );
g_Shaders[ Phong ].CompileVS(g_ShaderVSGeneral, "vs_main", &pVSGeneral );
g_Shaders[ Phong ].CompilePS(g_ShaderPSPhong, "ps_main" );
g_Shaders[ Sky ].CompileVS(g_ShaderVSSky, "vs_main" );
g_Shaders[ Sky ].CompilePS(g_ShaderPSSky, "ps_sky" );
g_Shaders[ Sky ].SetTextureStageSettings( 0, TI_RandomCube );
g_Shaders[ CaveSky ].CompileVS(g_ShaderVSSky, "vs_main" );
g_Shaders[ CaveSky ].CompilePS(g_ShaderPSSky, "ps_cave_sky" );
g_Shaders[ CaveSky ].SetTextureStageSettings( 0, TI_RandomCube );
g_Shaders[ EnvSky ].CompileVS(g_ShaderVSSky, "vs_main" );
g_Shaders[ EnvSky ].CompilePS(g_ShaderPSSky, "ps_env" );
g_Shaders[ Ocean ].CompileVS(g_ShaderVSOcean, "vs_main" );
g_Shaders[ Ocean ].CompilePS(g_ShaderPSOcean, "ps_main" );
g_Shaders[ Ocean ].SetTextureStageSettings( 0, TI_Wave );
g_Shaders[ Terrain ].CompileVS(g_ShaderVSGeneral, "vs_main", &pVSGeneral );
g_Shaders[ Terrain ].CompilePS(g_ShaderPSTerrain, "ps_terrain" );
g_Shaders[ Terrain ].SetTextureStageSettings( 0, TI_Wave );
g_Shaders[ Terrain ].SetTextureStageSettings( 1, TI_RandomCube );
g_Shaders[ Cave ].CompileVS(g_ShaderVSGeneral, "vs_main", &pVSGeneral );
g_Shaders[ Cave ].CompilePS(g_ShaderPSTerrain, "ps_cave" );
g_Shaders[ Cave ].SetTextureStageSettings( 0, TI_Wave );
g_Shaders[ Cave ].SetTextureStageSettings( 1, TI_RandomCube );
g_Shaders[ CaveGround ].CompileVS(g_ShaderVSGeneral, "vs_main", &pVSGeneral );
g_Shaders[ CaveGround ].CompilePS(g_ShaderPSTerrain, "ps_cave_ground" );
g_Shaders[ CaveGround ].SetTextureStageSettings( 0, TI_Wave );
g_Shaders[ CaveGround ].SetTextureStageSettings( 1, TI_RandomCube );
g_Shaders[ FluidDepth ].CompileVS(g_ShaderVSFluid, "vsDepth" );
g_Shaders[ FluidDepth ].CompilePS(g_ShaderPSFluid, "psDepth" );
g_Shaders[ FluidPosition ].CompileVS(g_ShaderVSFluid, "vsDeferred" );
g_Shaders[ FluidPosition ].CompilePS(g_ShaderPSFluid, "psPosition" );
g_Shaders[ FluidNormal ].CompileVS(g_ShaderVSFluid, "vsDeferred" );
g_Shaders[ FluidNormal ].CompilePS(g_ShaderPSFluid, "psNormal" );
g_Shaders[ FluidBlur ].CompileVS(g_ShaderVSFluid, "vsCompose" );
g_Shaders[ FluidBlur ].CompilePS(g_ShaderPSFluid, "psBlur" );
g_Shaders[ FluidCompose ].CompileVS(g_ShaderVSFluid, "vsCompose" );
g_Shaders[ FluidCompose ].CompilePS(g_ShaderPSFluid, "psCompose" );
g_Shaders[ TerrainDepth ].CompileVS(g_ShaderVSGeneral, "vs_main", &pVSGeneral );
g_Shaders[ TerrainDepth ].CompilePS(g_ShaderPSDepth, "ps_main" );
g_Shaders[ TexGen_Perlin ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ TexGen_Perlin ].CompilePS(g_ShaderPSTexGen, "ps_perlin" );
g_Shaders[ TexGen_Wave ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ TexGen_Wave ].CompilePS(g_ShaderPSTexGen, "ps_wave" );
g_Shaders[ TexGen_Normal ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ TexGen_Normal ].CompilePS(g_ShaderPSTexGen, "ps_normal" );
g_Shaders[ TexGen_CubeBlur ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ TexGen_CubeBlur ].CompilePS(g_ShaderPSTexGen, "ps_cube_blur" );
g_Shaders[ Overlay_Logo ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ Overlay_Logo ].CompilePS(g_ShaderPSTexGen, "ps_logo" );
g_Shaders[ Overlay_Fade ].CompileVS(g_ShaderVSFSQuad, "vs_main", &pVSFSQuad );
g_Shaders[ Overlay_Fade ].CompilePS(g_ShaderPSTexGen, "ps_fade" );
g_Shaders[ SkyDepth ].CompileVS(g_ShaderVSSky, "vs_main" );
g_Shaders[ SkyDepth ].CompilePS(g_ShaderPSDepth, "ps_main" );
g_Shaders[ Text ].CompileVS(g_ShaderVSGeneral, "vs_main", &pVSGeneral );
g_Shaders[ Text ].CompilePS(g_ShaderPSText, "ps_main" );
g_Shaders[ Text ].SetTextureStageSettings( 0, TI_Wave );
g_Shaders[ Text ].SetTextureStageSettings( 1, TI_RandomCube );
g_Shaders[ EnvLit ].CompileVS(g_ShaderVSGeneral, "vs_main", &pVSGeneral );
g_Shaders[ EnvLit ].CompilePS(g_ShaderPSEnvLit, "ps_main" );
#ifdef EXTRACODE
char cTime[256];
dwTicks = GetTickCount() - dwTicks;
sprintf_s( cTime, "Shader Compilation Time: %d \n", dwTicks );
OutputDebugString( cTime );
#endif
}