diff --git a/CHANGELOG.md b/CHANGELOG.md index 81355cf7b1..0dd7675faa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,7 @@ Arcade [PyPi Release History](https://pypi.org/project/arcade/#history) page. - Sped up collision checks further by caching each hit box's distinct edge directions. Parallel edges (such as opposite sides of the default octagon hit boxes, or matching edges on two sprites with the same angle) are only tested once, and the cache is kept when a sprite moves. Two unrotated octagon hit boxes go from 12.0 to 4.6 µs, and two rotated 30° from 20.8 to 6.9 µs. - `SpatialHash` now uses the hit box's cached bounds to find a sprite's grid cells, so they're shared with collision checks. Adding, removing, and querying for sprites that haven't moved is about 33-40% faster. - Added collision benchmark scripts in `benchmarks/collisions/` (`micro.py`, `hit_box.py`, and `compare_reference.py`, which checks collision results against a simple reference on random sprite pairs) and `benchmarks/spatial_hash/queries.py`. +- Removed the unfinished `arcade.texture_atlas.atlas_array` and `atlas_bindless` modules. They were empty placeholders marked "do not use", weren't exported, and had failed to import on Python 3.10-3.13 since 4.0's move off Python 3.9. - Updated the optional `pymunk` extra to 7.3.0 (from 7.2.0). Packaging-only release (free-threaded CPython and pyodide wheels, improved type hints) with no breaking changes or deprecations. ## 4.0.0.dev7 diff --git a/arcade/texture_atlas/atlas_array.py b/arcade/texture_atlas/atlas_array.py deleted file mode 100644 index 1505843f63..0000000000 --- a/arcade/texture_atlas/atlas_array.py +++ /dev/null @@ -1,38 +0,0 @@ -""" -THIS IS WORK IN PROGRESS. DO NOT USE. -""" - -from typing import ( - TYPE_CHECKING, -) - -from .base import TextureAtlasBase - -if TYPE_CHECKING: - from arcade import ArcadeContext - - -class TextureArrayAtlas(TextureAtlasBase): - """ - A texture atlas that stores textures in a texture array. - - Args: - ctx (ArcadeContext): The Arcade context. - size (Tuple[int, int]): The texture size in pixels per layer - layers (int): The number of layers (number of textures to store) - """ - - def __init__(self, ctx: ArcadeContext | None, size: tuple[int, int], layers: int): - super().__init__(ctx) - self._size = size - self._layers = layers - - @property - def size(self) -> tuple[int, int]: - """The texture size in pixels per layer.""" - return self._size - - @property - def layers(self) -> int: - """The number of layers (number of textures to store).""" - return self._layers diff --git a/arcade/texture_atlas/atlas_bindless.py b/arcade/texture_atlas/atlas_bindless.py deleted file mode 100644 index 0db4933057..0000000000 --- a/arcade/texture_atlas/atlas_bindless.py +++ /dev/null @@ -1,29 +0,0 @@ -""" -THIS IS WORK IN PROGRESS. DO NOT USE. -""" - -from typing import TYPE_CHECKING - -from .base import TextureAtlasBase - -if TYPE_CHECKING: - from arcade import ArcadeContext - - -class BindlessTextureAtlas(TextureAtlasBase): - """ - A texture atlas using bindless textures. This is an extension to OpenGL 4.3+ - and requires the ARB_bindless_texture extension or possibly vendor specific ones. - - Bindless textures are simply 64 bit integer names/handles for a texture that - can be casted to a sampler in a shader meaning that you can have an unlimited - amount of samplers in the same draw call. Likely a shader storage buffer is - needed to store the handles. - - The max capacity is only limited by memory. Discrete GPUs support this - feature and some iGPUs from 2019 and later. AMD + Intel Xe if - latest drivers are installed. - """ - - def __init__(self, ctx: ArcadeContext): - super().__init__(ctx)