@VideoOptions.h 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. /******************************************************************************/
  2. /******************************************************************************/
  3. class VideoOptions : PropWin
  4. {
  5. class Advanced : PropWin
  6. {
  7. static cchar8 *TexFilter_t[]
  8. ;
  9. static cchar8 *Density_t[]
  10. ;
  11. static cchar8 *DensityFilter_t[]
  12. ;
  13. static FILTER_TYPE DensityFilter_v[]
  14. ;
  15. static cchar8 *TexUse_t[]
  16. ; ASSERT(TEX_USE_DISABLE==0 && TEX_USE_SINGLE==1 && TEX_USE_MULTI==2);
  17. static cchar8 *EdgeDetect_t[]
  18. ; ASSERT(EDGE_DETECT_NONE==0 && EDGE_DETECT_THIN==1 && EDGE_DETECT_FAT==2);
  19. static cchar8 *Precision_t[]
  20. ; ASSERT(IMAGE_PRECISION_8==0 && IMAGE_PRECISION_10==1);
  21. static cchar8 *Stage_t[]
  22. ; ASSERT(RS_DEFAULT==0 && RS_DEPTH==1 && RS_COLOR==2 && RS_NORMAL==3 && RS_VEL==4 && RS_LIGHT==5 && RS_LIGHT_AO==6 && RS_AO==7 && RS_LIT_COLOR==8
  23. && RS_REFLECTION==9 && RS_WATER_COLOR==10 && RS_WATER_NORMAL==11 && RS_WATER_LIGHT==12);
  24. static cchar8 *ShadowReduceFlicker_t[]
  25. ;
  26. static Str Fov (C Advanced &adv );
  27. static void Fov ( Advanced &adv, C Str &text);
  28. static Str TexFilter (C Advanced &adv );
  29. static void TexFilter ( Advanced &adv, C Str &text);
  30. static Str TexMipFilter (C Advanced &adv );
  31. static void TexMipFilter ( Advanced &adv, C Str &text);
  32. static Str DetailTexUse (C Advanced &adv );
  33. static void DetailTexUse ( Advanced &adv, C Str &text);
  34. static Str ReflectTexUse(C Advanced &adv );
  35. static void ReflectTexUse( Advanced &adv, C Str &text);
  36. static Str Samples (C Advanced &adv );
  37. static void Samples ( Advanced &adv, C Str &text);
  38. static Str Density (C Advanced &adv );
  39. static void Density ( Advanced &adv, C Str &text);
  40. static Str DensityFilter(C Advanced &adv );
  41. static void DensityFilter( Advanced &adv, C Str &text);
  42. static Str GrassRange (C Advanced &adv );
  43. static void GrassRange ( Advanced &adv, C Str &text); // grass objects will be hidden for 0
  44. static Str GrassDensity (C Advanced &adv );
  45. static void GrassDensity ( Advanced &adv, C Str &text);
  46. static Str SoftParticle (C Advanced &adv );
  47. static void SoftParticle ( Advanced &adv, C Str &text);
  48. //static Str ColorPalette (C Advanced &adv ) {return Renderer.color_palette.name();}
  49. //static void ColorPalette ( Advanced &adv, C Str &text) {Renderer.color_palette.get(ImageName(text));}
  50. //static Str ColorPalette1(C Advanced &adv ) {return Renderer.color_palette1.name();}
  51. //static void ColorPalette1( Advanced &adv, C Str &text) {Renderer.color_palette1.get(ImageName(text));}
  52. static Str VolLight (C Advanced &adv );
  53. static void VolLight ( Advanced &adv, C Str &text);
  54. static Str MaxLights (C Advanced &adv );
  55. static void MaxLights ( Advanced &adv, C Str &text);
  56. static Str EdgeDetect (C Advanced &adv );
  57. static void EdgeDetect ( Advanced &adv, C Str &text);
  58. static Str Stage (C Advanced &adv );
  59. static void Stage ( Advanced &adv, C Str &text);
  60. static Str EyeAdaptBrigh(C Advanced &adv );
  61. static void EyeAdaptBrigh( Advanced &adv, C Str &text);
  62. static Str Exclusive (C Advanced &adv );
  63. static void Exclusive ( Advanced &adv, C Str &text);
  64. static Str MonitorPrec (C Advanced &adv );
  65. static void MonitorPrec ( Advanced &adv, C Str &text);
  66. static Str Dither (C Advanced &adv );
  67. static void Dither ( Advanced &adv, C Str &text);
  68. static Str ColRTPrec (C Advanced &adv );
  69. static void ColRTPrec ( Advanced &adv, C Str &text);
  70. static Str NrmCalcPrec (C Advanced &adv );
  71. static void NrmCalcPrec ( Advanced &adv, C Str &text);
  72. static Str NrmRTPrec (C Advanced &adv );
  73. static void NrmRTPrec ( Advanced &adv, C Str &text);
  74. static Str LumRTPrec (C Advanced &adv );
  75. static void LumRTPrec ( Advanced &adv, C Str &text);
  76. static Str LitColRTPrec (C Advanced &adv );
  77. static void LitColRTPrec ( Advanced &adv, C Str &text);
  78. static Str BloomSat (C Advanced &adv );
  79. static void BloomSat ( Advanced &adv, C Str &text);
  80. static Str AmbLight (C Advanced &adv );
  81. static void AmbLight ( Advanced &adv, C Str &text);
  82. static Str AOContrast (C Advanced &adv );
  83. static void AOContrast ( Advanced &adv, C Str &text);
  84. static Str AORange (C Advanced &adv );
  85. static void AORange ( Advanced &adv, C Str &text);
  86. static Str ShadowFlicker(C Advanced &adv );
  87. static void ShadowFlicker( Advanced &adv, C Str &text);
  88. static Str ShadowFrac (C Advanced &adv );
  89. static void ShadowFrac ( Advanced &adv, C Str &text);
  90. static Str ShadowFade (C Advanced &adv );
  91. static void ShadowFade ( Advanced &adv, C Str &text);
  92. static Str AllowGlow (C Advanced &adv );
  93. static void AllowGlow ( Advanced &adv, C Str &text);
  94. static Str SimplePrec (C Advanced &adv );
  95. static void SimplePrec ( Advanced &adv, C Str &text);
  96. static Str MaterialBlend(C Advanced &adv );
  97. static void MaterialBlend( Advanced &adv, C Str &text);
  98. static Str TexLod (C Advanced &adv );
  99. static void TexLod ( Advanced &adv, C Str &text);
  100. flt fov;
  101. void setFov(flt fov);
  102. void ctor();
  103. void create();
  104. virtual Advanced& hide()override;
  105. };
  106. static cchar8 *Render_t[]
  107. ; ASSERT(RT_DEFERRED==0 && RT_FORWARD==1 && RT_SIMPLE==2);
  108. static cchar8 *EdgeSoften_t[]
  109. ; ASSERT(EDGE_SOFTEN_NONE==0 && EDGE_SOFTEN_FXAA==1 && !SUPPORT_MLAA && EDGE_SOFTEN_SMAA==2+SUPPORT_MLAA);
  110. static cchar8 *ShadowSize_t[]
  111. ;
  112. static cchar8 *ShadowNum_t[]
  113. ;
  114. static cchar8 *ShadowSoft_t[]
  115. ; ASSERT(SHADOW_SOFT_NUM==6);
  116. static cchar8 *BumpMode_t[]
  117. ; ASSERT(BUMP_FLAT==0 && BUMP_NORMAL==1 && BUMP_PARALLAX==2 && BUMP_RELIEF==3 && BUMP_NUM==4);
  118. static cchar8 *MotionMode_t[]
  119. ;
  120. static cchar8 *AO_t[]
  121. ;
  122. class Skin
  123. {
  124. cchar8 *name;
  125. UID id;
  126. };
  127. static Skin skins[]
  128. ;
  129. static void Mode ( VideoOptions &vo, C Str &t);
  130. static Str Full (C VideoOptions &vo );
  131. static void Full ( VideoOptions &vo, C Str &t);
  132. static Str Sync (C VideoOptions &vo );
  133. static void Sync ( VideoOptions &vo, C Str &t);
  134. static Str Render (C VideoOptions &vo );
  135. static void Render ( VideoOptions &vo, C Str &t);
  136. static Str EdgeSoft (C VideoOptions &vo );
  137. static void EdgeSoft ( VideoOptions &vo, C Str &t);
  138. static Str Shadow (C VideoOptions &vo );
  139. static void Shadow ( VideoOptions &vo, C Str &t);
  140. static Str ShadowSize (C VideoOptions &vo ); // go from end to check biggest first
  141. static void ShadowSize ( VideoOptions &vo, C Str &t);
  142. static Str ShadowNum (C VideoOptions &vo );
  143. static void ShadowNum ( VideoOptions &vo, C Str &t);
  144. static Str ShadowSoft (C VideoOptions &vo );
  145. static void ShadowSoft ( VideoOptions &vo, C Str &t);
  146. static Str ShadowJit (C VideoOptions &vo );
  147. static void ShadowJit ( VideoOptions &vo, C Str &t);
  148. static Str BumpMode (C VideoOptions &vo );
  149. static void BumpMode ( VideoOptions &vo, C Str &t);
  150. static Str MotionMode (C VideoOptions &vo );
  151. static void MotionMode ( VideoOptions &vo, C Str &t);
  152. static Str AO (C VideoOptions &vo );
  153. static void AO ( VideoOptions &vo, C Str &t);
  154. static Str EyeAdapt (C VideoOptions &vo );
  155. static void EyeAdapt ( VideoOptions &vo, C Str &t);
  156. static Str Scale (C VideoOptions &vo );
  157. static void Scale ( VideoOptions &vo, C Str &t);
  158. static Str ScaleWin (C VideoOptions &vo );
  159. static void ScaleWin ( VideoOptions &vo, C Str &t);
  160. static void SkinChanged( VideoOptions &vo );
  161. Property *full, *mode, *shd, *shd_siz, *shd_num, *shd_sft, *shd_jit, *bump, *ao, *skin;
  162. Button advanced_show;
  163. Advanced advanced;
  164. flt scale;
  165. bool scale_win;
  166. static void ShowAdvanced(VideoOptions &vo);
  167. void setScale();
  168. void setScale (flt scale);
  169. void setScaleWin(bool scale);
  170. UID skinID (C Str &name)C;
  171. int skinIndex(C UID &id )C;
  172. Str skinName ( )C;
  173. void resize();
  174. void ctor();
  175. void create();
  176. void setVis();
  177. void hideAll();
  178. virtual Window& show()override;
  179. virtual VideoOptions& hide()override;
  180. virtual void update(C GuiPC &gpc)override;
  181. public:
  182. VideoOptions();
  183. };
  184. /******************************************************************************/
  185. /******************************************************************************/
  186. extern VideoOptions VidOpt;
  187. /******************************************************************************/