basilisk-engine 0.1.16__py3-none-any.whl → 0.1.17__py3-none-any.whl

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.

Potentially problematic release.


This version of basilisk-engine might be problematic. Click here for more details.

basilisk/__init__.py CHANGED
@@ -11,5 +11,6 @@ from .draw import draw
11
11
  from .render.camera import FreeCamera, StaticCamera, FollowCamera, OrbitCamera
12
12
  from .render.sky import Sky
13
13
  from .render.post_process import PostProcess
14
+ from .particles.particle_handler import ParticleHandler
14
15
  from .render.framebuffer import Framebuffer
15
16
  from .audio.sound import Sound
@@ -4,14 +4,15 @@ from ..render.material import Material
4
4
  from ..generic.input_validation import validate_tuple3, validate_float
5
5
 
6
6
  class ParticleHandler:
7
- def __init__(self, scene):
7
+ def __init__(self, scene, shader=None):
8
8
  """
9
9
  A handler for all particles in a scene
10
10
  """
11
11
 
12
12
  self.scene = scene
13
+ self.shader = shader
13
14
  self.cube = Mesh(scene.engine.root + '/bsk_assets/cube.obj')
14
- self.particle_renderers = {self.cube : ParticleRenderer(scene, self.cube)}
15
+ self.particle_renderers = {self.cube : ParticleRenderer(scene, self.cube, self.shader)}
15
16
 
16
17
 
17
18
  def add(self, mesh: Mesh=None, life: float=1.0, position: tuple|float=0, material: Material=None, scale: float=1.0, velocity: tuple|float=0, acceleration: tuple|float=0) -> bool:
@@ -37,7 +38,7 @@ class ParticleHandler:
37
38
  # Get the mesh and make a new particle renderer if the mesh is new
38
39
  if mesh == None: mesh = self.cube
39
40
  elif not isinstance(mesh, Mesh): raise ValueError(f'particle_handler.add: invlaid mesh type for particle: {type(mesh)}')
40
- if mesh not in self.particle_renderers: self.particle_renderers[mesh] = ParticleRenderer(self.scene, mesh)
41
+ if mesh not in self.particle_renderers: self.particle_renderers[mesh] = ParticleRenderer(self.scene, mesh, self.shader)
41
42
 
42
43
  # Get material ID
43
44
  if material == None: material_index = 0
@@ -21,7 +21,7 @@ get_alive(np.zeros(shape=(2, 12), dtype='f4'))
21
21
 
22
22
 
23
23
  class ParticleRenderer:
24
- def __init__(self, scene: ..., mesh: Mesh) -> None:
24
+ def __init__(self, scene: ..., mesh: Mesh, shader: Shader=None) -> None:
25
25
  """
26
26
  Handels and renders the particles of a single mesh type
27
27
  """
@@ -29,7 +29,8 @@ class ParticleRenderer:
29
29
  self.scene = scene
30
30
  self.ctx = scene.ctx
31
31
  root = scene.engine.root
32
- self.shader = Shader(scene.engine, vert=root + '/shaders/particle.vert', frag=root + '/shaders/particle.frag')
32
+ if shader: self.shader = shader
33
+ else: self.shader = Shader(scene.engine, vert=root + '/shaders/particle.vert', frag=root + '/shaders/particle.frag')
33
34
  scene.shader_handler.add(self.shader)
34
35
 
35
36
  self.particle_cube_size = 25
@@ -85,3 +86,8 @@ class ParticleRenderer:
85
86
  # Create and add the particle to the scene
86
87
  new_particle = np.array([*position, material, scale, life, *velocity, *acceleration])
87
88
  self.particle_instances = np.vstack([new_particle, self.particle_instances], dtype='f4')
89
+
90
+
91
+ def __del__(self):
92
+ self.instance_buffer.release()
93
+ self.vao.release()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: basilisk-engine
3
- Version: 0.1.16
3
+ Version: 0.1.17
4
4
  Summary: Python 3D Framework
5
5
  Home-page: https://basilisk-website.vercel.app/
6
6
  Author: Name
