Skip to content

Commit 4e431fb

Browse files
authored
Remove View.blending (#31)
With PyGfx v0.13.0, they removed blending mode from the renderer in favor of alpha parameters on each material in the scene. This aligns more closely with how VisPy does things, which is important for us because it ignored View.blending anyways! All of this is to say that I think it's worth (a) removing View.blending for now to avoid the errors and (b) coming up with a new mechanism for capturing transparency within the model (when we have a use for it?)
1 parent 5e325f0 commit 4e431fb

File tree

8 files changed

+3
-41
lines changed

8 files changed

+3
-41
lines changed

examples/basic_scene.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
add_imgui_controls = None # type: ignore[assignment]
1111

1212
view = snx.View(
13-
blending="default",
1413
scene=snx.Scene(
1514
children=[
1615
snx.Image(

examples/basic_volume.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
data = np.random.randint(0, 2, (3, 3, 3)).astype(np.uint16)
1212

1313
view = snx.View(
14-
blending="default",
1514
scene=snx.Scene(
1615
children=[
1716
snx.Volume(

src/scenex/adaptors/_base.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,4 @@ def _snx_set_scene(self, arg: model.Scene, /) -> None: ...
226226
@abstractmethod
227227
def _snx_set_camera(self, arg: model.Camera, /) -> None: ...
228228
@abstractmethod
229-
def _snx_set_blending(self, arg: model.BlendMode, /) -> None: ...
230-
@abstractmethod
231229
def _snx_render(self) -> NDArray: ...

src/scenex/adaptors/_pygfx/_view.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@
1818
from . import _camera, _canvas, _scene
1919

2020
logger = logging.getLogger("scenex.adaptors.pygfx")
21-
BLENDING_MAP = {
22-
"default": "default",
23-
"opaque": "opaque",
24-
"alpha": "ordered1",
25-
"additive": "additive",
26-
}
2721

2822

2923
class View(ViewAdaptor):
@@ -42,16 +36,12 @@ def __init__(self, view: model.View, **backend_kwargs: Any) -> None:
4236

4337
self._snx_set_scene(view.scene)
4438
self._snx_set_camera(view.camera)
45-
self._snx_set_blending(view.blending)
4639
# TODO: this is needed... but breaks tests until we deal with Layout better.
4740
# self._snx_set_background_color(view.layout.background_color)
4841

4942
def _snx_get_native(self) -> pygfx.Viewport:
5043
return pygfx.Viewport(self._renderer)
5144

52-
def _snx_set_blending(self, arg: model.BlendMode) -> None:
53-
self._renderer.blend_mode = BLENDING_MAP.get(arg, "default")
54-
5545
def _snx_set_visible(self, arg: bool) -> None:
5646
pass
5747

src/scenex/adaptors/_vispy/_view.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,6 @@
2222
from . import _camera, _scene
2323

2424

25-
BLENDING_MAP = {
26-
"default": "default",
27-
"opaque": "opaque",
28-
"alpha": "ordered1",
29-
"additive": "additive",
30-
}
31-
32-
3325
class View(ViewAdaptor):
3426
"""View interface for vispy Backend.
3527
@@ -45,16 +37,10 @@ def __init__(self, view: model.View, **backend_kwargs: Any) -> None:
4537

4638
self._snx_set_camera(view.camera)
4739
self._snx_set_scene(view.scene)
48-
self._snx_set_blending(view.blending)
4940

5041
def _snx_get_native(self) -> Any:
5142
return self._vispy_viewbox
5243

53-
def _snx_set_blending(self, arg: model.BlendMode) -> None:
54-
# FIXME: This is tricky - needs to be passed to set_gl_state for each scene
55-
# node.
56-
pass
57-
5844
def _snx_set_visible(self, arg: bool) -> None:
5945
pass
6046

src/scenex/model/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,10 @@
2222
from ._nodes.scene import Scene
2323
from ._nodes.volume import RenderMode, Volume
2424
from ._transform import Transform
25-
from ._view import BlendMode, View
25+
from ._view import View
2626

2727
__all__ = [
2828
"AnyNode",
29-
"BlendMode",
3029
"Camera",
3130
"CameraType",
3231
"Canvas",

src/scenex/model/_view.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from __future__ import annotations
44

55
import logging
6-
from typing import TYPE_CHECKING, Any, Literal, cast
6+
from typing import TYPE_CHECKING, Any, cast
77

88
from pydantic import ConfigDict, Field, PrivateAttr
99

@@ -22,10 +22,6 @@
2222
logger = logging.getLogger(__name__)
2323

2424

25-
# just a random/basic selection of blend modes for now
26-
BlendMode = Literal["default", "opaque", "alpha", "additive"]
27-
28-
2925
class View(EventedBase):
3026
"""An association of a scene and a camera.
3127
@@ -41,11 +37,6 @@ class View(EventedBase):
4137
scene: Scene = Field(default_factory=Scene)
4238
camera: Camera = Field(default_factory=Camera)
4339
layout: Layout = Field(default_factory=Layout, frozen=True)
44-
blending: BlendMode = Field(
45-
default="default",
46-
description="The blending mode to use when rendering the view. "
47-
"Must be one of 'default', 'opaque', 'alpha', or 'additive'.",
48-
)
4940
visible: bool = Field(default=True, description="Whether the view is visible.")
5041

5142
_canvas: Canvas | None = PrivateAttr(None)

tests/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,4 @@ def basic_scene(
6666

6767
@pytest.fixture
6868
def basic_view(basic_scene: snx.Scene) -> snx.View:
69-
return snx.View(blending="default", scene=basic_scene)
69+
return snx.View(scene=basic_scene)

0 commit comments

Comments
 (0)