Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions codegen/apipatcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -624,6 +624,10 @@ def class_is_known(self, classname):
def get_class_def(self, classname):
line, _ = self.classes[classname]

if line.startswith("class GPUPromise"):
# otherwise the else block below strips the typevar.
return "class GPUPromise(classes.GPUPromise[AwaitedType]):"

if "):" not in line:
return line.replace(":", f"(classes.{classname}):")
else:
Expand Down
4 changes: 2 additions & 2 deletions wgpu/_classes.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import itertools
from typing import Sequence

from ._async import GPUPromise as BaseGPUPromise
from ._async import GPUPromise as BaseGPUPromise, AwaitedType
from ._coreutils import ApiDiff, str_flag_to_int, ArrayLike, CanvasLike
from ._diagnostics import diagnostics, texture_format_to_bpp
from . import flags, enums, structs
Expand Down Expand Up @@ -224,7 +224,7 @@ def get_canvas_context(self, present_info: dict) -> GPUCanvasContext:


@apidiff.add("Added for async support")
class GPUPromise(BaseGPUPromise):
class GPUPromise(BaseGPUPromise[AwaitedType]):
pass


Expand Down
3 changes: 2 additions & 1 deletion wgpu/backends/wgpu_native/_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
from typing import NoReturn, Sequence

from ..._coreutils import str_flag_to_int, ArrayLike, CanvasLike
from ..._async import AwaitedType
from ... import classes, flags, enums, structs

from ._ffi import ffi, lib
Expand Down Expand Up @@ -684,7 +685,7 @@ def get_canvas_context(self, present_info: dict) -> GPUCanvasContext:
gpu = GPU()


class GPUPromise(classes.GPUPromise):
class GPUPromise(classes.GPUPromise[AwaitedType]):
def _sync_wait(self):
# In the wgpu-native backend, we do the polling in a per-device thread.
# The base class already sets a threading.Event, we can just use that here.
Expand Down
Loading