kigo-gui-framework 4.4__tar.gz → 4.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. {kigo_gui_framework-4.4/kigo_gui_framework.egg-info → kigo_gui_framework-4.6}/PKG-INFO +3 -4
  2. kigo_gui_framework-4.6/kigo/__init__.py +176 -0
  3. kigo_gui_framework-4.6/kigo/_init_.py +206 -0
  4. kigo_gui_framework-4.6/kigo/foliage/grass.py +82 -0
  5. kigo_gui_framework-4.6/kigo/render/__init__.py +251 -0
  6. kigo_gui_framework-4.6/kigo/render/adrenaline.py +58 -0
  7. kigo_gui_framework-4.6/kigo/render/bloom.py +51 -0
  8. kigo_gui_framework-4.6/kigo/render/hdrp_runtime.py +85 -0
  9. kigo_gui_framework-4.6/kigo/render/pass/ssr_pass.py +25 -0
  10. kigo_gui_framework-4.6/kigo/render/pass/taa_pass.py +33 -0
  11. kigo_gui_framework-4.6/kigo/render/pass.py +18 -0
  12. kigo_gui_framework-4.6/kigo/render/passes/taa_pass.py +58 -0
  13. kigo_gui_framework-4.6/kigo/render/pipeline.py +84 -0
  14. kigo_gui_framework-4.6/kigo/render/pipelines.py +8 -0
  15. kigo_gui_framework-4.6/kigo/render/sdfgi_hook.py +63 -0
  16. kigo_gui_framework-4.6/kigo/render/sky.py +63 -0
  17. kigo_gui_framework-4.6/kigo/render/ssr.py +265 -0
  18. kigo_gui_framework-4.6/kigo/render/taa.py +421 -0
  19. kigo_gui_framework-4.6/kigo/render/volumetric_fog.py +27 -0
  20. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6/kigo_gui_framework.egg-info}/PKG-INFO +3 -4
  21. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo_gui_framework.egg-info/SOURCES.txt +16 -0
  22. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/pyproject.toml +4 -6
  23. kigo_gui_framework-4.4/kigo/__init__.py +0 -15
  24. kigo_gui_framework-4.4/kigo/_init_.py +0 -18
  25. kigo_gui_framework-4.4/kigo/foliage/grass.py +0 -38
  26. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/MANIFEST.in +0 -0
  27. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/DEBG/__init__.py +0 -0
  28. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/DEBG/debug_panel.py +0 -0
  29. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/NET/__init__.py +0 -0
  30. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/NET/grpc/server.py +0 -0
  31. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/NET/grpc/service.py +0 -0
  32. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/NET/qnetwork.py +0 -0
  33. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/NET/webrtc/client.py +0 -0
  34. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/NET/webrtc/server.py +0 -0
  35. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/_api.py +0 -0
  36. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/accelerate.py +0 -0
  37. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/android/__init__.py +0 -0
  38. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/android/info.py +0 -0
  39. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/android/lifecycle.py +0 -0
  40. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/android/ossupport.py +0 -0
  41. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/app.py +0 -0
  42. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/cli/__init__.py +0 -0
  43. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/cli/doctor.py +0 -0
  44. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/cli/main.py +0 -0
  45. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/compile/ast_opt.py +0 -0
  46. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/compile/pipeline.py +0 -0
  47. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/core/features.py +0 -0
  48. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/debug/__init__.py +0 -0
  49. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/debug/freeze.py +0 -0
  50. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/ecs/__init__.py +0 -0
  51. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/ecs/component.py +0 -0
  52. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/ecs/entity.py +0 -0
  53. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/ecs/render.py +0 -0
  54. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/ecs/system.py +0 -0
  55. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/ecs/world.py +0 -0
  56. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/examples/HELLO_WASM.py +0 -0
  57. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/examples/demo-effects.py +0 -0
  58. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/examples/ecs_example.py +0 -0
  59. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/examples/example window.py +0 -0
  60. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/examples/example_effects.py +0 -0
  61. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/examples/example_hello_world.py +0 -0
  62. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/examples/example_networking.py +0 -0
  63. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/examples/example_physics_basic.py +0 -0
  64. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/examples/example_touch_ui.py +0 -0
  65. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/examples/example_ui_effects.py +0 -0
  66. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/examples/skins_demos.py +0 -0
  67. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/examples/smoke_example.py +0 -0
  68. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/examples/testdrive.py +0 -0
  69. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/examples/touch_example.py +0 -0
  70. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/foliage/__init__.py +0 -0
  71. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/foliage/cluster.py +0 -0
  72. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/foliage/instance.py +0 -0
  73. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/foliage/lod.py +0 -0
  74. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/foliage/manager.py +0 -0
  75. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/foliage/renderer.py +0 -0
  76. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/foliage/scatter.py +0 -0
  77. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/foliage/types.py +0 -0
  78. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/foliage/wind.py +0 -0
  79. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/fx_gl2d.py +0 -0
  80. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/fx_quick.py +0 -0
  81. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/gl/__init__.py +0 -0
  82. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/gl/ssao.py +0 -0
  83. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/gpu.py +0 -0
  84. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/hiz/hiz.py +0 -0
  85. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/hud.py +0 -0
  86. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/hwaccel.py +0 -0
  87. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/inspector/ECS/ecs_inspector.py +0 -0
  88. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/inspector/ECS/panel.py +0 -0
  89. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/inspector/ECS/tree.py +0 -0
  90. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/inspector/__init__.py +0 -0
  91. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/inspector/inspector.py +0 -0
  92. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/inspector/overlay.py +0 -0
  93. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/inspector/panel.py +0 -0
  94. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/inspector/web/bridge.py +0 -0
  95. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/inspector/web/dom_inspector.py +0 -0
  96. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/logging/__init__.py +0 -0
  97. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/logging/jsonlog.py +0 -0
  98. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/media.py +0 -0
  99. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/meshlets/build.py +0 -0
  100. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/meshlets/runtime.py +0 -0
  101. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/nui/node.py +0 -0
  102. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/pbr/material_system.py +0 -0
  103. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/physics/__init__.py +0 -0
  104. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/physics/_native/bindings.py +0 -0
  105. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/physics/_native/physics.dll +0 -0
  106. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/physics/qt/__init__.py +0 -0
  107. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/physics/qt/backend.py +0 -0
  108. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/physics/world.py +0 -0
  109. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/physics.py +0 -0
  110. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/physics_policy.py +0 -0
  111. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/platform.py +0 -0
  112. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/render/gpuinst.py +0 -0
  113. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/render/sdfgi_resources.py +0 -0
  114. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/render/wgpu_foliage_renderer.py +0 -0
  115. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/render/wgpu_renderer.py +0 -0
  116. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/renderer/__init__.py +0 -0
  117. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/renderer/base/renderer.py +0 -0
  118. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/renderer/base/shader.py +0 -0
  119. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/renderer/dx/renderer.py +0 -0
  120. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/renderer/dx/ssao.py +0 -0
  121. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/renderer/select.py +0 -0
  122. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/renderer/wgpu/renderer.py +0 -0
  123. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/runtime.py +0 -0
  124. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/scene/__init__.py +0 -0
  125. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/scene/foliage_node.py +0 -0
  126. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/scene/io.py +0 -0
  127. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/scene/node.py +0 -0
  128. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/sdfgi/radiance.py +0 -0
  129. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/sdfgi/radiance_sample.py +0 -0
  130. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/shader_cache.py +0 -0
  131. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/shader_demo.py +0 -0
  132. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/shim.py +0 -0
  133. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/skins.py +0 -0
  134. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/streaming/loader.py +0 -0
  135. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/streaming/manager.py +0 -0
  136. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/streaming/meshlet_stream.py +0 -0
  137. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/studio/__init__.py +0 -0
  138. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/studio/core.py +0 -0
  139. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/studio/overlay.py +0 -0
  140. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/style.py +0 -0
  141. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/tree.py +0 -0
  142. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/wasm/__init__.py +0 -0
  143. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/wasm/executor.py +0 -0
  144. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/wasm/module.py +0 -0
  145. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo/widgets.py +0 -0
  146. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo_gui_framework.egg-info/dependency_links.txt +0 -0
  147. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo_gui_framework.egg-info/entry_points.txt +0 -0
  148. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo_gui_framework.egg-info/requires.txt +0 -0
  149. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/kigo_gui_framework.egg-info/top_level.txt +0 -0
  150. /kigo_gui_framework-4.4/README.txt → /kigo_gui_framework-4.6/readme.txt +0 -0
  151. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/setup.cfg +0 -0
  152. {kigo_gui_framework-4.4 → kigo_gui_framework-4.6}/setup.py +0 -0
