OpenGLContext 2.2.0a3__tar.gz → 3.0.0a1__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 (979) hide show
  1. openglcontext-3.0.0a1/MANIFEST.in +44 -0
  2. openglcontext-3.0.0a1/OpenGLContext/__init__.py +151 -0
  3. openglcontext-3.0.0a1/OpenGLContext/atlas.py +300 -0
  4. openglcontext-3.0.0a1/OpenGLContext/audio/__init__.py +32 -0
  5. openglcontext-3.0.0a1/OpenGLContext/audio/scene.py +130 -0
  6. openglcontext-3.0.0a1/OpenGLContext/audio/settings.py +82 -0
  7. openglcontext-3.0.0a1/OpenGLContext/bin/choosecontext.py +224 -0
  8. openglcontext-3.0.0a1/OpenGLContext/bin/choosefonts.py +209 -0
  9. openglcontext-3.0.0a1/OpenGLContext/bin/gltest.py +121 -0
  10. openglcontext-3.0.0a1/OpenGLContext/bin/gltf_demo.py +492 -0
  11. openglcontext-3.0.0a1/OpenGLContext/bin/gltf_regression.py +645 -0
  12. openglcontext-3.0.0a1/OpenGLContext/bin/gltf_view.py +30 -0
  13. openglcontext-3.0.0a1/OpenGLContext/bin/keyboardevents.py +93 -0
  14. openglcontext-3.0.0a1/OpenGLContext/bin/lorentz.py +109 -0
  15. openglcontext-3.0.0a1/OpenGLContext/bin/physics_cook.py +81 -0
  16. openglcontext-3.0.0a1/OpenGLContext/bin/profile_view.py +38 -0
  17. openglcontext-3.0.0a1/OpenGLContext/bin/terrain_view.py +581 -0
  18. openglcontext-3.0.0a1/OpenGLContext/bin/tiles_view.py +39 -0
  19. openglcontext-3.0.0a1/OpenGLContext/bin/ui_demo.py +228 -0
  20. openglcontext-3.0.0a1/OpenGLContext/bin/view.py +341 -0
  21. openglcontext-3.0.0a1/OpenGLContext/bin/vrml_view.py +42 -0
  22. openglcontext-3.0.0a1/OpenGLContext/capture.py +125 -0
  23. openglcontext-3.0.0a1/OpenGLContext/context.py +1253 -0
  24. openglcontext-3.0.0a1/OpenGLContext/contextconfig.py +177 -0
  25. openglcontext-3.0.0a1/OpenGLContext/contextdefinition.py +275 -0
  26. openglcontext-3.0.0a1/OpenGLContext/debug/bufferimage.py +80 -0
  27. openglcontext-3.0.0a1/OpenGLContext/debug/leaks.py +13 -0
  28. openglcontext-3.0.0a1/OpenGLContext/debug/logs.py +15 -0
  29. openglcontext-3.0.0a1/OpenGLContext/displaylist.py +69 -0
  30. openglcontext-3.0.0a1/OpenGLContext/doinchildmatrix.py +34 -0
  31. openglcontext-3.0.0a1/OpenGLContext/events/default_config.py +29 -0
  32. openglcontext-3.0.0a1/OpenGLContext/events/event.py +65 -0
  33. openglcontext-3.0.0a1/OpenGLContext/events/eventhandlermixin.py +214 -0
  34. openglcontext-3.0.0a1/OpenGLContext/events/eventmanager.py +269 -0
  35. openglcontext-3.0.0a1/OpenGLContext/events/fxevents.py +90 -0
  36. openglcontext-3.0.0a1/OpenGLContext/events/glfwevents.py +424 -0
  37. openglcontext-3.0.0a1/OpenGLContext/events/glutevents.py +184 -0
  38. openglcontext-3.0.0a1/OpenGLContext/events/inputstate.py +129 -0
  39. openglcontext-3.0.0a1/OpenGLContext/events/internaltime.py +161 -0
  40. openglcontext-3.0.0a1/OpenGLContext/events/keyboardevents.py +153 -0
  41. openglcontext-3.0.0a1/OpenGLContext/events/mouseevents.py +473 -0
  42. openglcontext-3.0.0a1/OpenGLContext/events/pygameevents.py +162 -0
  43. openglcontext-3.0.0a1/OpenGLContext/events/timeeventgeneratormanager.py +40 -0
  44. openglcontext-3.0.0a1/OpenGLContext/events/timeevents.py +143 -0
  45. openglcontext-3.0.0a1/OpenGLContext/events/timer.py +170 -0
  46. openglcontext-3.0.0a1/OpenGLContext/events/tkevents.py +172 -0
  47. openglcontext-3.0.0a1/OpenGLContext/events/wxevents.py +185 -0
  48. openglcontext-3.0.0a1/OpenGLContext/extensionmanager.py +158 -0
  49. openglcontext-3.0.0a1/OpenGLContext/framecounter.py +74 -0
  50. openglcontext-3.0.0a1/OpenGLContext/frustum.py +135 -0
  51. openglcontext-3.0.0a1/OpenGLContext/glfwcontext.py +395 -0
  52. openglcontext-3.0.0a1/OpenGLContext/glfwinteractivecontext.py +34 -0
  53. openglcontext-3.0.0a1/OpenGLContext/glfwvrmlcontext.py +11 -0
  54. openglcontext-3.0.0a1/OpenGLContext/glutcontext.py +224 -0
  55. openglcontext-3.0.0a1/OpenGLContext/glutvrmlcontext.py +25 -0
  56. openglcontext-3.0.0a1/OpenGLContext/hud.py +404 -0
  57. openglcontext-3.0.0a1/OpenGLContext/loaders/base.py +84 -0
  58. openglcontext-3.0.0a1/OpenGLContext/loaders/cc0.py +137 -0
  59. openglcontext-3.0.0a1/OpenGLContext/loaders/gltf/__init__.py +71 -0
  60. openglcontext-3.0.0a1/OpenGLContext/loaders/gltf/accessors.py +255 -0
  61. openglcontext-3.0.0a1/OpenGLContext/loaders/gltf/animation.py +611 -0
  62. openglcontext-3.0.0a1/OpenGLContext/loaders/gltf/draco.py +166 -0
  63. openglcontext-3.0.0a1/OpenGLContext/loaders/gltf/environment_sky.py +416 -0
  64. openglcontext-3.0.0a1/OpenGLContext/loaders/gltf/loader.py +80 -0
  65. openglcontext-3.0.0a1/OpenGLContext/loaders/gltf/materials.py +298 -0
  66. openglcontext-3.0.0a1/OpenGLContext/loaders/gltf/meshes.py +292 -0
  67. openglcontext-3.0.0a1/OpenGLContext/loaders/gltf/samples.py +162 -0
  68. openglcontext-3.0.0a1/OpenGLContext/loaders/gltf/scene.py +673 -0
  69. openglcontext-3.0.0a1/OpenGLContext/loaders/gltf/specular_glossiness.py +154 -0
  70. openglcontext-3.0.0a1/OpenGLContext/loaders/gltf/textures.py +155 -0
  71. openglcontext-3.0.0a1/OpenGLContext/loaders/gltf/transforms.py +261 -0
  72. openglcontext-3.0.0a1/OpenGLContext/loaders/gltf_demos.py +511 -0
  73. openglcontext-3.0.0a1/OpenGLContext/loaders/hdr.py +228 -0
  74. openglcontext-3.0.0a1/OpenGLContext/loaders/hdri.py +83 -0
  75. openglcontext-3.0.0a1/OpenGLContext/loaders/loader.py +255 -0
  76. openglcontext-3.0.0a1/OpenGLContext/loaders/obj.py +299 -0
  77. openglcontext-3.0.0a1/OpenGLContext/loaders/resolver.py +536 -0
  78. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/__init__.py +9 -0
  79. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/boundingvolume.py +120 -0
  80. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/dem.py +71 -0
  81. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/fetch.py +102 -0
  82. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/foliage.py +786 -0
  83. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/frustum.py +70 -0
  84. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/geomorph.py +57 -0
  85. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/gltf_uploader.py +246 -0
  86. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/loadmanager.py +121 -0
  87. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/physics_colliders.py +78 -0
  88. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/procedural.py +355 -0
  89. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/residency.py +102 -0
  90. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/runtime.py +168 -0
  91. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/sample.py +212 -0
  92. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/scatter.py +77 -0
  93. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/screenspaceerror.py +31 -0
  94. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/tileset.py +390 -0
  95. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/traversal.py +108 -0
  96. openglcontext-3.0.0a1/OpenGLContext/loaders/tiles3d/vegetation.py +361 -0
  97. openglcontext-3.0.0a1/OpenGLContext/loaders/vrml97.py +133 -0
  98. openglcontext-3.0.0a1/OpenGLContext/looptrace.py +307 -0
  99. openglcontext-3.0.0a1/OpenGLContext/move/bindingstore.py +232 -0
  100. openglcontext-3.0.0a1/OpenGLContext/move/direct.py +156 -0
  101. openglcontext-3.0.0a1/OpenGLContext/move/examinemanager.py +100 -0
  102. openglcontext-3.0.0a1/OpenGLContext/move/followcam.py +121 -0
  103. openglcontext-3.0.0a1/OpenGLContext/move/modes.py +522 -0
  104. openglcontext-3.0.0a1/OpenGLContext/move/movementmanager.py +74 -0
  105. openglcontext-3.0.0a1/OpenGLContext/move/navigation.py +137 -0
  106. openglcontext-3.0.0a1/OpenGLContext/move/physicsplatform.py +203 -0
  107. openglcontext-3.0.0a1/OpenGLContext/move/physicswalk.py +469 -0
  108. openglcontext-3.0.0a1/OpenGLContext/move/smooth.py +68 -0
  109. openglcontext-3.0.0a1/OpenGLContext/move/terrainwalk.py +451 -0
  110. openglcontext-3.0.0a1/OpenGLContext/move/trackball.py +92 -0
  111. openglcontext-3.0.0a1/OpenGLContext/move/viewplatform.py +283 -0
  112. openglcontext-3.0.0a1/OpenGLContext/move/viewplatformmixin.py +335 -0
  113. openglcontext-3.0.0a1/OpenGLContext/nav/__init__.py +13 -0
  114. openglcontext-3.0.0a1/OpenGLContext/nav/navmesh.py +476 -0
  115. openglcontext-3.0.0a1/OpenGLContext/passes/_flat.py +1317 -0
  116. openglcontext-3.0.0a1/OpenGLContext/passes/asyncpick.py +216 -0
  117. openglcontext-3.0.0a1/OpenGLContext/passes/bloom.py +257 -0
  118. openglcontext-3.0.0a1/OpenGLContext/passes/flatcompat.py +246 -0
  119. openglcontext-3.0.0a1/OpenGLContext/passes/flatcore.py +198 -0
  120. openglcontext-3.0.0a1/OpenGLContext/passes/flateffects.py +372 -0
  121. openglcontext-3.0.0a1/OpenGLContext/passes/ibl.py +711 -0
  122. openglcontext-3.0.0a1/OpenGLContext/passes/instancing.py +775 -0
  123. openglcontext-3.0.0a1/OpenGLContext/passes/pbrpass.py +829 -0
  124. openglcontext-3.0.0a1/OpenGLContext/passes/renderpass.py +79 -0
  125. openglcontext-3.0.0a1/OpenGLContext/passes/renderstats.py +55 -0
  126. openglcontext-3.0.0a1/OpenGLContext/passes/rendervisitor.py +60 -0
  127. openglcontext-3.0.0a1/OpenGLContext/passes/selection.py +450 -0
  128. openglcontext-3.0.0a1/OpenGLContext/passes/selectionbuffers.py +442 -0
  129. openglcontext-3.0.0a1/OpenGLContext/passes/shaderpass.py +1018 -0
  130. openglcontext-3.0.0a1/OpenGLContext/passes/shaderpass_shadow.py +197 -0
  131. openglcontext-3.0.0a1/OpenGLContext/passes/shadersource.py +121 -0
  132. openglcontext-3.0.0a1/OpenGLContext/passes/shadowcaps.py +182 -0
  133. openglcontext-3.0.0a1/OpenGLContext/passes/shadowmap.py +330 -0
  134. openglcontext-3.0.0a1/OpenGLContext/passes/shadowmath.py +290 -0
  135. openglcontext-3.0.0a1/OpenGLContext/passes/shadowmixin.py +906 -0
  136. openglcontext-3.0.0a1/OpenGLContext/passes/shadowpool.py +186 -0
  137. openglcontext-3.0.0a1/OpenGLContext/passes/transmission.py +124 -0
  138. openglcontext-3.0.0a1/OpenGLContext/physics/__init__.py +16 -0
  139. openglcontext-3.0.0a1/OpenGLContext/physics/debugdraw.py +370 -0
  140. openglcontext-3.0.0a1/OpenGLContext/physics/demo.py +157 -0
  141. openglcontext-3.0.0a1/OpenGLContext/physics/gltf_world.py +185 -0
  142. openglcontext-3.0.0a1/OpenGLContext/physics/manager.py +84 -0
  143. openglcontext-3.0.0a1/OpenGLContext/physics/threaded.py +93 -0
  144. openglcontext-3.0.0a1/OpenGLContext/plugins.py +61 -0
  145. openglcontext-3.0.0a1/OpenGLContext/pygamecontext.py +178 -0
  146. openglcontext-3.0.0a1/OpenGLContext/pygameinteractivecontext.py +36 -0
  147. openglcontext-3.0.0a1/OpenGLContext/quaternion.py +190 -0
  148. openglcontext-3.0.0a1/OpenGLContext/renderoptions.py +280 -0
  149. openglcontext-3.0.0a1/OpenGLContext/resources/__init__.py +36 -0
  150. openglcontext-3.0.0a1/OpenGLContext/resources/available_contexts_txt.py +9 -0
  151. openglcontext-3.0.0a1/OpenGLContext/resources/context_icon_png.py +46 -0
  152. openglcontext-3.0.0a1/OpenGLContext/resources/context_icon_small_png.py +21 -0
  153. openglcontext-3.0.0a1/OpenGLContext/resources/disk_icon_hi_png.py +14 -0
  154. openglcontext-3.0.0a1/OpenGLContext/resources/disk_icon_png.py +15 -0
  155. openglcontext-3.0.0a1/OpenGLContext/resources/environment/studio_BK.jpg +0 -0
  156. openglcontext-3.0.0a1/OpenGLContext/resources/environment/studio_DN.jpg +0 -0
  157. openglcontext-3.0.0a1/OpenGLContext/resources/environment/studio_FR.jpg +0 -0
  158. openglcontext-3.0.0a1/OpenGLContext/resources/environment/studio_LF.jpg +0 -0
  159. openglcontext-3.0.0a1/OpenGLContext/resources/environment/studio_RT.jpg +0 -0
  160. openglcontext-3.0.0a1/OpenGLContext/resources/environment/studio_UP.jpg +0 -0
  161. openglcontext-3.0.0a1/OpenGLContext/resources/environment/studiobright_BK.jpg +0 -0
  162. openglcontext-3.0.0a1/OpenGLContext/resources/environment/studiobright_DN.jpg +0 -0
  163. openglcontext-3.0.0a1/OpenGLContext/resources/environment/studiobright_FR.jpg +0 -0
  164. openglcontext-3.0.0a1/OpenGLContext/resources/environment/studiobright_LF.jpg +0 -0
  165. openglcontext-3.0.0a1/OpenGLContext/resources/environment/studiobright_RT.jpg +0 -0
  166. openglcontext-3.0.0a1/OpenGLContext/resources/environment/studiobright_UP.jpg +0 -0
  167. openglcontext-3.0.0a1/OpenGLContext/resources/green_arrow_right_png.py +47 -0
  168. openglcontext-3.0.0a1/OpenGLContext/resources/legacy_lighting_vert_txt.py +18 -0
  169. openglcontext-3.0.0a1/OpenGLContext/resources/lights_vert_txt.py +23 -0
  170. openglcontext-3.0.0a1/OpenGLContext/resources/phongprecalc_vert.py +30 -0
  171. openglcontext-3.0.0a1/OpenGLContext/resources/phongweights_frag.py +47 -0
  172. openglcontext-3.0.0a1/OpenGLContext/resources/pygame_icon_png.py +47 -0
  173. openglcontext-3.0.0a1/OpenGLContext/resources/red_arrow_right_png.py +50 -0
  174. openglcontext-3.0.0a1/OpenGLContext/resources/simpleshader_frag_txt.py +9 -0
  175. openglcontext-3.0.0a1/OpenGLContext/resources/simpleshader_vert_txt.py +10 -0
  176. openglcontext-3.0.0a1/OpenGLContext/scenegraph/appearance.py +107 -0
  177. openglcontext-3.0.0a1/OpenGLContext/scenegraph/arraygeometry.py +238 -0
  178. openglcontext-3.0.0a1/OpenGLContext/scenegraph/audio.py +632 -0
  179. openglcontext-3.0.0a1/OpenGLContext/scenegraph/background.py +108 -0
  180. openglcontext-3.0.0a1/OpenGLContext/scenegraph/basenodes.py +50 -0
  181. openglcontext-3.0.0a1/OpenGLContext/scenegraph/boundingvolume.py +494 -0
  182. openglcontext-3.0.0a1/OpenGLContext/scenegraph/box.py +180 -0
  183. openglcontext-3.0.0a1/OpenGLContext/scenegraph/cubebackground.py +207 -0
  184. openglcontext-3.0.0a1/OpenGLContext/scenegraph/extrusions.py +275 -0
  185. openglcontext-3.0.0a1/OpenGLContext/scenegraph/fog.py +123 -0
  186. openglcontext-3.0.0a1/OpenGLContext/scenegraph/gear.py +323 -0
  187. openglcontext-3.0.0a1/OpenGLContext/scenegraph/hdrbackground.py +384 -0
  188. openglcontext-3.0.0a1/OpenGLContext/scenegraph/ifscompiler.py +633 -0
  189. openglcontext-3.0.0a1/OpenGLContext/scenegraph/imagetexture.py +365 -0
  190. openglcontext-3.0.0a1/OpenGLContext/scenegraph/indexedfaceset.py +238 -0
  191. openglcontext-3.0.0a1/OpenGLContext/scenegraph/indexedlineset.py +418 -0
  192. openglcontext-3.0.0a1/OpenGLContext/scenegraph/indexedpolygons.py +422 -0
  193. openglcontext-3.0.0a1/OpenGLContext/scenegraph/inline.py +79 -0
  194. openglcontext-3.0.0a1/OpenGLContext/scenegraph/instancedgl.py +187 -0
  195. openglcontext-3.0.0a1/OpenGLContext/scenegraph/interpolators.py +122 -0
  196. openglcontext-3.0.0a1/OpenGLContext/scenegraph/light.py +213 -0
  197. openglcontext-3.0.0a1/OpenGLContext/scenegraph/material.py +96 -0
  198. openglcontext-3.0.0a1/OpenGLContext/scenegraph/material_fields.py +50 -0
  199. openglcontext-3.0.0a1/OpenGLContext/scenegraph/nurbs.py +637 -0
  200. openglcontext-3.0.0a1/OpenGLContext/scenegraph/nurbssampling.py +101 -0
  201. openglcontext-3.0.0a1/OpenGLContext/scenegraph/nurbstess.py +316 -0
  202. openglcontext-3.0.0a1/OpenGLContext/scenegraph/nurbstrim.py +54 -0
  203. openglcontext-3.0.0a1/OpenGLContext/scenegraph/particles.py +786 -0
  204. openglcontext-3.0.0a1/OpenGLContext/scenegraph/pbrmaterial.py +229 -0
  205. openglcontext-3.0.0a1/OpenGLContext/scenegraph/pbrmesh.py +558 -0
  206. openglcontext-3.0.0a1/OpenGLContext/scenegraph/physicsbody.py +72 -0
  207. openglcontext-3.0.0a1/OpenGLContext/scenegraph/pointset.py +257 -0
  208. openglcontext-3.0.0a1/OpenGLContext/scenegraph/polygon.py +166 -0
  209. openglcontext-3.0.0a1/OpenGLContext/scenegraph/polygonsort.py +119 -0
  210. openglcontext-3.0.0a1/OpenGLContext/scenegraph/polygontessellator.py +213 -0
  211. openglcontext-3.0.0a1/OpenGLContext/scenegraph/quadrics.py +494 -0
  212. openglcontext-3.0.0a1/OpenGLContext/scenegraph/shadergeometry.py +403 -0
  213. openglcontext-3.0.0a1/OpenGLContext/scenegraph/shaders.py +812 -0
  214. openglcontext-3.0.0a1/OpenGLContext/scenegraph/shape.py +243 -0
  215. openglcontext-3.0.0a1/OpenGLContext/scenegraph/spherebackground.py +462 -0
  216. openglcontext-3.0.0a1/OpenGLContext/scenegraph/switch.py +75 -0
  217. openglcontext-3.0.0a1/OpenGLContext/scenegraph/teapot.py +439 -0
  218. openglcontext-3.0.0a1/OpenGLContext/scenegraph/teapot_nurbs.py +291 -0
  219. openglcontext-3.0.0a1/OpenGLContext/scenegraph/teapot_nurbs_data.py +384 -0
  220. openglcontext-3.0.0a1/OpenGLContext/scenegraph/terrain/__init__.py +12 -0
  221. openglcontext-3.0.0a1/OpenGLContext/scenegraph/terrain/heightfield.py +172 -0
  222. openglcontext-3.0.0a1/OpenGLContext/scenegraph/terrain/splat.py +224 -0
  223. openglcontext-3.0.0a1/OpenGLContext/scenegraph/tessellationlod.py +97 -0
  224. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/_toolsfont.py +200 -0
  225. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/font.py +452 -0
  226. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/fontprovider.py +193 -0
  227. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/fonts/__init__.py +75 -0
  228. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/fonts/font_atlas_10.py +133 -0
  229. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/fonts/font_atlas_12.py +158 -0
  230. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/fonts/font_atlas_14.py +176 -0
  231. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/fonts/font_atlas_16.py +204 -0
  232. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/fonts/font_atlas_18.py +222 -0
  233. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/fonts/font_atlas_20.py +244 -0
  234. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/fonts/font_atlas_24.py +294 -0
  235. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/fonts/font_atlas_28.py +339 -0
  236. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/fonts/font_atlas_32.py +390 -0
  237. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/glutfont.py +186 -0
  238. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/pygamefont.py +213 -0
  239. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/shaderfont.py +340 -0
  240. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/shadertext.py +433 -0
  241. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/text.py +75 -0
  242. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/toolsfont.py +819 -0
  243. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/ttfregistry.py +135 -0
  244. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/wglfont.py +228 -0
  245. openglcontext-3.0.0a1/OpenGLContext/scenegraph/text/wxfont.py +314 -0
  246. openglcontext-3.0.0a1/OpenGLContext/scenegraph/texturetransform.py +66 -0
  247. openglcontext-3.0.0a1/OpenGLContext/scenegraph/tilesterrain.py +95 -0
  248. openglcontext-3.0.0a1/OpenGLContext/scenegraph/transform.py +180 -0
  249. openglcontext-3.0.0a1/OpenGLContext/scenegraph/vegetation/__init__.py +20 -0
  250. openglcontext-3.0.0a1/OpenGLContext/scenegraph/vegetation/base.py +96 -0
  251. openglcontext-3.0.0a1/OpenGLContext/scenegraph/vegetation/billboards.py +145 -0
  252. openglcontext-3.0.0a1/OpenGLContext/scenegraph/vegetation/clumps.py +260 -0
  253. openglcontext-3.0.0a1/OpenGLContext/scenegraph/vegetation/grid.py +112 -0
  254. openglcontext-3.0.0a1/OpenGLContext/scenegraph/vegetation/nearmesh.py +185 -0
  255. openglcontext-3.0.0a1/OpenGLContext/scenegraph/vertex.py +54 -0
  256. openglcontext-3.0.0a1/OpenGLContext/scenegraph/viewpoint.py +42 -0
  257. openglcontext-3.0.0a1/OpenGLContext/scenegraph/winding.py +49 -0
  258. openglcontext-3.0.0a1/OpenGLContext/shaders/_brdf_inc.glsl +124 -0
  259. openglcontext-3.0.0a1/OpenGLContext/shaders/_common_inc.glsl +24 -0
  260. openglcontext-3.0.0a1/OpenGLContext/shaders/_cubemap_inc.glsl +26 -0
  261. openglcontext-3.0.0a1/OpenGLContext/shaders/_lights_inc.glsl +32 -0
  262. openglcontext-3.0.0a1/OpenGLContext/shaders/_objectid_inc.glsl +14 -0
  263. openglcontext-3.0.0a1/OpenGLContext/shaders/_shadow_inc.glsl +254 -0
  264. openglcontext-3.0.0a1/OpenGLContext/shaders/_vrml97_lighting_inc.glsl +78 -0
  265. openglcontext-3.0.0a1/OpenGLContext/shaders/hdr_background.frag +32 -0
  266. openglcontext-3.0.0a1/OpenGLContext/shaders/hdr_background.vert +15 -0
  267. openglcontext-3.0.0a1/OpenGLContext/shaders/ibl_brdf.frag +78 -0
  268. openglcontext-3.0.0a1/OpenGLContext/shaders/ibl_env.frag +53 -0
  269. openglcontext-3.0.0a1/OpenGLContext/shaders/ibl_equirect.frag +19 -0
  270. openglcontext-3.0.0a1/OpenGLContext/shaders/ibl_fullscreen.vert +11 -0
  271. openglcontext-3.0.0a1/OpenGLContext/shaders/ibl_irradiance.frag +40 -0
  272. openglcontext-3.0.0a1/OpenGLContext/shaders/ibl_prefilter.frag +56 -0
  273. openglcontext-3.0.0a1/OpenGLContext/shaders/particle.frag +42 -0
  274. openglcontext-3.0.0a1/OpenGLContext/shaders/particle.vert +52 -0
  275. openglcontext-3.0.0a1/OpenGLContext/shaders/pbr.frag +906 -0
  276. openglcontext-3.0.0a1/OpenGLContext/shaders/pbr.vert +70 -0
  277. openglcontext-3.0.0a1/OpenGLContext/shaders/shadow_depth.frag +4 -0
  278. openglcontext-3.0.0a1/OpenGLContext/shaders/shadow_depth.vert +18 -0
  279. openglcontext-3.0.0a1/OpenGLContext/shaders/terrain_splat.frag +80 -0
  280. openglcontext-3.0.0a1/OpenGLContext/shaders/terrain_splat.vert +16 -0
  281. openglcontext-3.0.0a1/OpenGLContext/shaders/veg_billboard.frag +35 -0
  282. openglcontext-3.0.0a1/OpenGLContext/shaders/veg_billboard.vert +17 -0
  283. openglcontext-3.0.0a1/OpenGLContext/shaders/veg_clump.frag +27 -0
  284. openglcontext-3.0.0a1/OpenGLContext/shaders/veg_mesh.frag +26 -0
  285. openglcontext-3.0.0a1/OpenGLContext/shaders/veg_mesh.vert +17 -0
  286. openglcontext-3.0.0a1/OpenGLContext/shaders/vrml97_background.frag +17 -0
  287. openglcontext-3.0.0a1/OpenGLContext/shaders/vrml97_background.vert +24 -0
  288. openglcontext-3.0.0a1/OpenGLContext/shaders/vrml97_lighting.frag +111 -0
  289. openglcontext-3.0.0a1/OpenGLContext/shaders/vrml97_lighting.vert +50 -0
  290. openglcontext-3.0.0a1/OpenGLContext/shaders/vrml97_line.frag +23 -0
  291. openglcontext-3.0.0a1/OpenGLContext/shaders/vrml97_line.vert +24 -0
  292. openglcontext-3.0.0a1/OpenGLContext/shaders/vrml97_point.frag +36 -0
  293. openglcontext-3.0.0a1/OpenGLContext/shaders/vrml97_point.vert +21 -0
  294. openglcontext-3.0.0a1/OpenGLContext/shaders/vrml97_unlit.frag +59 -0
  295. openglcontext-3.0.0a1/OpenGLContext/shaders/vrml97_unlit.vert +18 -0
  296. openglcontext-3.0.0a1/OpenGLContext/shaders/vrml97_vertex_color.frag +85 -0
  297. openglcontext-3.0.0a1/OpenGLContext/shaders/vrml97_vertex_color.vert +34 -0
  298. openglcontext-3.0.0a1/OpenGLContext/stalltrace.py +637 -0
  299. openglcontext-3.0.0a1/OpenGLContext/testing/__init__.py +67 -0
  300. openglcontext-3.0.0a1/OpenGLContext/testing/display.py +30 -0
  301. openglcontext-3.0.0a1/OpenGLContext/testing/event_injector.py +564 -0
  302. openglcontext-3.0.0a1/OpenGLContext/testing/framebuffer_comparison.py +842 -0
  303. openglcontext-3.0.0a1/OpenGLContext/testing/gl_env.py +39 -0
  304. openglcontext-3.0.0a1/OpenGLContext/testing/paths.py +23 -0
  305. openglcontext-3.0.0a1/OpenGLContext/testing/process_exit.py +30 -0
  306. openglcontext-3.0.0a1/OpenGLContext/testing/report_generator.py +594 -0
  307. openglcontext-3.0.0a1/OpenGLContext/testing/subprocess_runner.py +411 -0
  308. openglcontext-3.0.0a1/OpenGLContext/testingcontext.py +36 -0
  309. openglcontext-3.0.0a1/OpenGLContext/tests/test_atlas.py +62 -0
  310. openglcontext-3.0.0a1/OpenGLContext/tests/test_configs.py +27 -0
  311. openglcontext-3.0.0a1/OpenGLContext/tests/test_polygonsort.py +45 -0
  312. openglcontext-3.0.0a1/OpenGLContext/tests/test_utilities.py +84 -0
  313. openglcontext-3.0.0a1/OpenGLContext/tests/test_viewplatform.py +39 -0
  314. openglcontext-3.0.0a1/OpenGLContext/texture.py +449 -0
  315. openglcontext-3.0.0a1/OpenGLContext/texturecache.py +37 -0
  316. openglcontext-3.0.0a1/OpenGLContext/triangleutilities.py +89 -0
  317. openglcontext-3.0.0a1/OpenGLContext/ui/__init__.py +39 -0
  318. openglcontext-3.0.0a1/OpenGLContext/ui/bindings.py +243 -0
  319. openglcontext-3.0.0a1/OpenGLContext/ui/console.py +339 -0
  320. openglcontext-3.0.0a1/OpenGLContext/ui/debugoverlay.py +519 -0
  321. openglcontext-3.0.0a1/OpenGLContext/ui/dialogs.py +124 -0
  322. openglcontext-3.0.0a1/OpenGLContext/ui/draw.py +617 -0
  323. openglcontext-3.0.0a1/OpenGLContext/ui/gallery.py +425 -0
  324. openglcontext-3.0.0a1/OpenGLContext/ui/generate.py +195 -0
  325. openglcontext-3.0.0a1/OpenGLContext/ui/geometry.py +88 -0
  326. openglcontext-3.0.0a1/OpenGLContext/ui/hudwidgets.py +1053 -0
  327. openglcontext-3.0.0a1/OpenGLContext/ui/layout.py +263 -0
  328. openglcontext-3.0.0a1/OpenGLContext/ui/metrics.py +218 -0
  329. openglcontext-3.0.0a1/OpenGLContext/ui/overlay.py +412 -0
  330. openglcontext-3.0.0a1/OpenGLContext/ui/panel.py +459 -0
  331. openglcontext-3.0.0a1/OpenGLContext/ui/pictures.py +261 -0
  332. openglcontext-3.0.0a1/OpenGLContext/ui/screen.py +177 -0
  333. openglcontext-3.0.0a1/OpenGLContext/ui/scroll.py +297 -0
  334. openglcontext-3.0.0a1/OpenGLContext/ui/session.py +329 -0
  335. openglcontext-3.0.0a1/OpenGLContext/ui/settings.py +273 -0
  336. openglcontext-3.0.0a1/OpenGLContext/ui/skin.py +330 -0
  337. openglcontext-3.0.0a1/OpenGLContext/ui/widgets.py +1199 -0
  338. openglcontext-3.0.0a1/OpenGLContext/userpaths.py +48 -0
  339. openglcontext-3.0.0a1/OpenGLContext/utilities.py +94 -0
  340. openglcontext-3.0.0a1/OpenGLContext/viewer/__init__.py +60 -0
  341. openglcontext-3.0.0a1/OpenGLContext/viewer/adapters/__init__.py +150 -0
  342. openglcontext-3.0.0a1/OpenGLContext/viewer/adapters/base.py +157 -0
  343. openglcontext-3.0.0a1/OpenGLContext/viewer/adapters/gltf.py +31 -0
  344. openglcontext-3.0.0a1/OpenGLContext/viewer/adapters/obj.py +20 -0
  345. openglcontext-3.0.0a1/OpenGLContext/viewer/adapters/scenegraph.py +71 -0
  346. openglcontext-3.0.0a1/OpenGLContext/viewer/adapters/tiles.py +296 -0
  347. openglcontext-3.0.0a1/OpenGLContext/viewer/adapters/vrml.py +25 -0
  348. openglcontext-3.0.0a1/OpenGLContext/viewer/asyncscene.py +117 -0
  349. openglcontext-3.0.0a1/OpenGLContext/viewer/caption.py +126 -0
  350. openglcontext-3.0.0a1/OpenGLContext/viewer/capture.py +77 -0
  351. openglcontext-3.0.0a1/OpenGLContext/viewer/debug.py +78 -0
  352. openglcontext-3.0.0a1/OpenGLContext/viewer/environment.py +131 -0
  353. openglcontext-3.0.0a1/OpenGLContext/viewer/framing.py +111 -0
  354. openglcontext-3.0.0a1/OpenGLContext/viewer/library.py +235 -0
  355. openglcontext-3.0.0a1/OpenGLContext/viewer/menu.py +218 -0
  356. openglcontext-3.0.0a1/OpenGLContext/viewer/options.py +150 -0
  357. openglcontext-3.0.0a1/OpenGLContext/viewer/overlay.py +63 -0
  358. openglcontext-3.0.0a1/OpenGLContext/viewer/sceneviewer.py +1056 -0
  359. openglcontext-3.0.0a1/OpenGLContext/viewer/screens.py +172 -0
  360. openglcontext-3.0.0a1/OpenGLContext/viewer/source.py +56 -0
  361. openglcontext-3.0.0a1/OpenGLContext/visitor.py +68 -0
  362. openglcontext-3.0.0a1/OpenGLContext/vrmlcontext.py +72 -0
  363. openglcontext-3.0.0a1/OpenGLContext/wxcontext.py +424 -0
  364. openglcontext-3.0.0a1/OpenGLContext.egg-info/PKG-INFO +650 -0
  365. openglcontext-3.0.0a1/OpenGLContext.egg-info/SOURCES.txt +696 -0
  366. openglcontext-3.0.0a1/OpenGLContext.egg-info/entry_points.txt +11 -0
  367. openglcontext-3.0.0a1/OpenGLContext.egg-info/requires.txt +44 -0
  368. openglcontext-3.0.0a1/PKG-INFO +650 -0
  369. openglcontext-3.0.0a1/README.md +588 -0
  370. openglcontext-3.0.0a1/docs/audio.html +769 -0
  371. openglcontext-3.0.0a1/docs/documentation.html +321 -0
  372. openglcontext-3.0.0a1/docs/eventmodel.html +192 -0
  373. openglcontext-3.0.0a1/docs/flat.html +161 -0
  374. openglcontext-3.0.0a1/docs/gltf.html +435 -0
  375. openglcontext-3.0.0a1/docs/hud.html +617 -0
  376. openglcontext-3.0.0a1/docs/images/beautiful-game.jpg +0 -0
  377. openglcontext-3.0.0a1/docs/images/flighthelmet.jpg +0 -0
  378. openglcontext-3.0.0a1/docs/images/forest-instancing.jpg +0 -0
  379. openglcontext-3.0.0a1/docs/images/shadow_demo.jpg +0 -0
  380. openglcontext-3.0.0a1/docs/images/toronto-3dtiles.jpg +0 -0
  381. openglcontext-3.0.0a1/docs/index.html +125 -0
  382. openglcontext-3.0.0a1/docs/instancing.html +320 -0
  383. openglcontext-3.0.0a1/docs/navigation.html +331 -0
  384. openglcontext-3.0.0a1/docs/numeric_arrays.html +372 -0
  385. openglcontext-3.0.0a1/docs/overlayui.html +636 -0
  386. openglcontext-3.0.0a1/docs/particles.html +368 -0
  387. openglcontext-3.0.0a1/docs/pbr.html +575 -0
  388. openglcontext-3.0.0a1/docs/physics.html +409 -0
  389. openglcontext-3.0.0a1/docs/renderpasses.html +275 -0
  390. openglcontext-3.0.0a1/docs/shadows.html +455 -0
  391. openglcontext-3.0.0a1/docs/structure.html +316 -0
  392. openglcontext-3.0.0a1/docs/style/modern.css +126 -0
  393. openglcontext-3.0.0a1/docs/style/tutorial.css +54 -0
  394. openglcontext-3.0.0a1/docs/terrain.html +517 -0
  395. openglcontext-3.0.0a1/docs/text.html +221 -0
  396. openglcontext-3.0.0a1/docs/ubershader.html +370 -0
  397. openglcontext-3.0.0a1/docs/viewer.html +423 -0
  398. openglcontext-3.0.0a1/docs/vrml97.html +495 -0
  399. openglcontext-3.0.0a1/pyproject.toml +167 -0
  400. openglcontext-3.0.0a1/setup.cfg +4 -0
  401. openglcontext-3.0.0a1/tests/_bitmap_font.py +98 -0
  402. openglcontext-3.0.0a1/tests/_ceramic_textures.py +79 -0
  403. openglcontext-3.0.0a1/tests/_gltf_toggle_driver.py +137 -0
  404. openglcontext-3.0.0a1/tests/addnodes.py +77 -0
  405. openglcontext-3.0.0a1/tests/arbocclusionquery.py +107 -0
  406. openglcontext-3.0.0a1/tests/arbpointparameters.py +91 -0
  407. openglcontext-3.0.0a1/tests/arbsync.py +55 -0
  408. openglcontext-3.0.0a1/tests/arbwindowpos.py +117 -0
  409. openglcontext-3.0.0a1/tests/audio_spatial.py +244 -0
  410. openglcontext-3.0.0a1/tests/backgroundobject.py +29 -0
  411. openglcontext-3.0.0a1/tests/conftest.py +465 -0
  412. openglcontext-3.0.0a1/tests/cubeback_rot.py +85 -0
  413. openglcontext-3.0.0a1/tests/cubebackgroundobject.py +53 -0
  414. openglcontext-3.0.0a1/tests/dek_surf.py +79 -0
  415. openglcontext-3.0.0a1/tests/dek_texturesurf.py +122 -0
  416. openglcontext-3.0.0a1/tests/diag_examine.py +121 -0
  417. openglcontext-3.0.0a1/tests/diag_live.py +87 -0
  418. openglcontext-3.0.0a1/tests/feedback_mode.py +57 -0
  419. openglcontext-3.0.0a1/tests/frust_test_module.py +39 -0
  420. openglcontext-3.0.0a1/tests/gearobject.py +209 -0
  421. openglcontext-3.0.0a1/tests/geometry.py +168 -0
  422. openglcontext-3.0.0a1/tests/getteximage.py +62 -0
  423. openglcontext-3.0.0a1/tests/glarrayelement.py +25 -0
  424. openglcontext-3.0.0a1/tests/gldrawarrays.py +21 -0
  425. openglcontext-3.0.0a1/tests/gldrawarrays_string.py +22 -0
  426. openglcontext-3.0.0a1/tests/gldrawelements.py +23 -0
  427. openglcontext-3.0.0a1/tests/gldrawelements_list.py +59 -0
  428. openglcontext-3.0.0a1/tests/gldrawelements_string.py +30 -0
  429. openglcontext-3.0.0a1/tests/gldrawpixels.py +92 -0
  430. openglcontext-3.0.0a1/tests/gldrawpixelssynth.py +72 -0
  431. openglcontext-3.0.0a1/tests/glelathe.py +128 -0
  432. openglcontext-3.0.0a1/tests/glget.py +334 -0
  433. openglcontext-3.0.0a1/tests/glget_with_fonts.py +360 -0
  434. openglcontext-3.0.0a1/tests/glgetlight.py +29 -0
  435. openglcontext-3.0.0a1/tests/glgetmaterial.py +24 -0
  436. openglcontext-3.0.0a1/tests/glgetpixelmap.py +28 -0
  437. openglcontext-3.0.0a1/tests/glgetpolygonstipple.py +18 -0
  438. openglcontext-3.0.0a1/tests/glhistogram.py +87 -0
  439. openglcontext-3.0.0a1/tests/glinterleavedarrays.py +52 -0
  440. openglcontext-3.0.0a1/tests/glprint.py +142 -0
  441. openglcontext-3.0.0a1/tests/glu_tess.py +74 -0
  442. openglcontext-3.0.0a1/tests/glu_tess2.py +79 -0
  443. openglcontext-3.0.0a1/tests/glugetstring.py +14 -0
  444. openglcontext-3.0.0a1/tests/glut_bitmap_font.py +13 -0
  445. openglcontext-3.0.0a1/tests/glut_font.py +39 -0
  446. openglcontext-3.0.0a1/tests/glut_fullscreen.py +63 -0
  447. openglcontext-3.0.0a1/tests/glutbitmapcharacter.py +50 -0
  448. openglcontext-3.0.0a1/tests/glutmousewheel.py +43 -0
  449. openglcontext-3.0.0a1/tests/glvertex.py +20 -0
  450. openglcontext-3.0.0a1/tests/heightmap.py +106 -0
  451. openglcontext-3.0.0a1/tests/indexedfaceset_lit_npf.py +241 -0
  452. openglcontext-3.0.0a1/tests/indexedfaceset_lit_npv.py +105 -0
  453. openglcontext-3.0.0a1/tests/indexedlinesetobject.py +54 -0
  454. openglcontext-3.0.0a1/tests/lightobject.py +224 -0
  455. openglcontext-3.0.0a1/tests/line_stipple.py +44 -0
  456. openglcontext-3.0.0a1/tests/lod_demo.py +139 -0
  457. openglcontext-3.0.0a1/tests/molehill.py +153 -0
  458. openglcontext-3.0.0a1/tests/mouseover.py +54 -0
  459. openglcontext-3.0.0a1/tests/multitexture_1.py +81 -0
  460. openglcontext-3.0.0a1/tests/nehe2.py +93 -0
  461. openglcontext-3.0.0a1/tests/nehe3.py +75 -0
  462. openglcontext-3.0.0a1/tests/nehe4.py +99 -0
  463. openglcontext-3.0.0a1/tests/nehe5.py +130 -0
  464. openglcontext-3.0.0a1/tests/nehe6.py +149 -0
  465. openglcontext-3.0.0a1/tests/nehe6_compressed.py +119 -0
  466. openglcontext-3.0.0a1/tests/nehe6_convolve.py +210 -0
  467. openglcontext-3.0.0a1/tests/nehe6_multi.py +193 -0
  468. openglcontext-3.0.0a1/tests/nehe6_timer.py +160 -0
  469. openglcontext-3.0.0a1/tests/nehe7.py +240 -0
  470. openglcontext-3.0.0a1/tests/nehe8.py +249 -0
  471. openglcontext-3.0.0a1/tests/node_modify.py +40 -0
  472. openglcontext-3.0.0a1/tests/nurbsobject.py +244 -0
  473. openglcontext-3.0.0a1/tests/particles_effects.py +106 -0
  474. openglcontext-3.0.0a1/tests/particles_simple.py +248 -0
  475. openglcontext-3.0.0a1/tests/pbodemo.py +56 -0
  476. openglcontext-3.0.0a1/tests/physics_bounce.py +60 -0
  477. openglcontext-3.0.0a1/tests/physics_cook_view.py +90 -0
  478. openglcontext-3.0.0a1/tests/physics_friction.py +69 -0
  479. openglcontext-3.0.0a1/tests/physics_gravity_zones.py +66 -0
  480. openglcontext-3.0.0a1/tests/physics_joints.py +77 -0
  481. openglcontext-3.0.0a1/tests/physics_navigate.py +171 -0
  482. openglcontext-3.0.0a1/tests/physics_room_drop.py +103 -0
  483. openglcontext-3.0.0a1/tests/physics_stress.py +128 -0
  484. openglcontext-3.0.0a1/tests/physics_triggers.py +68 -0
  485. openglcontext-3.0.0a1/tests/pimbackground_BK.jpg +0 -0
  486. openglcontext-3.0.0a1/tests/pimbackground_DN.jpg +0 -0
  487. openglcontext-3.0.0a1/tests/pimbackground_FR.jpg +0 -0
  488. openglcontext-3.0.0a1/tests/pimbackground_LF.jpg +0 -0
  489. openglcontext-3.0.0a1/tests/pimbackground_RT.jpg +0 -0
  490. openglcontext-3.0.0a1/tests/pimbackground_UP.jpg +0 -0
  491. openglcontext-3.0.0a1/tests/point_and_click.py +71 -0
  492. openglcontext-3.0.0a1/tests/pointsetobject.py +64 -0
  493. openglcontext-3.0.0a1/tests/pygame_textureatlas.py +169 -0
  494. openglcontext-3.0.0a1/tests/readpixelsleak.py +99 -0
  495. openglcontext-3.0.0a1/tests/redbook_alpha.py +106 -0
  496. openglcontext-3.0.0a1/tests/redbook_alpha3D.py +149 -0
  497. openglcontext-3.0.0a1/tests/redbook_surface.py +113 -0
  498. openglcontext-3.0.0a1/tests/redbook_surface_cb.py +166 -0
  499. openglcontext-3.0.0a1/tests/redbook_trim.py +153 -0
  500. openglcontext-3.0.0a1/tests/reference_images/teapot_regression.png +0 -0
  501. openglcontext-3.0.0a1/tests/run_core_tests.py +115 -0
  502. openglcontext-3.0.0a1/tests/run_teapot_regression.py +149 -0
  503. openglcontext-3.0.0a1/tests/runalltests.py +123 -0
  504. openglcontext-3.0.0a1/tests/saveimage.py +170 -0
  505. openglcontext-3.0.0a1/tests/savepostscript.py +69 -0
  506. openglcontext-3.0.0a1/tests/selectrendermode.py +83 -0
  507. openglcontext-3.0.0a1/tests/selectrendermode_threads.py +89 -0
  508. openglcontext-3.0.0a1/tests/shader_10.py +346 -0
  509. openglcontext-3.0.0a1/tests/shader_11.py +419 -0
  510. openglcontext-3.0.0a1/tests/shader_2.py +199 -0
  511. openglcontext-3.0.0a1/tests/shader_4_subset.py +85 -0
  512. openglcontext-3.0.0a1/tests/shader_5.py +327 -0
  513. openglcontext-3.0.0a1/tests/shader_6.py +327 -0
  514. openglcontext-3.0.0a1/tests/shader_7.py +341 -0
  515. openglcontext-3.0.0a1/tests/shader_8.py +259 -0
  516. openglcontext-3.0.0a1/tests/shader_9.py +391 -0
  517. openglcontext-3.0.0a1/tests/shader_binary.py +163 -0
  518. openglcontext-3.0.0a1/tests/shader_instanced.py +341 -0
  519. openglcontext-3.0.0a1/tests/shader_instanced_mapped.py +298 -0
  520. openglcontext-3.0.0a1/tests/shader_instanced_modern.py +402 -0
  521. openglcontext-3.0.0a1/tests/shader_ng.py +250 -0
  522. openglcontext-3.0.0a1/tests/shader_sphere.py +125 -0
  523. openglcontext-3.0.0a1/tests/shadergeometry.py +123 -0
  524. openglcontext-3.0.0a1/tests/shaderobjects.py +241 -0
  525. openglcontext-3.0.0a1/tests/shaders.py +154 -0
  526. openglcontext-3.0.0a1/tests/shadow_1.py +699 -0
  527. openglcontext-3.0.0a1/tests/shadow_2.py +180 -0
  528. openglcontext-3.0.0a1/tests/shadow_demo.py +174 -0
  529. openglcontext-3.0.0a1/tests/shadow_spot.py +103 -0
  530. openglcontext-3.0.0a1/tests/solid_font.py +104 -0
  531. openglcontext-3.0.0a1/tests/spherebackgroundobject.py +84 -0
  532. openglcontext-3.0.0a1/tests/starfield.py +58 -0
  533. openglcontext-3.0.0a1/tests/teapot_ceramic.py +89 -0
  534. openglcontext-3.0.0a1/tests/teapot_nurbs.py +61 -0
  535. openglcontext-3.0.0a1/tests/test_all_scripts.py +1019 -0
  536. openglcontext-3.0.0a1/tests/test_gltf_demo_background.py +41 -0
  537. openglcontext-3.0.0a1/tests/test_gltf_demo_model_selection.py +41 -0
  538. openglcontext-3.0.0a1/tests/tiles_landscape.py +103 -0
  539. openglcontext-3.0.0a1/tests/tiles_terrain.py +76 -0
  540. openglcontext-3.0.0a1/tests/tiles_vegetation.py +60 -0
  541. openglcontext-3.0.0a1/tests/tiles_walk.py +143 -0
  542. openglcontext-3.0.0a1/tests/transforms_1.py +311 -0
  543. openglcontext-3.0.0a1/tests/transparentsorted.py +252 -0
  544. openglcontext-3.0.0a1/tests/wglpixelformatarb.py +111 -0
  545. openglcontext-3.0.0a1/tests/wrls/instanced_lattice.wrl +227 -0
  546. openglcontext-3.0.0a1/tests/wx_multiple_contexts.py +87 -0
  547. openglcontext-3.0.0a1/tests/wx_with_controls.py +79 -0
  548. OpenGLContext-2.2.0a3/MANIFEST.in +0 -44
  549. OpenGLContext-2.2.0a3/OpenGLContext/__init__.py +0 -136
  550. OpenGLContext-2.2.0a3/OpenGLContext/atlas.py +0 -300
  551. OpenGLContext-2.2.0a3/OpenGLContext/bin/choosecontext.py +0 -224
  552. OpenGLContext-2.2.0a3/OpenGLContext/bin/choosefonts.py +0 -188
  553. OpenGLContext-2.2.0a3/OpenGLContext/bin/gltest.py +0 -95
  554. OpenGLContext-2.2.0a3/OpenGLContext/bin/keyboardevents.py +0 -93
  555. OpenGLContext-2.2.0a3/OpenGLContext/bin/lorentz.py +0 -108
  556. OpenGLContext-2.2.0a3/OpenGLContext/bin/profile_view.py +0 -58
  557. OpenGLContext-2.2.0a3/OpenGLContext/bin/visualshell.py +0 -160
  558. OpenGLContext-2.2.0a3/OpenGLContext/bin/vrml_view.py +0 -37
  559. OpenGLContext-2.2.0a3/OpenGLContext/bin/vrml_view_shadow.py +0 -24
  560. OpenGLContext-2.2.0a3/OpenGLContext/browser/__init__.py +0 -2
  561. OpenGLContext-2.2.0a3/OpenGLContext/browser/browsercontext.py +0 -62
  562. OpenGLContext-2.2.0a3/OpenGLContext/browser/crayola.py +0 -9
  563. OpenGLContext-2.2.0a3/OpenGLContext/browser/default_world.wrl +0 -18
  564. OpenGLContext-2.2.0a3/OpenGLContext/browser/defaultbindings.py +0 -71
  565. OpenGLContext-2.2.0a3/OpenGLContext/browser/geometry.py +0 -174
  566. OpenGLContext-2.2.0a3/OpenGLContext/browser/homedirectory.py +0 -76
  567. OpenGLContext-2.2.0a3/OpenGLContext/browser/interactivity.py +0 -57
  568. OpenGLContext-2.2.0a3/OpenGLContext/browser/nodes.py +0 -128
  569. OpenGLContext-2.2.0a3/OpenGLContext/browser/passes.py +0 -68
  570. OpenGLContext-2.2.0a3/OpenGLContext/browser/proxy.py +0 -57
  571. OpenGLContext-2.2.0a3/OpenGLContext/browser/vector.py +0 -103
  572. OpenGLContext-2.2.0a3/OpenGLContext/browser/visual.py +0 -295
  573. OpenGLContext-2.2.0a3/OpenGLContext/browser/vpcurve.py +0 -107
  574. OpenGLContext-2.2.0a3/OpenGLContext/context.py +0 -936
  575. OpenGLContext-2.2.0a3/OpenGLContext/contextdefinition.py +0 -48
  576. OpenGLContext-2.2.0a3/OpenGLContext/debug/bufferimage.py +0 -80
  577. OpenGLContext-2.2.0a3/OpenGLContext/debug/leaks.py +0 -13
  578. OpenGLContext-2.2.0a3/OpenGLContext/debug/logs.py +0 -15
  579. OpenGLContext-2.2.0a3/OpenGLContext/displaylist.py +0 -59
  580. OpenGLContext-2.2.0a3/OpenGLContext/doinchildmatrix.py +0 -34
  581. OpenGLContext-2.2.0a3/OpenGLContext/events/default_config.py +0 -29
  582. OpenGLContext-2.2.0a3/OpenGLContext/events/event.py +0 -54
  583. OpenGLContext-2.2.0a3/OpenGLContext/events/eventhandlermixin.py +0 -157
  584. OpenGLContext-2.2.0a3/OpenGLContext/events/eventmanager.py +0 -245
  585. OpenGLContext-2.2.0a3/OpenGLContext/events/fxevents.py +0 -90
  586. OpenGLContext-2.2.0a3/OpenGLContext/events/glutevents.py +0 -151
  587. OpenGLContext-2.2.0a3/OpenGLContext/events/internaltime.py +0 -161
  588. OpenGLContext-2.2.0a3/OpenGLContext/events/keyboardevents.py +0 -136
  589. OpenGLContext-2.2.0a3/OpenGLContext/events/mouseevents.py +0 -421
  590. OpenGLContext-2.2.0a3/OpenGLContext/events/pygameevents.py +0 -136
  591. OpenGLContext-2.2.0a3/OpenGLContext/events/timeeventgeneratormanager.py +0 -40
  592. OpenGLContext-2.2.0a3/OpenGLContext/events/timeevents.py +0 -143
  593. OpenGLContext-2.2.0a3/OpenGLContext/events/timer.py +0 -170
  594. OpenGLContext-2.2.0a3/OpenGLContext/events/tkevents.py +0 -172
  595. OpenGLContext-2.2.0a3/OpenGLContext/events/wxevents.py +0 -182
  596. OpenGLContext-2.2.0a3/OpenGLContext/extensionmanager.py +0 -148
  597. OpenGLContext-2.2.0a3/OpenGLContext/framecounter.py +0 -78
  598. OpenGLContext-2.2.0a3/OpenGLContext/frustum.py +0 -128
  599. OpenGLContext-2.2.0a3/OpenGLContext/glutcontext.py +0 -176
  600. OpenGLContext-2.2.0a3/OpenGLContext/glutvrmlcontext.py +0 -27
  601. OpenGLContext-2.2.0a3/OpenGLContext/loaders/base.py +0 -72
  602. OpenGLContext-2.2.0a3/OpenGLContext/loaders/gzpickle.py +0 -57
  603. OpenGLContext-2.2.0a3/OpenGLContext/loaders/loader.py +0 -170
  604. OpenGLContext-2.2.0a3/OpenGLContext/loaders/obj.py +0 -293
  605. OpenGLContext-2.2.0a3/OpenGLContext/loaders/twitch.py.~1~ +0 -310
  606. OpenGLContext-2.2.0a3/OpenGLContext/loaders/vrml2pklgz.py +0 -28
  607. OpenGLContext-2.2.0a3/OpenGLContext/loaders/vrml97.py +0 -117
  608. OpenGLContext-2.2.0a3/OpenGLContext/move/direct.py +0 -158
  609. OpenGLContext-2.2.0a3/OpenGLContext/move/examinemanager.py +0 -89
  610. OpenGLContext-2.2.0a3/OpenGLContext/move/fps.py +0 -14
  611. OpenGLContext-2.2.0a3/OpenGLContext/move/movementmanager.py +0 -59
  612. OpenGLContext-2.2.0a3/OpenGLContext/move/smooth.py +0 -69
  613. OpenGLContext-2.2.0a3/OpenGLContext/move/trackball.py +0 -92
  614. OpenGLContext-2.2.0a3/OpenGLContext/move/viewplatform.py +0 -263
  615. OpenGLContext-2.2.0a3/OpenGLContext/move/viewplatformmixin.py +0 -121
  616. OpenGLContext-2.2.0a3/OpenGLContext/passes/_flat.py +0 -597
  617. OpenGLContext-2.2.0a3/OpenGLContext/passes/flat.py +0 -5
  618. OpenGLContext-2.2.0a3/OpenGLContext/passes/flatcompat.py +0 -337
  619. OpenGLContext-2.2.0a3/OpenGLContext/passes/flatcore.py +0 -321
  620. OpenGLContext-2.2.0a3/OpenGLContext/passes/renderpass.py +0 -867
  621. OpenGLContext-2.2.0a3/OpenGLContext/passes/rendervisitor.py +0 -420
  622. OpenGLContext-2.2.0a3/OpenGLContext/plugins.py +0 -49
  623. OpenGLContext-2.2.0a3/OpenGLContext/pygamecontext.py +0 -153
  624. OpenGLContext-2.2.0a3/OpenGLContext/pygameinteractivecontext.py +0 -39
  625. OpenGLContext-2.2.0a3/OpenGLContext/quaternion.py +0 -197
  626. OpenGLContext-2.2.0a3/OpenGLContext/resources/__init__.py +0 -36
  627. OpenGLContext-2.2.0a3/OpenGLContext/resources/available_contexts_txt.py +0 -9
  628. OpenGLContext-2.2.0a3/OpenGLContext/resources/context_icon_png.py +0 -46
  629. OpenGLContext-2.2.0a3/OpenGLContext/resources/context_icon_small_png.py +0 -21
  630. OpenGLContext-2.2.0a3/OpenGLContext/resources/directlight_frag.py +0 -16
  631. OpenGLContext-2.2.0a3/OpenGLContext/resources/disk_icon_hi_png.py +0 -14
  632. OpenGLContext-2.2.0a3/OpenGLContext/resources/disk_icon_png.py +0 -15
  633. OpenGLContext-2.2.0a3/OpenGLContext/resources/green_arrow_right_png.py +0 -47
  634. OpenGLContext-2.2.0a3/OpenGLContext/resources/legacy_lighting_vert_txt.py +0 -18
  635. OpenGLContext-2.2.0a3/OpenGLContext/resources/lights_vert_txt.py +0 -23
  636. OpenGLContext-2.2.0a3/OpenGLContext/resources/phongprecalc_vert.py +0 -30
  637. OpenGLContext-2.2.0a3/OpenGLContext/resources/phongweights_frag.py +0 -47
  638. OpenGLContext-2.2.0a3/OpenGLContext/resources/pygame_icon_png.py +0 -47
  639. OpenGLContext-2.2.0a3/OpenGLContext/resources/red_arrow_right_png.py +0 -50
  640. OpenGLContext-2.2.0a3/OpenGLContext/resources/simpleshader_frag_txt.py +0 -9
  641. OpenGLContext-2.2.0a3/OpenGLContext/resources/simpleshader_vert_txt.py +0 -10
  642. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/appearance.py +0 -101
  643. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/arraygeometry.py +0 -218
  644. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/background.py +0 -82
  645. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/basenodes.py +0 -45
  646. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/boundingvolume.py +0 -416
  647. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/box.py +0 -140
  648. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/cubebackground.py +0 -192
  649. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/extrusions.py +0 -216
  650. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/gear.py +0 -172
  651. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/imagetexture.py +0 -344
  652. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/indexedfaceset.py +0 -795
  653. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/indexedlineset.py +0 -192
  654. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/indexedpolygons.py +0 -330
  655. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/inline.py +0 -79
  656. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/interpolators.py +0 -110
  657. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/light.py +0 -175
  658. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/material.py +0 -99
  659. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/nurbs.py +0 -391
  660. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/pointset.py +0 -96
  661. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/polygon.py +0 -167
  662. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/polygonsort.py +0 -122
  663. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/polygontessellator.py +0 -213
  664. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/quadrics.py +0 -329
  665. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/shaders.py +0 -682
  666. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/shape.py +0 -160
  667. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/spherebackground.py +0 -279
  668. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/switch.py +0 -75
  669. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/teapot.py +0 -51
  670. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/text/_toolsfont.py +0 -199
  671. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/text/font.py +0 -450
  672. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/text/fontprovider.py +0 -156
  673. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/text/glutfont.py +0 -171
  674. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/text/pygamefont.py +0 -213
  675. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/text/text.py +0 -68
  676. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/text/toolsfont.py +0 -417
  677. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/text/ttfregistry.py +0 -131
  678. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/text/wglfont.py +0 -232
  679. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/text/wxfont.py +0 -287
  680. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/texturetransform.py +0 -66
  681. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/transform.py +0 -118
  682. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/vertex.py +0 -54
  683. OpenGLContext-2.2.0a3/OpenGLContext/scenegraph/viewpoint.py +0 -34
  684. OpenGLContext-2.2.0a3/OpenGLContext/shadow/__init__.py +0 -29
  685. OpenGLContext-2.2.0a3/OpenGLContext/shadow/edgeset.py +0 -240
  686. OpenGLContext-2.2.0a3/OpenGLContext/shadow/passes.py +0 -405
  687. OpenGLContext-2.2.0a3/OpenGLContext/shadow/pinfperspective.py +0 -29
  688. OpenGLContext-2.2.0a3/OpenGLContext/shadow/shadowcontext.py +0 -63
  689. OpenGLContext-2.2.0a3/OpenGLContext/shadow/volume.py +0 -332
  690. OpenGLContext-2.2.0a3/OpenGLContext/testingcontext.py +0 -35
  691. OpenGLContext-2.2.0a3/OpenGLContext/texture.py +0 -350
  692. OpenGLContext-2.2.0a3/OpenGLContext/texturecache.py +0 -37
  693. OpenGLContext-2.2.0a3/OpenGLContext/triangleutilities.py +0 -89
  694. OpenGLContext-2.2.0a3/OpenGLContext/utilities.py +0 -91
  695. OpenGLContext-2.2.0a3/OpenGLContext/visitor.py +0 -389
  696. OpenGLContext-2.2.0a3/OpenGLContext/vrmlcontext.py +0 -60
  697. OpenGLContext-2.2.0a3/OpenGLContext/wxcontext.py +0 -315
  698. OpenGLContext-2.2.0a3/OpenGLContext.egg-info/PKG-INFO +0 -31
  699. OpenGLContext-2.2.0a3/OpenGLContext.egg-info/SOURCES.txt +0 -430
  700. OpenGLContext-2.2.0a3/PKG-INFO +0 -31
  701. OpenGLContext-2.2.0a3/docs/documentation.html +0 -175
  702. OpenGLContext-2.2.0a3/docs/eventmodel.html +0 -159
  703. OpenGLContext-2.2.0a3/docs/index.html +0 -236
  704. OpenGLContext-2.2.0a3/docs/numeric_arrays.html +0 -394
  705. OpenGLContext-2.2.0a3/docs/renderflat.html +0 -174
  706. OpenGLContext-2.2.0a3/docs/renderprocess.html +0 -531
  707. OpenGLContext-2.2.0a3/docs/structure.html +0 -107
  708. OpenGLContext-2.2.0a3/docs/style/tutorial.css +0 -59
  709. OpenGLContext-2.2.0a3/docs/text.html +0 -200
  710. OpenGLContext-2.2.0a3/docs/vrml97.html +0 -477
  711. OpenGLContext-2.2.0a3/pydoc/builddocs.py +0 -38
  712. OpenGLContext-2.2.0a3/pydoc/find_gldoc.py +0 -560
  713. OpenGLContext-2.2.0a3/pydoc/gldoc.py +0 -12
  714. OpenGLContext-2.2.0a3/pydoc/pydoc2.py +0 -382
  715. OpenGLContext-2.2.0a3/pydoc/upload.py +0 -8
  716. OpenGLContext-2.2.0a3/readme.txt +0 -409
  717. OpenGLContext-2.2.0a3/setup.cfg +0 -5
  718. OpenGLContext-2.2.0a3/setup.py +0 -77
  719. OpenGLContext-2.2.0a3/tests/_bitmap_font.py +0 -98
  720. OpenGLContext-2.2.0a3/tests/addnodes.py +0 -60
  721. OpenGLContext-2.2.0a3/tests/arbocclusionquery.py +0 -105
  722. OpenGLContext-2.2.0a3/tests/arbpointparameters.py +0 -85
  723. OpenGLContext-2.2.0a3/tests/arbsync.py +0 -55
  724. OpenGLContext-2.2.0a3/tests/arbwindowpos.py +0 -117
  725. OpenGLContext-2.2.0a3/tests/backgroundobject.py +0 -30
  726. OpenGLContext-2.2.0a3/tests/boundingvolume.py +0 -103
  727. OpenGLContext-2.2.0a3/tests/coreprofile.py +0 -117
  728. OpenGLContext-2.2.0a3/tests/cubeback_rot.py +0 -81
  729. OpenGLContext-2.2.0a3/tests/cubebackgroundobject.py +0 -35
  730. OpenGLContext-2.2.0a3/tests/dek_surf.py +0 -78
  731. OpenGLContext-2.2.0a3/tests/dek_texturesurf.py +0 -116
  732. OpenGLContext-2.2.0a3/tests/feedback_mode.py +0 -57
  733. OpenGLContext-2.2.0a3/tests/frust_test_module.py +0 -39
  734. OpenGLContext-2.2.0a3/tests/gearobject.py +0 -210
  735. OpenGLContext-2.2.0a3/tests/geometry.py +0 -169
  736. OpenGLContext-2.2.0a3/tests/getteximage.py +0 -62
  737. OpenGLContext-2.2.0a3/tests/glarrayelement.py +0 -27
  738. OpenGLContext-2.2.0a3/tests/gldrawarrays.py +0 -23
  739. OpenGLContext-2.2.0a3/tests/gldrawarrays_string.py +0 -22
  740. OpenGLContext-2.2.0a3/tests/gldrawelements.py +0 -26
  741. OpenGLContext-2.2.0a3/tests/gldrawelements_list.py +0 -61
  742. OpenGLContext-2.2.0a3/tests/gldrawelements_string.py +0 -32
  743. OpenGLContext-2.2.0a3/tests/gldrawpixels.py +0 -94
  744. OpenGLContext-2.2.0a3/tests/gldrawpixelssynth.py +0 -74
  745. OpenGLContext-2.2.0a3/tests/glelathe.py +0 -122
  746. OpenGLContext-2.2.0a3/tests/glget.py +0 -335
  747. OpenGLContext-2.2.0a3/tests/glget_with_fonts.py +0 -352
  748. OpenGLContext-2.2.0a3/tests/glgetlight.py +0 -30
  749. OpenGLContext-2.2.0a3/tests/glgetmaterial.py +0 -25
  750. OpenGLContext-2.2.0a3/tests/glgetpixelmap.py +0 -29
  751. OpenGLContext-2.2.0a3/tests/glgetpolygonstipple.py +0 -19
  752. OpenGLContext-2.2.0a3/tests/glhistogram.py +0 -90
  753. OpenGLContext-2.2.0a3/tests/glinterleavedarrays.py +0 -52
  754. OpenGLContext-2.2.0a3/tests/glprint.py +0 -145
  755. OpenGLContext-2.2.0a3/tests/glu_tess.py +0 -67
  756. OpenGLContext-2.2.0a3/tests/glu_tess2.py +0 -79
  757. OpenGLContext-2.2.0a3/tests/glugetstring.py +0 -14
  758. OpenGLContext-2.2.0a3/tests/glut_bitmap_font.py +0 -9
  759. OpenGLContext-2.2.0a3/tests/glut_font.py +0 -39
  760. OpenGLContext-2.2.0a3/tests/glut_fullscreen.py +0 -56
  761. OpenGLContext-2.2.0a3/tests/glutbitmapcharacter.py +0 -53
  762. OpenGLContext-2.2.0a3/tests/glutmousewheel.py +0 -40
  763. OpenGLContext-2.2.0a3/tests/glvertex.py +0 -21
  764. OpenGLContext-2.2.0a3/tests/heightmap.py +0 -92
  765. OpenGLContext-2.2.0a3/tests/indexedfaceset_lit_npf.py +0 -236
  766. OpenGLContext-2.2.0a3/tests/indexedfaceset_lit_npv.py +0 -93
  767. OpenGLContext-2.2.0a3/tests/indexedlinesetobject.py +0 -44
  768. OpenGLContext-2.2.0a3/tests/lightobject.py +0 -224
  769. OpenGLContext-2.2.0a3/tests/line_stipple.py +0 -39
  770. OpenGLContext-2.2.0a3/tests/molehill.py +0 -154
  771. OpenGLContext-2.2.0a3/tests/mouseover.py +0 -54
  772. OpenGLContext-2.2.0a3/tests/multitexture_1.py +0 -74
  773. OpenGLContext-2.2.0a3/tests/nehe2.py +0 -79
  774. OpenGLContext-2.2.0a3/tests/nehe3.py +0 -68
  775. OpenGLContext-2.2.0a3/tests/nehe4.py +0 -92
  776. OpenGLContext-2.2.0a3/tests/nehe5.py +0 -123
  777. OpenGLContext-2.2.0a3/tests/nehe6.py +0 -142
  778. OpenGLContext-2.2.0a3/tests/nehe6_convolve.py +0 -200
  779. OpenGLContext-2.2.0a3/tests/nehe6_multi.py +0 -184
  780. OpenGLContext-2.2.0a3/tests/nehe6_timer.py +0 -152
  781. OpenGLContext-2.2.0a3/tests/nehe7.py +0 -231
  782. OpenGLContext-2.2.0a3/tests/nehe8.py +0 -239
  783. OpenGLContext-2.2.0a3/tests/node_modify.py +0 -40
  784. OpenGLContext-2.2.0a3/tests/numpyfields.py +0 -16
  785. OpenGLContext-2.2.0a3/tests/nurbsobject.py +0 -127
  786. OpenGLContext-2.2.0a3/tests/particles_simple.py +0 -233
  787. OpenGLContext-2.2.0a3/tests/pbodemo.py +0 -59
  788. OpenGLContext-2.2.0a3/tests/point_and_click.py +0 -67
  789. OpenGLContext-2.2.0a3/tests/pointsetobject.py +0 -56
  790. OpenGLContext-2.2.0a3/tests/profile_view.py +0 -60
  791. OpenGLContext-2.2.0a3/tests/pygame_textureatlas.py +0 -166
  792. OpenGLContext-2.2.0a3/tests/readpixelsleak.py +0 -100
  793. OpenGLContext-2.2.0a3/tests/redbook_alpha.py +0 -110
  794. OpenGLContext-2.2.0a3/tests/redbook_alpha3D.py +0 -147
  795. OpenGLContext-2.2.0a3/tests/redbook_surface.py +0 -115
  796. OpenGLContext-2.2.0a3/tests/redbook_surface_cb.py +0 -169
  797. OpenGLContext-2.2.0a3/tests/redbook_trim.py +0 -154
  798. OpenGLContext-2.2.0a3/tests/runalltests.py +0 -194
  799. OpenGLContext-2.2.0a3/tests/saveimage.py +0 -170
  800. OpenGLContext-2.2.0a3/tests/savepostscript.py +0 -72
  801. OpenGLContext-2.2.0a3/tests/selectrendermode.py +0 -84
  802. OpenGLContext-2.2.0a3/tests/selectrendermode_threads.py +0 -90
  803. OpenGLContext-2.2.0a3/tests/shader_10.py +0 -344
  804. OpenGLContext-2.2.0a3/tests/shader_11.py +0 -415
  805. OpenGLContext-2.2.0a3/tests/shader_1_unicode.py +0 -51
  806. OpenGLContext-2.2.0a3/tests/shader_2.py +0 -199
  807. OpenGLContext-2.2.0a3/tests/shader_5.py +0 -327
  808. OpenGLContext-2.2.0a3/tests/shader_6.py +0 -327
  809. OpenGLContext-2.2.0a3/tests/shader_7.py +0 -341
  810. OpenGLContext-2.2.0a3/tests/shader_8.py +0 -259
  811. OpenGLContext-2.2.0a3/tests/shader_9.py +0 -391
  812. OpenGLContext-2.2.0a3/tests/shader_binary.py +0 -158
  813. OpenGLContext-2.2.0a3/tests/shader_instanced.py +0 -311
  814. OpenGLContext-2.2.0a3/tests/shader_ng.py +0 -242
  815. OpenGLContext-2.2.0a3/tests/shader_sphere.py +0 -119
  816. OpenGLContext-2.2.0a3/tests/shadergeometry.py +0 -115
  817. OpenGLContext-2.2.0a3/tests/shaderobjects.py +0 -240
  818. OpenGLContext-2.2.0a3/tests/shaders.py +0 -82
  819. OpenGLContext-2.2.0a3/tests/shadow_1.py +0 -696
  820. OpenGLContext-2.2.0a3/tests/shadow_2.py +0 -180
  821. OpenGLContext-2.2.0a3/tests/solid_font.py +0 -78
  822. OpenGLContext-2.2.0a3/tests/spherebackgroundobject.py +0 -73
  823. OpenGLContext-2.2.0a3/tests/starfield.py +0 -55
  824. OpenGLContext-2.2.0a3/tests/test_glvertex2fcrash.py +0 -23
  825. OpenGLContext-2.2.0a3/tests/transparentsorted.py +0 -245
  826. OpenGLContext-2.2.0a3/tests/wglpixelformatarb.py +0 -104
  827. OpenGLContext-2.2.0a3/tests/wx_multiple_contexts.py +0 -86
  828. OpenGLContext-2.2.0a3/tests/wx_with_controls.py +0 -79
  829. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/arrays.py +0 -0
  830. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/bin/__init__.py +0 -0
  831. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/debug/__init__.py +0 -0
  832. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/debug/logcontext.py +0 -0
  833. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/debug/state.py +0 -0
  834. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/drawcube.py +0 -0
  835. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/events/__init__.py +0 -0
  836. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/events/systemtime.py +0 -0
  837. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/glutinteractivecontext.py +0 -0
  838. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/gluttestingcontext.py +0 -0
  839. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/glutvrmltestingcontext.py +0 -0
  840. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/interactivecontext.py +0 -0
  841. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/loaders/__init__.py +0 -0
  842. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/move/__init__.py +0 -0
  843. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/move/dragwatcher.py +0 -0
  844. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/passes/__init__.py +0 -0
  845. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/pygametestingcontext.py +0 -0
  846. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/pygamevrmlcontext.py +0 -0
  847. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/resources/available_contexts.txt +0 -0
  848. {OpenGLContext-2.2.0a3/tests → openglcontext-3.0.0a1/OpenGLContext/resources/environment}/pimbackground_BK.jpg +0 -0
  849. {OpenGLContext-2.2.0a3/tests → openglcontext-3.0.0a1/OpenGLContext/resources/environment}/pimbackground_DN.jpg +0 -0
  850. {OpenGLContext-2.2.0a3/tests → openglcontext-3.0.0a1/OpenGLContext/resources/environment}/pimbackground_FR.jpg +0 -0
  851. {OpenGLContext-2.2.0a3/tests → openglcontext-3.0.0a1/OpenGLContext/resources/environment}/pimbackground_LF.jpg +0 -0
  852. {OpenGLContext-2.2.0a3/tests → openglcontext-3.0.0a1/OpenGLContext/resources/environment}/pimbackground_RT.jpg +0 -0
  853. {OpenGLContext-2.2.0a3/tests → openglcontext-3.0.0a1/OpenGLContext/resources/environment}/pimbackground_UP.jpg +0 -0
  854. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/resources/legacy_lighting.vert.txt +0 -0
  855. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/resources/lights.vert.txt +0 -0
  856. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/resources/simpleshader.frag.txt +0 -0
  857. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/resources/simpleshader.vert.txt +0 -0
  858. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/__init__.py +0 -0
  859. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/billboard.py +0 -0
  860. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/collision.py +0 -0
  861. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/coordinate.py +0 -0
  862. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/coordinatebounded.py +0 -0
  863. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/group.py +0 -0
  864. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/grouping.py +0 -0
  865. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/lod.py +0 -0
  866. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/mouseover.py +0 -0
  867. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/nodepath.py +0 -0
  868. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/scenegraph.py +0 -0
  869. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/simplebackground.py +0 -0
  870. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/text/__init__.py +0 -0
  871. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/text/fontstyle3d.py +0 -0
  872. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/text/wglfontprovider.py +0 -0
  873. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/scenegraph/timesensor.py +0 -0
  874. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/vectorutilities.py +0 -0
  875. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/wxinteractivecontext.py +0 -0
  876. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/wxtestingcontext.py +0 -0
  877. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext/wxvrmlcontext.py +0 -0
  878. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext.egg-info/dependency_links.txt +0 -0
  879. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/OpenGLContext.egg-info/top_level.txt +0 -0
  880. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/docs/images/context-icon-small.png +0 -0
  881. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/docs/images/context_logo.gif +0 -0
  882. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/docs/images/context_logo_icon.png +0 -0
  883. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/docs/images/doc_icon.gif +0 -0
  884. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/docs/images/greypinstripe.png +0 -0
  885. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/docs/images/project_icon.png +0 -0
  886. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/docs/images/pyopengl_icon.jpg +0 -0
  887. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/docs/images/text_simple.png +0 -0
  888. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/docs/style/sitestyle.css +0 -0
  889. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/docs/tutorials/tutorial.css +0 -0
  890. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/license.txt +0 -0
  891. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/__init__.py +0 -0
  892. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/_fontstyles.py +0 -0
  893. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/_particle.png +0 -0
  894. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/_shader_tut_lightprecalc.vert +0 -0
  895. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/flower_geometry.py +0 -0
  896. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/gldrawpixels.png +0 -0
  897. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/heightmap.png +0 -0
  898. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/ilsstrategies.py +0 -0
  899. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/lightmap.png +0 -0
  900. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/lightmap1.jpg +0 -0
  901. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/marbleface.jpeg +0 -0
  902. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/nehe1.py +0 -0
  903. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/nehe_crate.bmp +0 -0
  904. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/nehe_glass.bmp +0 -0
  905. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/nehe_wall.bmp +0 -0
  906. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/pygame_font.py +0 -0
  907. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/resources/3Dlabs-License.txt +0 -0
  908. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/resources/CH18-mandel.frag.txt +0 -0
  909. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/resources/CH18-mandel.vert.txt +0 -0
  910. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/resources/discard.frag.txt +0 -0
  911. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/resources/grid.frag.txt +0 -0
  912. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/resources/oblongimage.png +0 -0
  913. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/resources/simpletexture.frag.txt +0 -0
  914. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/resources/test_context_set.txt +0 -0
  915. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/resources/test_vrml_set.txt +0 -0
  916. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/resources/toon.frag.txt +0 -0
  917. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/resources/toon.vert.txt +0 -0
  918. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/shader_1.py +0 -0
  919. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/shader_12.py +0 -0
  920. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/shader_2_c_void_p.py +0 -0
  921. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/shader_3.py +0 -0
  922. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/shader_4.py +0 -0
  923. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/shader_intro.py +0 -0
  924. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/shader_spike.py +0 -0
  925. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/simplerotate.py +0 -0
  926. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/timesensorobject.py +0 -0
  927. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wgl_bitmap_font.py +0 -0
  928. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wgl_font.py +0 -0
  929. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/3shapes.wrl +0 -0
  930. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/3spheres.wrl +0 -0
  931. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/axis.wrl +0 -0
  932. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/bad_pngs.wrl +0 -0
  933. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/box.wrl +0 -0
  934. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/box_shadow.wrl +0 -0
  935. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/clear wood flooring.jpg +0 -0
  936. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/colorinterpolator.wrl +0 -0
  937. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/coordinterpolator.wrl +0 -0
  938. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/degenerate1.wrl +0 -0
  939. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/degenerate2.wrl +0 -0
  940. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/indexedpolygons.wrl +0 -0
  941. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/irradiation.jpg +0 -0
  942. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/light1.png +0 -0
  943. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/light2.png +0 -0
  944. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/logoinstaller.png +0 -0
  945. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/luminance.png +0 -0
  946. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/luminance_alpha.png +0 -0
  947. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/nurbscurve.wrl +0 -0
  948. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/pixeltexture.wrl +0 -0
  949. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/plane_shadow.wrl +0 -0
  950. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/positioninterpolator.wrl +0 -0
  951. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/proto_is_simple.wrl +0 -0
  952. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/pyramid.wrl +0 -0
  953. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/simple_occlude.wrl +0 -0
  954. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/simple_plane.wrl +0 -0
  955. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/simple_scene01.wrl +0 -0
  956. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/simple_texturea.jpg +0 -0
  957. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/simple_texturergb.png +0 -0
  958. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/simple_texturergba.png +0 -0
  959. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/sphere2.wrl +0 -0
  960. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/sphere3.wrl +0 -0
  961. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/sphere4.wrl +0 -0
  962. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/tessellate01.wrl +0 -0
  963. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/tessellate4ptcoplanar.wrl +0 -0
  964. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/tessellatewcombine.wrl +0 -0
  965. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/tessellatewcombine_shell.wrl +0 -0
  966. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/text.wrl +0 -0
  967. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/text3d.wrl +0 -0
  968. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/text_bitmap.wrl +0 -0
  969. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/text_simple.wrl +0 -0
  970. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/text_simple_r.wrl +0 -0
  971. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/texture_luminance.wrl +0 -0
  972. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/texture_repeat.wrl +0 -0
  973. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/texture_transparency.wrl +0 -0
  974. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/texture_transparency2.wrl +0 -0
  975. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/timesensor.wrl +0 -0
  976. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/transparency_multiple.wrl +0 -0
  977. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/viewpoints.wrl +0 -0
  978. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/tests/wrls/yingyang.png +0 -0
  979. {OpenGLContext-2.2.0a3 → openglcontext-3.0.0a1}/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.0a1"
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
+ }