basewater.cpp
来自「这是整套横扫千军3D版游戏的源码」· C++ 代码 · 共 77 行
CPP
77 行
#include "StdAfx.h"
#include "BaseWater.h"
#include "BasicWater.h"
#include "AdvWater.h"
#include "Rendering/GL/myGL.h"
#include "Platform/ConfigHandler.h"
#include "LogOutput.h"
#include "DynWater.h"
#include "RefractWater.h"
#include "mmgr.h"
CBaseWater* water=0;
CBaseWater::CBaseWater(void)
{
drawReflection=false;
drawRefraction=false;
noWakeProjectiles=false;
drawSolid=false;
}
CBaseWater::~CBaseWater(void)
{
}
CBaseWater* CBaseWater::GetWater()
{
CBaseWater* water = NULL;
const int configValue = configHandler.GetInt("ReflectiveWater",1);
if(configValue==2 && GLEW_ARB_fragment_program && GLEW_ARB_texture_float &&
ProgramStringIsNative(GL_FRAGMENT_PROGRAM_ARB,"waterDyn.fp")) {
try {
water = SAFE_NEW CDynWater;
} catch (content_error& e) {
delete water;
water = NULL;
logOutput.Print("Loading Dynamic Water failed");
logOutput.Print("Error: %s", e.what());
}
if (water) {
return water;
}
}
if(configValue==3 && GLEW_ARB_fragment_program && GLEW_ARB_texture_rectangle){
try {
water = SAFE_NEW CRefractWater;
} catch (content_error& e) {
delete water;
water = NULL;
logOutput.Print("Loading Refractive Water failed");
logOutput.Print("Error: %s", e.what());
}
if (water) {
return water;
}
}
if(configValue!=0 && GLEW_ARB_fragment_program &&
ProgramStringIsNative(GL_FRAGMENT_PROGRAM_ARB,"water.fp")){
try {
water = SAFE_NEW CAdvWater;
} catch (content_error& e) {
delete water;
water = NULL;
logOutput.Print("Loading Reflective Water failed");
logOutput.Print("Error: %s", e.what());
}
if (water) {
return water;
}
}
return SAFE_NEW CBasicWater;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?