PyOpenGL-accelerate 4.0.0a8__tar.gz → 4.0.0b1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/OpenGL_accelerate/__init__.py +1 -1
  2. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/PKG-INFO +2 -2
  3. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/PyOpenGL_accelerate.egg-info/PKG-INFO +2 -2
  4. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/PyOpenGL_accelerate.egg-info/SOURCES.txt +2 -1
  5. pyopengl_accelerate-4.0.0b1/PyOpenGL_accelerate.egg-info/requires.txt +1 -0
  6. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/vbo.pyx +1 -18
  7. pyopengl_accelerate-4.0.0b1/tests/test_vbo_references.py +46 -0
  8. pyopengl_accelerate-4.0.0a8/PyOpenGL_accelerate.egg-info/requires.txt +0 -1
  9. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/MANIFEST.in +0 -0
  10. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/OpenGL_accelerate/formathandler.pxd +0 -0
  11. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/OpenGL_accelerate/wrapper.pxd +0 -0
  12. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/PyOpenGL_accelerate.egg-info/dependency_links.txt +0 -0
  13. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/PyOpenGL_accelerate.egg-info/top_level.txt +0 -0
  14. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/README.md +0 -0
  15. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/license.txt +0 -0
  16. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/pyproject.toml +0 -0
  17. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/setup.cfg +0 -0
  18. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/setup.py +0 -0
  19. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/arraydatatype.pyx +0 -0
  20. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/buffers_formathandler.pyx +0 -0
  21. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/c/generated/pygl_EGL.c +0 -0
  22. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/c/generated/pygl_GL.c +0 -0
  23. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/c/generated/pygl_GLES1.c +0 -0
  24. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/c/generated/pygl_GLES2.c +0 -0
  25. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/c/generated/pygl_GLES3.c +0 -0
  26. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/c/generated/pygl_GLSC2.c +0 -0
  27. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/c/generated/pygl_GLX.c +0 -0
  28. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/c/generated/pygl_WGL.c +0 -0
  29. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/c/generated/pygl_generated.c +0 -0
  30. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/c/generated/pygl_modules.c +0 -0
  31. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/c/pygl_handwritten.c +0 -0
  32. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/c/pygl_runtime.c +0 -0
  33. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/errorchecker.pyx +0 -0
  34. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/formathandler.pyx +0 -0
  35. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/latebind.pyx +0 -0
  36. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/nones_formathandler.pyx +0 -0
  37. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/numpy_formathandler.pyx +0 -0
  38. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/src/wrapper.pyx +0 -0
  39. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/tests/test_arraydatatypeaccel.py +0 -0
  40. {pyopengl_accelerate-4.0.0a8 → pyopengl_accelerate-4.0.0b1}/tests/test_numpyaccel.py +0 -0
@@ -13,7 +13,7 @@ import re as _re
13
13
  #: the two share generated tables, the dependency is pinned to this number,
14
14
  #: and the extension refuses a PyOpenGL stating another. A release bumps
15
15
  #: both this and ``OpenGL/version.py``.
16
- __version__ = "4.0.0a8"
16
+ __version__ = "4.0.0b1"
17
17
  #: The numeric release ``__version__`` names, without a pre-release marker,
18
18
  #: which ``OpenGL.acceleratesupport`` compares with its floor.
