OpenGLContext 2.3.0b1__tar.gz → 3.0.0a2__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 (976) hide show
  1. openglcontext-3.0.0a2/MANIFEST.in +44 -0
  2. openglcontext-3.0.0a2/OpenGLContext/__init__.py +151 -0
  3. openglcontext-3.0.0a2/OpenGLContext/atlas.py +300 -0
  4. openglcontext-3.0.0a2/OpenGLContext/audio/__init__.py +32 -0
  5. openglcontext-3.0.0a2/OpenGLContext/audio/scene.py +130 -0
  6. openglcontext-3.0.0a2/OpenGLContext/audio/settings.py +82 -0
  7. openglcontext-3.0.0a2/OpenGLContext/bin/choosecontext.py +224 -0
  8. openglcontext-3.0.0a2/OpenGLContext/bin/choosefonts.py +209 -0
  9. openglcontext-3.0.0a2/OpenGLContext/bin/gltest.py +121 -0
  10. openglcontext-3.0.0a2/OpenGLContext/bin/gltf_demo.py +492 -0
  11. openglcontext-3.0.0a2/OpenGLContext/bin/gltf_regression.py +645 -0
  12. openglcontext-3.0.0a2/OpenGLContext/bin/gltf_view.py +30 -0
  13. openglcontext-3.0.0a2/OpenGLContext/bin/keyboardevents.py +93 -0
  14. openglcontext-3.0.0a2/OpenGLContext/bin/lorentz.py +109 -0
  15. openglcontext-3.0.0a2/OpenGLContext/bin/physics_cook.py +81 -0
  16. openglcontext-3.0.0a2/OpenGLContext/bin/profile_view.py +38 -0
  17. openglcontext-3.0.0a2/OpenGLContext/bin/terrain_view.py +581 -0
  18. openglcontext-3.0.0a2/OpenGLContext/bin/tiles_view.py +39 -0
  19. openglcontext-3.0.0a2/OpenGLContext/bin/ui_demo.py +228 -0
  20. openglcontext-3.0.0a2/OpenGLContext/bin/view.py +341 -0
  21. openglcontext-3.0.0a2/OpenGLContext/bin/vrml_view.py +42 -0
  22. openglcontext-3.0.0a2/OpenGLContext/capture.py +125 -0
  23. openglcontext-3.0.0a2/OpenGLContext/context.py +1253 -0
  24. openglcontext-3.0.0a2/OpenGLContext/contextconfig.py +177 -0
  25. openglcontext-3.0.0a2/OpenGLContext/contextdefinition.py +275 -0
  26. openglcontext-3.0.0a2/OpenGLContext/debug/bufferimage.py +80 -0
  27. openglcontext-3.0.0a2/OpenGLContext/debug/leaks.py +13 -0
  28. openglcontext-3.0.0a2/OpenGLContext/debug/logs.py +15 -0
  29. openglcontext-3.0.0a2/OpenGLContext/displaylist.py +69 -0
  30. openglcontext-3.0.0a2/OpenGLContext/doinchildmatrix.py +34 -0
  31. openglcontext-3.0.0a2/OpenGLContext/events/default_config.py +29 -0
  32. openglcontext-3.0.0a2/OpenGLContext/events/event.py +65 -0
  33. openglcontext-3.0.0a2/OpenGLContext/events/eventhandlermixin.py +214 -0
  34. openglcontext-3.0.0a2/OpenGLContext/events/eventmanager.py +269 -0
  35. openglcontext-3.0.0a2/OpenGLContext/events/fxevents.py +90 -0
  36. openglcontext-3.0.0a2/OpenGLContext/events/glfwevents.py +424 -0
  37. openglcontext-3.0.0a2/OpenGLContext/events/glutevents.py +184 -0
  38. openglcontext-3.0.0a2/OpenGLContext/events/inputstate.py +129 -0
  39. openglcontext-3.0.0a2/OpenGLContext/events/internaltime.py +161 -0
  40. openglcontext-3.0.0a2/OpenGLContext/events/keyboardevents.py +153 -0
  41. openglcontext-3.0.0a2/OpenGLContext/events/mouseevents.py +473 -0
  42. openglcontext-3.0.0a2/OpenGLContext/events/pygameevents.py +162 -0
  43. openglcontext-3.0.0a2/OpenGLContext/events/timeeventgeneratormanager.py +40 -0
  44. openglcontext-3.0.0a2/OpenGLContext/events/timeevents.py +143 -0
  45. openglcontext-3.0.0a2/OpenGLContext/events/timer.py +170 -0
  46. openglcontext-3.0.0a2/OpenGLContext/events/tkevents.py +172 -0
  47. openglcontext-3.0.0a2/OpenGLContext/events/wxevents.py +185 -0
  48. openglcontext-3.0.0a2/OpenGLContext/extensionmanager.py +158 -0
  49. openglcontext-3.0.0a2/OpenGLContext/framecounter.py +74 -0
  50. openglcontext-3.0.0a2/OpenGLContext/frustum.py +135 -0
  51. openglcontext-3.0.0a2/OpenGLContext/glfwcontext.py +395 -0
  52. openglcontext-3.0.0a2/OpenGLContext/glfwinteractivecontext.py +34 -0
  53. openglcontext-3.0.0a2/OpenGLContext/glfwvrmlcontext.py +11 -0
  54. openglcontext-3.0.0a2/OpenGLContext/glutcontext.py +224 -0
  55. openglcontext-3.0.0a2/OpenGLContext/glutvrmlcontext.py +25 -0
  56. openglcontext-3.0.0a2/OpenGLContext/hud.py +404 -0
  57. openglcontext-3.0.0a2/OpenGLContext/loaders/base.py +84 -0
  58. openglcontext-3.0.0a2/OpenGLContext/loaders/cc0.py +137 -0
  59. openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/__init__.py +71 -0
  60. openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/accessors.py +255 -0
  61. openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/animation.py +611 -0
  62. openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/draco.py +166 -0
  63. openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/environment_sky.py +416 -0
  64. openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/loader.py +80 -0
  65. openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/materials.py +298 -0
  66. openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/meshes.py +292 -0
  67. openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/samples.py +162 -0
  68. openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/scene.py +673 -0
  69. openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/specular_glossiness.py +154 -0
  70. openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/textures.py +155 -0
  71. openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/transforms.py +261 -0
  72. openglcontext-3.0.0a2/OpenGLContext/loaders/gltf_demos.py +511 -0
  73. openglcontext-3.0.0a2/OpenGLContext/loaders/hdr.py +228 -0
  74. openglcontext-3.0.0a2/OpenGLContext/loaders/hdri.py +83 -0
  75. openglcontext-3.0.0a2/OpenGLContext/loaders/loader.py +255 -0
  76. openglcontext-3.0.0a2/OpenGLContext/loaders/obj.py +299 -0
  77. openglcontext-3.0.0a2/OpenGLContext/loaders/resolver.py +536 -0
  78. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/__init__.py +9 -0
  79. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/boundingvolume.py +120 -0
  80. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/dem.py +71 -0
  81. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/fetch.py +102 -0
  82. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/foliage.py +786 -0
  83. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/frustum.py +70 -0
  84. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/geomorph.py +57 -0
  85. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/gltf_uploader.py +246 -0
  86. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/loadmanager.py +121 -0
  87. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/physics_colliders.py +78 -0
  88. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/procedural.py +355 -0
  89. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/residency.py +102 -0
  90. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/runtime.py +168 -0
  91. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/sample.py +212 -0
  92. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/scatter.py +77 -0
  93. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/screenspaceerror.py +31 -0
  94. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/tileset.py +390 -0
  95. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/traversal.py +108 -0
  96. openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/vegetation.py +361 -0
  97. openglcontext-3.0.0a2/OpenGLContext/loaders/vrml97.py +133 -0
  98. openglcontext-3.0.0a2/OpenGLContext/looptrace.py +307 -0
  99. openglcontext-3.0.0a2/OpenGLContext/move/bindingstore.py +232 -0
  100. openglcontext-3.0.0a2/OpenGLContext/move/direct.py +156 -0
  101. openglcontext-3.0.0a2/OpenGLContext/move/examinemanager.py +100 -0
  102. openglcontext-3.0.0a2/OpenGLContext/move/followcam.py +121 -0
  103. openglcontext-3.0.0a2/OpenGLContext/move/modes.py +522 -0
  104. openglcontext-3.0.0a2/OpenGLContext/move/movementmanager.py +74 -0
  105. openglcontext-3.0.0a2/OpenGLContext/move/navigation.py +137 -0
  106. openglcontext-3.0.0a2/OpenGLContext/move/physicsplatform.py +203 -0
  107. openglcontext-3.0.0a2/OpenGLContext/move/physicswalk.py +469 -0
  108. openglcontext-3.0.0a2/OpenGLContext/move/smooth.py +68 -0
  109. openglcontext-3.0.0a2/OpenGLContext/move/terrainwalk.py +451 -0
  110. openglcontext-3.0.0a2/OpenGLContext/move/trackball.py +92 -0
  111. openglcontext-3.0.0a2/OpenGLContext/move/viewplatform.py +283 -0
  112. openglcontext-3.0.0a2/OpenGLContext/move/viewplatformmixin.py +335 -0
  113. openglcontext-3.0.0a2/OpenGLContext/nav/__init__.py +13 -0
  114. openglcontext-3.0.0a2/OpenGLContext/nav/navmesh.py +476 -0
  115. openglcontext-3.0.0a2/OpenGLContext/passes/_flat.py +1317 -0
  116. openglcontext-3.0.0a2/OpenGLContext/passes/asyncpick.py +216 -0
  117. openglcontext-3.0.0a2/OpenGLContext/passes/bloom.py +257 -0
  118. openglcontext-3.0.0a2/OpenGLContext/passes/flatcompat.py +246 -0
  119. openglcontext-3.0.0a2/OpenGLContext/passes/flatcore.py +198 -0
  120. openglcontext-3.0.0a2/OpenGLContext/passes/flateffects.py +372 -0
  121. openglcontext-3.0.0a2/OpenGLContext/passes/ibl.py +711 -0
  122. openglcontext-3.0.0a2/OpenGLContext/passes/instancing.py +775 -0
  123. openglcontext-3.0.0a2/OpenGLContext/passes/pbrpass.py +829 -0
  124. openglcontext-3.0.0a2/OpenGLContext/passes/renderpass.py +79 -0
  125. openglcontext-3.0.0a2/OpenGLContext/passes/renderstats.py +55 -0
  126. openglcontext-3.0.0a2/OpenGLContext/passes/rendervisitor.py +60 -0
  127. openglcontext-3.0.0a2/OpenGLContext/passes/selection.py +450 -0
  128. openglcontext-3.0.0a2/OpenGLContext/passes/selectionbuffers.py +442 -0
  129. openglcontext-3.0.0a2/OpenGLContext/passes/shaderpass.py +1018 -0
  130. openglcontext-3.0.0a2/OpenGLContext/passes/shaderpass_shadow.py +197 -0
  131. openglcontext-3.0.0a2/OpenGLContext/passes/shadersource.py +121 -0
  132. openglcontext-3.0.0a2/OpenGLContext/passes/shadowcaps.py +182 -0
  133. openglcontext-3.0.0a2/OpenGLContext/passes/shadowmap.py +330 -0
  134. openglcontext-3.0.0a2/OpenGLContext/passes/shadowmath.py +290 -0
  135. openglcontext-3.0.0a2/OpenGLContext/passes/shadowmixin.py +906 -0
  136. openglcontext-3.0.0a2/OpenGLContext/passes/shadowpool.py +186 -0
  137. openglcontext-3.0.0a2/OpenGLContext/passes/transmission.py +124 -0
  138. openglcontext-3.0.0a2/OpenGLContext/physics/__init__.py +16 -0
  139. openglcontext-3.0.0a2/OpenGLContext/physics/debugdraw.py +370 -0
  140. openglcontext-3.0.0a2/OpenGLContext/physics/demo.py +157 -0
  141. openglcontext-3.0.0a2/OpenGLContext/physics/gltf_world.py +185 -0
  142. openglcontext-3.0.0a2/OpenGLContext/physics/manager.py +84 -0
  143. openglcontext-3.0.0a2/OpenGLContext/physics/threaded.py +93 -0
  144. openglcontext-3.0.0a2/OpenGLContext/plugins.py +61 -0
  145. openglcontext-3.0.0a2/OpenGLContext/pygamecontext.py +178 -0
  146. openglcontext-3.0.0a2/OpenGLContext/pygameinteractivecontext.py +36 -0
  147. openglcontext-3.0.0a2/OpenGLContext/quaternion.py +190 -0
  148. openglcontext-3.0.0a2/OpenGLContext/renderoptions.py +280 -0
  149. openglcontext-3.0.0a2/OpenGLContext/resources/__init__.py +36 -0
  150. openglcontext-3.0.0a2/OpenGLContext/resources/available_contexts_txt.py +9 -0
  151. openglcontext-3.0.0a2/OpenGLContext/resources/context_icon_png.py +46 -0
  152. openglcontext-3.0.0a2/OpenGLContext/resources/context_icon_small_png.py +21 -0
  153. openglcontext-3.0.0a2/OpenGLContext/resources/disk_icon_hi_png.py +14 -0
  154. openglcontext-3.0.0a2/OpenGLContext/resources/disk_icon_png.py +15 -0
  155. openglcontext-3.0.0a2/OpenGLContext/resources/environment/studio_BK.jpg +0 -0
  156. openglcontext-3.0.0a2/OpenGLContext/resources/environment/studio_DN.jpg +0 -0
  157. openglcontext-3.0.0a2/OpenGLContext/resources/environment/studio_FR.jpg +0 -0
  158. openglcontext-3.0.0a2/OpenGLContext/resources/environment/studio_LF.jpg +0 -0
  159. openglcontext-3.0.0a2/OpenGLContext/resources/environment/studio_RT.jpg +0 -0
  160. openglcontext-3.0.0a2/OpenGLContext/resources/environment/studio_UP.jpg +0 -0
  161. openglcontext-3.0.0a2/OpenGLContext/resources/environment/studiobright_BK.jpg +0 -0
  162. openglcontext-3.0.0a2/OpenGLContext/resources/environment/studiobright_DN.jpg +0 -0
  163. openglcontext-3.0.0a2/OpenGLContext/resources/environment/studiobright_FR.jpg +0 -0
  164. openglcontext-3.0.0a2/OpenGLContext/resources/environment/studiobright_LF.jpg +0 -0
  165. openglcontext-3.0.0a2/OpenGLContext/resources/environment/studiobright_RT.jpg +0 -0
  166. openglcontext-3.0.0a2/OpenGLContext/resources/environment/studiobright_UP.jpg +0 -0
  167. openglcontext-3.0.0a2/OpenGLContext/resources/green_arrow_right_png.py +47 -0
  168. openglcontext-3.0.0a2/OpenGLContext/resources/legacy_lighting_vert_txt.py +18 -0
  169. openglcontext-3.0.0a2/OpenGLContext/resources/lights_vert_txt.py +23 -0
  170. openglcontext-3.0.0a2/OpenGLContext/resources/phongprecalc_vert.py +30 -0
  171. openglcontext-3.0.0a2/OpenGLContext/resources/phongweights_frag.py +47 -0
  172. openglcontext-3.0.0a2/OpenGLContext/resources/pygame_icon_png.py +47 -0
  173. openglcontext-3.0.0a2/OpenGLContext/resources/red_arrow_right_png.py +50 -0
  174. openglcontext-3.0.0a2/OpenGLContext/resources/simpleshader_frag_txt.py +9 -0
  175. openglcontext-3.0.0a2/OpenGLContext/resources/simpleshader_vert_txt.py +10 -0
  176. openglcontext-3.0.0a2/OpenGLContext/scenegraph/appearance.py +107 -0
  177. openglcontext-3.0.0a2/OpenGLContext/scenegraph/arraygeometry.py +238 -0
  178. openglcontext-3.0.0a2/OpenGLContext/scenegraph/audio.py +632 -0
  179. openglcontext-3.0.0a2/OpenGLContext/scenegraph/background.py +108 -0
  180. openglcontext-3.0.0a2/OpenGLContext/scenegraph/basenodes.py +50 -0
  181. openglcontext-3.0.0a2/OpenGLContext/scenegraph/boundingvolume.py +494 -0
  182. openglcontext-3.0.0a2/OpenGLContext/scenegraph/box.py +180 -0
  183. openglcontext-3.0.0a2/OpenGLContext/scenegraph/cubebackground.py +207 -0
  184. openglcontext-3.0.0a2/OpenGLContext/scenegraph/extrusions.py +275 -0
  185. openglcontext-3.0.0a2/OpenGLContext/scenegraph/fog.py +123 -0
  186. openglcontext-3.0.0a2/OpenGLContext/scenegraph/gear.py +323 -0
  187. openglcontext-3.0.0a2/OpenGLContext/scenegraph/hdrbackground.py +384 -0
  188. openglcontext-3.0.0a2/OpenGLContext/scenegraph/ifscompiler.py +633 -0
  189. openglcontext-3.0.0a2/OpenGLContext/scenegraph/imagetexture.py +365 -0
  190. openglcontext-3.0.0a2/OpenGLContext/scenegraph/indexedfaceset.py +238 -0
  191. openglcontext-3.0.0a2/OpenGLContext/scenegraph/indexedlineset.py +418 -0
  192. openglcontext-3.0.0a2/OpenGLContext/scenegraph/indexedpolygons.py +422 -0
  193. openglcontext-3.0.0a2/OpenGLContext/scenegraph/inline.py +79 -0
  194. openglcontext-3.0.0a2/OpenGLContext/scenegraph/instancedgl.py +187 -0
  195. openglcontext-3.0.0a2/OpenGLContext/scenegraph/interpolators.py +122 -0
  196. openglcontext-3.0.0a2/OpenGLContext/scenegraph/light.py +213 -0
  197. openglcontext-3.0.0a2/OpenGLContext/scenegraph/material.py +96 -0
  198. openglcontext-3.0.0a2/OpenGLContext/scenegraph/material_fields.py +50 -0
  199. openglcontext-3.0.0a2/OpenGLContext/scenegraph/nurbs.py +637 -0
  200. openglcontext-3.0.0a2/OpenGLContext/scenegraph/nurbssampling.py +101 -0
  201. openglcontext-3.0.0a2/OpenGLContext/scenegraph/nurbstess.py +316 -0
  202. openglcontext-3.0.0a2/OpenGLContext/scenegraph/nurbstrim.py +54 -0
  203. openglcontext-3.0.0a2/OpenGLContext/scenegraph/particles.py +786 -0
  204. openglcontext-3.0.0a2/OpenGLContext/scenegraph/pbrmaterial.py +229 -0
  205. openglcontext-3.0.0a2/OpenGLContext/scenegraph/pbrmesh.py +558 -0
  206. openglcontext-3.0.0a2/OpenGLContext/scenegraph/physicsbody.py +72 -0
  207. openglcontext-3.0.0a2/OpenGLContext/scenegraph/pointset.py +257 -0
  208. openglcontext-3.0.0a2/OpenGLContext/scenegraph/polygon.py +166 -0
  209. openglcontext-3.0.0a2/OpenGLContext/scenegraph/polygonsort.py +119 -0
  210. openglcontext-3.0.0a2/OpenGLContext/scenegraph/polygontessellator.py +213 -0
  211. openglcontext-3.0.0a2/OpenGLContext/scenegraph/quadrics.py +494 -0
  212. openglcontext-3.0.0a2/OpenGLContext/scenegraph/shadergeometry.py +403 -0
  213. openglcontext-3.0.0a2/OpenGLContext/scenegraph/shaders.py +812 -0
  214. openglcontext-3.0.0a2/OpenGLContext/scenegraph/shape.py +243 -0
  215. openglcontext-3.0.0a2/OpenGLContext/scenegraph/spherebackground.py +462 -0
  216. openglcontext-3.0.0a2/OpenGLContext/scenegraph/switch.py +75 -0
  217. openglcontext-3.0.0a2/OpenGLContext/scenegraph/teapot.py +439 -0
  218. openglcontext-3.0.0a2/OpenGLContext/scenegraph/teapot_nurbs.py +291 -0
  219. openglcontext-3.0.0a2/OpenGLContext/scenegraph/teapot_nurbs_data.py +384 -0
  220. openglcontext-3.0.0a2/OpenGLContext/scenegraph/terrain/__init__.py +12 -0
  221. openglcontext-3.0.0a2/OpenGLContext/scenegraph/terrain/heightfield.py +172 -0
  222. openglcontext-3.0.0a2/OpenGLContext/scenegraph/terrain/splat.py +224 -0
  223. openglcontext-3.0.0a2/OpenGLContext/scenegraph/tessellationlod.py +97 -0
  224. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/_toolsfont.py +200 -0
  225. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/font.py +452 -0
  226. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fontprovider.py +193 -0
  227. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/__init__.py +75 -0
  228. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_10.py +133 -0
  229. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_12.py +158 -0
  230. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_14.py +176 -0
  231. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_16.py +204 -0
  232. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_18.py +222 -0
  233. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_20.py +244 -0
  234. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_24.py +294 -0
  235. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_28.py +339 -0
  236. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_32.py +390 -0
  237. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/glutfont.py +186 -0
  238. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/pygamefont.py +213 -0
  239. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/shaderfont.py +340 -0
  240. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/shadertext.py +433 -0
  241. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/text.py +75 -0
  242. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/toolsfont.py +819 -0
  243. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/ttfregistry.py +135 -0
  244. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/wglfont.py +228 -0
  245. openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/wxfont.py +314 -0
  246. openglcontext-3.0.0a2/OpenGLContext/scenegraph/texturetransform.py +66 -0
  247. openglcontext-3.0.0a2/OpenGLContext/scenegraph/tilesterrain.py +95 -0
  248. openglcontext-3.0.0a2/OpenGLContext/scenegraph/transform.py +180 -0
  249. openglcontext-3.0.0a2/OpenGLContext/scenegraph/vegetation/__init__.py +20 -0
  250. openglcontext-3.0.0a2/OpenGLContext/scenegraph/vegetation/base.py +96 -0
  251. openglcontext-3.0.0a2/OpenGLContext/scenegraph/vegetation/billboards.py +145 -0
  252. openglcontext-3.0.0a2/OpenGLContext/scenegraph/vegetation/clumps.py +260 -0
  253. openglcontext-3.0.0a2/OpenGLContext/scenegraph/vegetation/grid.py +112 -0
  254. openglcontext-3.0.0a2/OpenGLContext/scenegraph/vegetation/nearmesh.py +185 -0
  255. openglcontext-3.0.0a2/OpenGLContext/scenegraph/vertex.py +54 -0
  256. openglcontext-3.0.0a2/OpenGLContext/scenegraph/viewpoint.py +42 -0
  257. openglcontext-3.0.0a2/OpenGLContext/scenegraph/winding.py +49 -0
  258. openglcontext-3.0.0a2/OpenGLContext/shaders/_brdf_inc.glsl +124 -0
  259. openglcontext-3.0.0a2/OpenGLContext/shaders/_common_inc.glsl +24 -0
  260. openglcontext-3.0.0a2/OpenGLContext/shaders/_cubemap_inc.glsl +26 -0
  261. openglcontext-3.0.0a2/OpenGLContext/shaders/_lights_inc.glsl +32 -0
  262. openglcontext-3.0.0a2/OpenGLContext/shaders/_objectid_inc.glsl +14 -0
  263. openglcontext-3.0.0a2/OpenGLContext/shaders/_shadow_inc.glsl +254 -0
  264. openglcontext-3.0.0a2/OpenGLContext/shaders/_vrml97_lighting_inc.glsl +78 -0
  265. openglcontext-3.0.0a2/OpenGLContext/shaders/hdr_background.frag +32 -0
  266. openglcontext-3.0.0a2/OpenGLContext/shaders/hdr_background.vert +15 -0
  267. openglcontext-3.0.0a2/OpenGLContext/shaders/ibl_brdf.frag +78 -0
  268. openglcontext-3.0.0a2/OpenGLContext/shaders/ibl_env.frag +53 -0
  269. openglcontext-3.0.0a2/OpenGLContext/shaders/ibl_equirect.frag +19 -0
  270. openglcontext-3.0.0a2/OpenGLContext/shaders/ibl_fullscreen.vert +11 -0
  271. openglcontext-3.0.0a2/OpenGLContext/shaders/ibl_irradiance.frag +40 -0
  272. openglcontext-3.0.0a2/OpenGLContext/shaders/ibl_prefilter.frag +56 -0
  273. openglcontext-3.0.0a2/OpenGLContext/shaders/particle.frag +42 -0
  274. openglcontext-3.0.0a2/OpenGLContext/shaders/particle.vert +52 -0
  275. openglcontext-3.0.0a2/OpenGLContext/shaders/pbr.frag +906 -0
  276. openglcontext-3.0.0a2/OpenGLContext/shaders/pbr.vert +70 -0
  277. openglcontext-3.0.0a2/OpenGLContext/shaders/shadow_depth.frag +4 -0
  278. openglcontext-3.0.0a2/OpenGLContext/shaders/shadow_depth.vert +18 -0
  279. openglcontext-3.0.0a2/OpenGLContext/shaders/terrain_splat.frag +80 -0
  280. openglcontext-3.0.0a2/OpenGLContext/shaders/terrain_splat.vert +16 -0
  281. openglcontext-3.0.0a2/OpenGLContext/shaders/veg_billboard.frag +35 -0
  282. openglcontext-3.0.0a2/OpenGLContext/shaders/veg_billboard.vert +17 -0
  283. openglcontext-3.0.0a2/OpenGLContext/shaders/veg_clump.frag +27 -0
  284. openglcontext-3.0.0a2/OpenGLContext/shaders/veg_mesh.frag +26 -0
  285. openglcontext-3.0.0a2/OpenGLContext/shaders/veg_mesh.vert +17 -0
  286. openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_background.frag +17 -0
  287. openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_background.vert +24 -0
  288. openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_lighting.frag +111 -0
  289. openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_lighting.vert +50 -0
  290. openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_line.frag +23 -0
  291. openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_line.vert +24 -0
  292. openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_point.frag +36 -0
  293. openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_point.vert +21 -0
  294. openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_unlit.frag +59 -0
  295. openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_unlit.vert +18 -0
  296. openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_vertex_color.frag +85 -0
  297. openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_vertex_color.vert +34 -0
  298. openglcontext-3.0.0a2/OpenGLContext/stalltrace.py +637 -0
  299. openglcontext-3.0.0a2/OpenGLContext/testing/__init__.py +67 -0
  300. openglcontext-3.0.0a2/OpenGLContext/testing/display.py +30 -0
  301. openglcontext-3.0.0a2/OpenGLContext/testing/event_injector.py +564 -0
  302. openglcontext-3.0.0a2/OpenGLContext/testing/framebuffer_comparison.py +842 -0
  303. openglcontext-3.0.0a2/OpenGLContext/testing/gl_env.py +39 -0
  304. openglcontext-3.0.0a2/OpenGLContext/testing/paths.py +23 -0
  305. openglcontext-3.0.0a2/OpenGLContext/testing/process_exit.py +30 -0
  306. openglcontext-3.0.0a2/OpenGLContext/testing/report_generator.py +594 -0
  307. openglcontext-3.0.0a2/OpenGLContext/testing/subprocess_runner.py +411 -0
  308. openglcontext-3.0.0a2/OpenGLContext/testingcontext.py +36 -0
  309. openglcontext-3.0.0a2/OpenGLContext/tests/test_atlas.py +62 -0
  310. openglcontext-3.0.0a2/OpenGLContext/tests/test_configs.py +27 -0
  311. openglcontext-3.0.0a2/OpenGLContext/tests/test_polygonsort.py +45 -0
  312. openglcontext-3.0.0a2/OpenGLContext/tests/test_utilities.py +84 -0
  313. openglcontext-3.0.0a2/OpenGLContext/tests/test_viewplatform.py +39 -0
  314. openglcontext-3.0.0a2/OpenGLContext/texture.py +449 -0
  315. openglcontext-3.0.0a2/OpenGLContext/texturecache.py +37 -0
  316. openglcontext-3.0.0a2/OpenGLContext/triangleutilities.py +89 -0
  317. openglcontext-3.0.0a2/OpenGLContext/ui/__init__.py +39 -0
  318. openglcontext-3.0.0a2/OpenGLContext/ui/bindings.py +243 -0
  319. openglcontext-3.0.0a2/OpenGLContext/ui/console.py +339 -0
  320. openglcontext-3.0.0a2/OpenGLContext/ui/debugoverlay.py +519 -0
  321. openglcontext-3.0.0a2/OpenGLContext/ui/dialogs.py +124 -0
  322. openglcontext-3.0.0a2/OpenGLContext/ui/draw.py +617 -0
  323. openglcontext-3.0.0a2/OpenGLContext/ui/gallery.py +425 -0
  324. openglcontext-3.0.0a2/OpenGLContext/ui/generate.py +195 -0
  325. openglcontext-3.0.0a2/OpenGLContext/ui/geometry.py +88 -0
  326. openglcontext-3.0.0a2/OpenGLContext/ui/hudwidgets.py +1053 -0
  327. openglcontext-3.0.0a2/OpenGLContext/ui/layout.py +263 -0
  328. openglcontext-3.0.0a2/OpenGLContext/ui/metrics.py +218 -0
  329. openglcontext-3.0.0a2/OpenGLContext/ui/overlay.py +415 -0
  330. openglcontext-3.0.0a2/OpenGLContext/ui/panel.py +459 -0
  331. openglcontext-3.0.0a2/OpenGLContext/ui/pictures.py +261 -0
  332. openglcontext-3.0.0a2/OpenGLContext/ui/screen.py +177 -0
  333. openglcontext-3.0.0a2/OpenGLContext/ui/scroll.py +297 -0
  334. openglcontext-3.0.0a2/OpenGLContext/ui/session.py +329 -0
  335. openglcontext-3.0.0a2/OpenGLContext/ui/settings.py +273 -0
  336. openglcontext-3.0.0a2/OpenGLContext/ui/skin.py +330 -0
  337. openglcontext-3.0.0a2/OpenGLContext/ui/widgets.py +1199 -0
  338. openglcontext-3.0.0a2/OpenGLContext/userpaths.py +48 -0
  339. openglcontext-3.0.0a2/OpenGLContext/utilities.py +94 -0
  340. openglcontext-3.0.0a2/OpenGLContext/viewer/__init__.py +60 -0
  341. openglcontext-3.0.0a2/OpenGLContext/viewer/adapters/__init__.py +150 -0
  342. openglcontext-3.0.0a2/OpenGLContext/viewer/adapters/base.py +157 -0
  343. openglcontext-3.0.0a2/OpenGLContext/viewer/adapters/gltf.py +31 -0
  344. openglcontext-3.0.0a2/OpenGLContext/viewer/adapters/obj.py +20 -0
  345. openglcontext-3.0.0a2/OpenGLContext/viewer/adapters/scenegraph.py +71 -0
  346. openglcontext-3.0.0a2/OpenGLContext/viewer/adapters/tiles.py +296 -0
  347. openglcontext-3.0.0a2/OpenGLContext/viewer/adapters/vrml.py +25 -0
  348. openglcontext-3.0.0a2/OpenGLContext/viewer/asyncscene.py +117 -0
  349. openglcontext-3.0.0a2/OpenGLContext/viewer/caption.py +126 -0
  350. openglcontext-3.0.0a2/OpenGLContext/viewer/capture.py +77 -0
  351. openglcontext-3.0.0a2/OpenGLContext/viewer/debug.py +78 -0
  352. openglcontext-3.0.0a2/OpenGLContext/viewer/environment.py +131 -0
  353. openglcontext-3.0.0a2/OpenGLContext/viewer/framing.py +111 -0
  354. openglcontext-3.0.0a2/OpenGLContext/viewer/library.py +235 -0
  355. openglcontext-3.0.0a2/OpenGLContext/viewer/menu.py +218 -0
  356. openglcontext-3.0.0a2/OpenGLContext/viewer/options.py +150 -0
  357. openglcontext-3.0.0a2/OpenGLContext/viewer/overlay.py +63 -0
  358. openglcontext-3.0.0a2/OpenGLContext/viewer/sceneviewer.py +1056 -0
  359. openglcontext-3.0.0a2/OpenGLContext/viewer/screens.py +172 -0
  360. openglcontext-3.0.0a2/OpenGLContext/viewer/source.py +56 -0
  361. openglcontext-3.0.0a2/OpenGLContext/visitor.py +68 -0
  362. openglcontext-3.0.0a2/OpenGLContext/vrmlcontext.py +72 -0
  363. openglcontext-3.0.0a2/OpenGLContext/wxcontext.py +424 -0
  364. openglcontext-3.0.0a2/OpenGLContext.egg-info/PKG-INFO +650 -0
  365. openglcontext-3.0.0a2/OpenGLContext.egg-info/SOURCES.txt +696 -0
  366. openglcontext-3.0.0a2/OpenGLContext.egg-info/entry_points.txt +11 -0
  367. openglcontext-3.0.0a2/OpenGLContext.egg-info/requires.txt +44 -0
  368. openglcontext-3.0.0a2/PKG-INFO +650 -0
  369. openglcontext-3.0.0a2/README.md +588 -0
  370. openglcontext-3.0.0a2/docs/audio.html +769 -0
  371. openglcontext-3.0.0a2/docs/documentation.html +321 -0
  372. openglcontext-3.0.0a2/docs/eventmodel.html +192 -0
  373. openglcontext-3.0.0a2/docs/flat.html +161 -0
  374. openglcontext-3.0.0a2/docs/gltf.html +435 -0
  375. openglcontext-3.0.0a2/docs/hud.html +617 -0
  376. openglcontext-3.0.0a2/docs/images/beautiful-game.jpg +0 -0
  377. openglcontext-3.0.0a2/docs/images/flighthelmet.jpg +0 -0
  378. openglcontext-3.0.0a2/docs/images/forest-instancing.jpg +0 -0
  379. openglcontext-3.0.0a2/docs/images/shadow_demo.jpg +0 -0
  380. openglcontext-3.0.0a2/docs/images/toronto-3dtiles.jpg +0 -0
  381. openglcontext-3.0.0a2/docs/index.html +125 -0
  382. openglcontext-3.0.0a2/docs/instancing.html +320 -0
  383. openglcontext-3.0.0a2/docs/navigation.html +331 -0
  384. openglcontext-3.0.0a2/docs/numeric_arrays.html +372 -0
  385. openglcontext-3.0.0a2/docs/overlayui.html +636 -0
  386. openglcontext-3.0.0a2/docs/particles.html +368 -0
  387. openglcontext-3.0.0a2/docs/pbr.html +575 -0
  388. openglcontext-3.0.0a2/docs/physics.html +409 -0
  389. openglcontext-3.0.0a2/docs/renderpasses.html +275 -0
  390. openglcontext-3.0.0a2/docs/shadows.html +455 -0
  391. openglcontext-3.0.0a2/docs/structure.html +316 -0
  392. openglcontext-3.0.0a2/docs/style/modern.css +126 -0
  393. openglcontext-3.0.0a2/docs/style/tutorial.css +54 -0
  394. openglcontext-3.0.0a2/docs/terrain.html +517 -0
  395. openglcontext-3.0.0a2/docs/text.html +221 -0
  396. openglcontext-3.0.0a2/docs/ubershader.html +370 -0
  397. openglcontext-3.0.0a2/docs/viewer.html +423 -0
  398. openglcontext-3.0.0a2/docs/vrml97.html +495 -0
  399. openglcontext-3.0.0a2/pyproject.toml +167 -0
  400. openglcontext-3.0.0a2/setup.cfg +4 -0
  401. openglcontext-3.0.0a2/tests/_bitmap_font.py +98 -0
  402. openglcontext-3.0.0a2/tests/_ceramic_textures.py +79 -0
  403. openglcontext-3.0.0a2/tests/_gltf_toggle_driver.py +137 -0
  404. openglcontext-3.0.0a2/tests/addnodes.py +77 -0
  405. openglcontext-3.0.0a2/tests/arbocclusionquery.py +107 -0
  406. openglcontext-3.0.0a2/tests/arbpointparameters.py +91 -0
  407. openglcontext-3.0.0a2/tests/arbsync.py +55 -0
  408. openglcontext-3.0.0a2/tests/arbwindowpos.py +117 -0
  409. openglcontext-3.0.0a2/tests/audio_spatial.py +244 -0
  410. openglcontext-3.0.0a2/tests/backgroundobject.py +29 -0
  411. openglcontext-3.0.0a2/tests/conftest.py +465 -0
  412. openglcontext-3.0.0a2/tests/cubeback_rot.py +85 -0
  413. openglcontext-3.0.0a2/tests/cubebackgroundobject.py +53 -0
  414. openglcontext-3.0.0a2/tests/dek_surf.py +79 -0
  415. openglcontext-3.0.0a2/tests/dek_texturesurf.py +122 -0
  416. openglcontext-3.0.0a2/tests/diag_examine.py +121 -0
  417. openglcontext-3.0.0a2/tests/diag_live.py +87 -0
  418. openglcontext-3.0.0a2/tests/feedback_mode.py +57 -0
  419. openglcontext-3.0.0a2/tests/frust_test_module.py +39 -0
  420. openglcontext-3.0.0a2/tests/gearobject.py +209 -0
  421. openglcontext-3.0.0a2/tests/geometry.py +168 -0
  422. openglcontext-3.0.0a2/tests/getteximage.py +62 -0
  423. openglcontext-3.0.0a2/tests/glarrayelement.py +25 -0
  424. openglcontext-3.0.0a2/tests/gldrawarrays.py +21 -0
  425. openglcontext-3.0.0a2/tests/gldrawarrays_string.py +22 -0
  426. openglcontext-3.0.0a2/tests/gldrawelements.py +23 -0
  427. openglcontext-3.0.0a2/tests/gldrawelements_list.py +59 -0
  428. openglcontext-3.0.0a2/tests/gldrawelements_string.py +30 -0
  429. openglcontext-3.0.0a2/tests/gldrawpixels.py +92 -0
  430. openglcontext-3.0.0a2/tests/gldrawpixelssynth.py +72 -0
  431. openglcontext-3.0.0a2/tests/glelathe.py +128 -0
  432. openglcontext-3.0.0a2/tests/glget.py +334 -0
  433. openglcontext-3.0.0a2/tests/glget_with_fonts.py +360 -0
  434. openglcontext-3.0.0a2/tests/glgetlight.py +29 -0
  435. openglcontext-3.0.0a2/tests/glgetmaterial.py +24 -0
  436. openglcontext-3.0.0a2/tests/glgetpixelmap.py +28 -0
  437. openglcontext-3.0.0a2/tests/glgetpolygonstipple.py +18 -0
  438. openglcontext-3.0.0a2/tests/glhistogram.py +87 -0
  439. openglcontext-3.0.0a2/tests/glinterleavedarrays.py +52 -0
  440. openglcontext-3.0.0a2/tests/glprint.py +142 -0
  441. openglcontext-3.0.0a2/tests/glu_tess.py +74 -0
  442. openglcontext-3.0.0a2/tests/glu_tess2.py +79 -0
  443. openglcontext-3.0.0a2/tests/glugetstring.py +14 -0
  444. openglcontext-3.0.0a2/tests/glut_bitmap_font.py +13 -0
  445. openglcontext-3.0.0a2/tests/glut_font.py +39 -0
  446. openglcontext-3.0.0a2/tests/glut_fullscreen.py +63 -0
  447. openglcontext-3.0.0a2/tests/glutbitmapcharacter.py +50 -0
  448. openglcontext-3.0.0a2/tests/glutmousewheel.py +43 -0
  449. openglcontext-3.0.0a2/tests/glvertex.py +20 -0
  450. openglcontext-3.0.0a2/tests/heightmap.py +106 -0
  451. openglcontext-3.0.0a2/tests/indexedfaceset_lit_npf.py +241 -0
  452. openglcontext-3.0.0a2/tests/indexedfaceset_lit_npv.py +105 -0
  453. openglcontext-3.0.0a2/tests/indexedlinesetobject.py +54 -0
  454. openglcontext-3.0.0a2/tests/lightobject.py +224 -0
  455. openglcontext-3.0.0a2/tests/line_stipple.py +44 -0
  456. openglcontext-3.0.0a2/tests/lod_demo.py +139 -0
  457. openglcontext-3.0.0a2/tests/molehill.py +153 -0
  458. openglcontext-3.0.0a2/tests/mouseover.py +54 -0
  459. openglcontext-3.0.0a2/tests/multitexture_1.py +81 -0
  460. openglcontext-3.0.0a2/tests/nehe2.py +93 -0
  461. openglcontext-3.0.0a2/tests/nehe3.py +75 -0
  462. openglcontext-3.0.0a2/tests/nehe4.py +99 -0
  463. openglcontext-3.0.0a2/tests/nehe5.py +130 -0
  464. openglcontext-3.0.0a2/tests/nehe6.py +149 -0
  465. openglcontext-3.0.0a2/tests/nehe6_compressed.py +119 -0
  466. openglcontext-3.0.0a2/tests/nehe6_convolve.py +210 -0
  467. openglcontext-3.0.0a2/tests/nehe6_multi.py +193 -0
  468. openglcontext-3.0.0a2/tests/nehe6_timer.py +160 -0
  469. openglcontext-3.0.0a2/tests/nehe7.py +240 -0
  470. openglcontext-3.0.0a2/tests/nehe8.py +249 -0
  471. openglcontext-3.0.0a2/tests/node_modify.py +40 -0
  472. openglcontext-3.0.0a2/tests/nurbsobject.py +244 -0
  473. openglcontext-3.0.0a2/tests/particles_effects.py +106 -0
  474. openglcontext-3.0.0a2/tests/particles_simple.py +248 -0
  475. openglcontext-3.0.0a2/tests/pbodemo.py +56 -0
  476. openglcontext-3.0.0a2/tests/physics_bounce.py +60 -0
  477. openglcontext-3.0.0a2/tests/physics_cook_view.py +90 -0
  478. openglcontext-3.0.0a2/tests/physics_friction.py +69 -0
  479. openglcontext-3.0.0a2/tests/physics_gravity_zones.py +66 -0
  480. openglcontext-3.0.0a2/tests/physics_joints.py +77 -0
  481. openglcontext-3.0.0a2/tests/physics_navigate.py +171 -0
  482. openglcontext-3.0.0a2/tests/physics_room_drop.py +103 -0
  483. openglcontext-3.0.0a2/tests/physics_stress.py +128 -0
  484. openglcontext-3.0.0a2/tests/physics_triggers.py +68 -0
  485. openglcontext-3.0.0a2/tests/pimbackground_BK.jpg +0 -0
  486. openglcontext-3.0.0a2/tests/pimbackground_DN.jpg +0 -0
  487. openglcontext-3.0.0a2/tests/pimbackground_FR.jpg +0 -0
  488. openglcontext-3.0.0a2/tests/pimbackground_LF.jpg +0 -0
  489. openglcontext-3.0.0a2/tests/pimbackground_RT.jpg +0 -0
  490. openglcontext-3.0.0a2/tests/pimbackground_UP.jpg +0 -0
  491. openglcontext-3.0.0a2/tests/point_and_click.py +71 -0
  492. openglcontext-3.0.0a2/tests/pointsetobject.py +64 -0
  493. openglcontext-3.0.0a2/tests/pygame_textureatlas.py +169 -0
  494. openglcontext-3.0.0a2/tests/readpixelsleak.py +99 -0
  495. openglcontext-3.0.0a2/tests/redbook_alpha.py +106 -0
  496. openglcontext-3.0.0a2/tests/redbook_alpha3D.py +149 -0
  497. openglcontext-3.0.0a2/tests/redbook_surface.py +113 -0
  498. openglcontext-3.0.0a2/tests/redbook_surface_cb.py +166 -0
  499. openglcontext-3.0.0a2/tests/redbook_trim.py +153 -0
  500. openglcontext-3.0.0a2/tests/reference_images/teapot_regression.png +0 -0
  501. openglcontext-3.0.0a2/tests/run_core_tests.py +115 -0
  502. openglcontext-3.0.0a2/tests/run_teapot_regression.py +149 -0
  503. openglcontext-3.0.0a2/tests/runalltests.py +123 -0
  504. openglcontext-3.0.0a2/tests/saveimage.py +170 -0
  505. openglcontext-3.0.0a2/tests/savepostscript.py +69 -0
  506. openglcontext-3.0.0a2/tests/selectrendermode.py +83 -0
  507. openglcontext-3.0.0a2/tests/selectrendermode_threads.py +89 -0
  508. openglcontext-3.0.0a2/tests/shader_10.py +346 -0
  509. openglcontext-3.0.0a2/tests/shader_11.py +419 -0
  510. openglcontext-3.0.0a2/tests/shader_2.py +199 -0
  511. openglcontext-3.0.0a2/tests/shader_4_subset.py +85 -0
  512. openglcontext-3.0.0a2/tests/shader_5.py +327 -0
  513. openglcontext-3.0.0a2/tests/shader_6.py +327 -0
  514. openglcontext-3.0.0a2/tests/shader_7.py +341 -0
  515. openglcontext-3.0.0a2/tests/shader_8.py +259 -0
  516. openglcontext-3.0.0a2/tests/shader_9.py +391 -0
  517. openglcontext-3.0.0a2/tests/shader_binary.py +163 -0
  518. openglcontext-3.0.0a2/tests/shader_instanced.py +341 -0
  519. openglcontext-3.0.0a2/tests/shader_instanced_mapped.py +298 -0
  520. openglcontext-3.0.0a2/tests/shader_instanced_modern.py +402 -0
  521. openglcontext-3.0.0a2/tests/shader_ng.py +250 -0
  522. openglcontext-3.0.0a2/tests/shader_sphere.py +125 -0
  523. openglcontext-3.0.0a2/tests/shadergeometry.py +123 -0
  524. openglcontext-3.0.0a2/tests/shaderobjects.py +241 -0
  525. openglcontext-3.0.0a2/tests/shaders.py +154 -0
  526. openglcontext-3.0.0a2/tests/shadow_1.py +699 -0
  527. openglcontext-3.0.0a2/tests/shadow_2.py +180 -0
  528. openglcontext-3.0.0a2/tests/shadow_demo.py +174 -0
  529. openglcontext-3.0.0a2/tests/shadow_spot.py +103 -0
  530. openglcontext-3.0.0a2/tests/solid_font.py +104 -0
  531. openglcontext-3.0.0a2/tests/spherebackgroundobject.py +84 -0
  532. openglcontext-3.0.0a2/tests/starfield.py +58 -0
  533. openglcontext-3.0.0a2/tests/teapot_ceramic.py +89 -0
  534. openglcontext-3.0.0a2/tests/teapot_nurbs.py +61 -0
  535. openglcontext-3.0.0a2/tests/test_all_scripts.py +1019 -0
  536. openglcontext-3.0.0a2/tests/test_gltf_demo_background.py +41 -0
  537. openglcontext-3.0.0a2/tests/test_gltf_demo_model_selection.py +41 -0
  538. openglcontext-3.0.0a2/tests/tiles_landscape.py +103 -0
  539. openglcontext-3.0.0a2/tests/tiles_terrain.py +76 -0
  540. openglcontext-3.0.0a2/tests/tiles_vegetation.py +60 -0
  541. openglcontext-3.0.0a2/tests/tiles_walk.py +143 -0
  542. openglcontext-3.0.0a2/tests/transforms_1.py +311 -0
  543. openglcontext-3.0.0a2/tests/transparentsorted.py +252 -0
  544. openglcontext-3.0.0a2/tests/wglpixelformatarb.py +111 -0
  545. openglcontext-3.0.0a2/tests/wrls/instanced_lattice.wrl +227 -0
  546. openglcontext-3.0.0a2/tests/wx_multiple_contexts.py +87 -0
  547. openglcontext-3.0.0a2/tests/wx_with_controls.py +79 -0
  548. OpenGLContext-2.3.0b1/MANIFEST.in +0 -44
  549. OpenGLContext-2.3.0b1/OpenGLContext/__init__.py +0 -136
  550. OpenGLContext-2.3.0b1/OpenGLContext/atlas.py +0 -300
  551. OpenGLContext-2.3.0b1/OpenGLContext/bin/choosecontext.py +0 -224
  552. OpenGLContext-2.3.0b1/OpenGLContext/bin/choosefonts.py +0 -188
  553. OpenGLContext-2.3.0b1/OpenGLContext/bin/gltest.py +0 -95
  554. OpenGLContext-2.3.0b1/OpenGLContext/bin/keyboardevents.py +0 -93
  555. OpenGLContext-2.3.0b1/OpenGLContext/bin/lorentz.py +0 -108
  556. OpenGLContext-2.3.0b1/OpenGLContext/bin/profile_view.py +0 -58
  557. OpenGLContext-2.3.0b1/OpenGLContext/bin/visualshell.py +0 -160
  558. OpenGLContext-2.3.0b1/OpenGLContext/bin/vrml_view.py +0 -37
  559. OpenGLContext-2.3.0b1/OpenGLContext/bin/vrml_view_shadow.py +0 -24
  560. OpenGLContext-2.3.0b1/OpenGLContext/browser/__init__.py +0 -2
  561. OpenGLContext-2.3.0b1/OpenGLContext/browser/browsercontext.py +0 -62
  562. OpenGLContext-2.3.0b1/OpenGLContext/browser/crayola.py +0 -9
  563. OpenGLContext-2.3.0b1/OpenGLContext/browser/default_world.wrl +0 -18
  564. OpenGLContext-2.3.0b1/OpenGLContext/browser/defaultbindings.py +0 -71
  565. OpenGLContext-2.3.0b1/OpenGLContext/browser/geometry.py +0 -174
  566. OpenGLContext-2.3.0b1/OpenGLContext/browser/homedirectory.py +0 -76
  567. OpenGLContext-2.3.0b1/OpenGLContext/browser/interactivity.py +0 -57
  568. OpenGLContext-2.3.0b1/OpenGLContext/browser/nodes.py +0 -128
  569. OpenGLContext-2.3.0b1/OpenGLContext/browser/passes.py +0 -68
  570. OpenGLContext-2.3.0b1/OpenGLContext/browser/proxy.py +0 -57
  571. OpenGLContext-2.3.0b1/OpenGLContext/browser/vector.py +0 -103
  572. OpenGLContext-2.3.0b1/OpenGLContext/browser/visual.py +0 -295
  573. OpenGLContext-2.3.0b1/OpenGLContext/browser/vpcurve.py +0 -107
  574. OpenGLContext-2.3.0b1/OpenGLContext/context.py +0 -936
  575. OpenGLContext-2.3.0b1/OpenGLContext/contextdefinition.py +0 -48
  576. OpenGLContext-2.3.0b1/OpenGLContext/debug/bufferimage.py +0 -80
  577. OpenGLContext-2.3.0b1/OpenGLContext/debug/leaks.py +0 -13
  578. OpenGLContext-2.3.0b1/OpenGLContext/debug/logs.py +0 -15
  579. OpenGLContext-2.3.0b1/OpenGLContext/displaylist.py +0 -59
  580. OpenGLContext-2.3.0b1/OpenGLContext/doinchildmatrix.py +0 -34
  581. OpenGLContext-2.3.0b1/OpenGLContext/events/default_config.py +0 -29
  582. OpenGLContext-2.3.0b1/OpenGLContext/events/event.py +0 -54
  583. OpenGLContext-2.3.0b1/OpenGLContext/events/eventhandlermixin.py +0 -157
  584. OpenGLContext-2.3.0b1/OpenGLContext/events/eventmanager.py +0 -245
  585. OpenGLContext-2.3.0b1/OpenGLContext/events/fxevents.py +0 -90
  586. OpenGLContext-2.3.0b1/OpenGLContext/events/glutevents.py +0 -151
  587. OpenGLContext-2.3.0b1/OpenGLContext/events/internaltime.py +0 -161
  588. OpenGLContext-2.3.0b1/OpenGLContext/events/keyboardevents.py +0 -136
  589. OpenGLContext-2.3.0b1/OpenGLContext/events/mouseevents.py +0 -421
  590. OpenGLContext-2.3.0b1/OpenGLContext/events/pygameevents.py +0 -136
  591. OpenGLContext-2.3.0b1/OpenGLContext/events/timeeventgeneratormanager.py +0 -40
  592. OpenGLContext-2.3.0b1/OpenGLContext/events/timeevents.py +0 -143
  593. OpenGLContext-2.3.0b1/OpenGLContext/events/timer.py +0 -170
  594. OpenGLContext-2.3.0b1/OpenGLContext/events/tkevents.py +0 -172
  595. OpenGLContext-2.3.0b1/OpenGLContext/events/wxevents.py +0 -182
  596. OpenGLContext-2.3.0b1/OpenGLContext/extensionmanager.py +0 -148
  597. OpenGLContext-2.3.0b1/OpenGLContext/framecounter.py +0 -78
  598. OpenGLContext-2.3.0b1/OpenGLContext/frustum.py +0 -128
  599. OpenGLContext-2.3.0b1/OpenGLContext/glutcontext.py +0 -176
  600. OpenGLContext-2.3.0b1/OpenGLContext/glutvrmlcontext.py +0 -27
  601. OpenGLContext-2.3.0b1/OpenGLContext/loaders/base.py +0 -72
  602. OpenGLContext-2.3.0b1/OpenGLContext/loaders/gzpickle.py +0 -57
  603. OpenGLContext-2.3.0b1/OpenGLContext/loaders/loader.py +0 -170
  604. OpenGLContext-2.3.0b1/OpenGLContext/loaders/obj.py +0 -293
  605. OpenGLContext-2.3.0b1/OpenGLContext/loaders/vrml2pklgz.py +0 -28
  606. OpenGLContext-2.3.0b1/OpenGLContext/loaders/vrml97.py +0 -117
  607. OpenGLContext-2.3.0b1/OpenGLContext/move/direct.py +0 -158
  608. OpenGLContext-2.3.0b1/OpenGLContext/move/examinemanager.py +0 -89
  609. OpenGLContext-2.3.0b1/OpenGLContext/move/fps.py +0 -14
  610. OpenGLContext-2.3.0b1/OpenGLContext/move/movementmanager.py +0 -59
  611. OpenGLContext-2.3.0b1/OpenGLContext/move/smooth.py +0 -69
  612. OpenGLContext-2.3.0b1/OpenGLContext/move/trackball.py +0 -92
  613. OpenGLContext-2.3.0b1/OpenGLContext/move/viewplatform.py +0 -263
  614. OpenGLContext-2.3.0b1/OpenGLContext/move/viewplatformmixin.py +0 -121
  615. OpenGLContext-2.3.0b1/OpenGLContext/passes/_flat.py +0 -599
  616. OpenGLContext-2.3.0b1/OpenGLContext/passes/flat.py +0 -5
  617. OpenGLContext-2.3.0b1/OpenGLContext/passes/flatcompat.py +0 -337
  618. OpenGLContext-2.3.0b1/OpenGLContext/passes/flatcore.py +0 -321
  619. OpenGLContext-2.3.0b1/OpenGLContext/passes/renderpass.py +0 -867
  620. OpenGLContext-2.3.0b1/OpenGLContext/passes/rendervisitor.py +0 -420
  621. OpenGLContext-2.3.0b1/OpenGLContext/plugins.py +0 -49
  622. OpenGLContext-2.3.0b1/OpenGLContext/pygamecontext.py +0 -153
  623. OpenGLContext-2.3.0b1/OpenGLContext/pygameinteractivecontext.py +0 -39
  624. OpenGLContext-2.3.0b1/OpenGLContext/quaternion.py +0 -197
  625. OpenGLContext-2.3.0b1/OpenGLContext/resources/__init__.py +0 -36
  626. OpenGLContext-2.3.0b1/OpenGLContext/resources/available_contexts_txt.py +0 -9
  627. OpenGLContext-2.3.0b1/OpenGLContext/resources/context_icon_png.py +0 -46
  628. OpenGLContext-2.3.0b1/OpenGLContext/resources/context_icon_small_png.py +0 -21
  629. OpenGLContext-2.3.0b1/OpenGLContext/resources/directlight_frag.py +0 -16
  630. OpenGLContext-2.3.0b1/OpenGLContext/resources/disk_icon_hi_png.py +0 -14
  631. OpenGLContext-2.3.0b1/OpenGLContext/resources/disk_icon_png.py +0 -15
  632. OpenGLContext-2.3.0b1/OpenGLContext/resources/green_arrow_right_png.py +0 -47
  633. OpenGLContext-2.3.0b1/OpenGLContext/resources/legacy_lighting_vert_txt.py +0 -18
  634. OpenGLContext-2.3.0b1/OpenGLContext/resources/lights_vert_txt.py +0 -23
  635. OpenGLContext-2.3.0b1/OpenGLContext/resources/phongprecalc_vert.py +0 -30
  636. OpenGLContext-2.3.0b1/OpenGLContext/resources/phongweights_frag.py +0 -47
  637. OpenGLContext-2.3.0b1/OpenGLContext/resources/pygame_icon_png.py +0 -47
  638. OpenGLContext-2.3.0b1/OpenGLContext/resources/red_arrow_right_png.py +0 -50
  639. OpenGLContext-2.3.0b1/OpenGLContext/resources/simpleshader_frag_txt.py +0 -9
  640. OpenGLContext-2.3.0b1/OpenGLContext/resources/simpleshader_vert_txt.py +0 -10
  641. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/appearance.py +0 -101
  642. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/arraygeometry.py +0 -218
  643. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/background.py +0 -82
  644. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/basenodes.py +0 -45
  645. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/boundingvolume.py +0 -416
  646. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/box.py +0 -140
  647. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/cubebackground.py +0 -195
  648. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/extrusions.py +0 -216
  649. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/gear.py +0 -172
  650. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/imagetexture.py +0 -344
  651. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/indexedfaceset.py +0 -795
  652. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/indexedlineset.py +0 -192
  653. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/indexedpolygons.py +0 -330
  654. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/inline.py +0 -79
  655. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/interpolators.py +0 -110
  656. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/light.py +0 -175
  657. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/material.py +0 -99
  658. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/nurbs.py +0 -391
  659. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/pointset.py +0 -96
  660. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/polygon.py +0 -167
  661. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/polygonsort.py +0 -122
  662. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/polygontessellator.py +0 -213
  663. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/quadrics.py +0 -329
  664. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/shaders.py +0 -682
  665. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/shape.py +0 -160
  666. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/spherebackground.py +0 -279
  667. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/switch.py +0 -75
  668. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/teapot.py +0 -51
  669. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/text/_toolsfont.py +0 -199
  670. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/text/font.py +0 -450
  671. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/text/fontprovider.py +0 -156
  672. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/text/glutfont.py +0 -171
  673. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/text/pygamefont.py +0 -213
  674. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/text/text.py +0 -68
  675. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/text/toolsfont.py +0 -417
  676. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/text/ttfregistry.py +0 -131
  677. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/text/wglfont.py +0 -224
  678. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/text/wxfont.py +0 -287
  679. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/texturetransform.py +0 -66
  680. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/transform.py +0 -118
  681. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/vertex.py +0 -54
  682. OpenGLContext-2.3.0b1/OpenGLContext/scenegraph/viewpoint.py +0 -34
  683. OpenGLContext-2.3.0b1/OpenGLContext/shadow/__init__.py +0 -29
  684. OpenGLContext-2.3.0b1/OpenGLContext/shadow/edgeset.py +0 -240
  685. OpenGLContext-2.3.0b1/OpenGLContext/shadow/passes.py +0 -405
  686. OpenGLContext-2.3.0b1/OpenGLContext/shadow/pinfperspective.py +0 -29
  687. OpenGLContext-2.3.0b1/OpenGLContext/shadow/shadowcontext.py +0 -63
  688. OpenGLContext-2.3.0b1/OpenGLContext/shadow/volume.py +0 -332
  689. OpenGLContext-2.3.0b1/OpenGLContext/testingcontext.py +0 -35
  690. OpenGLContext-2.3.0b1/OpenGLContext/texture.py +0 -350
  691. OpenGLContext-2.3.0b1/OpenGLContext/texturecache.py +0 -37
  692. OpenGLContext-2.3.0b1/OpenGLContext/triangleutilities.py +0 -89
  693. OpenGLContext-2.3.0b1/OpenGLContext/utilities.py +0 -91
  694. OpenGLContext-2.3.0b1/OpenGLContext/visitor.py +0 -389
  695. OpenGLContext-2.3.0b1/OpenGLContext/vrmlcontext.py +0 -60
  696. OpenGLContext-2.3.0b1/OpenGLContext/wxcontext.py +0 -315
  697. OpenGLContext-2.3.0b1/OpenGLContext.egg-info/PKG-INFO +0 -31
  698. OpenGLContext-2.3.0b1/OpenGLContext.egg-info/SOURCES.txt +0 -427
  699. OpenGLContext-2.3.0b1/PKG-INFO +0 -31
  700. OpenGLContext-2.3.0b1/docs/documentation.html +0 -175
  701. OpenGLContext-2.3.0b1/docs/eventmodel.html +0 -159
  702. OpenGLContext-2.3.0b1/docs/index.html +0 -236
  703. OpenGLContext-2.3.0b1/docs/numeric_arrays.html +0 -394
  704. OpenGLContext-2.3.0b1/docs/renderflat.html +0 -174
  705. OpenGLContext-2.3.0b1/docs/renderprocess.html +0 -531
  706. OpenGLContext-2.3.0b1/docs/structure.html +0 -107
  707. OpenGLContext-2.3.0b1/docs/style/tutorial.css +0 -59
  708. OpenGLContext-2.3.0b1/docs/text.html +0 -200
  709. OpenGLContext-2.3.0b1/docs/vrml97.html +0 -477
  710. OpenGLContext-2.3.0b1/pydoc/builddocs.py +0 -38
  711. OpenGLContext-2.3.0b1/pydoc/find_gldoc.py +0 -560
  712. OpenGLContext-2.3.0b1/pydoc/gldoc.py +0 -12
  713. OpenGLContext-2.3.0b1/pydoc/pydoc2.py +0 -382
  714. OpenGLContext-2.3.0b1/pydoc/upload.py +0 -8
  715. OpenGLContext-2.3.0b1/readme.txt +0 -409
  716. OpenGLContext-2.3.0b1/setup.cfg +0 -5
  717. OpenGLContext-2.3.0b1/setup.py +0 -77
  718. OpenGLContext-2.3.0b1/tests/_bitmap_font.py +0 -98
  719. OpenGLContext-2.3.0b1/tests/addnodes.py +0 -60
  720. OpenGLContext-2.3.0b1/tests/arbocclusionquery.py +0 -105
  721. OpenGLContext-2.3.0b1/tests/arbpointparameters.py +0 -85
  722. OpenGLContext-2.3.0b1/tests/arbsync.py +0 -55
  723. OpenGLContext-2.3.0b1/tests/arbwindowpos.py +0 -117
  724. OpenGLContext-2.3.0b1/tests/backgroundobject.py +0 -30
  725. OpenGLContext-2.3.0b1/tests/boundingvolume.py +0 -103
  726. OpenGLContext-2.3.0b1/tests/cubeback_rot.py +0 -81
  727. OpenGLContext-2.3.0b1/tests/cubebackgroundobject.py +0 -35
  728. OpenGLContext-2.3.0b1/tests/dek_surf.py +0 -78
  729. OpenGLContext-2.3.0b1/tests/dek_texturesurf.py +0 -116
  730. OpenGLContext-2.3.0b1/tests/feedback_mode.py +0 -57
  731. OpenGLContext-2.3.0b1/tests/frust_test_module.py +0 -39
  732. OpenGLContext-2.3.0b1/tests/gearobject.py +0 -210
  733. OpenGLContext-2.3.0b1/tests/geometry.py +0 -169
  734. OpenGLContext-2.3.0b1/tests/getteximage.py +0 -62
  735. OpenGLContext-2.3.0b1/tests/glarrayelement.py +0 -27
  736. OpenGLContext-2.3.0b1/tests/gldrawarrays.py +0 -23
  737. OpenGLContext-2.3.0b1/tests/gldrawarrays_string.py +0 -22
  738. OpenGLContext-2.3.0b1/tests/gldrawelements.py +0 -26
  739. OpenGLContext-2.3.0b1/tests/gldrawelements_list.py +0 -61
  740. OpenGLContext-2.3.0b1/tests/gldrawelements_string.py +0 -32
  741. OpenGLContext-2.3.0b1/tests/gldrawpixels.py +0 -94
  742. OpenGLContext-2.3.0b1/tests/gldrawpixelssynth.py +0 -74
  743. OpenGLContext-2.3.0b1/tests/glelathe.py +0 -122
  744. OpenGLContext-2.3.0b1/tests/glget.py +0 -335
  745. OpenGLContext-2.3.0b1/tests/glget_with_fonts.py +0 -352
  746. OpenGLContext-2.3.0b1/tests/glgetlight.py +0 -30
  747. OpenGLContext-2.3.0b1/tests/glgetmaterial.py +0 -25
  748. OpenGLContext-2.3.0b1/tests/glgetpixelmap.py +0 -29
  749. OpenGLContext-2.3.0b1/tests/glgetpolygonstipple.py +0 -19
  750. OpenGLContext-2.3.0b1/tests/glhistogram.py +0 -90
  751. OpenGLContext-2.3.0b1/tests/glinterleavedarrays.py +0 -52
  752. OpenGLContext-2.3.0b1/tests/glprint.py +0 -142
  753. OpenGLContext-2.3.0b1/tests/glu_tess.py +0 -67
  754. OpenGLContext-2.3.0b1/tests/glu_tess2.py +0 -79
  755. OpenGLContext-2.3.0b1/tests/glugetstring.py +0 -14
  756. OpenGLContext-2.3.0b1/tests/glut_bitmap_font.py +0 -9
  757. OpenGLContext-2.3.0b1/tests/glut_font.py +0 -39
  758. OpenGLContext-2.3.0b1/tests/glut_fullscreen.py +0 -56
  759. OpenGLContext-2.3.0b1/tests/glutbitmapcharacter.py +0 -53
  760. OpenGLContext-2.3.0b1/tests/glutmousewheel.py +0 -40
  761. OpenGLContext-2.3.0b1/tests/glvertex.py +0 -21
  762. OpenGLContext-2.3.0b1/tests/heightmap.py +0 -92
  763. OpenGLContext-2.3.0b1/tests/indexedfaceset_lit_npf.py +0 -236
  764. OpenGLContext-2.3.0b1/tests/indexedfaceset_lit_npv.py +0 -93
  765. OpenGLContext-2.3.0b1/tests/indexedlinesetobject.py +0 -44
  766. OpenGLContext-2.3.0b1/tests/lightobject.py +0 -224
  767. OpenGLContext-2.3.0b1/tests/line_stipple.py +0 -39
  768. OpenGLContext-2.3.0b1/tests/molehill.py +0 -154
  769. OpenGLContext-2.3.0b1/tests/mouseover.py +0 -54
  770. OpenGLContext-2.3.0b1/tests/multitexture_1.py +0 -74
  771. OpenGLContext-2.3.0b1/tests/nehe2.py +0 -79
  772. OpenGLContext-2.3.0b1/tests/nehe3.py +0 -68
  773. OpenGLContext-2.3.0b1/tests/nehe4.py +0 -92
  774. OpenGLContext-2.3.0b1/tests/nehe5.py +0 -123
  775. OpenGLContext-2.3.0b1/tests/nehe6.py +0 -142
  776. OpenGLContext-2.3.0b1/tests/nehe6_convolve.py +0 -200
  777. OpenGLContext-2.3.0b1/tests/nehe6_multi.py +0 -184
  778. OpenGLContext-2.3.0b1/tests/nehe6_timer.py +0 -152
  779. OpenGLContext-2.3.0b1/tests/nehe7.py +0 -231
  780. OpenGLContext-2.3.0b1/tests/nehe8.py +0 -239
  781. OpenGLContext-2.3.0b1/tests/node_modify.py +0 -40
  782. OpenGLContext-2.3.0b1/tests/nurbsobject.py +0 -127
  783. OpenGLContext-2.3.0b1/tests/particles_simple.py +0 -233
  784. OpenGLContext-2.3.0b1/tests/pbodemo.py +0 -59
  785. OpenGLContext-2.3.0b1/tests/point_and_click.py +0 -67
  786. OpenGLContext-2.3.0b1/tests/pointsetobject.py +0 -56
  787. OpenGLContext-2.3.0b1/tests/profile_view.py +0 -60
  788. OpenGLContext-2.3.0b1/tests/pygame_textureatlas.py +0 -166
  789. OpenGLContext-2.3.0b1/tests/readpixelsleak.py +0 -100
  790. OpenGLContext-2.3.0b1/tests/redbook_alpha.py +0 -110
  791. OpenGLContext-2.3.0b1/tests/redbook_alpha3D.py +0 -147
  792. OpenGLContext-2.3.0b1/tests/redbook_surface.py +0 -115
  793. OpenGLContext-2.3.0b1/tests/redbook_surface_cb.py +0 -169
  794. OpenGLContext-2.3.0b1/tests/redbook_trim.py +0 -154
  795. OpenGLContext-2.3.0b1/tests/runalltests.py +0 -194
  796. OpenGLContext-2.3.0b1/tests/saveimage.py +0 -170
  797. OpenGLContext-2.3.0b1/tests/savepostscript.py +0 -72
  798. OpenGLContext-2.3.0b1/tests/selectrendermode.py +0 -84
  799. OpenGLContext-2.3.0b1/tests/selectrendermode_threads.py +0 -90
  800. OpenGLContext-2.3.0b1/tests/shader_10.py +0 -344
  801. OpenGLContext-2.3.0b1/tests/shader_11.py +0 -415
  802. OpenGLContext-2.3.0b1/tests/shader_2.py +0 -199
  803. OpenGLContext-2.3.0b1/tests/shader_5.py +0 -327
  804. OpenGLContext-2.3.0b1/tests/shader_6.py +0 -327
  805. OpenGLContext-2.3.0b1/tests/shader_7.py +0 -341
  806. OpenGLContext-2.3.0b1/tests/shader_8.py +0 -259
  807. OpenGLContext-2.3.0b1/tests/shader_9.py +0 -391
  808. OpenGLContext-2.3.0b1/tests/shader_binary.py +0 -161
  809. OpenGLContext-2.3.0b1/tests/shader_instanced.py +0 -311
  810. OpenGLContext-2.3.0b1/tests/shader_ng.py +0 -242
  811. OpenGLContext-2.3.0b1/tests/shader_sphere.py +0 -119
  812. OpenGLContext-2.3.0b1/tests/shadergeometry.py +0 -115
  813. OpenGLContext-2.3.0b1/tests/shaderobjects.py +0 -240
  814. OpenGLContext-2.3.0b1/tests/shaders.py +0 -82
  815. OpenGLContext-2.3.0b1/tests/shadow_1.py +0 -696
  816. OpenGLContext-2.3.0b1/tests/shadow_2.py +0 -180
  817. OpenGLContext-2.3.0b1/tests/solid_font.py +0 -78
  818. OpenGLContext-2.3.0b1/tests/spherebackgroundobject.py +0 -73
  819. OpenGLContext-2.3.0b1/tests/starfield.py +0 -55
  820. OpenGLContext-2.3.0b1/tests/test_glvertex2fcrash.py +0 -23
  821. OpenGLContext-2.3.0b1/tests/transforms_1.py +0 -119
  822. OpenGLContext-2.3.0b1/tests/transparentsorted.py +0 -245
  823. OpenGLContext-2.3.0b1/tests/wglpixelformatarb.py +0 -111
  824. OpenGLContext-2.3.0b1/tests/wx_multiple_contexts.py +0 -86
  825. OpenGLContext-2.3.0b1/tests/wx_with_controls.py +0 -79
  826. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/arrays.py +0 -0
  827. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/bin/__init__.py +0 -0
  828. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/debug/__init__.py +0 -0
  829. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/debug/logcontext.py +0 -0
  830. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/debug/state.py +0 -0
  831. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/drawcube.py +0 -0
  832. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/events/__init__.py +0 -0
  833. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/events/systemtime.py +0 -0
  834. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/glutinteractivecontext.py +0 -0
  835. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/gluttestingcontext.py +0 -0
  836. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/glutvrmltestingcontext.py +0 -0
  837. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/interactivecontext.py +0 -0
  838. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/loaders/__init__.py +0 -0
  839. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/move/__init__.py +0 -0
  840. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/move/dragwatcher.py +0 -0
  841. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/passes/__init__.py +0 -0
  842. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/pygametestingcontext.py +0 -0
  843. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/pygamevrmlcontext.py +0 -0
  844. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/resources/available_contexts.txt +0 -0
  845. {OpenGLContext-2.3.0b1/tests → openglcontext-3.0.0a2/OpenGLContext/resources/environment}/pimbackground_BK.jpg +0 -0
  846. {OpenGLContext-2.3.0b1/tests → openglcontext-3.0.0a2/OpenGLContext/resources/environment}/pimbackground_DN.jpg +0 -0
  847. {OpenGLContext-2.3.0b1/tests → openglcontext-3.0.0a2/OpenGLContext/resources/environment}/pimbackground_FR.jpg +0 -0
  848. {OpenGLContext-2.3.0b1/tests → openglcontext-3.0.0a2/OpenGLContext/resources/environment}/pimbackground_LF.jpg +0 -0
  849. {OpenGLContext-2.3.0b1/tests → openglcontext-3.0.0a2/OpenGLContext/resources/environment}/pimbackground_RT.jpg +0 -0
  850. {OpenGLContext-2.3.0b1/tests → openglcontext-3.0.0a2/OpenGLContext/resources/environment}/pimbackground_UP.jpg +0 -0
  851. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/resources/legacy_lighting.vert.txt +0 -0
  852. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/resources/lights.vert.txt +0 -0
  853. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/resources/simpleshader.frag.txt +0 -0
  854. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/resources/simpleshader.vert.txt +0 -0
  855. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/__init__.py +0 -0
  856. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/billboard.py +0 -0
  857. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/collision.py +0 -0
  858. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/coordinate.py +0 -0
  859. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/coordinatebounded.py +0 -0
  860. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/group.py +0 -0
  861. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/grouping.py +0 -0
  862. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/lod.py +0 -0
  863. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/mouseover.py +0 -0
  864. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/nodepath.py +0 -0
  865. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/scenegraph.py +0 -0
  866. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/simplebackground.py +0 -0
  867. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/text/__init__.py +0 -0
  868. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/text/fontstyle3d.py +0 -0
  869. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/text/wglfontprovider.py +0 -0
  870. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/scenegraph/timesensor.py +0 -0
  871. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/vectorutilities.py +0 -0
  872. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/wxinteractivecontext.py +0 -0
  873. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/wxtestingcontext.py +0 -0
  874. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext/wxvrmlcontext.py +0 -0
  875. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext.egg-info/dependency_links.txt +0 -0
  876. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/OpenGLContext.egg-info/top_level.txt +0 -0
  877. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/docs/images/context-icon-small.png +0 -0
  878. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/docs/images/context_logo.gif +0 -0
  879. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/docs/images/context_logo_icon.png +0 -0
  880. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/docs/images/doc_icon.gif +0 -0
  881. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/docs/images/greypinstripe.png +0 -0
  882. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/docs/images/project_icon.png +0 -0
  883. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/docs/images/pyopengl_icon.jpg +0 -0
  884. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/docs/images/text_simple.png +0 -0
  885. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/docs/style/sitestyle.css +0 -0
  886. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/docs/tutorials/tutorial.css +0 -0
  887. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/license.txt +0 -0
  888. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/__init__.py +0 -0
  889. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/_fontstyles.py +0 -0
  890. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/_particle.png +0 -0
  891. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/_shader_tut_lightprecalc.vert +0 -0
  892. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/flower_geometry.py +0 -0
  893. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/gldrawpixels.png +0 -0
  894. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/heightmap.png +0 -0
  895. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/ilsstrategies.py +0 -0
  896. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/lightmap.png +0 -0
  897. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/lightmap1.jpg +0 -0
  898. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/marbleface.jpeg +0 -0
  899. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/nehe1.py +0 -0
  900. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/nehe_crate.bmp +0 -0
  901. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/nehe_glass.bmp +0 -0
  902. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/nehe_wall.bmp +0 -0
  903. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/pygame_font.py +0 -0
  904. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/resources/3Dlabs-License.txt +0 -0
  905. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/resources/CH18-mandel.frag.txt +0 -0
  906. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/resources/CH18-mandel.vert.txt +0 -0
  907. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/resources/discard.frag.txt +0 -0
  908. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/resources/grid.frag.txt +0 -0
  909. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/resources/oblongimage.png +0 -0
  910. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/resources/simpletexture.frag.txt +0 -0
  911. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/resources/test_context_set.txt +0 -0
  912. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/resources/test_vrml_set.txt +0 -0
  913. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/resources/toon.frag.txt +0 -0
  914. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/resources/toon.vert.txt +0 -0
  915. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/shader_1.py +0 -0
  916. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/shader_12.py +0 -0
  917. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/shader_2_c_void_p.py +0 -0
  918. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/shader_3.py +0 -0
  919. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/shader_4.py +0 -0
  920. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/shader_intro.py +0 -0
  921. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/shader_spike.py +0 -0
  922. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/simplerotate.py +0 -0
  923. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/timesensorobject.py +0 -0
  924. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wgl_bitmap_font.py +0 -0
  925. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wgl_font.py +0 -0
  926. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/3shapes.wrl +0 -0
  927. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/3spheres.wrl +0 -0
  928. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/axis.wrl +0 -0
  929. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/bad_pngs.wrl +0 -0
  930. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/box.wrl +0 -0
  931. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/box_shadow.wrl +0 -0
  932. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/clear wood flooring.jpg +0 -0
  933. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/colorinterpolator.wrl +0 -0
  934. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/coordinterpolator.wrl +0 -0
  935. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/degenerate1.wrl +0 -0
  936. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/degenerate2.wrl +0 -0
  937. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/indexedpolygons.wrl +0 -0
  938. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/irradiation.jpg +0 -0
  939. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/light1.png +0 -0
  940. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/light2.png +0 -0
  941. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/logoinstaller.png +0 -0
  942. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/luminance.png +0 -0
  943. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/luminance_alpha.png +0 -0
  944. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/nurbscurve.wrl +0 -0
  945. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/pixeltexture.wrl +0 -0
  946. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/plane_shadow.wrl +0 -0
  947. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/positioninterpolator.wrl +0 -0
  948. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/proto_is_simple.wrl +0 -0
  949. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/pyramid.wrl +0 -0
  950. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/simple_occlude.wrl +0 -0
  951. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/simple_plane.wrl +0 -0
  952. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/simple_scene01.wrl +0 -0
  953. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/simple_texturea.jpg +0 -0
  954. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/simple_texturergb.png +0 -0
  955. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/simple_texturergba.png +0 -0
  956. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/sphere2.wrl +0 -0
  957. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/sphere3.wrl +0 -0
  958. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/sphere4.wrl +0 -0
  959. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/tessellate01.wrl +0 -0
  960. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/tessellate4ptcoplanar.wrl +0 -0
  961. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/tessellatewcombine.wrl +0 -0
  962. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/tessellatewcombine_shell.wrl +0 -0
  963. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/text.wrl +0 -0
  964. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/text3d.wrl +0 -0
  965. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/text_bitmap.wrl +0 -0
  966. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/text_simple.wrl +0 -0
  967. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/text_simple_r.wrl +0 -0
  968. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/texture_luminance.wrl +0 -0
  969. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/texture_repeat.wrl +0 -0
  970. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/texture_transparency.wrl +0 -0
  971. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/texture_transparency2.wrl +0 -0
  972. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/timesensor.wrl +0 -0
  973. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/transparency_multiple.wrl +0 -0
  974. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/viewpoints.wrl +0 -0
  975. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wrls/yingyang.png +0 -0
  976. {OpenGLContext-2.3.0b1 → openglcontext-3.0.0a2}/tests/wx_font.py +0 -0