@@ -1,10 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kigo-gui-framework
3
- Version: 4.4
4
- Summary: Added GPU instancing, a grass system, WebRTC and grRPC networking (basically what I call Rhythm. Got selected to represent school in English 😊╰(*°▽°*)
3
+ Version: 4.6
4
+ Summary: Added SSR and TAA (the TAA engine name is Affinity)
5
5
  Author: Anand Kumar
6
- License: Zlib
7
- Keywords: gui,qt,pyqt,webengine,opengl,wasm,android,chromeos,framework
6
+ Keywords: gui,qt,pyqt,webengine,wgpu,wasm,android,chromeos,framework
8
7
  Classifier: Programming Language :: Python :: 3
9
8
  Classifier: Programming Language :: Python :: 3 :: Only
10
9
  Classifier: License :: OSI Approved :: zlib/libpng License
@@ -0,0 +1,176 @@
1
+ # SPDX-License-Identifier: Zlib
2
+
3
+ """
4
+ Kigo GUI Framework
5
+ """
6
+
7
+ __version__ = "4.6"
8
+
9
+ try:
10
+ from kigo.dev import AppHotReloader # noqa: F401
11
+ except Exception:
12
+ AppHotReloader = None
13
+
14
+
15
+ class RenderPipeline:
16
+ def __init__(self):
17
+ self.name = "default"
18
+
19
+ self.sdfgi = False
20
+ self.physical_sky = False
21
+ self.grass = False
22
+ self.volumetric_fog = False
23
+ self.bloom = False
24
+ self.tonemap = False
25
+ self.ssr = False
26
+ self.taa = False
27
+
28
+ self.gpu_instancing = False
29
+ self.meshlets = False
30
+
31
+ self.water = False
32
+ self.clouds = False
33
+ self.weather = False
34
+
35
+
36
+ class URP(RenderPipeline):
37
+ def __init__(self):
38
+ super().__init__()
39
+
40
+ self.name = "urp"
41
+
42
+ self.grass = True
43
+ self.bloom = True
44
+ self.tonemap = True
45
+ self.gpu_instancing = True
46
+
47
+ self.sdfgi = False
48
+ self.physical_sky = False
49
+ self.volumetric_fog = False
50
+ self.ssr = False
51
+ self.taa = False
52
+
53
+
54
+ class HDRP(RenderPipeline):
55
+ def __init__(self):
56
+ super().__init__()
57
+
58
+ self.name = "hdrp"
59
+
60
+ self.sdfgi = True
61
+ self.physical_sky = True
62
+ self.grass = True
63
+ self.volumetric_fog = True
64
+ self.bloom = True
65
+ self.tonemap = True
66
+ self.ssr = True
67
+ self.taa = True
68
+
69
+ self.gpu_instancing = True
70
+
71
+ self.water = True
72
+ self.clouds = True
73
+ self.weather = True
74
+
75
+
76
+ _pipeline = RenderPipeline()
77
+ hdrp_runtime = None
78
+
79
+
80
+ def enable(name):
81
+ global _pipeline
82
+ global hdrp_runtime
83
+
84
+ name = str(name).lower().strip()
85
+
86
+ if name == "urp":
87
+ _pipeline = URP()
88
+ hdrp_runtime = None
89
+ print("[KIGO] Universal Rendering Pipeline enabled")
90
+ return True
91
+
92
+ if name == "hdrp":
93
+ _pipeline = HDRP()
94
+ print("[KIGO] High Definition Rendering Pipeline 4.4 enabled")
95
+
96
+ try:
97
+ from kigo.render.hdrp_runtime import HDRPRuntime
98
+ hdrp_runtime = HDRPRuntime()
99
+ hdrp_runtime.enable()
100
+ except Exception as e:
101
+ hdrp_runtime = None
102
+ print("[KIGO] HDRP runtime unavailable, pipeline flags enabled only")
103
+ print("[KIGO] Reason:", e)
104
+
105
+ return True
106
+
107
+ print(f"[KIGO] Feature or pipeline '{name}' unavailable")
108
+ return False
109
+
110
+
111
+ def disable(name):
112
+ global _pipeline
113
+ global hdrp_runtime
114
+
115
+ name = str(name).lower().strip()
116
+
117
+ if name == "hdrp":
118
+ if hdrp_runtime and hasattr(hdrp_runtime, "disable"):
119
+ hdrp_runtime.disable()
120
+
121
+ _pipeline = RenderPipeline()
122
+ hdrp_runtime = None
123
+ print("[KIGO] HDRP disabled")
124
+ return True
125
+
126
+ if name == "urp":
127
+ _pipeline = RenderPipeline()
128
+ hdrp_runtime = None
129
+ print("[KIGO] URP disabled")
130
+ return True
131
+
132
+ print(f"[KIGO] Feature or pipeline '{name}' unavailable")
133
+ return False
134
+
135
+
136
+ def current_pipeline():
137
+ return _pipeline
138
+
139
+
140
+ def has(feature):
141
+ return bool(getattr(_pipeline, feature, False))
142
+
143
+
144
+ def is_hdrp():
145
+ return _pipeline.name == "hdrp"
146
+
147
+
148
+ def is_urp():
149
+ return _pipeline.name == "urp"
150
+
151
+
152
+ def get_pipeline_name():
153
+ return _pipeline.name
154
+
155
+
156
+ def get_hdrp_runtime():
157
+ return hdrp_runtime
158
+
159
+
160
+ __all__ = [
161
+ "__version__",
162
+ "AppHotReloader",
163
+
164
+ "RenderPipeline",
165
+ "URP",
166
+ "HDRP",
167
+
168
+ "enable",
169
+ "disable",
170
+ "current_pipeline",
171
+ "has",
172
+ "is_hdrp",
173
+ "is_urp",
174
+ "get_pipeline_name",
175
+ "get_hdrp_runtime",
176
+ ]
@@ -0,0 +1,206 @@
1
+ # SPDX-License-Identifier: Zlib
2
+
3
+ """
4
+ Kigo GUI Framework
5
+ """
6
+
7
+ __version__ = "4.6"
8
+
9
+ # Optional dev utilities
10
+ try:
11
+ from kigo.dev import AppHotReloader # noqa: F401
12
+ except Exception:
13
+ AppHotReloader = None
14
+
15
+
16
+ # ============================================================
17
+ # Render pipeline imports
18
+ # Actual folder: kigo/render/
19
+ # ============================================================
20
+
21
+ try:
22
+ from kigo.render.pipeline import RenderPipeline, URP, HDRP
23
+ except Exception:
24
+ try:
25
+ from kigo.render.pipelines import RenderPipeline, URP, HDRP
26
+ except Exception:
27
+ RenderPipeline = None
28
+ URP = None
29
+ HDRP = None
30
+
31
+
32
+ # ============================================================
33
+ # Global pipeline state
34
+ # ============================================================
35
+
36
+ _pipeline = RenderPipeline() if RenderPipeline else None
37
+ hdrp_runtime = None
38
+
39
+
40
+ # ============================================================
41
+ # Enable / Disable
42
+ # ============================================================
43
+
44
+ def enable(name):
45
+ """
46
+ Enable Kigo render pipelines.
47
+
48
+ Example:
49
+ import kigo
50
+ kigo.enable("hdrp")
51
+ kigo.enable("urp")
52
+ """
53
+
54
+ global _pipeline
55
+ global hdrp_runtime
56
+
57
+ name = str(name).lower().strip()
58
+
59
+ if name == "urp":
60
+ if URP is None:
61
+ print("[KIGO] Universal Rendering Pipeline unavailable")
62
+ return False
63
+
64
+ _pipeline = URP()
65
+ hdrp_runtime = None
66
+
67
+ print("[KIGO] Universal Rendering Pipeline enabled")
68
+ return True
69
+
70
+ if name == "hdrp":
71
+ if HDRP is None:
72
+ print("[KIGO] High Definition Rendering Pipeline unavailable")
73
+ return False
74
+
75
+ _pipeline = HDRP()
76
+
77
+ print("[KIGO] High Definition Rendering Pipeline 4.4 enabled")
78
+
79
+ try:
80
+ from kigo.render.hdrp_runtime import HDRPRuntime
81
+
82
+ hdrp_runtime = HDRPRuntime()
83
+ hdrp_runtime.enable()
84
+
85
+ except Exception as e:
86
+ hdrp_runtime = None
87
+ print("[KIGO] HDRP runtime unavailable, pipeline flags enabled only")
88
+ print("[KIGO] Reason:", e)
89
+
90
+ return True
91
+
92
+ print(f"[KIGO] Feature or pipeline '{name}' unavailable")
93
+ return False
94
+
95
+
96
+ def disable(name):
97
+ """
98
+ Disable Kigo render pipelines.
99
+ """
100
+
101
+ global _pipeline
102
+ global hdrp_runtime
103
+
104
+ name = str(name).lower().strip()
105
+
106
+ if name == "hdrp":
107
+ if hdrp_runtime and hasattr(hdrp_runtime, "disable"):
108
+ hdrp_runtime.disable()
109
+
110
+ _pipeline = RenderPipeline() if RenderPipeline else None
111
+ hdrp_runtime = None
112
+
113
+ print("[KIGO] HDRP disabled")
114
+ return True
115
+
116
+ if name == "urp":
117
+ _pipeline = RenderPipeline() if RenderPipeline else None
118
+ hdrp_runtime = None
119
+
120
+ print("[KIGO] URP disabled")
121
+ return True
122
+
123
+ print(f"[KIGO] Feature or pipeline '{name}' unavailable")
124
+ return False
125
+
126
+
127
+ # ============================================================
128
+ # Query helpers
129
+ # ============================================================
130
+
131
+ def current_pipeline():
132
+ """
133
+ Return the current active render pipeline.
134
+ """
135
+
136
+ global _pipeline
137
+
138
+ if _pipeline is not None:
139
+ return _pipeline
140
+
141
+ class DefaultPipeline:
142
+ name = "default"
143
+
144
+ sdfgi = False
145
+ physical_sky = False
146
+ grass = False
147
+ volumetric_fog = False
148
+ bloom = False
149
+ tonemap = False
150
+ ssr = False
151
+
152
+ gpu_instancing = False
153
+ meshlets = False
154
+
155
+ water = False
156
+ clouds = False
157
+ weather = False
158
+
159
+ return DefaultPipeline()
160
+
161
+
162
+ def has(feature):
163
+ """
164
+ Check whether current pipeline has a feature.
165
+
166
+ Example:
167
+ kigo.has("ssr")
168
+ kigo.has("sdfgi")
169
+ """
170
+
171
+ return bool(getattr(current_pipeline(), feature, False))
172
+
173
+
174
+ def is_hdrp():
175
+ return str(getattr(current_pipeline(), "name", "")).lower() == "hdrp"
176
+
177
+
178
+ def is_urp():
179
+ return str(getattr(current_pipeline(), "name", "")).lower() == "urp"
180
+
181
+
182
+ def get_pipeline_name():
183
+ return current_pipeline().name
184
+
185
+
186
+ def get_hdrp_runtime():
187
+ return hdrp_runtime
188
+
189
+
190
+ # ============================================================
191
+ # Exports
192
+ # ============================================================
193
+
194
+ __all__ = [
195
+ "__version__",
196
+ "AppHotReloader",
197
+
198
+ "enable",
199
+ "disable",
200
+ "current_pipeline",
201
+ "has",
202
+ "is_hdrp",
203
+ "is_urp",
204
+ "get_pipeline_name",
205
+ "get_hdrp_runtime",
206
+ ]
@@ -0,0 +1,82 @@
1
+ import random
2
+ import math
3
+
4
+
5
+ class GrassSystem:
6
+ def __init__(self):
7
+ self.enabled = False
8
+ self.instances = []
9
+
10
+ self.density = 3000
11
+ self.area_min = -100.0
12
+ self.area_max = 100.0
13
+
14
+ self.min_scale = 0.5
15
+ self.max_scale = 1.25
16
+
17
+ self.wind_strength = 0.25
18
+
19
+ def enable(self):
20
+ self.enabled = True
21
+ print("[KIGO HDRP] Grass ON")
22
+
23
+ def disable(self):
24
+ self.enabled = False
25
+ print("[KIGO HDRP] Grass OFF")
26
+
27
+ def clear(self):
28
+ self.instances.clear()
29
+
30
+ def generate(self, terrain, count=None):
31
+ if not self.enabled:
32
+ return
33
+
34
+ if count is None:
35
+ count = self.density
36
+
37
+ self.instances.clear()
38
+
39
+ attempts = 0
40
+ max_attempts = count * 6
41
+
42
+ while len(self.instances) < count and attempts < max_attempts:
43
+ attempts += 1
44
+
45
+ x = random.uniform(self.area_min, self.area_max)
46
+ z = random.uniform(self.area_min, self.area_max)
47
+
48
+ if hasattr(terrain, "allowed_for_tree"):
49
+ if not terrain.allowed_for_tree(x, z):
50
+ continue
51
+
52
+ if hasattr(terrain, "sample_height"):
53
+ y = terrain.sample_height(x, z)
54
+ else:
55
+ y = 0.0
56
+
57
+ scale = random.uniform(self.min_scale, self.max_scale)
58
+ yaw = random.uniform(0.0, math.tau)
59
+
60
+ tint = (
61
+ random.uniform(0.28, 0.45),
62
+ random.uniform(0.60, 0.95),
63
+ random.uniform(0.18, 0.32),
64
+ )
65
+
66
+ self.instances.append({
67
+ "position": (x, y, z),
68
+ "scale": scale,
69
+ "yaw": yaw,
70
+ "tint": tint,
71
+ })
72
+
73
+ print(f"[KIGO HDRP] Generated grass blades: {len(self.instances)}")
74
+
75
+ def submit(self, renderer, camera=None):
76
+ if not self.enabled:
77
+ return
78
+
79
+ if not hasattr(renderer, "submit_grass"):
80
+ return
81
+
82
+ renderer.submit_grass(self.instances, camera)