Common.scrapeh 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. //////////////////////////////////////////////////////////////////////////////
  2. // ©2007 Electronic Arts Inc
  3. //
  4. // Scrape script for common procedures
  5. //////////////////////////////////////////////////////////////////////////////
  6. #ifndef SCRAPE_SCRIPT_COMMON_SCRAPEH
  7. #define SCRAPE_SCRIPT_COMMON_SCRAPEH
  8. //
  9. // Common
  10. //
  11. // Command to flush GPU
  12. #if defined(EA_PLATFORM_XENON)
  13. #define GPUFLUSH gpuflush
  14. #else
  15. #define GPUFLUSH
  16. #endif
  17. #define BinCommand_Default 0
  18. #define BinCommand_RenderParticles 1
  19. // Frame buffers
  20. var surface FrameBuffer color0
  21. var surface DepthBuffer depth
  22. #if defined(EA_PLATFORM_WINDOWS)
  23. var surface FrameRenderTarget edram $WW3D.FrameBufferSize.x $WW3D.FrameBufferSize.y $WW3D.FrameRenderTargetSurfaceFormat $WW3D.AntiAliasingMode
  24. // Allocate second depth buffer to match anti-aliased render targets. To save memory when AA is off, WW3D.FrameBufferSizeIfAntiAliasing will be 0,0 then
  25. var surface FrameDepthBuffer edramdepth $WW3D.FrameBufferSizeIfAntiAliasing.x $WW3D.FrameBufferSizeIfAntiAliasing.y D24S8 $WW3D.AntiAliasingMode
  26. #else
  27. // Xenon doesn't do antialiasing based on the WW3D.AntiAliasingMode
  28. var surface FrameRenderTarget edram $WW3D.FrameBufferSize.x $WW3D.FrameBufferSize.y $WW3D.FrameRenderTargetSurfaceFormat
  29. #define FrameDepthBuffer DepthBuffer
  30. #endif
  31. proc updateFrameRenderTargetToUse
  32. if WW3D IsHdrEnabled
  33. setbool WW3D IsUsingFrameRenderTarget true
  34. elif WW3D IsAntiAliasingEnabled
  35. setbool WW3D IsUsingFrameRenderTarget true
  36. else
  37. setbool WW3D IsUsingFrameRenderTarget false
  38. endif
  39. endproc
  40. proc setFrameRenderTarget
  41. if WW3D IsUsingFrameRenderTarget
  42. settarget 0 FrameRenderTarget
  43. else
  44. settarget 0 FrameBuffer
  45. endif
  46. endproc
  47. proc setFrameDepthBuffer
  48. if WW3D IsAntiAliasingEnabled // Only use custom depth buffer for IsAntiAliasingEnabled, not when just using HDR without AA
  49. setdepth FrameDepthBuffer
  50. else
  51. setdepth DepthBuffer
  52. endif
  53. endproc
  54. // Helper functions for rendering bin collections
  55. proc renderBinsUnit
  56. renderbin UnitPlayer0
  57. renderbin UnitPlayer1
  58. renderbin UnitPlayer2
  59. renderbin UnitPlayer3
  60. renderbin UnitPlayer4
  61. renderbin UnitPlayer5
  62. renderbin UnitPlayer6
  63. renderbin UnitPlayer7
  64. renderbin UnitPlayer8
  65. renderbin UnitPlayer9
  66. renderbin UnitPlayer10
  67. renderbin UnitPlayer11
  68. renderbin UnitPlayer12
  69. renderbin UnitPlayer13
  70. renderbin UnitPlayer14
  71. renderbin UnitPlayer15
  72. renderbin UnitPlayer16
  73. renderbin UnitPlayer17
  74. renderbin UnitPlayer18
  75. renderbin UnitPlayer19
  76. endproc
  77. proc renderBinsStaticSort
  78. // Static sorting rendering goes from high to low, so that the lower numbers are in-front of the higher ones
  79. // renderbin StaticSort5 //This is now used for underwater sorting - MJ
  80. renderbin StaticSort4
  81. renderbin StaticSort3
  82. renderbin StaticSort2
  83. renderbin StaticSort1
  84. endproc
  85. proc renderBinsStructureOutline
  86. renderbin StructureOutlineSelected
  87. renderbin StructureOutlineHoverAttack
  88. renderbin StructureOutlineHoverSelect
  89. endproc
  90. proc renderBinsUnitOutline
  91. renderbin UnitOutlineSelected
  92. renderbin UnitOutlineHoverAttack
  93. renderbin UnitOutlineHoverSelect
  94. endproc
  95. //////////////////////////////////////////////////////////////////////////////
  96. // Define textures that are not in the normal art pipeline
  97. //////////////////////////////////////////////////////////////////////////////
  98. var texture FXDistortionFractal FXDistortionFractal01
  99. var texture FXOceanCubeMap FXOceanCubeMap
  100. var texture FXJapanBuildMask FXJapanBuildMask
  101. var texture FXChronoRift FXChronoRift
  102. var texture FXIronCurtain FXIronCurtain
  103. var texture FXLightningTeslaHit FXLightningTeslaHit
  104. var texture FXFilmLut FXFilmLut
  105. proc initCustomTextures
  106. settexture WW3D FXDistortionFractal FXDistortionFractal // SasBindAddress = "WW3D.FXDistortionFractal"
  107. settexture WW3D FXOceanCubeMap FXOceanCubeMap // SasBindAddress = "WW3D.FXOceanCubeMap"
  108. settexture WW3D FXJapanBuildMask FXJapanBuildMask // SasBindAddress = "WW3D.FXJapanBuildMask"
  109. settexture WW3D FXChronoRift FXChronoRift // SasBindAddress = "WW3D.FXChronoRift"
  110. settexture WW3D FXIronCurtain FXIronCurtain // SasBindAddress = "WW3D.FXIronCurtain"
  111. settexture WW3D FXLightningTeslaHit FXLightningTeslaHit // SasBindAddress = "WW3D.FXLightningTeslaHit"
  112. settexture PostEffect LookupTable.FilmTonemapping FXFilmLut
  113. endproc
  114. #endif