@@ -0,0 +1,44 @@
1
+ include MANIFEST.in
2
+ include license.txt
3
+ include README.md
4
+
5
+ recursive-include tests *.jpg *.bmp *.png *.wrl *.jpeg
6
+ exclude tests/axis.wrl
7
+ exclude tests/flower.wrl
8
+ exclude tests/test.jpg
9
+ exclude tests/wrls/logo_installer.bmp
10
+ exclude tests/wrls/pyopenglchapel.wrl
11
+ include tests/*.py
12
+ include tests/*.vert
13
+ include tests/resources/*.txt
14
+
15
+ recursive-include docs *.css *.png *.gif
16
+ include docs/*.html
17
+ include docs/images/*
18
+ include docs/style/*
19
+ include OpenGLContext/resources/*.txt
20
+ include OpenGLContext/loaders/*
21
+ exclude docs/tutorials/*.xhtml
22
+ exclude docs/tutorials/*.png
23
+ exclude tests/test-results/*.png
24
+ exclude tests/test-results/*.html
25
+
26
+ # AI-workflow / internal planning docs are not user-facing; keep them out of the
27
+ # published sdist.
28
+ exclude CLAUDE.md
29
+ prune plans
30
+
31
+ global-exclude *CVS*
32
+ global-exclude *Cvs*
33
+ global-exclude *.pyc
34
+ global-exclude *.pyo
35
+ global-exclude *.pdb
36
+ global-exclude *.db
37
+ global-exclude *.max
38
+ global-exclude *.gz
39
+ global-exclude *.bat
40
+ global-exclude *.profile
41
+ global-exclude *.directory
42
+ global-exclude *.cvsignore
43
+ global-exclude *.ttf
44
+
@@ -0,0 +1,151 @@
1
+ '''Rendering contexts for various GUI libraries, scene graph
2
+ geometry objects, and PyOpenGL testing code
3
+
4
+ The OpenGLContext project provides a simplified environment
5
+ for writing OpenGL code with PyOpenGL. This simplified
6
+ environment abstracts the GUI library interfaces for a
7
+ large number of GUI libraries to allow the easy creation of
8
+ cross platform and cross-GUI-OpenGL programs.
9
+
10
+ The project also provides simplified geometry display
11
+ primitives to allow new developers to concentrate on the
12
+ particular task in which they are interested rather than
13
+ forcing them to re-implement basic geometry display
14
+ mechanisms.
15
+
16
+ Taking advantage of this simplified environment, we have
17
+ provided a number of testing modules. These testing
18
+ modules should operate under any of the fully functional
19
+ GUI contexts (note that there are unfinished contexts).
20
+ '''
21
+
22
+ __version__ = "3.0.0a2"
23
+ __author__ = "Michael Colin Fletcher"
24
+ __license__ = "BSD-Style, see license.txt for details and exceptions"
25
+
26
+ from OpenGLContext.plugins import Context,InteractiveContext,VRMLContext,Loader,Node,Adapter
27
+
28
+ Context( 'pygame', 'OpenGLContext.pygamecontext.PyGameContext' )
29
+ Context( 'wx', 'OpenGLContext.wxcontext.wxContext' )
30
+ Context( 'glut', 'OpenGLContext.glutcontext.GLUTContext' )
31
+ Context( 'glfw', 'OpenGLContext.glfwcontext.GLFWContext' )
32
+ InteractiveContext( 'pygame', 'OpenGLContext.pygameinteractivecontext.PygameInteractiveContext' )
33
+ InteractiveContext( 'wx', 'OpenGLContext.wxinteractivecontext.wxInteractiveContext' )
34
+ InteractiveContext( 'glut', 'OpenGLContext.glutinteractivecontext.GLUTInteractiveContext' )
35
+ InteractiveContext( 'glfw', 'OpenGLContext.glfwinteractivecontext.GLFWInteractiveContext' )
36
+ VRMLContext( 'pygame', 'OpenGLContext.pygamevrmlcontext.VRMLContext' )
37
+ VRMLContext( 'wx', 'OpenGLContext.wxvrmlcontext.VRMLContext' )
38
+ VRMLContext( 'glut', 'OpenGLContext.glutvrmlcontext.VRMLContext' )
39
+ VRMLContext( 'glfw', 'OpenGLContext.glfwvrmlcontext.VRMLContext' )
40
+
41
+ try:
42
+ import OpenGLContext_qt
43
+ except ImportError as err:
44
+ pass
45
+
46
+ Loader( 'vrml97', 'OpenGLContext.loaders.vrml97.defaultHandler', ['.wrl','.wrz','.vrml','model/vrml','x-world/x-vrml','.wrl.gz'] )
47
+ Loader( 'obj', 'OpenGLContext.loaders.obj.defaultHandler', ['.obj'] )
48
+
49
+ # What `oglc-view` can open, keyed by file suffix and content type. One viewer
50
+ # serves every format; the adapter is chosen from the source itself.
51
+ Adapter( 'gltf', 'OpenGLContext.viewer.adapters.gltf.GLTFAdapter', ['.gltf','.glb','model/gltf+json','model/gltf-binary'] )
52
+ Adapter( 'vrml97', 'OpenGLContext.viewer.adapters.vrml.VRMLAdapter', ['.wrl','.wrz','.vrml','.wrl.gz','model/vrml','x-world/x-vrml'] )
53
+ Adapter( 'obj', 'OpenGLContext.viewer.adapters.obj.OBJAdapter', ['.obj','.obj.gz','model/obj'] )
54
+ # A tileset is any .json, so the registry only claims the conventional name; a
55
+ # document under another name is recognised by its content (adapters._sniff).
56
+ Adapter( 'tiles3d', 'OpenGLContext.viewer.adapters.tiles.TilesAdapter', ['tileset.json'] )
57
+
58
+ Node( 'Anchor', 'vrml.vrml97.basenodes.Anchor' )
59
+ Node( 'Appearance', 'OpenGLContext.scenegraph.appearance.Appearance' )
60
+ Node( 'AudioEmitter', 'OpenGLContext.scenegraph.audio.AudioEmitter' )
61
+ Node( 'AudioSource', 'OpenGLContext.scenegraph.audio.AudioSource' )
62
+ Node( 'AudioClip', 'vrml.vrml97.basenodes.AudioClip' )
63
+ Node( 'Background', 'OpenGLContext.scenegraph.background.Background' )
64
+ Node( 'Billboard', 'OpenGLContext.scenegraph.billboard.Billboard' )
65
+ Node( 'Box', 'OpenGLContext.scenegraph.box.Box' )
66
+ Node( 'Collision', 'OpenGLContext.scenegraph.collision.Collision' )
67
+ Node( 'Color', 'vrml.vrml97.basenodes.Color' )
68
+ Node( 'ColorInterpolator', 'OpenGLContext.scenegraph.interpolators.ColorInterpolator' )
69
+ Node( 'Cone', 'OpenGLContext.scenegraph.quadrics.Cone' )
70
+ Node( 'Coordinate', 'OpenGLContext.scenegraph.coordinate.Coordinate' )
71
+ Node( 'CoordinateInterpolator', 'OpenGLContext.scenegraph.interpolators.CoordinateInterpolator' )
72
+ Node( 'Cylinder', 'OpenGLContext.scenegraph.quadrics.Cylinder' )
73
+ Node( 'CylinderSensor', 'vrml.vrml97.basenodes.CylinderSensor' )
74
+ Node( 'DirectionalLight', 'OpenGLContext.scenegraph.light.DirectionalLight' )
75
+ Node( 'ElevationGrid', 'vrml.vrml97.basenodes.ElevationGrid' )
76
+ Node( 'Extrusion', 'vrml.vrml97.basenodes.Extrusion' )
77
+ Node( 'Fog', 'OpenGLContext.scenegraph.fog.Fog' )
78
+ Node( 'FontStyle', 'OpenGLContext.scenegraph.text.fontstyle3d.FontStyle' )
79
+ Node( 'Gear', 'OpenGLContext.scenegraph.gear.Gear' )
80
+ Node( 'Group', 'OpenGLContext.scenegraph.group.Group' )
81
+ Node( 'ImageTexture', 'OpenGLContext.scenegraph.imagetexture.ImageTexture' )
82
+ Node( 'IndexedFaceSet', 'OpenGLContext.scenegraph.indexedfaceset.IndexedFaceSet' )
83
+ Node( 'IndexedLineSet', 'OpenGLContext.scenegraph.indexedlineset.IndexedLineSet' )
84
+ Node( 'Inline', 'OpenGLContext.scenegraph.inline.Inline' )
85
+ Node( 'LOD', 'OpenGLContext.scenegraph.lod.LOD' )
86
+ Node( 'Material', 'OpenGLContext.scenegraph.material.Material' )
87
+ Node( 'MouseOver', 'OpenGLContext.scenegraph.mouseover.MouseOver' )
88
+ Node( 'MovieTexture', 'vrml.vrml97.basenodes.MovieTexture' )
89
+ Node( 'NavigationInfo', 'vrml.vrml97.basenodes.NavigationInfo' )
90
+ Node( 'Normal', 'vrml.vrml97.basenodes.Normal' )
91
+ Node( 'NormalInterpolator', 'vrml.vrml97.basenodes.NormalInterpolator' )
92
+ Node( 'OrientationInterpolator', 'OpenGLContext.scenegraph.interpolators.OrientationInterpolator' )
93
+ Node( 'PixelTexture', 'OpenGLContext.scenegraph.imagetexture.PixelTexture' )
94
+ Node( 'PlaneSensor', 'vrml.vrml97.basenodes.PlaneSensor' )
95
+ Node( 'PointLight', 'OpenGLContext.scenegraph.light.PointLight' )
96
+ Node( 'ParticleEmitter', 'OpenGLContext.scenegraph.particles.ParticleEmitter' )
97
+ Node( 'PointSet', 'OpenGLContext.scenegraph.pointset.PointSet' )
98
+ Node( 'PositionInterpolator', 'OpenGLContext.scenegraph.interpolators.PositionInterpolator' )
99
+ Node( 'ProximitySensor', 'vrml.vrml97.basenodes.ProximitySensor' )
100
+ Node( 'ScalarInterpolator', 'OpenGLContext.scenegraph.interpolators.ScalarInterpolator' )
101
+ Node( 'Shape', 'OpenGLContext.scenegraph.shape.Shape' )
102
+ Node( 'Sound', 'OpenGLContext.scenegraph.audio.Sound' )
103
+ Node( 'Sphere', 'OpenGLContext.scenegraph.quadrics.Sphere' )
104
+ Node( 'SphereSensor', 'vrml.vrml97.basenodes.SphereSensor' )
105
+ Node( 'SpotLight', 'OpenGLContext.scenegraph.light.SpotLight' )
106
+ Node( 'Switch', 'OpenGLContext.scenegraph.switch.Switch' )
107
+ Node( 'Teapot', 'OpenGLContext.scenegraph.teapot.Teapot' )
108
+ Node( 'Text', 'OpenGLContext.scenegraph.text.text.Text' )
109
+ Node( 'TextureCoordinate', 'vrml.vrml97.basenodes.TextureCoordinate' )
110
+ Node( 'TextureTransform', 'OpenGLContext.scenegraph.texturetransform.TextureTransform' )
111
+ Node( 'TimeSensor', 'OpenGLContext.scenegraph.timesensor.TimeSensor' )
112
+ Node( 'TouchSensor', 'vrml.vrml97.basenodes.TouchSensor' )
113
+ Node( 'Transform', 'OpenGLContext.scenegraph.transform.Transform' )
114
+ Node( 'Viewpoint', 'OpenGLContext.scenegraph.viewpoint.Viewpoint' )
115
+ Node( 'VisibilitySensor', 'vrml.vrml97.basenodes.VisibilitySensor' )
116
+ Node( 'WorldInfo', 'vrml.vrml97.basenodes.WorldInfo' )
117
+ Node( 'sceneGraph', 'OpenGLContext.scenegraph.scenegraph.SceneGraph' )
118
+ Node( 'IndexedPolygons', 'OpenGLContext.scenegraph.indexedpolygons.IndexedPolygons' )
119
+ Node( 'FontStyle3D', 'OpenGLContext.scenegraph.text.fontstyle3d.FontStyle3D' )
120
+ Node( 'SimpleBackground', 'OpenGLContext.scenegraph.simplebackground.SimpleBackground' )
121
+ Node( 'CubeBackground', 'OpenGLContext.scenegraph.cubebackground.CubeBackground' )
122
+ Node( 'SphereBackground', 'OpenGLContext.scenegraph.spherebackground.SphereBackground' )
123
+ Node( 'MMImageTexture', 'OpenGLContext.scenegraph.imagetexture.MMImageTexture' )
124
+ Node( 'Contour2D', 'OpenGLContext.scenegraph.nurbs.Contour2D' )
125
+ Node( 'NurbsCurve', 'OpenGLContext.scenegraph.nurbs.NurbsCurve' )
126
+ Node( 'NurbsCurve2D', 'OpenGLContext.scenegraph.nurbs.NurbsCurve2D' )
127
+ Node( 'NurbsDomainDistanceSample', 'OpenGLContext.scenegraph.nurbs.NurbsDomainDistanceSample' )
128
+ Node( 'NurbsSurface', 'OpenGLContext.scenegraph.nurbs.NurbsSurface' )
129
+ Node( 'NurbsToleranceSample', 'OpenGLContext.scenegraph.nurbs.NurbsToleranceSample' )
130
+ Node( 'Polyline2D', 'OpenGLContext.scenegraph.nurbs.Polyline2D' )
131
+ Node( 'TrimmedSurface', 'OpenGLContext.scenegraph.nurbs.TrimmedSurface' )
132
+
133
+ for suffix in ('1f','2f','3f','4f','m2','m3','m4','m2x3','m3x2','m2x4','m4x2','m3x4','m4x3'):
134
+ Node( 'FloatUniform'+suffix,'OpenGLContext.scenegraph.shaders.FloatUniform'+suffix )
135
+ for suffix in ('1i','2i','3i','4i'):
136
+ Node( 'IntUniform'+suffix,'OpenGLContext.scenegraph.shaders.IntUniform'+suffix )
137
+ Node( 'TextureUniform','OpenGLContext.scenegraph.shaders.TextureUniform' )
138
+ Node( 'TextureBufferUniform','OpenGLContext.scenegraph.shaders.TextureBufferUniform' )
139
+ Node( 'GLSLShader','OpenGLContext.scenegraph.shaders.GLSLShader' )
140
+ Node( 'GLSLObject','OpenGLContext.scenegraph.shaders.GLSLObject' )
141
+ Node( 'GLSLImport','OpenGLContext.scenegraph.shaders.GLSLImport' )
142
+
143
+ Node( 'ShaderAttribute','OpenGLContext.scenegraph.shaders.ShaderAttribute' )
144
+ Node( 'ShaderBuffer','OpenGLContext.scenegraph.shaders.ShaderBuffer' )
145
+ Node( 'ShaderIndexBuffer','OpenGLContext.scenegraph.shaders.ShaderIndexBuffer' )
146
+ Node( 'ShaderSlice','OpenGLContext.scenegraph.shaders.ShaderSlice' )
147
+ Node( 'ShaderGeometry','OpenGLContext.scenegraph.shaders.ShaderGeometry' )
148
+
149
+ Node( 'Shader','OpenGLContext.scenegraph.shaders.Shader' )
150
+ Node( 'ROUTE','vrml.route.ROUTE' )
151
+ Node( 'IS','vrml.route.IS' )
@@ -0,0 +1,300 @@
1
+ """Texture atlas implementation"""
2
+ import math, weakref, logging
3
+ from OpenGL.GL import *
4
+ from OpenGLContext.arrays import zeros, array, dot, ArrayType
5
+ from OpenGLContext import texture
6
+ from vrml.vrml97 import transformmatrix
7
+
8
+ log = logging.getLogger( __name__ )
9
+
10
+ class _Strip( object ):
11
+ """Strip within the atlas which takes particular set of images"""
12
+ def __init__( self, atlas, height, yoffset ):
13
+ """Sets up the strip to receive images"""
14
+ self.atlas = atlas
15
+ self.height = height
16
+ self.width = 0
17
+ self.yoffset = yoffset
18
+ self.maps = []
19
+ def start_coord( self, x ):
20
+ """Do we have an empty space sufficient to fit image of width x?
21
+
22
+ return starting coordinate or -1 if not enough space...
23
+ """
24
+ last = 0
25
+ for map in self.maps:
26
+ referenced = map()
27
+ if referenced is not None:
28
+ if referenced.offset[0]-last >= x:
29
+ return last
30
+ else:
31
+ last = referenced.offset[0]+referenced.size[0]
32
+ if self.atlas.max_size-last >= x:
33
+ return last
34
+ return -1
35
+ def add( self, image, start=None ):
36
+ """Add the given PIL image to our atlas' image"""
37
+ x,y = image.size
38
+ if start is None:
39
+ start = self.start_coord( x )
40
+ offset = (start,self.yoffset)
41
+ map = Map( self.atlas, offset, (x,y), image )
42
+ self.maps.append( weakref.ref( map, self._remover( offset )) )
43
+ self.atlas.need_updates.append( weakref.ref(map) )
44
+ return map
45
+ def _remover( self, offset ):
46
+ def remover( *args ):
47
+ self.onRemove( )
48
+ return remover
49
+ def onRemove( self, *args, **named ):
50
+ """Remove map by offset (normally a weakref-release callback)"""
51
+ update = False
52
+ for mapRef in self.maps:
53
+ referenced = mapRef()
54
+ if referenced is None:
55
+ try:
56
+ self.maps.remove( mapRef )
57
+ except ValueError as err:
58
+ pass
59
+ update = True
60
+
61
+ class AtlasError( Exception ):
62
+ """Raised when we can't/shouldn't append to this atlas"""
63
+
64
+ class Atlas( object ):
65
+ """Collection of textures packed into a single texture
66
+
67
+ Texture atlases allow the rendering engine to reduce the
68
+ number of state-changes which occur during the rendering
69
+ process. They pack a large number of small textures into
70
+ a single large texture, producing offset/scale matrices to
71
+ use for modifying texture coordinates to map from the
72
+ original to the packed coordinates.
73
+ """
74
+ _local = None
75
+ _size = None
76
+ def __init__( self, components=4, dataType='B', max_size=4096 ):
77
+ self.components = components
78
+ self.dataType = dataType
79
+ self.strips = []
80
+ self.max_size = max_size
81
+ self.need_updates = []
82
+ self.texture = None
83
+ log.info(
84
+ 'Allocating a %s-component texture atlas of size %sx%s',
85
+ components,
86
+ max_size,max_size,
87
+ )
88
+
89
+ def add( self, image ):
90
+ """Insert a PIL image of values as a sub-texture
91
+
92
+ Has to find a place within the atlas to insert the
93
+ sub-texture and then return the offset/scale factors...
94
+ """
95
+ max_x = max_y = self.max_size
96
+ x,y = image.size
97
+ strip,start = self.choose_strip( max_x, max_y, x, y )
98
+ return strip.add( image, start=start )
99
+ def choose_strip( self, max_x,max_y, x,y ):
100
+ """Find the strip to which we should be added"""
101
+ candidates = [
102
+ s
103
+ for s in self.strips
104
+ if (
105
+ s.height >= y
106
+ )
107
+ ]
108
+ for strip in candidates:
109
+ if strip.height == y:
110
+ start = strip.start_coord( x )
111
+ if start > -1:
112
+ return strip, start
113
+ for strip in candidates:
114
+ strip_mag = math.floor(math.log( strip.height, 2 ))
115
+ img_mag = math.floor(math.log( y, 2 ))
116
+ if strip_mag == img_mag:
117
+ start = strip.start_coord( x )
118
+ if start > -1:
119
+ return strip, start
120
+ if self.strips:
121
+ last = self.strips[-1]
122
+ current_height = last.yoffset + last.height
123
+ else:
124
+ current_height = 0
125
+ if current_height + y > max_y:
126
+ raise AtlasError( """Insufficient space to store in this atlas""" )
127
+ strip = _Strip( self, height=y, yoffset= current_height )
128
+ self.strips.append( strip )
129
+ start = strip.start_coord( x )
130
+ return strip, start
131
+
132
+ def size( self ):
133
+ if self._size is None:
134
+ x = y = self.max_size
135
+ self._size = (x,y,self.components)
136
+ return self._size
137
+
138
+ def render( self ):
139
+ """Render this texture to the context"""
140
+ if self.texture is None:
141
+ format = [0, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_RGBA ][self.components]
142
+ self.texture = texture.Texture(format=format)
143
+ x,y,d = self.size()
144
+ self.texture.store(
145
+ d,
146
+ format,
147
+ x,y,
148
+ None
149
+ )
150
+ self.texture()
151
+ needs = self.need_updates[:]
152
+ del self.need_updates[:len(needs)]
153
+ for need in needs:
154
+ need = need()
155
+ if need is not None:
156
+ need.update( self.texture )
157
+ return self.texture
158
+ def cached( self, mode ):
159
+ """Get cached version of this texture
160
+
161
+ Note: currently we do *not* properly use mode-level caching
162
+ for the texture object
163
+ """
164
+ return self.render()
165
+ def debugImageTexture( self, mode ):
166
+ """Create a debugging image texture for this texture atlas
167
+ """
168
+ from OpenGLContext.scenegraph.imagetexture import ImageTexture,Image
169
+ from OpenGLContext.texture import NumpyAdapter
170
+ from vrml import protofunctions
171
+ format = NumpyAdapter.shapeToMode( self.components )
172
+ instance = ImageTexture(
173
+ image = Image.new(format, (1,1), '#ffff00'),
174
+ )
175
+ holder = mode.cache.holder(instance, self.texture)
176
+ return instance
177
+
178
+ class Map( object ):
179
+ """Object representing a sub-texture within a texture atlas
180
+
181
+ A Map object is a dependent version of an OpenGLContext.texture.Texture
182
+ object, i.e. it tries to offer the same API, but with support for
183
+ Atlas-based maps instead of stand-alone ones.
184
+ """
185
+ _matrix = None
186
+ _coords = None
187
+ _uploaded = False
188
+ def __init__( self, atlas, offset, size, image ):
189
+ self.atlas = atlas
190
+ self.offset = offset
191
+ self.size = size
192
+ self.image = image
193
+ self.components = self.atlas.components
194
+ def matrix( self ):
195
+ """Calculate a 4x4 transform matrix for texcoords
196
+
197
+ To manipulate texture coordinates with this matrix
198
+ they need to be in homogenous coordinates, i.e. a
199
+ "regular" 2d coordinate of (x,y) becomes (x,y,0.0,1.0)
200
+ so that it can pick up the translations.
201
+
202
+ dot( coord, matrix ) produces the transformed
203
+ coordinate for processing.
204
+
205
+ returns 4x4 translation matrix
206
+ """
207
+ if self._matrix is None:
208
+ # translate by self.offset/atlas.size
209
+ # scale by self.size/atlas.size
210
+ tx,ty,d = self.atlas.size()
211
+ tx,ty = float(tx),float(ty)
212
+ x,y = self.offset
213
+ sx,sy = self.size
214
+ self._matrix = transformmatrix.transformMatrix (
215
+ translation = (x/tx,y/ty,0),
216
+ scale = (sx/tx,sy/ty,1),
217
+ )
218
+ return self._matrix
219
+ def coords( self ):
220
+ """Return our bottom-left and top-right coordinate pairs"""
221
+ if self._coords is None:
222
+ tx,ty,d = self.atlas.size()
223
+ tx,ty = float(tx),float(ty)
224
+ x,y = self.offset
225
+ sx,sy = self.size
226
+ self._coords = array( ((x/tx,y/ty),((x+sx)/tx,(y+sy)/ty)), 'f')
227
+ return self._coords
228
+
229
+ def replace( self, image ):
230
+ """Replace our current image with given (PIL) image"""
231
+ self._uploaded = False
232
+ self.image = image
233
+ self.atlas.need_updates.append( weakref.ref(self) )
234
+ def update( self, texture ):
235
+ """Update texture with (new) data in self.image
236
+
237
+ This just calls texture.update with our metadata
238
+ in order to do the actual copy of the data-pointer.
239
+ """
240
+ texture.update(
241
+ self.offset, self.size,
242
+ texture.pilAsString( self.image),
243
+ )
244
+ self._uploaded = True
245
+ @property
246
+ def texture( self ):
247
+ """Retrieve our texture"""
248
+ return self.atlas.cached( None )
249
+ def __call__( self ):
250
+ """Enable/call our texture"""
251
+ self.atlas.render()
252
+ # should also load our texture-transform matrix.
253
+ glMatrixMode( GL_TEXTURE )
254
+ glLoadMatrixd( self.matrix() )
255
+ glMatrixMode( GL_MODELVIEW )
256
+
257
+ class AtlasManager( object ):
258
+ """Collection of atlases within the renderer"""
259
+ def __init__( self, max_size=4096, max_child_size=128 ):
260
+ self.components = {}
261
+ self.max_size = max_size
262
+ self.max_child_size = max_child_size
263
+ FORMAT_MAPPING = {
264
+ 'L':(1,GL_LUMINANCE),
265
+ 'LA':(2,GL_LUMINANCE_ALPHA),
266
+ 'RGB':(3,GL_RGB),
267
+ 'RGBA':(4,GL_RGBA),
268
+ }
269
+ def formatToComponents( self, format ):
270
+ """Convert PIL format to component count"""
271
+ return self.FORMAT_MAPPING[ format ][0]
272
+ def add( self, image ):
273
+ """Add the given image to the texture atlas"""
274
+ if isinstance( image, ArrayType ):
275
+ image = texture.NumpyAdapter( image )
276
+ x,y = image.size
277
+ if x > self.max_child_size:
278
+ raise AtlasError( """X size (%s) > %s"""%( x,self.max_child_size ) )
279
+ if y > self.max_child_size:
280
+ raise AtlasError( """Y size (%s) > %s"""%( y,self.max_child_size ) )
281
+ d = self.formatToComponents( image.mode )
282
+ atlases = self.components.setdefault( d, [])
283
+ for atlas in atlases:
284
+ try:
285
+ return atlas.add( image )
286
+ except AtlasError as err:
287
+ pass
288
+ atlas = Atlas( d, max_size=self.max_size or self.calculate_max_size() )
289
+ atlases.append( atlas )
290
+ return atlas.add( image )
291
+ _MAX_MAX_SIZE = 4096
292
+ def calculate_max_size( self ):
293
+ """Calculate the maximum size of a texture
294
+
295
+ Note that this might, for instance, assume a
296
+ single-component texture or some similarly inappropriate
297
+ value...
298
+ """
299
+ self.max_size = min( (glGetIntegerv(GL_MAX_TEXTURE_SIZE), self._MAX_MAX_SIZE) )
300
+ return self.max_size
@@ -0,0 +1,32 @@
1
+ """Giving an OpenGLContext context an ear.
2
+
3
+ The sound itself is :mod:`omi_audio`: the ``KHR_audio_emitter`` data model,
4
+ every gain curve, the clip cache, the numpy mixer, the device seam and the
5
+ engine that ties them together. None of that knows what a scenegraph is, and
6
+ none of it belongs here.
7
+
8
+ What is here is the two seams between that engine and a context:
9
+
10
+ ========================= ====================================================
11
+ :mod:`~.scene` One engine per context, opened on the first frame
12
+ that has something audible in it, and driven once a
13
+ frame from the camera and the render pass's
14
+ ``Auditory`` node paths.
15
+ :mod:`~.settings` :class:`~.settings.AudioSettings`, the player's own
16
+ switch, volume and voice budget, declared as a node
17
+ on the :class:`~OpenGLContext.contextdefinition.ContextDefinition`
18
+ so it validates, serialises and generates its own
19
+ settings page like every other field group.
20
+ ========================= ====================================================
21
+
22
+ The nodes that put a sound *in* a scene are
23
+ :mod:`OpenGLContext.scenegraph.audio` -- ``AudioEmitter``, ``AudioSource`` and
24
+ VRML97's ``Sound`` -- and the glTF loader reads ``KHR_audio_emitter`` blocks
25
+ into them through :mod:`OpenGLContext.loaders.gltf.scene`.
26
+
27
+ Sound is **optional and never fatal**. ``miniaudio`` may be absent and a device
28
+ may fail to open; both end in one warning and a silent run, so a machine with no
29
+ sound card is simply a machine with no sound.
30
+
31
+ See ``docs/audio.html`` for the data-flow diagrams and a worked example.
32
+ """
@@ -0,0 +1,130 @@
1
+ """Giving a context an ear, and driving the scene's sounds once a frame.
2
+
3
+ This is the whole of the seam between the render loop and :mod:`omi_audio`. The
4
+ render pass already collects every :class:`~vrml.vrml97.nodetypes.Auditory` node
5
+ path and already knows where the camera is; :func:`update` turns those two facts
6
+ into sound.
7
+
8
+ **Silence costs nothing.** A context gets no engine, and therefore opens no
9
+ device and starts no audio thread, until a frame is drawn with something audible
10
+ in it. A scene with no sounds -- which is most test scenes and every existing
11
+ OpenGLContext demo -- is untouched by any of this.
12
+
13
+ The engine hangs off the context rather than being a global, because two windows
14
+ are two listeners, and it is held weakly so closing a window does not leak a
15
+ device.
16
+ """
17
+
18
+ from __future__ import annotations
19
+
20
+ import logging
21
+ import time
22
+ import weakref
23
+ from typing import Any, Dict, Optional, Sequence
24
+
25
+ from omi_audio.device import open_device
26
+ from omi_audio.engine import AudioEngine
27
+
28
+ from OpenGLContext.audio.settings import settings_for
29
+ from OpenGLContext.scenegraph.audio import stop_scene_audio, update_scene_audio
30
+
31
+ log = logging.getLogger(__name__)
32
+
33
+ #: Engines by context. Weak, so a closed window's device goes with it; keyed by
34
+ #: the context itself rather than stored on it so a context class needs to know
35
+ #: nothing about audio to have some.
36
+ _engines: "weakref.WeakKeyDictionary[Any, AudioEngine]" = weakref.WeakKeyDictionary()
37
+
38
+
39
+ def existing_engine(context: Any) -> Optional[AudioEngine]:
40
+ """The engine ``context`` already has, or None. Never makes one."""
41
+ return _engines.get(context)
42
+
43
+
44
+ def enabled(context: Any) -> bool:
45
+ """Whether this context's settings allow sound at all."""
46
+ return bool(settings_for(context).enabled)
47
+
48
+
49
+ def engine_for(context: Any) -> Optional[AudioEngine]:
50
+ """The engine for ``context``, opened on first ask.
51
+
52
+ Returns None where the context's definition has audio switched off, which is
53
+ the one case a caller has to handle -- and handling it is doing nothing.
54
+ """
55
+ if not enabled(context):
56
+ return None
57
+ engine = _engines.get(context)
58
+ if engine is None:
59
+ settings = settings_for(context)
60
+ engine = AudioEngine(device=open_device(), voices=int(settings.voices))
61
+ engine.volume = settings.volume
62
+ _engines[context] = engine
63
+ return engine
64
+
65
+
66
+ def close(context: Any) -> None:
67
+ """Release ``context``'s engine and its device. Safe if it had none."""
68
+ engine = _engines.pop(context, None)
69
+ if engine is not None:
70
+ engine.close()
71
+
72
+
73
+ def update(context: Any, paths: Sequence[Any], now: Optional[float] = None) -> int:
74
+ """Keep ``context``'s sounds in step with its camera, for one frame.
75
+
76
+ ``paths`` are the render pass's collected ``Auditory`` node paths. An empty
77
+ sequence returns immediately **without opening a device**, which is what
78
+ makes sound free for a scene that has none.
79
+
80
+ ``now`` is absolute seconds, because VRML97's ``startTime`` and ``stopTime``
81
+ are absolute; it is taken from the wall clock when not given.
82
+
83
+ Returns how many nodes were driven, for a debug overlay.
84
+ """
85
+ if not paths or not enabled(context):
86
+ return 0
87
+ engine = engine_for(context)
88
+ if engine is None:
89
+ return 0
90
+ # The *player's* volume, read every frame: the settings screen writes the
91
+ # field, and a volume slider that only takes effect on the next launch is a
92
+ # volume slider nobody uses. The application's own `master_gain` is left
93
+ # alone -- writing over it here would make an application's mix level last
94
+ # exactly one frame.
95
+ engine.volume = settings_for(context).volume
96
+ platform = _view_platform(context)
97
+ if platform is not None:
98
+ engine.listen(platform)
99
+ return update_scene_audio(engine, paths,
100
+ time.time() if now is None else now)
101
+
102
+
103
+ def stop(context: Any, paths: Sequence[Any]) -> None:
104
+ """Silence every sound in a scene that is going away."""
105
+ stop_scene_audio(paths)
106
+ engine = _engines.get(context)
107
+ if engine is not None:
108
+ engine.stop_all()
109
+
110
+
111
+ def _view_platform(context: Any) -> Any:
112
+ """The context's camera, however it exposes one."""
113
+ getter = getattr(context, 'getViewPlatform', None)
114
+ if getter is not None:
115
+ return getter()
116
+ return getattr(context, 'platform', None)
117
+
118
+
119
+ def describe(context: Any) -> Dict[str, Any]:
120
+ """What this context's audio is doing, for a debug overlay."""
121
+ engine = _engines.get(context)
122
+ if engine is None:
123
+ return {'audio': 'off' if not enabled(context) else 'idle'}
124
+ return {
125
+ 'audio': 'silent' if engine.silent else '%d Hz' % (engine.sample_rate,),
126
+ 'voices': engine.active_voices,
127
+ 'volume': round(engine.volume, 2),
128
+ 'mix': round(engine.master_gain, 2),
129
+ 'muffle': round(engine.muffle, 2),
130
+ }