basilisk-engine 0.1.26__py3-none-any.whl → 0.1.27__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/render/framebuffer.py +4 -130
- {basilisk_engine-0.1.26.dist-info → basilisk_engine-0.1.27.dist-info}/METADATA +1 -1
- {basilisk_engine-0.1.26.dist-info → basilisk_engine-0.1.27.dist-info}/RECORD +5 -5
- {basilisk_engine-0.1.26.dist-info → basilisk_engine-0.1.27.dist-info}/WHEEL +0 -0
- {basilisk_engine-0.1.26.dist-info → basilisk_engine-0.1.27.dist-info}/top_level.txt +0 -0
basilisk/render/framebuffer.py
CHANGED
|
@@ -36,7 +36,7 @@ class Framebuffer:
|
|
|
36
36
|
self._size = size
|
|
37
37
|
self.scale = scale
|
|
38
38
|
self.texture_filter = (mgl.LINEAR, mgl.LINEAR) if linear_filter else (mgl.NEAREST, mgl.NEAREST)
|
|
39
|
-
self.
|
|
39
|
+
self.n_attachments = n_color_attachments
|
|
40
40
|
|
|
41
41
|
self.load_pipeline()
|
|
42
42
|
self.generate_fbo()
|
|
@@ -52,7 +52,7 @@ class Framebuffer:
|
|
|
52
52
|
self.__del__()
|
|
53
53
|
|
|
54
54
|
# Create textures
|
|
55
|
-
self._color_attachments = [self.ctx.texture(self.size, components=4)]
|
|
55
|
+
self._color_attachments = [self.ctx.texture(self.size, components=4) for i in range(self.n_attachments)]
|
|
56
56
|
for tex in self._color_attachments: tex.filter = self.texture_filter
|
|
57
57
|
self._depth_attachment = self.ctx.depth_texture(self.size)
|
|
58
58
|
|
|
@@ -132,7 +132,7 @@ class Framebuffer:
|
|
|
132
132
|
"""First color attachment in the fbo"""
|
|
133
133
|
return self._color_attachments[0]
|
|
134
134
|
@property
|
|
135
|
-
def color_attachments(self) ->
|
|
135
|
+
def color_attachments(self) -> list[mgl.Texture]:
|
|
136
136
|
"""List of all color attachments in the fbo"""
|
|
137
137
|
return self._color_attachments
|
|
138
138
|
@property
|
|
@@ -160,130 +160,4 @@ class Framebuffer:
|
|
|
160
160
|
|
|
161
161
|
if self._color_attachments: [tex.release() for tex in self._color_attachments]
|
|
162
162
|
if self._depth_attachment: self._depth_attachment.release()
|
|
163
|
-
if self.fbo: self.fbo.release()
|
|
164
|
-
|
|
165
|
-
# class Framebuffer:
|
|
166
|
-
# engine: ...
|
|
167
|
-
# """Reference to the parent engine"""
|
|
168
|
-
# fbo: mgl.Framebuffer = None
|
|
169
|
-
# """The core framebuffer the object provides abstraction for."""
|
|
170
|
-
# texture: mgl.Texture = None
|
|
171
|
-
# """The color texture of the framebuffer"""
|
|
172
|
-
# depth: mgl.Texture = None
|
|
173
|
-
# """The depth texture of the framebuffer"""
|
|
174
|
-
# size: tuple[int]
|
|
175
|
-
# """The dimensions of the framebuffer (x, y)"""
|
|
176
|
-
|
|
177
|
-
# def __init__(self, engine, size: tuple[int]=None, resolution_scale: float=1.0, components: int=4, filter=(mgl.LINEAR, mgl.LINEAR)) -> None:
|
|
178
|
-
# """
|
|
179
|
-
# Abstraction to the mgl framebuffer
|
|
180
|
-
# Args:
|
|
181
|
-
# engine: mgl.Engine:
|
|
182
|
-
# The parent engine
|
|
183
|
-
# size: tuple[int]:
|
|
184
|
-
# The dimensions of the framebuffer (x, y)
|
|
185
|
-
# """
|
|
186
|
-
|
|
187
|
-
# # Set attributes
|
|
188
|
-
# self.engine = engine
|
|
189
|
-
# self.ctx = engine.ctx
|
|
190
|
-
# self.components = components
|
|
191
|
-
|
|
192
|
-
# # Set the size
|
|
193
|
-
# self.resolution_scale = resolution_scale
|
|
194
|
-
# self._size = size
|
|
195
|
-
# self.size = self._size if self._size else self.engine.win_size
|
|
196
|
-
# self.size = (int(self.size[0] * resolution_scale), int(self.size[1] * resolution_scale))
|
|
197
|
-
|
|
198
|
-
# # Create the fbo
|
|
199
|
-
# self.texture = self.ctx.texture(self.size, components=self.components)
|
|
200
|
-
# self.depth = self.ctx.depth_texture(self.size)
|
|
201
|
-
# self.fbo = self.ctx.framebuffer([self.texture], self.depth)
|
|
202
|
-
|
|
203
|
-
# # Load Shaders
|
|
204
|
-
# self.shader = Shader(self.engine, self.engine.root + '/shaders/frame.vert', self.engine.root + '/shaders/frame.frag')
|
|
205
|
-
# self.engine.shader_handler.add(self.shader)
|
|
206
|
-
|
|
207
|
-
# # Load VAO
|
|
208
|
-
# self.vbo = self.ctx.buffer(np.array([[-1, -1, 0, 0, 0], [1, -1, 0, 1, 0], [1, 1, 0, 1, 1], [-1, 1, 0, 0, 1], [-1, -1, 0, 0, 0], [1, 1, 0, 1, 1]], dtype='f4'))
|
|
209
|
-
# self.vao = self.ctx.vertex_array(self.shader.program, [(self.vbo, '3f 2f', 'in_position', 'in_uv')], skip_errors=True)
|
|
210
|
-
|
|
211
|
-
# # Save the filter
|
|
212
|
-
# self.filter = filter
|
|
213
|
-
|
|
214
|
-
# # Add to the engine for updates
|
|
215
|
-
# self.engine.fbos.append(self)
|
|
216
|
-
|
|
217
|
-
# def render(self) -> None:
|
|
218
|
-
# self.shader.program['screenTexture'] = 0
|
|
219
|
-
# self.texture.use(location=0)
|
|
220
|
-
# self.vao.render()
|
|
221
|
-
|
|
222
|
-
# def use(self) -> None:
|
|
223
|
-
# """
|
|
224
|
-
# Select this framebuffer for use
|
|
225
|
-
# """
|
|
226
|
-
|
|
227
|
-
# self.fbo.use()
|
|
228
|
-
|
|
229
|
-
# def clear(self) -> None:
|
|
230
|
-
# """
|
|
231
|
-
# Clear all data currently in the textures (set to black)
|
|
232
|
-
# """
|
|
233
|
-
|
|
234
|
-
# self.fbo.clear()
|
|
235
|
-
|
|
236
|
-
# def save(self, destination: str=None) -> None:
|
|
237
|
-
# """
|
|
238
|
-
# Saves the frame as an image to the given file destination
|
|
239
|
-
# """
|
|
240
|
-
|
|
241
|
-
# path = destination if destination else 'screenshot'
|
|
242
|
-
|
|
243
|
-
# data = self.fbo.read(components=3, alignment=1)
|
|
244
|
-
# img = Image.frombytes('RGB', self.size, data).transpose(Image.FLIP_TOP_BOTTOM)
|
|
245
|
-
# img.save(f'{path}.png')
|
|
246
|
-
|
|
247
|
-
# def resize(self, size: tuple[int]=None) -> None:
|
|
248
|
-
# """
|
|
249
|
-
# Resize the buffer to the given size. None for window size
|
|
250
|
-
# """
|
|
251
|
-
|
|
252
|
-
# # Release old memory
|
|
253
|
-
# self.__del__()
|
|
254
|
-
|
|
255
|
-
# # Set/get size attribute
|
|
256
|
-
# if size:
|
|
257
|
-
# self.size = size
|
|
258
|
-
# else:
|
|
259
|
-
# self.size = self._size if self._size else self.engine.win_size
|
|
260
|
-
# self.size = (int(self.size[0] * self.resolution_scale), int(self.size[1] * self.resolution_scale))
|
|
261
|
-
|
|
262
|
-
# # Create the fbo
|
|
263
|
-
# self.texture = self.ctx.texture(self.size, components=self.components)
|
|
264
|
-
# self.depth = self.ctx.depth_texture(self.size)
|
|
265
|
-
# self.fbo = self.ctx.framebuffer([self.texture], self.depth)
|
|
266
|
-
|
|
267
|
-
# self.filter = self._filter
|
|
268
|
-
|
|
269
|
-
# @property
|
|
270
|
-
# def data(self):
|
|
271
|
-
# return self.fbo.read(components=3, alignment=1)
|
|
272
|
-
|
|
273
|
-
# @property
|
|
274
|
-
# def filter(self):
|
|
275
|
-
# return self.texture.filter
|
|
276
|
-
|
|
277
|
-
# @filter.setter
|
|
278
|
-
# def filter(self, value):
|
|
279
|
-
# self._filter = value
|
|
280
|
-
# self.texture.filter = value
|
|
281
|
-
|
|
282
|
-
# def __repr__(self) -> str:
|
|
283
|
-
# return f'<bsk.Framebuffer | size: {self.size}>'
|
|
284
|
-
|
|
285
|
-
# def __del__(self) -> None:
|
|
286
|
-
# # Release any existing memory in case of a resize
|
|
287
|
-
# if self.texture: self.texture.release()
|
|
288
|
-
# if self.depth: self.depth.release()
|
|
289
|
-
# if self.fbo: self.fbo.release()
|
|
163
|
+
if self.fbo: self.fbo.release()
|
|
@@ -72,7 +72,7 @@ basilisk/render/camera.py,sha256=Bzyqp1ESNqjTR03hZIhil7pU1In5JDz-7sCj1Pter-M,990
|
|
|
72
72
|
basilisk/render/chunk.py,sha256=nV3O8A_nd9abfZh4WFGfqKIrdf7BLVkDhePoIKSJ1_w,2821
|
|
73
73
|
basilisk/render/chunk_handler.py,sha256=KY-AqnydAc4ae2yKUsLrjs1GdvjoGdZbyXmSSnTtOFY,6497
|
|
74
74
|
basilisk/render/frame.py,sha256=DPZhjuhyamREGN1yhl2__9bEyeVbX91i_zXilEFp1yc,3012
|
|
75
|
-
basilisk/render/framebuffer.py,sha256=
|
|
75
|
+
basilisk/render/framebuffer.py,sha256=1_uWgiUNuW_QPiujpjru4uw3lMwVmMNMhlvOAIo4h2U,5699
|
|
76
76
|
basilisk/render/image.py,sha256=p7bSFbD_Nv5TeiVCEdQ_X84Nfrs1YuwqJKKNzrgGkkM,2960
|
|
77
77
|
basilisk/render/image_handler.py,sha256=CJyel7POIserAoLQ8YCc3SY24zia2ry6P3wMNK0-Vms,4295
|
|
78
78
|
basilisk/render/light.py,sha256=hFqODv9iK4GEDZeDyBHxOWwwd4v8Pm089_xoScBMjVY,3879
|
|
@@ -100,7 +100,7 @@ basilisk/shaders/particle.frag,sha256=Cv8cWQpVVQvhZeWj3NqL0D5nLtSO3EWV0VzOU-ZVL4
|
|
|
100
100
|
basilisk/shaders/particle.vert,sha256=ElXzT7ywiZ0SjrFcUistVDBi4wOobQ7_J5O7XVxrsVs,3027
|
|
101
101
|
basilisk/shaders/sky.frag,sha256=vTmZ1Xsd601_gmeBRfLYodHuBoBDI-M_1IybRt0ZDFk,178
|
|
102
102
|
basilisk/shaders/sky.vert,sha256=v_BSdnMiljSJGPqno-J_apAiom38IrBzbDoxM7pIgwI,345
|
|
103
|
-
basilisk_engine-0.1.
|
|
104
|
-
basilisk_engine-0.1.
|
|
105
|
-
basilisk_engine-0.1.
|
|
106
|
-
basilisk_engine-0.1.
|
|
103
|
+
basilisk_engine-0.1.27.dist-info/METADATA,sha256=rp5UeCrwVvqzmz46rFuytc3_65EF27ZmpxJ3QXXeyBk,1147
|
|
104
|
+
basilisk_engine-0.1.27.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
|
105
|
+
basilisk_engine-0.1.27.dist-info/top_level.txt,sha256=enlSYSf7CUyAly1jmUCNNGInTbaFUjGk4SKwyckZQkw,9
|
|
106
|
+
basilisk_engine-0.1.27.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|