// RenderOption.cpp: implementation of the CRenderOption class. // ////////////////////////////////////////////////////////////////////// #include "RenderOption.h" #include "BaseDataDefine.h" #include #include ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// int CRenderOption::m_GrassRendering=1; int CRenderOption::m_GrassAnimationUseVertexShader=0; int CRenderOption::m_GrassRenderRange=9; int CRenderOption::m_RangeGrassRender=0; int CRenderOption::m_FullSceneGlare=0; int CRenderOption::m_FullSceneAnti=0; int CRenderOption::m_FullSceneSpecularGlare=0; int CRenderOption::m_WaterBumpEnvRendering=0; int CRenderOption::m_TerrainMultiDetalTexture=1; int CRenderOption::m_TerrainRange=7; int CRenderOption::m_BuildingLightmap=1; int CRenderOption::m_TreeAnimation=1; int CRenderOption::m_CharacterPerPixelLighting=0; int CRenderOption::m_CharacterPerPixelSpecularLighting=0; int CRenderOption::m_CharacterSelfShadow=0; int CRenderOption::m_DepthOfField=0; int CRenderOption::m_CharacterProjectShadowTerrain=1; int CRenderOption::m_CharacterProjectShadowBuilding=1; int CRenderOption::m_ObjectLOD=4; int CRenderOption::m_TextureMethod=1; char CRenderOption::m_strBaseGraphicsDataPath[256]; int CRenderOption::m_ObjectProjectShadow=0; int CRenderOption::m_TreeProjectShadow=0; int CRenderOption::m_BSPDiffusePerPixel=0; int CRenderOption::m_BSPSpecularPerPixel=0; int CRenderOption::m_AllObjectBump=0; int CRenderOption::m_bFullSceneGlare = 1; int CRenderOption::m_bRain = 1; int CRenderOption::m_bWaterBump = 0; bool CRenderOption::m_bFullSceneEffect = false; bool CRenderOption::m_bShadowMap = true; float CRenderOption::m_fBumpScale = 20.0f; bool CRenderOption::m_bWaterEnvBump2 = false; //bool CRenderOption::LoadZoneInfo(CRenderOption::ZoneInfo *); // � info File Load CRenderOption::CRenderOption() { } CRenderOption::~CRenderOption() { } void CRenderOption::Save(char *strFilename) { FILE *fp=fopen(strFilename,"wb"); if(fp) { fwrite(&m_GrassRendering,sizeof(int),1,fp); fwrite(&m_GrassAnimationUseVertexShader,sizeof(int),1,fp); fwrite(&m_GrassRenderRange,sizeof(int),1,fp); fwrite(&m_RangeGrassRender,sizeof(int),1,fp); fwrite(&m_FullSceneGlare,sizeof(int),1,fp); fwrite(&m_FullSceneAnti,sizeof(int),1,fp); fwrite(&m_FullSceneSpecularGlare,sizeof(int),1,fp); fwrite(&m_WaterBumpEnvRendering,sizeof(int),1,fp); fwrite(&m_TerrainMultiDetalTexture,sizeof(int),1,fp); fwrite(&m_TerrainRange,sizeof(int),1,fp); fwrite(&m_BuildingLightmap,sizeof(int),1,fp); fwrite(&m_TreeAnimation,sizeof(int),1,fp); fwrite(&m_CharacterPerPixelLighting,sizeof(int),1,fp); fwrite(&m_CharacterPerPixelSpecularLighting,sizeof(int),1,fp); fwrite(&m_CharacterSelfShadow,sizeof(int),1,fp); fwrite(&m_DepthOfField,sizeof(int),1,fp); fwrite(&m_CharacterProjectShadowTerrain,sizeof(int),1,fp); fwrite(&m_CharacterProjectShadowBuilding,sizeof(int),1,fp); fwrite(&m_ObjectLOD,sizeof(int),1,fp); fwrite(&m_TextureMethod,sizeof(int),1,fp); fclose(fp); } } bool CRenderOption::Load(char *strFilename) { FILE *fp=fopen(strFilename,"rb"); if(fp) { fread(&m_GrassRendering,sizeof(int),1,fp); fread(&m_GrassAnimationUseVertexShader,sizeof(int),1,fp); fread(&m_GrassRenderRange,sizeof(int),1,fp); fread(&m_RangeGrassRender,sizeof(int),1,fp); fread(&m_FullSceneGlare,sizeof(int),1,fp); fread(&m_FullSceneAnti,sizeof(int),1,fp); fread(&m_FullSceneSpecularGlare,sizeof(int),1,fp); fread(&m_WaterBumpEnvRendering,sizeof(int),1,fp); fread(&m_TerrainMultiDetalTexture,sizeof(int),1,fp); fread(&m_TerrainRange,sizeof(int),1,fp); fread(&m_BuildingLightmap,sizeof(int),1,fp); fread(&m_TreeAnimation,sizeof(int),1,fp); fread(&m_CharacterPerPixelLighting,sizeof(int),1,fp); fread(&m_CharacterPerPixelSpecularLighting,sizeof(int),1,fp); fread(&m_CharacterSelfShadow,sizeof(int),1,fp); fread(&m_DepthOfField,sizeof(int),1,fp); fread(&m_CharacterProjectShadowTerrain,sizeof(int),1,fp); fread(&m_CharacterProjectShadowBuilding,sizeof(int),1,fp); fread(&m_ObjectLOD,sizeof(int),1,fp); fread(&m_TextureMethod,sizeof(int),1,fp); fclose(fp); return true; } return false; } bool CRenderOption::LoadZoneInfo(ZoneInfo *pZoneInfo) // � info File Load { if(pZoneInfo == NULL) return false; if(!strcmp(CRenderOption::m_strBaseGraphicsDataPath,"")) { pZoneInfo->m_bZoneInfo = false; return false; } FILE *fp = NULL; char strInfo[256] = {0}; sprintf(strInfo,"%s%s.info",ROOTPATH,m_strBaseGraphicsDataPath); fp = fopen(strInfo,"rb"); if(fp == NULL) { pZoneInfo->m_bZoneInfo = false; return false; } // Data Load pZoneInfo->m_bZoneInfo = true; fread((int *)pZoneInfo->m_iZoneInfo,sizeof(int),30,fp); // Int Value Load fread((float *)pZoneInfo->m_fZoneInfo,sizeof(float),30,fp); // float Value Load fclose(fp); return true; }