OpenGLContext 3.0.0a2__tar.gz → 3.0.0a4__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.
- openglcontext-3.0.0a4/OpenGLContext/__init__.py +183 -0
- openglcontext-3.0.0a4/OpenGLContext/__pyinstaller/__init__.py +18 -0
- openglcontext-3.0.0a4/OpenGLContext/__pyinstaller/hook-OpenGLContext.py +54 -0
- openglcontext-3.0.0a4/OpenGLContext/__pyinstaller/hook-glfw.py +17 -0
- openglcontext-3.0.0a4/OpenGLContext/atlas.py +302 -0
- openglcontext-3.0.0a4/OpenGLContext/bin/character_sheet.py +305 -0
- openglcontext-3.0.0a4/OpenGLContext/bin/choosecontext.py +229 -0
- openglcontext-3.0.0a4/OpenGLContext/bin/choosefonts.py +219 -0
- openglcontext-3.0.0a4/OpenGLContext/bin/gltest.py +173 -0
- openglcontext-3.0.0a4/OpenGLContext/bin/gltf_demo.py +514 -0
- openglcontext-3.0.0a4/OpenGLContext/bin/gltf_regression.py +661 -0
- openglcontext-3.0.0a4/OpenGLContext/bin/keyboardevents.py +96 -0
- openglcontext-3.0.0a4/OpenGLContext/bin/lorentz.py +122 -0
- openglcontext-3.0.0a4/OpenGLContext/bin/profile_view.py +44 -0
- openglcontext-3.0.0a4/OpenGLContext/bin/terrain_view.py +582 -0
- openglcontext-3.0.0a4/OpenGLContext/bin/view.py +270 -0
- openglcontext-3.0.0a4/OpenGLContext/capture.py +151 -0
- openglcontext-3.0.0a4/OpenGLContext/character/__init__.py +37 -0
- openglcontext-3.0.0a4/OpenGLContext/character/attachment.py +159 -0
- openglcontext-3.0.0a4/OpenGLContext/character/clip.py +456 -0
- openglcontext-3.0.0a4/OpenGLContext/character/crowd.py +813 -0
- openglcontext-3.0.0a4/OpenGLContext/character/gpuskeleton.py +507 -0
- openglcontext-3.0.0a4/OpenGLContext/character/humanoid.py +466 -0
- openglcontext-3.0.0a4/OpenGLContext/character/levels.py +148 -0
- openglcontext-3.0.0a4/OpenGLContext/character/mixer.py +802 -0
- openglcontext-3.0.0a4/OpenGLContext/character/model.py +128 -0
- openglcontext-3.0.0a4/OpenGLContext/character/rig.py +259 -0
- openglcontext-3.0.0a4/OpenGLContext/character/wander.py +576 -0
- openglcontext-3.0.0a4/OpenGLContext/contactsheet.py +133 -0
- openglcontext-3.0.0a4/OpenGLContext/context.py +1803 -0
- openglcontext-3.0.0a4/OpenGLContext/contextconfig.py +231 -0
- openglcontext-3.0.0a4/OpenGLContext/contextdefinition.py +323 -0
- openglcontext-3.0.0a4/OpenGLContext/contextresources.py +107 -0
- openglcontext-3.0.0a4/OpenGLContext/debug/bufferimage.py +111 -0
- openglcontext-3.0.0a4/OpenGLContext/debug/leaks.py +46 -0
- openglcontext-3.0.0a4/OpenGLContext/debug/logcontext.py +38 -0
- openglcontext-3.0.0a4/OpenGLContext/debug/logs.py +19 -0
- openglcontext-3.0.0a4/OpenGLContext/debug/state.py +340 -0
- openglcontext-3.0.0a4/OpenGLContext/demos/__init__.py +49 -0
- openglcontext-3.0.0a4/OpenGLContext/demos/packaging/README.md +64 -0
- openglcontext-3.0.0a4/OpenGLContext/demos/packaging/build-deb.sh +51 -0
- openglcontext-3.0.0a4/OpenGLContext/demos/packaging/deb-project/pyproject.toml +39 -0
- openglcontext-3.0.0a4/OpenGLContext/demos/packaging/entry.py +35 -0
- openglcontext-3.0.0a4/OpenGLContext/demos/packaging/viewer-demos.spec +82 -0
- openglcontext-3.0.0a4/OpenGLContext/demos/tk_viewer.py +312 -0
- openglcontext-3.0.0a4/OpenGLContext/demos/wx_viewer.py +343 -0
- openglcontext-3.0.0a4/OpenGLContext/displaylist.py +79 -0
- openglcontext-3.0.0a4/OpenGLContext/doinchildmatrix.py +38 -0
- openglcontext-3.0.0a4/OpenGLContext/drawcube.py +68 -0
- openglcontext-3.0.0a4/OpenGLContext/edit/__init__.py +10 -0
- openglcontext-3.0.0a4/OpenGLContext/edit/controlnet.py +210 -0
- openglcontext-3.0.0a4/OpenGLContext/edit/gizmo.py +323 -0
- openglcontext-3.0.0a4/OpenGLContext/edit/maptools.py +64 -0
- openglcontext-3.0.0a4/OpenGLContext/edit/mapview.py +223 -0
- openglcontext-3.0.0a4/OpenGLContext/edit/orbitview.py +242 -0
- openglcontext-3.0.0a4/OpenGLContext/edit/relief.py +116 -0
- openglcontext-3.0.0a4/OpenGLContext/edit/surface.py +199 -0
- openglcontext-3.0.0a4/OpenGLContext/edit/tools.py +253 -0
- openglcontext-3.0.0a4/OpenGLContext/eglcontext.py +546 -0
- openglcontext-3.0.0a4/OpenGLContext/eglvrmlcontext.py +10 -0
- openglcontext-3.0.0a4/OpenGLContext/entropy.py +243 -0
- openglcontext-3.0.0a4/OpenGLContext/events/event.py +75 -0
- openglcontext-3.0.0a4/OpenGLContext/events/eventhandlermixin.py +328 -0
- openglcontext-3.0.0a4/OpenGLContext/events/eventmanager.py +302 -0
- openglcontext-3.0.0a4/OpenGLContext/events/glfwevents.py +442 -0
- openglcontext-3.0.0a4/OpenGLContext/events/glutevents.py +253 -0
- openglcontext-3.0.0a4/OpenGLContext/events/internaltime.py +170 -0
- openglcontext-3.0.0a4/OpenGLContext/events/keyboardevents.py +168 -0
- openglcontext-3.0.0a4/OpenGLContext/events/mouseevents.py +482 -0
- openglcontext-3.0.0a4/OpenGLContext/events/pygameevents.py +295 -0
- openglcontext-3.0.0a4/OpenGLContext/events/synthetic.py +166 -0
- openglcontext-3.0.0a4/OpenGLContext/events/systemtime.py +64 -0
- openglcontext-3.0.0a4/OpenGLContext/events/timeeventgeneratormanager.py +42 -0
- openglcontext-3.0.0a4/OpenGLContext/events/timeevents.py +148 -0
- openglcontext-3.0.0a4/OpenGLContext/events/timer.py +175 -0
- openglcontext-3.0.0a4/OpenGLContext/events/tkevents.py +355 -0
- openglcontext-3.0.0a4/OpenGLContext/events/wheel.py +63 -0
- openglcontext-3.0.0a4/OpenGLContext/events/wxevents.py +339 -0
- openglcontext-3.0.0a4/OpenGLContext/extensionmanager.py +167 -0
- openglcontext-3.0.0a4/OpenGLContext/framecounter.py +76 -0
- openglcontext-3.0.0a4/OpenGLContext/frustum.py +137 -0
- openglcontext-3.0.0a4/OpenGLContext/glfwcontext.py +574 -0
- openglcontext-3.0.0a4/OpenGLContext/glfwinteractivecontext.py +35 -0
- openglcontext-3.0.0a4/OpenGLContext/glutcontext.py +550 -0
- openglcontext-3.0.0a4/OpenGLContext/glutinteractivecontext.py +25 -0
- openglcontext-3.0.0a4/OpenGLContext/gluttestingcontext.py +13 -0
- openglcontext-3.0.0a4/OpenGLContext/glutvrmlcontext.py +16 -0
- openglcontext-3.0.0a4/OpenGLContext/glutvrmltestingcontext.py +54 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/assets.py +298 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/base.py +91 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/gltf/__init__.py +90 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/gltf/accessors.py +296 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/gltf/animation.py +749 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/gltf/fastdecode.py +157 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/gltf/loader.py +172 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/gltf/materials.py +312 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/gltf/meshes.py +300 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/gltf/samples.py +178 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/gltf/scene.py +744 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/gltf/textures.py +222 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/gltf/writer.py +757 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/gltf_demos.py +517 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/loader.py +303 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/obj.py +313 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/tiles3d/dem.py +71 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/tiles3d/foliage.py +795 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/tiles3d/frustum.py +71 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/tiles3d/geomorph.py +57 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/tiles3d/gltf_uploader.py +252 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/tiles3d/manifest.py +151 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/tiles3d/physics_colliders.py +105 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/tiles3d/procedural.py +476 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/tiles3d/runtime.py +182 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/tiles3d/tileset.py +391 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/tiles3d/vegetation.py +394 -0
- openglcontext-3.0.0a4/OpenGLContext/loaders/vrml97.py +132 -0
- openglcontext-3.0.0a4/OpenGLContext/looptrace.py +319 -0
- openglcontext-3.0.0a4/OpenGLContext/move/direct.py +165 -0
- openglcontext-3.0.0a4/OpenGLContext/move/dragwatcher.py +69 -0
- openglcontext-3.0.0a4/OpenGLContext/move/examinemanager.py +163 -0
- openglcontext-3.0.0a4/OpenGLContext/move/followcam.py +155 -0
- openglcontext-3.0.0a4/OpenGLContext/move/movementmanager.py +121 -0
- openglcontext-3.0.0a4/OpenGLContext/move/orbit.py +336 -0
- openglcontext-3.0.0a4/OpenGLContext/move/physicswalk.py +472 -0
- openglcontext-3.0.0a4/OpenGLContext/move/smooth.py +80 -0
- openglcontext-3.0.0a4/OpenGLContext/move/terrainwalk.py +451 -0
- openglcontext-3.0.0a4/OpenGLContext/move/trackball.py +102 -0
- openglcontext-3.0.0a4/OpenGLContext/move/viewplatform.py +310 -0
- openglcontext-3.0.0a4/OpenGLContext/nav/navmesh.py +701 -0
- openglcontext-3.0.0a4/OpenGLContext/outline.py +362 -0
- openglcontext-3.0.0a4/OpenGLContext/packaging/__init__.py +227 -0
- openglcontext-3.0.0a4/OpenGLContext/packaging/appdir.py +420 -0
- openglcontext-3.0.0a4/OpenGLContext/packaging/deb.py +864 -0
- openglcontext-3.0.0a4/OpenGLContext/packaging/multicall.py +129 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/_flat.py +1721 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/asyncpick.py +262 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/bloom.py +309 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/flatcompat.py +275 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/flatcore.py +199 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/flateffects.py +382 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/ibl.py +746 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/instancing.py +961 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/pbrpass.py +1021 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/renderfailures.py +158 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/renderpass.py +171 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/selection.py +455 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/selectionbuffers.py +467 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/shaderpass.py +1220 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/shaderpass_shadow.py +215 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/shadersource.py +184 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/shadowcaps.py +242 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/shadowmap.py +375 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/shadowmath.py +371 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/shadowmixin.py +999 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/shadowpool.py +187 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/transmission.py +138 -0
- openglcontext-3.0.0a4/OpenGLContext/passes/viewpointbinding.py +61 -0
- openglcontext-3.0.0a4/OpenGLContext/physics/gltf_world.py +211 -0
- openglcontext-3.0.0a4/OpenGLContext/physics/heightfield.py +166 -0
- openglcontext-3.0.0a4/OpenGLContext/physics/props.py +115 -0
- openglcontext-3.0.0a4/OpenGLContext/physics/road.py +313 -0
- openglcontext-3.0.0a4/OpenGLContext/plugins.py +67 -0
- openglcontext-3.0.0a4/OpenGLContext/py.typed +0 -0
- openglcontext-3.0.0a4/OpenGLContext/pygamecontext.py +435 -0
- openglcontext-3.0.0a4/OpenGLContext/pygameinteractivecontext.py +40 -0
- openglcontext-3.0.0a4/OpenGLContext/pygametestingcontext.py +12 -0
- openglcontext-3.0.0a4/OpenGLContext/pygamevrmlcontext.py +14 -0
- openglcontext-3.0.0a4/OpenGLContext/quaternion.py +221 -0
- openglcontext-3.0.0a4/OpenGLContext/renderoptions.py +370 -0
- openglcontext-3.0.0a4/OpenGLContext/resources/__init__.py +33 -0
- openglcontext-3.0.0a4/OpenGLContext/resources/phongprecalc_vert.py +31 -0
- openglcontext-3.0.0a4/OpenGLContext/resources/phongweights_frag.py +48 -0
- openglcontext-3.0.0a4/OpenGLContext/resources/simpleshader.frag.txt +10 -0
- openglcontext-3.0.0a4/OpenGLContext/resources/simpleshader.vert.txt +32 -0
- openglcontext-3.0.0a4/OpenGLContext/resources/simpleshader_frag_txt.py +13 -0
- openglcontext-3.0.0a4/OpenGLContext/resources/simpleshader_vert_txt.py +28 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/__init__.py +19 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/_basenodes_stub.py +208 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/appearance.py +109 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/arraygeometry.py +246 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/atlasmesh.py +119 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/audio.py +681 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/background.py +120 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/basenodes.py +73 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/basenodes.pyi +237 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/billboard.py +17 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/boundingvolume.py +428 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/box.py +188 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/coordinate.py +22 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/coordinatebounded.py +28 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/cubebackground.py +220 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/extrusions.py +459 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/frommesh.py +111 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/gantry.py +351 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/gear.py +331 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/geometryarrays.py +338 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/grouping.py +154 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/hdrbackground.py +440 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/imagetexture.py +368 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/indexedfaceset.py +240 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/indexedlineset.py +452 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/indexedpolygons.py +447 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/inline.py +93 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/instancedgl.py +213 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/instancedshape.py +338 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/interpolators.py +139 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/light.py +247 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/lightgrid.py +202 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/lod.py +113 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/material.py +100 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/mouseover.py +45 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/nodepath.py +64 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/nurbs.py +712 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/nurbssampling.py +98 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/nurbstess.py +405 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/nurbstrim.py +94 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/particles.py +797 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/pbrmaterial.py +236 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/pbrmesh.py +837 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/pointset.py +278 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/polygon.py +169 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/polygonsort.py +119 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/polygontessellator.py +216 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/props.py +282 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/quadrics.py +503 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/road.py +1107 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/roadsigns.py +602 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/roadworks.py +967 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/scenegraph.py +25 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/shadergeometry.py +123 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/shaders.py +948 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/shape.py +328 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/simplebackground.py +36 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/skinning.py +254 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/spherebackground.py +524 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/switch.py +102 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/teapot.py +518 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/teapot_nurbs.py +279 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/terrain/__init__.py +17 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/terrain/control.py +134 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/terrain/heightfield.py +290 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/terrain/splat.py +321 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/_toolsfont.py +216 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/font.py +510 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/fontprovider.py +230 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/fonts/__init__.py +77 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/fonts/font_atlas_10.py +134 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/fonts/font_atlas_12.py +159 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/fonts/font_atlas_14.py +177 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/fonts/font_atlas_16.py +205 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/fonts/font_atlas_18.py +223 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/fonts/font_atlas_20.py +245 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/fonts/font_atlas_24.py +295 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/fonts/font_atlas_28.py +340 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/fonts/font_atlas_32.py +391 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/glutfont.py +209 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/pygamefont.py +236 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/shaderfont.py +347 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/shadertext.py +442 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/text.py +80 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/toolsfont.py +816 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/ttfregistry.py +159 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/wglfont.py +244 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/wglfontprovider.py +41 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/text/wxfont.py +337 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/texturetransform.py +70 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/tilesterrain.py +257 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/timesensor.py +53 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/transform.py +185 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/vegetation/__init__.py +34 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/vegetation/base.py +112 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/vegetation/billboards.py +153 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/vegetation/clumps.py +275 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/vegetation/cover.py +232 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/vegetation/field.py +370 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/vegetation/grid.py +119 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/vegetation/nearmesh.py +199 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/vertex.py +56 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/vertexsemantics.py +116 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/viewpoint.py +44 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/water/__init__.py +70 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/water/medium.py +115 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/water/submersion.py +80 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/water/surface.py +541 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/water/volumes.py +114 -0
- openglcontext-3.0.0a4/OpenGLContext/scenegraph/winding.py +49 -0
- openglcontext-3.0.0a4/OpenGLContext/screenshot.py +210 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/_shadow_inc.glsl +272 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/_skinning_inc.glsl +69 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/_wave_inc.glsl +98 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/hdr_background.vert +15 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/pbr.frag +969 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/pbr.vert +100 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/shadow_depth.vert +25 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/terrain_splat.vert +16 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/veg_billboard.frag +37 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/veg_billboard.vert +18 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/veg_clump.frag +35 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/veg_mesh.frag +28 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/veg_mesh.vert +18 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/vrml97_background.vert +24 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/vrml97_lighting.vert +50 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/vrml97_line.vert +24 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/vrml97_point.vert +21 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/vrml97_unlit.vert +18 -0
- openglcontext-3.0.0a4/OpenGLContext/shaders/vrml97_vertex_color.vert +34 -0
- openglcontext-3.0.0a4/OpenGLContext/swapcontrol.py +82 -0
- openglcontext-3.0.0a4/OpenGLContext/telemetry/__init__.py +88 -0
- openglcontext-3.0.0a4/OpenGLContext/telemetry/__main__.py +6 -0
- openglcontext-3.0.0a4/OpenGLContext/telemetry/journal.py +166 -0
- openglcontext-3.0.0a4/OpenGLContext/telemetry/record.py +652 -0
- openglcontext-3.0.0a4/OpenGLContext/telemetry/recorder.py +353 -0
- openglcontext-3.0.0a4/OpenGLContext/telemetry/replay.py +516 -0
- openglcontext-3.0.0a4/OpenGLContext/telemetry/report.py +250 -0
- openglcontext-3.0.0a4/OpenGLContext/testing/display.py +43 -0
- openglcontext-3.0.0a4/OpenGLContext/testing/event_injector.py +599 -0
- openglcontext-3.0.0a4/OpenGLContext/testing/framebuffer_comparison.py +911 -0
- openglcontext-3.0.0a4/OpenGLContext/testing/gl_env.py +298 -0
- openglcontext-3.0.0a4/OpenGLContext/testing/glcontext.py +659 -0
- openglcontext-3.0.0a4/OpenGLContext/testing/glfwteardown.py +269 -0
- openglcontext-3.0.0a4/OpenGLContext/testing/plugin.py +334 -0
- openglcontext-3.0.0a4/OpenGLContext/testing/process_exit.py +30 -0
- openglcontext-3.0.0a4/OpenGLContext/testing/report_generator.py +594 -0
- openglcontext-3.0.0a4/OpenGLContext/testing/subprocess_runner.py +413 -0
- openglcontext-3.0.0a4/OpenGLContext/testingcontext.py +77 -0
- openglcontext-3.0.0a4/OpenGLContext/tests/test_atlas.py +62 -0
- openglcontext-3.0.0a4/OpenGLContext/tests/test_configs.py +27 -0
- openglcontext-3.0.0a4/OpenGLContext/tests/test_polygonsort.py +45 -0
- openglcontext-3.0.0a4/OpenGLContext/tests/test_utilities.py +88 -0
- openglcontext-3.0.0a4/OpenGLContext/tests/test_viewplatform.py +39 -0
- openglcontext-3.0.0a4/OpenGLContext/texture.py +497 -0
- openglcontext-3.0.0a4/OpenGLContext/texturecache.py +52 -0
- openglcontext-3.0.0a4/OpenGLContext/tkcontext.py +517 -0
- openglcontext-3.0.0a4/OpenGLContext/tkinteractivecontext.py +26 -0
- openglcontext-3.0.0a4/OpenGLContext/tktestingcontext.py +15 -0
- openglcontext-3.0.0a4/OpenGLContext/tkvrmlcontext.py +10 -0
- openglcontext-3.0.0a4/OpenGLContext/triangleutilities.py +92 -0
- openglcontext-3.0.0a4/OpenGLContext/ui/console.py +339 -0
- openglcontext-3.0.0a4/OpenGLContext/ui/debugoverlay.py +568 -0
- openglcontext-3.0.0a4/OpenGLContext/ui/dialogs.py +124 -0
- openglcontext-3.0.0a4/OpenGLContext/ui/draw.py +700 -0
- openglcontext-3.0.0a4/OpenGLContext/ui/gallery.py +439 -0
- openglcontext-3.0.0a4/OpenGLContext/ui/hudwidgets.py +1330 -0
- openglcontext-3.0.0a4/OpenGLContext/ui/menu.py +377 -0
- openglcontext-3.0.0a4/OpenGLContext/ui/overlay.py +526 -0
- openglcontext-3.0.0a4/OpenGLContext/ui/panel.py +460 -0
- openglcontext-3.0.0a4/OpenGLContext/ui/pictures.py +299 -0
- openglcontext-3.0.0a4/OpenGLContext/ui/screen.py +177 -0
- openglcontext-3.0.0a4/OpenGLContext/ui/settings.py +284 -0
- openglcontext-3.0.0a4/OpenGLContext/ui/toolpalette.py +215 -0
- openglcontext-3.0.0a4/OpenGLContext/ui/widgets.py +1226 -0
- openglcontext-3.0.0a4/OpenGLContext/userpaths.py +156 -0
- openglcontext-3.0.0a4/OpenGLContext/utilities.py +96 -0
- openglcontext-3.0.0a4/OpenGLContext/vectorutilities.py +106 -0
- openglcontext-3.0.0a4/OpenGLContext/video/__init__.py +14 -0
- openglcontext-3.0.0a4/OpenGLContext/video/clock.py +164 -0
- openglcontext-3.0.0a4/OpenGLContext/video/recorder.py +369 -0
- openglcontext-3.0.0a4/OpenGLContext/viewer/__init__.py +112 -0
- openglcontext-3.0.0a4/OpenGLContext/viewer/adapters/base.py +157 -0
- openglcontext-3.0.0a4/OpenGLContext/viewer/asyncscene.py +202 -0
- openglcontext-3.0.0a4/OpenGLContext/viewer/capture.py +93 -0
- openglcontext-3.0.0a4/OpenGLContext/viewer/commentary.py +59 -0
- openglcontext-3.0.0a4/OpenGLContext/viewer/environment.py +266 -0
- openglcontext-3.0.0a4/OpenGLContext/viewer/framing.py +127 -0
- openglcontext-3.0.0a4/OpenGLContext/viewer/options.py +136 -0
- openglcontext-3.0.0a4/OpenGLContext/viewer/sceneviewer.py +1097 -0
- openglcontext-3.0.0a4/OpenGLContext/viewer/screens.py +173 -0
- openglcontext-3.0.0a4/OpenGLContext/visitor.py +72 -0
- openglcontext-3.0.0a4/OpenGLContext/vrmlcontext.py +91 -0
- openglcontext-3.0.0a4/OpenGLContext/wglcontext.py +353 -0
- openglcontext-3.0.0a4/OpenGLContext/wglvrmlcontext.py +10 -0
- openglcontext-3.0.0a4/OpenGLContext/wxcontext.py +586 -0
- openglcontext-3.0.0a4/OpenGLContext/wxinteractivecontext.py +27 -0
- openglcontext-3.0.0a4/OpenGLContext/wxtestingcontext.py +11 -0
- openglcontext-3.0.0a4/OpenGLContext/wxvrmlcontext.py +14 -0
- openglcontext-3.0.0a4/OpenGLContext.egg-info/PKG-INFO +687 -0
- openglcontext-3.0.0a4/OpenGLContext.egg-info/SOURCES.txt +855 -0
- openglcontext-3.0.0a4/OpenGLContext.egg-info/entry_points.txt +16 -0
- openglcontext-3.0.0a4/OpenGLContext.egg-info/requires.txt +45 -0
- openglcontext-3.0.0a4/PKG-INFO +687 -0
- openglcontext-3.0.0a4/README.md +624 -0
- openglcontext-3.0.0a4/docs/audio.html +788 -0
- openglcontext-3.0.0a4/docs/baking.html +477 -0
- openglcontext-3.0.0a4/docs/characters.html +447 -0
- openglcontext-3.0.0a4/docs/documentation.html +620 -0
- openglcontext-3.0.0a4/docs/editing.html +440 -0
- openglcontext-3.0.0a4/docs/embedding.html +263 -0
- openglcontext-3.0.0a4/docs/environment.html +304 -0
- openglcontext-3.0.0a4/docs/eventmodel.html +208 -0
- openglcontext-3.0.0a4/docs/extrusions.html +411 -0
- openglcontext-3.0.0a4/docs/flat.html +202 -0
- openglcontext-3.0.0a4/docs/glisteel-editor.html +111 -0
- openglcontext-3.0.0a4/docs/glisteel.html +142 -0
- openglcontext-3.0.0a4/docs/glslversions.html +174 -0
- openglcontext-3.0.0a4/docs/gltf.html +563 -0
- openglcontext-3.0.0a4/docs/hud.html +714 -0
- openglcontext-3.0.0a4/docs/images/ATTRIBUTION.md +106 -0
- openglcontext-3.0.0a4/docs/images/extrusions/curves.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/fig_caps.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/fig_contours.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/fig_curve_sampling.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/fig_lathe.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/fig_polycone.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/fig_preprocessing.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/fig_scale_twist.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/fig_screw.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/fig_spiral.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/fig_texture_caps.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/fig_texture_modes.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/fig_texture_parameter.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/joins.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/normals.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/shapes.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/tessellation.png +0 -0
- openglcontext-3.0.0a4/docs/images/extrusions/vrml97.png +0 -0
- openglcontext-3.0.0a4/docs/images/manifest.toml +564 -0
- openglcontext-3.0.0a4/docs/index.html +285 -0
- openglcontext-3.0.0a4/docs/instancing.html +485 -0
- openglcontext-3.0.0a4/docs/navigation.html +384 -0
- openglcontext-3.0.0a4/docs/navmesh.html +310 -0
- openglcontext-3.0.0a4/docs/nurbs.html +255 -0
- openglcontext-3.0.0a4/docs/offscreen.html +289 -0
- openglcontext-3.0.0a4/docs/osmcity.html +135 -0
- openglcontext-3.0.0a4/docs/overlayui.html +749 -0
- openglcontext-3.0.0a4/docs/packaging.html +260 -0
- openglcontext-3.0.0a4/docs/particles.html +377 -0
- openglcontext-3.0.0a4/docs/pbr.html +633 -0
- openglcontext-3.0.0a4/docs/physics.html +484 -0
- openglcontext-3.0.0a4/docs/recording.html +249 -0
- openglcontext-3.0.0a4/docs/renderpasses.html +393 -0
- openglcontext-3.0.0a4/docs/roads.html +728 -0
- openglcontext-3.0.0a4/docs/shadows.html +494 -0
- openglcontext-3.0.0a4/docs/structure.html +615 -0
- openglcontext-3.0.0a4/docs/style/gallery.css +175 -0
- openglcontext-3.0.0a4/docs/telemetry.html +475 -0
- openglcontext-3.0.0a4/docs/terrain.html +262 -0
- openglcontext-3.0.0a4/docs/testing.html +489 -0
- openglcontext-3.0.0a4/docs/text.html +279 -0
- openglcontext-3.0.0a4/docs/tiles3d.html +332 -0
- openglcontext-3.0.0a4/docs/tutorials/tutorial.css +99 -0
- openglcontext-3.0.0a4/docs/typing.html +153 -0
- openglcontext-3.0.0a4/docs/vegetation.html +218 -0
- openglcontext-3.0.0a4/docs/viewer.html +440 -0
- openglcontext-3.0.0a4/docs/vrml97.html +504 -0
- openglcontext-3.0.0a4/docs/water.html +313 -0
- openglcontext-3.0.0a4/pyproject.toml +308 -0
- openglcontext-3.0.0a4/tests/_gltf_toggle_driver.py +136 -0
- openglcontext-3.0.0a4/tests/_shader_tut_lightprecalc.vert +18 -0
- openglcontext-3.0.0a4/tests/addnodes.py +76 -0
- openglcontext-3.0.0a4/tests/arbocclusionquery.py +108 -0
- openglcontext-3.0.0a4/tests/arbpointparameters.py +92 -0
- openglcontext-3.0.0a4/tests/arbwindowpos.py +119 -0
- openglcontext-3.0.0a4/tests/bake_demo.py +240 -0
- openglcontext-3.0.0a4/tests/crowd_demo.py +246 -0
- openglcontext-3.0.0a4/tests/cubeback_rot.py +84 -0
- openglcontext-3.0.0a4/tests/cubebackgroundobject.py +52 -0
- openglcontext-3.0.0a4/tests/dek_surf.py +78 -0
- openglcontext-3.0.0a4/tests/dek_texturesurf.py +121 -0
- openglcontext-3.0.0a4/tests/diag_live.py +92 -0
- openglcontext-3.0.0a4/tests/editing_demo.py +546 -0
- openglcontext-3.0.0a4/tests/extrusions_curves.py +101 -0
- openglcontext-3.0.0a4/tests/extrusions_gallery.py +444 -0
- openglcontext-3.0.0a4/tests/extrusions_joins.py +84 -0
- openglcontext-3.0.0a4/tests/extrusions_normals.py +85 -0
- openglcontext-3.0.0a4/tests/extrusions_preprocessing.py +92 -0
- openglcontext-3.0.0a4/tests/extrusions_shapes.py +103 -0
- openglcontext-3.0.0a4/tests/extrusions_tessellation.py +125 -0
- openglcontext-3.0.0a4/tests/extrusions_vrml97.py +124 -0
- openglcontext-3.0.0a4/tests/feedback_mode.py +58 -0
- openglcontext-3.0.0a4/tests/getteximage.py +63 -0
- openglcontext-3.0.0a4/tests/glarrayelement.py +26 -0
- openglcontext-3.0.0a4/tests/gldrawarrays.py +22 -0
- openglcontext-3.0.0a4/tests/gldrawarrays_string.py +23 -0
- openglcontext-3.0.0a4/tests/gldrawelements.py +24 -0
- openglcontext-3.0.0a4/tests/gldrawelements_list.py +60 -0
- openglcontext-3.0.0a4/tests/gldrawelements_string.py +31 -0
- openglcontext-3.0.0a4/tests/gldrawpixels.py +93 -0
- openglcontext-3.0.0a4/tests/gldrawpixelssynth.py +73 -0
- openglcontext-3.0.0a4/tests/glelathe.py +131 -0
- openglcontext-3.0.0a4/tests/glget.py +335 -0
- openglcontext-3.0.0a4/tests/glget_with_fonts.py +359 -0
- openglcontext-3.0.0a4/tests/glgetlight.py +30 -0
- openglcontext-3.0.0a4/tests/glgetmaterial.py +25 -0
- openglcontext-3.0.0a4/tests/glgetpixelmap.py +29 -0
- openglcontext-3.0.0a4/tests/glgetpolygonstipple.py +19 -0
- openglcontext-3.0.0a4/tests/glhistogram.py +89 -0
- openglcontext-3.0.0a4/tests/glinterleavedarrays.py +53 -0
- openglcontext-3.0.0a4/tests/glprint.py +143 -0
- openglcontext-3.0.0a4/tests/glu_tess.py +75 -0
- openglcontext-3.0.0a4/tests/glu_tess2.py +80 -0
- openglcontext-3.0.0a4/tests/glugetstring.py +18 -0
- openglcontext-3.0.0a4/tests/glut_bitmap_font.py +15 -0
- openglcontext-3.0.0a4/tests/glut_font.py +46 -0
- openglcontext-3.0.0a4/tests/glut_fullscreen.py +64 -0
- openglcontext-3.0.0a4/tests/glutbitmapcharacter.py +51 -0
- openglcontext-3.0.0a4/tests/glutmousewheel.py +44 -0
- openglcontext-3.0.0a4/tests/glvertex.py +21 -0
- openglcontext-3.0.0a4/tests/heightmap.py +106 -0
- openglcontext-3.0.0a4/tests/hud_demo.py +331 -0
- openglcontext-3.0.0a4/tests/ilsstrategies.py +45 -0
- openglcontext-3.0.0a4/tests/indexedfaceset_lit_npf.py +238 -0
- openglcontext-3.0.0a4/tests/indexedfaceset_lit_npv.py +102 -0
- openglcontext-3.0.0a4/tests/instancing_batched.py +158 -0
- openglcontext-3.0.0a4/tests/line_stipple.py +43 -0
- openglcontext-3.0.0a4/tests/lod_demo.py +138 -0
- openglcontext-3.0.0a4/tests/molehill_edit.py +170 -0
- openglcontext-3.0.0a4/tests/mouseover.py +56 -0
- openglcontext-3.0.0a4/tests/multitexture_1.py +84 -0
- openglcontext-3.0.0a4/tests/navmesh_demo.py +284 -0
- openglcontext-3.0.0a4/tests/nehe2.py +92 -0
- openglcontext-3.0.0a4/tests/nehe3.py +74 -0
- openglcontext-3.0.0a4/tests/nehe4.py +102 -0
- openglcontext-3.0.0a4/tests/nehe5.py +129 -0
- openglcontext-3.0.0a4/tests/nehe6.py +172 -0
- openglcontext-3.0.0a4/tests/nehe6_compressed.py +142 -0
- openglcontext-3.0.0a4/tests/nehe6_convolve.py +234 -0
- openglcontext-3.0.0a4/tests/nehe6_multi.py +216 -0
- openglcontext-3.0.0a4/tests/nehe6_timer.py +183 -0
- openglcontext-3.0.0a4/tests/nehe7.py +263 -0
- openglcontext-3.0.0a4/tests/nehe8.py +272 -0
- openglcontext-3.0.0a4/tests/node_modify.py +40 -0
- openglcontext-3.0.0a4/tests/particles_simple.py +237 -0
- openglcontext-3.0.0a4/tests/physics_joints.py +77 -0
- openglcontext-3.0.0a4/tests/pygame_font.py +21 -0
- openglcontext-3.0.0a4/tests/pygame_textureatlas.py +174 -0
- openglcontext-3.0.0a4/tests/readpixelsleak.py +102 -0
- openglcontext-3.0.0a4/tests/recording_demo.py +272 -0
- openglcontext-3.0.0a4/tests/redbook_alpha.py +107 -0
- openglcontext-3.0.0a4/tests/redbook_alpha3D.py +152 -0
- openglcontext-3.0.0a4/tests/redbook_surface.py +114 -0
- openglcontext-3.0.0a4/tests/redbook_surface_cb.py +165 -0
- openglcontext-3.0.0a4/tests/redbook_trim.py +154 -0
- openglcontext-3.0.0a4/tests/resources/CH18-mandel.frag.txt +57 -0
- openglcontext-3.0.0a4/tests/resources/CH18-mandel.vert.txt +47 -0
- openglcontext-3.0.0a4/tests/resources/discard.frag.txt +26 -0
- openglcontext-3.0.0a4/tests/resources/grid.frag.txt +27 -0
- openglcontext-3.0.0a4/tests/resources/simpletexture.frag.txt +28 -0
- openglcontext-3.0.0a4/tests/resources/toon.frag.txt +23 -0
- openglcontext-3.0.0a4/tests/resources/toon.vert.txt +19 -0
- openglcontext-3.0.0a4/tests/roads_demo.py +212 -0
- openglcontext-3.0.0a4/tests/runalltests.py +128 -0
- openglcontext-3.0.0a4/tests/saveimage.py +170 -0
- openglcontext-3.0.0a4/tests/selectrendermode_threads.py +91 -0
- openglcontext-3.0.0a4/tests/shader_1.py +370 -0
- openglcontext-3.0.0a4/tests/shader_10.py +371 -0
- openglcontext-3.0.0a4/tests/shader_11.py +443 -0
- openglcontext-3.0.0a4/tests/shader_12.py +359 -0
- openglcontext-3.0.0a4/tests/shader_2.py +230 -0
- openglcontext-3.0.0a4/tests/shader_2_c_void_p.py +104 -0
- openglcontext-3.0.0a4/tests/shader_3.py +221 -0
- openglcontext-3.0.0a4/tests/shader_4.py +199 -0
- openglcontext-3.0.0a4/tests/shader_4_subset.py +120 -0
- openglcontext-3.0.0a4/tests/shader_5.py +342 -0
- openglcontext-3.0.0a4/tests/shader_6.py +345 -0
- openglcontext-3.0.0a4/tests/shader_7.py +345 -0
- openglcontext-3.0.0a4/tests/shader_8.py +283 -0
- openglcontext-3.0.0a4/tests/shader_9.py +416 -0
- openglcontext-3.0.0a4/tests/shader_binary.py +170 -0
- openglcontext-3.0.0a4/tests/shader_instanced.py +401 -0
- openglcontext-3.0.0a4/tests/shader_instanced_mapped.py +322 -0
- openglcontext-3.0.0a4/tests/shader_intro.py +34 -0
- openglcontext-3.0.0a4/tests/shader_ng.py +241 -0
- openglcontext-3.0.0a4/tests/shader_sphere.py +186 -0
- openglcontext-3.0.0a4/tests/shader_spike.py +107 -0
- openglcontext-3.0.0a4/tests/shadergeometry.py +129 -0
- openglcontext-3.0.0a4/tests/shaderobjects.py +255 -0
- openglcontext-3.0.0a4/tests/shaders.py +161 -0
- openglcontext-3.0.0a4/tests/shadow_1.py +700 -0
- openglcontext-3.0.0a4/tests/shadow_2.py +181 -0
- openglcontext-3.0.0a4/tests/shadow_3.py +220 -0
- openglcontext-3.0.0a4/tests/shadow_demo.py +173 -0
- openglcontext-3.0.0a4/tests/shadow_spot.py +102 -0
- openglcontext-3.0.0a4/tests/teapot_ceramic.py +88 -0
- openglcontext-3.0.0a4/tests/telemetry_demo.py +331 -0
- openglcontext-3.0.0a4/tests/test_all_scripts.py +1134 -0
- openglcontext-3.0.0a4/tests/tiles_landscape.py +103 -0
- openglcontext-3.0.0a4/tests/tiles_terrain.py +76 -0
- openglcontext-3.0.0a4/tests/tiles_vegetation.py +60 -0
- openglcontext-3.0.0a4/tests/tiles_walk.py +142 -0
- openglcontext-3.0.0a4/tests/timesensorobject.py +37 -0
- openglcontext-3.0.0a4/tests/transforms_1.py +319 -0
- openglcontext-3.0.0a4/tests/transparentsorted.py +249 -0
- openglcontext-3.0.0a4/tests/water_demo.py +348 -0
- openglcontext-3.0.0a4/tests/wgl_bitmap_font.py +16 -0
- openglcontext-3.0.0a4/tests/wx_font.py +55 -0
- openglcontext-3.0.0a4/tests/wx_multiple_contexts.py +88 -0
- openglcontext-3.0.0a4/tests/wx_with_controls.py +80 -0
- openglcontext-3.0.0a2/OpenGLContext/__init__.py +0 -151
- openglcontext-3.0.0a2/OpenGLContext/atlas.py +0 -300
- openglcontext-3.0.0a2/OpenGLContext/bin/choosecontext.py +0 -224
- openglcontext-3.0.0a2/OpenGLContext/bin/choosefonts.py +0 -209
- openglcontext-3.0.0a2/OpenGLContext/bin/gltest.py +0 -121
- openglcontext-3.0.0a2/OpenGLContext/bin/gltf_demo.py +0 -492
- openglcontext-3.0.0a2/OpenGLContext/bin/gltf_regression.py +0 -645
- openglcontext-3.0.0a2/OpenGLContext/bin/keyboardevents.py +0 -93
- openglcontext-3.0.0a2/OpenGLContext/bin/lorentz.py +0 -109
- openglcontext-3.0.0a2/OpenGLContext/bin/profile_view.py +0 -38
- openglcontext-3.0.0a2/OpenGLContext/bin/terrain_view.py +0 -581
- openglcontext-3.0.0a2/OpenGLContext/bin/view.py +0 -341
- openglcontext-3.0.0a2/OpenGLContext/capture.py +0 -125
- openglcontext-3.0.0a2/OpenGLContext/context.py +0 -1253
- openglcontext-3.0.0a2/OpenGLContext/contextconfig.py +0 -177
- openglcontext-3.0.0a2/OpenGLContext/contextdefinition.py +0 -275
- openglcontext-3.0.0a2/OpenGLContext/debug/bufferimage.py +0 -80
- openglcontext-3.0.0a2/OpenGLContext/debug/leaks.py +0 -13
- openglcontext-3.0.0a2/OpenGLContext/debug/logcontext.py +0 -9
- openglcontext-3.0.0a2/OpenGLContext/debug/logs.py +0 -15
- openglcontext-3.0.0a2/OpenGLContext/debug/state.py +0 -329
- openglcontext-3.0.0a2/OpenGLContext/displaylist.py +0 -69
- openglcontext-3.0.0a2/OpenGLContext/doinchildmatrix.py +0 -34
- openglcontext-3.0.0a2/OpenGLContext/drawcube.py +0 -58
- openglcontext-3.0.0a2/OpenGLContext/events/default_config.py +0 -29
- openglcontext-3.0.0a2/OpenGLContext/events/event.py +0 -65
- openglcontext-3.0.0a2/OpenGLContext/events/eventhandlermixin.py +0 -214
- openglcontext-3.0.0a2/OpenGLContext/events/eventmanager.py +0 -269
- openglcontext-3.0.0a2/OpenGLContext/events/fxevents.py +0 -90
- openglcontext-3.0.0a2/OpenGLContext/events/glfwevents.py +0 -424
- openglcontext-3.0.0a2/OpenGLContext/events/glutevents.py +0 -184
- openglcontext-3.0.0a2/OpenGLContext/events/internaltime.py +0 -161
- openglcontext-3.0.0a2/OpenGLContext/events/keyboardevents.py +0 -153
- openglcontext-3.0.0a2/OpenGLContext/events/mouseevents.py +0 -473
- openglcontext-3.0.0a2/OpenGLContext/events/pygameevents.py +0 -162
- openglcontext-3.0.0a2/OpenGLContext/events/systemtime.py +0 -12
- openglcontext-3.0.0a2/OpenGLContext/events/timeeventgeneratormanager.py +0 -40
- openglcontext-3.0.0a2/OpenGLContext/events/timeevents.py +0 -143
- openglcontext-3.0.0a2/OpenGLContext/events/timer.py +0 -170
- openglcontext-3.0.0a2/OpenGLContext/events/tkevents.py +0 -172
- openglcontext-3.0.0a2/OpenGLContext/events/wxevents.py +0 -185
- openglcontext-3.0.0a2/OpenGLContext/extensionmanager.py +0 -158
- openglcontext-3.0.0a2/OpenGLContext/framecounter.py +0 -74
- openglcontext-3.0.0a2/OpenGLContext/frustum.py +0 -135
- openglcontext-3.0.0a2/OpenGLContext/glfwcontext.py +0 -395
- openglcontext-3.0.0a2/OpenGLContext/glfwinteractivecontext.py +0 -34
- openglcontext-3.0.0a2/OpenGLContext/glutcontext.py +0 -224
- openglcontext-3.0.0a2/OpenGLContext/glutinteractivecontext.py +0 -24
- openglcontext-3.0.0a2/OpenGLContext/gluttestingcontext.py +0 -11
- openglcontext-3.0.0a2/OpenGLContext/glutvrmlcontext.py +0 -25
- openglcontext-3.0.0a2/OpenGLContext/glutvrmltestingcontext.py +0 -48
- openglcontext-3.0.0a2/OpenGLContext/loaders/base.py +0 -84
- openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/__init__.py +0 -71
- openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/accessors.py +0 -255
- openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/animation.py +0 -611
- openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/loader.py +0 -80
- openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/materials.py +0 -298
- openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/meshes.py +0 -292
- openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/samples.py +0 -162
- openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/scene.py +0 -673
- openglcontext-3.0.0a2/OpenGLContext/loaders/gltf/textures.py +0 -155
- openglcontext-3.0.0a2/OpenGLContext/loaders/gltf_demos.py +0 -511
- openglcontext-3.0.0a2/OpenGLContext/loaders/loader.py +0 -255
- openglcontext-3.0.0a2/OpenGLContext/loaders/obj.py +0 -299
- openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/dem.py +0 -71
- openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/foliage.py +0 -786
- openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/frustum.py +0 -70
- openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/geomorph.py +0 -57
- openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/gltf_uploader.py +0 -246
- openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/physics_colliders.py +0 -78
- openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/procedural.py +0 -355
- openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/runtime.py +0 -168
- openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/tileset.py +0 -390
- openglcontext-3.0.0a2/OpenGLContext/loaders/tiles3d/vegetation.py +0 -361
- openglcontext-3.0.0a2/OpenGLContext/loaders/vrml97.py +0 -133
- openglcontext-3.0.0a2/OpenGLContext/looptrace.py +0 -307
- openglcontext-3.0.0a2/OpenGLContext/move/direct.py +0 -156
- openglcontext-3.0.0a2/OpenGLContext/move/dragwatcher.py +0 -42
- openglcontext-3.0.0a2/OpenGLContext/move/examinemanager.py +0 -100
- openglcontext-3.0.0a2/OpenGLContext/move/followcam.py +0 -121
- openglcontext-3.0.0a2/OpenGLContext/move/movementmanager.py +0 -74
- openglcontext-3.0.0a2/OpenGLContext/move/physicswalk.py +0 -469
- openglcontext-3.0.0a2/OpenGLContext/move/smooth.py +0 -68
- openglcontext-3.0.0a2/OpenGLContext/move/terrainwalk.py +0 -451
- openglcontext-3.0.0a2/OpenGLContext/move/trackball.py +0 -92
- openglcontext-3.0.0a2/OpenGLContext/move/viewplatform.py +0 -283
- openglcontext-3.0.0a2/OpenGLContext/nav/navmesh.py +0 -476
- openglcontext-3.0.0a2/OpenGLContext/passes/_flat.py +0 -1317
- openglcontext-3.0.0a2/OpenGLContext/passes/asyncpick.py +0 -216
- openglcontext-3.0.0a2/OpenGLContext/passes/bloom.py +0 -257
- openglcontext-3.0.0a2/OpenGLContext/passes/flatcompat.py +0 -246
- openglcontext-3.0.0a2/OpenGLContext/passes/flatcore.py +0 -198
- openglcontext-3.0.0a2/OpenGLContext/passes/flateffects.py +0 -372
- openglcontext-3.0.0a2/OpenGLContext/passes/ibl.py +0 -711
- openglcontext-3.0.0a2/OpenGLContext/passes/instancing.py +0 -775
- openglcontext-3.0.0a2/OpenGLContext/passes/pbrpass.py +0 -829
- openglcontext-3.0.0a2/OpenGLContext/passes/renderpass.py +0 -79
- openglcontext-3.0.0a2/OpenGLContext/passes/rendervisitor.py +0 -60
- openglcontext-3.0.0a2/OpenGLContext/passes/selection.py +0 -450
- openglcontext-3.0.0a2/OpenGLContext/passes/selectionbuffers.py +0 -442
- openglcontext-3.0.0a2/OpenGLContext/passes/shaderpass.py +0 -1018
- openglcontext-3.0.0a2/OpenGLContext/passes/shaderpass_shadow.py +0 -197
- openglcontext-3.0.0a2/OpenGLContext/passes/shadersource.py +0 -121
- openglcontext-3.0.0a2/OpenGLContext/passes/shadowcaps.py +0 -182
- openglcontext-3.0.0a2/OpenGLContext/passes/shadowmap.py +0 -330
- openglcontext-3.0.0a2/OpenGLContext/passes/shadowmath.py +0 -290
- openglcontext-3.0.0a2/OpenGLContext/passes/shadowmixin.py +0 -906
- openglcontext-3.0.0a2/OpenGLContext/passes/shadowpool.py +0 -186
- openglcontext-3.0.0a2/OpenGLContext/passes/transmission.py +0 -124
- openglcontext-3.0.0a2/OpenGLContext/physics/gltf_world.py +0 -185
- openglcontext-3.0.0a2/OpenGLContext/plugins.py +0 -61
- openglcontext-3.0.0a2/OpenGLContext/pygamecontext.py +0 -178
- openglcontext-3.0.0a2/OpenGLContext/pygameinteractivecontext.py +0 -36
- openglcontext-3.0.0a2/OpenGLContext/pygametestingcontext.py +0 -10
- openglcontext-3.0.0a2/OpenGLContext/pygamevrmlcontext.py +0 -13
- openglcontext-3.0.0a2/OpenGLContext/quaternion.py +0 -190
- openglcontext-3.0.0a2/OpenGLContext/renderoptions.py +0 -280
- openglcontext-3.0.0a2/OpenGLContext/resources/__init__.py +0 -36
- openglcontext-3.0.0a2/OpenGLContext/resources/phongprecalc_vert.py +0 -30
- openglcontext-3.0.0a2/OpenGLContext/resources/phongweights_frag.py +0 -47
- openglcontext-3.0.0a2/OpenGLContext/resources/simpleshader.frag.txt +0 -3
- openglcontext-3.0.0a2/OpenGLContext/resources/simpleshader.vert.txt +0 -3
- openglcontext-3.0.0a2/OpenGLContext/resources/simpleshader_frag_txt.py +0 -9
- openglcontext-3.0.0a2/OpenGLContext/resources/simpleshader_vert_txt.py +0 -10
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/__init__.py +0 -19
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/appearance.py +0 -107
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/arraygeometry.py +0 -238
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/audio.py +0 -632
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/background.py +0 -108
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/basenodes.py +0 -50
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/billboard.py +0 -14
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/boundingvolume.py +0 -494
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/box.py +0 -180
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/coordinate.py +0 -20
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/coordinatebounded.py +0 -18
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/cubebackground.py +0 -207
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/extrusions.py +0 -275
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/gear.py +0 -323
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/grouping.py +0 -140
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/hdrbackground.py +0 -384
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/imagetexture.py +0 -365
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/indexedfaceset.py +0 -238
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/indexedlineset.py +0 -418
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/indexedpolygons.py +0 -422
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/inline.py +0 -79
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/instancedgl.py +0 -187
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/interpolators.py +0 -122
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/light.py +0 -213
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/lod.py +0 -22
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/material.py +0 -96
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/mouseover.py +0 -43
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/nodepath.py +0 -52
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/nurbs.py +0 -637
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/nurbssampling.py +0 -101
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/nurbstess.py +0 -316
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/nurbstrim.py +0 -54
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/particles.py +0 -786
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/pbrmaterial.py +0 -229
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/pbrmesh.py +0 -558
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/pointset.py +0 -257
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/polygon.py +0 -166
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/polygonsort.py +0 -119
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/polygontessellator.py +0 -213
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/quadrics.py +0 -494
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/scenegraph.py +0 -21
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/shadergeometry.py +0 -403
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/shaders.py +0 -812
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/shape.py +0 -243
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/simplebackground.py +0 -34
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/spherebackground.py +0 -462
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/switch.py +0 -75
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/teapot.py +0 -439
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/teapot_nurbs.py +0 -291
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/terrain/__init__.py +0 -12
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/terrain/heightfield.py +0 -172
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/terrain/splat.py +0 -224
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/_toolsfont.py +0 -200
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/font.py +0 -452
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fontprovider.py +0 -193
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/__init__.py +0 -75
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_10.py +0 -133
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_12.py +0 -158
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_14.py +0 -176
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_16.py +0 -204
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_18.py +0 -222
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_20.py +0 -244
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_24.py +0 -294
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_28.py +0 -339
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/fonts/font_atlas_32.py +0 -390
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/glutfont.py +0 -186
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/pygamefont.py +0 -213
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/shaderfont.py +0 -340
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/shadertext.py +0 -433
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/text.py +0 -75
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/toolsfont.py +0 -819
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/ttfregistry.py +0 -135
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/wglfont.py +0 -228
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/wglfontprovider.py +0 -37
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/text/wxfont.py +0 -314
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/texturetransform.py +0 -66
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/tilesterrain.py +0 -95
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/timesensor.py +0 -51
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/transform.py +0 -180
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/vegetation/__init__.py +0 -20
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/vegetation/base.py +0 -96
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/vegetation/billboards.py +0 -145
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/vegetation/clumps.py +0 -260
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/vegetation/grid.py +0 -112
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/vegetation/nearmesh.py +0 -185
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/vertex.py +0 -54
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/viewpoint.py +0 -42
- openglcontext-3.0.0a2/OpenGLContext/scenegraph/winding.py +0 -49
- openglcontext-3.0.0a2/OpenGLContext/shaders/_shadow_inc.glsl +0 -254
- openglcontext-3.0.0a2/OpenGLContext/shaders/hdr_background.vert +0 -15
- openglcontext-3.0.0a2/OpenGLContext/shaders/pbr.frag +0 -906
- openglcontext-3.0.0a2/OpenGLContext/shaders/pbr.vert +0 -70
- openglcontext-3.0.0a2/OpenGLContext/shaders/shadow_depth.vert +0 -18
- openglcontext-3.0.0a2/OpenGLContext/shaders/terrain_splat.vert +0 -16
- openglcontext-3.0.0a2/OpenGLContext/shaders/veg_billboard.frag +0 -35
- openglcontext-3.0.0a2/OpenGLContext/shaders/veg_billboard.vert +0 -17
- openglcontext-3.0.0a2/OpenGLContext/shaders/veg_clump.frag +0 -27
- openglcontext-3.0.0a2/OpenGLContext/shaders/veg_mesh.frag +0 -26
- openglcontext-3.0.0a2/OpenGLContext/shaders/veg_mesh.vert +0 -17
- openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_background.vert +0 -24
- openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_lighting.vert +0 -50
- openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_line.vert +0 -24
- openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_point.vert +0 -21
- openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_unlit.vert +0 -18
- openglcontext-3.0.0a2/OpenGLContext/shaders/vrml97_vertex_color.vert +0 -34
- openglcontext-3.0.0a2/OpenGLContext/testing/display.py +0 -30
- openglcontext-3.0.0a2/OpenGLContext/testing/event_injector.py +0 -564
- openglcontext-3.0.0a2/OpenGLContext/testing/framebuffer_comparison.py +0 -842
- openglcontext-3.0.0a2/OpenGLContext/testing/gl_env.py +0 -39
- openglcontext-3.0.0a2/OpenGLContext/testing/process_exit.py +0 -30
- openglcontext-3.0.0a2/OpenGLContext/testing/report_generator.py +0 -594
- openglcontext-3.0.0a2/OpenGLContext/testing/subprocess_runner.py +0 -411
- openglcontext-3.0.0a2/OpenGLContext/testingcontext.py +0 -36
- openglcontext-3.0.0a2/OpenGLContext/tests/test_atlas.py +0 -62
- openglcontext-3.0.0a2/OpenGLContext/tests/test_configs.py +0 -27
- openglcontext-3.0.0a2/OpenGLContext/tests/test_polygonsort.py +0 -45
- openglcontext-3.0.0a2/OpenGLContext/tests/test_utilities.py +0 -84
- openglcontext-3.0.0a2/OpenGLContext/tests/test_viewplatform.py +0 -39
- openglcontext-3.0.0a2/OpenGLContext/texture.py +0 -449
- openglcontext-3.0.0a2/OpenGLContext/texturecache.py +0 -37
- openglcontext-3.0.0a2/OpenGLContext/triangleutilities.py +0 -89
- openglcontext-3.0.0a2/OpenGLContext/ui/console.py +0 -339
- openglcontext-3.0.0a2/OpenGLContext/ui/debugoverlay.py +0 -519
- openglcontext-3.0.0a2/OpenGLContext/ui/dialogs.py +0 -124
- openglcontext-3.0.0a2/OpenGLContext/ui/draw.py +0 -617
- openglcontext-3.0.0a2/OpenGLContext/ui/gallery.py +0 -425
- openglcontext-3.0.0a2/OpenGLContext/ui/hudwidgets.py +0 -1053
- openglcontext-3.0.0a2/OpenGLContext/ui/overlay.py +0 -415
- openglcontext-3.0.0a2/OpenGLContext/ui/panel.py +0 -459
- openglcontext-3.0.0a2/OpenGLContext/ui/pictures.py +0 -261
- openglcontext-3.0.0a2/OpenGLContext/ui/screen.py +0 -177
- openglcontext-3.0.0a2/OpenGLContext/ui/settings.py +0 -273
- openglcontext-3.0.0a2/OpenGLContext/ui/widgets.py +0 -1199
- openglcontext-3.0.0a2/OpenGLContext/userpaths.py +0 -48
- openglcontext-3.0.0a2/OpenGLContext/utilities.py +0 -94
- openglcontext-3.0.0a2/OpenGLContext/vectorutilities.py +0 -101
- openglcontext-3.0.0a2/OpenGLContext/viewer/__init__.py +0 -60
- openglcontext-3.0.0a2/OpenGLContext/viewer/adapters/base.py +0 -157
- openglcontext-3.0.0a2/OpenGLContext/viewer/asyncscene.py +0 -117
- openglcontext-3.0.0a2/OpenGLContext/viewer/capture.py +0 -77
- openglcontext-3.0.0a2/OpenGLContext/viewer/environment.py +0 -131
- openglcontext-3.0.0a2/OpenGLContext/viewer/framing.py +0 -111
- openglcontext-3.0.0a2/OpenGLContext/viewer/options.py +0 -150
- openglcontext-3.0.0a2/OpenGLContext/viewer/overlay.py +0 -63
- openglcontext-3.0.0a2/OpenGLContext/viewer/sceneviewer.py +0 -1056
- openglcontext-3.0.0a2/OpenGLContext/viewer/screens.py +0 -172
- openglcontext-3.0.0a2/OpenGLContext/visitor.py +0 -68
- openglcontext-3.0.0a2/OpenGLContext/vrmlcontext.py +0 -72
- openglcontext-3.0.0a2/OpenGLContext/wxcontext.py +0 -424
- openglcontext-3.0.0a2/OpenGLContext/wxinteractivecontext.py +0 -25
- openglcontext-3.0.0a2/OpenGLContext/wxtestingcontext.py +0 -9
- openglcontext-3.0.0a2/OpenGLContext/wxvrmlcontext.py +0 -13
- openglcontext-3.0.0a2/OpenGLContext.egg-info/PKG-INFO +0 -650
- openglcontext-3.0.0a2/OpenGLContext.egg-info/SOURCES.txt +0 -696
- openglcontext-3.0.0a2/OpenGLContext.egg-info/entry_points.txt +0 -11
- openglcontext-3.0.0a2/OpenGLContext.egg-info/requires.txt +0 -44
- openglcontext-3.0.0a2/PKG-INFO +0 -650
- openglcontext-3.0.0a2/README.md +0 -588
- openglcontext-3.0.0a2/docs/audio.html +0 -769
- openglcontext-3.0.0a2/docs/documentation.html +0 -321
- openglcontext-3.0.0a2/docs/eventmodel.html +0 -192
- openglcontext-3.0.0a2/docs/flat.html +0 -161
- openglcontext-3.0.0a2/docs/gltf.html +0 -435
- openglcontext-3.0.0a2/docs/hud.html +0 -617
- openglcontext-3.0.0a2/docs/index.html +0 -125
- openglcontext-3.0.0a2/docs/instancing.html +0 -320
- openglcontext-3.0.0a2/docs/navigation.html +0 -331
- openglcontext-3.0.0a2/docs/overlayui.html +0 -636
- openglcontext-3.0.0a2/docs/particles.html +0 -368
- openglcontext-3.0.0a2/docs/pbr.html +0 -575
- openglcontext-3.0.0a2/docs/physics.html +0 -409
- openglcontext-3.0.0a2/docs/renderpasses.html +0 -275
- openglcontext-3.0.0a2/docs/shadows.html +0 -455
- openglcontext-3.0.0a2/docs/structure.html +0 -316
- openglcontext-3.0.0a2/docs/terrain.html +0 -517
- openglcontext-3.0.0a2/docs/text.html +0 -221
- openglcontext-3.0.0a2/docs/tutorials/tutorial.css +0 -93
- openglcontext-3.0.0a2/docs/viewer.html +0 -423
- openglcontext-3.0.0a2/docs/vrml97.html +0 -495
- openglcontext-3.0.0a2/pyproject.toml +0 -167
- openglcontext-3.0.0a2/tests/_gltf_toggle_driver.py +0 -137
- openglcontext-3.0.0a2/tests/_shader_tut_lightprecalc.vert +0 -18
- openglcontext-3.0.0a2/tests/addnodes.py +0 -77
- openglcontext-3.0.0a2/tests/arbocclusionquery.py +0 -107
- openglcontext-3.0.0a2/tests/arbpointparameters.py +0 -91
- openglcontext-3.0.0a2/tests/arbwindowpos.py +0 -117
- openglcontext-3.0.0a2/tests/cubeback_rot.py +0 -85
- openglcontext-3.0.0a2/tests/cubebackgroundobject.py +0 -53
- openglcontext-3.0.0a2/tests/dek_surf.py +0 -79
- openglcontext-3.0.0a2/tests/dek_texturesurf.py +0 -122
- openglcontext-3.0.0a2/tests/diag_live.py +0 -87
- openglcontext-3.0.0a2/tests/feedback_mode.py +0 -57
- openglcontext-3.0.0a2/tests/getteximage.py +0 -62
- openglcontext-3.0.0a2/tests/glarrayelement.py +0 -25
- openglcontext-3.0.0a2/tests/gldrawarrays.py +0 -21
- openglcontext-3.0.0a2/tests/gldrawarrays_string.py +0 -22
- openglcontext-3.0.0a2/tests/gldrawelements.py +0 -23
- openglcontext-3.0.0a2/tests/gldrawelements_list.py +0 -59
- openglcontext-3.0.0a2/tests/gldrawelements_string.py +0 -30
- openglcontext-3.0.0a2/tests/gldrawpixels.py +0 -92
- openglcontext-3.0.0a2/tests/gldrawpixelssynth.py +0 -72
- openglcontext-3.0.0a2/tests/glelathe.py +0 -128
- openglcontext-3.0.0a2/tests/glget.py +0 -334
- openglcontext-3.0.0a2/tests/glget_with_fonts.py +0 -360
- openglcontext-3.0.0a2/tests/glgetlight.py +0 -29
- openglcontext-3.0.0a2/tests/glgetmaterial.py +0 -24
- openglcontext-3.0.0a2/tests/glgetpixelmap.py +0 -28
- openglcontext-3.0.0a2/tests/glgetpolygonstipple.py +0 -18
- openglcontext-3.0.0a2/tests/glhistogram.py +0 -87
- openglcontext-3.0.0a2/tests/glinterleavedarrays.py +0 -52
- openglcontext-3.0.0a2/tests/glprint.py +0 -142
- openglcontext-3.0.0a2/tests/glu_tess.py +0 -74
- openglcontext-3.0.0a2/tests/glu_tess2.py +0 -79
- openglcontext-3.0.0a2/tests/glugetstring.py +0 -14
- openglcontext-3.0.0a2/tests/glut_bitmap_font.py +0 -13
- openglcontext-3.0.0a2/tests/glut_font.py +0 -39
- openglcontext-3.0.0a2/tests/glut_fullscreen.py +0 -63
- openglcontext-3.0.0a2/tests/glutbitmapcharacter.py +0 -50
- openglcontext-3.0.0a2/tests/glutmousewheel.py +0 -43
- openglcontext-3.0.0a2/tests/glvertex.py +0 -20
- openglcontext-3.0.0a2/tests/heightmap.py +0 -106
- openglcontext-3.0.0a2/tests/ilsstrategies.py +0 -44
- openglcontext-3.0.0a2/tests/indexedfaceset_lit_npf.py +0 -241
- openglcontext-3.0.0a2/tests/indexedfaceset_lit_npv.py +0 -105
- openglcontext-3.0.0a2/tests/line_stipple.py +0 -44
- openglcontext-3.0.0a2/tests/lod_demo.py +0 -139
- openglcontext-3.0.0a2/tests/mouseover.py +0 -54
- openglcontext-3.0.0a2/tests/multitexture_1.py +0 -81
- openglcontext-3.0.0a2/tests/nehe2.py +0 -93
- openglcontext-3.0.0a2/tests/nehe3.py +0 -75
- openglcontext-3.0.0a2/tests/nehe4.py +0 -99
- openglcontext-3.0.0a2/tests/nehe5.py +0 -130
- openglcontext-3.0.0a2/tests/nehe6.py +0 -149
- openglcontext-3.0.0a2/tests/nehe6_compressed.py +0 -119
- openglcontext-3.0.0a2/tests/nehe6_convolve.py +0 -210
- openglcontext-3.0.0a2/tests/nehe6_multi.py +0 -193
- openglcontext-3.0.0a2/tests/nehe6_timer.py +0 -160
- openglcontext-3.0.0a2/tests/nehe7.py +0 -240
- openglcontext-3.0.0a2/tests/nehe8.py +0 -249
- openglcontext-3.0.0a2/tests/node_modify.py +0 -40
- openglcontext-3.0.0a2/tests/particles_simple.py +0 -248
- openglcontext-3.0.0a2/tests/physics_joints.py +0 -77
- openglcontext-3.0.0a2/tests/pygame_font.py +0 -19
- openglcontext-3.0.0a2/tests/pygame_textureatlas.py +0 -169
- openglcontext-3.0.0a2/tests/readpixelsleak.py +0 -99
- openglcontext-3.0.0a2/tests/redbook_alpha.py +0 -106
- openglcontext-3.0.0a2/tests/redbook_alpha3D.py +0 -149
- openglcontext-3.0.0a2/tests/redbook_surface.py +0 -113
- openglcontext-3.0.0a2/tests/redbook_surface_cb.py +0 -166
- openglcontext-3.0.0a2/tests/redbook_trim.py +0 -153
- openglcontext-3.0.0a2/tests/reference_images/teapot_regression.png +0 -0
- openglcontext-3.0.0a2/tests/resources/CH18-mandel.frag.txt +0 -54
- openglcontext-3.0.0a2/tests/resources/CH18-mandel.vert.txt +0 -36
- openglcontext-3.0.0a2/tests/resources/discard.frag.txt +0 -18
- openglcontext-3.0.0a2/tests/resources/grid.frag.txt +0 -19
- openglcontext-3.0.0a2/tests/resources/simpletexture.frag.txt +0 -21
- openglcontext-3.0.0a2/tests/resources/toon.frag.txt +0 -18
- openglcontext-3.0.0a2/tests/resources/toon.vert.txt +0 -10
- openglcontext-3.0.0a2/tests/runalltests.py +0 -123
- openglcontext-3.0.0a2/tests/saveimage.py +0 -170
- openglcontext-3.0.0a2/tests/savepostscript.py +0 -69
- openglcontext-3.0.0a2/tests/selectrendermode_threads.py +0 -89
- openglcontext-3.0.0a2/tests/shader_1.py +0 -313
- openglcontext-3.0.0a2/tests/shader_10.py +0 -346
- openglcontext-3.0.0a2/tests/shader_11.py +0 -419
- openglcontext-3.0.0a2/tests/shader_12.py +0 -331
- openglcontext-3.0.0a2/tests/shader_2.py +0 -199
- openglcontext-3.0.0a2/tests/shader_2_c_void_p.py +0 -72
- openglcontext-3.0.0a2/tests/shader_3.py +0 -182
- openglcontext-3.0.0a2/tests/shader_4.py +0 -193
- openglcontext-3.0.0a2/tests/shader_4_subset.py +0 -85
- openglcontext-3.0.0a2/tests/shader_5.py +0 -327
- openglcontext-3.0.0a2/tests/shader_6.py +0 -327
- openglcontext-3.0.0a2/tests/shader_7.py +0 -341
- openglcontext-3.0.0a2/tests/shader_8.py +0 -259
- openglcontext-3.0.0a2/tests/shader_9.py +0 -391
- openglcontext-3.0.0a2/tests/shader_binary.py +0 -163
- openglcontext-3.0.0a2/tests/shader_instanced.py +0 -341
- openglcontext-3.0.0a2/tests/shader_instanced_mapped.py +0 -298
- openglcontext-3.0.0a2/tests/shader_instanced_modern.py +0 -402
- openglcontext-3.0.0a2/tests/shader_intro.py +0 -71
- openglcontext-3.0.0a2/tests/shader_ng.py +0 -250
- openglcontext-3.0.0a2/tests/shader_sphere.py +0 -125
- openglcontext-3.0.0a2/tests/shader_spike.py +0 -95
- openglcontext-3.0.0a2/tests/shadergeometry.py +0 -123
- openglcontext-3.0.0a2/tests/shaderobjects.py +0 -241
- openglcontext-3.0.0a2/tests/shaders.py +0 -154
- openglcontext-3.0.0a2/tests/shadow_1.py +0 -699
- openglcontext-3.0.0a2/tests/shadow_2.py +0 -180
- openglcontext-3.0.0a2/tests/shadow_demo.py +0 -174
- openglcontext-3.0.0a2/tests/shadow_spot.py +0 -103
- openglcontext-3.0.0a2/tests/teapot_ceramic.py +0 -89
- openglcontext-3.0.0a2/tests/test_all_scripts.py +0 -1019
- openglcontext-3.0.0a2/tests/tiles_landscape.py +0 -103
- openglcontext-3.0.0a2/tests/tiles_terrain.py +0 -76
- openglcontext-3.0.0a2/tests/tiles_vegetation.py +0 -60
- openglcontext-3.0.0a2/tests/tiles_walk.py +0 -143
- openglcontext-3.0.0a2/tests/timesensorobject.py +0 -36
- openglcontext-3.0.0a2/tests/transforms_1.py +0 -311
- openglcontext-3.0.0a2/tests/transparentsorted.py +0 -252
- openglcontext-3.0.0a2/tests/wgl_bitmap_font.py +0 -15
- openglcontext-3.0.0a2/tests/wx_font.py +0 -54
- openglcontext-3.0.0a2/tests/wx_multiple_contexts.py +0 -87
- openglcontext-3.0.0a2/tests/wx_with_controls.py +0 -79
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/MANIFEST.in +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/arrays.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/audio/__init__.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/audio/scene.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/audio/settings.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/bin/__init__.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/bin/gltf_view.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/bin/physics_cook.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/bin/tiles_view.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/bin/ui_demo.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/bin/vrml_view.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/debug/__init__.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/events/__init__.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/events/inputstate.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/glfwvrmlcontext.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/hud.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/interactivecontext.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/__init__.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/cc0.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/gltf/draco.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/gltf/environment_sky.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/gltf/specular_glossiness.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/gltf/transforms.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/hdr.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/hdri.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/resolver.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/tiles3d/__init__.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/tiles3d/boundingvolume.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/tiles3d/fetch.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/tiles3d/loadmanager.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/tiles3d/residency.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/tiles3d/sample.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/tiles3d/scatter.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/tiles3d/screenspaceerror.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/loaders/tiles3d/traversal.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/move/__init__.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/move/bindingstore.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/move/modes.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/move/navigation.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/move/physicsplatform.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/move/viewplatformmixin.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/nav/__init__.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/passes/__init__.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/passes/renderstats.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/physics/__init__.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/physics/debugdraw.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/physics/demo.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/physics/manager.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/physics/threaded.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/available_contexts.txt +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/available_contexts_txt.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/context_icon_png.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/context_icon_small_png.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/disk_icon_hi_png.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/disk_icon_png.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/pimbackground_BK.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/pimbackground_DN.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/pimbackground_FR.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/pimbackground_LF.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/pimbackground_RT.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/pimbackground_UP.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/studio_BK.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/studio_DN.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/studio_FR.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/studio_LF.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/studio_RT.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/studio_UP.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/studiobright_BK.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/studiobright_DN.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/studiobright_FR.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/studiobright_LF.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/studiobright_RT.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/environment/studiobright_UP.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/green_arrow_right_png.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/legacy_lighting.vert.txt +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/legacy_lighting_vert_txt.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/lights.vert.txt +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/lights_vert_txt.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/pygame_icon_png.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/resources/red_arrow_right_png.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/scenegraph/collision.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/scenegraph/fog.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/scenegraph/group.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/scenegraph/ifscompiler.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/scenegraph/material_fields.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/scenegraph/physicsbody.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/scenegraph/teapot_nurbs_data.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/scenegraph/tessellationlod.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/scenegraph/text/__init__.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/scenegraph/text/fontstyle3d.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/_brdf_inc.glsl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/_common_inc.glsl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/_cubemap_inc.glsl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/_lights_inc.glsl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/_objectid_inc.glsl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/_vrml97_lighting_inc.glsl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/hdr_background.frag +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/ibl_brdf.frag +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/ibl_env.frag +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/ibl_equirect.frag +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/ibl_fullscreen.vert +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/ibl_irradiance.frag +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/ibl_prefilter.frag +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/particle.frag +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/particle.vert +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/shadow_depth.frag +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/terrain_splat.frag +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/vrml97_background.frag +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/vrml97_lighting.frag +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/vrml97_line.frag +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/vrml97_point.frag +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/vrml97_unlit.frag +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/shaders/vrml97_vertex_color.frag +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/stalltrace.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/testing/__init__.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/testing/paths.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/ui/__init__.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/ui/bindings.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/ui/generate.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/ui/geometry.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/ui/layout.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/ui/metrics.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/ui/scroll.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/ui/session.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/ui/skin.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/viewer/adapters/__init__.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/viewer/adapters/gltf.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/viewer/adapters/obj.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/viewer/adapters/scenegraph.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/viewer/adapters/tiles.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/viewer/adapters/vrml.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/viewer/caption.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/viewer/debug.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/viewer/library.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/viewer/menu.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext/viewer/source.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext.egg-info/dependency_links.txt +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/OpenGLContext.egg-info/top_level.txt +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/images/beautiful-game.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/images/context-icon-small.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/images/context_logo.gif +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/images/context_logo_icon.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/images/doc_icon.gif +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/images/flighthelmet.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/images/forest-instancing.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/images/greypinstripe.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/images/project_icon.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/images/pyopengl_icon.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/images/shadow_demo.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/images/text_simple.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/images/toronto-3dtiles.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/numeric_arrays.html +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/style/modern.css +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/style/sitestyle.css +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/style/tutorial.css +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/docs/ubershader.html +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/license.txt +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/setup.cfg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/__init__.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/_bitmap_font.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/_ceramic_textures.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/_fontstyles.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/_particle.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/arbsync.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/audio_spatial.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/backgroundobject.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/conftest.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/diag_examine.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/flower_geometry.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/frust_test_module.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/gearobject.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/geometry.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/gldrawpixels.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/heightmap.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/indexedlinesetobject.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/lightmap.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/lightmap1.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/lightobject.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/marbleface.jpeg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/molehill.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/nehe1.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/nehe_crate.bmp +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/nehe_glass.bmp +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/nehe_wall.bmp +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/nurbsobject.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/particles_effects.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/pbodemo.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/physics_bounce.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/physics_cook_view.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/physics_friction.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/physics_gravity_zones.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/physics_navigate.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/physics_room_drop.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/physics_stress.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/physics_triggers.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/pimbackground_BK.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/pimbackground_DN.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/pimbackground_FR.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/pimbackground_LF.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/pimbackground_RT.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/pimbackground_UP.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/point_and_click.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/pointsetobject.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/resources/3Dlabs-License.txt +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/resources/oblongimage.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/resources/test_context_set.txt +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/resources/test_vrml_set.txt +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/run_core_tests.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/run_teapot_regression.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/selectrendermode.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/simplerotate.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/solid_font.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/spherebackgroundobject.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/starfield.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/teapot_nurbs.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/test_gltf_demo_background.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/test_gltf_demo_model_selection.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wgl_font.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wglpixelformatarb.py +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/3shapes.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/3spheres.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/axis.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/bad_pngs.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/box.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/box_shadow.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/clear wood flooring.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/colorinterpolator.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/coordinterpolator.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/degenerate1.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/degenerate2.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/indexedpolygons.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/instanced_lattice.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/irradiation.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/light1.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/light2.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/logoinstaller.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/luminance.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/luminance_alpha.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/nurbscurve.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/pixeltexture.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/plane_shadow.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/positioninterpolator.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/proto_is_simple.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/pyramid.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/simple_occlude.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/simple_plane.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/simple_scene01.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/simple_texturea.jpg +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/simple_texturergb.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/simple_texturergba.png +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/sphere2.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/sphere3.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/sphere4.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/tessellate01.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/tessellate4ptcoplanar.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/tessellatewcombine.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/tessellatewcombine_shell.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/text.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/text3d.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/text_bitmap.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/text_simple.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/text_simple_r.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/texture_luminance.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/texture_repeat.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/texture_transparency.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/texture_transparency2.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/timesensor.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/transparency_multiple.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/viewpoints.wrl +0 -0
- {openglcontext-3.0.0a2 → openglcontext-3.0.0a4}/tests/wrls/yingyang.png +0 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
'''A 3D engine on PyOpenGL: scenes, a renderer, and a window to put it in
|
|
2
|
+
|
|
3
|
+
OpenGLContext renders 3D scenes with PyOpenGL, in a window belonging to
|
|
4
|
+
whichever GUI toolkit the application already uses. GLFW, GLUT, Pygame,
|
|
5
|
+
Tkinter, wxPython and Qt/PySide are all supported; GLFW is the one to reach
|
|
6
|
+
for with the core profile, and Tkinter the one that needs nothing installed.
|
|
7
|
+
A context can own the whole window or sit as one canvas inside a larger
|
|
8
|
+
application.
|
|
9
|
+
|
|
10
|
+
from OpenGLContext.viewer import ViewerContext, ViewerOptions
|
|
11
|
+
|
|
12
|
+
class MyViewer(ViewerContext):
|
|
13
|
+
options = ViewerOptions(source='model.glb')
|
|
14
|
+
|
|
15
|
+
MyViewer.ContextMainLoop()
|
|
16
|
+
|
|
17
|
+
What it holds:
|
|
18
|
+
|
|
19
|
+
scenegraph VRML97-style nodes, plus the metallic/roughness material
|
|
20
|
+
and mesh the glTF loader produces
|
|
21
|
+
loaders glTF 2.0/GLB, VRML97, Wavefront OBJ and streamed 3D Tiles
|
|
22
|
+
passes The core-profile and compatibility render passes, physically
|
|
23
|
+
based rendering, image-based lighting, shadows, instancing
|
|
24
|
+
move Walking, flying, swimming and mouse-look, with collision
|
|
25
|
+
physics Rigid bodies, colliders, gravity zones and triggers
|
|
26
|
+
audio Sound placed in the scene and heard from where you stand
|
|
27
|
+
ui Panels, widgets and a settings screen over the live frame
|
|
28
|
+
viewer The embeddable viewer that `oglc-view` is a command line for
|
|
29
|
+
|
|
30
|
+
It is also the primary suite of test cases PyOpenGL is verified against.
|
|
31
|
+
|
|
32
|
+
Documentation is under `docs/`, indexed by `docs/documentation.html`.
|
|
33
|
+
'''
|
|
34
|
+
|
|
35
|
+
__version__ = "3.0.0a4"
|
|
36
|
+
__author__ = "Michael Colin Fletcher"
|
|
37
|
+
__license__ = "BSD-Style, see license.txt for details and exceptions"
|
|
38
|
+
|
|
39
|
+
from OpenGLContext.plugins import Context,InteractiveContext,VRMLContext,Loader,Node,Adapter
|
|
40
|
+
|
|
41
|
+
Context( 'pygame', 'OpenGLContext.pygamecontext.PygameContext' )
|
|
42
|
+
Context( 'wx', 'OpenGLContext.wxcontext.wxContext' )
|
|
43
|
+
Context( 'glut', 'OpenGLContext.glutcontext.GLUTContext' )
|
|
44
|
+
Context( 'glfw', 'OpenGLContext.glfwcontext.GLFWContext' )
|
|
45
|
+
Context( 'tk', 'OpenGLContext.tkcontext.TkContext' )
|
|
46
|
+
# Offscreen: no window, no display server. One class fills the interactive slot
|
|
47
|
+
# too, because a context nothing can click on has no separate interactive form.
|
|
48
|
+
# One per platform -- EGL on Linux, WGL pbuffers on Windows -- and both are
|
|
49
|
+
# registered everywhere, since which one a machine can actually create is a
|
|
50
|
+
# question its answer already gives.
|
|
51
|
+
Context( 'egl', 'OpenGLContext.eglcontext.EGLContext' )
|
|
52
|
+
Context( 'wgl', 'OpenGLContext.wglcontext.WGLContext' )
|
|
53
|
+
InteractiveContext( 'pygame', 'OpenGLContext.pygameinteractivecontext.PygameInteractiveContext' )
|
|
54
|
+
InteractiveContext( 'wx', 'OpenGLContext.wxinteractivecontext.wxInteractiveContext' )
|
|
55
|
+
InteractiveContext( 'glut', 'OpenGLContext.glutinteractivecontext.GLUTInteractiveContext' )
|
|
56
|
+
InteractiveContext( 'glfw', 'OpenGLContext.glfwinteractivecontext.GLFWInteractiveContext' )
|
|
57
|
+
InteractiveContext( 'tk', 'OpenGLContext.tkinteractivecontext.TkInteractiveContext' )
|
|
58
|
+
InteractiveContext( 'egl', 'OpenGLContext.eglcontext.EGLContext' )
|
|
59
|
+
InteractiveContext( 'wgl', 'OpenGLContext.wglcontext.WGLContext' )
|
|
60
|
+
VRMLContext( 'pygame', 'OpenGLContext.pygamevrmlcontext.VRMLContext' )
|
|
61
|
+
VRMLContext( 'wx', 'OpenGLContext.wxvrmlcontext.VRMLContext' )
|
|
62
|
+
VRMLContext( 'glut', 'OpenGLContext.glutvrmlcontext.VRMLContext' )
|
|
63
|
+
VRMLContext( 'glfw', 'OpenGLContext.glfwvrmlcontext.VRMLContext' )
|
|
64
|
+
VRMLContext( 'tk', 'OpenGLContext.tkvrmlcontext.VRMLContext' )
|
|
65
|
+
VRMLContext( 'egl', 'OpenGLContext.eglvrmlcontext.VRMLContext' )
|
|
66
|
+
VRMLContext( 'wgl', 'OpenGLContext.wglvrmlcontext.VRMLContext' )
|
|
67
|
+
|
|
68
|
+
# Imported for its side effect: the package registers the Qt backend with the
|
|
69
|
+
# registries above as it loads. Absent unless the separate OpenGLContext-qt
|
|
70
|
+
# distribution is installed, which is the whole of what makes qt selectable.
|
|
71
|
+
try:
|
|
72
|
+
import OpenGLContext_qt # noqa: F401
|
|
73
|
+
except ImportError:
|
|
74
|
+
pass
|
|
75
|
+
|
|
76
|
+
Loader( 'vrml97', 'OpenGLContext.loaders.vrml97.defaultHandler', ['.wrl','.wrz','.vrml','model/vrml','x-world/x-vrml','.wrl.gz'] )
|
|
77
|
+
Loader( 'obj', 'OpenGLContext.loaders.obj.defaultHandler', ['.obj'] )
|
|
78
|
+
|
|
79
|
+
# What `oglc-view` can open, keyed by file suffix and content type. One viewer
|
|
80
|
+
# serves every format; the adapter is chosen from the source itself.
|
|
81
|
+
Adapter( 'gltf', 'OpenGLContext.viewer.adapters.gltf.GLTFAdapter', ['.gltf','.glb','model/gltf+json','model/gltf-binary'] )
|
|
82
|
+
Adapter( 'vrml97', 'OpenGLContext.viewer.adapters.vrml.VRMLAdapter', ['.wrl','.wrz','.vrml','.wrl.gz','model/vrml','x-world/x-vrml'] )
|
|
83
|
+
Adapter( 'obj', 'OpenGLContext.viewer.adapters.obj.OBJAdapter', ['.obj','.obj.gz','model/obj'] )
|
|
84
|
+
# A tileset is any .json, so the registry only claims the conventional name; a
|
|
85
|
+
# document under another name is recognised by its content (adapters._sniff).
|
|
86
|
+
Adapter( 'tiles3d', 'OpenGLContext.viewer.adapters.tiles.TilesAdapter', ['tileset.json'] )
|
|
87
|
+
|
|
88
|
+
Node( 'Anchor', 'vrml.vrml97.basenodes.Anchor' )
|
|
89
|
+
Node( 'Appearance', 'OpenGLContext.scenegraph.appearance.Appearance' )
|
|
90
|
+
Node( 'AudioEmitter', 'OpenGLContext.scenegraph.audio.AudioEmitter' )
|
|
91
|
+
Node( 'AudioSource', 'OpenGLContext.scenegraph.audio.AudioSource' )
|
|
92
|
+
Node( 'AudioClip', 'vrml.vrml97.basenodes.AudioClip' )
|
|
93
|
+
Node( 'Background', 'OpenGLContext.scenegraph.background.Background' )
|
|
94
|
+
Node( 'Billboard', 'OpenGLContext.scenegraph.billboard.Billboard' )
|
|
95
|
+
Node( 'Box', 'OpenGLContext.scenegraph.box.Box' )
|
|
96
|
+
Node( 'Collision', 'OpenGLContext.scenegraph.collision.Collision' )
|
|
97
|
+
Node( 'Color', 'vrml.vrml97.basenodes.Color' )
|
|
98
|
+
Node( 'ColorInterpolator', 'OpenGLContext.scenegraph.interpolators.ColorInterpolator' )
|
|
99
|
+
Node( 'Cone', 'OpenGLContext.scenegraph.quadrics.Cone' )
|
|
100
|
+
Node( 'Coordinate', 'OpenGLContext.scenegraph.coordinate.Coordinate' )
|
|
101
|
+
Node( 'CoordinateInterpolator', 'OpenGLContext.scenegraph.interpolators.CoordinateInterpolator' )
|
|
102
|
+
Node( 'Cylinder', 'OpenGLContext.scenegraph.quadrics.Cylinder' )
|
|
103
|
+
Node( 'CylinderSensor', 'vrml.vrml97.basenodes.CylinderSensor' )
|
|
104
|
+
Node( 'DirectionalLight', 'OpenGLContext.scenegraph.light.DirectionalLight' )
|
|
105
|
+
Node( 'ElevationGrid', 'vrml.vrml97.basenodes.ElevationGrid' )
|
|
106
|
+
Node( 'Extrusion', 'OpenGLContext.scenegraph.extrusions.Extrusion' )
|
|
107
|
+
Node( 'Fog', 'OpenGLContext.scenegraph.fog.Fog' )
|
|
108
|
+
Node( 'FontStyle', 'OpenGLContext.scenegraph.text.fontstyle3d.FontStyle' )
|
|
109
|
+
Node( 'Gear', 'OpenGLContext.scenegraph.gear.Gear' )
|
|
110
|
+
Node( 'Group', 'OpenGLContext.scenegraph.group.Group' )
|
|
111
|
+
Node( 'ImageTexture', 'OpenGLContext.scenegraph.imagetexture.ImageTexture' )
|
|
112
|
+
Node( 'IndexedFaceSet', 'OpenGLContext.scenegraph.indexedfaceset.IndexedFaceSet' )
|
|
113
|
+
Node( 'IndexedLineSet', 'OpenGLContext.scenegraph.indexedlineset.IndexedLineSet' )
|
|
114
|
+
Node( 'Inline', 'OpenGLContext.scenegraph.inline.Inline' )
|
|
115
|
+
Node( 'LOD', 'OpenGLContext.scenegraph.lod.LOD' )
|
|
116
|
+
Node( 'Material', 'OpenGLContext.scenegraph.material.Material' )
|
|
117
|
+
Node( 'MouseOver', 'OpenGLContext.scenegraph.mouseover.MouseOver' )
|
|
118
|
+
Node( 'MovieTexture', 'vrml.vrml97.basenodes.MovieTexture' )
|
|
119
|
+
Node( 'NavigationInfo', 'vrml.vrml97.basenodes.NavigationInfo' )
|
|
120
|
+
Node( 'Normal', 'vrml.vrml97.basenodes.Normal' )
|
|
121
|
+
Node( 'NormalInterpolator', 'vrml.vrml97.basenodes.NormalInterpolator' )
|
|
122
|
+
Node( 'OrientationInterpolator', 'OpenGLContext.scenegraph.interpolators.OrientationInterpolator' )
|
|
123
|
+
Node( 'PixelTexture', 'OpenGLContext.scenegraph.imagetexture.PixelTexture' )
|
|
124
|
+
Node( 'PlaneSensor', 'vrml.vrml97.basenodes.PlaneSensor' )
|
|
125
|
+
Node( 'PolyCone', 'OpenGLContext.scenegraph.extrusions.PolyCone' )
|
|
126
|
+
Node( 'PolyCylinder', 'OpenGLContext.scenegraph.extrusions.PolyCylinder' )
|
|
127
|
+
Node( 'PointLight', 'OpenGLContext.scenegraph.light.PointLight' )
|
|
128
|
+
Node( 'ParticleEmitter', 'OpenGLContext.scenegraph.particles.ParticleEmitter' )
|
|
129
|
+
Node( 'PointSet', 'OpenGLContext.scenegraph.pointset.PointSet' )
|
|
130
|
+
Node( 'PositionInterpolator', 'OpenGLContext.scenegraph.interpolators.PositionInterpolator' )
|
|
131
|
+
Node( 'ProximitySensor', 'vrml.vrml97.basenodes.ProximitySensor' )
|
|
132
|
+
Node( 'ScalarInterpolator', 'OpenGLContext.scenegraph.interpolators.ScalarInterpolator' )
|
|
133
|
+
Node( 'Shape', 'OpenGLContext.scenegraph.shape.Shape' )
|
|
134
|
+
Node( 'Sound', 'OpenGLContext.scenegraph.audio.Sound' )
|
|
135
|
+
Node( 'Sphere', 'OpenGLContext.scenegraph.quadrics.Sphere' )
|
|
136
|
+
Node( 'SphereSensor', 'vrml.vrml97.basenodes.SphereSensor' )
|
|
137
|
+
Node( 'SpotLight', 'OpenGLContext.scenegraph.light.SpotLight' )
|
|
138
|
+
Node( 'Switch', 'OpenGLContext.scenegraph.switch.Switch' )
|
|
139
|
+
Node( 'Teapot', 'OpenGLContext.scenegraph.teapot.Teapot' )
|
|
140
|
+
Node( 'Text', 'OpenGLContext.scenegraph.text.text.Text' )
|
|
141
|
+
Node( 'TextureCoordinate', 'vrml.vrml97.basenodes.TextureCoordinate' )
|
|
142
|
+
Node( 'TextureTransform', 'OpenGLContext.scenegraph.texturetransform.TextureTransform' )
|
|
143
|
+
Node( 'TimeSensor', 'OpenGLContext.scenegraph.timesensor.TimeSensor' )
|
|
144
|
+
Node( 'TouchSensor', 'vrml.vrml97.basenodes.TouchSensor' )
|
|
145
|
+
Node( 'Transform', 'OpenGLContext.scenegraph.transform.Transform' )
|
|
146
|
+
Node( 'Viewpoint', 'OpenGLContext.scenegraph.viewpoint.Viewpoint' )
|
|
147
|
+
Node( 'VisibilitySensor', 'vrml.vrml97.basenodes.VisibilitySensor' )
|
|
148
|
+
Node( 'WorldInfo', 'vrml.vrml97.basenodes.WorldInfo' )
|
|
149
|
+
Node( 'sceneGraph', 'OpenGLContext.scenegraph.scenegraph.SceneGraph' )
|
|
150
|
+
Node( 'IndexedPolygons', 'OpenGLContext.scenegraph.indexedpolygons.IndexedPolygons' )
|
|
151
|
+
Node( 'FontStyle3D', 'OpenGLContext.scenegraph.text.fontstyle3d.FontStyle3D' )
|
|
152
|
+
Node( 'SimpleBackground', 'OpenGLContext.scenegraph.simplebackground.SimpleBackground' )
|
|
153
|
+
Node( 'CubeBackground', 'OpenGLContext.scenegraph.cubebackground.CubeBackground' )
|
|
154
|
+
Node( 'SphereBackground', 'OpenGLContext.scenegraph.spherebackground.SphereBackground' )
|
|
155
|
+
Node( 'MMImageTexture', 'OpenGLContext.scenegraph.imagetexture.MMImageTexture' )
|
|
156
|
+
Node( 'Contour2D', 'OpenGLContext.scenegraph.nurbs.Contour2D' )
|
|
157
|
+
Node( 'NurbsCurve', 'OpenGLContext.scenegraph.nurbs.NurbsCurve' )
|
|
158
|
+
Node( 'NurbsCurve2D', 'OpenGLContext.scenegraph.nurbs.NurbsCurve2D' )
|
|
159
|
+
Node( 'NurbsDomainDistanceSample', 'OpenGLContext.scenegraph.nurbs.NurbsDomainDistanceSample' )
|
|
160
|
+
Node( 'NurbsSurface', 'OpenGLContext.scenegraph.nurbs.NurbsSurface' )
|
|
161
|
+
Node( 'NurbsToleranceSample', 'OpenGLContext.scenegraph.nurbs.NurbsToleranceSample' )
|
|
162
|
+
Node( 'Polyline2D', 'OpenGLContext.scenegraph.nurbs.Polyline2D' )
|
|
163
|
+
Node( 'TrimmedSurface', 'OpenGLContext.scenegraph.nurbs.TrimmedSurface' )
|
|
164
|
+
|
|
165
|
+
for suffix in ('1f','2f','3f','4f','m2','m3','m4','m2x3','m3x2','m2x4','m4x2','m3x4','m4x3'):
|
|
166
|
+
Node( 'FloatUniform'+suffix,'OpenGLContext.scenegraph.shaders.FloatUniform'+suffix )
|
|
167
|
+
for suffix in ('1i','2i','3i','4i'):
|
|
168
|
+
Node( 'IntUniform'+suffix,'OpenGLContext.scenegraph.shaders.IntUniform'+suffix )
|
|
169
|
+
Node( 'TextureUniform','OpenGLContext.scenegraph.shaders.TextureUniform' )
|
|
170
|
+
Node( 'TextureBufferUniform','OpenGLContext.scenegraph.shaders.TextureBufferUniform' )
|
|
171
|
+
Node( 'GLSLShader','OpenGLContext.scenegraph.shaders.GLSLShader' )
|
|
172
|
+
Node( 'GLSLObject','OpenGLContext.scenegraph.shaders.GLSLObject' )
|
|
173
|
+
Node( 'GLSLImport','OpenGLContext.scenegraph.shaders.GLSLImport' )
|
|
174
|
+
|
|
175
|
+
Node( 'ShaderAttribute','OpenGLContext.scenegraph.shaders.ShaderAttribute' )
|
|
176
|
+
Node( 'ShaderBuffer','OpenGLContext.scenegraph.shaders.ShaderBuffer' )
|
|
177
|
+
Node( 'ShaderIndexBuffer','OpenGLContext.scenegraph.shaders.ShaderIndexBuffer' )
|
|
178
|
+
Node( 'ShaderSlice','OpenGLContext.scenegraph.shaders.ShaderSlice' )
|
|
179
|
+
Node( 'ShaderGeometry','OpenGLContext.scenegraph.shaders.ShaderGeometry' )
|
|
180
|
+
|
|
181
|
+
Node( 'Shader','OpenGLContext.scenegraph.shaders.Shader' )
|
|
182
|
+
Node( 'ROUTE','vrml.route.ROUTE' )
|
|
183
|
+
Node( 'IS','vrml.route.IS' )
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"""PyInstaller hooks for OpenGLContext
|
|
2
|
+
|
|
3
|
+
PyInstaller finds these through the ``pyinstaller40`` entry point declared in
|
|
4
|
+
``pyproject.toml``: it calls :func:`get_hook_dirs` and reads every
|
|
5
|
+
``hook-*.py`` in the directory returned. An application freezing itself needs
|
|
6
|
+
to do nothing to switch them on, and nothing here is imported when the engine
|
|
7
|
+
is merely used.
|
|
8
|
+
|
|
9
|
+
What an application does choose is in :mod:`OpenGLContext.packaging`.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import os
|
|
13
|
+
from typing import List
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def get_hook_dirs() -> List[str]:
|
|
17
|
+
"""Directories PyInstaller should read hooks from"""
|
|
18
|
+
return [os.path.dirname(__file__)]
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"""What a frozen application needs from the engine beyond its import statements
|
|
2
|
+
|
|
3
|
+
Three sets of things the engine reaches by name rather than by importing:
|
|
4
|
+
|
|
5
|
+
* the plug-in registries (:mod:`OpenGLContext.plugins`) -- the windowing
|
|
6
|
+
backends, the format loaders, the viewer's adapters and every scenegraph node,
|
|
7
|
+
each declared as a string and imported when a scene asks for it,
|
|
8
|
+
* the generated resource and font-atlas modules, loaded by name from a
|
|
9
|
+
``res://`` URL and from the size a piece of text is drawn at, and
|
|
10
|
+
* the files the engine opens by path: the GLSL sources the render passes are
|
|
11
|
+
built from, and the environment maps a default background is lit by.
|
|
12
|
+
|
|
13
|
+
Each is reported from the source the running engine uses, so a node or a shader
|
|
14
|
+
added to the engine reaches a frozen application without an edit here.
|
|
15
|
+
|
|
16
|
+
The whole registry is reported, PyOpenGL's own entries included: an application
|
|
17
|
+
built on the engine imports both, and naming a module twice costs nothing.
|
|
18
|
+
Modules for a toolkit that is not installed are reported too and end up as
|
|
19
|
+
missing-import notes in the build log rather than as failures -- the backend
|
|
20
|
+
reports itself unavailable at run time, which is what a bundle wants. To leave
|
|
21
|
+
an unwanted toolkit out altogether, pass
|
|
22
|
+
:func:`OpenGLContext.packaging.unused_backend_modules` to ``excludes``.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
from typing import List
|
|
26
|
+
|
|
27
|
+
from PyInstaller import isolated
|
|
28
|
+
from PyInstaller.utils.hooks import collect_data_files, collect_submodules
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@isolated.decorate
|
|
32
|
+
def _plugin_modules() -> List[str]:
|
|
33
|
+
"""Modules the plug-in registries would import, the engine's own included"""
|
|
34
|
+
import OpenGLContext # noqa: F401 -- imported for its registrations
|
|
35
|
+
from OpenGL import plugins
|
|
36
|
+
|
|
37
|
+
modules: List[str] = plugins.registered_modules()
|
|
38
|
+
return modules
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
hiddenimports = (
|
|
42
|
+
_plugin_modules()
|
|
43
|
+
# `res://` URLs and the text renderer name these modules at run time; they
|
|
44
|
+
# are generated Python holding the bytes of an icon, a shader or a font
|
|
45
|
+
# atlas, so they travel as code rather than as data files.
|
|
46
|
+
+ collect_submodules('OpenGLContext.resources')
|
|
47
|
+
+ collect_submodules('OpenGLContext.scenegraph.text.fonts')
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
# The shaders, the environment maps and the atlas images beside their generated
|
|
51
|
+
# modules: everything in the package that is not Python. It is under half a
|
|
52
|
+
# megabyte all together, so it is collected wholesale rather than by a list of
|
|
53
|
+
# patterns that would go stale as passes are added.
|
|
54
|
+
datas = collect_data_files('OpenGLContext')
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"""The GLFW shared library, which its bindings open by path
|
|
2
|
+
|
|
3
|
+
``glfw`` is the backend the engine recommends for the core profile, and the
|
|
4
|
+
one an application on this stack normally freezes. Its bindings load the
|
|
5
|
+
library with ``ctypes`` from a path they work out at run time -- including,
|
|
6
|
+
already, the paths a frozen application has -- so all that is missing is the
|
|
7
|
+
file itself, which no import statement mentions.
|
|
8
|
+
|
|
9
|
+
The Linux wheels carry a build for X11 and one for Wayland and choose between
|
|
10
|
+
them from the session type, so both travel: which one a machine wants is not
|
|
11
|
+
known when the bundle is built. PyInstaller ships no hook for ``glfw``, so
|
|
12
|
+
this one lives with the engine that asks for it.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
from PyInstaller.utils.hooks import collect_dynamic_libs
|
|
16
|
+
|
|
17
|
+
binaries = collect_dynamic_libs('glfw')
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
"""Texture atlas implementation"""
|
|
2
|
+
import math
|
|
3
|
+
import weakref
|
|
4
|
+
import logging
|
|
5
|
+
from typing import Any, Dict, List, Optional, Sequence, Tuple
|
|
6
|
+
|
|
7
|
+
from OpenGL.GL import *
|
|
8
|
+
from OpenGLContext.arrays import zeros, array, dot, ArrayType
|
|
9
|
+
from OpenGLContext import texture
|
|
10
|
+
from vrml.vrml97 import transformmatrix
|
|
11
|
+
|
|
12
|
+
log = logging.getLogger( __name__ )
|
|
13
|
+
|
|
14
|
+
class _Strip( object ):
|
|
15
|
+
"""Strip within the atlas which takes particular set of images"""
|
|
16
|
+
def __init__( self, atlas: 'Atlas', height: int, yoffset: int ) -> None:
|
|
17
|
+
"""Sets up the strip to receive images"""
|
|
18
|
+
self.atlas = atlas
|
|
19
|
+
self.height = height
|
|
20
|
+
self.width = 0
|
|
21
|
+
self.yoffset = yoffset
|
|
22
|
+
self.maps: List['weakref.ref[Map]'] = []
|
|
23
|
+
def start_coord( self, x: int ) -> int:
|
|
24
|
+
"""Do we have an empty space sufficient to fit image of width x?
|
|
25
|
+
|
|
26
|
+
return starting coordinate or -1 if not enough space...
|
|
27
|
+
"""
|
|
28
|
+
last = 0
|
|
29
|
+
for mapRef in self.maps:
|
|
30
|
+
referenced = mapRef()
|
|
31
|
+
if referenced is not None:
|
|
32
|
+
if referenced.offset[0]-last >= x:
|
|
33
|
+
return last
|
|
34
|
+
else:
|
|
35
|
+
last = referenced.offset[0]+referenced.size[0]
|
|
36
|
+
if self.atlas.max_size-last >= x:
|
|
37
|
+
return last
|
|
38
|
+
return -1
|
|
39
|
+
def add( self, image: Any, start: Optional[int] = None ) -> 'Map':
|
|
40
|
+
"""Add the given PIL image to our atlas' image"""
|
|
41
|
+
x,y = image.size
|
|
42
|
+
if start is None:
|
|
43
|
+
start = self.start_coord( x )
|
|
44
|
+
offset = (start,self.yoffset)
|
|
45
|
+
result = Map( self.atlas, offset, (x,y), image )
|
|
46
|
+
self.maps.append( weakref.ref( result, self.onRemove ) )
|
|
47
|
+
self.atlas.need_updates.append( weakref.ref(result) )
|
|
48
|
+
return result
|
|
49
|
+
def onRemove( self, *args: Any, **named: Any ) -> None:
|
|
50
|
+
"""Drop the maps that have been released (a weakref-release callback)
|
|
51
|
+
|
|
52
|
+
Rebuilt rather than removed from in place: a released map is found by
|
|
53
|
+
scanning, and removing during that scan skips the entry after it.
|
|
54
|
+
"""
|
|
55
|
+
self.maps[:] = [ ref for ref in self.maps if ref() is not None ]
|
|
56
|
+
|
|
57
|
+
class AtlasError( Exception ):
|
|
58
|
+
"""Raised when we can't/shouldn't append to this atlas"""
|
|
59
|
+
|
|
60
|
+
class Atlas( object ):
|
|
61
|
+
"""Collection of textures packed into a single texture
|
|
62
|
+
|
|
63
|
+
Texture atlases allow the rendering engine to reduce the
|
|
64
|
+
number of state-changes which occur during the rendering
|
|
65
|
+
process. They pack a large number of small textures into
|
|
66
|
+
a single large texture, producing offset/scale matrices to
|
|
67
|
+
use for modifying texture coordinates to map from the
|
|
68
|
+
original to the packed coordinates.
|
|
69
|
+
"""
|
|
70
|
+
_size: Optional[Tuple[int, int, int]] = None
|
|
71
|
+
def __init__( self, components: int = 4, dataType: str = 'B',
|
|
72
|
+
max_size: int = 4096 ) -> None:
|
|
73
|
+
self.components = components
|
|
74
|
+
self.dataType = dataType
|
|
75
|
+
self.strips: List[_Strip] = []
|
|
76
|
+
self.max_size = max_size
|
|
77
|
+
self.need_updates: List['weakref.ref[Map]'] = []
|
|
78
|
+
self.texture: Optional[texture.Texture] = None
|
|
79
|
+
log.info(
|
|
80
|
+
'Allocating a %s-component texture atlas of size %sx%s',
|
|
81
|
+
components,
|
|
82
|
+
max_size,max_size,
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
def add( self, image: Any ) -> 'Map':
|
|
86
|
+
"""Insert a PIL image of values as a sub-texture
|
|
87
|
+
|
|
88
|
+
Has to find a place within the atlas to insert the
|
|
89
|
+
sub-texture and then return the offset/scale factors...
|
|
90
|
+
"""
|
|
91
|
+
max_x = max_y = self.max_size
|
|
92
|
+
x,y = image.size
|
|
93
|
+
strip,start = self.choose_strip( max_x, max_y, x, y )
|
|
94
|
+
return strip.add( image, start=start )
|
|
95
|
+
def choose_strip( self, max_x: int, max_y: int,
|
|
96
|
+
x: int, y: int ) -> Tuple['_Strip', int]:
|
|
97
|
+
"""Find the strip to which we should be added"""
|
|
98
|
+
candidates = [
|
|
99
|
+
s
|
|
100
|
+
for s in self.strips
|
|
101
|
+
if (
|
|
102
|
+
s.height >= y
|
|
103
|
+
)
|
|
104
|
+
]
|
|
105
|
+
for strip in candidates:
|
|
106
|
+
if strip.height == y:
|
|
107
|
+
start = strip.start_coord( x )
|
|
108
|
+
if start > -1:
|
|
109
|
+
return strip, start
|
|
110
|
+
for strip in candidates:
|
|
111
|
+
strip_mag = math.floor(math.log( strip.height, 2 ))
|
|
112
|
+
img_mag = math.floor(math.log( y, 2 ))
|
|
113
|
+
if strip_mag == img_mag:
|
|
114
|
+
start = strip.start_coord( x )
|
|
115
|
+
if start > -1:
|
|
116
|
+
return strip, start
|
|
117
|
+
if self.strips:
|
|
118
|
+
last = self.strips[-1]
|
|
119
|
+
current_height = last.yoffset + last.height
|
|
120
|
+
else:
|
|
121
|
+
current_height = 0
|
|
122
|
+
if current_height + y > max_y:
|
|
123
|
+
raise AtlasError( """Insufficient space to store in this atlas""" )
|
|
124
|
+
strip = _Strip( self, height=y, yoffset= current_height )
|
|
125
|
+
self.strips.append( strip )
|
|
126
|
+
start = strip.start_coord( x )
|
|
127
|
+
return strip, start
|
|
128
|
+
|
|
129
|
+
def size( self ) -> Tuple[int, int, int]:
|
|
130
|
+
"""The atlas texture's width, height and component count"""
|
|
131
|
+
if self._size is None:
|
|
132
|
+
x = y = self.max_size
|
|
133
|
+
self._size = (x,y,self.components)
|
|
134
|
+
return self._size
|
|
135
|
+
|
|
136
|
+
def render( self ) -> texture.Texture:
|
|
137
|
+
"""Render this texture to the context"""
|
|
138
|
+
if self.texture is None:
|
|
139
|
+
format = [0, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_RGBA ][self.components]
|
|
140
|
+
self.texture = texture.Texture(format=format)
|
|
141
|
+
x,y,d = self.size()
|
|
142
|
+
self.texture.store(
|
|
143
|
+
d,
|
|
144
|
+
format,
|
|
145
|
+
x,y,
|
|
146
|
+
None
|
|
147
|
+
)
|
|
148
|
+
# Bound rather than enabled: the sub-image uploads below need the
|
|
149
|
+
# binding, and the fixed-function texture unit does not exist in core.
|
|
150
|
+
self.texture.bind()
|
|
151
|
+
needs = self.need_updates[:]
|
|
152
|
+
del self.need_updates[:len(needs)]
|
|
153
|
+
for reference in needs:
|
|
154
|
+
need = reference()
|
|
155
|
+
if need is not None:
|
|
156
|
+
need.update( self.texture )
|
|
157
|
+
return self.texture
|
|
158
|
+
def cached( self, mode: Any ) -> texture.Texture:
|
|
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: Any ) -> Any:
|
|
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
|
+
format = NumpyAdapter.shapeToMode( self.components )
|
|
171
|
+
instance = ImageTexture(
|
|
172
|
+
image = Image.new(format, (1,1)),
|
|
173
|
+
)
|
|
174
|
+
mode.cache.holder(instance, self.texture)
|
|
175
|
+
return instance
|
|
176
|
+
|
|
177
|
+
class Map( object ):
|
|
178
|
+
"""Object representing a sub-texture within a texture atlas
|
|
179
|
+
|
|
180
|
+
A Map object is a dependent version of an OpenGLContext.texture.Texture
|
|
181
|
+
object, i.e. it tries to offer the same API, but with support for
|
|
182
|
+
Atlas-based maps instead of stand-alone ones.
|
|
183
|
+
"""
|
|
184
|
+
_matrix: Any = None
|
|
185
|
+
_coords: Any = None
|
|
186
|
+
_uploaded = False
|
|
187
|
+
def __init__( self, atlas: 'Atlas', offset: Tuple[int, int],
|
|
188
|
+
size: Tuple[int, int], image: Any ) -> None:
|
|
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 ) -> Any:
|
|
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
|
+
width,height,_depth = self.atlas.size()
|
|
211
|
+
tx,ty = float(width),float(height)
|
|
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 ) -> Any:
|
|
220
|
+
"""Return our bottom-left and top-right coordinate pairs"""
|
|
221
|
+
if self._coords is None:
|
|
222
|
+
width,height,_depth = self.atlas.size()
|
|
223
|
+
tx,ty = float(width),float(height)
|
|
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: Any ) -> None:
|
|
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, target: Any ) -> None:
|
|
235
|
+
"""Update the atlas texture with (new) data in self.image
|
|
236
|
+
|
|
237
|
+
This just calls the texture's update with our metadata
|
|
238
|
+
in order to do the actual copy of the data-pointer.
|
|
239
|
+
"""
|
|
240
|
+
target.update(
|
|
241
|
+
self.offset, self.size,
|
|
242
|
+
target.pilAsString( self.image),
|
|
243
|
+
)
|
|
244
|
+
self._uploaded = True
|
|
245
|
+
@property
|
|
246
|
+
def texture( self ) -> Any:
|
|
247
|
+
"""Retrieve our texture"""
|
|
248
|
+
return self.atlas.cached( None )
|
|
249
|
+
def __call__( self ) -> None:
|
|
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: Optional[int] = 4096,
|
|
260
|
+
max_child_size: int = 128 ) -> None:
|
|
261
|
+
self.components: Dict[int, List[Atlas]] = {}
|
|
262
|
+
self.max_size = max_size
|
|
263
|
+
self.max_child_size = max_child_size
|
|
264
|
+
FORMAT_MAPPING = {
|
|
265
|
+
'L':(1,GL_LUMINANCE),
|
|
266
|
+
'LA':(2,GL_LUMINANCE_ALPHA),
|
|
267
|
+
'RGB':(3,GL_RGB),
|
|
268
|
+
'RGBA':(4,GL_RGBA),
|
|
269
|
+
}
|
|
270
|
+
def formatToComponents( self, format: str ) -> int:
|
|
271
|
+
"""Convert PIL format to component count"""
|
|
272
|
+
return self.FORMAT_MAPPING[ format ][0]
|
|
273
|
+
def add( self, image: Any ) -> 'Map':
|
|
274
|
+
"""Add the given image to the texture atlas"""
|
|
275
|
+
if isinstance( image, ArrayType ):
|
|
276
|
+
image = texture.NumpyAdapter( image )
|
|
277
|
+
x,y = image.size
|
|
278
|
+
if x > self.max_child_size:
|
|
279
|
+
raise AtlasError( """X size (%s) > %s"""%( x,self.max_child_size ) )
|
|
280
|
+
if y > self.max_child_size:
|
|
281
|
+
raise AtlasError( """Y size (%s) > %s"""%( y,self.max_child_size ) )
|
|
282
|
+
d = self.formatToComponents( image.mode )
|
|
283
|
+
atlases = self.components.setdefault( d, [])
|
|
284
|
+
for atlas in atlases:
|
|
285
|
+
try:
|
|
286
|
+
return atlas.add( image )
|
|
287
|
+
except AtlasError:
|
|
288
|
+
pass
|
|
289
|
+
atlas = Atlas( d, max_size=self.max_size or self.calculate_max_size() )
|
|
290
|
+
atlases.append( atlas )
|
|
291
|
+
return atlas.add( image )
|
|
292
|
+
_MAX_MAX_SIZE = 4096
|
|
293
|
+
def calculate_max_size( self ) -> int:
|
|
294
|
+
"""Calculate the maximum size of a texture
|
|
295
|
+
|
|
296
|
+
Note that this might, for instance, assume a
|
|
297
|
+
single-component texture or some similarly inappropriate
|
|
298
|
+
value...
|
|
299
|
+
"""
|
|
300
|
+
self.max_size = min( int(glGetIntegerv(GL_MAX_TEXTURE_SIZE)),
|
|
301
|
+
self._MAX_MAX_SIZE )
|
|
302
|
+
return self.max_size
|