File: metal.py

package info (click to toggle)
pysdl2 0.9.17%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,328 kB
  • sloc: python: 24,685; makefile: 36; sh: 8
file content (43 lines) | stat: -rw-r--r-- 1,290 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from ctypes import c_int, c_void_p
from ctypes import POINTER as _P
from .dll import _bind, SDLFunc, AttributeDict
from .video import SDL_Window

# NOTE: These functions are currently untested, but proper usage likely involves
# the use of pyobjc to create an NSView from the created SDL_MetalView.

__all__ = [
    # Opaque Types
    "SDL_MetalView",
]


# Opaque typedefs

class SDL_MetalView(c_void_p):
    pass


# Raw ctypes function definitions

_funcdefs = [
    SDLFunc("SDL_Metal_CreateView", [_P(SDL_Window)], SDL_MetalView, added='2.0.12'),
    SDLFunc("SDL_Metal_DestroyView", [SDL_MetalView], None, added='2.0.12'),
    SDLFunc("SDL_Metal_GetLayer", [SDL_MetalView], c_void_p, added='2.0.14'),
    SDLFunc("SDL_Metal_GetDrawableSize",
        [_P(SDL_Window), _P(c_int), _P(c_int)],
        returns = None, added = '2.0.14'
    ),
]
_ctypes = AttributeDict()
for f in _funcdefs:
    _ctypes[f.name] = _bind(f.name, f.args, f.returns, f.added)
    __all__.append(f.name) # Add all bound functions to module namespace


# Aliases for ctypes bindings

SDL_Metal_CreateView = _ctypes["SDL_Metal_CreateView"]
SDL_Metal_DestroyView = _ctypes["SDL_Metal_DestroyView"]
SDL_Metal_GetLayer = _ctypes["SDL_Metal_GetLayer"]
SDL_Metal_GetDrawableSize = _ctypes["SDL_Metal_GetDrawableSize"]