@@ -1,4 +1,4 @@
1
- basilisk/__init__.py,sha256=38Rmitj-4yslVnv6Gik9AHoArXMvCJRh4HcoZVKK48c,545
1
+ basilisk/__init__.py,sha256=nltSEm5HK3aeg1VSkYBEBGLj7DcFzUwt4yZUmEJQ8EM,602
2
2
  basilisk/config.py,sha256=ynTRlX633DGoEtZOeAK8KNJF6offV3k3XFD7cia3Keg,61
3
3
  basilisk/engine.py,sha256=y15OdTsTjDk51Q06nLkVOx4KlJVM_6_owGdSGh92gBQ,6912
4
4
  basilisk/scene.py,sha256=sa8UIV1MH-4OEmlc4geaSHBmzSPRNFS8g5MsO-XjwNA,12153
@@ -57,8 +57,8 @@ basilisk/nodes/helper.py,sha256=VdlGuEaMtLa992_8yNOB-QIgz4Izr5wNMSm8H6KftKE,2097
57
57
  basilisk/nodes/node.py,sha256=5_qUQbPqrnCf3VJMtpeMM7QYAe79I3s6XVd5wi0YLTs,32474
58
58
  basilisk/nodes/node_handler.py,sha256=zN7z_XhgJhxcKHq137h5xAcF8RqRD1mjQjkYgnC8Fpk,4097
59
59
  basilisk/particles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
- basilisk/particles/particle_handler.py,sha256=8TXVE4drKwwErqgFzWLyQgU-kk97cABsEMitrfSY4SA,2916
61
- basilisk/particles/particle_renderer.py,sha256=3OpkKLw4NUik4stORqMkCx1vqibXkdYVq0NDDjigAdo,3623
60
+ basilisk/particles/particle_handler.py,sha256=R3FC7XWUSvQV1gMtJku68kYl_jyhez9kg54lIk5nEKM,2985
61
+ basilisk/particles/particle_renderer.py,sha256=bRbeaEv3ZZu3c4f9lFXRhWHpnsdZri3J-KS-77R_v7o,3785
62
62
  basilisk/physics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
63
  basilisk/physics/impulse.py,sha256=zv6MoGTSlu8qVbsbe2QxERGeyQZYbtzR_WVSqVLsmhw,5873
64
64
  basilisk/physics/physics_body.py,sha256=_mi-AVMgQqUsC3bQIca5tgk2xWXTIUw0D_uC4DcQqqs,1508
@@ -97,7 +97,7 @@ basilisk/shaders/particle.frag,sha256=Cv8cWQpVVQvhZeWj3NqL0D5nLtSO3EWV0VzOU-ZVL4
97
97
  basilisk/shaders/particle.vert,sha256=ElXzT7ywiZ0SjrFcUistVDBi4wOobQ7_J5O7XVxrsVs,3027
98
98
  basilisk/shaders/sky.frag,sha256=vTmZ1Xsd601_gmeBRfLYodHuBoBDI-M_1IybRt0ZDFk,178
99
99
  basilisk/shaders/sky.vert,sha256=v_BSdnMiljSJGPqno-J_apAiom38IrBzbDoxM7pIgwI,345
100
- basilisk_engine-0.1.16.dist-info/METADATA,sha256=5LG6Gt7kMOcS8rOWieD4wOYeW5v10peLzYVE_95tY6g,1147
101
- basilisk_engine-0.1.16.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
102
- basilisk_engine-0.1.16.dist-info/top_level.txt,sha256=enlSYSf7CUyAly1jmUCNNGInTbaFUjGk4SKwyckZQkw,9
103
- basilisk_engine-0.1.16.dist-info/RECORD,,
100
+ basilisk_engine-0.1.17.dist-info/METADATA,sha256=D1pkg65L6FX2GE2784BOkrRF2EI1jcwAt2FBxWWaXcc,1147
101
+ basilisk_engine-0.1.17.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
102
+ basilisk_engine-0.1.17.dist-info/top_level.txt,sha256=enlSYSf7CUyAly1jmUCNNGInTbaFUjGk4SKwyckZQkw,9
103
+ basilisk_engine-0.1.17.dist-info/RECORD,,