File: vboimplementation.py

package info (click to toggle)
pyopengl 3.1.6%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 14,732 kB
  • sloc: python: 106,016; makefile: 8
file content (38 lines) | stat: -rw-r--r-- 1,383 bytes parent folder | download | duplicates (15)
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
from OpenGL.arrays import vbo
from OpenGL.GL.ARB import vertex_buffer_object
from OpenGL.GL.ARB import uniform_buffer_object
from OpenGL.GL.ARB import texture_buffer_object
from OpenGL.GL.ARB import enhanced_layouts

class Implementation( vbo.Implementation ):
    """OpenGL ARB extension-based implementation of VBO interfaces"""
    def __init__( self ):
        for name in self.EXPORTED_NAMES:
            source = name
            if name.startswith( 'GL_'):
                source = name + '_ARB'
            else:
                source = name + 'ARB'
            found = False
            for source_extension in (
                vertex_buffer_object,
                uniform_buffer_object,
                texture_buffer_object,
                enhanced_layouts,
            ):
                try:
                    setattr( self, name, getattr( source_extension, source ))
                except AttributeError as err:
                    try:
                        setattr( self, name, getattr( source_extension, name ))
                    except AttributeError as err:
                        pass 
                    else:
                        found = True
                else:
                    found =True 
                    break
            assert found, name
        if self.glGenBuffers:
            self.available = True
Implementation.register()