home *** CD-ROM | disk | FTP | other *** search
/ Enter 2005 March / ENTER.ISO / files / fwp-0.0.6-win32-installer.exe / RendererInfo.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2004-12-06  |  11.0 KB  |  251 lines

  1. #include "RendererInfo.h"
  2.  
  3. #include "Gui.h"
  4. #include "log.h"
  5. #include "Renderer.h"
  6.  
  7. #ifndef WIN32
  8. #include <string.h>
  9. #endif
  10.  
  11. // FIXME:
  12. #include "LightEffectsParticleClusters.h"
  13. #include "Game.h"
  14.  
  15.  
  16. RendererInfoVar_t RendererInfo::var;
  17. RendererInfoCVar_t RendererInfo::cvar;
  18. RendererInfoCCmd_t RendererInfo::ccmd;
  19.  
  20.  
  21.  
  22. bool RendererInfo::registerCVarsAndCCmds(){
  23.     var.textureMinFilter=GL_LINEAR_MIPMAP_LINEAR;
  24.     var.textureMagFilter=GL_LINEAR;
  25.  
  26.     var.clipNear=0.5f;
  27.     cvar.renderer_clipNear=new CVarReal("renderer.clipNear", &var.clipNear, true);
  28.     cvar.renderer_clipNear->flags |= CON_FLAG_SYSTEM;
  29.     cvar.renderer_clipNear->setValRange(0.0f, 100000.0f);
  30.     console->registerCVar(cvar.renderer_clipNear);
  31.  
  32.     var.clipFar=20000.0f;
  33.     cvar.renderer_clipFar=new CVarReal("renderer.clipFar", &var.clipFar, true);
  34.     cvar.renderer_clipFar->flags |= CON_FLAG_SYSTEM;
  35.     cvar.renderer_clipFar->setValRange(0.0f, 100000.0f);
  36.     console->registerCVar(cvar.renderer_clipFar);
  37.  
  38.     var.fov=70.0f;
  39.     cvar.renderer_fov=new CVarReal("renderer.fov", &var.fov, true);
  40.     cvar.renderer_fov->flags |= CON_FLAG_SYSTEM;
  41.     cvar.renderer_fov->setValRange(0.0f, 180.0f);
  42.     console->registerCVar(cvar.renderer_fov);
  43.  
  44.  
  45.     var.lightingMode=3;
  46.     cvar.renderer_lightingMode=new CVarInt("renderer.lightingMode", &var.lightingMode, true);
  47.     cvar.renderer_lightingMode->flags |= CON_FLAG_SYSTEM;
  48.     cvar.renderer_lightingMode->setValRange(0, NUM_LIGHTING_MODES-1);
  49.     console->registerCVar(cvar.renderer_lightingMode);
  50.  
  51.     var.useDynamicLighting=true;
  52.     cvar.renderer_useDynamicLighting=new CVarBool("renderer.useDynamicLighting", &var.useDynamicLighting, true);
  53.     cvar.renderer_useDynamicLighting->flags |= CON_FLAG_SYSTEM;
  54.     console->registerCVar(cvar.renderer_useDynamicLighting);
  55.  
  56.     var.shadeVehicles=true;
  57.     cvar.renderer_shadeVehicles=new CVarBool("renderer.shadeVehicles", &var.shadeVehicles, true);
  58.     cvar.renderer_shadeVehicles->flags |= CON_FLAG_SYSTEM;
  59.     console->registerCVar(cvar.renderer_shadeVehicles);
  60.  
  61.     var.renderParticleEffects=3;
  62.     cvar.renderer_renderParticleEffects=new CVarInt("renderer.renderParticleEffects", &var.renderParticleEffects, true);
  63.     cvar.renderer_renderParticleEffects->flags |= CON_FLAG_SYSTEM;
  64.     cvar.renderer_renderParticleEffects->setValRange(0, 3);
  65.     console->registerCVar(cvar.renderer_renderParticleEffects);
  66.  
  67.  
  68.     var.useBackfaceCulling=true;
  69.     cvar.renderer_useBackfaceCulling=new CVarBool("renderer.useBackfaceCulling", &var.useBackfaceCulling, true);
  70.     cvar.renderer_useBackfaceCulling->flags |= CON_FLAG_SYSTEM;
  71.     console->registerCVar(cvar.renderer_useBackfaceCulling);
  72.  
  73.     var.useFrustrumCulling=true;
  74.     cvar.renderer_useFrustrumCulling=new CVarBool("renderer.useFrustrumCulling", &var.useFrustrumCulling, true);
  75.     cvar.renderer_useFrustrumCulling->flags |= CON_FLAG_SYSTEM;
  76.     console->registerCVar(cvar.renderer_useFrustrumCulling);
  77.  
  78.     var.useFog=true;
  79.     cvar.renderer_useFog=new CVarBool("renderer.useFog", &var.useFog, true);
  80.     cvar.renderer_useFog->flags |= CON_FLAG_SYSTEM;
  81.     console->registerCVar(cvar.renderer_useFog);
  82.  
  83.     var.renderSkybox=true;
  84.     cvar.renderer_renderSkybox=new CVarBool("renderer.renderSkybox", &var.renderSkybox, true);
  85.     cvar.renderer_renderSkybox->flags |= CON_FLAG_SYSTEM;
  86.     console->registerCVar(cvar.renderer_renderSkybox);
  87.  
  88.     var.renderNormals=0;
  89.     cvar.renderer_renderNormals=new CVarInt("renderer.renderNormals", &var.renderNormals, true);
  90.     cvar.renderer_renderNormals->flags |= CON_FLAG_SYSTEM;
  91.     cvar.renderer_renderNormals->setValRange(0,2);
  92.     console->registerCVar(cvar.renderer_renderNormals);
  93.  
  94.     var.renderTris=0;
  95.     cvar.renderer_renderTris=new CVarInt("renderer.renderTris", &var.renderTris, true);
  96.     cvar.renderer_renderTris->flags |= CON_FLAG_SYSTEM;
  97.     cvar.renderer_renderTris->setValRange(0,2);
  98.     console->registerCVar(cvar.renderer_renderTris);
  99.  
  100.     var.renderSPTreeBorders=0;
  101.     cvar.renderer_renderSPTreeBorders=new CVarInt("renderer.renderSPTreeBorders", &var.renderSPTreeBorders, true);
  102.     cvar.renderer_renderSPTreeBorders->flags |= CON_FLAG_SYSTEM;
  103.     cvar.renderer_renderSPTreeBorders->setValRange(0,2);
  104.     console->registerCVar(cvar.renderer_renderSPTreeBorders);
  105.  
  106.     var.renderPVSBorders=0;
  107.     cvar.renderer_renderPVSBorders=new CVarInt("renderer.renderPVSBorders", &var.renderPVSBorders, true);
  108.     cvar.renderer_renderPVSBorders->flags |= CON_FLAG_SYSTEM;
  109.     cvar.renderer_renderPVSBorders->setValRange(0,2);
  110.     console->registerCVar(cvar.renderer_renderPVSBorders);
  111.  
  112.     var.renderCOSystem=0;
  113.     cvar.renderer_renderCOSystem=new CVarInt("renderer.renderCOSystem", &var.renderCOSystem, true);
  114.     cvar.renderer_renderCOSystem->flags |= CON_FLAG_SYSTEM;
  115.     cvar.renderer_renderCOSystem->setValRange(0,2);
  116.     console->registerCVar(cvar.renderer_renderCOSystem);
  117.  
  118.     var.renderLights=0;
  119.     cvar.renderer_renderLights=new CVarInt("renderer.renderLights", &var.renderLights, true);
  120.     cvar.renderer_renderLights->flags |= CON_FLAG_SYSTEM;
  121.     cvar.renderer_renderLights->setValRange(0,1);
  122.     console->registerCVar(cvar.renderer_renderLights);
  123.     
  124.     var.renderClientPositions=0;
  125.     cvar.renderer_renderClientPositions=new CVarInt("renderer.renderClientPositions", &var.renderClientPositions, true);
  126.     cvar.renderer_renderClientPositions->flags |= CON_FLAG_SYSTEM;
  127.     cvar.renderer_renderClientPositions->setValRange(0,1);
  128.     console->registerCVar(cvar.renderer_renderClientPositions);
  129.  
  130.     var.renderSpawnpoints=0;
  131.     cvar.renderer_renderSpawnpoints=new CVarInt("renderer.renderSpawnpoints", &var.renderSpawnpoints, true);
  132.     cvar.renderer_renderSpawnpoints->flags |= CON_FLAG_SYSTEM;
  133.     cvar.renderer_renderSpawnpoints->setValRange(0,1);
  134.     console->registerCVar(cvar.renderer_renderSpawnpoints);
  135.  
  136.     var.renderBoundingBoxes=0;
  137.     cvar.renderer_renderBoundingBoxes=new CVarInt("renderer.renderBoundingBoxes", &var.renderBoundingBoxes, true);
  138.     cvar.renderer_renderBoundingBoxes->flags |= CON_FLAG_SYSTEM;
  139.     cvar.renderer_renderBoundingBoxes->setValRange(0,1);
  140.     console->registerCVar(cvar.renderer_renderBoundingBoxes);
  141.  
  142.     var.overwriteMeshRenderMode=0;
  143.     cvar.renderer_overwriteMeshRenderMode=new CVarInt("renderer.overwriteMeshRenderMode", &var.overwriteMeshRenderMode, true);
  144.     cvar.renderer_overwriteMeshRenderMode->flags |= CON_FLAG_SYSTEM;
  145.     cvar.renderer_overwriteMeshRenderMode->setValRange(0,3);
  146.     console->registerCVar(cvar.renderer_overwriteMeshRenderMode);
  147.  
  148.     var.useTransparentPolysList = true;
  149.     cvar.renderer_useTransparentPolysList=new CVarBool("renderer.useTransparentPolysList", &var.useTransparentPolysList, true);
  150.     cvar.renderer_useTransparentPolysList->flags |= CON_FLAG_SYSTEM;
  151.     console->registerCVar(cvar.renderer_useTransparentPolysList);
  152.  
  153.     var.globalAmbientLight=new GLfloat[4];
  154.     vectorInit4d(0.2f, 0.2f, 0.2f, 1.0f, var.globalAmbientLight);
  155.     cvar.renderer_globalAmbientLight=new CVarRealVector("renderer.globalAmbientLight", &var.globalAmbientLight, 4, true);
  156.     cvar.renderer_globalAmbientLight->flags |= CON_FLAG_SYSTEM;
  157.     cvar.renderer_globalAmbientLight->setValRange(0.0f, 1.0f);
  158.     console->registerCVar(cvar.renderer_globalAmbientLight);
  159.  
  160.     // Extensions
  161. //    var.useCompiledVertexArrays=false;
  162. //    cvar.renderer_useCompiledVertexArrays=new CVarBool("renderer.useCompiledVertexArrays", &var.useCompiledVertexArrays, true);
  163. //    console->registerCVar(cvar.renderer_useCompiledVertexArrays);
  164.  
  165. //    var.useMultitexturing=false;
  166. //    cvar.renderer_useMultitexturing=new CVarBool("renderer.useMultitexturing", &var.useMultitexturing, true);
  167. //    console->registerCVar(cvar.renderer_useMultitexturing);
  168.  
  169.     var.useVBOs=false;
  170.     cvar.renderer_useVBOs=new CVarBool("renderer.useVBOs", &var.useVBOs, true);
  171.     cvar.renderer_useVBOs->flags |= CON_FLAG_SYSTEM;
  172.     cvar.renderer_useVBOs->changeStr = "(changes will only affect newly loaded models!)";
  173.     console->registerCVar(cvar.renderer_useVBOs);
  174.  
  175.  
  176.     var.textureSearchPath=new char[CON_MAX_STRING_LENGTH];
  177.     strcpy(var.textureSearchPath, "gui/fonts;arenas/shared/skyboxes;arenas/shared/textures;arenas/shared/shaders");
  178.     cvar.renderer_textureSearchPath=new CVarString("renderer.textureSearchPath", &var.textureSearchPath, true);
  179.     cvar.renderer_textureSearchPath->flags |= CON_FLAG_SYSTEM;
  180.     console->registerCVar(cvar.renderer_textureSearchPath);
  181.  
  182.     var.textureExtensions=new char[CON_MAX_STRING_LENGTH];
  183.     strcpy(var.textureExtensions, ".tga;.jpg;.jpeg;.bmp;.png;.gif");
  184.     cvar.renderer_textureExtensions=new CVarString("renderer.textureExtensions", &var.textureExtensions, true);
  185.     cvar.renderer_textureExtensions->flags |= CON_FLAG_SYSTEM;
  186.     console->registerCVar(cvar.renderer_textureExtensions);
  187.  
  188.     return true;
  189. }
  190.  
  191. bool RendererInfo::unregisterCVarsAndCCmds(){
  192.  
  193.     console->unregisterCVar(cvar.renderer_clipNear);
  194.     delete cvar.renderer_clipNear;
  195.     console->unregisterCVar(cvar.renderer_clipFar);
  196.     delete cvar.renderer_clipFar;
  197.     console->unregisterCVar(cvar.renderer_fov);
  198.     delete cvar.renderer_fov;
  199.     console->unregisterCVar(cvar.renderer_lightingMode);
  200.     delete cvar.renderer_lightingMode;
  201.     console->unregisterCVar(cvar.renderer_useDynamicLighting);
  202.     delete cvar.renderer_useDynamicLighting;
  203.     console->unregisterCVar(cvar.renderer_shadeVehicles);
  204.     delete cvar.renderer_shadeVehicles;
  205.     console->unregisterCVar(cvar.renderer_useBackfaceCulling);
  206.     delete cvar.renderer_useBackfaceCulling;
  207.     console->unregisterCVar(cvar.renderer_useFrustrumCulling);
  208.     delete cvar.renderer_useFrustrumCulling;
  209.     console->unregisterCVar(cvar.renderer_useFog);
  210.     delete cvar.renderer_useFog;
  211.     console->unregisterCVar(cvar.renderer_renderSkybox);
  212.     delete cvar.renderer_renderSkybox;
  213.     console->unregisterCVar(cvar.renderer_renderNormals);
  214.     delete cvar.renderer_renderNormals;
  215.     console->unregisterCVar(cvar.renderer_renderTris);
  216.     delete cvar.renderer_renderTris;
  217.     console->unregisterCVar(cvar.renderer_renderSPTreeBorders);
  218.     delete cvar.renderer_renderSPTreeBorders;
  219.     console->unregisterCVar(cvar.renderer_renderPVSBorders);
  220.     delete cvar.renderer_renderPVSBorders;
  221.     console->unregisterCVar(cvar.renderer_renderCOSystem);
  222.     delete cvar.renderer_renderCOSystem;
  223.     console->unregisterCVar(cvar.renderer_renderLights);
  224.     delete cvar.renderer_renderLights;
  225.     console->unregisterCVar(cvar.renderer_renderClientPositions);
  226.     delete cvar.renderer_renderClientPositions;
  227.     console->unregisterCVar(cvar.renderer_renderSpawnpoints);
  228.     delete cvar.renderer_renderSpawnpoints;
  229.     console->unregisterCVar(cvar.renderer_renderBoundingBoxes);
  230.     delete cvar.renderer_renderBoundingBoxes;
  231.     console->unregisterCVar(cvar.renderer_overwriteMeshRenderMode);
  232.     delete cvar.renderer_overwriteMeshRenderMode;
  233.     console->unregisterCVar(cvar.renderer_useTransparentPolysList);
  234.     delete cvar.renderer_useTransparentPolysList;
  235.     console->unregisterCVar(cvar.renderer_globalAmbientLight);
  236.     delete cvar.renderer_globalAmbientLight;
  237.     delete[] var.globalAmbientLight;
  238. //    console->unregisterCVar(cvar.renderer_useCompiledVertexArrays);
  239. //    delete cvar.renderer_useCompiledVertexArrays;
  240. //    console->unregisterCVar(cvar.renderer_useMultitexturing);
  241. //    delete cvar.renderer_useMultitexturing;
  242.     console->unregisterCVar(cvar.renderer_textureSearchPath);
  243.     delete cvar.renderer_textureSearchPath;
  244.     delete[] var.textureSearchPath;
  245.     console->unregisterCVar(cvar.renderer_textureExtensions);
  246.     delete cvar.renderer_textureExtensions;
  247.     delete[] var.textureExtensions;
  248.  
  249.     return true;
  250. }
  251.