19
19
  __version_tuple__ = tuple(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyOpenGL-accelerate
3
- Version: 4.0.0a8
3
+ Version: 4.0.0b1
4
4
  Summary: Cython-coded accelerators for PyOpenGL
5
5
  Home-page: http://pyopengl.sourceforge.net
6
6
  Download-URL: http://sourceforge.net/project/showfiles.php?group_id=5988
@@ -24,7 +24,7 @@ Classifier: Intended Audience :: Developers
24
24
  Requires-Python: >=3.9
25
25
  Description-Content-Type: text/markdown
26
26
  License-File: license.txt
27
- Requires-Dist: PyOpenGL==4.0.0a8
27
+ Requires-Dist: PyOpenGL==4.0.0b1
28
28
  Dynamic: download-url
29
29
  Dynamic: license-file
30
30
  Dynamic: requires-dist
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyOpenGL-accelerate
3
- Version: 4.0.0a8
3
+ Version: 4.0.0b1
4
4
  Summary: Cython-coded accelerators for PyOpenGL
5
5
  Home-page: http://pyopengl.sourceforge.net
6
6
  Download-URL: http://sourceforge.net/project/showfiles.php?group_id=5988
@@ -24,7 +24,7 @@ Classifier: Intended Audience :: Developers
24
24
  Requires-Python: >=3.9
25
25
  Description-Content-Type: text/markdown
26
26
  License-File: license.txt
27
- Requires-Dist: PyOpenGL==4.0.0a8
27
+ Requires-Dist: PyOpenGL==4.0.0b1
28
28
  Dynamic: download-url
29
29
  Dynamic: license-file
30
30
  Dynamic: requires-dist
@@ -34,4 +34,5 @@ src/c/generated/pygl_WGL.c
34
34
  src/c/generated/pygl_generated.c
35
35
  src/c/generated/pygl_modules.c
36
36
  tests/test_arraydatatypeaccel.py
37
- tests/test_numpyaccel.py
37
+ tests/test_numpyaccel.py
38
+ tests/test_vbo_references.py
@@ -0,0 +1 @@
1
+ PyOpenGL==4.0.0b1
@@ -9,10 +9,6 @@ try:
9
9
  except NameError as err:
10
10
  long = int
11
11
 
12
- cdef extern from "Python.h":
13
- cdef void Py_XINCREF( object )
14
- cdef void Py_XDECREF( object )
15
-
16
12
  _NULL = object()
17
13
 
18
14
  cdef class VBO:
@@ -90,11 +86,6 @@ cdef class VBO:
90
86
  self.target_spec = target
91
87
  self._copy_segments = []
92
88
  self._I_ = None
93
- def __dealloc__( self ):
94
- """Deallocate our references"""
95
- if self.data is not None:
96
- Py_XDECREF( self.data )
97
- self.data = None
98
89
  @property
99
90
  def implementation( self ):
100
91
  """Retrieve our implementation reference"""
@@ -117,10 +108,7 @@ cdef class VBO:
117
108
  """Update our entire array with new data"""
118
109
  return self.c_set_array( data, size )
119
110
  cdef c_set_array( self, data, size ):
120
- """Set our array pointer with incref/decref support"""
121
- if self.data is not None:
122
- Py_XDECREF( self.data )
123
- Py_XINCREF( data )
111
+ """Hold ``data`` as the array; an attribute of the extension type holds its own reference"""
124
112
  self.data = data
125
113
  if size is None and self.data is not None:
126
114
  size = self.arrayType.arrayByteCount( self.data )
@@ -275,12 +263,7 @@ cdef class VBOOffset:
275
263
  cdef public unsigned int offset
276
264
  def __cinit__( self, VBO vbo, unsigned int offset ):
277
265
  self.vbo = vbo
278
- Py_XINCREF( vbo )
279
266
  self.offset = offset
280
- def __dealloc__( self ):
281
- if self.vbo is not None:
282
- Py_XDECREF( self.vbo )
283
- self.vbo = None
284
267
 
285
268
  def __getattr__( self, key ):
286
269
  if key != 'vbo':
@@ -0,0 +1,46 @@
1
+ """The accelerated VBO holds its array and its offsets hold their VBO by ordinary references."""
2
+ import gc
3
+ import sys
4
+
5
+ import numpy as np
6
+ import pytest
7
+
8
+ from OpenGL import acceleratesupport
9
+ from OpenGL.arrays import vbo
10
+
11
+ # Switched off is as good as absent: OpenGL.arrays.vbo is then the Python VBO.
12
+ if not acceleratesupport.ACCELERATE_AVAILABLE:
13
+ pytest.skip('the accelerators are not in use here', allow_module_level=True)
14
+
15
+
16
+ def test_the_vbo_is_the_accelerated_one():
17
+ assert vbo.VBO.__module__ == 'OpenGL_accelerate.vbo'
18
+ assert vbo.VBOOffset.__module__ == 'OpenGL_accelerate.vbo'
19
+
20
+
21
+ def test_an_array_assigned_to_data_outlives_the_buffer():
22
+ """``data`` is a public attribute: an array put there is held like any other."""
23
+ first = np.zeros(4, 'f')
24
+ second = np.ones(4, 'f')
25
+ third = np.full(2, 2.0, 'f')
26
+ counts = [sys.getrefcount(item) for item in (first, second, third)]
27
+ buffer = vbo.VBO(first)
28
+ buffer.data = second
29
+ buffer.set_array(third)
30
+ buffer.data = second
31
+ del buffer
32
+ gc.collect()
33
+ assert [sys.getrefcount(item) for item in (first, second, third)] == counts
34
+
35
+
36
+ def test_an_offset_holds_its_buffer_and_lets_it_go():
37
+ data = np.zeros(4, 'f')
38
+ buffer = vbo.VBO(data)
39
+ count = sys.getrefcount(buffer)
40
+ offset = buffer + 8
41
+ assert offset.offset == 8 and offset.vbo is buffer
42
+ offset.vbo = vbo.VBO(np.zeros(2, 'f'))
43
+ offset.vbo = buffer
44
+ del offset
45
+ gc.collect()
46
+ assert sys.getrefcount(buffer) == count
@@ -1 +0,0 @@
1
- PyOpenGL==4.0.0a8