CMakeLists.txt 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. add_library(render_gl STATIC
  2. gl/shader.cpp
  3. gl/buffer.cpp
  4. gl/mesh.cpp
  5. gl/texture.cpp
  6. gl/primitives.cpp
  7. scene_renderer.cpp
  8. gl/camera.cpp
  9. gl/resources.cpp
  10. gl/bootstrap.cpp
  11. gl/backend.cpp
  12. gl/backend/cylinder_pipeline.cpp
  13. gl/backend/vegetation_pipeline.cpp
  14. gl/backend/terrain_pipeline.cpp
  15. gl/backend/character_pipeline.cpp
  16. gl/backend/water_pipeline.cpp
  17. gl/backend/effects_pipeline.cpp
  18. gl/backend/primitive_batch_pipeline.cpp
  19. gl/backend/banner_pipeline.cpp
  20. gl/backend/healing_beam_pipeline.cpp
  21. gl/backend/healer_aura_pipeline.cpp
  22. gl/backend/combat_dust_pipeline.cpp
  23. gl/backend/mode_indicator_pipeline.cpp
  24. gl/backend/rain_pipeline.cpp
  25. gl/backend/mesh_instancing_pipeline.cpp
  26. gl/shader_cache.cpp
  27. gl/state_scopes.cpp
  28. draw_queue.cpp
  29. primitive_batch.cpp
  30. ground/spawn_validator.cpp
  31. ground/ground_renderer.cpp
  32. ground/fog_renderer.cpp
  33. ground/terrain_renderer.cpp
  34. ground/river_renderer.cpp
  35. ground/road_renderer.cpp
  36. ground/olive_renderer.cpp
  37. ground/riverbank_renderer.cpp
  38. ground/riverbank_asset_renderer.cpp
  39. ground/bridge_renderer.cpp
  40. ground/biome_renderer.cpp
  41. ground/stone_renderer.cpp
  42. ground/plant_renderer.cpp
  43. ground/pine_renderer.cpp
  44. ground/firecamp_renderer.cpp
  45. ground/rain_renderer.cpp
  46. entity/registry.cpp
  47. entity/nations/roman/archer_renderer.cpp
  48. entity/nations/carthage/archer_renderer.cpp
  49. entity/nations/roman/archer_style.cpp
  50. entity/nations/carthage/archer_style.cpp
  51. entity/nations/roman/swordsman_renderer.cpp
  52. entity/nations/carthage/swordsman_renderer.cpp
  53. entity/nations/roman/swordsman_style.cpp
  54. entity/nations/carthage/swordsman_style.cpp
  55. entity/nations/roman/spearman_renderer.cpp
  56. entity/nations/carthage/spearman_renderer.cpp
  57. entity/nations/roman/spearman_style.cpp
  58. entity/nations/carthage/spearman_style.cpp
  59. horse/rig.cpp
  60. horse/horse_animation_controller.cpp
  61. entity/horse_renderer.cpp
  62. entity/mounted_humanoid_renderer_base.cpp
  63. entity/mounted_knight_renderer_base.cpp
  64. entity/horse_archer_renderer_base.cpp
  65. entity/horse_spearman_renderer_base.cpp
  66. entity/nations/roman/horse_swordsman_renderer.cpp
  67. entity/nations/carthage/horse_swordsman_renderer.cpp
  68. entity/nations/roman/horse_archer_renderer.cpp
  69. entity/nations/carthage/horse_archer_renderer.cpp
  70. entity/nations/roman/horse_spearman_renderer.cpp
  71. entity/nations/carthage/horse_spearman_renderer.cpp
  72. entity/nations/roman/healer_renderer.cpp
  73. entity/nations/roman/healer_style.cpp
  74. entity/nations/carthage/healer_renderer.cpp
  75. entity/nations/carthage/healer_style.cpp
  76. entity/nations/roman/builder_renderer.cpp
  77. entity/nations/roman/builder_style.cpp
  78. entity/nations/carthage/builder_renderer.cpp
  79. entity/nations/carthage/builder_style.cpp
  80. entity/healing_beam_renderer.cpp
  81. entity/healing_waves_renderer.cpp
  82. entity/healer_aura_renderer.cpp
  83. entity/combat_dust_renderer.cpp
  84. entity/barracks_renderer.cpp
  85. entity/nations/roman/barracks_renderer.cpp
  86. entity/nations/carthage/barracks_renderer.cpp
  87. entity/defense_tower_renderer.cpp
  88. entity/nations/roman/defense_tower_renderer.cpp
  89. entity/nations/carthage/defense_tower_renderer.cpp
  90. entity/home_renderer.cpp
  91. entity/nations/roman/home_renderer.cpp
  92. entity/nations/carthage/home_renderer.cpp
  93. entity/catapult_renderer.cpp
  94. entity/nations/roman/catapult_renderer.cpp
  95. entity/nations/carthage/catapult_renderer.cpp
  96. entity/ballista_renderer.cpp
  97. entity/nations/roman/ballista_renderer.cpp
  98. entity/nations/carthage/ballista_renderer.cpp
  99. elephant/rig.cpp
  100. entity/elephant_renderer.cpp
  101. entity/nations/carthage/elephant_renderer.cpp
  102. # entity/arrow.cpp removed; arrow VFX renderer code moved to geom/arrow.cpp
  103. geom/selection_ring.cpp
  104. geom/selection_disc.cpp
  105. geom/arrow.cpp
  106. geom/stone.cpp
  107. geom/mode_indicator.cpp
  108. geom/projectile_renderer.cpp
  109. geom/flag.cpp
  110. geom/banner_cloth.cpp
  111. geom/patrol_flags.cpp
  112. geom/formation_arrow.cpp
  113. geom/transforms.cpp
  114. humanoid/humanoid_math.cpp
  115. gl/humanoid/animation/animation_inputs.cpp
  116. gl/humanoid/animation/gait.cpp
  117. palette.cpp
  118. humanoid/rig.cpp
  119. humanoid/formation_calculator.cpp
  120. humanoid/style_palette.cpp
  121. humanoid/pose_controller.cpp
  122. humanoid/mounted_pose_controller.cpp
  123. equipment/equipment_registry.cpp
  124. equipment/register_equipment.cpp
  125. equipment/armor/tunic_renderer.cpp
  126. equipment/armor/roman_armor.cpp
  127. equipment/armor/armor_light_carthage.cpp
  128. equipment/armor/armor_heavy_carthage.cpp
  129. equipment/armor/roman_greaves.cpp
  130. equipment/armor/roman_shoulder_cover.cpp
  131. equipment/armor/carthage_shoulder_cover.cpp
  132. equipment/armor/work_apron_renderer.cpp
  133. equipment/armor/tool_belt_renderer.cpp
  134. equipment/armor/arm_guards_renderer.cpp
  135. equipment/armor/cloak_renderer.cpp
  136. equipment/weapons/bow_renderer.cpp
  137. equipment/weapons/quiver_renderer.cpp
  138. equipment/weapons/roman_scutum.cpp
  139. equipment/weapons/sword_renderer.cpp
  140. equipment/weapons/sword_carthage.cpp
  141. equipment/weapons/sword_roman.cpp
  142. equipment/weapons/spear_renderer.cpp
  143. equipment/weapons/shield_renderer.cpp
  144. equipment/weapons/shield_carthage.cpp
  145. equipment/weapons/shield_roman.cpp
  146. equipment/helmets/headwrap.cpp
  147. equipment/helmets/roman_heavy_helmet.cpp
  148. equipment/helmets/roman_light_helmet.cpp
  149. equipment/helmets/carthage_heavy_helmet.cpp
  150. equipment/helmets/carthage_light_helmet.cpp
  151. equipment/armor/chainmail_armor.cpp
  152. equipment/horse/saddles/roman_saddle_renderer.cpp
  153. equipment/horse/saddles/carthage_saddle_renderer.cpp
  154. equipment/horse/saddles/light_cavalry_saddle_renderer.cpp
  155. equipment/horse/tack/bridle_renderer.cpp
  156. equipment/horse/tack/stirrup_renderer.cpp
  157. equipment/horse/tack/blanket_renderer.cpp
  158. equipment/horse/tack/reins_renderer.cpp
  159. equipment/horse/armor/scale_barding_renderer.cpp
  160. equipment/horse/armor/leather_barding_renderer.cpp
  161. equipment/horse/armor/champion_renderer.cpp
  162. equipment/horse/armor/crupper_renderer.cpp
  163. equipment/horse/decorations/plume_renderer.cpp
  164. equipment/horse/decorations/tail_ribbon_renderer.cpp
  165. equipment/horse/decorations/saddle_bag_renderer.cpp
  166. )
  167. target_include_directories(render_gl PUBLIC .)
  168. target_link_libraries(render_gl PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::OpenGL ${OPENGL_LIBRARIES} engine_core)
  169. # Optimization flags for render hot paths
  170. if(CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
  171. if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
  172. target_compile_options(render_gl PRIVATE
  173. -march=native # Use CPU-specific instructions
  174. -mtune=native # Optimize for current CPU
  175. -fno-math-errno # Faster math
  176. -fno-trapping-math
  177. )
  178. endif()
  179. endif()