File: _types.py

package info (click to toggle)
pyopengl 3.1.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 11,184 kB
  • ctags: 21,473
  • sloc: python: 80,468; makefile: 4
file content (130 lines) | stat: -rw-r--r-- 4,078 bytes parent folder | download | duplicates (12)
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
"""Data-type definitions for EGL/GLES"""
import ctypes
from OpenGL._opaque import opaque_pointer_cls as _opaque_pointer_cls
from OpenGL import platform as _p
from OpenGL import extensions 

class _EGLQuerier( extensions.ExtensionQuerier ):
    prefix = 'EGL_'
    assumed_version = [1,0]
    version_prefix = 'EGL_VERSION_EGL_'
    def getDisplay( self ):
        """Retrieve the currently-bound, or the default, display"""
        from OpenGL.EGL import (
            eglGetCurrentDisplay, eglGetDisplay, EGL_DEFAULT_DISPLAY,
        )
        return eglGetCurrentDisplay() or eglGetDisplay(EGL_DEFAULT_DISPLAY)
        
    def pullVersion( self ):
        from OpenGL.EGL import (
            eglQueryString, EGL_VERSION
        )
        return eglQueryString( self.getDisplay(), EGL_VERSION )
    def pullExtensions( self ):
        from OpenGL.EGL import eglQueryString, EGL_EXTENSIONS
        return eglQueryString( self.getDisplay(), EGL_EXTENSIONS )
EGLQuerier=_EGLQuerier()

EGLBoolean = ctypes.c_uint32
EGLenum = ctypes.c_uint32
EGLint = c_int = ctypes.c_int32

EGLConfig = _opaque_pointer_cls( 'EGLConfig' )
EGLContext = _opaque_pointer_cls( 'EGLContext' )
EGLDisplay = _opaque_pointer_cls( 'EGLDisplay' )
EGLSurface = _opaque_pointer_cls( 'EGLSurface' )
EGLClientBuffer = _opaque_pointer_cls( 'EGLClientBuffer' )
EGLImageKHR = _opaque_pointer_cls( 'EGLImageKHR' )

EGLScreenMESA = ctypes.c_ulong
EGLModeMESA = ctypes.c_ulong

EGLNativeFileDescriptorKHR = ctypes.c_int

EGLSyncKHR = EGLSyncNV = EGLSync = _opaque_pointer_cls( 'EGLSync' )
EGLTimeKHR = EGLTimeNV = EGLTime = ctypes.c_ulonglong
EGLuint64KHR = EGLuint64NV = ctypes.c_ulonglong
EGLStreamKHR = _opaque_pointer_cls( 'EGLStream' )
EGLsizeiANDROID = ctypes.c_size_t
EGLAttribKHR = EGLAttrib = ctypes.POINTER( ctypes.c_int32 )

class EGLClientPixmapHI( ctypes.Structure):
    _fields_ = [
        ('pData',ctypes.c_voidp),
        ('iWidth',EGLint),
        ('iHeight',EGLint),
        ('iStride',EGLint),
    ]
class wl_display( ctypes.Structure):
    """Opaque structure from Mesa Wayland API"""
    _fields_ = []

# These are X11... no good, really...
EGLNativeDisplayType = _opaque_pointer_cls( 'EGLNativeDisplayType' )
EGLNativePixmapType = _opaque_pointer_cls( 'EGLNativePixmapType' )
EGLNativeWindowType = _opaque_pointer_cls( 'EGLNativeWindowType' )

NativeDisplayType = EGLNativeDisplayType 
NativePixmapType = EGLNativePixmapType
NativeWindowType = EGLNativeWindowType

# Callback types, this is a hack to avoid making the 
# khr module depend on the platform or needing to change generator for now...
CALLBACK_TYPE = _p.PLATFORM.functionTypeFor( _p.PLATFORM.EGL )
EGLSetBlobFuncANDROID = CALLBACK_TYPE( ctypes.c_voidp, EGLsizeiANDROID, ctypes.c_voidp, EGLsizeiANDROID )
EGLGetBlobFuncANDROID = CALLBACK_TYPE( ctypes.c_voidp, EGLsizeiANDROID, ctypes.c_voidp, EGLsizeiANDROID )

EGL_DEFAULT_DISPLAY = EGLNativeDisplayType()
EGL_NO_CONTEXT = EGLContext()
EGL_NO_DISPLAY = EGLDisplay()
EGL_NO_SURFACE = EGLSurface()
EGL_DONT_CARE = -1

raw_eglQueryString = _p.PLATFORM.EGL.eglQueryString
raw_eglQueryString.restype = ctypes.c_char_p
raw_eglQueryString.__doc__ = """Raw version of eglQueryString that does not check for availability"""

_VERSION_PREFIX = 'EGL_VERSION_EGL_'


[
    'EGLAttrib',
    'EGLAttribKHR',
    'EGLBoolean',
    'EGLClientBuffer',
    'EGLClientPixmapHI',
    'EGLConfig',
    'EGLContext',
    'EGLDisplay',
    'EGLGetBlobFuncANDROID',
    'EGLImageKHR',
    'EGLModeMESA',
    'EGLNativeDisplayType',
    'EGLNativeFileDescriptorKHR',
    'EGLNativePixmapType',
    'EGLNativeWindowType',
    'EGLScreenMESA',
    'EGLSetBlobFuncANDROID',
    'EGLStreamKHR',
    'EGLSurface',
    'EGLSyncKHR',
    'EGLSyncNV',
    'EGLSync',
    'EGLTimeKHR',
    'EGLTimeNV',
    'EGLTime',
    'EGL_DEFAULT_DISPLAY',
    'EGL_DONT_CARE',
    'EGL_NO_CONTEXT',
    'EGL_NO_DISPLAY',
    'EGL_NO_SURFACE',
    'EGLenum',
    'EGLint',
    'EGLsizeiANDROID',
    'EGLuint64KHR',
    'EGLuint64NV',
    'NativeDisplayType',
    'NativePixmapType',
    'NativeWindowType',
    'wl_display',
]