From 8607169ebfaeba230ef83c1aaee9046cb71af92b Mon Sep 17 00:00:00 2001 From: JanNetoLlorens <99729455+JanNetoLlorens@users.noreply.github.com> Date: Tue, 21 Mar 2023 02:28:35 +0100 Subject: [PATCH 1/3] Adding final solution all in one(WOMBO COMBO) thx kiko --- .vs/Inventory_Management/v16/.suo | Bin 0 -> 14848 bytes .vs/ProjectSettings.json | 3 + .vs/VSWorkspaceState.json | 7 + .vs/slnx.sqlite | Bin 0 -> 90112 bytes Template/.gitignore | 77 + Template/Game/InventoryManagement.vcxproj | 150 + .../Game/InventoryManagement.vcxproj.filters | 192 + .../Game/InventoryManagement.vcxproj.user | 11 + Template/Game/Source/Animation.h | 67 + Template/Game/Source/App.cpp | 296 + Template/Game/Source/App.h | 110 + Template/Game/Source/Audio.cpp | 178 + Template/Game/Source/Audio.h | 41 + Template/Game/Source/Axe.cpp | 60 + Template/Game/Source/Axe.h | 29 + Template/Game/Source/Defs.h | 68 + Template/Game/Source/DynArray.h | 261 + Template/Game/Source/Entity.h | 109 + Template/Game/Source/EntityManager.cpp | 157 + Template/Game/Source/EntityManager.h | 44 + .../Game/Source/External/Box2D/Box2D/Box2D.h | 68 + .../Box2D/Collision/Shapes/b2ChainShape.cpp | 193 + .../Box2D/Collision/Shapes/b2ChainShape.h | 105 + .../Box2D/Collision/Shapes/b2CircleShape.cpp | 99 + .../Box2D/Collision/Shapes/b2CircleShape.h | 91 + .../Box2D/Collision/Shapes/b2EdgeShape.cpp | 138 + .../Box2D/Collision/Shapes/b2EdgeShape.h | 74 + .../Box2D/Collision/Shapes/b2PolygonShape.cpp | 467 + .../Box2D/Collision/Shapes/b2PolygonShape.h | 101 + .../Box2D/Box2D/Collision/Shapes/b2shape.h | 101 + .../Box2D/Box2D/Collision/b2BroadPhase.cpp | 119 + .../Box2D/Box2D/Collision/b2BroadPhase.h | 257 + .../Box2D/Box2D/Collision/b2CollideCircle.cpp | 154 + .../Box2D/Box2D/Collision/b2CollideEdge.cpp | 698 + .../Box2D/Collision/b2CollidePolygon.cpp | 239 + .../Box2D/Box2D/Collision/b2Collision.cpp | 252 + .../Box2D/Box2D/Collision/b2Collision.h | 277 + .../Box2D/Box2D/Collision/b2Distance.cpp | 603 + .../Box2D/Box2D/Collision/b2Distance.h | 141 + .../Box2D/Box2D/Collision/b2DynamicTree.cpp | 778 ++ .../Box2D/Box2D/Collision/b2DynamicTree.h | 289 + .../Box2D/Box2D/Collision/b2TimeOfImpact.cpp | 486 + .../Box2D/Box2D/Collision/b2TimeOfImpact.h | 58 + .../Box2D/Box2D/Common/b2BlockAllocator.cpp | 215 + .../External/Box2D/Box2D/Common/b2Draw.cpp | 44 + .../External/Box2D/Box2D/Common/b2Draw.h | 86 + .../Box2D/Box2D/Common/b2GrowableStack.h | 85 + .../External/Box2D/Box2D/Common/b2Math.cpp | 94 + .../Box2D/Box2D/Common/b2Settings.cpp | 44 + .../External/Box2D/Box2D/Common/b2Settings.h | 151 + .../Box2D/Box2D/Common/b2StackAllocator.cpp | 83 + .../Box2D/Box2D/Common/b2StackAllocator.h | 60 + .../External/Box2D/Box2D/Common/b2Timer.cpp | 101 + .../External/Box2D/Box2D/Common/b2Timer.h | 50 + .../Box2D/Box2D/Common/b2blockallocator.h | 62 + .../External/Box2D/Box2D/Common/b2math.h | 720 + .../Contacts/b2ChainAndCircleContact.cpp | 53 + .../Contacts/b2ChainAndCircleContact.h | 39 + .../Contacts/b2ChainAndPolygonContact.cpp | 53 + .../Contacts/b2ChainAndPolygonContact.h | 39 + .../Dynamics/Contacts/b2CircleContact.cpp | 52 + .../Box2D/Dynamics/Contacts/b2CircleContact.h | 39 + .../Box2D/Dynamics/Contacts/b2Contact.cpp | 247 + .../Box2D/Box2D/Dynamics/Contacts/b2Contact.h | 349 + .../Dynamics/Contacts/b2ContactSolver.cpp | 838 ++ .../Box2D/Dynamics/Contacts/b2ContactSolver.h | 95 + .../Contacts/b2EdgeAndCircleContact.cpp | 49 + .../Contacts/b2EdgeAndCircleContact.h | 39 + .../Contacts/b2EdgeAndPolygonContact.cpp | 49 + .../Contacts/b2EdgeAndPolygonContact.h | 39 + .../Contacts/b2PolygonAndCircleContact.cpp | 49 + .../Contacts/b2PolygonAndCircleContact.h | 38 + .../Dynamics/Contacts/b2PolygonContact.cpp | 52 + .../Dynamics/Contacts/b2PolygonContact.h | 39 + .../Box2D/Dynamics/Joints/b2DistanceJoint.cpp | 260 + .../Box2D/Dynamics/Joints/b2DistanceJoint.h | 169 + .../Box2D/Dynamics/Joints/b2FrictionJoint.cpp | 251 + .../Box2D/Dynamics/Joints/b2FrictionJoint.h | 119 + .../Box2D/Dynamics/Joints/b2GearJoint.cpp | 419 + .../Box2D/Box2D/Dynamics/Joints/b2GearJoint.h | 125 + .../Box2D/Box2D/Dynamics/Joints/b2Joint.cpp | 211 + .../Box2D/Dynamics/Joints/b2MotorJoint.cpp | 304 + .../Box2D/Dynamics/Joints/b2MotorJoint.h | 133 + .../Box2D/Dynamics/Joints/b2MouseJoint.cpp | 222 + .../Box2D/Dynamics/Joints/b2MouseJoint.h | 129 + .../Dynamics/Joints/b2PrismaticJoint.cpp | 629 + .../Box2D/Dynamics/Joints/b2PrismaticJoint.h | 196 + .../Box2D/Dynamics/Joints/b2PulleyJoint.cpp | 348 + .../Box2D/Dynamics/Joints/b2PulleyJoint.h | 152 + .../Box2D/Dynamics/Joints/b2RevoluteJoint.cpp | 502 + .../Box2D/Dynamics/Joints/b2RevoluteJoint.h | 204 + .../Box2D/Dynamics/Joints/b2RopeJoint.cpp | 241 + .../Box2D/Box2D/Dynamics/Joints/b2RopeJoint.h | 114 + .../Box2D/Dynamics/Joints/b2WeldJoint.cpp | 344 + .../Box2D/Box2D/Dynamics/Joints/b2WeldJoint.h | 126 + .../Box2D/Dynamics/Joints/b2WheelJoint.cpp | 419 + .../Box2D/Dynamics/Joints/b2WheelJoint.h | 210 + .../Box2D/Box2D/Dynamics/Joints/b2joint.h | 226 + .../External/Box2D/Box2D/Dynamics/b2Body.cpp | 549 + .../External/Box2D/Box2D/Dynamics/b2Body.h | 860 ++ .../Box2D/Box2D/Dynamics/b2ContactManager.cpp | 296 + .../Box2D/Box2D/Dynamics/b2ContactManager.h | 52 + .../Box2D/Box2D/Dynamics/b2Fixture.cpp | 303 + .../External/Box2D/Box2D/Dynamics/b2Fixture.h | 345 + .../Box2D/Box2D/Dynamics/b2Island.cpp | 539 + .../External/Box2D/Box2D/Dynamics/b2Island.h | 93 + .../Box2D/Box2D/Dynamics/b2TimeStep.h | 70 + .../External/Box2D/Box2D/Dynamics/b2World.cpp | 1339 ++ .../External/Box2D/Box2D/Dynamics/b2World.h | 354 + .../Box2D/Box2D/Dynamics/b2WorldCallbacks.cpp | 36 + .../Box2D/Box2D/Dynamics/b2WorldCallbacks.h | 155 + .../Source/External/Box2D/Box2D_Manual.pdf | Bin 0 -> 1143002 bytes .../Game/Source/External/Box2D/License.txt | 18 + .../Game/Source/External/PugiXml/readme.txt | 52 + .../External/PugiXml/src/pugiconfig.hpp | 71 + .../Source/External/PugiXml/src/pugixml.cpp | 11554 ++++++++++++++++ .../Source/External/PugiXml/src/pugixml.hpp | 1366 ++ Template/Game/Source/External/SDL/BUGS.txt | 16 + Template/Game/Source/External/SDL/COPYING.txt | 20 + .../Game/Source/External/SDL/README-SDL.txt | 13 + Template/Game/Source/External/SDL/README.txt | 21 + .../Game/Source/External/SDL/WhatsNew.txt | 199 + .../Game/Source/External/SDL/include/SDL.h | 132 + .../Source/External/SDL/include/SDL_assert.h | 289 + .../Source/External/SDL/include/SDL_atomic.h | 268 + .../Source/External/SDL/include/SDL_audio.h | 605 + .../Source/External/SDL/include/SDL_bits.h | 97 + .../External/SDL/include/SDL_blendmode.h | 63 + .../External/SDL/include/SDL_clipboard.h | 71 + .../Source/External/SDL/include/SDL_config.h | 221 + .../Source/External/SDL/include/SDL_cpuinfo.h | 161 + .../Source/External/SDL/include/SDL_egl.h | 1673 +++ .../Source/External/SDL/include/SDL_endian.h | 239 + .../Source/External/SDL/include/SDL_error.h | 76 + .../Source/External/SDL/include/SDL_events.h | 750 + .../External/SDL/include/SDL_filesystem.h | 136 + .../External/SDL/include/SDL_gamecontroller.h | 323 + .../Source/External/SDL/include/SDL_gesture.h | 87 + .../Source/External/SDL/include/SDL_haptic.h | 1223 ++ .../Source/External/SDL/include/SDL_hints.h | 711 + .../External/SDL/include/SDL_joystick.h | 273 + .../External/SDL/include/SDL_keyboard.h | 217 + .../Source/External/SDL/include/SDL_keycode.h | 341 + .../Source/External/SDL/include/SDL_loadso.h | 81 + .../Source/External/SDL/include/SDL_log.h | 211 + .../Source/External/SDL/include/SDL_main.h | 161 + .../External/SDL/include/SDL_messagebox.h | 144 + .../Source/External/SDL/include/SDL_mouse.h | 300 + .../Source/External/SDL/include/SDL_mutex.h | 251 + .../Source/External/SDL/include/SDL_name.h | 33 + .../Source/External/SDL/include/SDL_opengl.h | 2176 +++ .../External/SDL/include/SDL_opengl_glext.h | 11177 +++++++++++++++ .../External/SDL/include/SDL_opengles.h | 38 + .../External/SDL/include/SDL_opengles2.h | 50 + .../External/SDL/include/SDL_opengles2_gl2.h | 621 + .../SDL/include/SDL_opengles2_gl2ext.h | 2050 +++ .../SDL/include/SDL_opengles2_gl2platform.h | 30 + .../SDL/include/SDL_opengles2_khrplatform.h | 282 + .../Source/External/SDL/include/SDL_pixels.h | 454 + .../External/SDL/include/SDL_platform.h | 181 + .../Source/External/SDL/include/SDL_power.h | 75 + .../Source/External/SDL/include/SDL_quit.h | 58 + .../Source/External/SDL/include/SDL_rect.h | 148 + .../Source/External/SDL/include/SDL_render.h | 880 ++ .../External/SDL/include/SDL_revision.h | 2 + .../Source/External/SDL/include/SDL_rwops.h | 231 + .../External/SDL/include/SDL_scancode.h | 401 + .../Source/External/SDL/include/SDL_shape.h | 143 + .../Source/External/SDL/include/SDL_stdinc.h | 527 + .../Source/External/SDL/include/SDL_surface.h | 503 + .../Source/External/SDL/include/SDL_system.h | 216 + .../Source/External/SDL/include/SDL_syswm.h | 301 + .../Source/External/SDL/include/SDL_test.h | 68 + .../External/SDL/include/SDL_test_assert.h | 105 + .../External/SDL/include/SDL_test_common.h | 188 + .../External/SDL/include/SDL_test_compare.h | 69 + .../External/SDL/include/SDL_test_crc32.h | 124 + .../External/SDL/include/SDL_test_font.h | 76 + .../External/SDL/include/SDL_test_fuzzer.h | 384 + .../External/SDL/include/SDL_test_harness.h | 123 + .../External/SDL/include/SDL_test_images.h | 78 + .../External/SDL/include/SDL_test_log.h | 67 + .../External/SDL/include/SDL_test_md5.h | 129 + .../External/SDL/include/SDL_test_random.h | 115 + .../Source/External/SDL/include/SDL_thread.h | 287 + .../Source/External/SDL/include/SDL_timer.h | 115 + .../Source/External/SDL/include/SDL_touch.h | 86 + .../Source/External/SDL/include/SDL_types.h | 29 + .../Source/External/SDL/include/SDL_version.h | 162 + .../Source/External/SDL/include/SDL_video.h | 1103 ++ .../Source/External/SDL/include/begin_code.h | 146 + .../Source/External/SDL/include/close_code.h | 37 + .../Game/Source/External/SDL/libx86/SDL2.lib | Bin 0 -> 120400 bytes .../Source/External/SDL/libx86/SDL2main.lib | Bin 0 -> 37594 bytes .../Source/External/SDL_image/CHANGES.txt | 114 + .../Source/External/SDL_image/COPYING.txt | 20 + .../Game/Source/External/SDL_image/README.txt | 40 + .../External/SDL_image/include/SDL_image.h | 145 + .../SDL_image/libx86/LICENSE.jpeg.txt | 65 + .../External/SDL_image/libx86/LICENSE.png.txt | 114 + .../SDL_image/libx86/LICENSE.tiff.txt | 25 + .../SDL_image/libx86/LICENSE.webp.txt | 34 + .../SDL_image/libx86/LICENSE.zlib.txt | 31 + .../External/SDL_image/libx86/SDL2_image.lib | Bin 0 -> 9568 bytes .../Source/External/SDL_mixer/CHANGES.txt | 156 + .../Source/External/SDL_mixer/COPYING.txt | 20 + .../Game/Source/External/SDL_mixer/README.txt | 43 + .../External/SDL_mixer/include/SDL_mixer.h | 631 + .../External/SDL_mixer/libx86/SDL2_mixer.lib | Bin 0 -> 17084 bytes .../Source/External/SDL_ttf/include/SDL_ttf.h | 263 + Template/Game/Source/Fonts.cpp | 116 + Template/Game/Source/Fonts.h | 56 + Template/Game/Source/Input.cpp | 160 + Template/Game/Source/Input.h | 88 + Template/Game/Source/Inventory.cpp | 239 + Template/Game/Source/Inventory.h | 89 + Template/Game/Source/Item.h | 52 + Template/Game/Source/Life.cpp | 68 + Template/Game/Source/Life.h | 41 + Template/Game/Source/List.h | 302 + Template/Game/Source/Log.cpp | 19 + Template/Game/Source/Log.h | 8 + Template/Game/Source/Main.cpp | 113 + Template/Game/Source/Map.cpp | 763 + Template/Game/Source/Map.h | 209 + Template/Game/Source/Module.h | 104 + Template/Game/Source/Physics.cpp | 473 + Template/Game/Source/Physics.h | 99 + Template/Game/Source/Player.cpp | 105 + Template/Game/Source/Player.h | 92 + Template/Game/Source/Point.h | 131 + Template/Game/Source/Queue.h | 120 + Template/Game/Source/Render.cpp | 256 + Template/Game/Source/Render.h | 56 + Template/Game/Source/Ring.cpp | 63 + Template/Game/Source/Ring.h | 30 + Template/Game/Source/SString.h | 378 + Template/Game/Source/Scene.cpp | 111 + Template/Game/Source/Scene.h | 45 + Template/Game/Source/Textures.cpp | 121 + Template/Game/Source/Textures.h | 41 + Template/Game/Source/Window.cpp | 101 + Template/Game/Source/Window.h | 47 + Template/InventoryManagement.sln | 22 + Template/Output/Assets/Audio/Fx/hello_man.wav | Bin 0 -> 179316 bytes .../Output/Assets/Audio/Music/music_spy.ogg | Bin 0 -> 622284 bytes .../Fonts/arial/1_19tmLBmVPfbohCvb7HgJFg.png | Bin 0 -> 21425 bytes .../Output/Assets/Fonts/arial/Arial-Font.jpg | Bin 0 -> 257824 bytes .../arial/Arial_font_2021-11-28_14-10-13.jpg | Bin 0 -> 69990 bytes Template/Output/Assets/Fonts/arial/arial.ttf | Bin 0 -> 367112 bytes Template/Output/Assets/Textures/axe.png | Bin 0 -> 807 bytes Template/Output/Assets/Textures/inventory.png | Bin 0 -> 15791 bytes Template/Output/Assets/Textures/ring.png | Bin 0 -> 834 bytes .../Output/Assets/Textures/slotSelected.png | Bin 0 -> 16425 bytes .../Assets/Textures/slotSelectedHole.png | Bin 0 -> 396 bytes Template/Output/Assets/Textures/test.png | Bin 0 -> 100769 bytes Template/Output/SDL2.dll | Bin 0 -> 1007104 bytes Template/Output/SDL2_image.dll | Bin 0 -> 107520 bytes Template/Output/SDL2_mixer.dll | Bin 0 -> 184320 bytes Template/Output/SDL2_ttf.dll | Bin 0 -> 52224 bytes Template/Output/config.xml | 26 + Template/Output/libFLAC-8.dll | Bin 0 -> 367104 bytes Template/Output/libjpeg-9.dll | Bin 0 -> 223232 bytes Template/Output/libmikmod-2.dll | Bin 0 -> 285184 bytes Template/Output/libmodplug-1.dll | Bin 0 -> 401920 bytes Template/Output/libogg-0.dll | Bin 0 -> 47104 bytes Template/Output/libpng16-16.dll | Bin 0 -> 200704 bytes Template/Output/libtiff-5.dll | Bin 0 -> 436224 bytes Template/Output/libvorbis-0.dll | Bin 0 -> 196096 bytes Template/Output/libvorbisfile-3.dll | Bin 0 -> 62976 bytes Template/Output/libwebp-4.dll | Bin 0 -> 271872 bytes Template/Output/save_game.xml | 12 + Template/Output/smpeg2.dll | Bin 0 -> 301568 bytes Template/Output/zlib1.dll | Bin 0 -> 123904 bytes 274 files changed, 75604 insertions(+) create mode 100644 .vs/Inventory_Management/v16/.suo create mode 100644 .vs/ProjectSettings.json create mode 100644 .vs/VSWorkspaceState.json create mode 100644 .vs/slnx.sqlite create mode 100644 Template/.gitignore create mode 100644 Template/Game/InventoryManagement.vcxproj create mode 100644 Template/Game/InventoryManagement.vcxproj.filters create mode 100644 Template/Game/InventoryManagement.vcxproj.user create mode 100644 Template/Game/Source/Animation.h create mode 100644 Template/Game/Source/App.cpp create mode 100644 Template/Game/Source/App.h create mode 100644 Template/Game/Source/Audio.cpp create mode 100644 Template/Game/Source/Audio.h create mode 100644 Template/Game/Source/Axe.cpp create mode 100644 Template/Game/Source/Axe.h create mode 100644 Template/Game/Source/Defs.h create mode 100644 Template/Game/Source/DynArray.h create mode 100644 Template/Game/Source/Entity.h create mode 100644 Template/Game/Source/EntityManager.cpp create mode 100644 Template/Game/Source/EntityManager.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Box2D.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2ChainShape.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2ChainShape.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2CircleShape.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2CircleShape.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2EdgeShape.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2EdgeShape.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2PolygonShape.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2PolygonShape.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2shape.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/b2BroadPhase.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/b2BroadPhase.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/b2CollideCircle.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/b2CollideEdge.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/b2CollidePolygon.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/b2Collision.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/b2Collision.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/b2Distance.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/b2Distance.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/b2DynamicTree.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/b2DynamicTree.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/b2TimeOfImpact.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Collision/b2TimeOfImpact.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Common/b2BlockAllocator.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Common/b2Draw.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Common/b2Draw.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Common/b2GrowableStack.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Common/b2Math.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Common/b2Settings.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Common/b2Settings.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Common/b2StackAllocator.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Common/b2StackAllocator.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Common/b2Timer.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Common/b2Timer.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Common/b2blockallocator.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Common/b2math.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2CircleContact.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2CircleContact.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2Contact.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2Contact.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ContactSolver.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ContactSolver.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonContact.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonContact.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2DistanceJoint.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2DistanceJoint.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2FrictionJoint.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2FrictionJoint.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2GearJoint.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2GearJoint.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2Joint.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MotorJoint.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MotorJoint.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MouseJoint.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MouseJoint.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PrismaticJoint.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PulleyJoint.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PulleyJoint.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RevoluteJoint.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RopeJoint.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RopeJoint.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WeldJoint.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WeldJoint.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WheelJoint.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WheelJoint.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2joint.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Body.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Body.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/b2ContactManager.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/b2ContactManager.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Fixture.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Fixture.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Island.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Island.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/b2TimeStep.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/b2World.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/b2World.h create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/b2WorldCallbacks.cpp create mode 100644 Template/Game/Source/External/Box2D/Box2D/Dynamics/b2WorldCallbacks.h create mode 100644 Template/Game/Source/External/Box2D/Box2D_Manual.pdf create mode 100644 Template/Game/Source/External/Box2D/License.txt create mode 100644 Template/Game/Source/External/PugiXml/readme.txt create mode 100644 Template/Game/Source/External/PugiXml/src/pugiconfig.hpp create mode 100644 Template/Game/Source/External/PugiXml/src/pugixml.cpp create mode 100644 Template/Game/Source/External/PugiXml/src/pugixml.hpp create mode 100644 Template/Game/Source/External/SDL/BUGS.txt create mode 100644 Template/Game/Source/External/SDL/COPYING.txt create mode 100644 Template/Game/Source/External/SDL/README-SDL.txt create mode 100644 Template/Game/Source/External/SDL/README.txt create mode 100644 Template/Game/Source/External/SDL/WhatsNew.txt create mode 100644 Template/Game/Source/External/SDL/include/SDL.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_assert.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_atomic.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_audio.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_bits.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_blendmode.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_clipboard.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_config.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_cpuinfo.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_egl.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_endian.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_error.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_events.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_filesystem.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_gamecontroller.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_gesture.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_haptic.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_hints.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_joystick.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_keyboard.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_keycode.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_loadso.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_log.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_main.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_messagebox.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_mouse.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_mutex.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_name.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_opengl.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_opengl_glext.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_opengles.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_opengles2.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_opengles2_gl2.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_opengles2_gl2ext.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_opengles2_gl2platform.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_opengles2_khrplatform.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_pixels.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_platform.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_power.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_quit.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_rect.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_render.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_revision.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_rwops.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_scancode.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_shape.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_stdinc.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_surface.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_system.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_syswm.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_test.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_test_assert.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_test_common.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_test_compare.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_test_crc32.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_test_font.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_test_fuzzer.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_test_harness.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_test_images.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_test_log.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_test_md5.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_test_random.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_thread.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_timer.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_touch.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_types.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_version.h create mode 100644 Template/Game/Source/External/SDL/include/SDL_video.h create mode 100644 Template/Game/Source/External/SDL/include/begin_code.h create mode 100644 Template/Game/Source/External/SDL/include/close_code.h create mode 100644 Template/Game/Source/External/SDL/libx86/SDL2.lib create mode 100644 Template/Game/Source/External/SDL/libx86/SDL2main.lib create mode 100644 Template/Game/Source/External/SDL_image/CHANGES.txt create mode 100644 Template/Game/Source/External/SDL_image/COPYING.txt create mode 100644 Template/Game/Source/External/SDL_image/README.txt create mode 100644 Template/Game/Source/External/SDL_image/include/SDL_image.h create mode 100644 Template/Game/Source/External/SDL_image/libx86/LICENSE.jpeg.txt create mode 100644 Template/Game/Source/External/SDL_image/libx86/LICENSE.png.txt create mode 100644 Template/Game/Source/External/SDL_image/libx86/LICENSE.tiff.txt create mode 100644 Template/Game/Source/External/SDL_image/libx86/LICENSE.webp.txt create mode 100644 Template/Game/Source/External/SDL_image/libx86/LICENSE.zlib.txt create mode 100644 Template/Game/Source/External/SDL_image/libx86/SDL2_image.lib create mode 100644 Template/Game/Source/External/SDL_mixer/CHANGES.txt create mode 100644 Template/Game/Source/External/SDL_mixer/COPYING.txt create mode 100644 Template/Game/Source/External/SDL_mixer/README.txt create mode 100644 Template/Game/Source/External/SDL_mixer/include/SDL_mixer.h create mode 100644 Template/Game/Source/External/SDL_mixer/libx86/SDL2_mixer.lib create mode 100644 Template/Game/Source/External/SDL_ttf/include/SDL_ttf.h create mode 100644 Template/Game/Source/Fonts.cpp create mode 100644 Template/Game/Source/Fonts.h create mode 100644 Template/Game/Source/Input.cpp create mode 100644 Template/Game/Source/Input.h create mode 100644 Template/Game/Source/Inventory.cpp create mode 100644 Template/Game/Source/Inventory.h create mode 100644 Template/Game/Source/Item.h create mode 100644 Template/Game/Source/Life.cpp create mode 100644 Template/Game/Source/Life.h create mode 100644 Template/Game/Source/List.h create mode 100644 Template/Game/Source/Log.cpp create mode 100644 Template/Game/Source/Log.h create mode 100644 Template/Game/Source/Main.cpp create mode 100644 Template/Game/Source/Map.cpp create mode 100644 Template/Game/Source/Map.h create mode 100644 Template/Game/Source/Module.h create mode 100644 Template/Game/Source/Physics.cpp create mode 100644 Template/Game/Source/Physics.h create mode 100644 Template/Game/Source/Player.cpp create mode 100644 Template/Game/Source/Player.h create mode 100644 Template/Game/Source/Point.h create mode 100644 Template/Game/Source/Queue.h create mode 100644 Template/Game/Source/Render.cpp create mode 100644 Template/Game/Source/Render.h create mode 100644 Template/Game/Source/Ring.cpp create mode 100644 Template/Game/Source/Ring.h create mode 100644 Template/Game/Source/SString.h create mode 100644 Template/Game/Source/Scene.cpp create mode 100644 Template/Game/Source/Scene.h create mode 100644 Template/Game/Source/Textures.cpp create mode 100644 Template/Game/Source/Textures.h create mode 100644 Template/Game/Source/Window.cpp create mode 100644 Template/Game/Source/Window.h create mode 100644 Template/InventoryManagement.sln create mode 100644 Template/Output/Assets/Audio/Fx/hello_man.wav create mode 100644 Template/Output/Assets/Audio/Music/music_spy.ogg create mode 100644 Template/Output/Assets/Fonts/arial/1_19tmLBmVPfbohCvb7HgJFg.png create mode 100644 Template/Output/Assets/Fonts/arial/Arial-Font.jpg create mode 100644 Template/Output/Assets/Fonts/arial/Arial_font_2021-11-28_14-10-13.jpg create mode 100644 Template/Output/Assets/Fonts/arial/arial.ttf create mode 100644 Template/Output/Assets/Textures/axe.png create mode 100644 Template/Output/Assets/Textures/inventory.png create mode 100644 Template/Output/Assets/Textures/ring.png create mode 100644 Template/Output/Assets/Textures/slotSelected.png create mode 100644 Template/Output/Assets/Textures/slotSelectedHole.png create mode 100644 Template/Output/Assets/Textures/test.png create mode 100644 Template/Output/SDL2.dll create mode 100644 Template/Output/SDL2_image.dll create mode 100644 Template/Output/SDL2_mixer.dll create mode 100644 Template/Output/SDL2_ttf.dll create mode 100644 Template/Output/config.xml create mode 100644 Template/Output/libFLAC-8.dll create mode 100644 Template/Output/libjpeg-9.dll create mode 100644 Template/Output/libmikmod-2.dll create mode 100644 Template/Output/libmodplug-1.dll create mode 100644 Template/Output/libogg-0.dll create mode 100644 Template/Output/libpng16-16.dll create mode 100644 Template/Output/libtiff-5.dll create mode 100644 Template/Output/libvorbis-0.dll create mode 100644 Template/Output/libvorbisfile-3.dll create mode 100644 Template/Output/libwebp-4.dll create mode 100644 Template/Output/save_game.xml create mode 100644 Template/Output/smpeg2.dll create mode 100644 Template/Output/zlib1.dll diff --git a/.vs/Inventory_Management/v16/.suo b/.vs/Inventory_Management/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..d2d922907aa683799aa88dd262c7ed289c88ca40 GIT binary patch literal 14848 zcmeI3&vR2%6vuChsDQr^L`B3}E27ZaU(|w%K+7+s6bVpg?2I-^3xTBVByFMN%9Sfu z&gja8qi$R?O!76RBxkO`2-ZF&3SVa>XY0ZG?yy0 zQv7<8Y01;quou5A{WL-`;_HB=FS;`(MGrD&0*o>i>^?DQcH@ysSzd6^IxA;-Y?gQ@! z9{?W&HHPcKhrtct6QI74J&-Is2I_t-*T-}BdcOk8X9Vt~{-5}up#R@UU;wLscT)e4 zLw800o#D^h&U<;39gx1tHrxYBZ>7g73#0!s>8fjC4bS#|<+?maK=T!Zk_o+&9LQ%^ zvj3WY#f0)Hk{8*3*?svF`Gzgvli*hHDX0i;N6ZT`S1JGA2CYv3W{vdUwCxRhb zi!sw@`BU6G>dbiDoZ~6$Rw?`2S_A(FXfYT5FQI>cK1|Su3q<47&ZtNdf?+%JFJCTO z6_)>f)SUqZe*TpQ#Oc9|XZ+oorGK~8!2fGBrTz*^(RVcWBN+bY3{{{LB$b5`mq}+-DzqO2ivHlgy z|1kVY*OUi)wK7Nsv40NV;$0BX&7xw(R;O|$e*R0#zqcnvP2uxeBJ#5?^>FlMEA0Fq zfY)iXEsf4)xQ5MpZ7;S!Kf;5J^=x^$>+8JSo~v*Qx>@KRL+-NZTolWr(Vs=~loK( zpJV)8ujifVrJevHKInqJR7vq!So%k(E1M~ZLOq`2bspYjbuvU){Zx>zLP9xLz+aFi{G|%oz*nT|W4Dp#_L&YR2^@9A5 z_*cvycKlaU*UoM8RE8dacQ55(lx*>^FY?jSii9!#Ef2v-8^Xi{h--aEz z9?wNWooIzty4KoK8B^>hY?rc>YUdE&XKnV`zL5P1g=U7Mw(?Tb(>C zi`L5t629P+MQXpBt1i;RCacgj=K{LSU;(gI~?C>=vv6w#z;QSC=_rQJkIoqWHW z-(IJcUan(~hR3Nb8WTJl^L-O=5jXRUrMUUA3Ajl!mztwY)67qn>_YO{m^vekm2_pf z#v67{{9IhZCiOK9H;Sp!4mZ~u&;t19CXPi{#^K7HF+Vf`Pf7fb{GhDBPffs&yN7*& znbO*sYuy^rms%;a)=e2ns%d6v9xakKW#B1ERw3#8xe26Cd}W+yQ0wN()5KXL+CH5+ zNx{J+92I=5eQqY6Tuz%~p0rX>oJSyjAt2((Ttie}QpK*LEO`;KK>23^bn~{;*ln%0 z$aocP!o!>+Rmv(HHCK@9Iko4D@%6JIe&c6qWyL|4iUr z3pmZQY98q#S@iyO!IHi?- z-nzE7QkAmr+gVR8-hs#(tpRAry2;h`TMmk6vs}&c?{<9tb^p!x-dA8*6{N?LQ-6H? z`=7Obf1~Z_bUoi!)!7o2wH6wL+9T0B&G5?kkJ960*IgU+>es#~wj<2BS1U>@`+tqS z|5tARVU#@vdG--}iLTlQ@k37y`yX1HmfsPSqd$ljb9bWB<}hAOClY4NapbeG53?8g zI$x&qX3{~mSqbDbDyIhdD$6yWkLJDqHE7S+ww|ROTU`^*J(IUI4j>;^`3P| zh=0+yP>HVI9|P_FcQy3?js4$YqRG>EeE)v4ch8_4Pqm!?(D`3G{^i;Z`_7KNu3^8q zo%QOW@8AC|oWBWu{>S-$fdBCPkE4G&R~mNwz5Bm@{)e%0|EKdme*Ra^|5bhduj=y$ g%jx{zO8)0s;#%{!dh9smFU literal 0 HcmV?d00001 diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 0000000..f8b4888 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 0000000..e142217 --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,7 @@ +{ + "ExpandedNodes": [ + "" + ], + "SelectedNode": "\\C:\\Users\\janne\\Source\\Repos\\Inventory_Management", + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..6018d7c698f6081b31f42ada4a1dab05d29177ec GIT binary patch literal 90112 zcmeI4U2G#+R)DKgjvYI3SNhkpicr_i>?kqamA1?O-5LqEQ|b1!+e!SBo>nkcx#~LY z8OP4p<(`gckkUOnT6V-p`+#`i1zvWvPs;=10SR6}h<)J&kYI!aEE0?mLIMdGEf3sV zKdv9!aW)N^ZTVP=L9p-y;U(J=~ z-ksD0+<$Ed5RajbzjeVEdc@PmJFSj_o|TUd8r}8=YPLEpwbkv^^^cwX%~l)bm3n@h z5SuHB*^0>JiyPv5+}^3$s09NYer**;@~j%3YYE zoK+dt!;(F6AF)OOLq+;$tpbt!(9sxY>tdv4XY2Kh;9vrqRlFuluy6pq{<9 zDWi*!K`4ovVo5CK#4@*M)(|^tOFgQs4R7Ek!d4YLZq@A#0s>>mWj91e(S}$Mts+wy z9bj=cTgu(fmezzsB0N;s#nr5`IcT?!b_PCJwQ>#auo(B4?Rw2S@^?eAHLb!4RSQ7D35bwa>z`(3K?;pQY|clMOJ1a^3de zpff5L41|wwE&4)r99MNMt~5<$snbEdoFqR%^-`eRG#i2XEvAk6wtmOs^ruld&5g9_zFuKc(1y3?yrCO6=*ODp^gqON zG*s`S4+p4&XKl_)#^E=v!nF=|{+qaF`1l^}3$3isFOb%zp_}n*&e6u6ao6T@#+`HX zv|Xt^z~kuh&MIE3T?_>AyLah_6#LKYAFf00e*l5C8%| z;Aeoq@q%}r${pA64%7QcR&(7>v$a3yX=SoW6K<3gOxve1;GV{K_}yJyh=E25JoUD^hPCsr@Qm5F3lT z{sVNhSNnL=Gf&<5jzpHrdF!C7tZ#_-BgTs-zg=&`GNBQVXOw1=Pd1_oAB`#*J`+bW z5mz#?L^>nkvKT^gBq_*zG@gv{@l-m(OEFpDQ8E!lkxU|$MEG_iCdkQjiWkyRnUBj! zg_i^=%Ey#+D&A;Hf)ZEwR3p|<5=x9u$C3gc7g7q3yNL6txX=`kAS9Bqz^5aLSSo>) zP?FI&ACEQ@SSS_(n6+z{F9UZ!{7DA4x|dLL?$*q-2tB3NfXTXb5~t ziKO*mky4S2F)WQFipONWnM%m%R3pMGN&<6gCL??%iHAj2no1;@#+C~L7E(|$iUh2# zg7`QRBwmWfupNRBZA4QU3>95tJk%{#b0O@kYRt-W4RuZRHSV6s)q{s z5Q*IqqPK*I5aS}kZ6S6$CS0RE)M}`VPhbutV^=o19$Qb4_5U3Ew-oyy_zhk_00;m9 zAOHk_01yBIKmZ5;0U!VbfWYfV;L04s)9x?01Quy#g*LXSya8;LmwiI9f5U!<{bTlX z_6hrMub-iyF%SR(KmZ5;0U!VbfB+Bx0zd!=0D+$k0@s-weZqHEyrleuuaeBKFn8z) z-y-o`Wp2?UUkzZc;I+T|ive@X%&On-~%AGq*$6#K92U$DQ={ucX!MeHWK%6jlk zcmV+*00e*l5C8%|00;m9AOHk_01$Xh2)r5aQVGA`YplJ^zs^{Hzu)aFd=dV^kDq^8 z|EAwdMQOjcg!=ejTXj_NX{(*zU4Q>@pCKau@P}Xi#?LKysW28f?0$d_x}ALI>H1;E zR_xP@3*Ek&?S0@bUh#UVw{h)Fsom}l)R?2`H|D+6bzGRqv~a8TPQT&tQg2ayZ(Y{@ z%4PlNpl#~2!g#4wYQg&mH4deHlf00e*l z5C8%|00;nquZ6%HOu{_tckDL=t}#)1bd$k51_CAe?+nW!~Pfh@Az8)KVtuh{d@Kc z_Al8#|61Tdr$7J*00AHX1b_e#00KY&2mk>f00e-*2?RWhpAO73G|l+6_XX|Ur@ec% z_jwOP(H`=~kheL8q5S&#U!>UoW`B?U6ZUu5UuU1OBKsvf00e-*>=F2eC*dD|;{S#xN{>16XZ%+@VcK=*&n##+oyY!+?~>f00e*l5C8%|00_(y0doEi>;G9Aaj+E#00AHX1b_e#00KY&2mk>f00d@{0G$8N z;;4hoKmZ5;0U!VbfB+Bx0zd!=00AH{YXso@f7V7E>;(cq00;m9AOHk_01yBIKmZ5; zfmtK~=l`=f>R>Yv00KY&2mk>f00e*l5C8%|00_()0XYAkwGjtu!(omNLd&&o#!jc$7bHCvsQ+Uj=d`p3@xW~+_zN@ zB_deka$AK0v9-9B%a+CPx8GUvg?OI+F0V?BHgcQpz7877RI+yq;uy<=fi<1W2*kWn z!+a~^J+Z`Xm+}v@rN`U@@iCXJR<`m*-0VZKSixH1pK76S(`aS8*L~VjP|sf5l+i`V zAe6*Su_P9AVwu}BYlt1Sr5@GRhBt5%VXF!rx9au=0f8~(vKykKXhSTBR*|WU4zReJ zE#>ZKOKU58r z2Exa;7JZ>Qj;p#BSDL1>)ajsJPLiLX`l#x9l(_|$oKfa3p4g5p=G=9#?~V3e3%{%e zw21qprbV2)miv0q8FB7n+`k!d?jn24oFd|k0Uf9Fi03#WPV0BN!@Qcmm|<-<%Jg@K zHm2avdCeOm@jpJuD@TVoOPZO=?81z^O6vgiRq5cc#*ySv$v?!I6z41AiM-zzx)r8h zu$m{D-IDg|!9B3n% z{{^++3x&h<%R8DMnvLnrJFomsA9NPlJkTt#57H?-Pxp+W!n!$DnvG1&vSzM*!?>sOP5e01RB%@yzI=Sw z>kEB=GvASw`D{^WbUj+rmj7(xKEobk3goUfrL`%xonXY(dHb|zq+3E|yu#io3R^X& zC^rs#_~m_%o}_bDlD5%u>pAZX5O=XHMBGJZ3l&{w%gawO6PY*$R<6_X7@1Fz*BPb+ zua@ESeZr>3-OZ0q0}E1L-D>nv?wD2%lJak z75ezP7A9q+s;$nx7SqOjTfgIR`qQYK=0@6dU#~DJXv5oc-q4L3^kdC)`XAys8mjlv zhXd5Xvo_}?IVal@|F8IZgSO9Iln88%4EyNRE@+}880z%6>c;i zaM?06FW{h!GJls<@KMx>C(GDbc|r&BxO&dBvy5j zZlhy_9rQk4CXaU(E??Frvd3$eeWATDef-!ptJsiKY2qr#;zPu)Ia8^#aAF%{AJe2c zl4z|qOw6_L$ImWl6WCw7;d(}sN>&AOb=8?8orShk=`1)~#oG8W9)E^ujq$Lli0?T!jw(`bAF1P>LKAjs za@~%Ko}H!!SvUw6@vcM6vFo5s4@;))l}D24Q)c(i`Xybrh+iPEq>ubfw2OHC1U>ty=h#71kGu#pq9MyCqK2W0)>a z3ilzCu`xd^9Sz)5tYXdm6Ekea#nbOSi9g zA>z=BObBb-FuhDj9{-QoX1Md@+?O);oW6Cz2ZtYda;9TTE$%~$i7PcY{D8xcGwpP| z;uOq0*Of00e*l5C8%|00^8r0a*W^J96j{2mk>f z00e*l5C8%|00;m9AOHk_z_}BE|NnRH$e}|Z00e*l5C8%|00;m9AOHk_01yBI=S~35 i|IZycbO;2101yBIKmZ5;0U!VbfB+Bx0zly03H&eOnrk!w literal 0 HcmV?d00001 diff --git a/Template/.gitignore b/Template/.gitignore new file mode 100644 index 0000000..b6fa7dd --- /dev/null +++ b/Template/.gitignore @@ -0,0 +1,77 @@ +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib +!Game/Source/External/SDL/libx86/SDL2.lib +!Game/Source/External/SDL/libx86/SDL2main.lib +!Game/Source/External/SDL_image/libx86/SDL2_image.lib +!Game/Source/External/SDL_mixer/libx86/SDL2_mixer.lib + +# Executables +*.exe +*.out +*.app + +# Ignore thumbnails created by windows +Thumbs.db + +# Ignore files build by Visual Studio +*.obj +*.pdb +*.aps +# *.user +# *.vcproj +# *.vcxproj* +# *.sln +*.vspscc +*_i.c +*.i +*.icf +*_p.c +*.ncb +*.suo +*.tlb +*.tlh +*.bak +*.cache +*.ilk +*.log +*.tlog +.vs + +[Bb]uild +[Bb]in +[Dd]ebug/ +*.sbr +*.sdf +obj/ +[R]elease/ +_ReSharper*/ +[Tt]est[Rr]esult* +ipch/ +*.opensdf +*.db +*.opendb +packages/ diff --git a/Template/Game/InventoryManagement.vcxproj b/Template/Game/InventoryManagement.vcxproj new file mode 100644 index 0000000..3ef5ddd --- /dev/null +++ b/Template/Game/InventoryManagement.vcxproj @@ -0,0 +1,150 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {2AF9969B-F202-497B-AF30-7BEF9CE8005E} + Development + InventoryManagement + 10.0 + + + + Application + true + MultiByte + v142 + + + Application + false + true + MultiByte + v142 + + + + + + + + + + + + + $(SolutionDir)Build\$(Configuration)\Obj\ + + + $(SolutionDir)Build\$(Configuration) + + + $(SolutionDir)Build\$(Configuration) + $(SolutionDir)Build\$(Configuration)\Obj\ + + + + Disabled + MultiThreadedDLL + EditAndContinue + Level3 + true + _ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions) + false + $(ProjectDir)Source\External + + + Windows + true + SDL2.lib;SDL2main.lib;SDL2_image.lib; SDL2_mixer.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(ProjectDir)Source\External\SDL\libx86;$(ProjectDir)Source\External\SDL_image\libx86;$(ProjectDir)Source\External\SDL_mixer\libx86 + + + copy /Y "$(SolutionDir)Build\$(Configuration)\$(ProjectName).exe" "$(SolutionDir)Output\$(ProjectName).exe" + + + + + Level3 + MaxSpeed + true + true + MultiThreadedDLL + false + false + _ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions) + $(ProjectDir)Source\External + + + true + true + Windows + SDL2.lib;SDL2main.lib;SDL2_image.lib;SDL2_mixer.lib;SDL2_ttf.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(ProjectDir)Source\External\SDL\libx86;$(ProjectDir)Source\External\SDL_image\libx86;$(ProjectDir)Source\External\SDL_mixer\libx86;$(ProjectDir)Source\External\SDL_ttf\libx86 + + + copy /Y "$(SolutionDir)Build\$(Configuration)\$(ProjectName).exe" "$(SolutionDir)Output\$(ProjectName).exe" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Template/Game/InventoryManagement.vcxproj.filters b/Template/Game/InventoryManagement.vcxproj.filters new file mode 100644 index 0000000..7b671c1 --- /dev/null +++ b/Template/Game/InventoryManagement.vcxproj.filters @@ -0,0 +1,192 @@ + + + + + Source\Utils + + + Source\External\PugiXml + + + Source\Application\Game\Scenes + + + Source\Application\Game\Entities + + + Source\Application\Game\Entities + + + Source\Application\Game\Entities + + + Source\Application\Core + + + Source\Application\Core + + + Source\Application\BaseModules + + + Source\Application\BaseModules + + + Source\Application\BaseModules + + + Source\Application\BaseModules + + + Source\Application\BaseModules + + + Source\Application\BaseModules + + + Source\Application\Game\GameModules + + + Source\Application\Game\GameModules + + + Source\Application\Game\GameModules + + + Source\Application\Game\Entities\Items + + + Source\Application\Game\Entities\Items + + + + + Source\Utils + + + Source\Utils + + + Source\Utils + + + Source\Utils + + + Source\Utils + + + Source\Utils + + + Source\External\PugiXml + + + Source\External\PugiXml + + + Source\Utils + + + Source\Application\Game\Scenes + + + Source\Application\Headers + + + Source\Application\Headers + + + Source\Application\Game\Entities + + + Source\Application\Game\Entities + + + Source\Application\Game\Entities + + + Source\Application\Core + + + Source\Application\BaseModules + + + Source\Application\BaseModules + + + Source\Application\BaseModules + + + Source\Application\BaseModules + + + Source\Application\BaseModules + + + Source\Application\BaseModules + + + Source\Application\Game\GameModules + + + Source\Application\Game\GameModules + + + Source\Application\Headers + + + Source\Application\Game\GameModules + + + Source\Application\Game\Entities\Items + + + Source\Application\Game\Entities\Items + + + Source\Application\Game\Entities\Items + + + + + {a7aa3d8b-3511-4e83-9121-df33e457f12e} + + + {2cad778a-d356-48b0-9fee-587f1bbb187e} + + + {83a966c7-b4bb-4eff-9c2c-3ff3c7b55a60} + + + {2855ff7f-53a1-413d-a75b-18b4ade921dd} + + + {251e0f97-84b3-4346-aaa1-051abe3d9b2c} + + + {40d4bef8-e596-42f9-8791-da6f23fc7adb} + + + {a7c0ac6d-9519-4a16-8e17-d5b76c0391da} + + + {77b439ab-5d20-4524-b05f-fb9fb4b741eb} + + + {0883beaf-9064-4dce-b103-6da3a4afed86} + + + {c850660c-89c6-4ce5-b80f-0eec1b7a0ea9} + + + {b66ac0d3-da8a-4531-896a-6ccfbcd9b62b} + + + {9b9e5597-f894-491c-b546-69a649ae8513} + + + {17f2af2c-e0bf-496d-b4e7-7f48b68d1847} + + + \ No newline at end of file diff --git a/Template/Game/InventoryManagement.vcxproj.user b/Template/Game/InventoryManagement.vcxproj.user new file mode 100644 index 0000000..bffde5d --- /dev/null +++ b/Template/Game/InventoryManagement.vcxproj.user @@ -0,0 +1,11 @@ + + + + $(SolutionDir)\Output + WindowsLocalDebugger + + + $(SolutionDir)\Output + WindowsLocalDebugger + + \ No newline at end of file diff --git a/Template/Game/Source/Animation.h b/Template/Game/Source/Animation.h new file mode 100644 index 0000000..2517541 --- /dev/null +++ b/Template/Game/Source/Animation.h @@ -0,0 +1,67 @@ +#ifndef __ANIMATION_H__ +#define __ANIMATION_H__ + +#include "App.h" + +#include "SDL/include/SDL_rect.h" +#define MAX_FRAMES 120 + +class Animation +{ +public: + float speed = 1.0f; + SDL_Rect frames[MAX_FRAMES]; + bool loop = true; + // Allows the animation to keep going back and forth + bool pingpong = false; + +private: + float currentFrame = 0.0f; + int totalFrames = 0; + int loopCount = 0; + int pingpongDirection = 1; + +public: + + void PushBack(const SDL_Rect& rect) + { + frames[totalFrames++] = rect; + } + + void Reset() + { + currentFrame = 0; + } + + bool HasFinished() + { + return !loop && !pingpong && loopCount > 0; + } + + void Update() + { + currentFrame += speed; + if (currentFrame >= totalFrames) + { + currentFrame = (loop || pingpong) ? 0.0f : totalFrames - 1; + ++loopCount; + + if (pingpong) + pingpongDirection = -pingpongDirection; + } + } + + const SDL_Rect& GetCurrentFrame() const + { + int actualFrame = currentFrame; + if (pingpongDirection == -1) + actualFrame = totalFrames - currentFrame; + + return frames[actualFrame]; + } + void SetCurrentFrame(int frame) { + currentFrame = frame; + } +}; + +#endif \ No newline at end of file diff --git a/Template/Game/Source/App.cpp b/Template/Game/Source/App.cpp new file mode 100644 index 0000000..84912bc --- /dev/null +++ b/Template/Game/Source/App.cpp @@ -0,0 +1,296 @@ +#include "App.h" +#include "Window.h" +#include "Input.h" +#include "Render.h" +#include "Textures.h" +#include "Audio.h" +#include "Scene.h" +#include "Map.h" +#include "Physics.h" +#include "Fonts.h" +#include "EntityManager.h" +#include "Inventory.h" + +#include "Defs.h" +#include "Log.h" + +#include +#include + +// Constructor +App::App(int argc, char* args[]) : argc(argc), args(args) +{ + frames = 0; + + win = new Window(true); + input = new Input(true); + render = new Render(true); + tex = new Textures(true); + audio = new Audio(true); + scene = new Scene(true); + inventory = new Inventory(false); + map = new Map(true); + physics = new Physics(true); + fonts = new Fonts(true); + entityManager = new EntityManager(true); + + // Ordered for awake / Start / Update + // Reverse order of CleanUp + AddModule(win); + AddModule(input); + AddModule(tex); + AddModule(audio); + AddModule(fonts); + AddModule(physics); + AddModule(scene); + AddModule(inventory); + AddModule(entityManager); + AddModule(map); + + // Render last to swap buffer + AddModule(render); +} + +// Destructor +App::~App() +{ + // Release modules + ListItem* item = modules.end; + + while(item != NULL) + { + RELEASE(item->data); + item = item->prev; + } + + modules.Clear(); +} + +void App::AddModule(Module* module) +{ + module->Init(); + modules.Add(module); +} + +// Called before render is available +bool App::Awake() +{ + //Load config from XML + bool ret = LoadConfig(); + + if(ret == true) + { + //Read the title from the config file + title = configNode.child("app").child("title").child_value(); + + ListItem* item; + item = modules.start; + + while(item != NULL && ret == true) + { + // Add a new argument to the Awake method to receive a pointer to an xml node. + // If the section with the module name exists in config.xml, fill the pointer with the valid xml_node + // that can be used to read all variables for that module. + // Send nullptr if the node does not exist in config.xml + pugi::xml_node node = configNode.child(item->data->name.GetString()); + ret = item->data->Awake(node); + item = item->next; + } + } + + return ret; +} + +// Called before the first frame +bool App::Start() +{ + bool ret = true; + ListItem* item; + item = modules.start; + + while(item != NULL && ret == true) + { + if (item->data->IsEnabled()) { ret = item->data->Start(); } + item = item->next; + } + + return ret; +} + +// Called each loop iteration +bool App::Update() +{ + bool ret = true; + PrepareUpdate(); + + if(input->GetWindowEvent(WE_QUIT) == true) + ret = false; + + if(ret == true) + ret = PreUpdate(); + + if(ret == true) + ret = DoUpdate(); + + if(ret == true) + ret = PostUpdate(); + + FinishUpdate(); + return ret; +} + +// Load config from XML file +bool App::LoadConfig() +{ + bool ret = false; + + // Load config.xml file using load_file() method from the xml_document class + pugi::xml_parse_result parseResult = configFile.load_file("config.xml"); + + // Check result for loading errors + if (parseResult) { + ret = true; + configNode = configFile.child("config"); + } + else { + LOG("Error in App::LoadConfig(): %s", parseResult.description()); + } + + return ret; +} + +// --------------------------------------------- +void App::PrepareUpdate() +{ +} + +// --------------------------------------------- +void App::FinishUpdate() +{ + // This is a good place to call Load / Save functions +} + +// Call modules before each loop iteration +bool App::PreUpdate() +{ + bool ret = true; + + ListItem* item; + Module* pModule = NULL; + + for(item = modules.start; item != NULL && ret == true; item = item->next) + { + pModule = item->data; + + if(pModule->state == false) { + continue; + } + + ret = item->data->PreUpdate(); + } + + return ret; +} + +// Call modules on each loop iteration +bool App::DoUpdate() +{ + bool ret = true; + ListItem* item; + + Module* pModule = NULL; + + for(item = modules.start; item != NULL && ret == true; item = item->next) + { + pModule = item->data; + + if(pModule->state == false) { + continue; + } + + ret = item->data->Update(dt); + } + + return ret; +} + +// Call modules after each loop iteration +bool App::PostUpdate() +{ + bool ret = true; + ListItem* item; + Module* pModule = NULL; + + for(item = modules.start; item != NULL && ret == true; item = item->next) + { + pModule = item->data; + + if(pModule->state == false) { + continue; + } + + ret = item->data->PostUpdate(); + } + + return ret; +} + +// Called before quitting +bool App::CleanUp() +{ + bool ret = true; + ListItem* item; + item = modules.end; + + while(item != NULL && ret == true) + { + if (item->data->IsEnabled() == true) { ret = item->data->CleanUp(); } + item = item->prev; + } + + return ret; +} + +// --------------------------------------- +int App::GetArgc() const +{ + return argc; +} + +// --------------------------------------- +const char* App::GetArgv(int index) const +{ + if(index < argc) + return args[index]; + else + return NULL; +} + +// --------------------------------------- +const char* App::GetTitle() const +{ + return title.GetString(); +} + +// --------------------------------------- +const char* App::GetOrganization() const +{ + return organization.GetString(); +} + +pugi::xml_node App::LoadConfigFileToVar() +{ + pugi::xml_node ret; + // L01: DONE 3: Load config.xml file using load_file() method from the xml_document class + pugi::xml_parse_result parseResult = configFile.load_file("config.xml"); + + // L01: DONE 3: Check result for loading errors + if (parseResult) { + ret = configFile.child("config"); + } + else { + LOG("Error in App::LoadConfig(): %s", parseResult.description()); + } + + return ret; +} \ No newline at end of file diff --git a/Template/Game/Source/App.h b/Template/Game/Source/App.h new file mode 100644 index 0000000..96208d6 --- /dev/null +++ b/Template/Game/Source/App.h @@ -0,0 +1,110 @@ +#ifndef __APP_H__ +#define __APP_H__ + +#include "Module.h" +#include "List.h" + +#include "PugiXml/src/pugixml.hpp" + +// Modules +class Window; +class Input; +class Render; +class Textures; +class Audio; +class Scene; +class Inventory; +class Map; +class Physics; +class Fonts; +class EntityManager; + +class App +{ +public: + + // Constructor + App(int argc, char* args[]); + + // Destructor + virtual ~App(); + + // Called before render is available + bool Awake(); + + // Called before the first frame + bool Start(); + + // Called each loop iteration + bool Update(); + + // Called before quitting + bool CleanUp(); + + // Add a new module to handle + void AddModule(Module* module); + + // Exposing some properties for reading + int GetArgc() const; + const char* GetArgv(int index) const; + const char* GetTitle() const; + const char* GetOrganization() const; + + // Load config file to var + pugi::xml_node LoadConfigFileToVar(); + +private: + + // Load config file + bool LoadConfig(); + + // Call modules before each loop iteration + void PrepareUpdate(); + + // Call modules before each loop iteration + void FinishUpdate(); + + // Call modules before each loop iteration + bool PreUpdate(); + + // Call modules on each loop iteration + bool DoUpdate(); + + // Call modules after each loop iteration + bool PostUpdate(); + +public: + + // Modules + Window* win; + Input* input; + Render* render; + Textures* tex; + Audio* audio; + Scene* scene; + Inventory* inventory; + Map* map; + Physics* physics; + Fonts* fonts; + EntityManager* entityManager; + +private: + + int argc; + char** args; + SString title; + SString organization; + + List modules; + + // xml_document to store the config file and xml_node(s) to read specific branches of the xml + pugi::xml_document configFile; + pugi::xml_node configNode; + + uint frames; + float dt; +}; + +extern App* app; + +#endif // __APP_H__ \ No newline at end of file diff --git a/Template/Game/Source/Audio.cpp b/Template/Game/Source/Audio.cpp new file mode 100644 index 0000000..0ef74e7 --- /dev/null +++ b/Template/Game/Source/Audio.cpp @@ -0,0 +1,178 @@ +#include "App.h" +#include "Audio.h" + +#include "Defs.h" +#include "Log.h" + +// NOTE: Recommended using: Additional Include Directories, +// instead of 'hardcoding' library location path in code logic +#include "SDL/include/SDL.h" +#include "SDL_mixer/include/SDL_mixer.h" + +// NOTE: Library linkage is configured in Linker Options +//#pragma comment(lib, "../Game/Source/External/SDL_mixer/libx86/SDL2_mixer.lib") + +Audio::Audio(bool startEnabled) : Module(startEnabled) +{ + music = NULL; + name.Create("audio"); +} + +// Destructor +Audio::~Audio() +{} + +// Called before render is available +bool Audio::Awake(pugi::xml_node& config) +{ + LOG("Loading Audio Mixer"); + bool ret = true; + SDL_Init(0); + + if(SDL_InitSubSystem(SDL_INIT_AUDIO) < 0) + { + LOG("SDL_INIT_AUDIO could not initialize! SDL_Error: %s\n", SDL_GetError()); + state = false; + ret = true; + } + + // Load support for the JPG and PNG image formats + int flags = MIX_INIT_OGG; + int init = Mix_Init(flags); + + if((init & flags) != flags) + { + LOG("Could not initialize Mixer lib. Mix_Init: %s", Mix_GetError()); + state = false; + ret = true; + } + + // Initialize SDL_mixer + if(Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, 2, 2048) < 0) + { + LOG("SDL_mixer could not initialize! SDL_mixer Error: %s\n", Mix_GetError()); + state = false; + ret = true; + } + + return ret; +} + +// Called before quitting +bool Audio::CleanUp() +{ + if(!state) + return true; + + LOG("Freeing sound FX, closing Mixer and Audio subsystem"); + + if(music != NULL) + { + Mix_FreeMusic(music); + } + + ListItem* item; + for(item = fx.start; item != NULL; item = item->next) + Mix_FreeChunk(item->data); + + fx.Clear(); + + Mix_CloseAudio(); + Mix_Quit(); + SDL_QuitSubSystem(SDL_INIT_AUDIO); + + return true; +} + +// Play a music file +bool Audio::PlayMusic(const char* path, float fadeTime) +{ + bool ret = true; + + if(!state) + return false; + + if(music != NULL) + { + if(fadeTime > 0.0f) + { + Mix_FadeOutMusic(int(fadeTime * 1000.0f)); + } + else + { + Mix_HaltMusic(); + } + + // this call blocks until fade out is done + Mix_FreeMusic(music); + } + + music = Mix_LoadMUS(path); + + if(music == NULL) + { + LOG("Cannot load music %s. Mix_GetError(): %s\n", path, Mix_GetError()); + ret = false; + } + else + { + if(fadeTime > 0.0f) + { + if(Mix_FadeInMusic(music, -1, (int) (fadeTime * 1000.0f)) < 0) + { + LOG("Cannot fade in music %s. Mix_GetError(): %s", path, Mix_GetError()); + ret = false; + } + } + else + { + if(Mix_PlayMusic(music, -1) < 0) + { + LOG("Cannot play in music %s. Mix_GetError(): %s", path, Mix_GetError()); + ret = false; + } + } + } + + LOG("Successfully playing %s", path); + return ret; +} + +// Load WAV +unsigned int Audio::LoadFx(const char* path) +{ + unsigned int ret = 0; + + if(!state) + return 0; + + Mix_Chunk* chunk = Mix_LoadWAV(path); + + if(chunk == NULL) + { + LOG("Cannot load wav %s. Mix_GetError(): %s", path, Mix_GetError()); + } + else + { + fx.Add(chunk); + ret = fx.Count(); + } + + return ret; +} + +// Play WAV +bool Audio::PlayFx(unsigned int id, int repeat) +{ + bool ret = false; + + if(!state) + return false; + + if(id > 0 && id <= fx.Count()) + { + Mix_PlayChannel(-1, fx[id - 1], repeat); + } + + return ret; +} \ No newline at end of file diff --git a/Template/Game/Source/Audio.h b/Template/Game/Source/Audio.h new file mode 100644 index 0000000..59da33a --- /dev/null +++ b/Template/Game/Source/Audio.h @@ -0,0 +1,41 @@ +#ifndef __AUDIO_H__ +#define __AUDIO_H__ + +#include "Module.h" + +#define DEFAULT_MUSIC_FADE_TIME 2.0f + +struct _Mix_Music; +struct Mix_Chunk; + +class Audio : public Module +{ +public: + + Audio(bool startEnabled); + + // Destructor + virtual ~Audio(); + + // Called before render is available + bool Awake(pugi::xml_node&); + + // Called before quitting + bool CleanUp(); + + // Play a music file + bool PlayMusic(const char* path, float fadeTime = DEFAULT_MUSIC_FADE_TIME); + + // Load a WAV in memory + unsigned int LoadFx(const char* path); + + // Play a previously loaded WAV + bool PlayFx(unsigned int fx, int repeat = 0); + +private: + + _Mix_Music* music; + List fx; +}; + +#endif // __AUDIO_H__ \ No newline at end of file diff --git a/Template/Game/Source/Axe.cpp b/Template/Game/Source/Axe.cpp new file mode 100644 index 0000000..e4a0096 --- /dev/null +++ b/Template/Game/Source/Axe.cpp @@ -0,0 +1,60 @@ +#include "Axe.h" +#include "App.h" +#include "Textures.h" +#include "Audio.h" +#include "Input.h" +#include "Render.h" +#include "Log.h" +#include "Point.h" +#include "Physics.h" + +Axe::Axe() : Entity(EntityType::AXE) +{ + name.Create("axe"); +} + +Axe::~Axe() {} + +bool Axe::Start() { + + position.x = 200; + position.y = 240; + texturePath = "Assets/Textures/axe.png"; + + id = 2; + + //initilize textures + texture = app->tex->Load(texturePath); + + // L07 DONE 4: Add a physics to an item - initialize the physics body + pbody = app->physics->CreateCircle(position.x + 11, position.y + 11, 11, bodyType::STATIC, true); + + // L07 DONE 7: Assign collider type + pbody->ctype = ColliderType::ITEM; + + return true; +} + +bool Axe::Update() +{ + if (!pbody->body->IsActive()) + { + pbody->body->DestroyFixture(pbody->body->GetFixtureList()); + active = false; + } + + // L07 DONE 4: Add a physics to an item - update the position of the object from the physics. + position.x = METERS_TO_PIXELS(pbody->body->GetTransform().p.x) - 11; + position.y = METERS_TO_PIXELS(pbody->body->GetTransform().p.y) - 11; + + SDL_Rect rect = { 0,0,32,32 }; + app->render->DrawTexture(texture, position.x, position.y, &rect); + + return true; +} + +bool Axe::CleanUp() +{ + pbody->body->SetActive(false); + return true; +} \ No newline at end of file diff --git a/Template/Game/Source/Axe.h b/Template/Game/Source/Axe.h new file mode 100644 index 0000000..8ecd538 --- /dev/null +++ b/Template/Game/Source/Axe.h @@ -0,0 +1,29 @@ +#pragma once + +#include "Entity.h" +#include "Point.h" +#include "SDL/include/SDL.h" + +struct SDL_Texture; + +class Axe : public Entity +{ +public: + + Axe(); + virtual ~Axe(); + + bool Start(); + + bool Update(); + + bool CleanUp(); + +public: + + bool isPicked = false; + +private: + //DONE 4: Add a physics to an item + PhysBody* pbody; +}; \ No newline at end of file diff --git a/Template/Game/Source/Defs.h b/Template/Game/Source/Defs.h new file mode 100644 index 0000000..457609f --- /dev/null +++ b/Template/Game/Source/Defs.h @@ -0,0 +1,68 @@ +#ifndef __DEFS_H__ +#define __DEFS_H__ + +#include + +// NULL just in case ---------------------- + +#ifdef NULL +#undef NULL +#endif +#define NULL 0 + +// Deletes a buffer +#define RELEASE( x ) \ + { \ + if( x != NULL ) \ + { \ + delete x; \ + x = NULL; \ + } \ + } + +// Deletes an array of buffers +#define RELEASE_ARRAY( x ) \ + { \ + if( x != NULL ) \ + { \ + delete[] x; \ + x = NULL; \ + } \ + \ + } + +#define IN_RANGE( value, min, max ) ( ((value) >= (min) && (value) <= (max)) ? 1 : 0 ) +#define MIN( a, b ) ( ((a) < (b)) ? (a) : (b) ) +#define MAX( a, b ) ( ((a) > (b)) ? (a) : (b) ) +#define TO_BOOL( a ) ( (a != 0) ? true : false ) + +typedef unsigned int uint; +typedef unsigned char uchar; +typedef unsigned __int32 uint32; +typedef unsigned __int64 uint64; + +template void SWAP(VALUE_TYPE& a, VALUE_TYPE& b) +{ + VALUE_TYPE tmp = a; + a = b; + b = tmp; +} + +// Standard string size +#define SHORT_STR 32 +#define MID_STR 255 +#define HUGE_STR 8192 + +// Joins a path and file +inline const char* const PATH(const char* folder, const char* file) +{ + static char path[MID_STR]; + sprintf_s(path, MID_STR, "%s/%s", folder, file); + return path; +} + +// Performance macros +#define PERF_START(timer) timer.Start() +#define PERF_PEEK(timer) LOG("%s took %f ms", __FUNCTION__, timer.ReadMs()) + +#endif // __DEFS_H__ \ No newline at end of file diff --git a/Template/Game/Source/DynArray.h b/Template/Game/Source/DynArray.h new file mode 100644 index 0000000..99e3fc1 --- /dev/null +++ b/Template/Game/Source/DynArray.h @@ -0,0 +1,261 @@ +#ifndef __DYNARRAY_H__ +#define __DYNARRAY_H__ + +#include "Defs.h" + +#define DYN_ARRAY_BLOCK_SIZE 16 + +template +class DynArray +{ +private: + + VALUE* data; + unsigned int memCapacity; + unsigned int numElements; + +public: + + // Constructors + DynArray() : memCapacity(0), numElements(0), data(NULL) + { + Alloc(DYN_ARRAY_BLOCK_SIZE); + } + + DynArray(unsigned int capacity) : memCapacity(0), numElements(0), data(NULL) + { + Alloc(capacity); + } + + // Destructor + ~DynArray() + { + delete[] data; + } + + // Operators + VALUE& operator[](unsigned int index) + { + ASSERT(index < numElements); + return data[index]; + } + + const VALUE& operator[](unsigned int index) const + { + assert(index < numElements); + return data[index]; + } + + const DynArray& operator+= (const DynArray& array) + { + if(numElements + array.numElements > memCapacity) + Alloc(numElements + array.numElements); + + for(uint i = 0; i < array.numElements; ++i) + data[numElements++] = array.data[i]; + + return(*this); + } + + // Data Management + void PushBack(const VALUE& element) + { + if(numElements >= memCapacity) + { + Alloc(memCapacity + DYN_ARRAY_BLOCK_SIZE); + } + + data[numElements++] = element; + } + + bool Pop(VALUE& result) + { + if(numElements > 0) + { + result = data[--numElements]; + return true; + } + return false; + } + + void Clear() + { + numElements = 0; + } + + bool Insert(const VALUE& element, unsigned int position) + { + if(position > numElements) + return false; + + if(position == numElements) + { + PushBack(element); + return true; + } + + if(numElements + 1 > memCapacity) + Alloc(memCapacity + DYN_ARRAY_BLOCK_SIZE); + + for(unsigned int i = numElements; i > position; --i) + { + data[i] = data[i - 1]; + } + + data[position] = element; + ++numElements; + + return true; + } + + bool Insert(const DynArray& array, unsigned int position) + { + if(position > numElements) + return false; + + if(numElements + array.numElements > memCapacity) + Alloc(numElements + array.numElements + 1); + + for(unsigned int i = position; i < position + array.numElements; ++i) + { + data[i + array.numElements] = data[i]; + data[i] = array[i - position]; + ++numElements; + } + + return true; + } + + VALUE* At(unsigned int index) + { + VALUE* result = NULL; + + if(index < numElements) + return result = &data[index]; + + return result; + } + + const VALUE* At(unsigned int index) const + { + VALUE* result = NULL; + + if(index < numElements) + return result = &data[index]; + + return result; + } + + // Utils + unsigned int GetCapacity() const + { + return memCapacity; + } + + unsigned int Count() const + { + return numElements; + } + + // Sort + int BubbleSort() + { + int ret = 0; + bool swapped = true; + + while(swapped) + { + swapped = false; + for(unsigned int i = 0; i < numElements - 2; ++i) + { + ++ret; + if(data[i] > data[i + 1]) + { + SWAP(data[i], data[i + 1]); + swapped = true; + } + } + } + + return ret; + } + + int BubbleSortOptimized() + { + int ret = 0; + unsigned int count; + unsigned int last = numElements - 2; + + while(last > 0) + { + count = last; + last = 0; + for(unsigned int i = 0; i < count; ++i) + { + ++ret; + if(data[i] > data[i + 1]) + { + SWAP(data[i], data[i + 1]); + last = i; + } + } + } + return ret; + } + + int CombSort() + { + int ret = 0; + bool swapped = true; + int gap = numElements - 1; + float shrink = 1.3f; + + while(swapped || gap > 1) + { + gap = MAX(1, gap / shrink); + + swapped = false; + for(unsigned int i = 0; i + gap < numElements - 1; ++i) + { + ++ret; + if(data[i] > data[i + gap]) + { + SWAP(data[i], data[i + gap]); + swapped = true; + } + } + } + + return ret; + } + + void Flip() + { + VALUE* start = &data[0]; + VALUE* end = &data[numElements-1]; + + while(start < end) SWAP(*start++, *end--); + } + +private: + + // Private Utils + void Alloc(unsigned int mem) + { + VALUE* tmp = data; + + memCapacity = mem; + data = new VALUE[memCapacity]; + + numElements = MIN(memCapacity, numElements); + + if(tmp != NULL) + { + for(unsigned int i = 0; i < numElements; ++i) data[i] = tmp[i]; + + delete[] tmp; + } + } +}; + +#endif // __DYNARRAY_H__ \ No newline at end of file diff --git a/Template/Game/Source/Entity.h b/Template/Game/Source/Entity.h new file mode 100644 index 0000000..2cce1ca --- /dev/null +++ b/Template/Game/Source/Entity.h @@ -0,0 +1,109 @@ +#ifndef __ENTITY_H__ +#define __ENTITY_H__ + +#include "Point.h" +#include "SString.h" +#include "Input.h" +#include "Render.h" + +class PhysBody; + +enum class EntityType +{ + PLAYER, + AXE, + RING, + COIN, + LIFE, + PIKU, + MAMAPIKU, + FLYING, + UNKNOWN +}; + +class Entity +{ +public: + + Entity(EntityType type) : type(type), active(true) {} + + virtual bool Awake() + { + return true; + } + + virtual bool Start() + { + return true; + } + + virtual bool Update() + { + return true; + } + + virtual bool PostUpdate() + { + return true; + } + + virtual bool CleanUp() + { + return true; + } + + virtual bool LoadState(pugi::xml_node&) + { + return true; + } + + virtual bool SaveState(pugi::xml_node&) + { + return true; + } + + void Entity::Enable() + { + if (!active) + { + active = true; + Start(); + } + } + + void Entity::Disable() + { + if (active) + { + active = false; + CleanUp(); + } + } + + virtual void OnCollision(PhysBody* physA, PhysBody* physB) { + + }; + + virtual void EndCollision(PhysBody* physA, PhysBody* physB) { + + }; + +public: + + SDL_Rect bounds; + SString name; + EntityType type; + bool active = true; + pugi::xml_node parameters; + int id; + + SDL_Texture* texture; + const char* texturePath; + + // Possible properties, it depends on how generic we + // want our Entity class, maybe it's not renderable... + iPoint position; + bool renderable = true; +}; + +#endif // __ENTITY_H__ \ No newline at end of file diff --git a/Template/Game/Source/EntityManager.cpp b/Template/Game/Source/EntityManager.cpp new file mode 100644 index 0000000..02ceab5 --- /dev/null +++ b/Template/Game/Source/EntityManager.cpp @@ -0,0 +1,157 @@ +#include "EntityManager.h" +#include "Player.h" +#include "Life.h" +#include "App.h" +#include "Textures.h" +#include "Ring.h" +#include "Axe.h" + +#include "Defs.h" +#include "Log.h" + +EntityManager::EntityManager(bool active) : Module(active) +{ + name.Create("entitymanager"); +} + +// Destructor +EntityManager::~EntityManager() +{} + +// Called before render is available +bool EntityManager::Awake(pugi::xml_node& config) +{ + return true; +} + +bool EntityManager::Start() { + + LOG("Loading Entity Manager"); + bool ret = true; + + //Iterates over the entities and calls the Awake + ListItem* item; + Entity* pEntity = NULL; + + for (item = entities.start; item != NULL && ret == true; item = item->next) + { + pEntity = item->data; + + if (pEntity->active == false) continue; + ret = item->data->Awake(); + } + + //Iterates over the entities and calls Start + for (item = entities.start; item != NULL && ret == true; item = item->next) + { + pEntity = item->data; + + if (pEntity->active == false) continue; + ret = item->data->Start(); + } + + return ret; +} + +// Called before quitting +bool EntityManager::CleanUp() +{ + bool ret = true; + ListItem* item; + item = entities.end; + + while (item != NULL && ret == true) + { + ret = item->data->CleanUp(); + item = item->prev; + } + + entities.Clear(); + + return ret; +} + +Entity* EntityManager::CreateEntity(EntityType type) +{ + Entity* entity = nullptr; + + //L02: DONE 2: Instantiate entity according to the type and add the new entoty it to the list of Entities + + switch (type) + { + + case EntityType::PLAYER: + entity = new Player(); + break; + + case EntityType::LIFE: + entity = new Life(); + break; + + case EntityType::RING: + entity = new Ring(); + break; + + case EntityType::AXE: + entity = new Axe(); + break; + + default: break; + } + + // Created entities are added to the list + AddEntity(entity); + + return entity; +} + +void EntityManager::DestroyEntity(Entity* entity) +{ + ListItem* item; + + for (item = entities.start; item != NULL; item = item->next) + { + if (item->data == entity) entities.Del(item); + } +} + +void EntityManager::AddEntity(Entity* entity) +{ + if ( entity != nullptr) entities.Add(entity); +} + +bool EntityManager::Update(float dt) +{ + //if (app->pauseMenus->isPaused()) { return true; } //This is to use in the case a "game pause" is implemented for skiping entities update + + bool ret = true; + ListItem* item; + Entity* pEntity = NULL; + + for (item = entities.start; item != NULL && ret == true; item = item->next) + { + pEntity = item->data; + + if (pEntity->active == false) continue; + ret = item->data->Update(); + } + + return ret; +} + +bool EntityManager::PostUpdate() +{ + bool ret = true; + ListItem* item; + Entity* pEntity = NULL; + + for (item = entities.start; item != NULL && ret == true; item = item->next) + { + pEntity = item->data; + + if (pEntity->active == false) continue; + ret = item->data->PostUpdate(); + } + + return ret; +} \ No newline at end of file diff --git a/Template/Game/Source/EntityManager.h b/Template/Game/Source/EntityManager.h new file mode 100644 index 0000000..e37edc8 --- /dev/null +++ b/Template/Game/Source/EntityManager.h @@ -0,0 +1,44 @@ +#ifndef __ENTITYMANAGER_H__ +#define __ENTITYMANAGER_H__ + +#include "Module.h" +#include "Entity.h" +#include "List.h" + +class EntityManager : public Module +{ +public: + + EntityManager(bool startEnabled); + + // Destructor + virtual ~EntityManager(); + + // Called before render is available + bool Awake(pugi::xml_node&); + + // Called after Awake + bool Start(); + + // Called every frame + bool Update(float dt); + + bool PostUpdate(); + + // Called before quitting + bool CleanUp(); + + // Additional methods + Entity* CreateEntity(EntityType type); + + void DestroyEntity(Entity* entity); + + void AddEntity(Entity* entity); + +public: + + List entities; + +}; + +#endif // __ENTITYMANAGER_H__ diff --git a/Template/Game/Source/External/Box2D/Box2D/Box2D.h b/Template/Game/Source/External/Box2D/Box2D/Box2D.h new file mode 100644 index 0000000..486ae85 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Box2D.h @@ -0,0 +1,68 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef BOX2D_H +#define BOX2D_H + +/** +\mainpage Box2D API Documentation + +\section intro_sec Getting Started + +For documentation please see http://box2d.org/documentation.html + +For discussion please visit http://box2d.org/forum +*/ + +// These include files constitute the main Box2D API + +#include "Common/b2Settings.h" +#include "Common/b2Draw.h" +#include "Common/b2Timer.h" + +#include "Collision/Shapes/b2CircleShape.h" +#include "Collision/Shapes/b2EdgeShape.h" +#include "Collision/Shapes/b2ChainShape.h" +#include "Collision/Shapes/b2PolygonShape.h" + +#include "Collision/b2BroadPhase.h" +#include "Collision/b2Distance.h" +#include "Collision/b2DynamicTree.h" +#include "Collision/b2TimeOfImpact.h" + +#include "Dynamics/b2Body.h" +#include "Dynamics/b2Fixture.h" +#include "Dynamics/b2WorldCallbacks.h" +#include "Dynamics/b2TimeStep.h" +#include "Dynamics/b2World.h" + +#include "Dynamics/Contacts/b2Contact.h" + +#include "Dynamics/Joints/b2DistanceJoint.h" +#include "Dynamics/Joints/b2FrictionJoint.h" +#include "Dynamics/Joints/b2GearJoint.h" +#include "Dynamics/Joints/b2MotorJoint.h" +#include "Dynamics/Joints/b2MouseJoint.h" +#include "Dynamics/Joints/b2PrismaticJoint.h" +#include "Dynamics/Joints/b2PulleyJoint.h" +#include "Dynamics/Joints/b2RevoluteJoint.h" +#include "Dynamics/Joints/b2RopeJoint.h" +#include "Dynamics/Joints/b2WeldJoint.h" +#include "Dynamics/Joints/b2WheelJoint.h" + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2ChainShape.cpp b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2ChainShape.cpp new file mode 100644 index 0000000..0c7282c --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2ChainShape.cpp @@ -0,0 +1,193 @@ +/* +* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include + +b2ChainShape::~b2ChainShape() +{ + Clear(); +} + +void b2ChainShape::Clear() +{ + b2Free(m_vertices); + m_vertices = NULL; + m_count = 0; +} + +void b2ChainShape::CreateLoop(const b2Vec2* vertices, int32 count) +{ + b2Assert(m_vertices == NULL && m_count == 0); + b2Assert(count >= 3); + for (int32 i = 1; i < count; ++i) + { + b2Vec2 v1 = vertices[i-1]; + b2Vec2 v2 = vertices[i]; + // If the code crashes here, it means your vertices are too close together. + b2Assert(b2DistanceSquared(v1, v2) > b2_linearSlop * b2_linearSlop); + } + + m_count = count + 1; + m_vertices = (b2Vec2*)b2Alloc(m_count * sizeof(b2Vec2)); + memcpy(m_vertices, vertices, count * sizeof(b2Vec2)); + m_vertices[count] = m_vertices[0]; + m_prevVertex = m_vertices[m_count - 2]; + m_nextVertex = m_vertices[1]; + m_hasPrevVertex = true; + m_hasNextVertex = true; +} + +void b2ChainShape::CreateChain(const b2Vec2* vertices, int32 count) +{ + b2Assert(m_vertices == NULL && m_count == 0); + b2Assert(count >= 2); + for (int32 i = 1; i < count; ++i) + { + // If the code crashes here, it means your vertices are too close together. + b2Assert(b2DistanceSquared(vertices[i-1], vertices[i]) > b2_linearSlop * b2_linearSlop); + } + + m_count = count; + m_vertices = (b2Vec2*)b2Alloc(count * sizeof(b2Vec2)); + memcpy(m_vertices, vertices, m_count * sizeof(b2Vec2)); + + m_hasPrevVertex = false; + m_hasNextVertex = false; + + m_prevVertex.SetZero(); + m_nextVertex.SetZero(); +} + +void b2ChainShape::SetPrevVertex(const b2Vec2& prevVertex) +{ + m_prevVertex = prevVertex; + m_hasPrevVertex = true; +} + +void b2ChainShape::SetNextVertex(const b2Vec2& nextVertex) +{ + m_nextVertex = nextVertex; + m_hasNextVertex = true; +} + +b2Shape* b2ChainShape::Clone(b2BlockAllocator* allocator) const +{ + void* mem = allocator->Allocate(sizeof(b2ChainShape)); + b2ChainShape* clone = new (mem) b2ChainShape; + clone->CreateChain(m_vertices, m_count); + clone->m_prevVertex = m_prevVertex; + clone->m_nextVertex = m_nextVertex; + clone->m_hasPrevVertex = m_hasPrevVertex; + clone->m_hasNextVertex = m_hasNextVertex; + return clone; +} + +int32 b2ChainShape::GetChildCount() const +{ + // edge count = vertex count - 1 + return m_count - 1; +} + +void b2ChainShape::GetChildEdge(b2EdgeShape* edge, int32 index) const +{ + b2Assert(0 <= index && index < m_count - 1); + edge->m_type = b2Shape::e_edge; + edge->m_radius = m_radius; + + edge->m_vertex1 = m_vertices[index + 0]; + edge->m_vertex2 = m_vertices[index + 1]; + + if (index > 0) + { + edge->m_vertex0 = m_vertices[index - 1]; + edge->m_hasVertex0 = true; + } + else + { + edge->m_vertex0 = m_prevVertex; + edge->m_hasVertex0 = m_hasPrevVertex; + } + + if (index < m_count - 2) + { + edge->m_vertex3 = m_vertices[index + 2]; + edge->m_hasVertex3 = true; + } + else + { + edge->m_vertex3 = m_nextVertex; + edge->m_hasVertex3 = m_hasNextVertex; + } +} + +bool b2ChainShape::TestPoint(const b2Transform& xf, const b2Vec2& p) const +{ + B2_NOT_USED(xf); + B2_NOT_USED(p); + return false; +} + +bool b2ChainShape::RayCast(b2RayCastOutput* output, const b2RayCastInput& input, + const b2Transform& xf, int32 childIndex) const +{ + b2Assert(childIndex < m_count); + + b2EdgeShape edgeShape; + + int32 i1 = childIndex; + int32 i2 = childIndex + 1; + if (i2 == m_count) + { + i2 = 0; + } + + edgeShape.m_vertex1 = m_vertices[i1]; + edgeShape.m_vertex2 = m_vertices[i2]; + + return edgeShape.RayCast(output, input, xf, 0); +} + +void b2ChainShape::ComputeAABB(b2AABB* aabb, const b2Transform& xf, int32 childIndex) const +{ + b2Assert(childIndex < m_count); + + int32 i1 = childIndex; + int32 i2 = childIndex + 1; + if (i2 == m_count) + { + i2 = 0; + } + + b2Vec2 v1 = b2Mul(xf, m_vertices[i1]); + b2Vec2 v2 = b2Mul(xf, m_vertices[i2]); + + aabb->lowerBound = b2Min(v1, v2); + aabb->upperBound = b2Max(v1, v2); +} + +void b2ChainShape::ComputeMass(b2MassData* massData, float32 density) const +{ + B2_NOT_USED(density); + + massData->mass = 0.0f; + massData->center.SetZero(); + massData->I = 0.0f; +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2ChainShape.h b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2ChainShape.h new file mode 100644 index 0000000..b966b4e --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2ChainShape.h @@ -0,0 +1,105 @@ +/* +* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_CHAIN_SHAPE_H +#define B2_CHAIN_SHAPE_H + +#include "Collision/Shapes/b2Shape.h" + +class b2EdgeShape; + +/// A chain shape is a free form sequence of line segments. +/// The chain has two-sided collision, so you can use inside and outside collision. +/// Therefore, you may use any winding order. +/// Since there may be many vertices, they are allocated using b2Alloc. +/// Connectivity information is used to create smooth collisions. +/// WARNING: The chain will not collide properly if there are self-intersections. +class b2ChainShape : public b2Shape +{ +public: + b2ChainShape(); + + /// The destructor frees the vertices using b2Free. + ~b2ChainShape(); + + /// Clear all data. + void Clear(); + + /// Create a loop. This automatically adjusts connectivity. + /// @param vertices an array of vertices, these are copied + /// @param count the vertex count + void CreateLoop(const b2Vec2* vertices, int32 count); + + /// Create a chain with isolated end vertices. + /// @param vertices an array of vertices, these are copied + /// @param count the vertex count + void CreateChain(const b2Vec2* vertices, int32 count); + + /// Establish connectivity to a vertex that precedes the first vertex. + /// Don't call this for loops. + void SetPrevVertex(const b2Vec2& prevVertex); + + /// Establish connectivity to a vertex that follows the last vertex. + /// Don't call this for loops. + void SetNextVertex(const b2Vec2& nextVertex); + + /// Implement b2Shape. Vertices are cloned using b2Alloc. + b2Shape* Clone(b2BlockAllocator* allocator) const; + + /// @see b2Shape::GetChildCount + int32 GetChildCount() const; + + /// Get a child edge. + void GetChildEdge(b2EdgeShape* edge, int32 index) const; + + /// This always return false. + /// @see b2Shape::TestPoint + bool TestPoint(const b2Transform& transform, const b2Vec2& p) const; + + /// Implement b2Shape. + bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, + const b2Transform& transform, int32 childIndex) const; + + /// @see b2Shape::ComputeAABB + void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const; + + /// Chains have zero mass. + /// @see b2Shape::ComputeMass + void ComputeMass(b2MassData* massData, float32 density) const; + + /// The vertices. Owned by this class. + b2Vec2* m_vertices; + + /// The vertex count. + int32 m_count; + + b2Vec2 m_prevVertex, m_nextVertex; + bool m_hasPrevVertex, m_hasNextVertex; +}; + +inline b2ChainShape::b2ChainShape() +{ + m_type = e_chain; + m_radius = b2_polygonRadius; + m_vertices = NULL; + m_count = 0; + m_hasPrevVertex = false; + m_hasNextVertex = false; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2CircleShape.cpp b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2CircleShape.cpp new file mode 100644 index 0000000..39d4ae9 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2CircleShape.cpp @@ -0,0 +1,99 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include + +b2Shape* b2CircleShape::Clone(b2BlockAllocator* allocator) const +{ + void* mem = allocator->Allocate(sizeof(b2CircleShape)); + b2CircleShape* clone = new (mem) b2CircleShape; + *clone = *this; + return clone; +} + +int32 b2CircleShape::GetChildCount() const +{ + return 1; +} + +bool b2CircleShape::TestPoint(const b2Transform& transform, const b2Vec2& p) const +{ + b2Vec2 center = transform.p + b2Mul(transform.q, m_p); + b2Vec2 d = p - center; + return b2Dot(d, d) <= m_radius * m_radius; +} + +// Collision Detection in Interactive 3D Environments by Gino van den Bergen +// From Section 3.1.2 +// x = s + a * r +// norm(x) = radius +bool b2CircleShape::RayCast(b2RayCastOutput* output, const b2RayCastInput& input, + const b2Transform& transform, int32 childIndex) const +{ + B2_NOT_USED(childIndex); + + b2Vec2 position = transform.p + b2Mul(transform.q, m_p); + b2Vec2 s = input.p1 - position; + float32 b = b2Dot(s, s) - m_radius * m_radius; + + // Solve quadratic equation. + b2Vec2 r = input.p2 - input.p1; + float32 c = b2Dot(s, r); + float32 rr = b2Dot(r, r); + float32 sigma = c * c - rr * b; + + // Check for negative discriminant and short segment. + if (sigma < 0.0f || rr < b2_epsilon) + { + return false; + } + + // Find the point of intersection of the line with the circle. + float32 a = -(c + b2Sqrt(sigma)); + + // Is the intersection point on the segment? + if (0.0f <= a && a <= input.maxFraction * rr) + { + a /= rr; + output->fraction = a; + output->normal = s + a * r; + output->normal.Normalize(); + return true; + } + + return false; +} + +void b2CircleShape::ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const +{ + B2_NOT_USED(childIndex); + + b2Vec2 p = transform.p + b2Mul(transform.q, m_p); + aabb->lowerBound.Set(p.x - m_radius, p.y - m_radius); + aabb->upperBound.Set(p.x + m_radius, p.y + m_radius); +} + +void b2CircleShape::ComputeMass(b2MassData* massData, float32 density) const +{ + massData->mass = density * b2_pi * m_radius * m_radius; + massData->center = m_p; + + // inertia about the local origin + massData->I = massData->mass * (0.5f * m_radius * m_radius + b2Dot(m_p, m_p)); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2CircleShape.h b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2CircleShape.h new file mode 100644 index 0000000..f83945b --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2CircleShape.h @@ -0,0 +1,91 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_CIRCLE_SHAPE_H +#define B2_CIRCLE_SHAPE_H + +#include "Collision/Shapes/b2Shape.h" + +/// A circle shape. +class b2CircleShape : public b2Shape +{ +public: + b2CircleShape(); + + /// Implement b2Shape. + b2Shape* Clone(b2BlockAllocator* allocator) const; + + /// @see b2Shape::GetChildCount + int32 GetChildCount() const; + + /// Implement b2Shape. + bool TestPoint(const b2Transform& transform, const b2Vec2& p) const; + + /// Implement b2Shape. + bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, + const b2Transform& transform, int32 childIndex) const; + + /// @see b2Shape::ComputeAABB + void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const; + + /// @see b2Shape::ComputeMass + void ComputeMass(b2MassData* massData, float32 density) const; + + /// Get the supporting vertex index in the given direction. + int32 GetSupport(const b2Vec2& d) const; + + /// Get the supporting vertex in the given direction. + const b2Vec2& GetSupportVertex(const b2Vec2& d) const; + + /// Get the vertex count. + int32 GetVertexCount() const { return 1; } + + /// Get a vertex by index. Used by b2Distance. + const b2Vec2& GetVertex(int32 index) const; + + /// Position + b2Vec2 m_p; +}; + +inline b2CircleShape::b2CircleShape() +{ + m_type = e_circle; + m_radius = 0.0f; + m_p.SetZero(); +} + +inline int32 b2CircleShape::GetSupport(const b2Vec2 &d) const +{ + B2_NOT_USED(d); + return 0; +} + +inline const b2Vec2& b2CircleShape::GetSupportVertex(const b2Vec2 &d) const +{ + B2_NOT_USED(d); + return m_p; +} + +inline const b2Vec2& b2CircleShape::GetVertex(int32 index) const +{ + B2_NOT_USED(index); + b2Assert(index == 0); + return m_p; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2EdgeShape.cpp b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2EdgeShape.cpp new file mode 100644 index 0000000..8bcd12f --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2EdgeShape.cpp @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include + +void b2EdgeShape::Set(const b2Vec2& v1, const b2Vec2& v2) +{ + m_vertex1 = v1; + m_vertex2 = v2; + m_hasVertex0 = false; + m_hasVertex3 = false; +} + +b2Shape* b2EdgeShape::Clone(b2BlockAllocator* allocator) const +{ + void* mem = allocator->Allocate(sizeof(b2EdgeShape)); + b2EdgeShape* clone = new (mem) b2EdgeShape; + *clone = *this; + return clone; +} + +int32 b2EdgeShape::GetChildCount() const +{ + return 1; +} + +bool b2EdgeShape::TestPoint(const b2Transform& xf, const b2Vec2& p) const +{ + B2_NOT_USED(xf); + B2_NOT_USED(p); + return false; +} + +// p = p1 + t * d +// v = v1 + s * e +// p1 + t * d = v1 + s * e +// s * e - t * d = p1 - v1 +bool b2EdgeShape::RayCast(b2RayCastOutput* output, const b2RayCastInput& input, + const b2Transform& xf, int32 childIndex) const +{ + B2_NOT_USED(childIndex); + + // Put the ray into the edge's frame of reference. + b2Vec2 p1 = b2MulT(xf.q, input.p1 - xf.p); + b2Vec2 p2 = b2MulT(xf.q, input.p2 - xf.p); + b2Vec2 d = p2 - p1; + + b2Vec2 v1 = m_vertex1; + b2Vec2 v2 = m_vertex2; + b2Vec2 e = v2 - v1; + b2Vec2 normal(e.y, -e.x); + normal.Normalize(); + + // q = p1 + t * d + // dot(normal, q - v1) = 0 + // dot(normal, p1 - v1) + t * dot(normal, d) = 0 + float32 numerator = b2Dot(normal, v1 - p1); + float32 denominator = b2Dot(normal, d); + + if (denominator == 0.0f) + { + return false; + } + + float32 t = numerator / denominator; + if (t < 0.0f || input.maxFraction < t) + { + return false; + } + + b2Vec2 q = p1 + t * d; + + // q = v1 + s * r + // s = dot(q - v1, r) / dot(r, r) + b2Vec2 r = v2 - v1; + float32 rr = b2Dot(r, r); + if (rr == 0.0f) + { + return false; + } + + float32 s = b2Dot(q - v1, r) / rr; + if (s < 0.0f || 1.0f < s) + { + return false; + } + + output->fraction = t; + if (numerator > 0.0f) + { + output->normal = -b2Mul(xf.q, normal); + } + else + { + output->normal = b2Mul(xf.q, normal); + } + return true; +} + +void b2EdgeShape::ComputeAABB(b2AABB* aabb, const b2Transform& xf, int32 childIndex) const +{ + B2_NOT_USED(childIndex); + + b2Vec2 v1 = b2Mul(xf, m_vertex1); + b2Vec2 v2 = b2Mul(xf, m_vertex2); + + b2Vec2 lower = b2Min(v1, v2); + b2Vec2 upper = b2Max(v1, v2); + + b2Vec2 r(m_radius, m_radius); + aabb->lowerBound = lower - r; + aabb->upperBound = upper + r; +} + +void b2EdgeShape::ComputeMass(b2MassData* massData, float32 density) const +{ + B2_NOT_USED(density); + + massData->mass = 0.0f; + massData->center = 0.5f * (m_vertex1 + m_vertex2); + massData->I = 0.0f; +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2EdgeShape.h b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2EdgeShape.h new file mode 100644 index 0000000..0e8cf00 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2EdgeShape.h @@ -0,0 +1,74 @@ +/* +* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_EDGE_SHAPE_H +#define B2_EDGE_SHAPE_H + +#include "Collision/Shapes/b2Shape.h" + +/// A line segment (edge) shape. These can be connected in chains or loops +/// to other edge shapes. The connectivity information is used to ensure +/// correct contact normals. +class b2EdgeShape : public b2Shape +{ +public: + b2EdgeShape(); + + /// Set this as an isolated edge. + void Set(const b2Vec2& v1, const b2Vec2& v2); + + /// Implement b2Shape. + b2Shape* Clone(b2BlockAllocator* allocator) const; + + /// @see b2Shape::GetChildCount + int32 GetChildCount() const; + + /// @see b2Shape::TestPoint + bool TestPoint(const b2Transform& transform, const b2Vec2& p) const; + + /// Implement b2Shape. + bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, + const b2Transform& transform, int32 childIndex) const; + + /// @see b2Shape::ComputeAABB + void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const; + + /// @see b2Shape::ComputeMass + void ComputeMass(b2MassData* massData, float32 density) const; + + /// These are the edge vertices + b2Vec2 m_vertex1, m_vertex2; + + /// Optional adjacent vertices. These are used for smooth collision. + b2Vec2 m_vertex0, m_vertex3; + bool m_hasVertex0, m_hasVertex3; +}; + +inline b2EdgeShape::b2EdgeShape() +{ + m_type = e_edge; + m_radius = b2_polygonRadius; + m_vertex0.x = 0.0f; + m_vertex0.y = 0.0f; + m_vertex3.x = 0.0f; + m_vertex3.y = 0.0f; + m_hasVertex0 = false; + m_hasVertex3 = false; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2PolygonShape.cpp b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2PolygonShape.cpp new file mode 100644 index 0000000..26ba7b3 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2PolygonShape.cpp @@ -0,0 +1,467 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include + +b2Shape* b2PolygonShape::Clone(b2BlockAllocator* allocator) const +{ + void* mem = allocator->Allocate(sizeof(b2PolygonShape)); + b2PolygonShape* clone = new (mem) b2PolygonShape; + *clone = *this; + return clone; +} + +void b2PolygonShape::SetAsBox(float32 hx, float32 hy) +{ + m_count = 4; + m_vertices[0].Set(-hx, -hy); + m_vertices[1].Set( hx, -hy); + m_vertices[2].Set( hx, hy); + m_vertices[3].Set(-hx, hy); + m_normals[0].Set(0.0f, -1.0f); + m_normals[1].Set(1.0f, 0.0f); + m_normals[2].Set(0.0f, 1.0f); + m_normals[3].Set(-1.0f, 0.0f); + m_centroid.SetZero(); +} + +void b2PolygonShape::SetAsBox(float32 hx, float32 hy, const b2Vec2& center, float32 angle) +{ + m_count = 4; + m_vertices[0].Set(-hx, -hy); + m_vertices[1].Set( hx, -hy); + m_vertices[2].Set( hx, hy); + m_vertices[3].Set(-hx, hy); + m_normals[0].Set(0.0f, -1.0f); + m_normals[1].Set(1.0f, 0.0f); + m_normals[2].Set(0.0f, 1.0f); + m_normals[3].Set(-1.0f, 0.0f); + m_centroid = center; + + b2Transform xf; + xf.p = center; + xf.q.Set(angle); + + // Transform vertices and normals. + for (int32 i = 0; i < m_count; ++i) + { + m_vertices[i] = b2Mul(xf, m_vertices[i]); + m_normals[i] = b2Mul(xf.q, m_normals[i]); + } +} + +int32 b2PolygonShape::GetChildCount() const +{ + return 1; +} + +static b2Vec2 ComputeCentroid(const b2Vec2* vs, int32 count) +{ + b2Assert(count >= 3); + + b2Vec2 c; c.Set(0.0f, 0.0f); + float32 area = 0.0f; + + // pRef is the reference point for forming triangles. + // It's location doesn't change the result (except for rounding error). + b2Vec2 pRef(0.0f, 0.0f); +#if 0 + // This code would put the reference point inside the polygon. + for (int32 i = 0; i < count; ++i) + { + pRef += vs[i]; + } + pRef *= 1.0f / count; +#endif + + const float32 inv3 = 1.0f / 3.0f; + + for (int32 i = 0; i < count; ++i) + { + // Triangle vertices. + b2Vec2 p1 = pRef; + b2Vec2 p2 = vs[i]; + b2Vec2 p3 = i + 1 < count ? vs[i+1] : vs[0]; + + b2Vec2 e1 = p2 - p1; + b2Vec2 e2 = p3 - p1; + + float32 D = b2Cross(e1, e2); + + float32 triangleArea = 0.5f * D; + area += triangleArea; + + // Area weighted centroid + c += triangleArea * inv3 * (p1 + p2 + p3); + } + + // Centroid + b2Assert(area > b2_epsilon); + c *= 1.0f / area; + return c; +} + +void b2PolygonShape::Set(const b2Vec2* vertices, int32 count) +{ + b2Assert(3 <= count && count <= b2_maxPolygonVertices); + if (count < 3) + { + SetAsBox(1.0f, 1.0f); + return; + } + + int32 n = b2Min(count, b2_maxPolygonVertices); + + // Perform welding and copy vertices into local buffer. + b2Vec2 ps[b2_maxPolygonVertices]; + int32 tempCount = 0; + for (int32 i = 0; i < n; ++i) + { + b2Vec2 v = vertices[i]; + + bool unique = true; + for (int32 j = 0; j < tempCount; ++j) + { + if (b2DistanceSquared(v, ps[j]) < ((0.5f * b2_linearSlop) * (0.5f * b2_linearSlop))) + { + unique = false; + break; + } + } + + if (unique) + { + ps[tempCount++] = v; + } + } + + n = tempCount; + if (n < 3) + { + // Polygon is degenerate. + b2Assert(false); + SetAsBox(1.0f, 1.0f); + return; + } + + // Create the convex hull using the Gift wrapping algorithm + // http://en.wikipedia.org/wiki/Gift_wrapping_algorithm + + // Find the right most point on the hull + int32 i0 = 0; + float32 x0 = ps[0].x; + for (int32 i = 1; i < n; ++i) + { + float32 x = ps[i].x; + if (x > x0 || (x == x0 && ps[i].y < ps[i0].y)) + { + i0 = i; + x0 = x; + } + } + + int32 hull[b2_maxPolygonVertices]; + int32 m = 0; + int32 ih = i0; + + for (;;) + { + hull[m] = ih; + + int32 ie = 0; + for (int32 j = 1; j < n; ++j) + { + if (ie == ih) + { + ie = j; + continue; + } + + b2Vec2 r = ps[ie] - ps[hull[m]]; + b2Vec2 v = ps[j] - ps[hull[m]]; + float32 c = b2Cross(r, v); + if (c < 0.0f) + { + ie = j; + } + + // Collinearity check + if (c == 0.0f && v.LengthSquared() > r.LengthSquared()) + { + ie = j; + } + } + + ++m; + ih = ie; + + if (ie == i0) + { + break; + } + } + + if (m < 3) + { + // Polygon is degenerate. + b2Assert(false); + SetAsBox(1.0f, 1.0f); + return; + } + + m_count = m; + + // Copy vertices. + for (int32 i = 0; i < m; ++i) + { + m_vertices[i] = ps[hull[i]]; + } + + // Compute normals. Ensure the edges have non-zero length. + for (int32 i = 0; i < m; ++i) + { + int32 i1 = i; + int32 i2 = i + 1 < m ? i + 1 : 0; + b2Vec2 edge = m_vertices[i2] - m_vertices[i1]; + b2Assert(edge.LengthSquared() > b2_epsilon * b2_epsilon); + m_normals[i] = b2Cross(edge, 1.0f); + m_normals[i].Normalize(); + } + + // Compute the polygon centroid. + m_centroid = ComputeCentroid(m_vertices, m); +} + +bool b2PolygonShape::TestPoint(const b2Transform& xf, const b2Vec2& p) const +{ + b2Vec2 pLocal = b2MulT(xf.q, p - xf.p); + + for (int32 i = 0; i < m_count; ++i) + { + float32 dot = b2Dot(m_normals[i], pLocal - m_vertices[i]); + if (dot > 0.0f) + { + return false; + } + } + + return true; +} + +bool b2PolygonShape::RayCast(b2RayCastOutput* output, const b2RayCastInput& input, + const b2Transform& xf, int32 childIndex) const +{ + B2_NOT_USED(childIndex); + + // Put the ray into the polygon's frame of reference. + b2Vec2 p1 = b2MulT(xf.q, input.p1 - xf.p); + b2Vec2 p2 = b2MulT(xf.q, input.p2 - xf.p); + b2Vec2 d = p2 - p1; + + float32 lower = 0.0f, upper = input.maxFraction; + + int32 index = -1; + + for (int32 i = 0; i < m_count; ++i) + { + // p = p1 + a * d + // dot(normal, p - v) = 0 + // dot(normal, p1 - v) + a * dot(normal, d) = 0 + float32 numerator = b2Dot(m_normals[i], m_vertices[i] - p1); + float32 denominator = b2Dot(m_normals[i], d); + + if (denominator == 0.0f) + { + if (numerator < 0.0f) + { + return false; + } + } + else + { + // Note: we want this predicate without division: + // lower < numerator / denominator, where denominator < 0 + // Since denominator < 0, we have to flip the inequality: + // lower < numerator / denominator <==> denominator * lower > numerator. + if (denominator < 0.0f && numerator < lower * denominator) + { + // Increase lower. + // The segment enters this half-space. + lower = numerator / denominator; + index = i; + } + else if (denominator > 0.0f && numerator < upper * denominator) + { + // Decrease upper. + // The segment exits this half-space. + upper = numerator / denominator; + } + } + + // The use of epsilon here causes the assert on lower to trip + // in some cases. Apparently the use of epsilon was to make edge + // shapes work, but now those are handled separately. + //if (upper < lower - b2_epsilon) + if (upper < lower) + { + return false; + } + } + + b2Assert(0.0f <= lower && lower <= input.maxFraction); + + if (index >= 0) + { + output->fraction = lower; + output->normal = b2Mul(xf.q, m_normals[index]); + return true; + } + + return false; +} + +void b2PolygonShape::ComputeAABB(b2AABB* aabb, const b2Transform& xf, int32 childIndex) const +{ + B2_NOT_USED(childIndex); + + b2Vec2 lower = b2Mul(xf, m_vertices[0]); + b2Vec2 upper = lower; + + for (int32 i = 1; i < m_count; ++i) + { + b2Vec2 v = b2Mul(xf, m_vertices[i]); + lower = b2Min(lower, v); + upper = b2Max(upper, v); + } + + b2Vec2 r(m_radius, m_radius); + aabb->lowerBound = lower - r; + aabb->upperBound = upper + r; +} + +void b2PolygonShape::ComputeMass(b2MassData* massData, float32 density) const +{ + // Polygon mass, centroid, and inertia. + // Let rho be the polygon density in mass per unit area. + // Then: + // mass = rho * int(dA) + // centroid.x = (1/mass) * rho * int(x * dA) + // centroid.y = (1/mass) * rho * int(y * dA) + // I = rho * int((x*x + y*y) * dA) + // + // We can compute these integrals by summing all the integrals + // for each triangle of the polygon. To evaluate the integral + // for a single triangle, we make a change of variables to + // the (u,v) coordinates of the triangle: + // x = x0 + e1x * u + e2x * v + // y = y0 + e1y * u + e2y * v + // where 0 <= u && 0 <= v && u + v <= 1. + // + // We integrate u from [0,1-v] and then v from [0,1]. + // We also need to use the Jacobian of the transformation: + // D = cross(e1, e2) + // + // Simplification: triangle centroid = (1/3) * (p1 + p2 + p3) + // + // The rest of the derivation is handled by computer algebra. + + b2Assert(m_count >= 3); + + b2Vec2 center; center.Set(0.0f, 0.0f); + float32 area = 0.0f; + float32 I = 0.0f; + + // s is the reference point for forming triangles. + // It's location doesn't change the result (except for rounding error). + b2Vec2 s(0.0f, 0.0f); + + // This code would put the reference point inside the polygon. + for (int32 i = 0; i < m_count; ++i) + { + s += m_vertices[i]; + } + s *= 1.0f / m_count; + + const float32 k_inv3 = 1.0f / 3.0f; + + for (int32 i = 0; i < m_count; ++i) + { + // Triangle vertices. + b2Vec2 e1 = m_vertices[i] - s; + b2Vec2 e2 = i + 1 < m_count ? m_vertices[i+1] - s : m_vertices[0] - s; + + float32 D = b2Cross(e1, e2); + + float32 triangleArea = 0.5f * D; + area += triangleArea; + + // Area weighted centroid + center += triangleArea * k_inv3 * (e1 + e2); + + float32 ex1 = e1.x, ey1 = e1.y; + float32 ex2 = e2.x, ey2 = e2.y; + + float32 intx2 = ex1*ex1 + ex2*ex1 + ex2*ex2; + float32 inty2 = ey1*ey1 + ey2*ey1 + ey2*ey2; + + I += (0.25f * k_inv3 * D) * (intx2 + inty2); + } + + // Total mass + massData->mass = density * area; + + // Center of mass + b2Assert(area > b2_epsilon); + center *= 1.0f / area; + massData->center = center + s; + + // Inertia tensor relative to the local origin (point s). + massData->I = density * I; + + // Shift to center of mass then to original body origin. + massData->I += massData->mass * (b2Dot(massData->center, massData->center) - b2Dot(center, center)); +} + +bool b2PolygonShape::Validate() const +{ + for (int32 i = 0; i < m_count; ++i) + { + int32 i1 = i; + int32 i2 = i < m_count - 1 ? i1 + 1 : 0; + b2Vec2 p = m_vertices[i1]; + b2Vec2 e = m_vertices[i2] - p; + + for (int32 j = 0; j < m_count; ++j) + { + if (j == i1 || j == i2) + { + continue; + } + + b2Vec2 v = m_vertices[j] - p; + float32 c = b2Cross(e, v); + if (c < 0.0f) + { + return false; + } + } + } + + return true; +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2PolygonShape.h b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2PolygonShape.h new file mode 100644 index 0000000..edead2e --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2PolygonShape.h @@ -0,0 +1,101 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_POLYGON_SHAPE_H +#define B2_POLYGON_SHAPE_H + +#include "Collision/Shapes/b2Shape.h" + +/// A convex polygon. It is assumed that the interior of the polygon is to +/// the left of each edge. +/// Polygons have a maximum number of vertices equal to b2_maxPolygonVertices. +/// In most cases you should not need many vertices for a convex polygon. +class b2PolygonShape : public b2Shape +{ +public: + b2PolygonShape(); + + /// Implement b2Shape. + b2Shape* Clone(b2BlockAllocator* allocator) const; + + /// @see b2Shape::GetChildCount + int32 GetChildCount() const; + + /// Create a convex hull from the given array of local points. + /// The count must be in the range [3, b2_maxPolygonVertices]. + /// @warning the points may be re-ordered, even if they form a convex polygon + /// @warning collinear points are handled but not removed. Collinear points + /// may lead to poor stacking behavior. + void Set(const b2Vec2* points, int32 count); + + /// Build vertices to represent an axis-aligned box centered on the local origin. + /// @param hx the half-width. + /// @param hy the half-height. + void SetAsBox(float32 hx, float32 hy); + + /// Build vertices to represent an oriented box. + /// @param hx the half-width. + /// @param hy the half-height. + /// @param center the center of the box in local coordinates. + /// @param angle the rotation of the box in local coordinates. + void SetAsBox(float32 hx, float32 hy, const b2Vec2& center, float32 angle); + + /// @see b2Shape::TestPoint + bool TestPoint(const b2Transform& transform, const b2Vec2& p) const; + + /// Implement b2Shape. + bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, + const b2Transform& transform, int32 childIndex) const; + + /// @see b2Shape::ComputeAABB + void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const; + + /// @see b2Shape::ComputeMass + void ComputeMass(b2MassData* massData, float32 density) const; + + /// Get the vertex count. + int32 GetVertexCount() const { return m_count; } + + /// Get a vertex by index. + const b2Vec2& GetVertex(int32 index) const; + + /// Validate convexity. This is a very time consuming operation. + /// @returns true if valid + bool Validate() const; + + b2Vec2 m_centroid; + b2Vec2 m_vertices[b2_maxPolygonVertices]; + b2Vec2 m_normals[b2_maxPolygonVertices]; + int32 m_count; +}; + +inline b2PolygonShape::b2PolygonShape() +{ + m_type = e_polygon; + m_radius = b2_polygonRadius; + m_count = 0; + m_centroid.SetZero(); +} + +inline const b2Vec2& b2PolygonShape::GetVertex(int32 index) const +{ + b2Assert(0 <= index && index < m_count); + return m_vertices[index]; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2shape.h b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2shape.h new file mode 100644 index 0000000..4bd6aaf --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/Shapes/b2shape.h @@ -0,0 +1,101 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_SHAPE_H +#define B2_SHAPE_H + +#include "Common/b2BlockAllocator.h" +#include "Common/b2Math.h" +#include "Collision/b2Collision.h" + +/// This holds the mass data computed for a shape. +struct b2MassData +{ + /// The mass of the shape, usually in kilograms. + float32 mass; + + /// The position of the shape's centroid relative to the shape's origin. + b2Vec2 center; + + /// The rotational inertia of the shape about the local origin. + float32 I; +}; + +/// A shape is used for collision detection. You can create a shape however you like. +/// Shapes used for simulation in b2World are created automatically when a b2Fixture +/// is created. Shapes may encapsulate a one or more child shapes. +class b2Shape +{ +public: + + enum Type + { + e_circle = 0, + e_edge = 1, + e_polygon = 2, + e_chain = 3, + e_typeCount = 4 + }; + + virtual ~b2Shape() {} + + /// Clone the concrete shape using the provided allocator. + virtual b2Shape* Clone(b2BlockAllocator* allocator) const = 0; + + /// Get the type of this shape. You can use this to down cast to the concrete shape. + /// @return the shape type. + Type GetType() const; + + /// Get the number of child primitives. + virtual int32 GetChildCount() const = 0; + + /// Test a point for containment in this shape. This only works for convex shapes. + /// @param xf the shape world transform. + /// @param p a point in world coordinates. + virtual bool TestPoint(const b2Transform& xf, const b2Vec2& p) const = 0; + + /// Cast a ray against a child shape. + /// @param output the ray-cast results. + /// @param input the ray-cast input parameters. + /// @param transform the transform to be applied to the shape. + /// @param childIndex the child shape index + virtual bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, + const b2Transform& transform, int32 childIndex) const = 0; + + /// Given a transform, compute the associated axis aligned bounding box for a child shape. + /// @param aabb returns the axis aligned box. + /// @param xf the world transform of the shape. + /// @param childIndex the child shape + virtual void ComputeAABB(b2AABB* aabb, const b2Transform& xf, int32 childIndex) const = 0; + + /// Compute the mass properties of this shape using its dimensions and density. + /// The inertia tensor is computed about the local origin. + /// @param massData returns the mass data for this shape. + /// @param density the density in kilograms per meter squared. + virtual void ComputeMass(b2MassData* massData, float32 density) const = 0; + + Type m_type; + float32 m_radius; +}; + +inline b2Shape::Type b2Shape::GetType() const +{ + return m_type; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/b2BroadPhase.cpp b/Template/Game/Source/External/Box2D/Box2D/Collision/b2BroadPhase.cpp new file mode 100644 index 0000000..04e955d --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/b2BroadPhase.cpp @@ -0,0 +1,119 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include + +b2BroadPhase::b2BroadPhase() +{ + m_proxyCount = 0; + + m_pairCapacity = 16; + m_pairCount = 0; + m_pairBuffer = (b2Pair*)b2Alloc(m_pairCapacity * sizeof(b2Pair)); + + m_moveCapacity = 16; + m_moveCount = 0; + m_moveBuffer = (int32*)b2Alloc(m_moveCapacity * sizeof(int32)); +} + +b2BroadPhase::~b2BroadPhase() +{ + b2Free(m_moveBuffer); + b2Free(m_pairBuffer); +} + +int32 b2BroadPhase::CreateProxy(const b2AABB& aabb, void* userData) +{ + int32 proxyId = m_tree.CreateProxy(aabb, userData); + ++m_proxyCount; + BufferMove(proxyId); + return proxyId; +} + +void b2BroadPhase::DestroyProxy(int32 proxyId) +{ + UnBufferMove(proxyId); + --m_proxyCount; + m_tree.DestroyProxy(proxyId); +} + +void b2BroadPhase::MoveProxy(int32 proxyId, const b2AABB& aabb, const b2Vec2& displacement) +{ + bool buffer = m_tree.MoveProxy(proxyId, aabb, displacement); + if (buffer) + { + BufferMove(proxyId); + } +} + +void b2BroadPhase::TouchProxy(int32 proxyId) +{ + BufferMove(proxyId); +} + +void b2BroadPhase::BufferMove(int32 proxyId) +{ + if (m_moveCount == m_moveCapacity) + { + int32* oldBuffer = m_moveBuffer; + m_moveCapacity *= 2; + m_moveBuffer = (int32*)b2Alloc(m_moveCapacity * sizeof(int32)); + memcpy(m_moveBuffer, oldBuffer, m_moveCount * sizeof(int32)); + b2Free(oldBuffer); + } + + m_moveBuffer[m_moveCount] = proxyId; + ++m_moveCount; +} + +void b2BroadPhase::UnBufferMove(int32 proxyId) +{ + for (int32 i = 0; i < m_moveCount; ++i) + { + if (m_moveBuffer[i] == proxyId) + { + m_moveBuffer[i] = e_nullProxy; + } + } +} + +// This is called from b2DynamicTree::Query when we are gathering pairs. +bool b2BroadPhase::QueryCallback(int32 proxyId) +{ + // A proxy cannot form a pair with itself. + if (proxyId == m_queryProxyId) + { + return true; + } + + // Grow the pair buffer as needed. + if (m_pairCount == m_pairCapacity) + { + b2Pair* oldBuffer = m_pairBuffer; + m_pairCapacity *= 2; + m_pairBuffer = (b2Pair*)b2Alloc(m_pairCapacity * sizeof(b2Pair)); + memcpy(m_pairBuffer, oldBuffer, m_pairCount * sizeof(b2Pair)); + b2Free(oldBuffer); + } + + m_pairBuffer[m_pairCount].proxyIdA = b2Min(proxyId, m_queryProxyId); + m_pairBuffer[m_pairCount].proxyIdB = b2Max(proxyId, m_queryProxyId); + ++m_pairCount; + + return true; +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/b2BroadPhase.h b/Template/Game/Source/External/Box2D/Box2D/Collision/b2BroadPhase.h new file mode 100644 index 0000000..ce1451f --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/b2BroadPhase.h @@ -0,0 +1,257 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_BROAD_PHASE_H +#define B2_BROAD_PHASE_H + +#include "Common/b2Settings.h" +#include "Collision/b2Collision.h" +#include "Collision/b2DynamicTree.h" +#include + +struct b2Pair +{ + int32 proxyIdA; + int32 proxyIdB; +}; + +/// The broad-phase is used for computing pairs and performing volume queries and ray casts. +/// This broad-phase does not persist pairs. Instead, this reports potentially new pairs. +/// It is up to the client to consume the new pairs and to track subsequent overlap. +class b2BroadPhase +{ +public: + + enum + { + e_nullProxy = -1 + }; + + b2BroadPhase(); + ~b2BroadPhase(); + + /// Create a proxy with an initial AABB. Pairs are not reported until + /// UpdatePairs is called. + int32 CreateProxy(const b2AABB& aabb, void* userData); + + /// Destroy a proxy. It is up to the client to remove any pairs. + void DestroyProxy(int32 proxyId); + + /// Call MoveProxy as many times as you like, then when you are done + /// call UpdatePairs to finalized the proxy pairs (for your time step). + void MoveProxy(int32 proxyId, const b2AABB& aabb, const b2Vec2& displacement); + + /// Call to trigger a re-processing of it's pairs on the next call to UpdatePairs. + void TouchProxy(int32 proxyId); + + /// Get the fat AABB for a proxy. + const b2AABB& GetFatAABB(int32 proxyId) const; + + /// Get user data from a proxy. Returns NULL if the id is invalid. + void* GetUserData(int32 proxyId) const; + + /// Test overlap of fat AABBs. + bool TestOverlap(int32 proxyIdA, int32 proxyIdB) const; + + /// Get the number of proxies. + int32 GetProxyCount() const; + + /// Update the pairs. This results in pair callbacks. This can only add pairs. + template + void UpdatePairs(T* callback); + + /// Query an AABB for overlapping proxies. The callback class + /// is called for each proxy that overlaps the supplied AABB. + template + void Query(T* callback, const b2AABB& aabb) const; + + /// Ray-cast against the proxies in the tree. This relies on the callback + /// to perform a exact ray-cast in the case were the proxy contains a shape. + /// The callback also performs the any collision filtering. This has performance + /// roughly equal to k * log(n), where k is the number of collisions and n is the + /// number of proxies in the tree. + /// @param input the ray-cast input data. The ray extends from p1 to p1 + maxFraction * (p2 - p1). + /// @param callback a callback class that is called for each proxy that is hit by the ray. + template + void RayCast(T* callback, const b2RayCastInput& input) const; + + /// Get the height of the embedded tree. + int32 GetTreeHeight() const; + + /// Get the balance of the embedded tree. + int32 GetTreeBalance() const; + + /// Get the quality metric of the embedded tree. + float32 GetTreeQuality() const; + + /// Shift the world origin. Useful for large worlds. + /// The shift formula is: position -= newOrigin + /// @param newOrigin the new origin with respect to the old origin + void ShiftOrigin(const b2Vec2& newOrigin); + +private: + + friend class b2DynamicTree; + + void BufferMove(int32 proxyId); + void UnBufferMove(int32 proxyId); + + bool QueryCallback(int32 proxyId); + + b2DynamicTree m_tree; + + int32 m_proxyCount; + + int32* m_moveBuffer; + int32 m_moveCapacity; + int32 m_moveCount; + + b2Pair* m_pairBuffer; + int32 m_pairCapacity; + int32 m_pairCount; + + int32 m_queryProxyId; +}; + +/// This is used to sort pairs. +inline bool b2PairLessThan(const b2Pair& pair1, const b2Pair& pair2) +{ + if (pair1.proxyIdA < pair2.proxyIdA) + { + return true; + } + + if (pair1.proxyIdA == pair2.proxyIdA) + { + return pair1.proxyIdB < pair2.proxyIdB; + } + + return false; +} + +inline void* b2BroadPhase::GetUserData(int32 proxyId) const +{ + return m_tree.GetUserData(proxyId); +} + +inline bool b2BroadPhase::TestOverlap(int32 proxyIdA, int32 proxyIdB) const +{ + const b2AABB& aabbA = m_tree.GetFatAABB(proxyIdA); + const b2AABB& aabbB = m_tree.GetFatAABB(proxyIdB); + return b2TestOverlap(aabbA, aabbB); +} + +inline const b2AABB& b2BroadPhase::GetFatAABB(int32 proxyId) const +{ + return m_tree.GetFatAABB(proxyId); +} + +inline int32 b2BroadPhase::GetProxyCount() const +{ + return m_proxyCount; +} + +inline int32 b2BroadPhase::GetTreeHeight() const +{ + return m_tree.GetHeight(); +} + +inline int32 b2BroadPhase::GetTreeBalance() const +{ + return m_tree.GetMaxBalance(); +} + +inline float32 b2BroadPhase::GetTreeQuality() const +{ + return m_tree.GetAreaRatio(); +} + +template +void b2BroadPhase::UpdatePairs(T* callback) +{ + // Reset pair buffer + m_pairCount = 0; + + // Perform tree queries for all moving proxies. + for (int32 i = 0; i < m_moveCount; ++i) + { + m_queryProxyId = m_moveBuffer[i]; + if (m_queryProxyId == e_nullProxy) + { + continue; + } + + // We have to query the tree with the fat AABB so that + // we don't fail to create a pair that may touch later. + const b2AABB& fatAABB = m_tree.GetFatAABB(m_queryProxyId); + + // Query tree, create pairs and add them pair buffer. + m_tree.Query(this, fatAABB); + } + + // Reset move buffer + m_moveCount = 0; + + // Sort the pair buffer to expose duplicates. + std::sort(m_pairBuffer, m_pairBuffer + m_pairCount, b2PairLessThan); + + // Send the pairs back to the client. + int32 i = 0; + while (i < m_pairCount) + { + b2Pair* primaryPair = m_pairBuffer + i; + void* userDataA = m_tree.GetUserData(primaryPair->proxyIdA); + void* userDataB = m_tree.GetUserData(primaryPair->proxyIdB); + + callback->AddPair(userDataA, userDataB); + ++i; + + // Skip any duplicate pairs. + while (i < m_pairCount) + { + b2Pair* pair = m_pairBuffer + i; + if (pair->proxyIdA != primaryPair->proxyIdA || pair->proxyIdB != primaryPair->proxyIdB) + { + break; + } + ++i; + } + } + + // Try to keep the tree balanced. + //m_tree.Rebalance(4); +} + +template +inline void b2BroadPhase::Query(T* callback, const b2AABB& aabb) const +{ + m_tree.Query(callback, aabb); +} + +template +inline void b2BroadPhase::RayCast(T* callback, const b2RayCastInput& input) const +{ + m_tree.RayCast(callback, input); +} + +inline void b2BroadPhase::ShiftOrigin(const b2Vec2& newOrigin) +{ + m_tree.ShiftOrigin(newOrigin); +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/b2CollideCircle.cpp b/Template/Game/Source/External/Box2D/Box2D/Collision/b2CollideCircle.cpp new file mode 100644 index 0000000..4181fd4 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/b2CollideCircle.cpp @@ -0,0 +1,154 @@ +/* +* Copyright (c) 2007-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include + +void b2CollideCircles( + b2Manifold* manifold, + const b2CircleShape* circleA, const b2Transform& xfA, + const b2CircleShape* circleB, const b2Transform& xfB) +{ + manifold->pointCount = 0; + + b2Vec2 pA = b2Mul(xfA, circleA->m_p); + b2Vec2 pB = b2Mul(xfB, circleB->m_p); + + b2Vec2 d = pB - pA; + float32 distSqr = b2Dot(d, d); + float32 rA = circleA->m_radius, rB = circleB->m_radius; + float32 radius = rA + rB; + if (distSqr > radius * radius) + { + return; + } + + manifold->type = b2Manifold::e_circles; + manifold->localPoint = circleA->m_p; + manifold->localNormal.SetZero(); + manifold->pointCount = 1; + + manifold->points[0].localPoint = circleB->m_p; + manifold->points[0].id.key = 0; +} + +void b2CollidePolygonAndCircle( + b2Manifold* manifold, + const b2PolygonShape* polygonA, const b2Transform& xfA, + const b2CircleShape* circleB, const b2Transform& xfB) +{ + manifold->pointCount = 0; + + // Compute circle position in the frame of the polygon. + b2Vec2 c = b2Mul(xfB, circleB->m_p); + b2Vec2 cLocal = b2MulT(xfA, c); + + // Find the min separating edge. + int32 normalIndex = 0; + float32 separation = -b2_maxFloat; + float32 radius = polygonA->m_radius + circleB->m_radius; + int32 vertexCount = polygonA->m_count; + const b2Vec2* vertices = polygonA->m_vertices; + const b2Vec2* normals = polygonA->m_normals; + + for (int32 i = 0; i < vertexCount; ++i) + { + float32 s = b2Dot(normals[i], cLocal - vertices[i]); + + if (s > radius) + { + // Early out. + return; + } + + if (s > separation) + { + separation = s; + normalIndex = i; + } + } + + // Vertices that subtend the incident face. + int32 vertIndex1 = normalIndex; + int32 vertIndex2 = vertIndex1 + 1 < vertexCount ? vertIndex1 + 1 : 0; + b2Vec2 v1 = vertices[vertIndex1]; + b2Vec2 v2 = vertices[vertIndex2]; + + // If the center is inside the polygon ... + if (separation < b2_epsilon) + { + manifold->pointCount = 1; + manifold->type = b2Manifold::e_faceA; + manifold->localNormal = normals[normalIndex]; + manifold->localPoint = 0.5f * (v1 + v2); + manifold->points[0].localPoint = circleB->m_p; + manifold->points[0].id.key = 0; + return; + } + + // Compute barycentric coordinates + float32 u1 = b2Dot(cLocal - v1, v2 - v1); + float32 u2 = b2Dot(cLocal - v2, v1 - v2); + if (u1 <= 0.0f) + { + if (b2DistanceSquared(cLocal, v1) > radius * radius) + { + return; + } + + manifold->pointCount = 1; + manifold->type = b2Manifold::e_faceA; + manifold->localNormal = cLocal - v1; + manifold->localNormal.Normalize(); + manifold->localPoint = v1; + manifold->points[0].localPoint = circleB->m_p; + manifold->points[0].id.key = 0; + } + else if (u2 <= 0.0f) + { + if (b2DistanceSquared(cLocal, v2) > radius * radius) + { + return; + } + + manifold->pointCount = 1; + manifold->type = b2Manifold::e_faceA; + manifold->localNormal = cLocal - v2; + manifold->localNormal.Normalize(); + manifold->localPoint = v2; + manifold->points[0].localPoint = circleB->m_p; + manifold->points[0].id.key = 0; + } + else + { + b2Vec2 faceCenter = 0.5f * (v1 + v2); + float32 separation = b2Dot(cLocal - faceCenter, normals[vertIndex1]); + if (separation > radius) + { + return; + } + + manifold->pointCount = 1; + manifold->type = b2Manifold::e_faceA; + manifold->localNormal = normals[vertIndex1]; + manifold->localPoint = faceCenter; + manifold->points[0].localPoint = circleB->m_p; + manifold->points[0].id.key = 0; + } +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/b2CollideEdge.cpp b/Template/Game/Source/External/Box2D/Box2D/Collision/b2CollideEdge.cpp new file mode 100644 index 0000000..88e311c --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/b2CollideEdge.cpp @@ -0,0 +1,698 @@ +/* + * Copyright (c) 2007-2009 Erin Catto http://www.box2d.org + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + */ + +#include +#include +#include +#include + + +// Compute contact points for edge versus circle. +// This accounts for edge connectivity. +void b2CollideEdgeAndCircle(b2Manifold* manifold, + const b2EdgeShape* edgeA, const b2Transform& xfA, + const b2CircleShape* circleB, const b2Transform& xfB) +{ + manifold->pointCount = 0; + + // Compute circle in frame of edge + b2Vec2 Q = b2MulT(xfA, b2Mul(xfB, circleB->m_p)); + + b2Vec2 A = edgeA->m_vertex1, B = edgeA->m_vertex2; + b2Vec2 e = B - A; + + // Barycentric coordinates + float32 u = b2Dot(e, B - Q); + float32 v = b2Dot(e, Q - A); + + float32 radius = edgeA->m_radius + circleB->m_radius; + + b2ContactFeature cf; + cf.indexB = 0; + cf.typeB = b2ContactFeature::e_vertex; + + // Region A + if (v <= 0.0f) + { + b2Vec2 P = A; + b2Vec2 d = Q - P; + float32 dd = b2Dot(d, d); + if (dd > radius * radius) + { + return; + } + + // Is there an edge connected to A? + if (edgeA->m_hasVertex0) + { + b2Vec2 A1 = edgeA->m_vertex0; + b2Vec2 B1 = A; + b2Vec2 e1 = B1 - A1; + float32 u1 = b2Dot(e1, B1 - Q); + + // Is the circle in Region AB of the previous edge? + if (u1 > 0.0f) + { + return; + } + } + + cf.indexA = 0; + cf.typeA = b2ContactFeature::e_vertex; + manifold->pointCount = 1; + manifold->type = b2Manifold::e_circles; + manifold->localNormal.SetZero(); + manifold->localPoint = P; + manifold->points[0].id.key = 0; + manifold->points[0].id.cf = cf; + manifold->points[0].localPoint = circleB->m_p; + return; + } + + // Region B + if (u <= 0.0f) + { + b2Vec2 P = B; + b2Vec2 d = Q - P; + float32 dd = b2Dot(d, d); + if (dd > radius * radius) + { + return; + } + + // Is there an edge connected to B? + if (edgeA->m_hasVertex3) + { + b2Vec2 B2 = edgeA->m_vertex3; + b2Vec2 A2 = B; + b2Vec2 e2 = B2 - A2; + float32 v2 = b2Dot(e2, Q - A2); + + // Is the circle in Region AB of the next edge? + if (v2 > 0.0f) + { + return; + } + } + + cf.indexA = 1; + cf.typeA = b2ContactFeature::e_vertex; + manifold->pointCount = 1; + manifold->type = b2Manifold::e_circles; + manifold->localNormal.SetZero(); + manifold->localPoint = P; + manifold->points[0].id.key = 0; + manifold->points[0].id.cf = cf; + manifold->points[0].localPoint = circleB->m_p; + return; + } + + // Region AB + float32 den = b2Dot(e, e); + b2Assert(den > 0.0f); + b2Vec2 P = (1.0f / den) * (u * A + v * B); + b2Vec2 d = Q - P; + float32 dd = b2Dot(d, d); + if (dd > radius * radius) + { + return; + } + + b2Vec2 n(-e.y, e.x); + if (b2Dot(n, Q - A) < 0.0f) + { + n.Set(-n.x, -n.y); + } + n.Normalize(); + + cf.indexA = 0; + cf.typeA = b2ContactFeature::e_face; + manifold->pointCount = 1; + manifold->type = b2Manifold::e_faceA; + manifold->localNormal = n; + manifold->localPoint = A; + manifold->points[0].id.key = 0; + manifold->points[0].id.cf = cf; + manifold->points[0].localPoint = circleB->m_p; +} + +// This structure is used to keep track of the best separating axis. +struct b2EPAxis +{ + enum Type + { + e_unknown, + e_edgeA, + e_edgeB + }; + + Type type; + int32 index; + float32 separation; +}; + +// This holds polygon B expressed in frame A. +struct b2TempPolygon +{ + b2Vec2 vertices[b2_maxPolygonVertices]; + b2Vec2 normals[b2_maxPolygonVertices]; + int32 count; +}; + +// Reference face used for clipping +struct b2ReferenceFace +{ + int32 i1, i2; + + b2Vec2 v1, v2; + + b2Vec2 normal; + + b2Vec2 sideNormal1; + float32 sideOffset1; + + b2Vec2 sideNormal2; + float32 sideOffset2; +}; + +// This class collides and edge and a polygon, taking into account edge adjacency. +struct b2EPCollider +{ + void Collide(b2Manifold* manifold, const b2EdgeShape* edgeA, const b2Transform& xfA, + const b2PolygonShape* polygonB, const b2Transform& xfB); + b2EPAxis ComputeEdgeSeparation(); + b2EPAxis ComputePolygonSeparation(); + + enum VertexType + { + e_isolated, + e_concave, + e_convex + }; + + b2TempPolygon m_polygonB; + + b2Transform m_xf; + b2Vec2 m_centroidB; + b2Vec2 m_v0, m_v1, m_v2, m_v3; + b2Vec2 m_normal0, m_normal1, m_normal2; + b2Vec2 m_normal; + VertexType m_type1, m_type2; + b2Vec2 m_lowerLimit, m_upperLimit; + float32 m_radius; + bool m_front; +}; + +// Algorithm: +// 1. Classify v1 and v2 +// 2. Classify polygon centroid as front or back +// 3. Flip normal if necessary +// 4. Initialize normal range to [-pi, pi] about face normal +// 5. Adjust normal range according to adjacent edges +// 6. Visit each separating axes, only accept axes within the range +// 7. Return if _any_ axis indicates separation +// 8. Clip +void b2EPCollider::Collide(b2Manifold* manifold, const b2EdgeShape* edgeA, const b2Transform& xfA, + const b2PolygonShape* polygonB, const b2Transform& xfB) +{ + m_xf = b2MulT(xfA, xfB); + + m_centroidB = b2Mul(m_xf, polygonB->m_centroid); + + m_v0 = edgeA->m_vertex0; + m_v1 = edgeA->m_vertex1; + m_v2 = edgeA->m_vertex2; + m_v3 = edgeA->m_vertex3; + + bool hasVertex0 = edgeA->m_hasVertex0; + bool hasVertex3 = edgeA->m_hasVertex3; + + b2Vec2 edge1 = m_v2 - m_v1; + edge1.Normalize(); + m_normal1.Set(edge1.y, -edge1.x); + float32 offset1 = b2Dot(m_normal1, m_centroidB - m_v1); + float32 offset0 = 0.0f, offset2 = 0.0f; + bool convex1 = false, convex2 = false; + + // Is there a preceding edge? + if (hasVertex0) + { + b2Vec2 edge0 = m_v1 - m_v0; + edge0.Normalize(); + m_normal0.Set(edge0.y, -edge0.x); + convex1 = b2Cross(edge0, edge1) >= 0.0f; + offset0 = b2Dot(m_normal0, m_centroidB - m_v0); + } + + // Is there a following edge? + if (hasVertex3) + { + b2Vec2 edge2 = m_v3 - m_v2; + edge2.Normalize(); + m_normal2.Set(edge2.y, -edge2.x); + convex2 = b2Cross(edge1, edge2) > 0.0f; + offset2 = b2Dot(m_normal2, m_centroidB - m_v2); + } + + // Determine front or back collision. Determine collision normal limits. + if (hasVertex0 && hasVertex3) + { + if (convex1 && convex2) + { + m_front = offset0 >= 0.0f || offset1 >= 0.0f || offset2 >= 0.0f; + if (m_front) + { + m_normal = m_normal1; + m_lowerLimit = m_normal0; + m_upperLimit = m_normal2; + } + else + { + m_normal = -m_normal1; + m_lowerLimit = -m_normal1; + m_upperLimit = -m_normal1; + } + } + else if (convex1) + { + m_front = offset0 >= 0.0f || (offset1 >= 0.0f && offset2 >= 0.0f); + if (m_front) + { + m_normal = m_normal1; + m_lowerLimit = m_normal0; + m_upperLimit = m_normal1; + } + else + { + m_normal = -m_normal1; + m_lowerLimit = -m_normal2; + m_upperLimit = -m_normal1; + } + } + else if (convex2) + { + m_front = offset2 >= 0.0f || (offset0 >= 0.0f && offset1 >= 0.0f); + if (m_front) + { + m_normal = m_normal1; + m_lowerLimit = m_normal1; + m_upperLimit = m_normal2; + } + else + { + m_normal = -m_normal1; + m_lowerLimit = -m_normal1; + m_upperLimit = -m_normal0; + } + } + else + { + m_front = offset0 >= 0.0f && offset1 >= 0.0f && offset2 >= 0.0f; + if (m_front) + { + m_normal = m_normal1; + m_lowerLimit = m_normal1; + m_upperLimit = m_normal1; + } + else + { + m_normal = -m_normal1; + m_lowerLimit = -m_normal2; + m_upperLimit = -m_normal0; + } + } + } + else if (hasVertex0) + { + if (convex1) + { + m_front = offset0 >= 0.0f || offset1 >= 0.0f; + if (m_front) + { + m_normal = m_normal1; + m_lowerLimit = m_normal0; + m_upperLimit = -m_normal1; + } + else + { + m_normal = -m_normal1; + m_lowerLimit = m_normal1; + m_upperLimit = -m_normal1; + } + } + else + { + m_front = offset0 >= 0.0f && offset1 >= 0.0f; + if (m_front) + { + m_normal = m_normal1; + m_lowerLimit = m_normal1; + m_upperLimit = -m_normal1; + } + else + { + m_normal = -m_normal1; + m_lowerLimit = m_normal1; + m_upperLimit = -m_normal0; + } + } + } + else if (hasVertex3) + { + if (convex2) + { + m_front = offset1 >= 0.0f || offset2 >= 0.0f; + if (m_front) + { + m_normal = m_normal1; + m_lowerLimit = -m_normal1; + m_upperLimit = m_normal2; + } + else + { + m_normal = -m_normal1; + m_lowerLimit = -m_normal1; + m_upperLimit = m_normal1; + } + } + else + { + m_front = offset1 >= 0.0f && offset2 >= 0.0f; + if (m_front) + { + m_normal = m_normal1; + m_lowerLimit = -m_normal1; + m_upperLimit = m_normal1; + } + else + { + m_normal = -m_normal1; + m_lowerLimit = -m_normal2; + m_upperLimit = m_normal1; + } + } + } + else + { + m_front = offset1 >= 0.0f; + if (m_front) + { + m_normal = m_normal1; + m_lowerLimit = -m_normal1; + m_upperLimit = -m_normal1; + } + else + { + m_normal = -m_normal1; + m_lowerLimit = m_normal1; + m_upperLimit = m_normal1; + } + } + + // Get polygonB in frameA + m_polygonB.count = polygonB->m_count; + for (int32 i = 0; i < polygonB->m_count; ++i) + { + m_polygonB.vertices[i] = b2Mul(m_xf, polygonB->m_vertices[i]); + m_polygonB.normals[i] = b2Mul(m_xf.q, polygonB->m_normals[i]); + } + + m_radius = 2.0f * b2_polygonRadius; + + manifold->pointCount = 0; + + b2EPAxis edgeAxis = ComputeEdgeSeparation(); + + // If no valid normal can be found than this edge should not collide. + if (edgeAxis.type == b2EPAxis::e_unknown) + { + return; + } + + if (edgeAxis.separation > m_radius) + { + return; + } + + b2EPAxis polygonAxis = ComputePolygonSeparation(); + if (polygonAxis.type != b2EPAxis::e_unknown && polygonAxis.separation > m_radius) + { + return; + } + + // Use hysteresis for jitter reduction. + const float32 k_relativeTol = 0.98f; + const float32 k_absoluteTol = 0.001f; + + b2EPAxis primaryAxis; + if (polygonAxis.type == b2EPAxis::e_unknown) + { + primaryAxis = edgeAxis; + } + else if (polygonAxis.separation > k_relativeTol * edgeAxis.separation + k_absoluteTol) + { + primaryAxis = polygonAxis; + } + else + { + primaryAxis = edgeAxis; + } + + b2ClipVertex ie[2]; + b2ReferenceFace rf; + if (primaryAxis.type == b2EPAxis::e_edgeA) + { + manifold->type = b2Manifold::e_faceA; + + // Search for the polygon normal that is most anti-parallel to the edge normal. + int32 bestIndex = 0; + float32 bestValue = b2Dot(m_normal, m_polygonB.normals[0]); + for (int32 i = 1; i < m_polygonB.count; ++i) + { + float32 value = b2Dot(m_normal, m_polygonB.normals[i]); + if (value < bestValue) + { + bestValue = value; + bestIndex = i; + } + } + + int32 i1 = bestIndex; + int32 i2 = i1 + 1 < m_polygonB.count ? i1 + 1 : 0; + + ie[0].v = m_polygonB.vertices[i1]; + ie[0].id.cf.indexA = 0; + ie[0].id.cf.indexB = static_cast(i1); + ie[0].id.cf.typeA = b2ContactFeature::e_face; + ie[0].id.cf.typeB = b2ContactFeature::e_vertex; + + ie[1].v = m_polygonB.vertices[i2]; + ie[1].id.cf.indexA = 0; + ie[1].id.cf.indexB = static_cast(i2); + ie[1].id.cf.typeA = b2ContactFeature::e_face; + ie[1].id.cf.typeB = b2ContactFeature::e_vertex; + + if (m_front) + { + rf.i1 = 0; + rf.i2 = 1; + rf.v1 = m_v1; + rf.v2 = m_v2; + rf.normal = m_normal1; + } + else + { + rf.i1 = 1; + rf.i2 = 0; + rf.v1 = m_v2; + rf.v2 = m_v1; + rf.normal = -m_normal1; + } + } + else + { + manifold->type = b2Manifold::e_faceB; + + ie[0].v = m_v1; + ie[0].id.cf.indexA = 0; + ie[0].id.cf.indexB = static_cast(primaryAxis.index); + ie[0].id.cf.typeA = b2ContactFeature::e_vertex; + ie[0].id.cf.typeB = b2ContactFeature::e_face; + + ie[1].v = m_v2; + ie[1].id.cf.indexA = 0; + ie[1].id.cf.indexB = static_cast(primaryAxis.index); + ie[1].id.cf.typeA = b2ContactFeature::e_vertex; + ie[1].id.cf.typeB = b2ContactFeature::e_face; + + rf.i1 = primaryAxis.index; + rf.i2 = rf.i1 + 1 < m_polygonB.count ? rf.i1 + 1 : 0; + rf.v1 = m_polygonB.vertices[rf.i1]; + rf.v2 = m_polygonB.vertices[rf.i2]; + rf.normal = m_polygonB.normals[rf.i1]; + } + + rf.sideNormal1.Set(rf.normal.y, -rf.normal.x); + rf.sideNormal2 = -rf.sideNormal1; + rf.sideOffset1 = b2Dot(rf.sideNormal1, rf.v1); + rf.sideOffset2 = b2Dot(rf.sideNormal2, rf.v2); + + // Clip incident edge against extruded edge1 side edges. + b2ClipVertex clipPoints1[2]; + b2ClipVertex clipPoints2[2]; + int32 np; + + // Clip to box side 1 + np = b2ClipSegmentToLine(clipPoints1, ie, rf.sideNormal1, rf.sideOffset1, rf.i1); + + if (np < b2_maxManifoldPoints) + { + return; + } + + // Clip to negative box side 1 + np = b2ClipSegmentToLine(clipPoints2, clipPoints1, rf.sideNormal2, rf.sideOffset2, rf.i2); + + if (np < b2_maxManifoldPoints) + { + return; + } + + // Now clipPoints2 contains the clipped points. + if (primaryAxis.type == b2EPAxis::e_edgeA) + { + manifold->localNormal = rf.normal; + manifold->localPoint = rf.v1; + } + else + { + manifold->localNormal = polygonB->m_normals[rf.i1]; + manifold->localPoint = polygonB->m_vertices[rf.i1]; + } + + int32 pointCount = 0; + for (int32 i = 0; i < b2_maxManifoldPoints; ++i) + { + float32 separation; + + separation = b2Dot(rf.normal, clipPoints2[i].v - rf.v1); + + if (separation <= m_radius) + { + b2ManifoldPoint* cp = manifold->points + pointCount; + + if (primaryAxis.type == b2EPAxis::e_edgeA) + { + cp->localPoint = b2MulT(m_xf, clipPoints2[i].v); + cp->id = clipPoints2[i].id; + } + else + { + cp->localPoint = clipPoints2[i].v; + cp->id.cf.typeA = clipPoints2[i].id.cf.typeB; + cp->id.cf.typeB = clipPoints2[i].id.cf.typeA; + cp->id.cf.indexA = clipPoints2[i].id.cf.indexB; + cp->id.cf.indexB = clipPoints2[i].id.cf.indexA; + } + + ++pointCount; + } + } + + manifold->pointCount = pointCount; +} + +b2EPAxis b2EPCollider::ComputeEdgeSeparation() +{ + b2EPAxis axis; + axis.type = b2EPAxis::e_edgeA; + axis.index = m_front ? 0 : 1; + axis.separation = FLT_MAX; + + for (int32 i = 0; i < m_polygonB.count; ++i) + { + float32 s = b2Dot(m_normal, m_polygonB.vertices[i] - m_v1); + if (s < axis.separation) + { + axis.separation = s; + } + } + + return axis; +} + +b2EPAxis b2EPCollider::ComputePolygonSeparation() +{ + b2EPAxis axis; + axis.type = b2EPAxis::e_unknown; + axis.index = -1; + axis.separation = -FLT_MAX; + + b2Vec2 perp(-m_normal.y, m_normal.x); + + for (int32 i = 0; i < m_polygonB.count; ++i) + { + b2Vec2 n = -m_polygonB.normals[i]; + + float32 s1 = b2Dot(n, m_polygonB.vertices[i] - m_v1); + float32 s2 = b2Dot(n, m_polygonB.vertices[i] - m_v2); + float32 s = b2Min(s1, s2); + + if (s > m_radius) + { + // No collision + axis.type = b2EPAxis::e_edgeB; + axis.index = i; + axis.separation = s; + return axis; + } + + // Adjacency + if (b2Dot(n, perp) >= 0.0f) + { + if (b2Dot(n - m_upperLimit, m_normal) < -b2_angularSlop) + { + continue; + } + } + else + { + if (b2Dot(n - m_lowerLimit, m_normal) < -b2_angularSlop) + { + continue; + } + } + + if (s > axis.separation) + { + axis.type = b2EPAxis::e_edgeB; + axis.index = i; + axis.separation = s; + } + } + + return axis; +} + +void b2CollideEdgeAndPolygon( b2Manifold* manifold, + const b2EdgeShape* edgeA, const b2Transform& xfA, + const b2PolygonShape* polygonB, const b2Transform& xfB) +{ + b2EPCollider collider; + collider.Collide(manifold, edgeA, xfA, polygonB, xfB); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/b2CollidePolygon.cpp b/Template/Game/Source/External/Box2D/Box2D/Collision/b2CollidePolygon.cpp new file mode 100644 index 0000000..0aac38b --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/b2CollidePolygon.cpp @@ -0,0 +1,239 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include + +// Find the max separation between poly1 and poly2 using edge normals from poly1. +static float32 b2FindMaxSeparation(int32* edgeIndex, + const b2PolygonShape* poly1, const b2Transform& xf1, + const b2PolygonShape* poly2, const b2Transform& xf2) +{ + int32 count1 = poly1->m_count; + int32 count2 = poly2->m_count; + const b2Vec2* n1s = poly1->m_normals; + const b2Vec2* v1s = poly1->m_vertices; + const b2Vec2* v2s = poly2->m_vertices; + b2Transform xf = b2MulT(xf2, xf1); + + int32 bestIndex = 0; + float32 maxSeparation = -b2_maxFloat; + for (int32 i = 0; i < count1; ++i) + { + // Get poly1 normal in frame2. + b2Vec2 n = b2Mul(xf.q, n1s[i]); + b2Vec2 v1 = b2Mul(xf, v1s[i]); + + // Find deepest point for normal i. + float32 si = b2_maxFloat; + for (int32 j = 0; j < count2; ++j) + { + float32 sij = b2Dot(n, v2s[j] - v1); + if (sij < si) + { + si = sij; + } + } + + if (si > maxSeparation) + { + maxSeparation = si; + bestIndex = i; + } + } + + *edgeIndex = bestIndex; + return maxSeparation; +} + +static void b2FindIncidentEdge(b2ClipVertex c[2], + const b2PolygonShape* poly1, const b2Transform& xf1, int32 edge1, + const b2PolygonShape* poly2, const b2Transform& xf2) +{ + const b2Vec2* normals1 = poly1->m_normals; + + int32 count2 = poly2->m_count; + const b2Vec2* vertices2 = poly2->m_vertices; + const b2Vec2* normals2 = poly2->m_normals; + + b2Assert(0 <= edge1 && edge1 < poly1->m_count); + + // Get the normal of the reference edge in poly2's frame. + b2Vec2 normal1 = b2MulT(xf2.q, b2Mul(xf1.q, normals1[edge1])); + + // Find the incident edge on poly2. + int32 index = 0; + float32 minDot = b2_maxFloat; + for (int32 i = 0; i < count2; ++i) + { + float32 dot = b2Dot(normal1, normals2[i]); + if (dot < minDot) + { + minDot = dot; + index = i; + } + } + + // Build the clip vertices for the incident edge. + int32 i1 = index; + int32 i2 = i1 + 1 < count2 ? i1 + 1 : 0; + + c[0].v = b2Mul(xf2, vertices2[i1]); + c[0].id.cf.indexA = (uint8)edge1; + c[0].id.cf.indexB = (uint8)i1; + c[0].id.cf.typeA = b2ContactFeature::e_face; + c[0].id.cf.typeB = b2ContactFeature::e_vertex; + + c[1].v = b2Mul(xf2, vertices2[i2]); + c[1].id.cf.indexA = (uint8)edge1; + c[1].id.cf.indexB = (uint8)i2; + c[1].id.cf.typeA = b2ContactFeature::e_face; + c[1].id.cf.typeB = b2ContactFeature::e_vertex; +} + +// Find edge normal of max separation on A - return if separating axis is found +// Find edge normal of max separation on B - return if separation axis is found +// Choose reference edge as min(minA, minB) +// Find incident edge +// Clip + +// The normal points from 1 to 2 +void b2CollidePolygons(b2Manifold* manifold, + const b2PolygonShape* polyA, const b2Transform& xfA, + const b2PolygonShape* polyB, const b2Transform& xfB) +{ + manifold->pointCount = 0; + float32 totalRadius = polyA->m_radius + polyB->m_radius; + + int32 edgeA = 0; + float32 separationA = b2FindMaxSeparation(&edgeA, polyA, xfA, polyB, xfB); + if (separationA > totalRadius) + return; + + int32 edgeB = 0; + float32 separationB = b2FindMaxSeparation(&edgeB, polyB, xfB, polyA, xfA); + if (separationB > totalRadius) + return; + + const b2PolygonShape* poly1; // reference polygon + const b2PolygonShape* poly2; // incident polygon + b2Transform xf1, xf2; + int32 edge1; // reference edge + uint8 flip; + const float32 k_tol = 0.1f * b2_linearSlop; + + if (separationB > separationA + k_tol) + { + poly1 = polyB; + poly2 = polyA; + xf1 = xfB; + xf2 = xfA; + edge1 = edgeB; + manifold->type = b2Manifold::e_faceB; + flip = 1; + } + else + { + poly1 = polyA; + poly2 = polyB; + xf1 = xfA; + xf2 = xfB; + edge1 = edgeA; + manifold->type = b2Manifold::e_faceA; + flip = 0; + } + + b2ClipVertex incidentEdge[2]; + b2FindIncidentEdge(incidentEdge, poly1, xf1, edge1, poly2, xf2); + + int32 count1 = poly1->m_count; + const b2Vec2* vertices1 = poly1->m_vertices; + + int32 iv1 = edge1; + int32 iv2 = edge1 + 1 < count1 ? edge1 + 1 : 0; + + b2Vec2 v11 = vertices1[iv1]; + b2Vec2 v12 = vertices1[iv2]; + + b2Vec2 localTangent = v12 - v11; + localTangent.Normalize(); + + b2Vec2 localNormal = b2Cross(localTangent, 1.0f); + b2Vec2 planePoint = 0.5f * (v11 + v12); + + b2Vec2 tangent = b2Mul(xf1.q, localTangent); + b2Vec2 normal = b2Cross(tangent, 1.0f); + + v11 = b2Mul(xf1, v11); + v12 = b2Mul(xf1, v12); + + // Face offset. + float32 frontOffset = b2Dot(normal, v11); + + // Side offsets, extended by polytope skin thickness. + float32 sideOffset1 = -b2Dot(tangent, v11) + totalRadius; + float32 sideOffset2 = b2Dot(tangent, v12) + totalRadius; + + // Clip incident edge against extruded edge1 side edges. + b2ClipVertex clipPoints1[2]; + b2ClipVertex clipPoints2[2]; + int np; + + // Clip to box side 1 + np = b2ClipSegmentToLine(clipPoints1, incidentEdge, -tangent, sideOffset1, iv1); + + if (np < 2) + return; + + // Clip to negative box side 1 + np = b2ClipSegmentToLine(clipPoints2, clipPoints1, tangent, sideOffset2, iv2); + + if (np < 2) + { + return; + } + + // Now clipPoints2 contains the clipped points. + manifold->localNormal = localNormal; + manifold->localPoint = planePoint; + + int32 pointCount = 0; + for (int32 i = 0; i < b2_maxManifoldPoints; ++i) + { + float32 separation = b2Dot(normal, clipPoints2[i].v) - frontOffset; + + if (separation <= totalRadius) + { + b2ManifoldPoint* cp = manifold->points + pointCount; + cp->localPoint = b2MulT(xf2, clipPoints2[i].v); + cp->id = clipPoints2[i].id; + if (flip) + { + // Swap features + b2ContactFeature cf = cp->id.cf; + cp->id.cf.indexA = cf.indexB; + cp->id.cf.indexB = cf.indexA; + cp->id.cf.typeA = cf.typeB; + cp->id.cf.typeB = cf.typeA; + } + ++pointCount; + } + } + + manifold->pointCount = pointCount; +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/b2Collision.cpp b/Template/Game/Source/External/Box2D/Box2D/Collision/b2Collision.cpp new file mode 100644 index 0000000..4ebf355 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/b2Collision.cpp @@ -0,0 +1,252 @@ +/* +* Copyright (c) 2007-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include + +void b2WorldManifold::Initialize(const b2Manifold* manifold, + const b2Transform& xfA, float32 radiusA, + const b2Transform& xfB, float32 radiusB) +{ + if (manifold->pointCount == 0) + { + return; + } + + switch (manifold->type) + { + case b2Manifold::e_circles: + { + normal.Set(1.0f, 0.0f); + b2Vec2 pointA = b2Mul(xfA, manifold->localPoint); + b2Vec2 pointB = b2Mul(xfB, manifold->points[0].localPoint); + if (b2DistanceSquared(pointA, pointB) > b2_epsilon * b2_epsilon) + { + normal = pointB - pointA; + normal.Normalize(); + } + + b2Vec2 cA = pointA + radiusA * normal; + b2Vec2 cB = pointB - radiusB * normal; + points[0] = 0.5f * (cA + cB); + separations[0] = b2Dot(cB - cA, normal); + } + break; + + case b2Manifold::e_faceA: + { + normal = b2Mul(xfA.q, manifold->localNormal); + b2Vec2 planePoint = b2Mul(xfA, manifold->localPoint); + + for (int32 i = 0; i < manifold->pointCount; ++i) + { + b2Vec2 clipPoint = b2Mul(xfB, manifold->points[i].localPoint); + b2Vec2 cA = clipPoint + (radiusA - b2Dot(clipPoint - planePoint, normal)) * normal; + b2Vec2 cB = clipPoint - radiusB * normal; + points[i] = 0.5f * (cA + cB); + separations[i] = b2Dot(cB - cA, normal); + } + } + break; + + case b2Manifold::e_faceB: + { + normal = b2Mul(xfB.q, manifold->localNormal); + b2Vec2 planePoint = b2Mul(xfB, manifold->localPoint); + + for (int32 i = 0; i < manifold->pointCount; ++i) + { + b2Vec2 clipPoint = b2Mul(xfA, manifold->points[i].localPoint); + b2Vec2 cB = clipPoint + (radiusB - b2Dot(clipPoint - planePoint, normal)) * normal; + b2Vec2 cA = clipPoint - radiusA * normal; + points[i] = 0.5f * (cA + cB); + separations[i] = b2Dot(cA - cB, normal); + } + + // Ensure normal points from A to B. + normal = -normal; + } + break; + } +} + +void b2GetPointStates(b2PointState state1[b2_maxManifoldPoints], b2PointState state2[b2_maxManifoldPoints], + const b2Manifold* manifold1, const b2Manifold* manifold2) +{ + for (int32 i = 0; i < b2_maxManifoldPoints; ++i) + { + state1[i] = b2_nullState; + state2[i] = b2_nullState; + } + + // Detect persists and removes. + for (int32 i = 0; i < manifold1->pointCount; ++i) + { + b2ContactID id = manifold1->points[i].id; + + state1[i] = b2_removeState; + + for (int32 j = 0; j < manifold2->pointCount; ++j) + { + if (manifold2->points[j].id.key == id.key) + { + state1[i] = b2_persistState; + break; + } + } + } + + // Detect persists and adds. + for (int32 i = 0; i < manifold2->pointCount; ++i) + { + b2ContactID id = manifold2->points[i].id; + + state2[i] = b2_addState; + + for (int32 j = 0; j < manifold1->pointCount; ++j) + { + if (manifold1->points[j].id.key == id.key) + { + state2[i] = b2_persistState; + break; + } + } + } +} + +// From Real-time Collision Detection, p179. +bool b2AABB::RayCast(b2RayCastOutput* output, const b2RayCastInput& input) const +{ + float32 tmin = -b2_maxFloat; + float32 tmax = b2_maxFloat; + + b2Vec2 p = input.p1; + b2Vec2 d = input.p2 - input.p1; + b2Vec2 absD = b2Abs(d); + + b2Vec2 normal; + + for (int32 i = 0; i < 2; ++i) + { + if (absD(i) < b2_epsilon) + { + // Parallel. + if (p(i) < lowerBound(i) || upperBound(i) < p(i)) + { + return false; + } + } + else + { + float32 inv_d = 1.0f / d(i); + float32 t1 = (lowerBound(i) - p(i)) * inv_d; + float32 t2 = (upperBound(i) - p(i)) * inv_d; + + // Sign of the normal vector. + float32 s = -1.0f; + + if (t1 > t2) + { + b2Swap(t1, t2); + s = 1.0f; + } + + // Push the min up + if (t1 > tmin) + { + normal.SetZero(); + normal(i) = s; + tmin = t1; + } + + // Pull the max down + tmax = b2Min(tmax, t2); + + if (tmin > tmax) + { + return false; + } + } + } + + // Does the ray start inside the box? + // Does the ray intersect beyond the max fraction? + if (tmin < 0.0f || input.maxFraction < tmin) + { + return false; + } + + // Intersection. + output->fraction = tmin; + output->normal = normal; + return true; +} + +// Sutherland-Hodgman clipping. +int32 b2ClipSegmentToLine(b2ClipVertex vOut[2], const b2ClipVertex vIn[2], + const b2Vec2& normal, float32 offset, int32 vertexIndexA) +{ + // Start with no output points + int32 numOut = 0; + + // Calculate the distance of end points to the line + float32 distance0 = b2Dot(normal, vIn[0].v) - offset; + float32 distance1 = b2Dot(normal, vIn[1].v) - offset; + + // If the points are behind the plane + if (distance0 <= 0.0f) vOut[numOut++] = vIn[0]; + if (distance1 <= 0.0f) vOut[numOut++] = vIn[1]; + + // If the points are on different sides of the plane + if (distance0 * distance1 < 0.0f) + { + // Find intersection point of edge and plane + float32 interp = distance0 / (distance0 - distance1); + vOut[numOut].v = vIn[0].v + interp * (vIn[1].v - vIn[0].v); + + // VertexA is hitting edgeB. + vOut[numOut].id.cf.indexA = static_cast(vertexIndexA); + vOut[numOut].id.cf.indexB = vIn[0].id.cf.indexB; + vOut[numOut].id.cf.typeA = b2ContactFeature::e_vertex; + vOut[numOut].id.cf.typeB = b2ContactFeature::e_face; + ++numOut; + } + + return numOut; +} + +bool b2TestOverlap( const b2Shape* shapeA, int32 indexA, + const b2Shape* shapeB, int32 indexB, + const b2Transform& xfA, const b2Transform& xfB) +{ + b2DistanceInput input; + input.proxyA.Set(shapeA, indexA); + input.proxyB.Set(shapeB, indexB); + input.transformA = xfA; + input.transformB = xfB; + input.useRadii = true; + + b2SimplexCache cache; + cache.count = 0; + + b2DistanceOutput output; + + b2Distance(&output, &cache, &input); + + return output.distance < 10.0f * b2_epsilon; +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/b2Collision.h b/Template/Game/Source/External/Box2D/Box2D/Collision/b2Collision.h new file mode 100644 index 0000000..1e49af4 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/b2Collision.h @@ -0,0 +1,277 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_COLLISION_H +#define B2_COLLISION_H + +#include "Common/b2Math.h" +#include + +/// @file +/// Structures and functions used for computing contact points, distance +/// queries, and TOI queries. + +class b2Shape; +class b2CircleShape; +class b2EdgeShape; +class b2PolygonShape; + +const uint8 b2_nullFeature = UCHAR_MAX; + +/// The features that intersect to form the contact point +/// This must be 4 bytes or less. +struct b2ContactFeature +{ + enum Type + { + e_vertex = 0, + e_face = 1 + }; + + uint8 indexA; ///< Feature index on shapeA + uint8 indexB; ///< Feature index on shapeB + uint8 typeA; ///< The feature type on shapeA + uint8 typeB; ///< The feature type on shapeB +}; + +/// Contact ids to facilitate warm starting. +union b2ContactID +{ + b2ContactFeature cf; + uint32 key; ///< Used to quickly compare contact ids. +}; + +/// A manifold point is a contact point belonging to a contact +/// manifold. It holds details related to the geometry and dynamics +/// of the contact points. +/// The local point usage depends on the manifold type: +/// -e_circles: the local center of circleB +/// -e_faceA: the local center of cirlceB or the clip point of polygonB +/// -e_faceB: the clip point of polygonA +/// This structure is stored across time steps, so we keep it small. +/// Note: the impulses are used for internal caching and may not +/// provide reliable contact forces, especially for high speed collisions. +struct b2ManifoldPoint +{ + b2Vec2 localPoint; ///< usage depends on manifold type + float32 normalImpulse; ///< the non-penetration impulse + float32 tangentImpulse; ///< the friction impulse + b2ContactID id; ///< uniquely identifies a contact point between two shapes +}; + +/// A manifold for two touching convex shapes. +/// Box2D supports multiple types of contact: +/// - clip point versus plane with radius +/// - point versus point with radius (circles) +/// The local point usage depends on the manifold type: +/// -e_circles: the local center of circleA +/// -e_faceA: the center of faceA +/// -e_faceB: the center of faceB +/// Similarly the local normal usage: +/// -e_circles: not used +/// -e_faceA: the normal on polygonA +/// -e_faceB: the normal on polygonB +/// We store contacts in this way so that position correction can +/// account for movement, which is critical for continuous physics. +/// All contact scenarios must be expressed in one of these types. +/// This structure is stored across time steps, so we keep it small. +struct b2Manifold +{ + enum Type + { + e_circles, + e_faceA, + e_faceB + }; + + b2ManifoldPoint points[b2_maxManifoldPoints]; ///< the points of contact + b2Vec2 localNormal; ///< not use for Type::e_points + b2Vec2 localPoint; ///< usage depends on manifold type + Type type; + int32 pointCount; ///< the number of manifold points +}; + +/// This is used to compute the current state of a contact manifold. +struct b2WorldManifold +{ + /// Evaluate the manifold with supplied transforms. This assumes + /// modest motion from the original state. This does not change the + /// point count, impulses, etc. The radii must come from the shapes + /// that generated the manifold. + void Initialize(const b2Manifold* manifold, + const b2Transform& xfA, float32 radiusA, + const b2Transform& xfB, float32 radiusB); + + b2Vec2 normal; ///< world vector pointing from A to B + b2Vec2 points[b2_maxManifoldPoints]; ///< world contact point (point of intersection) + float32 separations[b2_maxManifoldPoints]; ///< a negative value indicates overlap, in meters +}; + +/// This is used for determining the state of contact points. +enum b2PointState +{ + b2_nullState, ///< point does not exist + b2_addState, ///< point was added in the update + b2_persistState, ///< point persisted across the update + b2_removeState ///< point was removed in the update +}; + +/// Compute the point states given two manifolds. The states pertain to the transition from manifold1 +/// to manifold2. So state1 is either persist or remove while state2 is either add or persist. +void b2GetPointStates(b2PointState state1[b2_maxManifoldPoints], b2PointState state2[b2_maxManifoldPoints], + const b2Manifold* manifold1, const b2Manifold* manifold2); + +/// Used for computing contact manifolds. +struct b2ClipVertex +{ + b2Vec2 v; + b2ContactID id; +}; + +/// Ray-cast input data. The ray extends from p1 to p1 + maxFraction * (p2 - p1). +struct b2RayCastInput +{ + b2Vec2 p1, p2; + float32 maxFraction; +}; + +/// Ray-cast output data. The ray hits at p1 + fraction * (p2 - p1), where p1 and p2 +/// come from b2RayCastInput. +struct b2RayCastOutput +{ + b2Vec2 normal; + float32 fraction; +}; + +/// An axis aligned bounding box. +struct b2AABB +{ + /// Verify that the bounds are sorted. + bool IsValid() const; + + /// Get the center of the AABB. + b2Vec2 GetCenter() const + { + return 0.5f * (lowerBound + upperBound); + } + + /// Get the extents of the AABB (half-widths). + b2Vec2 GetExtents() const + { + return 0.5f * (upperBound - lowerBound); + } + + /// Get the perimeter length + float32 GetPerimeter() const + { + float32 wx = upperBound.x - lowerBound.x; + float32 wy = upperBound.y - lowerBound.y; + return 2.0f * (wx + wy); + } + + /// Combine an AABB into this one. + void Combine(const b2AABB& aabb) + { + lowerBound = b2Min(lowerBound, aabb.lowerBound); + upperBound = b2Max(upperBound, aabb.upperBound); + } + + /// Combine two AABBs into this one. + void Combine(const b2AABB& aabb1, const b2AABB& aabb2) + { + lowerBound = b2Min(aabb1.lowerBound, aabb2.lowerBound); + upperBound = b2Max(aabb1.upperBound, aabb2.upperBound); + } + + /// Does this aabb contain the provided AABB. + bool Contains(const b2AABB& aabb) const + { + bool result = true; + result = result && lowerBound.x <= aabb.lowerBound.x; + result = result && lowerBound.y <= aabb.lowerBound.y; + result = result && aabb.upperBound.x <= upperBound.x; + result = result && aabb.upperBound.y <= upperBound.y; + return result; + } + + bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input) const; + + b2Vec2 lowerBound; ///< the lower vertex + b2Vec2 upperBound; ///< the upper vertex +}; + +/// Compute the collision manifold between two circles. +void b2CollideCircles(b2Manifold* manifold, + const b2CircleShape* circleA, const b2Transform& xfA, + const b2CircleShape* circleB, const b2Transform& xfB); + +/// Compute the collision manifold between a polygon and a circle. +void b2CollidePolygonAndCircle(b2Manifold* manifold, + const b2PolygonShape* polygonA, const b2Transform& xfA, + const b2CircleShape* circleB, const b2Transform& xfB); + +/// Compute the collision manifold between two polygons. +void b2CollidePolygons(b2Manifold* manifold, + const b2PolygonShape* polygonA, const b2Transform& xfA, + const b2PolygonShape* polygonB, const b2Transform& xfB); + +/// Compute the collision manifold between an edge and a circle. +void b2CollideEdgeAndCircle(b2Manifold* manifold, + const b2EdgeShape* polygonA, const b2Transform& xfA, + const b2CircleShape* circleB, const b2Transform& xfB); + +/// Compute the collision manifold between an edge and a circle. +void b2CollideEdgeAndPolygon(b2Manifold* manifold, + const b2EdgeShape* edgeA, const b2Transform& xfA, + const b2PolygonShape* circleB, const b2Transform& xfB); + +/// Clipping for contact manifolds. +int32 b2ClipSegmentToLine(b2ClipVertex vOut[2], const b2ClipVertex vIn[2], + const b2Vec2& normal, float32 offset, int32 vertexIndexA); + +/// Determine if two generic shapes overlap. +bool b2TestOverlap( const b2Shape* shapeA, int32 indexA, + const b2Shape* shapeB, int32 indexB, + const b2Transform& xfA, const b2Transform& xfB); + +// ---------------- Inline Functions ------------------------------------------ + +inline bool b2AABB::IsValid() const +{ + b2Vec2 d = upperBound - lowerBound; + bool valid = d.x >= 0.0f && d.y >= 0.0f; + valid = valid && lowerBound.IsValid() && upperBound.IsValid(); + return valid; +} + +inline bool b2TestOverlap(const b2AABB& a, const b2AABB& b) +{ + b2Vec2 d1, d2; + d1 = b.lowerBound - a.upperBound; + d2 = a.lowerBound - b.upperBound; + + if (d1.x > 0.0f || d1.y > 0.0f) + return false; + + if (d2.x > 0.0f || d2.y > 0.0f) + return false; + + return true; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/b2Distance.cpp b/Template/Game/Source/External/Box2D/Box2D/Collision/b2Distance.cpp new file mode 100644 index 0000000..78daab3 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/b2Distance.cpp @@ -0,0 +1,603 @@ +/* +* Copyright (c) 2007-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include +#include + +// GJK using Voronoi regions (Christer Ericson) and Barycentric coordinates. +int32 b2_gjkCalls, b2_gjkIters, b2_gjkMaxIters; + +void b2DistanceProxy::Set(const b2Shape* shape, int32 index) +{ + switch (shape->GetType()) + { + case b2Shape::e_circle: + { + const b2CircleShape* circle = static_cast(shape); + m_vertices = &circle->m_p; + m_count = 1; + m_radius = circle->m_radius; + } + break; + + case b2Shape::e_polygon: + { + const b2PolygonShape* polygon = static_cast(shape); + m_vertices = polygon->m_vertices; + m_count = polygon->m_count; + m_radius = polygon->m_radius; + } + break; + + case b2Shape::e_chain: + { + const b2ChainShape* chain = static_cast(shape); + b2Assert(0 <= index && index < chain->m_count); + + m_buffer[0] = chain->m_vertices[index]; + if (index + 1 < chain->m_count) + { + m_buffer[1] = chain->m_vertices[index + 1]; + } + else + { + m_buffer[1] = chain->m_vertices[0]; + } + + m_vertices = m_buffer; + m_count = 2; + m_radius = chain->m_radius; + } + break; + + case b2Shape::e_edge: + { + const b2EdgeShape* edge = static_cast(shape); + m_vertices = &edge->m_vertex1; + m_count = 2; + m_radius = edge->m_radius; + } + break; + + default: + b2Assert(false); + } +} + + +struct b2SimplexVertex +{ + b2Vec2 wA; // support point in proxyA + b2Vec2 wB; // support point in proxyB + b2Vec2 w; // wB - wA + float32 a; // barycentric coordinate for closest point + int32 indexA; // wA index + int32 indexB; // wB index +}; + +struct b2Simplex +{ + void ReadCache( const b2SimplexCache* cache, + const b2DistanceProxy* proxyA, const b2Transform& transformA, + const b2DistanceProxy* proxyB, const b2Transform& transformB) + { + b2Assert(cache->count <= 3); + + // Copy data from cache. + m_count = cache->count; + b2SimplexVertex* vertices = &m_v1; + for (int32 i = 0; i < m_count; ++i) + { + b2SimplexVertex* v = vertices + i; + v->indexA = cache->indexA[i]; + v->indexB = cache->indexB[i]; + b2Vec2 wALocal = proxyA->GetVertex(v->indexA); + b2Vec2 wBLocal = proxyB->GetVertex(v->indexB); + v->wA = b2Mul(transformA, wALocal); + v->wB = b2Mul(transformB, wBLocal); + v->w = v->wB - v->wA; + v->a = 0.0f; + } + + // Compute the new simplex metric, if it is substantially different than + // old metric then flush the simplex. + if (m_count > 1) + { + float32 metric1 = cache->metric; + float32 metric2 = GetMetric(); + if (metric2 < 0.5f * metric1 || 2.0f * metric1 < metric2 || metric2 < b2_epsilon) + { + // Reset the simplex. + m_count = 0; + } + } + + // If the cache is empty or invalid ... + if (m_count == 0) + { + b2SimplexVertex* v = vertices + 0; + v->indexA = 0; + v->indexB = 0; + b2Vec2 wALocal = proxyA->GetVertex(0); + b2Vec2 wBLocal = proxyB->GetVertex(0); + v->wA = b2Mul(transformA, wALocal); + v->wB = b2Mul(transformB, wBLocal); + v->w = v->wB - v->wA; + v->a = 1.0f; + m_count = 1; + } + } + + void WriteCache(b2SimplexCache* cache) const + { + cache->metric = GetMetric(); + cache->count = uint16(m_count); + const b2SimplexVertex* vertices = &m_v1; + for (int32 i = 0; i < m_count; ++i) + { + cache->indexA[i] = uint8(vertices[i].indexA); + cache->indexB[i] = uint8(vertices[i].indexB); + } + } + + b2Vec2 GetSearchDirection() const + { + switch (m_count) + { + case 1: + return -m_v1.w; + + case 2: + { + b2Vec2 e12 = m_v2.w - m_v1.w; + float32 sgn = b2Cross(e12, -m_v1.w); + if (sgn > 0.0f) + { + // Origin is left of e12. + return b2Cross(1.0f, e12); + } + else + { + // Origin is right of e12. + return b2Cross(e12, 1.0f); + } + } + + default: + b2Assert(false); + return b2Vec2_zero; + } + } + + b2Vec2 GetClosestPoint() const + { + switch (m_count) + { + case 0: + b2Assert(false); + return b2Vec2_zero; + + case 1: + return m_v1.w; + + case 2: + return m_v1.a * m_v1.w + m_v2.a * m_v2.w; + + case 3: + return b2Vec2_zero; + + default: + b2Assert(false); + return b2Vec2_zero; + } + } + + void GetWitnessPoints(b2Vec2* pA, b2Vec2* pB) const + { + switch (m_count) + { + case 0: + b2Assert(false); + break; + + case 1: + *pA = m_v1.wA; + *pB = m_v1.wB; + break; + + case 2: + *pA = m_v1.a * m_v1.wA + m_v2.a * m_v2.wA; + *pB = m_v1.a * m_v1.wB + m_v2.a * m_v2.wB; + break; + + case 3: + *pA = m_v1.a * m_v1.wA + m_v2.a * m_v2.wA + m_v3.a * m_v3.wA; + *pB = *pA; + break; + + default: + b2Assert(false); + break; + } + } + + float32 GetMetric() const + { + switch (m_count) + { + case 0: + b2Assert(false); + return 0.0f; + + case 1: + return 0.0f; + + case 2: + return b2Distance(m_v1.w, m_v2.w); + + case 3: + return b2Cross(m_v2.w - m_v1.w, m_v3.w - m_v1.w); + + default: + b2Assert(false); + return 0.0f; + } + } + + void Solve2(); + void Solve3(); + + b2SimplexVertex m_v1, m_v2, m_v3; + int32 m_count; +}; + + +// Solve a line segment using barycentric coordinates. +// +// p = a1 * w1 + a2 * w2 +// a1 + a2 = 1 +// +// The vector from the origin to the closest point on the line is +// perpendicular to the line. +// e12 = w2 - w1 +// dot(p, e) = 0 +// a1 * dot(w1, e) + a2 * dot(w2, e) = 0 +// +// 2-by-2 linear system +// [1 1 ][a1] = [1] +// [w1.e12 w2.e12][a2] = [0] +// +// Define +// d12_1 = dot(w2, e12) +// d12_2 = -dot(w1, e12) +// d12 = d12_1 + d12_2 +// +// Solution +// a1 = d12_1 / d12 +// a2 = d12_2 / d12 +void b2Simplex::Solve2() +{ + b2Vec2 w1 = m_v1.w; + b2Vec2 w2 = m_v2.w; + b2Vec2 e12 = w2 - w1; + + // w1 region + float32 d12_2 = -b2Dot(w1, e12); + if (d12_2 <= 0.0f) + { + // a2 <= 0, so we clamp it to 0 + m_v1.a = 1.0f; + m_count = 1; + return; + } + + // w2 region + float32 d12_1 = b2Dot(w2, e12); + if (d12_1 <= 0.0f) + { + // a1 <= 0, so we clamp it to 0 + m_v2.a = 1.0f; + m_count = 1; + m_v1 = m_v2; + return; + } + + // Must be in e12 region. + float32 inv_d12 = 1.0f / (d12_1 + d12_2); + m_v1.a = d12_1 * inv_d12; + m_v2.a = d12_2 * inv_d12; + m_count = 2; +} + +// Possible regions: +// - points[2] +// - edge points[0]-points[2] +// - edge points[1]-points[2] +// - inside the triangle +void b2Simplex::Solve3() +{ + b2Vec2 w1 = m_v1.w; + b2Vec2 w2 = m_v2.w; + b2Vec2 w3 = m_v3.w; + + // Edge12 + // [1 1 ][a1] = [1] + // [w1.e12 w2.e12][a2] = [0] + // a3 = 0 + b2Vec2 e12 = w2 - w1; + float32 w1e12 = b2Dot(w1, e12); + float32 w2e12 = b2Dot(w2, e12); + float32 d12_1 = w2e12; + float32 d12_2 = -w1e12; + + // Edge13 + // [1 1 ][a1] = [1] + // [w1.e13 w3.e13][a3] = [0] + // a2 = 0 + b2Vec2 e13 = w3 - w1; + float32 w1e13 = b2Dot(w1, e13); + float32 w3e13 = b2Dot(w3, e13); + float32 d13_1 = w3e13; + float32 d13_2 = -w1e13; + + // Edge23 + // [1 1 ][a2] = [1] + // [w2.e23 w3.e23][a3] = [0] + // a1 = 0 + b2Vec2 e23 = w3 - w2; + float32 w2e23 = b2Dot(w2, e23); + float32 w3e23 = b2Dot(w3, e23); + float32 d23_1 = w3e23; + float32 d23_2 = -w2e23; + + // Triangle123 + float32 n123 = b2Cross(e12, e13); + + float32 d123_1 = n123 * b2Cross(w2, w3); + float32 d123_2 = n123 * b2Cross(w3, w1); + float32 d123_3 = n123 * b2Cross(w1, w2); + + // w1 region + if (d12_2 <= 0.0f && d13_2 <= 0.0f) + { + m_v1.a = 1.0f; + m_count = 1; + return; + } + + // e12 + if (d12_1 > 0.0f && d12_2 > 0.0f && d123_3 <= 0.0f) + { + float32 inv_d12 = 1.0f / (d12_1 + d12_2); + m_v1.a = d12_1 * inv_d12; + m_v2.a = d12_2 * inv_d12; + m_count = 2; + return; + } + + // e13 + if (d13_1 > 0.0f && d13_2 > 0.0f && d123_2 <= 0.0f) + { + float32 inv_d13 = 1.0f / (d13_1 + d13_2); + m_v1.a = d13_1 * inv_d13; + m_v3.a = d13_2 * inv_d13; + m_count = 2; + m_v2 = m_v3; + return; + } + + // w2 region + if (d12_1 <= 0.0f && d23_2 <= 0.0f) + { + m_v2.a = 1.0f; + m_count = 1; + m_v1 = m_v2; + return; + } + + // w3 region + if (d13_1 <= 0.0f && d23_1 <= 0.0f) + { + m_v3.a = 1.0f; + m_count = 1; + m_v1 = m_v3; + return; + } + + // e23 + if (d23_1 > 0.0f && d23_2 > 0.0f && d123_1 <= 0.0f) + { + float32 inv_d23 = 1.0f / (d23_1 + d23_2); + m_v2.a = d23_1 * inv_d23; + m_v3.a = d23_2 * inv_d23; + m_count = 2; + m_v1 = m_v3; + return; + } + + // Must be in triangle123 + float32 inv_d123 = 1.0f / (d123_1 + d123_2 + d123_3); + m_v1.a = d123_1 * inv_d123; + m_v2.a = d123_2 * inv_d123; + m_v3.a = d123_3 * inv_d123; + m_count = 3; +} + +void b2Distance(b2DistanceOutput* output, + b2SimplexCache* cache, + const b2DistanceInput* input) +{ + ++b2_gjkCalls; + + const b2DistanceProxy* proxyA = &input->proxyA; + const b2DistanceProxy* proxyB = &input->proxyB; + + b2Transform transformA = input->transformA; + b2Transform transformB = input->transformB; + + // Initialize the simplex. + b2Simplex simplex; + simplex.ReadCache(cache, proxyA, transformA, proxyB, transformB); + + // Get simplex vertices as an array. + b2SimplexVertex* vertices = &simplex.m_v1; + const int32 k_maxIters = 20; + + // These store the vertices of the last simplex so that we + // can check for duplicates and prevent cycling. + int32 saveA[3], saveB[3]; + int32 saveCount = 0; + + float32 distanceSqr1 = b2_maxFloat; + float32 distanceSqr2 = distanceSqr1; + + // Main iteration loop. + int32 iter = 0; + while (iter < k_maxIters) + { + // Copy simplex so we can identify duplicates. + saveCount = simplex.m_count; + for (int32 i = 0; i < saveCount; ++i) + { + saveA[i] = vertices[i].indexA; + saveB[i] = vertices[i].indexB; + } + + switch (simplex.m_count) + { + case 1: + break; + + case 2: + simplex.Solve2(); + break; + + case 3: + simplex.Solve3(); + break; + + default: + b2Assert(false); + } + + // If we have 3 points, then the origin is in the corresponding triangle. + if (simplex.m_count == 3) + { + break; + } + + // Compute closest point. + b2Vec2 p = simplex.GetClosestPoint(); + distanceSqr2 = p.LengthSquared(); + + // Ensure progress + if (distanceSqr2 >= distanceSqr1) + { + //break; + } + distanceSqr1 = distanceSqr2; + + // Get search direction. + b2Vec2 d = simplex.GetSearchDirection(); + + // Ensure the search direction is numerically fit. + if (d.LengthSquared() < b2_epsilon * b2_epsilon) + { + // The origin is probably contained by a line segment + // or triangle. Thus the shapes are overlapped. + + // We can't return zero here even though there may be overlap. + // In case the simplex is a point, segment, or triangle it is difficult + // to determine if the origin is contained in the CSO or very close to it. + break; + } + + // Compute a tentative new simplex vertex using support points. + b2SimplexVertex* vertex = vertices + simplex.m_count; + vertex->indexA = proxyA->GetSupport(b2MulT(transformA.q, -d)); + vertex->wA = b2Mul(transformA, proxyA->GetVertex(vertex->indexA)); + b2Vec2 wBLocal; + vertex->indexB = proxyB->GetSupport(b2MulT(transformB.q, d)); + vertex->wB = b2Mul(transformB, proxyB->GetVertex(vertex->indexB)); + vertex->w = vertex->wB - vertex->wA; + + // Iteration count is equated to the number of support point calls. + ++iter; + ++b2_gjkIters; + + // Check for duplicate support points. This is the main termination criteria. + bool duplicate = false; + for (int32 i = 0; i < saveCount; ++i) + { + if (vertex->indexA == saveA[i] && vertex->indexB == saveB[i]) + { + duplicate = true; + break; + } + } + + // If we found a duplicate support point we must exit to avoid cycling. + if (duplicate) + { + break; + } + + // New vertex is ok and needed. + ++simplex.m_count; + } + + b2_gjkMaxIters = b2Max(b2_gjkMaxIters, iter); + + // Prepare output. + simplex.GetWitnessPoints(&output->pointA, &output->pointB); + output->distance = b2Distance(output->pointA, output->pointB); + output->iterations = iter; + + // Cache the simplex. + simplex.WriteCache(cache); + + // Apply radii if requested. + if (input->useRadii) + { + float32 rA = proxyA->m_radius; + float32 rB = proxyB->m_radius; + + if (output->distance > rA + rB && output->distance > b2_epsilon) + { + // Shapes are still no overlapped. + // Move the witness points to the outer surface. + output->distance -= rA + rB; + b2Vec2 normal = output->pointB - output->pointA; + normal.Normalize(); + output->pointA += rA * normal; + output->pointB -= rB * normal; + } + else + { + // Shapes are overlapped when radii are considered. + // Move the witness points to the middle. + b2Vec2 p = 0.5f * (output->pointA + output->pointB); + output->pointA = p; + output->pointB = p; + output->distance = 0.0f; + } + } +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/b2Distance.h b/Template/Game/Source/External/Box2D/Box2D/Collision/b2Distance.h new file mode 100644 index 0000000..74465f3 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/b2Distance.h @@ -0,0 +1,141 @@ + +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_DISTANCE_H +#define B2_DISTANCE_H + +#include "Common/b2Math.h" + +class b2Shape; + +/// A distance proxy is used by the GJK algorithm. +/// It encapsulates any shape. +struct b2DistanceProxy +{ + b2DistanceProxy() : m_vertices(NULL), m_count(0), m_radius(0.0f) {} + + /// Initialize the proxy using the given shape. The shape + /// must remain in scope while the proxy is in use. + void Set(const b2Shape* shape, int32 index); + + /// Get the supporting vertex index in the given direction. + int32 GetSupport(const b2Vec2& d) const; + + /// Get the supporting vertex in the given direction. + const b2Vec2& GetSupportVertex(const b2Vec2& d) const; + + /// Get the vertex count. + int32 GetVertexCount() const; + + /// Get a vertex by index. Used by b2Distance. + const b2Vec2& GetVertex(int32 index) const; + + b2Vec2 m_buffer[2]; + const b2Vec2* m_vertices; + int32 m_count; + float32 m_radius; +}; + +/// Used to warm start b2Distance. +/// Set count to zero on first call. +struct b2SimplexCache +{ + float32 metric; ///< length or area + uint16 count; + uint8 indexA[3]; ///< vertices on shape A + uint8 indexB[3]; ///< vertices on shape B +}; + +/// Input for b2Distance. +/// You have to option to use the shape radii +/// in the computation. Even +struct b2DistanceInput +{ + b2DistanceProxy proxyA; + b2DistanceProxy proxyB; + b2Transform transformA; + b2Transform transformB; + bool useRadii; +}; + +/// Output for b2Distance. +struct b2DistanceOutput +{ + b2Vec2 pointA; ///< closest point on shapeA + b2Vec2 pointB; ///< closest point on shapeB + float32 distance; + int32 iterations; ///< number of GJK iterations used +}; + +/// Compute the closest points between two shapes. Supports any combination of: +/// b2CircleShape, b2PolygonShape, b2EdgeShape. The simplex cache is input/output. +/// On the first call set b2SimplexCache.count to zero. +void b2Distance(b2DistanceOutput* output, + b2SimplexCache* cache, + const b2DistanceInput* input); + + +////////////////////////////////////////////////////////////////////////// + +inline int32 b2DistanceProxy::GetVertexCount() const +{ + return m_count; +} + +inline const b2Vec2& b2DistanceProxy::GetVertex(int32 index) const +{ + b2Assert(0 <= index && index < m_count); + return m_vertices[index]; +} + +inline int32 b2DistanceProxy::GetSupport(const b2Vec2& d) const +{ + int32 bestIndex = 0; + float32 bestValue = b2Dot(m_vertices[0], d); + for (int32 i = 1; i < m_count; ++i) + { + float32 value = b2Dot(m_vertices[i], d); + if (value > bestValue) + { + bestIndex = i; + bestValue = value; + } + } + + return bestIndex; +} + +inline const b2Vec2& b2DistanceProxy::GetSupportVertex(const b2Vec2& d) const +{ + int32 bestIndex = 0; + float32 bestValue = b2Dot(m_vertices[0], d); + for (int32 i = 1; i < m_count; ++i) + { + float32 value = b2Dot(m_vertices[i], d); + if (value > bestValue) + { + bestIndex = i; + bestValue = value; + } + } + + return m_vertices[bestIndex]; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/b2DynamicTree.cpp b/Template/Game/Source/External/Box2D/Box2D/Collision/b2DynamicTree.cpp new file mode 100644 index 0000000..ef57b42 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/b2DynamicTree.cpp @@ -0,0 +1,778 @@ +/* +* Copyright (c) 2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include + +b2DynamicTree::b2DynamicTree() +{ + m_root = b2_nullNode; + + m_nodeCapacity = 16; + m_nodeCount = 0; + m_nodes = (b2TreeNode*)b2Alloc(m_nodeCapacity * sizeof(b2TreeNode)); + memset(m_nodes, 0, m_nodeCapacity * sizeof(b2TreeNode)); + + // Build a linked list for the free list. + for (int32 i = 0; i < m_nodeCapacity - 1; ++i) + { + m_nodes[i].next = i + 1; + m_nodes[i].height = -1; + } + m_nodes[m_nodeCapacity-1].next = b2_nullNode; + m_nodes[m_nodeCapacity-1].height = -1; + m_freeList = 0; + + m_path = 0; + + m_insertionCount = 0; +} + +b2DynamicTree::~b2DynamicTree() +{ + // This frees the entire tree in one shot. + b2Free(m_nodes); +} + +// Allocate a node from the pool. Grow the pool if necessary. +int32 b2DynamicTree::AllocateNode() +{ + // Expand the node pool as needed. + if (m_freeList == b2_nullNode) + { + b2Assert(m_nodeCount == m_nodeCapacity); + + // The free list is empty. Rebuild a bigger pool. + b2TreeNode* oldNodes = m_nodes; + m_nodeCapacity *= 2; + m_nodes = (b2TreeNode*)b2Alloc(m_nodeCapacity * sizeof(b2TreeNode)); + memcpy(m_nodes, oldNodes, m_nodeCount * sizeof(b2TreeNode)); + b2Free(oldNodes); + + // Build a linked list for the free list. The parent + // pointer becomes the "next" pointer. + for (int32 i = m_nodeCount; i < m_nodeCapacity - 1; ++i) + { + m_nodes[i].next = i + 1; + m_nodes[i].height = -1; + } + m_nodes[m_nodeCapacity-1].next = b2_nullNode; + m_nodes[m_nodeCapacity-1].height = -1; + m_freeList = m_nodeCount; + } + + // Peel a node off the free list. + int32 nodeId = m_freeList; + m_freeList = m_nodes[nodeId].next; + m_nodes[nodeId].parent = b2_nullNode; + m_nodes[nodeId].child1 = b2_nullNode; + m_nodes[nodeId].child2 = b2_nullNode; + m_nodes[nodeId].height = 0; + m_nodes[nodeId].userData = NULL; + ++m_nodeCount; + return nodeId; +} + +// Return a node to the pool. +void b2DynamicTree::FreeNode(int32 nodeId) +{ + b2Assert(0 <= nodeId && nodeId < m_nodeCapacity); + b2Assert(0 < m_nodeCount); + m_nodes[nodeId].next = m_freeList; + m_nodes[nodeId].height = -1; + m_freeList = nodeId; + --m_nodeCount; +} + +// Create a proxy in the tree as a leaf node. We return the index +// of the node instead of a pointer so that we can grow +// the node pool. +int32 b2DynamicTree::CreateProxy(const b2AABB& aabb, void* userData) +{ + int32 proxyId = AllocateNode(); + + // Fatten the aabb. + b2Vec2 r(b2_aabbExtension, b2_aabbExtension); + m_nodes[proxyId].aabb.lowerBound = aabb.lowerBound - r; + m_nodes[proxyId].aabb.upperBound = aabb.upperBound + r; + m_nodes[proxyId].userData = userData; + m_nodes[proxyId].height = 0; + + InsertLeaf(proxyId); + + return proxyId; +} + +void b2DynamicTree::DestroyProxy(int32 proxyId) +{ + b2Assert(0 <= proxyId && proxyId < m_nodeCapacity); + b2Assert(m_nodes[proxyId].IsLeaf()); + + RemoveLeaf(proxyId); + FreeNode(proxyId); +} + +bool b2DynamicTree::MoveProxy(int32 proxyId, const b2AABB& aabb, const b2Vec2& displacement) +{ + b2Assert(0 <= proxyId && proxyId < m_nodeCapacity); + + b2Assert(m_nodes[proxyId].IsLeaf()); + + if (m_nodes[proxyId].aabb.Contains(aabb)) + { + return false; + } + + RemoveLeaf(proxyId); + + // Extend AABB. + b2AABB b = aabb; + b2Vec2 r(b2_aabbExtension, b2_aabbExtension); + b.lowerBound = b.lowerBound - r; + b.upperBound = b.upperBound + r; + + // Predict AABB displacement. + b2Vec2 d = b2_aabbMultiplier * displacement; + + if (d.x < 0.0f) + { + b.lowerBound.x += d.x; + } + else + { + b.upperBound.x += d.x; + } + + if (d.y < 0.0f) + { + b.lowerBound.y += d.y; + } + else + { + b.upperBound.y += d.y; + } + + m_nodes[proxyId].aabb = b; + + InsertLeaf(proxyId); + return true; +} + +void b2DynamicTree::InsertLeaf(int32 leaf) +{ + ++m_insertionCount; + + if (m_root == b2_nullNode) + { + m_root = leaf; + m_nodes[m_root].parent = b2_nullNode; + return; + } + + // Find the best sibling for this node + b2AABB leafAABB = m_nodes[leaf].aabb; + int32 index = m_root; + while (m_nodes[index].IsLeaf() == false) + { + int32 child1 = m_nodes[index].child1; + int32 child2 = m_nodes[index].child2; + + float32 area = m_nodes[index].aabb.GetPerimeter(); + + b2AABB combinedAABB; + combinedAABB.Combine(m_nodes[index].aabb, leafAABB); + float32 combinedArea = combinedAABB.GetPerimeter(); + + // Cost of creating a new parent for this node and the new leaf + float32 cost = 2.0f * combinedArea; + + // Minimum cost of pushing the leaf further down the tree + float32 inheritanceCost = 2.0f * (combinedArea - area); + + // Cost of descending into child1 + float32 cost1; + if (m_nodes[child1].IsLeaf()) + { + b2AABB aabb; + aabb.Combine(leafAABB, m_nodes[child1].aabb); + cost1 = aabb.GetPerimeter() + inheritanceCost; + } + else + { + b2AABB aabb; + aabb.Combine(leafAABB, m_nodes[child1].aabb); + float32 oldArea = m_nodes[child1].aabb.GetPerimeter(); + float32 newArea = aabb.GetPerimeter(); + cost1 = (newArea - oldArea) + inheritanceCost; + } + + // Cost of descending into child2 + float32 cost2; + if (m_nodes[child2].IsLeaf()) + { + b2AABB aabb; + aabb.Combine(leafAABB, m_nodes[child2].aabb); + cost2 = aabb.GetPerimeter() + inheritanceCost; + } + else + { + b2AABB aabb; + aabb.Combine(leafAABB, m_nodes[child2].aabb); + float32 oldArea = m_nodes[child2].aabb.GetPerimeter(); + float32 newArea = aabb.GetPerimeter(); + cost2 = newArea - oldArea + inheritanceCost; + } + + // Descend according to the minimum cost. + if (cost < cost1 && cost < cost2) + { + break; + } + + // Descend + if (cost1 < cost2) + { + index = child1; + } + else + { + index = child2; + } + } + + int32 sibling = index; + + // Create a new parent. + int32 oldParent = m_nodes[sibling].parent; + int32 newParent = AllocateNode(); + m_nodes[newParent].parent = oldParent; + m_nodes[newParent].userData = NULL; + m_nodes[newParent].aabb.Combine(leafAABB, m_nodes[sibling].aabb); + m_nodes[newParent].height = m_nodes[sibling].height + 1; + + if (oldParent != b2_nullNode) + { + // The sibling was not the root. + if (m_nodes[oldParent].child1 == sibling) + { + m_nodes[oldParent].child1 = newParent; + } + else + { + m_nodes[oldParent].child2 = newParent; + } + + m_nodes[newParent].child1 = sibling; + m_nodes[newParent].child2 = leaf; + m_nodes[sibling].parent = newParent; + m_nodes[leaf].parent = newParent; + } + else + { + // The sibling was the root. + m_nodes[newParent].child1 = sibling; + m_nodes[newParent].child2 = leaf; + m_nodes[sibling].parent = newParent; + m_nodes[leaf].parent = newParent; + m_root = newParent; + } + + // Walk back up the tree fixing heights and AABBs + index = m_nodes[leaf].parent; + while (index != b2_nullNode) + { + index = Balance(index); + + int32 child1 = m_nodes[index].child1; + int32 child2 = m_nodes[index].child2; + + b2Assert(child1 != b2_nullNode); + b2Assert(child2 != b2_nullNode); + + m_nodes[index].height = 1 + b2Max(m_nodes[child1].height, m_nodes[child2].height); + m_nodes[index].aabb.Combine(m_nodes[child1].aabb, m_nodes[child2].aabb); + + index = m_nodes[index].parent; + } + + //Validate(); +} + +void b2DynamicTree::RemoveLeaf(int32 leaf) +{ + if (leaf == m_root) + { + m_root = b2_nullNode; + return; + } + + int32 parent = m_nodes[leaf].parent; + int32 grandParent = m_nodes[parent].parent; + int32 sibling; + if (m_nodes[parent].child1 == leaf) + { + sibling = m_nodes[parent].child2; + } + else + { + sibling = m_nodes[parent].child1; + } + + if (grandParent != b2_nullNode) + { + // Destroy parent and connect sibling to grandParent. + if (m_nodes[grandParent].child1 == parent) + { + m_nodes[grandParent].child1 = sibling; + } + else + { + m_nodes[grandParent].child2 = sibling; + } + m_nodes[sibling].parent = grandParent; + FreeNode(parent); + + // Adjust ancestor bounds. + int32 index = grandParent; + while (index != b2_nullNode) + { + index = Balance(index); + + int32 child1 = m_nodes[index].child1; + int32 child2 = m_nodes[index].child2; + + m_nodes[index].aabb.Combine(m_nodes[child1].aabb, m_nodes[child2].aabb); + m_nodes[index].height = 1 + b2Max(m_nodes[child1].height, m_nodes[child2].height); + + index = m_nodes[index].parent; + } + } + else + { + m_root = sibling; + m_nodes[sibling].parent = b2_nullNode; + FreeNode(parent); + } + + //Validate(); +} + +// Perform a left or right rotation if node A is imbalanced. +// Returns the new root index. +int32 b2DynamicTree::Balance(int32 iA) +{ + b2Assert(iA != b2_nullNode); + + b2TreeNode* A = m_nodes + iA; + if (A->IsLeaf() || A->height < 2) + { + return iA; + } + + int32 iB = A->child1; + int32 iC = A->child2; + b2Assert(0 <= iB && iB < m_nodeCapacity); + b2Assert(0 <= iC && iC < m_nodeCapacity); + + b2TreeNode* B = m_nodes + iB; + b2TreeNode* C = m_nodes + iC; + + int32 balance = C->height - B->height; + + // Rotate C up + if (balance > 1) + { + int32 iF = C->child1; + int32 iG = C->child2; + b2TreeNode* F = m_nodes + iF; + b2TreeNode* G = m_nodes + iG; + b2Assert(0 <= iF && iF < m_nodeCapacity); + b2Assert(0 <= iG && iG < m_nodeCapacity); + + // Swap A and C + C->child1 = iA; + C->parent = A->parent; + A->parent = iC; + + // A's old parent should point to C + if (C->parent != b2_nullNode) + { + if (m_nodes[C->parent].child1 == iA) + { + m_nodes[C->parent].child1 = iC; + } + else + { + b2Assert(m_nodes[C->parent].child2 == iA); + m_nodes[C->parent].child2 = iC; + } + } + else + { + m_root = iC; + } + + // Rotate + if (F->height > G->height) + { + C->child2 = iF; + A->child2 = iG; + G->parent = iA; + A->aabb.Combine(B->aabb, G->aabb); + C->aabb.Combine(A->aabb, F->aabb); + + A->height = 1 + b2Max(B->height, G->height); + C->height = 1 + b2Max(A->height, F->height); + } + else + { + C->child2 = iG; + A->child2 = iF; + F->parent = iA; + A->aabb.Combine(B->aabb, F->aabb); + C->aabb.Combine(A->aabb, G->aabb); + + A->height = 1 + b2Max(B->height, F->height); + C->height = 1 + b2Max(A->height, G->height); + } + + return iC; + } + + // Rotate B up + if (balance < -1) + { + int32 iD = B->child1; + int32 iE = B->child2; + b2TreeNode* D = m_nodes + iD; + b2TreeNode* E = m_nodes + iE; + b2Assert(0 <= iD && iD < m_nodeCapacity); + b2Assert(0 <= iE && iE < m_nodeCapacity); + + // Swap A and B + B->child1 = iA; + B->parent = A->parent; + A->parent = iB; + + // A's old parent should point to B + if (B->parent != b2_nullNode) + { + if (m_nodes[B->parent].child1 == iA) + { + m_nodes[B->parent].child1 = iB; + } + else + { + b2Assert(m_nodes[B->parent].child2 == iA); + m_nodes[B->parent].child2 = iB; + } + } + else + { + m_root = iB; + } + + // Rotate + if (D->height > E->height) + { + B->child2 = iD; + A->child1 = iE; + E->parent = iA; + A->aabb.Combine(C->aabb, E->aabb); + B->aabb.Combine(A->aabb, D->aabb); + + A->height = 1 + b2Max(C->height, E->height); + B->height = 1 + b2Max(A->height, D->height); + } + else + { + B->child2 = iE; + A->child1 = iD; + D->parent = iA; + A->aabb.Combine(C->aabb, D->aabb); + B->aabb.Combine(A->aabb, E->aabb); + + A->height = 1 + b2Max(C->height, D->height); + B->height = 1 + b2Max(A->height, E->height); + } + + return iB; + } + + return iA; +} + +int32 b2DynamicTree::GetHeight() const +{ + if (m_root == b2_nullNode) + { + return 0; + } + + return m_nodes[m_root].height; +} + +// +float32 b2DynamicTree::GetAreaRatio() const +{ + if (m_root == b2_nullNode) + { + return 0.0f; + } + + const b2TreeNode* root = m_nodes + m_root; + float32 rootArea = root->aabb.GetPerimeter(); + + float32 totalArea = 0.0f; + for (int32 i = 0; i < m_nodeCapacity; ++i) + { + const b2TreeNode* node = m_nodes + i; + if (node->height < 0) + { + // Free node in pool + continue; + } + + totalArea += node->aabb.GetPerimeter(); + } + + return totalArea / rootArea; +} + +// Compute the height of a sub-tree. +int32 b2DynamicTree::ComputeHeight(int32 nodeId) const +{ + b2Assert(0 <= nodeId && nodeId < m_nodeCapacity); + b2TreeNode* node = m_nodes + nodeId; + + if (node->IsLeaf()) + { + return 0; + } + + int32 height1 = ComputeHeight(node->child1); + int32 height2 = ComputeHeight(node->child2); + return 1 + b2Max(height1, height2); +} + +int32 b2DynamicTree::ComputeHeight() const +{ + int32 height = ComputeHeight(m_root); + return height; +} + +void b2DynamicTree::ValidateStructure(int32 index) const +{ + if (index == b2_nullNode) + { + return; + } + + if (index == m_root) + { + b2Assert(m_nodes[index].parent == b2_nullNode); + } + + const b2TreeNode* node = m_nodes + index; + + int32 child1 = node->child1; + int32 child2 = node->child2; + + if (node->IsLeaf()) + { + b2Assert(child1 == b2_nullNode); + b2Assert(child2 == b2_nullNode); + b2Assert(node->height == 0); + return; + } + + b2Assert(0 <= child1 && child1 < m_nodeCapacity); + b2Assert(0 <= child2 && child2 < m_nodeCapacity); + + b2Assert(m_nodes[child1].parent == index); + b2Assert(m_nodes[child2].parent == index); + + ValidateStructure(child1); + ValidateStructure(child2); +} + +void b2DynamicTree::ValidateMetrics(int32 index) const +{ + if (index == b2_nullNode) + { + return; + } + + const b2TreeNode* node = m_nodes + index; + + int32 child1 = node->child1; + int32 child2 = node->child2; + + if (node->IsLeaf()) + { + b2Assert(child1 == b2_nullNode); + b2Assert(child2 == b2_nullNode); + b2Assert(node->height == 0); + return; + } + + b2Assert(0 <= child1 && child1 < m_nodeCapacity); + b2Assert(0 <= child2 && child2 < m_nodeCapacity); + + int32 height1 = m_nodes[child1].height; + int32 height2 = m_nodes[child2].height; + int32 height; + height = 1 + b2Max(height1, height2); + b2Assert(node->height == height); + + b2AABB aabb; + aabb.Combine(m_nodes[child1].aabb, m_nodes[child2].aabb); + + b2Assert(aabb.lowerBound == node->aabb.lowerBound); + b2Assert(aabb.upperBound == node->aabb.upperBound); + + ValidateMetrics(child1); + ValidateMetrics(child2); +} + +void b2DynamicTree::Validate() const +{ + ValidateStructure(m_root); + ValidateMetrics(m_root); + + int32 freeCount = 0; + int32 freeIndex = m_freeList; + while (freeIndex != b2_nullNode) + { + b2Assert(0 <= freeIndex && freeIndex < m_nodeCapacity); + freeIndex = m_nodes[freeIndex].next; + ++freeCount; + } + + b2Assert(GetHeight() == ComputeHeight()); + + b2Assert(m_nodeCount + freeCount == m_nodeCapacity); +} + +int32 b2DynamicTree::GetMaxBalance() const +{ + int32 maxBalance = 0; + for (int32 i = 0; i < m_nodeCapacity; ++i) + { + const b2TreeNode* node = m_nodes + i; + if (node->height <= 1) + { + continue; + } + + b2Assert(node->IsLeaf() == false); + + int32 child1 = node->child1; + int32 child2 = node->child2; + int32 balance = b2Abs(m_nodes[child2].height - m_nodes[child1].height); + maxBalance = b2Max(maxBalance, balance); + } + + return maxBalance; +} + +void b2DynamicTree::RebuildBottomUp() +{ + int32* nodes = (int32*)b2Alloc(m_nodeCount * sizeof(int32)); + int32 count = 0; + + // Build array of leaves. Free the rest. + for (int32 i = 0; i < m_nodeCapacity; ++i) + { + if (m_nodes[i].height < 0) + { + // free node in pool + continue; + } + + if (m_nodes[i].IsLeaf()) + { + m_nodes[i].parent = b2_nullNode; + nodes[count] = i; + ++count; + } + else + { + FreeNode(i); + } + } + + while (count > 1) + { + float32 minCost = b2_maxFloat; + int32 iMin = -1, jMin = -1; + for (int32 i = 0; i < count; ++i) + { + b2AABB aabbi = m_nodes[nodes[i]].aabb; + + for (int32 j = i + 1; j < count; ++j) + { + b2AABB aabbj = m_nodes[nodes[j]].aabb; + b2AABB b; + b.Combine(aabbi, aabbj); + float32 cost = b.GetPerimeter(); + if (cost < minCost) + { + iMin = i; + jMin = j; + minCost = cost; + } + } + } + + int32 index1 = nodes[iMin]; + int32 index2 = nodes[jMin]; + b2TreeNode* child1 = m_nodes + index1; + b2TreeNode* child2 = m_nodes + index2; + + int32 parentIndex = AllocateNode(); + b2TreeNode* parent = m_nodes + parentIndex; + parent->child1 = index1; + parent->child2 = index2; + parent->height = 1 + b2Max(child1->height, child2->height); + parent->aabb.Combine(child1->aabb, child2->aabb); + parent->parent = b2_nullNode; + + child1->parent = parentIndex; + child2->parent = parentIndex; + + nodes[jMin] = nodes[count-1]; + nodes[iMin] = parentIndex; + --count; + } + + m_root = nodes[0]; + b2Free(nodes); + + Validate(); +} + +void b2DynamicTree::ShiftOrigin(const b2Vec2& newOrigin) +{ + // Build array of leaves. Free the rest. + for (int32 i = 0; i < m_nodeCapacity; ++i) + { + m_nodes[i].aabb.lowerBound -= newOrigin; + m_nodes[i].aabb.upperBound -= newOrigin; + } +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/b2DynamicTree.h b/Template/Game/Source/External/Box2D/Box2D/Collision/b2DynamicTree.h new file mode 100644 index 0000000..0ec73e1 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/b2DynamicTree.h @@ -0,0 +1,289 @@ +/* +* Copyright (c) 2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_DYNAMIC_TREE_H +#define B2_DYNAMIC_TREE_H + +#include "Collision/b2Collision.h" +#include "Common/b2GrowableStack.h" + +#define b2_nullNode (-1) + +/// A node in the dynamic tree. The client does not interact with this directly. +struct b2TreeNode +{ + bool IsLeaf() const + { + return child1 == b2_nullNode; + } + + /// Enlarged AABB + b2AABB aabb; + + void* userData; + + union + { + int32 parent; + int32 next; + }; + + int32 child1; + int32 child2; + + // leaf = 0, free node = -1 + int32 height; +}; + +/// A dynamic AABB tree broad-phase, inspired by Nathanael Presson's btDbvt. +/// A dynamic tree arranges data in a binary tree to accelerate +/// queries such as volume queries and ray casts. Leafs are proxies +/// with an AABB. In the tree we expand the proxy AABB by b2_fatAABBFactor +/// so that the proxy AABB is bigger than the client object. This allows the client +/// object to move by small amounts without triggering a tree update. +/// +/// Nodes are pooled and relocatable, so we use node indices rather than pointers. +class b2DynamicTree +{ +public: + /// Constructing the tree initializes the node pool. + b2DynamicTree(); + + /// Destroy the tree, freeing the node pool. + ~b2DynamicTree(); + + /// Create a proxy. Provide a tight fitting AABB and a userData pointer. + int32 CreateProxy(const b2AABB& aabb, void* userData); + + /// Destroy a proxy. This asserts if the id is invalid. + void DestroyProxy(int32 proxyId); + + /// Move a proxy with a swepted AABB. If the proxy has moved outside of its fattened AABB, + /// then the proxy is removed from the tree and re-inserted. Otherwise + /// the function returns immediately. + /// @return true if the proxy was re-inserted. + bool MoveProxy(int32 proxyId, const b2AABB& aabb1, const b2Vec2& displacement); + + /// Get proxy user data. + /// @return the proxy user data or 0 if the id is invalid. + void* GetUserData(int32 proxyId) const; + + /// Get the fat AABB for a proxy. + const b2AABB& GetFatAABB(int32 proxyId) const; + + /// Query an AABB for overlapping proxies. The callback class + /// is called for each proxy that overlaps the supplied AABB. + template + void Query(T* callback, const b2AABB& aabb) const; + + /// Ray-cast against the proxies in the tree. This relies on the callback + /// to perform a exact ray-cast in the case were the proxy contains a shape. + /// The callback also performs the any collision filtering. This has performance + /// roughly equal to k * log(n), where k is the number of collisions and n is the + /// number of proxies in the tree. + /// @param input the ray-cast input data. The ray extends from p1 to p1 + maxFraction * (p2 - p1). + /// @param callback a callback class that is called for each proxy that is hit by the ray. + template + void RayCast(T* callback, const b2RayCastInput& input) const; + + /// Validate this tree. For testing. + void Validate() const; + + /// Compute the height of the binary tree in O(N) time. Should not be + /// called often. + int32 GetHeight() const; + + /// Get the maximum balance of an node in the tree. The balance is the difference + /// in height of the two children of a node. + int32 GetMaxBalance() const; + + /// Get the ratio of the sum of the node areas to the root area. + float32 GetAreaRatio() const; + + /// Build an optimal tree. Very expensive. For testing. + void RebuildBottomUp(); + + /// Shift the world origin. Useful for large worlds. + /// The shift formula is: position -= newOrigin + /// @param newOrigin the new origin with respect to the old origin + void ShiftOrigin(const b2Vec2& newOrigin); + +private: + + int32 AllocateNode(); + void FreeNode(int32 node); + + void InsertLeaf(int32 node); + void RemoveLeaf(int32 node); + + int32 Balance(int32 index); + + int32 ComputeHeight() const; + int32 ComputeHeight(int32 nodeId) const; + + void ValidateStructure(int32 index) const; + void ValidateMetrics(int32 index) const; + + int32 m_root; + + b2TreeNode* m_nodes; + int32 m_nodeCount; + int32 m_nodeCapacity; + + int32 m_freeList; + + /// This is used to incrementally traverse the tree for re-balancing. + uint32 m_path; + + int32 m_insertionCount; +}; + +inline void* b2DynamicTree::GetUserData(int32 proxyId) const +{ + b2Assert(0 <= proxyId && proxyId < m_nodeCapacity); + return m_nodes[proxyId].userData; +} + +inline const b2AABB& b2DynamicTree::GetFatAABB(int32 proxyId) const +{ + b2Assert(0 <= proxyId && proxyId < m_nodeCapacity); + return m_nodes[proxyId].aabb; +} + +template +inline void b2DynamicTree::Query(T* callback, const b2AABB& aabb) const +{ + b2GrowableStack stack; + stack.Push(m_root); + + while (stack.GetCount() > 0) + { + int32 nodeId = stack.Pop(); + if (nodeId == b2_nullNode) + { + continue; + } + + const b2TreeNode* node = m_nodes + nodeId; + + if (b2TestOverlap(node->aabb, aabb)) + { + if (node->IsLeaf()) + { + bool proceed = callback->QueryCallback(nodeId); + if (proceed == false) + { + return; + } + } + else + { + stack.Push(node->child1); + stack.Push(node->child2); + } + } + } +} + +template +inline void b2DynamicTree::RayCast(T* callback, const b2RayCastInput& input) const +{ + b2Vec2 p1 = input.p1; + b2Vec2 p2 = input.p2; + b2Vec2 r = p2 - p1; + b2Assert(r.LengthSquared() > 0.0f); + r.Normalize(); + + // v is perpendicular to the segment. + b2Vec2 v = b2Cross(1.0f, r); + b2Vec2 abs_v = b2Abs(v); + + // Separating axis for segment (Gino, p80). + // |dot(v, p1 - c)| > dot(|v|, h) + + float32 maxFraction = input.maxFraction; + + // Build a bounding box for the segment. + b2AABB segmentAABB; + { + b2Vec2 t = p1 + maxFraction * (p2 - p1); + segmentAABB.lowerBound = b2Min(p1, t); + segmentAABB.upperBound = b2Max(p1, t); + } + + b2GrowableStack stack; + stack.Push(m_root); + + while (stack.GetCount() > 0) + { + int32 nodeId = stack.Pop(); + if (nodeId == b2_nullNode) + { + continue; + } + + const b2TreeNode* node = m_nodes + nodeId; + + if (b2TestOverlap(node->aabb, segmentAABB) == false) + { + continue; + } + + // Separating axis for segment (Gino, p80). + // |dot(v, p1 - c)| > dot(|v|, h) + b2Vec2 c = node->aabb.GetCenter(); + b2Vec2 h = node->aabb.GetExtents(); + float32 separation = b2Abs(b2Dot(v, p1 - c)) - b2Dot(abs_v, h); + if (separation > 0.0f) + { + continue; + } + + if (node->IsLeaf()) + { + b2RayCastInput subInput; + subInput.p1 = input.p1; + subInput.p2 = input.p2; + subInput.maxFraction = maxFraction; + + float32 value = callback->RayCastCallback(subInput, nodeId); + + if (value == 0.0f) + { + // The client has terminated the ray cast. + return; + } + + if (value > 0.0f) + { + // Update segment bounding box. + maxFraction = value; + b2Vec2 t = p1 + maxFraction * (p2 - p1); + segmentAABB.lowerBound = b2Min(p1, t); + segmentAABB.upperBound = b2Max(p1, t); + } + } + else + { + stack.Push(node->child1); + stack.Push(node->child2); + } + } +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/b2TimeOfImpact.cpp b/Template/Game/Source/External/Box2D/Box2D/Collision/b2TimeOfImpact.cpp new file mode 100644 index 0000000..60da95c --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/b2TimeOfImpact.cpp @@ -0,0 +1,486 @@ +/* +* Copyright (c) 2007-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include +#include +#include + +#include + +float32 b2_toiTime, b2_toiMaxTime; +int32 b2_toiCalls, b2_toiIters, b2_toiMaxIters; +int32 b2_toiRootIters, b2_toiMaxRootIters; + +// +struct b2SeparationFunction +{ + enum Type + { + e_points, + e_faceA, + e_faceB + }; + + // TODO_ERIN might not need to return the separation + + float32 Initialize(const b2SimplexCache* cache, + const b2DistanceProxy* proxyA, const b2Sweep& sweepA, + const b2DistanceProxy* proxyB, const b2Sweep& sweepB, + float32 t1) + { + m_proxyA = proxyA; + m_proxyB = proxyB; + int32 count = cache->count; + b2Assert(0 < count && count < 3); + + m_sweepA = sweepA; + m_sweepB = sweepB; + + b2Transform xfA, xfB; + m_sweepA.GetTransform(&xfA, t1); + m_sweepB.GetTransform(&xfB, t1); + + if (count == 1) + { + m_type = e_points; + b2Vec2 localPointA = m_proxyA->GetVertex(cache->indexA[0]); + b2Vec2 localPointB = m_proxyB->GetVertex(cache->indexB[0]); + b2Vec2 pointA = b2Mul(xfA, localPointA); + b2Vec2 pointB = b2Mul(xfB, localPointB); + m_axis = pointB - pointA; + float32 s = m_axis.Normalize(); + return s; + } + else if (cache->indexA[0] == cache->indexA[1]) + { + // Two points on B and one on A. + m_type = e_faceB; + b2Vec2 localPointB1 = proxyB->GetVertex(cache->indexB[0]); + b2Vec2 localPointB2 = proxyB->GetVertex(cache->indexB[1]); + + m_axis = b2Cross(localPointB2 - localPointB1, 1.0f); + m_axis.Normalize(); + b2Vec2 normal = b2Mul(xfB.q, m_axis); + + m_localPoint = 0.5f * (localPointB1 + localPointB2); + b2Vec2 pointB = b2Mul(xfB, m_localPoint); + + b2Vec2 localPointA = proxyA->GetVertex(cache->indexA[0]); + b2Vec2 pointA = b2Mul(xfA, localPointA); + + float32 s = b2Dot(pointA - pointB, normal); + if (s < 0.0f) + { + m_axis = -m_axis; + s = -s; + } + return s; + } + else + { + // Two points on A and one or two points on B. + m_type = e_faceA; + b2Vec2 localPointA1 = m_proxyA->GetVertex(cache->indexA[0]); + b2Vec2 localPointA2 = m_proxyA->GetVertex(cache->indexA[1]); + + m_axis = b2Cross(localPointA2 - localPointA1, 1.0f); + m_axis.Normalize(); + b2Vec2 normal = b2Mul(xfA.q, m_axis); + + m_localPoint = 0.5f * (localPointA1 + localPointA2); + b2Vec2 pointA = b2Mul(xfA, m_localPoint); + + b2Vec2 localPointB = m_proxyB->GetVertex(cache->indexB[0]); + b2Vec2 pointB = b2Mul(xfB, localPointB); + + float32 s = b2Dot(pointB - pointA, normal); + if (s < 0.0f) + { + m_axis = -m_axis; + s = -s; + } + return s; + } + } + + // + float32 FindMinSeparation(int32* indexA, int32* indexB, float32 t) const + { + b2Transform xfA, xfB; + m_sweepA.GetTransform(&xfA, t); + m_sweepB.GetTransform(&xfB, t); + + switch (m_type) + { + case e_points: + { + b2Vec2 axisA = b2MulT(xfA.q, m_axis); + b2Vec2 axisB = b2MulT(xfB.q, -m_axis); + + *indexA = m_proxyA->GetSupport(axisA); + *indexB = m_proxyB->GetSupport(axisB); + + b2Vec2 localPointA = m_proxyA->GetVertex(*indexA); + b2Vec2 localPointB = m_proxyB->GetVertex(*indexB); + + b2Vec2 pointA = b2Mul(xfA, localPointA); + b2Vec2 pointB = b2Mul(xfB, localPointB); + + float32 separation = b2Dot(pointB - pointA, m_axis); + return separation; + } + + case e_faceA: + { + b2Vec2 normal = b2Mul(xfA.q, m_axis); + b2Vec2 pointA = b2Mul(xfA, m_localPoint); + + b2Vec2 axisB = b2MulT(xfB.q, -normal); + + *indexA = -1; + *indexB = m_proxyB->GetSupport(axisB); + + b2Vec2 localPointB = m_proxyB->GetVertex(*indexB); + b2Vec2 pointB = b2Mul(xfB, localPointB); + + float32 separation = b2Dot(pointB - pointA, normal); + return separation; + } + + case e_faceB: + { + b2Vec2 normal = b2Mul(xfB.q, m_axis); + b2Vec2 pointB = b2Mul(xfB, m_localPoint); + + b2Vec2 axisA = b2MulT(xfA.q, -normal); + + *indexB = -1; + *indexA = m_proxyA->GetSupport(axisA); + + b2Vec2 localPointA = m_proxyA->GetVertex(*indexA); + b2Vec2 pointA = b2Mul(xfA, localPointA); + + float32 separation = b2Dot(pointA - pointB, normal); + return separation; + } + + default: + b2Assert(false); + *indexA = -1; + *indexB = -1; + return 0.0f; + } + } + + // + float32 Evaluate(int32 indexA, int32 indexB, float32 t) const + { + b2Transform xfA, xfB; + m_sweepA.GetTransform(&xfA, t); + m_sweepB.GetTransform(&xfB, t); + + switch (m_type) + { + case e_points: + { + b2Vec2 localPointA = m_proxyA->GetVertex(indexA); + b2Vec2 localPointB = m_proxyB->GetVertex(indexB); + + b2Vec2 pointA = b2Mul(xfA, localPointA); + b2Vec2 pointB = b2Mul(xfB, localPointB); + float32 separation = b2Dot(pointB - pointA, m_axis); + + return separation; + } + + case e_faceA: + { + b2Vec2 normal = b2Mul(xfA.q, m_axis); + b2Vec2 pointA = b2Mul(xfA, m_localPoint); + + b2Vec2 localPointB = m_proxyB->GetVertex(indexB); + b2Vec2 pointB = b2Mul(xfB, localPointB); + + float32 separation = b2Dot(pointB - pointA, normal); + return separation; + } + + case e_faceB: + { + b2Vec2 normal = b2Mul(xfB.q, m_axis); + b2Vec2 pointB = b2Mul(xfB, m_localPoint); + + b2Vec2 localPointA = m_proxyA->GetVertex(indexA); + b2Vec2 pointA = b2Mul(xfA, localPointA); + + float32 separation = b2Dot(pointA - pointB, normal); + return separation; + } + + default: + b2Assert(false); + return 0.0f; + } + } + + const b2DistanceProxy* m_proxyA; + const b2DistanceProxy* m_proxyB; + b2Sweep m_sweepA, m_sweepB; + Type m_type; + b2Vec2 m_localPoint; + b2Vec2 m_axis; +}; + +// CCD via the local separating axis method. This seeks progression +// by computing the largest time at which separation is maintained. +void b2TimeOfImpact(b2TOIOutput* output, const b2TOIInput* input) +{ + b2Timer timer; + + ++b2_toiCalls; + + output->state = b2TOIOutput::e_unknown; + output->t = input->tMax; + + const b2DistanceProxy* proxyA = &input->proxyA; + const b2DistanceProxy* proxyB = &input->proxyB; + + b2Sweep sweepA = input->sweepA; + b2Sweep sweepB = input->sweepB; + + // Large rotations can make the root finder fail, so we normalize the + // sweep angles. + sweepA.Normalize(); + sweepB.Normalize(); + + float32 tMax = input->tMax; + + float32 totalRadius = proxyA->m_radius + proxyB->m_radius; + float32 target = b2Max(b2_linearSlop, totalRadius - 3.0f * b2_linearSlop); + float32 tolerance = 0.25f * b2_linearSlop; + b2Assert(target > tolerance); + + float32 t1 = 0.0f; + const int32 k_maxIterations = 20; // TODO_ERIN b2Settings + int32 iter = 0; + + // Prepare input for distance query. + b2SimplexCache cache; + cache.count = 0; + b2DistanceInput distanceInput; + distanceInput.proxyA = input->proxyA; + distanceInput.proxyB = input->proxyB; + distanceInput.useRadii = false; + + // The outer loop progressively attempts to compute new separating axes. + // This loop terminates when an axis is repeated (no progress is made). + for(;;) + { + b2Transform xfA, xfB; + sweepA.GetTransform(&xfA, t1); + sweepB.GetTransform(&xfB, t1); + + // Get the distance between shapes. We can also use the results + // to get a separating axis. + distanceInput.transformA = xfA; + distanceInput.transformB = xfB; + b2DistanceOutput distanceOutput; + b2Distance(&distanceOutput, &cache, &distanceInput); + + // If the shapes are overlapped, we give up on continuous collision. + if (distanceOutput.distance <= 0.0f) + { + // Failure! + output->state = b2TOIOutput::e_overlapped; + output->t = 0.0f; + break; + } + + if (distanceOutput.distance < target + tolerance) + { + // Victory! + output->state = b2TOIOutput::e_touching; + output->t = t1; + break; + } + + // Initialize the separating axis. + b2SeparationFunction fcn; + fcn.Initialize(&cache, proxyA, sweepA, proxyB, sweepB, t1); +#if 0 + // Dump the curve seen by the root finder + { + const int32 N = 100; + float32 dx = 1.0f / N; + float32 xs[N+1]; + float32 fs[N+1]; + + float32 x = 0.0f; + + for (int32 i = 0; i <= N; ++i) + { + sweepA.GetTransform(&xfA, x); + sweepB.GetTransform(&xfB, x); + float32 f = fcn.Evaluate(xfA, xfB) - target; + + printf("%g %g\n", x, f); + + xs[i] = x; + fs[i] = f; + + x += dx; + } + } +#endif + + // Compute the TOI on the separating axis. We do this by successively + // resolving the deepest point. This loop is bounded by the number of vertices. + bool done = false; + float32 t2 = tMax; + int32 pushBackIter = 0; + for (;;) + { + // Find the deepest point at t2. Store the witness point indices. + int32 indexA, indexB; + float32 s2 = fcn.FindMinSeparation(&indexA, &indexB, t2); + + // Is the final configuration separated? + if (s2 > target + tolerance) + { + // Victory! + output->state = b2TOIOutput::e_separated; + output->t = tMax; + done = true; + break; + } + + // Has the separation reached tolerance? + if (s2 > target - tolerance) + { + // Advance the sweeps + t1 = t2; + break; + } + + // Compute the initial separation of the witness points. + float32 s1 = fcn.Evaluate(indexA, indexB, t1); + + // Check for initial overlap. This might happen if the root finder + // runs out of iterations. + if (s1 < target - tolerance) + { + output->state = b2TOIOutput::e_failed; + output->t = t1; + done = true; + break; + } + + // Check for touching + if (s1 <= target + tolerance) + { + // Victory! t1 should hold the TOI (could be 0.0). + output->state = b2TOIOutput::e_touching; + output->t = t1; + done = true; + break; + } + + // Compute 1D root of: f(x) - target = 0 + int32 rootIterCount = 0; + float32 a1 = t1, a2 = t2; + for (;;) + { + // Use a mix of the secant rule and bisection. + float32 t; + if (rootIterCount & 1) + { + // Secant rule to improve convergence. + t = a1 + (target - s1) * (a2 - a1) / (s2 - s1); + } + else + { + // Bisection to guarantee progress. + t = 0.5f * (a1 + a2); + } + + ++rootIterCount; + ++b2_toiRootIters; + + float32 s = fcn.Evaluate(indexA, indexB, t); + + if (b2Abs(s - target) < tolerance) + { + // t2 holds a tentative value for t1 + t2 = t; + break; + } + + // Ensure we continue to bracket the root. + if (s > target) + { + a1 = t; + s1 = s; + } + else + { + a2 = t; + s2 = s; + } + + if (rootIterCount == 50) + { + break; + } + } + + b2_toiMaxRootIters = b2Max(b2_toiMaxRootIters, rootIterCount); + + ++pushBackIter; + + if (pushBackIter == b2_maxPolygonVertices) + { + break; + } + } + + ++iter; + ++b2_toiIters; + + if (done) + { + break; + } + + if (iter == k_maxIterations) + { + // Root finder got stuck. Semi-victory. + output->state = b2TOIOutput::e_failed; + output->t = t1; + break; + } + } + + b2_toiMaxIters = b2Max(b2_toiMaxIters, iter); + + float32 time = timer.GetMilliseconds(); + b2_toiMaxTime = b2Max(b2_toiMaxTime, time); + b2_toiTime += time; +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Collision/b2TimeOfImpact.h b/Template/Game/Source/External/Box2D/Box2D/Collision/b2TimeOfImpact.h new file mode 100644 index 0000000..9e1cbd0 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Collision/b2TimeOfImpact.h @@ -0,0 +1,58 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_TIME_OF_IMPACT_H +#define B2_TIME_OF_IMPACT_H + +#include "Common/b2Math.h" +#include "Collision/b2Distance.h" + +/// Input parameters for b2TimeOfImpact +struct b2TOIInput +{ + b2DistanceProxy proxyA; + b2DistanceProxy proxyB; + b2Sweep sweepA; + b2Sweep sweepB; + float32 tMax; // defines sweep interval [0, tMax] +}; + +// Output parameters for b2TimeOfImpact. +struct b2TOIOutput +{ + enum State + { + e_unknown, + e_failed, + e_overlapped, + e_touching, + e_separated + }; + + State state; + float32 t; +}; + +/// Compute the upper bound on time before two shapes penetrate. Time is represented as +/// a fraction between [0,tMax]. This uses a swept separating axis and may miss some intermediate, +/// non-tunneling collision. If you change the time interval, you should call this function +/// again. +/// Note: use b2Distance to compute the contact point and normal at the time of impact. +void b2TimeOfImpact(b2TOIOutput* output, const b2TOIInput* input); + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Common/b2BlockAllocator.cpp b/Template/Game/Source/External/Box2D/Box2D/Common/b2BlockAllocator.cpp new file mode 100644 index 0000000..59674e8 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Common/b2BlockAllocator.cpp @@ -0,0 +1,215 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include + +int32 b2BlockAllocator::s_blockSizes[b2_blockSizes] = +{ + 16, // 0 + 32, // 1 + 64, // 2 + 96, // 3 + 128, // 4 + 160, // 5 + 192, // 6 + 224, // 7 + 256, // 8 + 320, // 9 + 384, // 10 + 448, // 11 + 512, // 12 + 640, // 13 +}; +uint8 b2BlockAllocator::s_blockSizeLookup[b2_maxBlockSize + 1]; +bool b2BlockAllocator::s_blockSizeLookupInitialized; + +struct b2Chunk +{ + int32 blockSize; + b2Block* blocks; +}; + +struct b2Block +{ + b2Block* next; +}; + +b2BlockAllocator::b2BlockAllocator() +{ + b2Assert(b2_blockSizes < UCHAR_MAX); + + m_chunkSpace = b2_chunkArrayIncrement; + m_chunkCount = 0; + m_chunks = (b2Chunk*)b2Alloc(m_chunkSpace * sizeof(b2Chunk)); + + memset(m_chunks, 0, m_chunkSpace * sizeof(b2Chunk)); + memset(m_freeLists, 0, sizeof(m_freeLists)); + + if (s_blockSizeLookupInitialized == false) + { + int32 j = 0; + for (int32 i = 1; i <= b2_maxBlockSize; ++i) + { + b2Assert(j < b2_blockSizes); + if (i <= s_blockSizes[j]) + { + s_blockSizeLookup[i] = (uint8)j; + } + else + { + ++j; + s_blockSizeLookup[i] = (uint8)j; + } + } + + s_blockSizeLookupInitialized = true; + } +} + +b2BlockAllocator::~b2BlockAllocator() +{ + for (int32 i = 0; i < m_chunkCount; ++i) + { + b2Free(m_chunks[i].blocks); + } + + b2Free(m_chunks); +} + +void* b2BlockAllocator::Allocate(int32 size) +{ + if (size == 0) + return NULL; + + b2Assert(0 < size); + + if (size > b2_maxBlockSize) + { + return b2Alloc(size); + } + + int32 index = s_blockSizeLookup[size]; + b2Assert(0 <= index && index < b2_blockSizes); + + if (m_freeLists[index]) + { + b2Block* block = m_freeLists[index]; + m_freeLists[index] = block->next; + return block; + } + else + { + if (m_chunkCount == m_chunkSpace) + { + b2Chunk* oldChunks = m_chunks; + m_chunkSpace += b2_chunkArrayIncrement; + m_chunks = (b2Chunk*)b2Alloc(m_chunkSpace * sizeof(b2Chunk)); + memcpy(m_chunks, oldChunks, m_chunkCount * sizeof(b2Chunk)); + memset(m_chunks + m_chunkCount, 0, b2_chunkArrayIncrement * sizeof(b2Chunk)); + b2Free(oldChunks); + } + + b2Chunk* chunk = m_chunks + m_chunkCount; + chunk->blocks = (b2Block*)b2Alloc(b2_chunkSize); +#if defined(_DEBUG) + memset(chunk->blocks, 0xcd, b2_chunkSize); +#endif + int32 blockSize = s_blockSizes[index]; + chunk->blockSize = blockSize; + int32 blockCount = b2_chunkSize / blockSize; + b2Assert(blockCount * blockSize <= b2_chunkSize); + for (int32 i = 0; i < blockCount - 1; ++i) + { + b2Block* block = (b2Block*)((int8*)chunk->blocks + blockSize * i); + b2Block* next = (b2Block*)((int8*)chunk->blocks + blockSize * (i + 1)); + block->next = next; + } + b2Block* last = (b2Block*)((int8*)chunk->blocks + blockSize * (blockCount - 1)); + last->next = NULL; + + m_freeLists[index] = chunk->blocks->next; + ++m_chunkCount; + + return chunk->blocks; + } +} + +void b2BlockAllocator::Free(void* p, int32 size) +{ + if (size == 0) + { + return; + } + + b2Assert(0 < size); + + if (size > b2_maxBlockSize) + { + b2Free(p); + return; + } + + int32 index = s_blockSizeLookup[size]; + b2Assert(0 <= index && index < b2_blockSizes); + +#ifdef _DEBUG + // Verify the memory address and size is valid. + int32 blockSize = s_blockSizes[index]; + bool found = false; + for (int32 i = 0; i < m_chunkCount; ++i) + { + b2Chunk* chunk = m_chunks + i; + if (chunk->blockSize != blockSize) + { + b2Assert( (int8*)p + blockSize <= (int8*)chunk->blocks || + (int8*)chunk->blocks + b2_chunkSize <= (int8*)p); + } + else + { + if ((int8*)chunk->blocks <= (int8*)p && (int8*)p + blockSize <= (int8*)chunk->blocks + b2_chunkSize) + { + found = true; + } + } + } + + b2Assert(found); + + memset(p, 0xfd, blockSize); +#endif + + b2Block* block = (b2Block*)p; + block->next = m_freeLists[index]; + m_freeLists[index] = block; +} + +void b2BlockAllocator::Clear() +{ + for (int32 i = 0; i < m_chunkCount; ++i) + { + b2Free(m_chunks[i].blocks); + } + + m_chunkCount = 0; + memset(m_chunks, 0, m_chunkSpace * sizeof(b2Chunk)); + + memset(m_freeLists, 0, sizeof(m_freeLists)); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Common/b2Draw.cpp b/Template/Game/Source/External/Box2D/Box2D/Common/b2Draw.cpp new file mode 100644 index 0000000..2cd9b1a --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Common/b2Draw.cpp @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2011 Erin Catto http://box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include + +b2Draw::b2Draw() +{ + m_drawFlags = 0; +} + +void b2Draw::SetFlags(uint32 flags) +{ + m_drawFlags = flags; +} + +uint32 b2Draw::GetFlags() const +{ + return m_drawFlags; +} + +void b2Draw::AppendFlags(uint32 flags) +{ + m_drawFlags |= flags; +} + +void b2Draw::ClearFlags(uint32 flags) +{ + m_drawFlags &= ~flags; +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Common/b2Draw.h b/Template/Game/Source/External/Box2D/Box2D/Common/b2Draw.h new file mode 100644 index 0000000..681be5d --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Common/b2Draw.h @@ -0,0 +1,86 @@ +/* +* Copyright (c) 2011 Erin Catto http://box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_DRAW_H +#define B2_DRAW_H + +#include "Common/b2Math.h" + +/// Color for debug drawing. Each value has the range [0,1]. +struct b2Color +{ + b2Color() {} + b2Color(float32 r, float32 g, float32 b, float32 a = 1.0f) : r(r), g(g), b(b), a(a) {} + void Set(float32 ri, float32 gi, float32 bi, float32 ai = 1.0f) { r = ri; g = gi; b = bi; a = ai; } + float32 r, g, b, a; +}; + +/// Implement and register this class with a b2World to provide debug drawing of physics +/// entities in your game. +class b2Draw +{ +public: + b2Draw(); + + virtual ~b2Draw() {} + + enum + { + e_shapeBit = 0x0001, ///< draw shapes + e_jointBit = 0x0002, ///< draw joint connections + e_aabbBit = 0x0004, ///< draw axis aligned bounding boxes + e_pairBit = 0x0008, ///< draw broad-phase pairs + e_centerOfMassBit = 0x0010 ///< draw center of mass frame + }; + + /// Set the drawing flags. + void SetFlags(uint32 flags); + + /// Get the drawing flags. + uint32 GetFlags() const; + + /// Append flags to the current flags. + void AppendFlags(uint32 flags); + + /// Clear flags from the current flags. + void ClearFlags(uint32 flags); + + /// Draw a closed polygon provided in CCW order. + virtual void DrawPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color) = 0; + + /// Draw a solid closed polygon provided in CCW order. + virtual void DrawSolidPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color) = 0; + + /// Draw a circle. + virtual void DrawCircle(const b2Vec2& center, float32 radius, const b2Color& color) = 0; + + /// Draw a solid circle. + virtual void DrawSolidCircle(const b2Vec2& center, float32 radius, const b2Vec2& axis, const b2Color& color) = 0; + + /// Draw a line segment. + virtual void DrawSegment(const b2Vec2& p1, const b2Vec2& p2, const b2Color& color) = 0; + + /// Draw a transform. Choose your own length scale. + /// @param xf a transform. + virtual void DrawTransform(const b2Transform& xf) = 0; + +protected: + uint32 m_drawFlags; +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Common/b2GrowableStack.h b/Template/Game/Source/External/Box2D/Box2D/Common/b2GrowableStack.h new file mode 100644 index 0000000..cdf2782 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Common/b2GrowableStack.h @@ -0,0 +1,85 @@ +/* +* Copyright (c) 2010 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_GROWABLE_STACK_H +#define B2_GROWABLE_STACK_H +#include "Common/b2Settings.h" +#include + +/// This is a growable LIFO stack with an initial capacity of N. +/// If the stack size exceeds the initial capacity, the heap is used +/// to increase the size of the stack. +template +class b2GrowableStack +{ +public: + b2GrowableStack() + { + m_stack = m_array; + m_count = 0; + m_capacity = N; + } + + ~b2GrowableStack() + { + if (m_stack != m_array) + { + b2Free(m_stack); + m_stack = NULL; + } + } + + void Push(const T& element) + { + if (m_count == m_capacity) + { + T* old = m_stack; + m_capacity *= 2; + m_stack = (T*)b2Alloc(m_capacity * sizeof(T)); + memcpy(m_stack, old, m_count * sizeof(T)); + if (old != m_array) + { + b2Free(old); + } + } + + m_stack[m_count] = element; + ++m_count; + } + + T Pop() + { + b2Assert(m_count > 0); + --m_count; + return m_stack[m_count]; + } + + int32 GetCount() + { + return m_count; + } + +private: + T* m_stack; + T m_array[N]; + int32 m_count; + int32 m_capacity; +}; + + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Common/b2Math.cpp b/Template/Game/Source/External/Box2D/Box2D/Common/b2Math.cpp new file mode 100644 index 0000000..d6027be --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Common/b2Math.cpp @@ -0,0 +1,94 @@ +/* +* Copyright (c) 2007-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include + +const b2Vec2 b2Vec2_zero(0.0f, 0.0f); + +/// Solve A * x = b, where b is a column vector. This is more efficient +/// than computing the inverse in one-shot cases. +b2Vec3 b2Mat33::Solve33(const b2Vec3& b) const +{ + float32 det = b2Dot(ex, b2Cross(ey, ez)); + if (det != 0.0f) + { + det = 1.0f / det; + } + b2Vec3 x; + x.x = det * b2Dot(b, b2Cross(ey, ez)); + x.y = det * b2Dot(ex, b2Cross(b, ez)); + x.z = det * b2Dot(ex, b2Cross(ey, b)); + return x; +} + +/// Solve A * x = b, where b is a column vector. This is more efficient +/// than computing the inverse in one-shot cases. +b2Vec2 b2Mat33::Solve22(const b2Vec2& b) const +{ + float32 a11 = ex.x, a12 = ey.x, a21 = ex.y, a22 = ey.y; + float32 det = a11 * a22 - a12 * a21; + if (det != 0.0f) + { + det = 1.0f / det; + } + b2Vec2 x; + x.x = det * (a22 * b.x - a12 * b.y); + x.y = det * (a11 * b.y - a21 * b.x); + return x; +} + +/// +void b2Mat33::GetInverse22(b2Mat33* M) const +{ + float32 a = ex.x, b = ey.x, c = ex.y, d = ey.y; + float32 det = a * d - b * c; + if (det != 0.0f) + { + det = 1.0f / det; + } + + M->ex.x = det * d; M->ey.x = -det * b; M->ex.z = 0.0f; + M->ex.y = -det * c; M->ey.y = det * a; M->ey.z = 0.0f; + M->ez.x = 0.0f; M->ez.y = 0.0f; M->ez.z = 0.0f; +} + +/// Returns the zero matrix if singular. +void b2Mat33::GetSymInverse33(b2Mat33* M) const +{ + float32 det = b2Dot(ex, b2Cross(ey, ez)); + if (det != 0.0f) + { + det = 1.0f / det; + } + + float32 a11 = ex.x, a12 = ey.x, a13 = ez.x; + float32 a22 = ey.y, a23 = ez.y; + float32 a33 = ez.z; + + M->ex.x = det * (a22 * a33 - a23 * a23); + M->ex.y = det * (a13 * a23 - a12 * a33); + M->ex.z = det * (a12 * a23 - a13 * a22); + + M->ey.x = M->ex.y; + M->ey.y = det * (a11 * a33 - a13 * a13); + M->ey.z = det * (a13 * a12 - a11 * a23); + + M->ez.x = M->ex.z; + M->ez.y = M->ey.z; + M->ez.z = det * (a11 * a22 - a12 * a12); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Common/b2Settings.cpp b/Template/Game/Source/External/Box2D/Box2D/Common/b2Settings.cpp new file mode 100644 index 0000000..91e1477 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Common/b2Settings.cpp @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include + +b2Version b2_version = {2, 3, 2}; + +// Memory allocators. Modify these to use your own allocator. +void* b2Alloc(int32 size) +{ + return malloc(size); +} + +void b2Free(void* mem) +{ + free(mem); +} + +// You can modify this to use your logging facility. +void b2Log(const char* string, ...) +{ + va_list args; + va_start(args, string); + vprintf(string, args); + va_end(args); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Common/b2Settings.h b/Template/Game/Source/External/Box2D/Box2D/Common/b2Settings.h new file mode 100644 index 0000000..86f76bd --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Common/b2Settings.h @@ -0,0 +1,151 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_SETTINGS_H +#define B2_SETTINGS_H + +#include +#include +#include + +#define B2_NOT_USED(x) ((void)(x)) +#define b2Assert(A) assert(A) + +typedef signed char int8; +typedef signed short int16; +typedef signed int int32; +typedef unsigned char uint8; +typedef unsigned short uint16; +typedef unsigned int uint32; +typedef float float32; +typedef double float64; + +#define b2_maxFloat FLT_MAX +#define b2_epsilon FLT_EPSILON +#define b2_pi 3.14159265359f + +/// @file +/// Global tuning constants based on meters-kilograms-seconds (MKS) units. +/// + +// Collision + +/// The maximum number of contact points between two convex shapes. Do +/// not change this value. +#define b2_maxManifoldPoints 2 + +/// The maximum number of vertices on a convex polygon. You cannot increase +/// this too much because b2BlockAllocator has a maximum object size. +#define b2_maxPolygonVertices 8 + +/// This is used to fatten AABBs in the dynamic tree. This allows proxies +/// to move by a small amount without triggering a tree adjustment. +/// This is in meters. +#define b2_aabbExtension 0.1f + +/// This is used to fatten AABBs in the dynamic tree. This is used to predict +/// the future position based on the current displacement. +/// This is a dimensionless multiplier. +#define b2_aabbMultiplier 2.0f + +/// A small length used as a collision and constraint tolerance. Usually it is +/// chosen to be numerically significant, but visually insignificant. +#define b2_linearSlop 0.005f + +/// A small angle used as a collision and constraint tolerance. Usually it is +/// chosen to be numerically significant, but visually insignificant. +#define b2_angularSlop (2.0f / 180.0f * b2_pi) + +/// The radius of the polygon/edge shape skin. This should not be modified. Making +/// this smaller means polygons will have an insufficient buffer for continuous collision. +/// Making it larger may create artifacts for vertex collision. +#define b2_polygonRadius (2.0f * b2_linearSlop) + +/// Maximum number of sub-steps per contact in continuous physics simulation. +#define b2_maxSubSteps 8 + + +// Dynamics + +/// Maximum number of contacts to be handled to solve a TOI impact. +#define b2_maxTOIContacts 32 + +/// A velocity threshold for elastic collisions. Any collision with a relative linear +/// velocity below this threshold will be treated as inelastic. +#define b2_velocityThreshold 1.0f + +/// The maximum linear position correction used when solving constraints. This helps to +/// prevent overshoot. +#define b2_maxLinearCorrection 0.2f + +/// The maximum angular position correction used when solving constraints. This helps to +/// prevent overshoot. +#define b2_maxAngularCorrection (8.0f / 180.0f * b2_pi) + +/// The maximum linear velocity of a body. This limit is very large and is used +/// to prevent numerical problems. You shouldn't need to adjust this. +#define b2_maxTranslation 2.0f +#define b2_maxTranslationSquared (b2_maxTranslation * b2_maxTranslation) + +/// The maximum angular velocity of a body. This limit is very large and is used +/// to prevent numerical problems. You shouldn't need to adjust this. +#define b2_maxRotation (0.5f * b2_pi) +#define b2_maxRotationSquared (b2_maxRotation * b2_maxRotation) + +/// This scale factor controls how fast overlap is resolved. Ideally this would be 1 so +/// that overlap is removed in one time step. However using values close to 1 often lead +/// to overshoot. +#define b2_baumgarte 0.2f +#define b2_toiBaugarte 0.75f + + +// Sleep + +/// The time that a body must be still before it will go to sleep. +#define b2_timeToSleep 0.5f + +/// A body cannot sleep if its linear velocity is above this tolerance. +#define b2_linearSleepTolerance 0.01f + +/// A body cannot sleep if its angular velocity is above this tolerance. +#define b2_angularSleepTolerance (2.0f / 180.0f * b2_pi) + +// Memory Allocation + +/// Implement this function to use your own memory allocator. +void* b2Alloc(int32 size); + +/// If you implement b2Alloc, you should also implement this function. +void b2Free(void* mem); + +/// Logging function. +void b2Log(const char* string, ...); + +/// Version numbering scheme. +/// See http://en.wikipedia.org/wiki/Software_versioning +struct b2Version +{ + int32 major; ///< significant changes + int32 minor; ///< incremental changes + int32 revision; ///< bug fixes +}; + +/// Current version. +extern b2Version b2_version; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Common/b2StackAllocator.cpp b/Template/Game/Source/External/Box2D/Box2D/Common/b2StackAllocator.cpp new file mode 100644 index 0000000..321cabb --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Common/b2StackAllocator.cpp @@ -0,0 +1,83 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include + +b2StackAllocator::b2StackAllocator() +{ + m_index = 0; + m_allocation = 0; + m_maxAllocation = 0; + m_entryCount = 0; +} + +b2StackAllocator::~b2StackAllocator() +{ + b2Assert(m_index == 0); + b2Assert(m_entryCount == 0); +} + +void* b2StackAllocator::Allocate(int32 size) +{ + b2Assert(m_entryCount < b2_maxStackEntries); + + b2StackEntry* entry = m_entries + m_entryCount; + entry->size = size; + if (m_index + size > b2_stackSize) + { + entry->data = (char*)b2Alloc(size); + entry->usedMalloc = true; + } + else + { + entry->data = m_data + m_index; + entry->usedMalloc = false; + m_index += size; + } + + m_allocation += size; + m_maxAllocation = b2Max(m_maxAllocation, m_allocation); + ++m_entryCount; + + return entry->data; +} + +void b2StackAllocator::Free(void* p) +{ + b2Assert(m_entryCount > 0); + b2StackEntry* entry = m_entries + m_entryCount - 1; + b2Assert(p == entry->data); + if (entry->usedMalloc) + { + b2Free(p); + } + else + { + m_index -= entry->size; + } + m_allocation -= entry->size; + --m_entryCount; + + p = NULL; +} + +int32 b2StackAllocator::GetMaxAllocation() const +{ + return m_maxAllocation; +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Common/b2StackAllocator.h b/Template/Game/Source/External/Box2D/Box2D/Common/b2StackAllocator.h new file mode 100644 index 0000000..ffabcc5 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Common/b2StackAllocator.h @@ -0,0 +1,60 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_STACK_ALLOCATOR_H +#define B2_STACK_ALLOCATOR_H + +#include "Common/b2Settings.h" + +const int32 b2_stackSize = 100 * 1024; // 100k +const int32 b2_maxStackEntries = 32; + +struct b2StackEntry +{ + char* data; + int32 size; + bool usedMalloc; +}; + +// This is a stack allocator used for fast per step allocations. +// You must nest allocate/free pairs. The code will assert +// if you try to interleave multiple allocate/free pairs. +class b2StackAllocator +{ +public: + b2StackAllocator(); + ~b2StackAllocator(); + + void* Allocate(int32 size); + void Free(void* p); + + int32 GetMaxAllocation() const; + +private: + + char m_data[b2_stackSize]; + int32 m_index; + + int32 m_allocation; + int32 m_maxAllocation; + + b2StackEntry m_entries[b2_maxStackEntries]; + int32 m_entryCount; +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Common/b2Timer.cpp b/Template/Game/Source/External/Box2D/Box2D/Common/b2Timer.cpp new file mode 100644 index 0000000..cbea530 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Common/b2Timer.cpp @@ -0,0 +1,101 @@ +/* +* Copyright (c) 2011 Erin Catto http://box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include + +#if defined(_WIN32) + +float64 b2Timer::s_invFrequency = 0.0f; + +#define WIN32_LEAN_AND_MEAN +#include + +b2Timer::b2Timer() +{ + LARGE_INTEGER largeInteger; + + if (s_invFrequency == 0.0f) + { + QueryPerformanceFrequency(&largeInteger); + s_invFrequency = float64(largeInteger.QuadPart); + if (s_invFrequency > 0.0f) + { + s_invFrequency = 1000.0f / s_invFrequency; + } + } + + QueryPerformanceCounter(&largeInteger); + m_start = float64(largeInteger.QuadPart); +} + +void b2Timer::Reset() +{ + LARGE_INTEGER largeInteger; + QueryPerformanceCounter(&largeInteger); + m_start = float64(largeInteger.QuadPart); +} + +float32 b2Timer::GetMilliseconds() const +{ + LARGE_INTEGER largeInteger; + QueryPerformanceCounter(&largeInteger); + float64 count = float64(largeInteger.QuadPart); + float32 ms = float32(s_invFrequency * (count - m_start)); + return ms; +} + +#elif defined(__linux__) || defined (__APPLE__) + +#include + +b2Timer::b2Timer() +{ + Reset(); +} + +void b2Timer::Reset() +{ + timeval t; + gettimeofday(&t, 0); + m_start_sec = t.tv_sec; + m_start_usec = t.tv_usec; +} + +float32 b2Timer::GetMilliseconds() const +{ + timeval t; + gettimeofday(&t, 0); + return 1000.0f * (t.tv_sec - m_start_sec) + 0.001f * (t.tv_usec - m_start_usec); +} + +#else + +b2Timer::b2Timer() +{ +} + +void b2Timer::Reset() +{ +} + +float32 b2Timer::GetMilliseconds() const +{ + return 0.0f; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Common/b2Timer.h b/Template/Game/Source/External/Box2D/Box2D/Common/b2Timer.h new file mode 100644 index 0000000..52dfd6b --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Common/b2Timer.h @@ -0,0 +1,50 @@ +/* +* Copyright (c) 2011 Erin Catto http://box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_TIMER_H +#define B2_TIMER_H + +#include "Common/b2Settings.h" + +/// Timer for profiling. This has platform specific code and may +/// not work on every platform. +class b2Timer +{ +public: + + /// Constructor + b2Timer(); + + /// Reset the timer. + void Reset(); + + /// Get the time since construction or the last reset. + float32 GetMilliseconds() const; + +private: + +#if defined(_WIN32) + float64 m_start; + static float64 s_invFrequency; +#elif defined(__linux__) || defined (__APPLE__) + unsigned long m_start_sec; + unsigned long m_start_usec; +#endif +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Common/b2blockallocator.h b/Template/Game/Source/External/Box2D/Box2D/Common/b2blockallocator.h new file mode 100644 index 0000000..205737d --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Common/b2blockallocator.h @@ -0,0 +1,62 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_BLOCK_ALLOCATOR_H +#define B2_BLOCK_ALLOCATOR_H + +#include "Common/b2Settings.h" + +const int32 b2_chunkSize = 16 * 1024; +const int32 b2_maxBlockSize = 640; +const int32 b2_blockSizes = 14; +const int32 b2_chunkArrayIncrement = 128; + +struct b2Block; +struct b2Chunk; + +/// This is a small object allocator used for allocating small +/// objects that persist for more than one time step. +/// See: http://www.codeproject.com/useritems/Small_Block_Allocator.asp +class b2BlockAllocator +{ +public: + b2BlockAllocator(); + ~b2BlockAllocator(); + + /// Allocate memory. This will use b2Alloc if the size is larger than b2_maxBlockSize. + void* Allocate(int32 size); + + /// Free memory. This will use b2Free if the size is larger than b2_maxBlockSize. + void Free(void* p, int32 size); + + void Clear(); + +private: + + b2Chunk* m_chunks; + int32 m_chunkCount; + int32 m_chunkSpace; + + b2Block* m_freeLists[b2_blockSizes]; + + static int32 s_blockSizes[b2_blockSizes]; + static uint8 s_blockSizeLookup[b2_maxBlockSize + 1]; + static bool s_blockSizeLookupInitialized; +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Common/b2math.h b/Template/Game/Source/External/Box2D/Box2D/Common/b2math.h new file mode 100644 index 0000000..205789d --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Common/b2math.h @@ -0,0 +1,720 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_MATH_H +#define B2_MATH_H + +#include "Common/b2Settings.h" +#include + +/// This function is used to ensure that a floating point number is not a NaN or infinity. +inline bool b2IsValid(float32 x) +{ + int32 ix = *reinterpret_cast(&x); + return (ix & 0x7f800000) != 0x7f800000; +} + +/// This is a approximate yet fast inverse square-root. +inline float32 b2InvSqrt(float32 x) +{ + union + { + float32 x; + int32 i; + } convert; + + convert.x = x; + float32 xhalf = 0.5f * x; + convert.i = 0x5f3759df - (convert.i >> 1); + x = convert.x; + x = x * (1.5f - xhalf * x * x); + return x; +} + +#define b2Sqrt(x) sqrtf(x) +#define b2Atan2(y, x) atan2f(y, x) + +/// A 2D column vector. +struct b2Vec2 +{ + /// Default constructor does nothing (for performance). + b2Vec2() {} + + /// Construct using coordinates. + b2Vec2(float32 x, float32 y) : x(x), y(y) {} + + /// Set this vector to all zeros. + void SetZero() { x = 0.0f; y = 0.0f; } + + /// Set this vector to some specified coordinates. + void Set(float32 x_, float32 y_) { x = x_; y = y_; } + + /// Negate this vector. + b2Vec2 operator -() const { b2Vec2 v; v.Set(-x, -y); return v; } + + /// Read from and indexed element. + float32 operator () (int32 i) const + { + return (&x)[i]; + } + + /// Write to an indexed element. + float32& operator () (int32 i) + { + return (&x)[i]; + } + + /// Add a vector to this vector. + void operator += (const b2Vec2& v) + { + x += v.x; y += v.y; + } + + /// Subtract a vector from this vector. + void operator -= (const b2Vec2& v) + { + x -= v.x; y -= v.y; + } + + /// Multiply this vector by a scalar. + void operator *= (float32 a) + { + x *= a; y *= a; + } + + /// Get the length of this vector (the norm). + float32 Length() const + { + return b2Sqrt(x * x + y * y); + } + + /// Get the length squared. For performance, use this instead of + /// b2Vec2::Length (if possible). + float32 LengthSquared() const + { + return x * x + y * y; + } + + /// Convert this vector into a unit vector. Returns the length. + float32 Normalize() + { + float32 length = Length(); + if (length < b2_epsilon) + { + return 0.0f; + } + float32 invLength = 1.0f / length; + x *= invLength; + y *= invLength; + + return length; + } + + /// Does this vector contain finite coordinates? + bool IsValid() const + { + return b2IsValid(x) && b2IsValid(y); + } + + /// Get the skew vector such that dot(skew_vec, other) == cross(vec, other) + b2Vec2 Skew() const + { + return b2Vec2(-y, x); + } + + float32 x, y; +}; + +/// A 2D column vector with 3 elements. +struct b2Vec3 +{ + /// Default constructor does nothing (for performance). + b2Vec3() {} + + /// Construct using coordinates. + b2Vec3(float32 x, float32 y, float32 z) : x(x), y(y), z(z) {} + + /// Set this vector to all zeros. + void SetZero() { x = 0.0f; y = 0.0f; z = 0.0f; } + + /// Set this vector to some specified coordinates. + void Set(float32 x_, float32 y_, float32 z_) { x = x_; y = y_; z = z_; } + + /// Negate this vector. + b2Vec3 operator -() const { b2Vec3 v; v.Set(-x, -y, -z); return v; } + + /// Add a vector to this vector. + void operator += (const b2Vec3& v) + { + x += v.x; y += v.y; z += v.z; + } + + /// Subtract a vector from this vector. + void operator -= (const b2Vec3& v) + { + x -= v.x; y -= v.y; z -= v.z; + } + + /// Multiply this vector by a scalar. + void operator *= (float32 s) + { + x *= s; y *= s; z *= s; + } + + float32 x, y, z; +}; + +/// A 2-by-2 matrix. Stored in column-major order. +struct b2Mat22 +{ + /// The default constructor does nothing (for performance). + b2Mat22() {} + + /// Construct this matrix using columns. + b2Mat22(const b2Vec2& c1, const b2Vec2& c2) + { + ex = c1; + ey = c2; + } + + /// Construct this matrix using scalars. + b2Mat22(float32 a11, float32 a12, float32 a21, float32 a22) + { + ex.x = a11; ex.y = a21; + ey.x = a12; ey.y = a22; + } + + /// Initialize this matrix using columns. + void Set(const b2Vec2& c1, const b2Vec2& c2) + { + ex = c1; + ey = c2; + } + + /// Set this to the identity matrix. + void SetIdentity() + { + ex.x = 1.0f; ey.x = 0.0f; + ex.y = 0.0f; ey.y = 1.0f; + } + + /// Set this matrix to all zeros. + void SetZero() + { + ex.x = 0.0f; ey.x = 0.0f; + ex.y = 0.0f; ey.y = 0.0f; + } + + b2Mat22 GetInverse() const + { + float32 a = ex.x, b = ey.x, c = ex.y, d = ey.y; + b2Mat22 B; + float32 det = a * d - b * c; + if (det != 0.0f) + { + det = 1.0f / det; + } + B.ex.x = det * d; B.ey.x = -det * b; + B.ex.y = -det * c; B.ey.y = det * a; + return B; + } + + /// Solve A * x = b, where b is a column vector. This is more efficient + /// than computing the inverse in one-shot cases. + b2Vec2 Solve(const b2Vec2& b) const + { + float32 a11 = ex.x, a12 = ey.x, a21 = ex.y, a22 = ey.y; + float32 det = a11 * a22 - a12 * a21; + if (det != 0.0f) + { + det = 1.0f / det; + } + b2Vec2 x; + x.x = det * (a22 * b.x - a12 * b.y); + x.y = det * (a11 * b.y - a21 * b.x); + return x; + } + + b2Vec2 ex, ey; +}; + +/// A 3-by-3 matrix. Stored in column-major order. +struct b2Mat33 +{ + /// The default constructor does nothing (for performance). + b2Mat33() {} + + /// Construct this matrix using columns. + b2Mat33(const b2Vec3& c1, const b2Vec3& c2, const b2Vec3& c3) + { + ex = c1; + ey = c2; + ez = c3; + } + + /// Set this matrix to all zeros. + void SetZero() + { + ex.SetZero(); + ey.SetZero(); + ez.SetZero(); + } + + /// Solve A * x = b, where b is a column vector. This is more efficient + /// than computing the inverse in one-shot cases. + b2Vec3 Solve33(const b2Vec3& b) const; + + /// Solve A * x = b, where b is a column vector. This is more efficient + /// than computing the inverse in one-shot cases. Solve only the upper + /// 2-by-2 matrix equation. + b2Vec2 Solve22(const b2Vec2& b) const; + + /// Get the inverse of this matrix as a 2-by-2. + /// Returns the zero matrix if singular. + void GetInverse22(b2Mat33* M) const; + + /// Get the symmetric inverse of this matrix as a 3-by-3. + /// Returns the zero matrix if singular. + void GetSymInverse33(b2Mat33* M) const; + + b2Vec3 ex, ey, ez; +}; + +/// Rotation +struct b2Rot +{ + b2Rot() {} + + /// Initialize from an angle in radians + explicit b2Rot(float32 angle) + { + /// TODO_ERIN optimize + s = sinf(angle); + c = cosf(angle); + } + + /// Set using an angle in radians. + void Set(float32 angle) + { + /// TODO_ERIN optimize + s = sinf(angle); + c = cosf(angle); + } + + /// Set to the identity rotation + void SetIdentity() + { + s = 0.0f; + c = 1.0f; + } + + /// Get the angle in radians + float32 GetAngle() const + { + return b2Atan2(s, c); + } + + /// Get the x-axis + b2Vec2 GetXAxis() const + { + return b2Vec2(c, s); + } + + /// Get the u-axis + b2Vec2 GetYAxis() const + { + return b2Vec2(-s, c); + } + + /// Sine and cosine + float32 s, c; +}; + +/// A transform contains translation and rotation. It is used to represent +/// the position and orientation of rigid frames. +struct b2Transform +{ + /// The default constructor does nothing. + b2Transform() {} + + /// Initialize using a position vector and a rotation. + b2Transform(const b2Vec2& position, const b2Rot& rotation) : p(position), q(rotation) {} + + /// Set this to the identity transform. + void SetIdentity() + { + p.SetZero(); + q.SetIdentity(); + } + + /// Set this based on the position and angle. + void Set(const b2Vec2& position, float32 angle) + { + p = position; + q.Set(angle); + } + + b2Vec2 p; + b2Rot q; +}; + +/// This describes the motion of a body/shape for TOI computation. +/// Shapes are defined with respect to the body origin, which may +/// no coincide with the center of mass. However, to support dynamics +/// we must interpolate the center of mass position. +struct b2Sweep +{ + /// Get the interpolated transform at a specific time. + /// @param beta is a factor in [0,1], where 0 indicates alpha0. + void GetTransform(b2Transform* xfb, float32 beta) const; + + /// Advance the sweep forward, yielding a new initial state. + /// @param alpha the new initial time. + void Advance(float32 alpha); + + /// Normalize the angles. + void Normalize(); + + b2Vec2 localCenter; ///< local center of mass position + b2Vec2 c0, c; ///< center world positions + float32 a0, a; ///< world angles + + /// Fraction of the current time step in the range [0,1] + /// c0 and a0 are the positions at alpha0. + float32 alpha0; +}; + +/// Useful constant +extern const b2Vec2 b2Vec2_zero; + +/// Perform the dot product on two vectors. +inline float32 b2Dot(const b2Vec2& a, const b2Vec2& b) +{ + return a.x * b.x + a.y * b.y; +} + +/// Perform the cross product on two vectors. In 2D this produces a scalar. +inline float32 b2Cross(const b2Vec2& a, const b2Vec2& b) +{ + return a.x * b.y - a.y * b.x; +} + +/// Perform the cross product on a vector and a scalar. In 2D this produces +/// a vector. +inline b2Vec2 b2Cross(const b2Vec2& a, float32 s) +{ + return b2Vec2(s * a.y, -s * a.x); +} + +/// Perform the cross product on a scalar and a vector. In 2D this produces +/// a vector. +inline b2Vec2 b2Cross(float32 s, const b2Vec2& a) +{ + return b2Vec2(-s * a.y, s * a.x); +} + +/// Multiply a matrix times a vector. If a rotation matrix is provided, +/// then this transforms the vector from one frame to another. +inline b2Vec2 b2Mul(const b2Mat22& A, const b2Vec2& v) +{ + return b2Vec2(A.ex.x * v.x + A.ey.x * v.y, A.ex.y * v.x + A.ey.y * v.y); +} + +/// Multiply a matrix transpose times a vector. If a rotation matrix is provided, +/// then this transforms the vector from one frame to another (inverse transform). +inline b2Vec2 b2MulT(const b2Mat22& A, const b2Vec2& v) +{ + return b2Vec2(b2Dot(v, A.ex), b2Dot(v, A.ey)); +} + +/// Add two vectors component-wise. +inline b2Vec2 operator + (const b2Vec2& a, const b2Vec2& b) +{ + return b2Vec2(a.x + b.x, a.y + b.y); +} + +/// Subtract two vectors component-wise. +inline b2Vec2 operator - (const b2Vec2& a, const b2Vec2& b) +{ + return b2Vec2(a.x - b.x, a.y - b.y); +} + +inline b2Vec2 operator * (float32 s, const b2Vec2& a) +{ + return b2Vec2(s * a.x, s * a.y); +} + +inline bool operator == (const b2Vec2& a, const b2Vec2& b) +{ + return a.x == b.x && a.y == b.y; +} + +inline float32 b2Distance(const b2Vec2& a, const b2Vec2& b) +{ + b2Vec2 c = a - b; + return c.Length(); +} + +inline float32 b2DistanceSquared(const b2Vec2& a, const b2Vec2& b) +{ + b2Vec2 c = a - b; + return b2Dot(c, c); +} + +inline b2Vec3 operator * (float32 s, const b2Vec3& a) +{ + return b2Vec3(s * a.x, s * a.y, s * a.z); +} + +/// Add two vectors component-wise. +inline b2Vec3 operator + (const b2Vec3& a, const b2Vec3& b) +{ + return b2Vec3(a.x + b.x, a.y + b.y, a.z + b.z); +} + +/// Subtract two vectors component-wise. +inline b2Vec3 operator - (const b2Vec3& a, const b2Vec3& b) +{ + return b2Vec3(a.x - b.x, a.y - b.y, a.z - b.z); +} + +/// Perform the dot product on two vectors. +inline float32 b2Dot(const b2Vec3& a, const b2Vec3& b) +{ + return a.x * b.x + a.y * b.y + a.z * b.z; +} + +/// Perform the cross product on two vectors. +inline b2Vec3 b2Cross(const b2Vec3& a, const b2Vec3& b) +{ + return b2Vec3(a.y * b.z - a.z * b.y, a.z * b.x - a.x * b.z, a.x * b.y - a.y * b.x); +} + +inline b2Mat22 operator + (const b2Mat22& A, const b2Mat22& B) +{ + return b2Mat22(A.ex + B.ex, A.ey + B.ey); +} + +// A * B +inline b2Mat22 b2Mul(const b2Mat22& A, const b2Mat22& B) +{ + return b2Mat22(b2Mul(A, B.ex), b2Mul(A, B.ey)); +} + +// A^T * B +inline b2Mat22 b2MulT(const b2Mat22& A, const b2Mat22& B) +{ + b2Vec2 c1(b2Dot(A.ex, B.ex), b2Dot(A.ey, B.ex)); + b2Vec2 c2(b2Dot(A.ex, B.ey), b2Dot(A.ey, B.ey)); + return b2Mat22(c1, c2); +} + +/// Multiply a matrix times a vector. +inline b2Vec3 b2Mul(const b2Mat33& A, const b2Vec3& v) +{ + return v.x * A.ex + v.y * A.ey + v.z * A.ez; +} + +/// Multiply a matrix times a vector. +inline b2Vec2 b2Mul22(const b2Mat33& A, const b2Vec2& v) +{ + return b2Vec2(A.ex.x * v.x + A.ey.x * v.y, A.ex.y * v.x + A.ey.y * v.y); +} + +/// Multiply two rotations: q * r +inline b2Rot b2Mul(const b2Rot& q, const b2Rot& r) +{ + // [qc -qs] * [rc -rs] = [qc*rc-qs*rs -qc*rs-qs*rc] + // [qs qc] [rs rc] [qs*rc+qc*rs -qs*rs+qc*rc] + // s = qs * rc + qc * rs + // c = qc * rc - qs * rs + b2Rot qr; + qr.s = q.s * r.c + q.c * r.s; + qr.c = q.c * r.c - q.s * r.s; + return qr; +} + +/// Transpose multiply two rotations: qT * r +inline b2Rot b2MulT(const b2Rot& q, const b2Rot& r) +{ + // [ qc qs] * [rc -rs] = [qc*rc+qs*rs -qc*rs+qs*rc] + // [-qs qc] [rs rc] [-qs*rc+qc*rs qs*rs+qc*rc] + // s = qc * rs - qs * rc + // c = qc * rc + qs * rs + b2Rot qr; + qr.s = q.c * r.s - q.s * r.c; + qr.c = q.c * r.c + q.s * r.s; + return qr; +} + +/// Rotate a vector +inline b2Vec2 b2Mul(const b2Rot& q, const b2Vec2& v) +{ + return b2Vec2(q.c * v.x - q.s * v.y, q.s * v.x + q.c * v.y); +} + +/// Inverse rotate a vector +inline b2Vec2 b2MulT(const b2Rot& q, const b2Vec2& v) +{ + return b2Vec2(q.c * v.x + q.s * v.y, -q.s * v.x + q.c * v.y); +} + +inline b2Vec2 b2Mul(const b2Transform& T, const b2Vec2& v) +{ + float32 x = (T.q.c * v.x - T.q.s * v.y) + T.p.x; + float32 y = (T.q.s * v.x + T.q.c * v.y) + T.p.y; + + return b2Vec2(x, y); +} + +inline b2Vec2 b2MulT(const b2Transform& T, const b2Vec2& v) +{ + float32 px = v.x - T.p.x; + float32 py = v.y - T.p.y; + float32 x = (T.q.c * px + T.q.s * py); + float32 y = (-T.q.s * px + T.q.c * py); + + return b2Vec2(x, y); +} + +// v2 = A.q.Rot(B.q.Rot(v1) + B.p) + A.p +// = (A.q * B.q).Rot(v1) + A.q.Rot(B.p) + A.p +inline b2Transform b2Mul(const b2Transform& A, const b2Transform& B) +{ + b2Transform C; + C.q = b2Mul(A.q, B.q); + C.p = b2Mul(A.q, B.p) + A.p; + return C; +} + +// v2 = A.q' * (B.q * v1 + B.p - A.p) +// = A.q' * B.q * v1 + A.q' * (B.p - A.p) +inline b2Transform b2MulT(const b2Transform& A, const b2Transform& B) +{ + b2Transform C; + C.q = b2MulT(A.q, B.q); + C.p = b2MulT(A.q, B.p - A.p); + return C; +} + +template +inline T b2Abs(T a) +{ + return a > T(0) ? a : -a; +} + +inline b2Vec2 b2Abs(const b2Vec2& a) +{ + return b2Vec2(b2Abs(a.x), b2Abs(a.y)); +} + +inline b2Mat22 b2Abs(const b2Mat22& A) +{ + return b2Mat22(b2Abs(A.ex), b2Abs(A.ey)); +} + +template +inline T b2Min(T a, T b) +{ + return a < b ? a : b; +} + +inline b2Vec2 b2Min(const b2Vec2& a, const b2Vec2& b) +{ + return b2Vec2(b2Min(a.x, b.x), b2Min(a.y, b.y)); +} + +template +inline T b2Max(T a, T b) +{ + return a > b ? a : b; +} + +inline b2Vec2 b2Max(const b2Vec2& a, const b2Vec2& b) +{ + return b2Vec2(b2Max(a.x, b.x), b2Max(a.y, b.y)); +} + +template +inline T b2Clamp(T a, T low, T high) +{ + return b2Max(low, b2Min(a, high)); +} + +inline b2Vec2 b2Clamp(const b2Vec2& a, const b2Vec2& low, const b2Vec2& high) +{ + return b2Max(low, b2Min(a, high)); +} + +template inline void b2Swap(T& a, T& b) +{ + T tmp = a; + a = b; + b = tmp; +} + +/// "Next Largest Power of 2 +/// Given a binary integer value x, the next largest power of 2 can be computed by a SWAR algorithm +/// that recursively "folds" the upper bits into the lower bits. This process yields a bit vector with +/// the same most significant 1 as x, but all 1's below it. Adding 1 to that value yields the next +/// largest power of 2. For a 32-bit value:" +inline uint32 b2NextPowerOfTwo(uint32 x) +{ + x |= (x >> 1); + x |= (x >> 2); + x |= (x >> 4); + x |= (x >> 8); + x |= (x >> 16); + return x + 1; +} + +inline bool b2IsPowerOfTwo(uint32 x) +{ + bool result = x > 0 && (x & (x - 1)) == 0; + return result; +} + +inline void b2Sweep::GetTransform(b2Transform* xf, float32 beta) const +{ + xf->p = (1.0f - beta) * c0 + beta * c; + float32 angle = (1.0f - beta) * a0 + beta * a; + xf->q.Set(angle); + + // Shift to origin + xf->p -= b2Mul(xf->q, localCenter); +} + +inline void b2Sweep::Advance(float32 alpha) +{ + b2Assert(alpha0 < 1.0f); + float32 beta = (alpha - alpha0) / (1.0f - alpha0); + c0 += beta * (c - c0); + a0 += beta * (a - a0); + alpha0 = alpha; +} + +/// Normalize an angle in radians to be between -pi and pi +inline void b2Sweep::Normalize() +{ + float32 twoPi = 2.0f * b2_pi; + float32 d = twoPi * floorf(a0 / twoPi); + a0 -= d; + a -= d; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp new file mode 100644 index 0000000..01c921f --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp @@ -0,0 +1,53 @@ +/* +* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include +#include + +#include + +b2Contact* b2ChainAndCircleContact::Create(b2Fixture* fixtureA, int32 indexA, b2Fixture* fixtureB, int32 indexB, b2BlockAllocator* allocator) +{ + void* mem = allocator->Allocate(sizeof(b2ChainAndCircleContact)); + return new (mem) b2ChainAndCircleContact(fixtureA, indexA, fixtureB, indexB); +} + +void b2ChainAndCircleContact::Destroy(b2Contact* contact, b2BlockAllocator* allocator) +{ + ((b2ChainAndCircleContact*)contact)->~b2ChainAndCircleContact(); + allocator->Free(contact, sizeof(b2ChainAndCircleContact)); +} + +b2ChainAndCircleContact::b2ChainAndCircleContact(b2Fixture* fixtureA, int32 indexA, b2Fixture* fixtureB, int32 indexB) +: b2Contact(fixtureA, indexA, fixtureB, indexB) +{ + b2Assert(m_fixtureA->GetType() == b2Shape::e_chain); + b2Assert(m_fixtureB->GetType() == b2Shape::e_circle); +} + +void b2ChainAndCircleContact::Evaluate(b2Manifold* manifold, const b2Transform& xfA, const b2Transform& xfB) +{ + b2ChainShape* chain = (b2ChainShape*)m_fixtureA->GetShape(); + b2EdgeShape edge; + chain->GetChildEdge(&edge, m_indexA); + b2CollideEdgeAndCircle( manifold, &edge, xfA, + (b2CircleShape*)m_fixtureB->GetShape(), xfB); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h new file mode 100644 index 0000000..b93c30e --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h @@ -0,0 +1,39 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_CHAIN_AND_CIRCLE_CONTACT_H +#define B2_CHAIN_AND_CIRCLE_CONTACT_H + +#include + +class b2BlockAllocator; + +class b2ChainAndCircleContact : public b2Contact +{ +public: + static b2Contact* Create( b2Fixture* fixtureA, int32 indexA, + b2Fixture* fixtureB, int32 indexB, b2BlockAllocator* allocator); + static void Destroy(b2Contact* contact, b2BlockAllocator* allocator); + + b2ChainAndCircleContact(b2Fixture* fixtureA, int32 indexA, b2Fixture* fixtureB, int32 indexB); + ~b2ChainAndCircleContact() {} + + void Evaluate(b2Manifold* manifold, const b2Transform& xfA, const b2Transform& xfB); +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp new file mode 100644 index 0000000..4642fa4 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp @@ -0,0 +1,53 @@ +/* +* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include +#include + +#include + +b2Contact* b2ChainAndPolygonContact::Create(b2Fixture* fixtureA, int32 indexA, b2Fixture* fixtureB, int32 indexB, b2BlockAllocator* allocator) +{ + void* mem = allocator->Allocate(sizeof(b2ChainAndPolygonContact)); + return new (mem) b2ChainAndPolygonContact(fixtureA, indexA, fixtureB, indexB); +} + +void b2ChainAndPolygonContact::Destroy(b2Contact* contact, b2BlockAllocator* allocator) +{ + ((b2ChainAndPolygonContact*)contact)->~b2ChainAndPolygonContact(); + allocator->Free(contact, sizeof(b2ChainAndPolygonContact)); +} + +b2ChainAndPolygonContact::b2ChainAndPolygonContact(b2Fixture* fixtureA, int32 indexA, b2Fixture* fixtureB, int32 indexB) +: b2Contact(fixtureA, indexA, fixtureB, indexB) +{ + b2Assert(m_fixtureA->GetType() == b2Shape::e_chain); + b2Assert(m_fixtureB->GetType() == b2Shape::e_polygon); +} + +void b2ChainAndPolygonContact::Evaluate(b2Manifold* manifold, const b2Transform& xfA, const b2Transform& xfB) +{ + b2ChainShape* chain = (b2ChainShape*)m_fixtureA->GetShape(); + b2EdgeShape edge; + chain->GetChildEdge(&edge, m_indexA); + b2CollideEdgeAndPolygon( manifold, &edge, xfA, + (b2PolygonShape*)m_fixtureB->GetShape(), xfB); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h new file mode 100644 index 0000000..0c09af6 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h @@ -0,0 +1,39 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_CHAIN_AND_POLYGON_CONTACT_H +#define B2_CHAIN_AND_POLYGON_CONTACT_H + +#include + +class b2BlockAllocator; + +class b2ChainAndPolygonContact : public b2Contact +{ +public: + static b2Contact* Create( b2Fixture* fixtureA, int32 indexA, + b2Fixture* fixtureB, int32 indexB, b2BlockAllocator* allocator); + static void Destroy(b2Contact* contact, b2BlockAllocator* allocator); + + b2ChainAndPolygonContact(b2Fixture* fixtureA, int32 indexA, b2Fixture* fixtureB, int32 indexB); + ~b2ChainAndPolygonContact() {} + + void Evaluate(b2Manifold* manifold, const b2Transform& xfA, const b2Transform& xfB); +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2CircleContact.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2CircleContact.cpp new file mode 100644 index 0000000..b47f35a --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2CircleContact.cpp @@ -0,0 +1,52 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include +#include +#include + +#include + +b2Contact* b2CircleContact::Create(b2Fixture* fixtureA, int32, b2Fixture* fixtureB, int32, b2BlockAllocator* allocator) +{ + void* mem = allocator->Allocate(sizeof(b2CircleContact)); + return new (mem) b2CircleContact(fixtureA, fixtureB); +} + +void b2CircleContact::Destroy(b2Contact* contact, b2BlockAllocator* allocator) +{ + ((b2CircleContact*)contact)->~b2CircleContact(); + allocator->Free(contact, sizeof(b2CircleContact)); +} + +b2CircleContact::b2CircleContact(b2Fixture* fixtureA, b2Fixture* fixtureB) + : b2Contact(fixtureA, 0, fixtureB, 0) +{ + b2Assert(m_fixtureA->GetType() == b2Shape::e_circle); + b2Assert(m_fixtureB->GetType() == b2Shape::e_circle); +} + +void b2CircleContact::Evaluate(b2Manifold* manifold, const b2Transform& xfA, const b2Transform& xfB) +{ + b2CollideCircles(manifold, + (b2CircleShape*)m_fixtureA->GetShape(), xfA, + (b2CircleShape*)m_fixtureB->GetShape(), xfB); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2CircleContact.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2CircleContact.h new file mode 100644 index 0000000..079d3ab --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2CircleContact.h @@ -0,0 +1,39 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_CIRCLE_CONTACT_H +#define B2_CIRCLE_CONTACT_H + +#include + +class b2BlockAllocator; + +class b2CircleContact : public b2Contact +{ +public: + static b2Contact* Create( b2Fixture* fixtureA, int32 indexA, + b2Fixture* fixtureB, int32 indexB, b2BlockAllocator* allocator); + static void Destroy(b2Contact* contact, b2BlockAllocator* allocator); + + b2CircleContact(b2Fixture* fixtureA, b2Fixture* fixtureB); + ~b2CircleContact() {} + + void Evaluate(b2Manifold* manifold, const b2Transform& xfA, const b2Transform& xfB); +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2Contact.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2Contact.cpp new file mode 100644 index 0000000..d9f1021 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2Contact.cpp @@ -0,0 +1,247 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +b2ContactRegister b2Contact::s_registers[b2Shape::e_typeCount][b2Shape::e_typeCount]; +bool b2Contact::s_initialized = false; + +void b2Contact::InitializeRegisters() +{ + AddType(b2CircleContact::Create, b2CircleContact::Destroy, b2Shape::e_circle, b2Shape::e_circle); + AddType(b2PolygonAndCircleContact::Create, b2PolygonAndCircleContact::Destroy, b2Shape::e_polygon, b2Shape::e_circle); + AddType(b2PolygonContact::Create, b2PolygonContact::Destroy, b2Shape::e_polygon, b2Shape::e_polygon); + AddType(b2EdgeAndCircleContact::Create, b2EdgeAndCircleContact::Destroy, b2Shape::e_edge, b2Shape::e_circle); + AddType(b2EdgeAndPolygonContact::Create, b2EdgeAndPolygonContact::Destroy, b2Shape::e_edge, b2Shape::e_polygon); + AddType(b2ChainAndCircleContact::Create, b2ChainAndCircleContact::Destroy, b2Shape::e_chain, b2Shape::e_circle); + AddType(b2ChainAndPolygonContact::Create, b2ChainAndPolygonContact::Destroy, b2Shape::e_chain, b2Shape::e_polygon); +} + +void b2Contact::AddType(b2ContactCreateFcn* createFcn, b2ContactDestroyFcn* destoryFcn, + b2Shape::Type type1, b2Shape::Type type2) +{ + b2Assert(0 <= type1 && type1 < b2Shape::e_typeCount); + b2Assert(0 <= type2 && type2 < b2Shape::e_typeCount); + + s_registers[type1][type2].createFcn = createFcn; + s_registers[type1][type2].destroyFcn = destoryFcn; + s_registers[type1][type2].primary = true; + + if (type1 != type2) + { + s_registers[type2][type1].createFcn = createFcn; + s_registers[type2][type1].destroyFcn = destoryFcn; + s_registers[type2][type1].primary = false; + } +} + +b2Contact* b2Contact::Create(b2Fixture* fixtureA, int32 indexA, b2Fixture* fixtureB, int32 indexB, b2BlockAllocator* allocator) +{ + if (s_initialized == false) + { + InitializeRegisters(); + s_initialized = true; + } + + b2Shape::Type type1 = fixtureA->GetType(); + b2Shape::Type type2 = fixtureB->GetType(); + + b2Assert(0 <= type1 && type1 < b2Shape::e_typeCount); + b2Assert(0 <= type2 && type2 < b2Shape::e_typeCount); + + b2ContactCreateFcn* createFcn = s_registers[type1][type2].createFcn; + if (createFcn) + { + if (s_registers[type1][type2].primary) + { + return createFcn(fixtureA, indexA, fixtureB, indexB, allocator); + } + else + { + return createFcn(fixtureB, indexB, fixtureA, indexA, allocator); + } + } + else + { + return NULL; + } +} + +void b2Contact::Destroy(b2Contact* contact, b2BlockAllocator* allocator) +{ + b2Assert(s_initialized == true); + + b2Fixture* fixtureA = contact->m_fixtureA; + b2Fixture* fixtureB = contact->m_fixtureB; + + if (contact->m_manifold.pointCount > 0 && + fixtureA->IsSensor() == false && + fixtureB->IsSensor() == false) + { + fixtureA->GetBody()->SetAwake(true); + fixtureB->GetBody()->SetAwake(true); + } + + b2Shape::Type typeA = fixtureA->GetType(); + b2Shape::Type typeB = fixtureB->GetType(); + + b2Assert(0 <= typeA && typeB < b2Shape::e_typeCount); + b2Assert(0 <= typeA && typeB < b2Shape::e_typeCount); + + b2ContactDestroyFcn* destroyFcn = s_registers[typeA][typeB].destroyFcn; + destroyFcn(contact, allocator); +} + +b2Contact::b2Contact(b2Fixture* fA, int32 indexA, b2Fixture* fB, int32 indexB) +{ + m_flags = e_enabledFlag; + + m_fixtureA = fA; + m_fixtureB = fB; + + m_indexA = indexA; + m_indexB = indexB; + + m_manifold.pointCount = 0; + + m_prev = NULL; + m_next = NULL; + + m_nodeA.contact = NULL; + m_nodeA.prev = NULL; + m_nodeA.next = NULL; + m_nodeA.other = NULL; + + m_nodeB.contact = NULL; + m_nodeB.prev = NULL; + m_nodeB.next = NULL; + m_nodeB.other = NULL; + + m_toiCount = 0; + + m_friction = b2MixFriction(m_fixtureA->m_friction, m_fixtureB->m_friction); + m_restitution = b2MixRestitution(m_fixtureA->m_restitution, m_fixtureB->m_restitution); + + m_tangentSpeed = 0.0f; +} + +// Update the contact manifold and touching status. +// Note: do not assume the fixture AABBs are overlapping or are valid. +void b2Contact::Update(b2ContactListener* listener) +{ + b2Manifold oldManifold = m_manifold; + + // Re-enable this contact. + m_flags |= e_enabledFlag; + + bool touching = false; + bool wasTouching = (m_flags & e_touchingFlag) == e_touchingFlag; + + bool sensorA = m_fixtureA->IsSensor(); + bool sensorB = m_fixtureB->IsSensor(); + bool sensor = sensorA || sensorB; + + b2Body* bodyA = m_fixtureA->GetBody(); + b2Body* bodyB = m_fixtureB->GetBody(); + const b2Transform& xfA = bodyA->GetTransform(); + const b2Transform& xfB = bodyB->GetTransform(); + + // Is this contact a sensor? + if (sensor) + { + const b2Shape* shapeA = m_fixtureA->GetShape(); + const b2Shape* shapeB = m_fixtureB->GetShape(); + touching = b2TestOverlap(shapeA, m_indexA, shapeB, m_indexB, xfA, xfB); + + // Sensors don't generate manifolds. + m_manifold.pointCount = 0; + } + else + { + Evaluate(&m_manifold, xfA, xfB); + touching = m_manifold.pointCount > 0; + + // Match old contact ids to new contact ids and copy the + // stored impulses to warm start the solver. + for (int32 i = 0; i < m_manifold.pointCount; ++i) + { + b2ManifoldPoint* mp2 = m_manifold.points + i; + mp2->normalImpulse = 0.0f; + mp2->tangentImpulse = 0.0f; + b2ContactID id2 = mp2->id; + + for (int32 j = 0; j < oldManifold.pointCount; ++j) + { + b2ManifoldPoint* mp1 = oldManifold.points + j; + + if (mp1->id.key == id2.key) + { + mp2->normalImpulse = mp1->normalImpulse; + mp2->tangentImpulse = mp1->tangentImpulse; + break; + } + } + } + + if (touching != wasTouching) + { + bodyA->SetAwake(true); + bodyB->SetAwake(true); + } + } + + if (touching) + { + m_flags |= e_touchingFlag; + } + else + { + m_flags &= ~e_touchingFlag; + } + + if (wasTouching == false && touching == true && listener) + { + listener->BeginContact(this); + } + + if (wasTouching == true && touching == false && listener) + { + listener->EndContact(this); + } + + if (sensor == false && touching && listener) + { + listener->PreSolve(this, &oldManifold); + } +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2Contact.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2Contact.h new file mode 100644 index 0000000..a5015e9 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2Contact.h @@ -0,0 +1,349 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_CONTACT_H +#define B2_CONTACT_H + +#include "Common/b2Math.h" +#include "Collision/b2Collision.h" +#include "Collision/Shapes/b2Shape.h" +#include "Dynamics/b2Fixture.h" + +class b2Body; +class b2Contact; +class b2Fixture; +class b2World; +class b2BlockAllocator; +class b2StackAllocator; +class b2ContactListener; + +/// Friction mixing law. The idea is to allow either fixture to drive the restitution to zero. +/// For example, anything slides on ice. +inline float32 b2MixFriction(float32 friction1, float32 friction2) +{ + return b2Sqrt(friction1 * friction2); +} + +/// Restitution mixing law. The idea is allow for anything to bounce off an inelastic surface. +/// For example, a superball bounces on anything. +inline float32 b2MixRestitution(float32 restitution1, float32 restitution2) +{ + return restitution1 > restitution2 ? restitution1 : restitution2; +} + +typedef b2Contact* b2ContactCreateFcn( b2Fixture* fixtureA, int32 indexA, + b2Fixture* fixtureB, int32 indexB, + b2BlockAllocator* allocator); +typedef void b2ContactDestroyFcn(b2Contact* contact, b2BlockAllocator* allocator); + +struct b2ContactRegister +{ + b2ContactCreateFcn* createFcn; + b2ContactDestroyFcn* destroyFcn; + bool primary; +}; + +/// A contact edge is used to connect bodies and contacts together +/// in a contact graph where each body is a node and each contact +/// is an edge. A contact edge belongs to a doubly linked list +/// maintained in each attached body. Each contact has two contact +/// nodes, one for each attached body. +struct b2ContactEdge +{ + b2Body* other; ///< provides quick access to the other body attached. + b2Contact* contact; ///< the contact + b2ContactEdge* prev; ///< the previous contact edge in the body's contact list + b2ContactEdge* next; ///< the next contact edge in the body's contact list +}; + +/// The class manages contact between two shapes. A contact exists for each overlapping +/// AABB in the broad-phase (except if filtered). Therefore a contact object may exist +/// that has no contact points. +class b2Contact +{ +public: + + /// Get the contact manifold. Do not modify the manifold unless you understand the + /// internals of Box2D. + b2Manifold* GetManifold(); + const b2Manifold* GetManifold() const; + + /// Get the world manifold. + void GetWorldManifold(b2WorldManifold* worldManifold) const; + + /// Is this contact touching? + bool IsTouching() const; + + /// Enable/disable this contact. This can be used inside the pre-solve + /// contact listener. The contact is only disabled for the current + /// time step (or sub-step in continuous collisions). + void SetEnabled(bool flag); + + /// Has this contact been disabled? + bool IsEnabled() const; + + /// Get the next contact in the world's contact list. + b2Contact* GetNext(); + const b2Contact* GetNext() const; + + /// Get fixture A in this contact. + b2Fixture* GetFixtureA(); + const b2Fixture* GetFixtureA() const; + + /// Get the child primitive index for fixture A. + int32 GetChildIndexA() const; + + /// Get fixture B in this contact. + b2Fixture* GetFixtureB(); + const b2Fixture* GetFixtureB() const; + + /// Get the child primitive index for fixture B. + int32 GetChildIndexB() const; + + /// Override the default friction mixture. You can call this in b2ContactListener::PreSolve. + /// This value persists until set or reset. + void SetFriction(float32 friction); + + /// Get the friction. + float32 GetFriction() const; + + /// Reset the friction mixture to the default value. + void ResetFriction(); + + /// Override the default restitution mixture. You can call this in b2ContactListener::PreSolve. + /// The value persists until you set or reset. + void SetRestitution(float32 restitution); + + /// Get the restitution. + float32 GetRestitution() const; + + /// Reset the restitution to the default value. + void ResetRestitution(); + + /// Set the desired tangent speed for a conveyor belt behavior. In meters per second. + void SetTangentSpeed(float32 speed); + + /// Get the desired tangent speed. In meters per second. + float32 GetTangentSpeed() const; + + /// Evaluate this contact with your own manifold and transforms. + virtual void Evaluate(b2Manifold* manifold, const b2Transform& xfA, const b2Transform& xfB) = 0; + +protected: + friend class b2ContactManager; + friend class b2World; + friend class b2ContactSolver; + friend class b2Body; + friend class b2Fixture; + + // Flags stored in m_flags + enum + { + // Used when crawling contact graph when forming islands. + e_islandFlag = 0x0001, + + // Set when the shapes are touching. + e_touchingFlag = 0x0002, + + // This contact can be disabled (by user) + e_enabledFlag = 0x0004, + + // This contact needs filtering because a fixture filter was changed. + e_filterFlag = 0x0008, + + // This bullet contact had a TOI event + e_bulletHitFlag = 0x0010, + + // This contact has a valid TOI in m_toi + e_toiFlag = 0x0020 + }; + + /// Flag this contact for filtering. Filtering will occur the next time step. + void FlagForFiltering(); + + static void AddType(b2ContactCreateFcn* createFcn, b2ContactDestroyFcn* destroyFcn, + b2Shape::Type typeA, b2Shape::Type typeB); + static void InitializeRegisters(); + static b2Contact* Create(b2Fixture* fixtureA, int32 indexA, b2Fixture* fixtureB, int32 indexB, b2BlockAllocator* allocator); + static void Destroy(b2Contact* contact, b2Shape::Type typeA, b2Shape::Type typeB, b2BlockAllocator* allocator); + static void Destroy(b2Contact* contact, b2BlockAllocator* allocator); + + b2Contact() : m_fixtureA(NULL), m_fixtureB(NULL) {} + b2Contact(b2Fixture* fixtureA, int32 indexA, b2Fixture* fixtureB, int32 indexB); + virtual ~b2Contact() {} + + void Update(b2ContactListener* listener); + + static b2ContactRegister s_registers[b2Shape::e_typeCount][b2Shape::e_typeCount]; + static bool s_initialized; + + uint32 m_flags; + + // World pool and list pointers. + b2Contact* m_prev; + b2Contact* m_next; + + // Nodes for connecting bodies. + b2ContactEdge m_nodeA; + b2ContactEdge m_nodeB; + + b2Fixture* m_fixtureA; + b2Fixture* m_fixtureB; + + int32 m_indexA; + int32 m_indexB; + + b2Manifold m_manifold; + + int32 m_toiCount; + float32 m_toi; + + float32 m_friction; + float32 m_restitution; + + float32 m_tangentSpeed; +}; + +inline b2Manifold* b2Contact::GetManifold() +{ + return &m_manifold; +} + +inline const b2Manifold* b2Contact::GetManifold() const +{ + return &m_manifold; +} + +inline void b2Contact::GetWorldManifold(b2WorldManifold* worldManifold) const +{ + const b2Body* bodyA = m_fixtureA->GetBody(); + const b2Body* bodyB = m_fixtureB->GetBody(); + const b2Shape* shapeA = m_fixtureA->GetShape(); + const b2Shape* shapeB = m_fixtureB->GetShape(); + + worldManifold->Initialize(&m_manifold, bodyA->GetTransform(), shapeA->m_radius, bodyB->GetTransform(), shapeB->m_radius); +} + +inline void b2Contact::SetEnabled(bool flag) +{ + if (flag) + { + m_flags |= e_enabledFlag; + } + else + { + m_flags &= ~e_enabledFlag; + } +} + +inline bool b2Contact::IsEnabled() const +{ + return (m_flags & e_enabledFlag) == e_enabledFlag; +} + +inline bool b2Contact::IsTouching() const +{ + return (m_flags & e_touchingFlag) == e_touchingFlag; +} + +inline b2Contact* b2Contact::GetNext() +{ + return m_next; +} + +inline const b2Contact* b2Contact::GetNext() const +{ + return m_next; +} + +inline b2Fixture* b2Contact::GetFixtureA() +{ + return m_fixtureA; +} + +inline const b2Fixture* b2Contact::GetFixtureA() const +{ + return m_fixtureA; +} + +inline b2Fixture* b2Contact::GetFixtureB() +{ + return m_fixtureB; +} + +inline int32 b2Contact::GetChildIndexA() const +{ + return m_indexA; +} + +inline const b2Fixture* b2Contact::GetFixtureB() const +{ + return m_fixtureB; +} + +inline int32 b2Contact::GetChildIndexB() const +{ + return m_indexB; +} + +inline void b2Contact::FlagForFiltering() +{ + m_flags |= e_filterFlag; +} + +inline void b2Contact::SetFriction(float32 friction) +{ + m_friction = friction; +} + +inline float32 b2Contact::GetFriction() const +{ + return m_friction; +} + +inline void b2Contact::ResetFriction() +{ + m_friction = b2MixFriction(m_fixtureA->m_friction, m_fixtureB->m_friction); +} + +inline void b2Contact::SetRestitution(float32 restitution) +{ + m_restitution = restitution; +} + +inline float32 b2Contact::GetRestitution() const +{ + return m_restitution; +} + +inline void b2Contact::ResetRestitution() +{ + m_restitution = b2MixRestitution(m_fixtureA->m_restitution, m_fixtureB->m_restitution); +} + +inline void b2Contact::SetTangentSpeed(float32 speed) +{ + m_tangentSpeed = speed; +} + +inline float32 b2Contact::GetTangentSpeed() const +{ + return m_tangentSpeed; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ContactSolver.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ContactSolver.cpp new file mode 100644 index 0000000..e31b6c2 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ContactSolver.cpp @@ -0,0 +1,838 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include + +#include +#include +#include +#include +#include + +#define B2_DEBUG_SOLVER 0 + +bool g_blockSolve = true; + +struct b2ContactPositionConstraint +{ + b2Vec2 localPoints[b2_maxManifoldPoints]; + b2Vec2 localNormal; + b2Vec2 localPoint; + int32 indexA; + int32 indexB; + float32 invMassA, invMassB; + b2Vec2 localCenterA, localCenterB; + float32 invIA, invIB; + b2Manifold::Type type; + float32 radiusA, radiusB; + int32 pointCount; +}; + +b2ContactSolver::b2ContactSolver(b2ContactSolverDef* def) +{ + m_step = def->step; + m_allocator = def->allocator; + m_count = def->count; + m_positionConstraints = (b2ContactPositionConstraint*)m_allocator->Allocate(m_count * sizeof(b2ContactPositionConstraint)); + m_velocityConstraints = (b2ContactVelocityConstraint*)m_allocator->Allocate(m_count * sizeof(b2ContactVelocityConstraint)); + m_positions = def->positions; + m_velocities = def->velocities; + m_contacts = def->contacts; + + // Initialize position independent portions of the constraints. + for (int32 i = 0; i < m_count; ++i) + { + b2Contact* contact = m_contacts[i]; + + b2Fixture* fixtureA = contact->m_fixtureA; + b2Fixture* fixtureB = contact->m_fixtureB; + b2Shape* shapeA = fixtureA->GetShape(); + b2Shape* shapeB = fixtureB->GetShape(); + float32 radiusA = shapeA->m_radius; + float32 radiusB = shapeB->m_radius; + b2Body* bodyA = fixtureA->GetBody(); + b2Body* bodyB = fixtureB->GetBody(); + b2Manifold* manifold = contact->GetManifold(); + + int32 pointCount = manifold->pointCount; + b2Assert(pointCount > 0); + + b2ContactVelocityConstraint* vc = m_velocityConstraints + i; + vc->friction = contact->m_friction; + vc->restitution = contact->m_restitution; + vc->tangentSpeed = contact->m_tangentSpeed; + vc->indexA = bodyA->m_islandIndex; + vc->indexB = bodyB->m_islandIndex; + vc->invMassA = bodyA->m_invMass; + vc->invMassB = bodyB->m_invMass; + vc->invIA = bodyA->m_invI; + vc->invIB = bodyB->m_invI; + vc->contactIndex = i; + vc->pointCount = pointCount; + vc->K.SetZero(); + vc->normalMass.SetZero(); + + b2ContactPositionConstraint* pc = m_positionConstraints + i; + pc->indexA = bodyA->m_islandIndex; + pc->indexB = bodyB->m_islandIndex; + pc->invMassA = bodyA->m_invMass; + pc->invMassB = bodyB->m_invMass; + pc->localCenterA = bodyA->m_sweep.localCenter; + pc->localCenterB = bodyB->m_sweep.localCenter; + pc->invIA = bodyA->m_invI; + pc->invIB = bodyB->m_invI; + pc->localNormal = manifold->localNormal; + pc->localPoint = manifold->localPoint; + pc->pointCount = pointCount; + pc->radiusA = radiusA; + pc->radiusB = radiusB; + pc->type = manifold->type; + + for (int32 j = 0; j < pointCount; ++j) + { + b2ManifoldPoint* cp = manifold->points + j; + b2VelocityConstraintPoint* vcp = vc->points + j; + + if (m_step.warmStarting) + { + vcp->normalImpulse = m_step.dtRatio * cp->normalImpulse; + vcp->tangentImpulse = m_step.dtRatio * cp->tangentImpulse; + } + else + { + vcp->normalImpulse = 0.0f; + vcp->tangentImpulse = 0.0f; + } + + vcp->rA.SetZero(); + vcp->rB.SetZero(); + vcp->normalMass = 0.0f; + vcp->tangentMass = 0.0f; + vcp->velocityBias = 0.0f; + + pc->localPoints[j] = cp->localPoint; + } + } +} + +b2ContactSolver::~b2ContactSolver() +{ + m_allocator->Free(m_velocityConstraints); + m_allocator->Free(m_positionConstraints); +} + +// Initialize position dependent portions of the velocity constraints. +void b2ContactSolver::InitializeVelocityConstraints() +{ + for (int32 i = 0; i < m_count; ++i) + { + b2ContactVelocityConstraint* vc = m_velocityConstraints + i; + b2ContactPositionConstraint* pc = m_positionConstraints + i; + + float32 radiusA = pc->radiusA; + float32 radiusB = pc->radiusB; + b2Manifold* manifold = m_contacts[vc->contactIndex]->GetManifold(); + + int32 indexA = vc->indexA; + int32 indexB = vc->indexB; + + float32 mA = vc->invMassA; + float32 mB = vc->invMassB; + float32 iA = vc->invIA; + float32 iB = vc->invIB; + b2Vec2 localCenterA = pc->localCenterA; + b2Vec2 localCenterB = pc->localCenterB; + + b2Vec2 cA = m_positions[indexA].c; + float32 aA = m_positions[indexA].a; + b2Vec2 vA = m_velocities[indexA].v; + float32 wA = m_velocities[indexA].w; + + b2Vec2 cB = m_positions[indexB].c; + float32 aB = m_positions[indexB].a; + b2Vec2 vB = m_velocities[indexB].v; + float32 wB = m_velocities[indexB].w; + + b2Assert(manifold->pointCount > 0); + + b2Transform xfA, xfB; + xfA.q.Set(aA); + xfB.q.Set(aB); + xfA.p = cA - b2Mul(xfA.q, localCenterA); + xfB.p = cB - b2Mul(xfB.q, localCenterB); + + b2WorldManifold worldManifold; + worldManifold.Initialize(manifold, xfA, radiusA, xfB, radiusB); + + vc->normal = worldManifold.normal; + + int32 pointCount = vc->pointCount; + for (int32 j = 0; j < pointCount; ++j) + { + b2VelocityConstraintPoint* vcp = vc->points + j; + + vcp->rA = worldManifold.points[j] - cA; + vcp->rB = worldManifold.points[j] - cB; + + float32 rnA = b2Cross(vcp->rA, vc->normal); + float32 rnB = b2Cross(vcp->rB, vc->normal); + + float32 kNormal = mA + mB + iA * rnA * rnA + iB * rnB * rnB; + + vcp->normalMass = kNormal > 0.0f ? 1.0f / kNormal : 0.0f; + + b2Vec2 tangent = b2Cross(vc->normal, 1.0f); + + float32 rtA = b2Cross(vcp->rA, tangent); + float32 rtB = b2Cross(vcp->rB, tangent); + + float32 kTangent = mA + mB + iA * rtA * rtA + iB * rtB * rtB; + + vcp->tangentMass = kTangent > 0.0f ? 1.0f / kTangent : 0.0f; + + // Setup a velocity bias for restitution. + vcp->velocityBias = 0.0f; + float32 vRel = b2Dot(vc->normal, vB + b2Cross(wB, vcp->rB) - vA - b2Cross(wA, vcp->rA)); + if (vRel < -b2_velocityThreshold) + { + vcp->velocityBias = -vc->restitution * vRel; + } + } + + // If we have two points, then prepare the block solver. + if (vc->pointCount == 2 && g_blockSolve) + { + b2VelocityConstraintPoint* vcp1 = vc->points + 0; + b2VelocityConstraintPoint* vcp2 = vc->points + 1; + + float32 rn1A = b2Cross(vcp1->rA, vc->normal); + float32 rn1B = b2Cross(vcp1->rB, vc->normal); + float32 rn2A = b2Cross(vcp2->rA, vc->normal); + float32 rn2B = b2Cross(vcp2->rB, vc->normal); + + float32 k11 = mA + mB + iA * rn1A * rn1A + iB * rn1B * rn1B; + float32 k22 = mA + mB + iA * rn2A * rn2A + iB * rn2B * rn2B; + float32 k12 = mA + mB + iA * rn1A * rn2A + iB * rn1B * rn2B; + + // Ensure a reasonable condition number. + const float32 k_maxConditionNumber = 1000.0f; + if (k11 * k11 < k_maxConditionNumber * (k11 * k22 - k12 * k12)) + { + // K is safe to invert. + vc->K.ex.Set(k11, k12); + vc->K.ey.Set(k12, k22); + vc->normalMass = vc->K.GetInverse(); + } + else + { + // The constraints are redundant, just use one. + // TODO_ERIN use deepest? + vc->pointCount = 1; + } + } + } +} + +void b2ContactSolver::WarmStart() +{ + // Warm start. + for (int32 i = 0; i < m_count; ++i) + { + b2ContactVelocityConstraint* vc = m_velocityConstraints + i; + + int32 indexA = vc->indexA; + int32 indexB = vc->indexB; + float32 mA = vc->invMassA; + float32 iA = vc->invIA; + float32 mB = vc->invMassB; + float32 iB = vc->invIB; + int32 pointCount = vc->pointCount; + + b2Vec2 vA = m_velocities[indexA].v; + float32 wA = m_velocities[indexA].w; + b2Vec2 vB = m_velocities[indexB].v; + float32 wB = m_velocities[indexB].w; + + b2Vec2 normal = vc->normal; + b2Vec2 tangent = b2Cross(normal, 1.0f); + + for (int32 j = 0; j < pointCount; ++j) + { + b2VelocityConstraintPoint* vcp = vc->points + j; + b2Vec2 P = vcp->normalImpulse * normal + vcp->tangentImpulse * tangent; + wA -= iA * b2Cross(vcp->rA, P); + vA -= mA * P; + wB += iB * b2Cross(vcp->rB, P); + vB += mB * P; + } + + m_velocities[indexA].v = vA; + m_velocities[indexA].w = wA; + m_velocities[indexB].v = vB; + m_velocities[indexB].w = wB; + } +} + +void b2ContactSolver::SolveVelocityConstraints() +{ + for (int32 i = 0; i < m_count; ++i) + { + b2ContactVelocityConstraint* vc = m_velocityConstraints + i; + + int32 indexA = vc->indexA; + int32 indexB = vc->indexB; + float32 mA = vc->invMassA; + float32 iA = vc->invIA; + float32 mB = vc->invMassB; + float32 iB = vc->invIB; + int32 pointCount = vc->pointCount; + + b2Vec2 vA = m_velocities[indexA].v; + float32 wA = m_velocities[indexA].w; + b2Vec2 vB = m_velocities[indexB].v; + float32 wB = m_velocities[indexB].w; + + b2Vec2 normal = vc->normal; + b2Vec2 tangent = b2Cross(normal, 1.0f); + float32 friction = vc->friction; + + b2Assert(pointCount == 1 || pointCount == 2); + + // Solve tangent constraints first because non-penetration is more important + // than friction. + for (int32 j = 0; j < pointCount; ++j) + { + b2VelocityConstraintPoint* vcp = vc->points + j; + + // Relative velocity at contact + b2Vec2 dv = vB + b2Cross(wB, vcp->rB) - vA - b2Cross(wA, vcp->rA); + + // Compute tangent force + float32 vt = b2Dot(dv, tangent) - vc->tangentSpeed; + float32 lambda = vcp->tangentMass * (-vt); + + // b2Clamp the accumulated force + float32 maxFriction = friction * vcp->normalImpulse; + float32 newImpulse = b2Clamp(vcp->tangentImpulse + lambda, -maxFriction, maxFriction); + lambda = newImpulse - vcp->tangentImpulse; + vcp->tangentImpulse = newImpulse; + + // Apply contact impulse + b2Vec2 P = lambda * tangent; + + vA -= mA * P; + wA -= iA * b2Cross(vcp->rA, P); + + vB += mB * P; + wB += iB * b2Cross(vcp->rB, P); + } + + // Solve normal constraints + if (pointCount == 1 || g_blockSolve == false) + { + for (int32 i = 0; i < pointCount; ++i) + { + b2VelocityConstraintPoint* vcp = vc->points + i; + + // Relative velocity at contact + b2Vec2 dv = vB + b2Cross(wB, vcp->rB) - vA - b2Cross(wA, vcp->rA); + + // Compute normal impulse + float32 vn = b2Dot(dv, normal); + float32 lambda = -vcp->normalMass * (vn - vcp->velocityBias); + + // b2Clamp the accumulated impulse + float32 newImpulse = b2Max(vcp->normalImpulse + lambda, 0.0f); + lambda = newImpulse - vcp->normalImpulse; + vcp->normalImpulse = newImpulse; + + // Apply contact impulse + b2Vec2 P = lambda * normal; + vA -= mA * P; + wA -= iA * b2Cross(vcp->rA, P); + + vB += mB * P; + wB += iB * b2Cross(vcp->rB, P); + } + } + else + { + // Block solver developed in collaboration with Dirk Gregorius (back in 01/07 on Box2D_Lite). + // Build the mini LCP for this contact patch + // + // vn = A * x + b, vn >= 0, , vn >= 0, x >= 0 and vn_i * x_i = 0 with i = 1..2 + // + // A = J * W * JT and J = ( -n, -r1 x n, n, r2 x n ) + // b = vn0 - velocityBias + // + // The system is solved using the "Total enumeration method" (s. Murty). The complementary constraint vn_i * x_i + // implies that we must have in any solution either vn_i = 0 or x_i = 0. So for the 2D contact problem the cases + // vn1 = 0 and vn2 = 0, x1 = 0 and x2 = 0, x1 = 0 and vn2 = 0, x2 = 0 and vn1 = 0 need to be tested. The first valid + // solution that satisfies the problem is chosen. + // + // In order to account of the accumulated impulse 'a' (because of the iterative nature of the solver which only requires + // that the accumulated impulse is clamped and not the incremental impulse) we change the impulse variable (x_i). + // + // Substitute: + // + // x = a + d + // + // a := old total impulse + // x := new total impulse + // d := incremental impulse + // + // For the current iteration we extend the formula for the incremental impulse + // to compute the new total impulse: + // + // vn = A * d + b + // = A * (x - a) + b + // = A * x + b - A * a + // = A * x + b' + // b' = b - A * a; + + b2VelocityConstraintPoint* cp1 = vc->points + 0; + b2VelocityConstraintPoint* cp2 = vc->points + 1; + + b2Vec2 a(cp1->normalImpulse, cp2->normalImpulse); + b2Assert(a.x >= 0.0f && a.y >= 0.0f); + + // Relative velocity at contact + b2Vec2 dv1 = vB + b2Cross(wB, cp1->rB) - vA - b2Cross(wA, cp1->rA); + b2Vec2 dv2 = vB + b2Cross(wB, cp2->rB) - vA - b2Cross(wA, cp2->rA); + + // Compute normal velocity + float32 vn1 = b2Dot(dv1, normal); + float32 vn2 = b2Dot(dv2, normal); + + b2Vec2 b; + b.x = vn1 - cp1->velocityBias; + b.y = vn2 - cp2->velocityBias; + + // Compute b' + b -= b2Mul(vc->K, a); + + const float32 k_errorTol = 1e-3f; + B2_NOT_USED(k_errorTol); + + for (;;) + { + // + // Case 1: vn = 0 + // + // 0 = A * x + b' + // + // Solve for x: + // + // x = - inv(A) * b' + // + b2Vec2 x = - b2Mul(vc->normalMass, b); + + if (x.x >= 0.0f && x.y >= 0.0f) + { + // Get the incremental impulse + b2Vec2 d = x - a; + + // Apply incremental impulse + b2Vec2 P1 = d.x * normal; + b2Vec2 P2 = d.y * normal; + vA -= mA * (P1 + P2); + wA -= iA * (b2Cross(cp1->rA, P1) + b2Cross(cp2->rA, P2)); + + vB += mB * (P1 + P2); + wB += iB * (b2Cross(cp1->rB, P1) + b2Cross(cp2->rB, P2)); + + // Accumulate + cp1->normalImpulse = x.x; + cp2->normalImpulse = x.y; + +#if B2_DEBUG_SOLVER == 1 + // Postconditions + dv1 = vB + b2Cross(wB, cp1->rB) - vA - b2Cross(wA, cp1->rA); + dv2 = vB + b2Cross(wB, cp2->rB) - vA - b2Cross(wA, cp2->rA); + + // Compute normal velocity + vn1 = b2Dot(dv1, normal); + vn2 = b2Dot(dv2, normal); + + b2Assert(b2Abs(vn1 - cp1->velocityBias) < k_errorTol); + b2Assert(b2Abs(vn2 - cp2->velocityBias) < k_errorTol); +#endif + break; + } + + // + // Case 2: vn1 = 0 and x2 = 0 + // + // 0 = a11 * x1 + a12 * 0 + b1' + // vn2 = a21 * x1 + a22 * 0 + b2' + // + x.x = - cp1->normalMass * b.x; + x.y = 0.0f; + vn1 = 0.0f; + vn2 = vc->K.ex.y * x.x + b.y; + + if (x.x >= 0.0f && vn2 >= 0.0f) + { + // Get the incremental impulse + b2Vec2 d = x - a; + + // Apply incremental impulse + b2Vec2 P1 = d.x * normal; + b2Vec2 P2 = d.y * normal; + vA -= mA * (P1 + P2); + wA -= iA * (b2Cross(cp1->rA, P1) + b2Cross(cp2->rA, P2)); + + vB += mB * (P1 + P2); + wB += iB * (b2Cross(cp1->rB, P1) + b2Cross(cp2->rB, P2)); + + // Accumulate + cp1->normalImpulse = x.x; + cp2->normalImpulse = x.y; + +#if B2_DEBUG_SOLVER == 1 + // Postconditions + dv1 = vB + b2Cross(wB, cp1->rB) - vA - b2Cross(wA, cp1->rA); + + // Compute normal velocity + vn1 = b2Dot(dv1, normal); + + b2Assert(b2Abs(vn1 - cp1->velocityBias) < k_errorTol); +#endif + break; + } + + + // + // Case 3: vn2 = 0 and x1 = 0 + // + // vn1 = a11 * 0 + a12 * x2 + b1' + // 0 = a21 * 0 + a22 * x2 + b2' + // + x.x = 0.0f; + x.y = - cp2->normalMass * b.y; + vn1 = vc->K.ey.x * x.y + b.x; + vn2 = 0.0f; + + if (x.y >= 0.0f && vn1 >= 0.0f) + { + // Resubstitute for the incremental impulse + b2Vec2 d = x - a; + + // Apply incremental impulse + b2Vec2 P1 = d.x * normal; + b2Vec2 P2 = d.y * normal; + vA -= mA * (P1 + P2); + wA -= iA * (b2Cross(cp1->rA, P1) + b2Cross(cp2->rA, P2)); + + vB += mB * (P1 + P2); + wB += iB * (b2Cross(cp1->rB, P1) + b2Cross(cp2->rB, P2)); + + // Accumulate + cp1->normalImpulse = x.x; + cp2->normalImpulse = x.y; + +#if B2_DEBUG_SOLVER == 1 + // Postconditions + dv2 = vB + b2Cross(wB, cp2->rB) - vA - b2Cross(wA, cp2->rA); + + // Compute normal velocity + vn2 = b2Dot(dv2, normal); + + b2Assert(b2Abs(vn2 - cp2->velocityBias) < k_errorTol); +#endif + break; + } + + // + // Case 4: x1 = 0 and x2 = 0 + // + // vn1 = b1 + // vn2 = b2; + x.x = 0.0f; + x.y = 0.0f; + vn1 = b.x; + vn2 = b.y; + + if (vn1 >= 0.0f && vn2 >= 0.0f ) + { + // Resubstitute for the incremental impulse + b2Vec2 d = x - a; + + // Apply incremental impulse + b2Vec2 P1 = d.x * normal; + b2Vec2 P2 = d.y * normal; + vA -= mA * (P1 + P2); + wA -= iA * (b2Cross(cp1->rA, P1) + b2Cross(cp2->rA, P2)); + + vB += mB * (P1 + P2); + wB += iB * (b2Cross(cp1->rB, P1) + b2Cross(cp2->rB, P2)); + + // Accumulate + cp1->normalImpulse = x.x; + cp2->normalImpulse = x.y; + + break; + } + + // No solution, give up. This is hit sometimes, but it doesn't seem to matter. + break; + } + } + + m_velocities[indexA].v = vA; + m_velocities[indexA].w = wA; + m_velocities[indexB].v = vB; + m_velocities[indexB].w = wB; + } +} + +void b2ContactSolver::StoreImpulses() +{ + for (int32 i = 0; i < m_count; ++i) + { + b2ContactVelocityConstraint* vc = m_velocityConstraints + i; + b2Manifold* manifold = m_contacts[vc->contactIndex]->GetManifold(); + + for (int32 j = 0; j < vc->pointCount; ++j) + { + manifold->points[j].normalImpulse = vc->points[j].normalImpulse; + manifold->points[j].tangentImpulse = vc->points[j].tangentImpulse; + } + } +} + +struct b2PositionSolverManifold +{ + void Initialize(b2ContactPositionConstraint* pc, const b2Transform& xfA, const b2Transform& xfB, int32 index) + { + b2Assert(pc->pointCount > 0); + + switch (pc->type) + { + case b2Manifold::e_circles: + { + b2Vec2 pointA = b2Mul(xfA, pc->localPoint); + b2Vec2 pointB = b2Mul(xfB, pc->localPoints[0]); + normal = pointB - pointA; + normal.Normalize(); + point = 0.5f * (pointA + pointB); + separation = b2Dot(pointB - pointA, normal) - pc->radiusA - pc->radiusB; + } + break; + + case b2Manifold::e_faceA: + { + normal = b2Mul(xfA.q, pc->localNormal); + b2Vec2 planePoint = b2Mul(xfA, pc->localPoint); + + b2Vec2 clipPoint = b2Mul(xfB, pc->localPoints[index]); + separation = b2Dot(clipPoint - planePoint, normal) - pc->radiusA - pc->radiusB; + point = clipPoint; + } + break; + + case b2Manifold::e_faceB: + { + normal = b2Mul(xfB.q, pc->localNormal); + b2Vec2 planePoint = b2Mul(xfB, pc->localPoint); + + b2Vec2 clipPoint = b2Mul(xfA, pc->localPoints[index]); + separation = b2Dot(clipPoint - planePoint, normal) - pc->radiusA - pc->radiusB; + point = clipPoint; + + // Ensure normal points from A to B + normal = -normal; + } + break; + } + } + + b2Vec2 normal; + b2Vec2 point; + float32 separation; +}; + +// Sequential solver. +bool b2ContactSolver::SolvePositionConstraints() +{ + float32 minSeparation = 0.0f; + + for (int32 i = 0; i < m_count; ++i) + { + b2ContactPositionConstraint* pc = m_positionConstraints + i; + + int32 indexA = pc->indexA; + int32 indexB = pc->indexB; + b2Vec2 localCenterA = pc->localCenterA; + float32 mA = pc->invMassA; + float32 iA = pc->invIA; + b2Vec2 localCenterB = pc->localCenterB; + float32 mB = pc->invMassB; + float32 iB = pc->invIB; + int32 pointCount = pc->pointCount; + + b2Vec2 cA = m_positions[indexA].c; + float32 aA = m_positions[indexA].a; + + b2Vec2 cB = m_positions[indexB].c; + float32 aB = m_positions[indexB].a; + + // Solve normal constraints + for (int32 j = 0; j < pointCount; ++j) + { + b2Transform xfA, xfB; + xfA.q.Set(aA); + xfB.q.Set(aB); + xfA.p = cA - b2Mul(xfA.q, localCenterA); + xfB.p = cB - b2Mul(xfB.q, localCenterB); + + b2PositionSolverManifold psm; + psm.Initialize(pc, xfA, xfB, j); + b2Vec2 normal = psm.normal; + + b2Vec2 point = psm.point; + float32 separation = psm.separation; + + b2Vec2 rA = point - cA; + b2Vec2 rB = point - cB; + + // Track max constraint error. + minSeparation = b2Min(minSeparation, separation); + + // Prevent large corrections and allow slop. + float32 C = b2Clamp(b2_baumgarte * (separation + b2_linearSlop), -b2_maxLinearCorrection, 0.0f); + + // Compute the effective mass. + float32 rnA = b2Cross(rA, normal); + float32 rnB = b2Cross(rB, normal); + float32 K = mA + mB + iA * rnA * rnA + iB * rnB * rnB; + + // Compute normal impulse + float32 impulse = K > 0.0f ? - C / K : 0.0f; + + b2Vec2 P = impulse * normal; + + cA -= mA * P; + aA -= iA * b2Cross(rA, P); + + cB += mB * P; + aB += iB * b2Cross(rB, P); + } + + m_positions[indexA].c = cA; + m_positions[indexA].a = aA; + + m_positions[indexB].c = cB; + m_positions[indexB].a = aB; + } + + // We can't expect minSpeparation >= -b2_linearSlop because we don't + // push the separation above -b2_linearSlop. + return minSeparation >= -3.0f * b2_linearSlop; +} + +// Sequential position solver for position constraints. +bool b2ContactSolver::SolveTOIPositionConstraints(int32 toiIndexA, int32 toiIndexB) +{ + float32 minSeparation = 0.0f; + + for (int32 i = 0; i < m_count; ++i) + { + b2ContactPositionConstraint* pc = m_positionConstraints + i; + + int32 indexA = pc->indexA; + int32 indexB = pc->indexB; + b2Vec2 localCenterA = pc->localCenterA; + b2Vec2 localCenterB = pc->localCenterB; + int32 pointCount = pc->pointCount; + + float32 mA = 0.0f; + float32 iA = 0.0f; + if (indexA == toiIndexA || indexA == toiIndexB) + { + mA = pc->invMassA; + iA = pc->invIA; + } + + float32 mB = 0.0f; + float32 iB = 0.; + if (indexB == toiIndexA || indexB == toiIndexB) + { + mB = pc->invMassB; + iB = pc->invIB; + } + + b2Vec2 cA = m_positions[indexA].c; + float32 aA = m_positions[indexA].a; + + b2Vec2 cB = m_positions[indexB].c; + float32 aB = m_positions[indexB].a; + + // Solve normal constraints + for (int32 j = 0; j < pointCount; ++j) + { + b2Transform xfA, xfB; + xfA.q.Set(aA); + xfB.q.Set(aB); + xfA.p = cA - b2Mul(xfA.q, localCenterA); + xfB.p = cB - b2Mul(xfB.q, localCenterB); + + b2PositionSolverManifold psm; + psm.Initialize(pc, xfA, xfB, j); + b2Vec2 normal = psm.normal; + + b2Vec2 point = psm.point; + float32 separation = psm.separation; + + b2Vec2 rA = point - cA; + b2Vec2 rB = point - cB; + + // Track max constraint error. + minSeparation = b2Min(minSeparation, separation); + + // Prevent large corrections and allow slop. + float32 C = b2Clamp(b2_toiBaugarte * (separation + b2_linearSlop), -b2_maxLinearCorrection, 0.0f); + + // Compute the effective mass. + float32 rnA = b2Cross(rA, normal); + float32 rnB = b2Cross(rB, normal); + float32 K = mA + mB + iA * rnA * rnA + iB * rnB * rnB; + + // Compute normal impulse + float32 impulse = K > 0.0f ? - C / K : 0.0f; + + b2Vec2 P = impulse * normal; + + cA -= mA * P; + aA -= iA * b2Cross(rA, P); + + cB += mB * P; + aB += iB * b2Cross(rB, P); + } + + m_positions[indexA].c = cA; + m_positions[indexA].a = aA; + + m_positions[indexB].c = cB; + m_positions[indexB].a = aB; + } + + // We can't expect minSpeparation >= -b2_linearSlop because we don't + // push the separation above -b2_linearSlop. + return minSeparation >= -1.5f * b2_linearSlop; +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ContactSolver.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ContactSolver.h new file mode 100644 index 0000000..a622e30 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2ContactSolver.h @@ -0,0 +1,95 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_CONTACT_SOLVER_H +#define B2_CONTACT_SOLVER_H + +#include +#include +#include + +class b2Contact; +class b2Body; +class b2StackAllocator; +struct b2ContactPositionConstraint; + +struct b2VelocityConstraintPoint +{ + b2Vec2 rA; + b2Vec2 rB; + float32 normalImpulse; + float32 tangentImpulse; + float32 normalMass; + float32 tangentMass; + float32 velocityBias; +}; + +struct b2ContactVelocityConstraint +{ + b2VelocityConstraintPoint points[b2_maxManifoldPoints]; + b2Vec2 normal; + b2Mat22 normalMass; + b2Mat22 K; + int32 indexA; + int32 indexB; + float32 invMassA, invMassB; + float32 invIA, invIB; + float32 friction; + float32 restitution; + float32 tangentSpeed; + int32 pointCount; + int32 contactIndex; +}; + +struct b2ContactSolverDef +{ + b2TimeStep step; + b2Contact** contacts; + int32 count; + b2Position* positions; + b2Velocity* velocities; + b2StackAllocator* allocator; +}; + +class b2ContactSolver +{ +public: + b2ContactSolver(b2ContactSolverDef* def); + ~b2ContactSolver(); + + void InitializeVelocityConstraints(); + + void WarmStart(); + void SolveVelocityConstraints(); + void StoreImpulses(); + + bool SolvePositionConstraints(); + bool SolveTOIPositionConstraints(int32 toiIndexA, int32 toiIndexB); + + b2TimeStep m_step; + b2Position* m_positions; + b2Velocity* m_velocities; + b2StackAllocator* m_allocator; + b2ContactPositionConstraint* m_positionConstraints; + b2ContactVelocityConstraint* m_velocityConstraints; + b2Contact** m_contacts; + int m_count; +}; + +#endif + diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp new file mode 100644 index 0000000..d1fd329 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp @@ -0,0 +1,49 @@ +/* +* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include + +#include + +b2Contact* b2EdgeAndCircleContact::Create(b2Fixture* fixtureA, int32, b2Fixture* fixtureB, int32, b2BlockAllocator* allocator) +{ + void* mem = allocator->Allocate(sizeof(b2EdgeAndCircleContact)); + return new (mem) b2EdgeAndCircleContact(fixtureA, fixtureB); +} + +void b2EdgeAndCircleContact::Destroy(b2Contact* contact, b2BlockAllocator* allocator) +{ + ((b2EdgeAndCircleContact*)contact)->~b2EdgeAndCircleContact(); + allocator->Free(contact, sizeof(b2EdgeAndCircleContact)); +} + +b2EdgeAndCircleContact::b2EdgeAndCircleContact(b2Fixture* fixtureA, b2Fixture* fixtureB) +: b2Contact(fixtureA, 0, fixtureB, 0) +{ + b2Assert(m_fixtureA->GetType() == b2Shape::e_edge); + b2Assert(m_fixtureB->GetType() == b2Shape::e_circle); +} + +void b2EdgeAndCircleContact::Evaluate(b2Manifold* manifold, const b2Transform& xfA, const b2Transform& xfB) +{ + b2CollideEdgeAndCircle( manifold, + (b2EdgeShape*)m_fixtureA->GetShape(), xfA, + (b2CircleShape*)m_fixtureB->GetShape(), xfB); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h new file mode 100644 index 0000000..e7a3455 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h @@ -0,0 +1,39 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_EDGE_AND_CIRCLE_CONTACT_H +#define B2_EDGE_AND_CIRCLE_CONTACT_H + +#include + +class b2BlockAllocator; + +class b2EdgeAndCircleContact : public b2Contact +{ +public: + static b2Contact* Create( b2Fixture* fixtureA, int32 indexA, + b2Fixture* fixtureB, int32 indexB, b2BlockAllocator* allocator); + static void Destroy(b2Contact* contact, b2BlockAllocator* allocator); + + b2EdgeAndCircleContact(b2Fixture* fixtureA, b2Fixture* fixtureB); + ~b2EdgeAndCircleContact() {} + + void Evaluate(b2Manifold* manifold, const b2Transform& xfA, const b2Transform& xfB); +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp new file mode 100644 index 0000000..ba536bc --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp @@ -0,0 +1,49 @@ +/* +* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include + +#include + +b2Contact* b2EdgeAndPolygonContact::Create(b2Fixture* fixtureA, int32, b2Fixture* fixtureB, int32, b2BlockAllocator* allocator) +{ + void* mem = allocator->Allocate(sizeof(b2EdgeAndPolygonContact)); + return new (mem) b2EdgeAndPolygonContact(fixtureA, fixtureB); +} + +void b2EdgeAndPolygonContact::Destroy(b2Contact* contact, b2BlockAllocator* allocator) +{ + ((b2EdgeAndPolygonContact*)contact)->~b2EdgeAndPolygonContact(); + allocator->Free(contact, sizeof(b2EdgeAndPolygonContact)); +} + +b2EdgeAndPolygonContact::b2EdgeAndPolygonContact(b2Fixture* fixtureA, b2Fixture* fixtureB) +: b2Contact(fixtureA, 0, fixtureB, 0) +{ + b2Assert(m_fixtureA->GetType() == b2Shape::e_edge); + b2Assert(m_fixtureB->GetType() == b2Shape::e_polygon); +} + +void b2EdgeAndPolygonContact::Evaluate(b2Manifold* manifold, const b2Transform& xfA, const b2Transform& xfB) +{ + b2CollideEdgeAndPolygon( manifold, + (b2EdgeShape*)m_fixtureA->GetShape(), xfA, + (b2PolygonShape*)m_fixtureB->GetShape(), xfB); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h new file mode 100644 index 0000000..3b40f12 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h @@ -0,0 +1,39 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_EDGE_AND_POLYGON_CONTACT_H +#define B2_EDGE_AND_POLYGON_CONTACT_H + +#include + +class b2BlockAllocator; + +class b2EdgeAndPolygonContact : public b2Contact +{ +public: + static b2Contact* Create( b2Fixture* fixtureA, int32 indexA, + b2Fixture* fixtureB, int32 indexB, b2BlockAllocator* allocator); + static void Destroy(b2Contact* contact, b2BlockAllocator* allocator); + + b2EdgeAndPolygonContact(b2Fixture* fixtureA, b2Fixture* fixtureB); + ~b2EdgeAndPolygonContact() {} + + void Evaluate(b2Manifold* manifold, const b2Transform& xfA, const b2Transform& xfB); +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp new file mode 100644 index 0000000..7c9cbcc --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp @@ -0,0 +1,49 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include + +#include + +b2Contact* b2PolygonAndCircleContact::Create(b2Fixture* fixtureA, int32, b2Fixture* fixtureB, int32, b2BlockAllocator* allocator) +{ + void* mem = allocator->Allocate(sizeof(b2PolygonAndCircleContact)); + return new (mem) b2PolygonAndCircleContact(fixtureA, fixtureB); +} + +void b2PolygonAndCircleContact::Destroy(b2Contact* contact, b2BlockAllocator* allocator) +{ + ((b2PolygonAndCircleContact*)contact)->~b2PolygonAndCircleContact(); + allocator->Free(contact, sizeof(b2PolygonAndCircleContact)); +} + +b2PolygonAndCircleContact::b2PolygonAndCircleContact(b2Fixture* fixtureA, b2Fixture* fixtureB) +: b2Contact(fixtureA, 0, fixtureB, 0) +{ + b2Assert(m_fixtureA->GetType() == b2Shape::e_polygon); + b2Assert(m_fixtureB->GetType() == b2Shape::e_circle); +} + +void b2PolygonAndCircleContact::Evaluate(b2Manifold* manifold, const b2Transform& xfA, const b2Transform& xfB) +{ + b2CollidePolygonAndCircle( manifold, + (b2PolygonShape*)m_fixtureA->GetShape(), xfA, + (b2CircleShape*)m_fixtureB->GetShape(), xfB); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h new file mode 100644 index 0000000..fe0645e --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_POLYGON_AND_CIRCLE_CONTACT_H +#define B2_POLYGON_AND_CIRCLE_CONTACT_H + +#include + +class b2BlockAllocator; + +class b2PolygonAndCircleContact : public b2Contact +{ +public: + static b2Contact* Create(b2Fixture* fixtureA, int32 indexA, b2Fixture* fixtureB, int32 indexB, b2BlockAllocator* allocator); + static void Destroy(b2Contact* contact, b2BlockAllocator* allocator); + + b2PolygonAndCircleContact(b2Fixture* fixtureA, b2Fixture* fixtureB); + ~b2PolygonAndCircleContact() {} + + void Evaluate(b2Manifold* manifold, const b2Transform& xfA, const b2Transform& xfB); +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonContact.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonContact.cpp new file mode 100644 index 0000000..b5706ca --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonContact.cpp @@ -0,0 +1,52 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include +#include +#include + +#include + +b2Contact* b2PolygonContact::Create(b2Fixture* fixtureA, int32, b2Fixture* fixtureB, int32, b2BlockAllocator* allocator) +{ + void* mem = allocator->Allocate(sizeof(b2PolygonContact)); + return new (mem) b2PolygonContact(fixtureA, fixtureB); +} + +void b2PolygonContact::Destroy(b2Contact* contact, b2BlockAllocator* allocator) +{ + ((b2PolygonContact*)contact)->~b2PolygonContact(); + allocator->Free(contact, sizeof(b2PolygonContact)); +} + +b2PolygonContact::b2PolygonContact(b2Fixture* fixtureA, b2Fixture* fixtureB) + : b2Contact(fixtureA, 0, fixtureB, 0) +{ + b2Assert(m_fixtureA->GetType() == b2Shape::e_polygon); + b2Assert(m_fixtureB->GetType() == b2Shape::e_polygon); +} + +void b2PolygonContact::Evaluate(b2Manifold* manifold, const b2Transform& xfA, const b2Transform& xfB) +{ + b2CollidePolygons( manifold, + (b2PolygonShape*)m_fixtureA->GetShape(), xfA, + (b2PolygonShape*)m_fixtureB->GetShape(), xfB); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonContact.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonContact.h new file mode 100644 index 0000000..434e6c9 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Contacts/b2PolygonContact.h @@ -0,0 +1,39 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_POLYGON_CONTACT_H +#define B2_POLYGON_CONTACT_H + +#include + +class b2BlockAllocator; + +class b2PolygonContact : public b2Contact +{ +public: + static b2Contact* Create( b2Fixture* fixtureA, int32 indexA, + b2Fixture* fixtureB, int32 indexB, b2BlockAllocator* allocator); + static void Destroy(b2Contact* contact, b2BlockAllocator* allocator); + + b2PolygonContact(b2Fixture* fixtureA, b2Fixture* fixtureB); + ~b2PolygonContact() {} + + void Evaluate(b2Manifold* manifold, const b2Transform& xfA, const b2Transform& xfB); +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2DistanceJoint.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2DistanceJoint.cpp new file mode 100644 index 0000000..ba2b6c0 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2DistanceJoint.cpp @@ -0,0 +1,260 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include + +// 1-D constrained system +// m (v2 - v1) = lambda +// v2 + (beta/h) * x1 + gamma * lambda = 0, gamma has units of inverse mass. +// x2 = x1 + h * v2 + +// 1-D mass-damper-spring system +// m (v2 - v1) + h * d * v2 + h * k * + +// C = norm(p2 - p1) - L +// u = (p2 - p1) / norm(p2 - p1) +// Cdot = dot(u, v2 + cross(w2, r2) - v1 - cross(w1, r1)) +// J = [-u -cross(r1, u) u cross(r2, u)] +// K = J * invM * JT +// = invMass1 + invI1 * cross(r1, u)^2 + invMass2 + invI2 * cross(r2, u)^2 + +void b2DistanceJointDef::Initialize(b2Body* b1, b2Body* b2, + const b2Vec2& anchor1, const b2Vec2& anchor2) +{ + bodyA = b1; + bodyB = b2; + localAnchorA = bodyA->GetLocalPoint(anchor1); + localAnchorB = bodyB->GetLocalPoint(anchor2); + b2Vec2 d = anchor2 - anchor1; + length = d.Length(); +} + +b2DistanceJoint::b2DistanceJoint(const b2DistanceJointDef* def) +: b2Joint(def) +{ + m_localAnchorA = def->localAnchorA; + m_localAnchorB = def->localAnchorB; + m_length = def->length; + m_frequencyHz = def->frequencyHz; + m_dampingRatio = def->dampingRatio; + m_impulse = 0.0f; + m_gamma = 0.0f; + m_bias = 0.0f; +} + +void b2DistanceJoint::InitVelocityConstraints(const b2SolverData& data) +{ + m_indexA = m_bodyA->m_islandIndex; + m_indexB = m_bodyB->m_islandIndex; + m_localCenterA = m_bodyA->m_sweep.localCenter; + m_localCenterB = m_bodyB->m_sweep.localCenter; + m_invMassA = m_bodyA->m_invMass; + m_invMassB = m_bodyB->m_invMass; + m_invIA = m_bodyA->m_invI; + m_invIB = m_bodyB->m_invI; + + b2Vec2 cA = data.positions[m_indexA].c; + float32 aA = data.positions[m_indexA].a; + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + + b2Vec2 cB = data.positions[m_indexB].c; + float32 aB = data.positions[m_indexB].a; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + b2Rot qA(aA), qB(aB); + + m_rA = b2Mul(qA, m_localAnchorA - m_localCenterA); + m_rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + m_u = cB + m_rB - cA - m_rA; + + // Handle singularity. + float32 length = m_u.Length(); + if (length > b2_linearSlop) + { + m_u *= 1.0f / length; + } + else + { + m_u.Set(0.0f, 0.0f); + } + + float32 crAu = b2Cross(m_rA, m_u); + float32 crBu = b2Cross(m_rB, m_u); + float32 invMass = m_invMassA + m_invIA * crAu * crAu + m_invMassB + m_invIB * crBu * crBu; + + // Compute the effective mass matrix. + m_mass = invMass != 0.0f ? 1.0f / invMass : 0.0f; + + if (m_frequencyHz > 0.0f) + { + float32 C = length - m_length; + + // Frequency + float32 omega = 2.0f * b2_pi * m_frequencyHz; + + // Damping coefficient + float32 d = 2.0f * m_mass * m_dampingRatio * omega; + + // Spring stiffness + float32 k = m_mass * omega * omega; + + // magic formulas + float32 h = data.step.dt; + m_gamma = h * (d + h * k); + m_gamma = m_gamma != 0.0f ? 1.0f / m_gamma : 0.0f; + m_bias = C * h * k * m_gamma; + + invMass += m_gamma; + m_mass = invMass != 0.0f ? 1.0f / invMass : 0.0f; + } + else + { + m_gamma = 0.0f; + m_bias = 0.0f; + } + + if (data.step.warmStarting) + { + // Scale the impulse to support a variable time step. + m_impulse *= data.step.dtRatio; + + b2Vec2 P = m_impulse * m_u; + vA -= m_invMassA * P; + wA -= m_invIA * b2Cross(m_rA, P); + vB += m_invMassB * P; + wB += m_invIB * b2Cross(m_rB, P); + } + else + { + m_impulse = 0.0f; + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +void b2DistanceJoint::SolveVelocityConstraints(const b2SolverData& data) +{ + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + // Cdot = dot(u, v + cross(w, r)) + b2Vec2 vpA = vA + b2Cross(wA, m_rA); + b2Vec2 vpB = vB + b2Cross(wB, m_rB); + float32 Cdot = b2Dot(m_u, vpB - vpA); + + float32 impulse = -m_mass * (Cdot + m_bias + m_gamma * m_impulse); + m_impulse += impulse; + + b2Vec2 P = impulse * m_u; + vA -= m_invMassA * P; + wA -= m_invIA * b2Cross(m_rA, P); + vB += m_invMassB * P; + wB += m_invIB * b2Cross(m_rB, P); + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +bool b2DistanceJoint::SolvePositionConstraints(const b2SolverData& data) +{ + if (m_frequencyHz > 0.0f) + { + // There is no position correction for soft distance constraints. + return true; + } + + b2Vec2 cA = data.positions[m_indexA].c; + float32 aA = data.positions[m_indexA].a; + b2Vec2 cB = data.positions[m_indexB].c; + float32 aB = data.positions[m_indexB].a; + + b2Rot qA(aA), qB(aB); + + b2Vec2 rA = b2Mul(qA, m_localAnchorA - m_localCenterA); + b2Vec2 rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + b2Vec2 u = cB + rB - cA - rA; + + float32 length = u.Normalize(); + float32 C = length - m_length; + C = b2Clamp(C, -b2_maxLinearCorrection, b2_maxLinearCorrection); + + float32 impulse = -m_mass * C; + b2Vec2 P = impulse * u; + + cA -= m_invMassA * P; + aA -= m_invIA * b2Cross(rA, P); + cB += m_invMassB * P; + aB += m_invIB * b2Cross(rB, P); + + data.positions[m_indexA].c = cA; + data.positions[m_indexA].a = aA; + data.positions[m_indexB].c = cB; + data.positions[m_indexB].a = aB; + + return b2Abs(C) < b2_linearSlop; +} + +b2Vec2 b2DistanceJoint::GetAnchorA() const +{ + return m_bodyA->GetWorldPoint(m_localAnchorA); +} + +b2Vec2 b2DistanceJoint::GetAnchorB() const +{ + return m_bodyB->GetWorldPoint(m_localAnchorB); +} + +b2Vec2 b2DistanceJoint::GetReactionForce(float32 inv_dt) const +{ + b2Vec2 F = (inv_dt * m_impulse) * m_u; + return F; +} + +float32 b2DistanceJoint::GetReactionTorque(float32 inv_dt) const +{ + B2_NOT_USED(inv_dt); + return 0.0f; +} + +void b2DistanceJoint::Dump() +{ + int32 indexA = m_bodyA->m_islandIndex; + int32 indexB = m_bodyB->m_islandIndex; + + b2Log(" b2DistanceJointDef jd;\n"); + b2Log(" jd.bodyA = bodies[%d];\n", indexA); + b2Log(" jd.bodyB = bodies[%d];\n", indexB); + b2Log(" jd.collideConnected = bool(%d);\n", m_collideConnected); + b2Log(" jd.localAnchorA.Set(%.15lef, %.15lef);\n", m_localAnchorA.x, m_localAnchorA.y); + b2Log(" jd.localAnchorB.Set(%.15lef, %.15lef);\n", m_localAnchorB.x, m_localAnchorB.y); + b2Log(" jd.length = %.15lef;\n", m_length); + b2Log(" jd.frequencyHz = %.15lef;\n", m_frequencyHz); + b2Log(" jd.dampingRatio = %.15lef;\n", m_dampingRatio); + b2Log(" joints[%d] = m_world->CreateJoint(&jd);\n", m_index); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2DistanceJoint.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2DistanceJoint.h new file mode 100644 index 0000000..a651d42 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2DistanceJoint.h @@ -0,0 +1,169 @@ +/* +* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_DISTANCE_JOINT_H +#define B2_DISTANCE_JOINT_H + +#include "Dynamics/Joints/b2Joint.h" + +/// Distance joint definition. This requires defining an +/// anchor point on both bodies and the non-zero length of the +/// distance joint. The definition uses local anchor points +/// so that the initial configuration can violate the constraint +/// slightly. This helps when saving and loading a game. +/// @warning Do not use a zero or short length. +struct b2DistanceJointDef : public b2JointDef +{ + b2DistanceJointDef() + { + type = e_distanceJoint; + localAnchorA.Set(0.0f, 0.0f); + localAnchorB.Set(0.0f, 0.0f); + length = 1.0f; + frequencyHz = 0.0f; + dampingRatio = 0.0f; + } + + /// Initialize the bodies, anchors, and length using the world + /// anchors. + void Initialize(b2Body* bodyA, b2Body* bodyB, + const b2Vec2& anchorA, const b2Vec2& anchorB); + + /// The local anchor point relative to bodyA's origin. + b2Vec2 localAnchorA; + + /// The local anchor point relative to bodyB's origin. + b2Vec2 localAnchorB; + + /// The natural length between the anchor points. + float32 length; + + /// The mass-spring-damper frequency in Hertz. A value of 0 + /// disables softness. + float32 frequencyHz; + + /// The damping ratio. 0 = no damping, 1 = critical damping. + float32 dampingRatio; +}; + +/// A distance joint constrains two points on two bodies +/// to remain at a fixed distance from each other. You can view +/// this as a massless, rigid rod. +class b2DistanceJoint : public b2Joint +{ +public: + + b2Vec2 GetAnchorA() const; + b2Vec2 GetAnchorB() const; + + /// Get the reaction force given the inverse time step. + /// Unit is N. + b2Vec2 GetReactionForce(float32 inv_dt) const; + + /// Get the reaction torque given the inverse time step. + /// Unit is N*m. This is always zero for a distance joint. + float32 GetReactionTorque(float32 inv_dt) const; + + /// The local anchor point relative to bodyA's origin. + const b2Vec2& GetLocalAnchorA() const { return m_localAnchorA; } + + /// The local anchor point relative to bodyB's origin. + const b2Vec2& GetLocalAnchorB() const { return m_localAnchorB; } + + /// Set/get the natural length. + /// Manipulating the length can lead to non-physical behavior when the frequency is zero. + void SetLength(float32 length); + float32 GetLength() const; + + /// Set/get frequency in Hz. + void SetFrequency(float32 hz); + float32 GetFrequency() const; + + /// Set/get damping ratio. + void SetDampingRatio(float32 ratio); + float32 GetDampingRatio() const; + + /// Dump joint to dmLog + void Dump(); + +protected: + + friend class b2Joint; + b2DistanceJoint(const b2DistanceJointDef* data); + + void InitVelocityConstraints(const b2SolverData& data); + void SolveVelocityConstraints(const b2SolverData& data); + bool SolvePositionConstraints(const b2SolverData& data); + + float32 m_frequencyHz; + float32 m_dampingRatio; + float32 m_bias; + + // Solver shared + b2Vec2 m_localAnchorA; + b2Vec2 m_localAnchorB; + float32 m_gamma; + float32 m_impulse; + float32 m_length; + + // Solver temp + int32 m_indexA; + int32 m_indexB; + b2Vec2 m_u; + b2Vec2 m_rA; + b2Vec2 m_rB; + b2Vec2 m_localCenterA; + b2Vec2 m_localCenterB; + float32 m_invMassA; + float32 m_invMassB; + float32 m_invIA; + float32 m_invIB; + float32 m_mass; +}; + +inline void b2DistanceJoint::SetLength(float32 length) +{ + m_length = length; +} + +inline float32 b2DistanceJoint::GetLength() const +{ + return m_length; +} + +inline void b2DistanceJoint::SetFrequency(float32 hz) +{ + m_frequencyHz = hz; +} + +inline float32 b2DistanceJoint::GetFrequency() const +{ + return m_frequencyHz; +} + +inline void b2DistanceJoint::SetDampingRatio(float32 ratio) +{ + m_dampingRatio = ratio; +} + +inline float32 b2DistanceJoint::GetDampingRatio() const +{ + return m_dampingRatio; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2FrictionJoint.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2FrictionJoint.cpp new file mode 100644 index 0000000..412d257 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2FrictionJoint.cpp @@ -0,0 +1,251 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include + +// Point-to-point constraint +// Cdot = v2 - v1 +// = v2 + cross(w2, r2) - v1 - cross(w1, r1) +// J = [-I -r1_skew I r2_skew ] +// Identity used: +// w k % (rx i + ry j) = w * (-ry i + rx j) + +// Angle constraint +// Cdot = w2 - w1 +// J = [0 0 -1 0 0 1] +// K = invI1 + invI2 + +void b2FrictionJointDef::Initialize(b2Body* bA, b2Body* bB, const b2Vec2& anchor) +{ + bodyA = bA; + bodyB = bB; + localAnchorA = bodyA->GetLocalPoint(anchor); + localAnchorB = bodyB->GetLocalPoint(anchor); +} + +b2FrictionJoint::b2FrictionJoint(const b2FrictionJointDef* def) +: b2Joint(def) +{ + m_localAnchorA = def->localAnchorA; + m_localAnchorB = def->localAnchorB; + + m_linearImpulse.SetZero(); + m_angularImpulse = 0.0f; + + m_maxForce = def->maxForce; + m_maxTorque = def->maxTorque; +} + +void b2FrictionJoint::InitVelocityConstraints(const b2SolverData& data) +{ + m_indexA = m_bodyA->m_islandIndex; + m_indexB = m_bodyB->m_islandIndex; + m_localCenterA = m_bodyA->m_sweep.localCenter; + m_localCenterB = m_bodyB->m_sweep.localCenter; + m_invMassA = m_bodyA->m_invMass; + m_invMassB = m_bodyB->m_invMass; + m_invIA = m_bodyA->m_invI; + m_invIB = m_bodyB->m_invI; + + float32 aA = data.positions[m_indexA].a; + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + + float32 aB = data.positions[m_indexB].a; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + b2Rot qA(aA), qB(aB); + + // Compute the effective mass matrix. + m_rA = b2Mul(qA, m_localAnchorA - m_localCenterA); + m_rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + + // J = [-I -r1_skew I r2_skew] + // [ 0 -1 0 1] + // r_skew = [-ry; rx] + + // Matlab + // K = [ mA+r1y^2*iA+mB+r2y^2*iB, -r1y*iA*r1x-r2y*iB*r2x, -r1y*iA-r2y*iB] + // [ -r1y*iA*r1x-r2y*iB*r2x, mA+r1x^2*iA+mB+r2x^2*iB, r1x*iA+r2x*iB] + // [ -r1y*iA-r2y*iB, r1x*iA+r2x*iB, iA+iB] + + float32 mA = m_invMassA, mB = m_invMassB; + float32 iA = m_invIA, iB = m_invIB; + + b2Mat22 K; + K.ex.x = mA + mB + iA * m_rA.y * m_rA.y + iB * m_rB.y * m_rB.y; + K.ex.y = -iA * m_rA.x * m_rA.y - iB * m_rB.x * m_rB.y; + K.ey.x = K.ex.y; + K.ey.y = mA + mB + iA * m_rA.x * m_rA.x + iB * m_rB.x * m_rB.x; + + m_linearMass = K.GetInverse(); + + m_angularMass = iA + iB; + if (m_angularMass > 0.0f) + { + m_angularMass = 1.0f / m_angularMass; + } + + if (data.step.warmStarting) + { + // Scale impulses to support a variable time step. + m_linearImpulse *= data.step.dtRatio; + m_angularImpulse *= data.step.dtRatio; + + b2Vec2 P(m_linearImpulse.x, m_linearImpulse.y); + vA -= mA * P; + wA -= iA * (b2Cross(m_rA, P) + m_angularImpulse); + vB += mB * P; + wB += iB * (b2Cross(m_rB, P) + m_angularImpulse); + } + else + { + m_linearImpulse.SetZero(); + m_angularImpulse = 0.0f; + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +void b2FrictionJoint::SolveVelocityConstraints(const b2SolverData& data) +{ + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + float32 mA = m_invMassA, mB = m_invMassB; + float32 iA = m_invIA, iB = m_invIB; + + float32 h = data.step.dt; + + // Solve angular friction + { + float32 Cdot = wB - wA; + float32 impulse = -m_angularMass * Cdot; + + float32 oldImpulse = m_angularImpulse; + float32 maxImpulse = h * m_maxTorque; + m_angularImpulse = b2Clamp(m_angularImpulse + impulse, -maxImpulse, maxImpulse); + impulse = m_angularImpulse - oldImpulse; + + wA -= iA * impulse; + wB += iB * impulse; + } + + // Solve linear friction + { + b2Vec2 Cdot = vB + b2Cross(wB, m_rB) - vA - b2Cross(wA, m_rA); + + b2Vec2 impulse = -b2Mul(m_linearMass, Cdot); + b2Vec2 oldImpulse = m_linearImpulse; + m_linearImpulse += impulse; + + float32 maxImpulse = h * m_maxForce; + + if (m_linearImpulse.LengthSquared() > maxImpulse * maxImpulse) + { + m_linearImpulse.Normalize(); + m_linearImpulse *= maxImpulse; + } + + impulse = m_linearImpulse - oldImpulse; + + vA -= mA * impulse; + wA -= iA * b2Cross(m_rA, impulse); + + vB += mB * impulse; + wB += iB * b2Cross(m_rB, impulse); + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +bool b2FrictionJoint::SolvePositionConstraints(const b2SolverData& data) +{ + B2_NOT_USED(data); + + return true; +} + +b2Vec2 b2FrictionJoint::GetAnchorA() const +{ + return m_bodyA->GetWorldPoint(m_localAnchorA); +} + +b2Vec2 b2FrictionJoint::GetAnchorB() const +{ + return m_bodyB->GetWorldPoint(m_localAnchorB); +} + +b2Vec2 b2FrictionJoint::GetReactionForce(float32 inv_dt) const +{ + return inv_dt * m_linearImpulse; +} + +float32 b2FrictionJoint::GetReactionTorque(float32 inv_dt) const +{ + return inv_dt * m_angularImpulse; +} + +void b2FrictionJoint::SetMaxForce(float32 force) +{ + b2Assert(b2IsValid(force) && force >= 0.0f); + m_maxForce = force; +} + +float32 b2FrictionJoint::GetMaxForce() const +{ + return m_maxForce; +} + +void b2FrictionJoint::SetMaxTorque(float32 torque) +{ + b2Assert(b2IsValid(torque) && torque >= 0.0f); + m_maxTorque = torque; +} + +float32 b2FrictionJoint::GetMaxTorque() const +{ + return m_maxTorque; +} + +void b2FrictionJoint::Dump() +{ + int32 indexA = m_bodyA->m_islandIndex; + int32 indexB = m_bodyB->m_islandIndex; + + b2Log(" b2FrictionJointDef jd;\n"); + b2Log(" jd.bodyA = bodies[%d];\n", indexA); + b2Log(" jd.bodyB = bodies[%d];\n", indexB); + b2Log(" jd.collideConnected = bool(%d);\n", m_collideConnected); + b2Log(" jd.localAnchorA.Set(%.15lef, %.15lef);\n", m_localAnchorA.x, m_localAnchorA.y); + b2Log(" jd.localAnchorB.Set(%.15lef, %.15lef);\n", m_localAnchorB.x, m_localAnchorB.y); + b2Log(" jd.maxForce = %.15lef;\n", m_maxForce); + b2Log(" jd.maxTorque = %.15lef;\n", m_maxTorque); + b2Log(" joints[%d] = m_world->CreateJoint(&jd);\n", m_index); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2FrictionJoint.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2FrictionJoint.h new file mode 100644 index 0000000..e347239 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2FrictionJoint.h @@ -0,0 +1,119 @@ +/* +* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_FRICTION_JOINT_H +#define B2_FRICTION_JOINT_H + +#include "Dynamics/Joints/b2Joint.h" + +/// Friction joint definition. +struct b2FrictionJointDef : public b2JointDef +{ + b2FrictionJointDef() + { + type = e_frictionJoint; + localAnchorA.SetZero(); + localAnchorB.SetZero(); + maxForce = 0.0f; + maxTorque = 0.0f; + } + + /// Initialize the bodies, anchors, axis, and reference angle using the world + /// anchor and world axis. + void Initialize(b2Body* bodyA, b2Body* bodyB, const b2Vec2& anchor); + + /// The local anchor point relative to bodyA's origin. + b2Vec2 localAnchorA; + + /// The local anchor point relative to bodyB's origin. + b2Vec2 localAnchorB; + + /// The maximum friction force in N. + float32 maxForce; + + /// The maximum friction torque in N-m. + float32 maxTorque; +}; + +/// Friction joint. This is used for top-down friction. +/// It provides 2D translational friction and angular friction. +class b2FrictionJoint : public b2Joint +{ +public: + b2Vec2 GetAnchorA() const; + b2Vec2 GetAnchorB() const; + + b2Vec2 GetReactionForce(float32 inv_dt) const; + float32 GetReactionTorque(float32 inv_dt) const; + + /// The local anchor point relative to bodyA's origin. + const b2Vec2& GetLocalAnchorA() const { return m_localAnchorA; } + + /// The local anchor point relative to bodyB's origin. + const b2Vec2& GetLocalAnchorB() const { return m_localAnchorB; } + + /// Set the maximum friction force in N. + void SetMaxForce(float32 force); + + /// Get the maximum friction force in N. + float32 GetMaxForce() const; + + /// Set the maximum friction torque in N*m. + void SetMaxTorque(float32 torque); + + /// Get the maximum friction torque in N*m. + float32 GetMaxTorque() const; + + /// Dump joint to dmLog + void Dump(); + +protected: + + friend class b2Joint; + + b2FrictionJoint(const b2FrictionJointDef* def); + + void InitVelocityConstraints(const b2SolverData& data); + void SolveVelocityConstraints(const b2SolverData& data); + bool SolvePositionConstraints(const b2SolverData& data); + + b2Vec2 m_localAnchorA; + b2Vec2 m_localAnchorB; + + // Solver shared + b2Vec2 m_linearImpulse; + float32 m_angularImpulse; + float32 m_maxForce; + float32 m_maxTorque; + + // Solver temp + int32 m_indexA; + int32 m_indexB; + b2Vec2 m_rA; + b2Vec2 m_rB; + b2Vec2 m_localCenterA; + b2Vec2 m_localCenterB; + float32 m_invMassA; + float32 m_invMassB; + float32 m_invIA; + float32 m_invIB; + b2Mat22 m_linearMass; + float32 m_angularMass; +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2GearJoint.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2GearJoint.cpp new file mode 100644 index 0000000..155eb0c --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2GearJoint.cpp @@ -0,0 +1,419 @@ +/* +* Copyright (c) 2007-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include +#include + +// Gear Joint: +// C0 = (coordinate1 + ratio * coordinate2)_initial +// C = (coordinate1 + ratio * coordinate2) - C0 = 0 +// J = [J1 ratio * J2] +// K = J * invM * JT +// = J1 * invM1 * J1T + ratio * ratio * J2 * invM2 * J2T +// +// Revolute: +// coordinate = rotation +// Cdot = angularVelocity +// J = [0 0 1] +// K = J * invM * JT = invI +// +// Prismatic: +// coordinate = dot(p - pg, ug) +// Cdot = dot(v + cross(w, r), ug) +// J = [ug cross(r, ug)] +// K = J * invM * JT = invMass + invI * cross(r, ug)^2 + +b2GearJoint::b2GearJoint(const b2GearJointDef* def) +: b2Joint(def) +{ + m_joint1 = def->joint1; + m_joint2 = def->joint2; + + m_typeA = m_joint1->GetType(); + m_typeB = m_joint2->GetType(); + + b2Assert(m_typeA == e_revoluteJoint || m_typeA == e_prismaticJoint); + b2Assert(m_typeB == e_revoluteJoint || m_typeB == e_prismaticJoint); + + float32 coordinateA, coordinateB; + + // TODO_ERIN there might be some problem with the joint edges in b2Joint. + + m_bodyC = m_joint1->GetBodyA(); + m_bodyA = m_joint1->GetBodyB(); + + // Get geometry of joint1 + b2Transform xfA = m_bodyA->m_xf; + float32 aA = m_bodyA->m_sweep.a; + b2Transform xfC = m_bodyC->m_xf; + float32 aC = m_bodyC->m_sweep.a; + + if (m_typeA == e_revoluteJoint) + { + b2RevoluteJoint* revolute = (b2RevoluteJoint*)def->joint1; + m_localAnchorC = revolute->m_localAnchorA; + m_localAnchorA = revolute->m_localAnchorB; + m_referenceAngleA = revolute->m_referenceAngle; + m_localAxisC.SetZero(); + + coordinateA = aA - aC - m_referenceAngleA; + } + else + { + b2PrismaticJoint* prismatic = (b2PrismaticJoint*)def->joint1; + m_localAnchorC = prismatic->m_localAnchorA; + m_localAnchorA = prismatic->m_localAnchorB; + m_referenceAngleA = prismatic->m_referenceAngle; + m_localAxisC = prismatic->m_localXAxisA; + + b2Vec2 pC = m_localAnchorC; + b2Vec2 pA = b2MulT(xfC.q, b2Mul(xfA.q, m_localAnchorA) + (xfA.p - xfC.p)); + coordinateA = b2Dot(pA - pC, m_localAxisC); + } + + m_bodyD = m_joint2->GetBodyA(); + m_bodyB = m_joint2->GetBodyB(); + + // Get geometry of joint2 + b2Transform xfB = m_bodyB->m_xf; + float32 aB = m_bodyB->m_sweep.a; + b2Transform xfD = m_bodyD->m_xf; + float32 aD = m_bodyD->m_sweep.a; + + if (m_typeB == e_revoluteJoint) + { + b2RevoluteJoint* revolute = (b2RevoluteJoint*)def->joint2; + m_localAnchorD = revolute->m_localAnchorA; + m_localAnchorB = revolute->m_localAnchorB; + m_referenceAngleB = revolute->m_referenceAngle; + m_localAxisD.SetZero(); + + coordinateB = aB - aD - m_referenceAngleB; + } + else + { + b2PrismaticJoint* prismatic = (b2PrismaticJoint*)def->joint2; + m_localAnchorD = prismatic->m_localAnchorA; + m_localAnchorB = prismatic->m_localAnchorB; + m_referenceAngleB = prismatic->m_referenceAngle; + m_localAxisD = prismatic->m_localXAxisA; + + b2Vec2 pD = m_localAnchorD; + b2Vec2 pB = b2MulT(xfD.q, b2Mul(xfB.q, m_localAnchorB) + (xfB.p - xfD.p)); + coordinateB = b2Dot(pB - pD, m_localAxisD); + } + + m_ratio = def->ratio; + + m_constant = coordinateA + m_ratio * coordinateB; + + m_impulse = 0.0f; +} + +void b2GearJoint::InitVelocityConstraints(const b2SolverData& data) +{ + m_indexA = m_bodyA->m_islandIndex; + m_indexB = m_bodyB->m_islandIndex; + m_indexC = m_bodyC->m_islandIndex; + m_indexD = m_bodyD->m_islandIndex; + m_lcA = m_bodyA->m_sweep.localCenter; + m_lcB = m_bodyB->m_sweep.localCenter; + m_lcC = m_bodyC->m_sweep.localCenter; + m_lcD = m_bodyD->m_sweep.localCenter; + m_mA = m_bodyA->m_invMass; + m_mB = m_bodyB->m_invMass; + m_mC = m_bodyC->m_invMass; + m_mD = m_bodyD->m_invMass; + m_iA = m_bodyA->m_invI; + m_iB = m_bodyB->m_invI; + m_iC = m_bodyC->m_invI; + m_iD = m_bodyD->m_invI; + + float32 aA = data.positions[m_indexA].a; + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + + float32 aB = data.positions[m_indexB].a; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + float32 aC = data.positions[m_indexC].a; + b2Vec2 vC = data.velocities[m_indexC].v; + float32 wC = data.velocities[m_indexC].w; + + float32 aD = data.positions[m_indexD].a; + b2Vec2 vD = data.velocities[m_indexD].v; + float32 wD = data.velocities[m_indexD].w; + + b2Rot qA(aA), qB(aB), qC(aC), qD(aD); + + m_mass = 0.0f; + + if (m_typeA == e_revoluteJoint) + { + m_JvAC.SetZero(); + m_JwA = 1.0f; + m_JwC = 1.0f; + m_mass += m_iA + m_iC; + } + else + { + b2Vec2 u = b2Mul(qC, m_localAxisC); + b2Vec2 rC = b2Mul(qC, m_localAnchorC - m_lcC); + b2Vec2 rA = b2Mul(qA, m_localAnchorA - m_lcA); + m_JvAC = u; + m_JwC = b2Cross(rC, u); + m_JwA = b2Cross(rA, u); + m_mass += m_mC + m_mA + m_iC * m_JwC * m_JwC + m_iA * m_JwA * m_JwA; + } + + if (m_typeB == e_revoluteJoint) + { + m_JvBD.SetZero(); + m_JwB = m_ratio; + m_JwD = m_ratio; + m_mass += m_ratio * m_ratio * (m_iB + m_iD); + } + else + { + b2Vec2 u = b2Mul(qD, m_localAxisD); + b2Vec2 rD = b2Mul(qD, m_localAnchorD - m_lcD); + b2Vec2 rB = b2Mul(qB, m_localAnchorB - m_lcB); + m_JvBD = m_ratio * u; + m_JwD = m_ratio * b2Cross(rD, u); + m_JwB = m_ratio * b2Cross(rB, u); + m_mass += m_ratio * m_ratio * (m_mD + m_mB) + m_iD * m_JwD * m_JwD + m_iB * m_JwB * m_JwB; + } + + // Compute effective mass. + m_mass = m_mass > 0.0f ? 1.0f / m_mass : 0.0f; + + if (data.step.warmStarting) + { + vA += (m_mA * m_impulse) * m_JvAC; + wA += m_iA * m_impulse * m_JwA; + vB += (m_mB * m_impulse) * m_JvBD; + wB += m_iB * m_impulse * m_JwB; + vC -= (m_mC * m_impulse) * m_JvAC; + wC -= m_iC * m_impulse * m_JwC; + vD -= (m_mD * m_impulse) * m_JvBD; + wD -= m_iD * m_impulse * m_JwD; + } + else + { + m_impulse = 0.0f; + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; + data.velocities[m_indexC].v = vC; + data.velocities[m_indexC].w = wC; + data.velocities[m_indexD].v = vD; + data.velocities[m_indexD].w = wD; +} + +void b2GearJoint::SolveVelocityConstraints(const b2SolverData& data) +{ + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + b2Vec2 vC = data.velocities[m_indexC].v; + float32 wC = data.velocities[m_indexC].w; + b2Vec2 vD = data.velocities[m_indexD].v; + float32 wD = data.velocities[m_indexD].w; + + float32 Cdot = b2Dot(m_JvAC, vA - vC) + b2Dot(m_JvBD, vB - vD); + Cdot += (m_JwA * wA - m_JwC * wC) + (m_JwB * wB - m_JwD * wD); + + float32 impulse = -m_mass * Cdot; + m_impulse += impulse; + + vA += (m_mA * impulse) * m_JvAC; + wA += m_iA * impulse * m_JwA; + vB += (m_mB * impulse) * m_JvBD; + wB += m_iB * impulse * m_JwB; + vC -= (m_mC * impulse) * m_JvAC; + wC -= m_iC * impulse * m_JwC; + vD -= (m_mD * impulse) * m_JvBD; + wD -= m_iD * impulse * m_JwD; + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; + data.velocities[m_indexC].v = vC; + data.velocities[m_indexC].w = wC; + data.velocities[m_indexD].v = vD; + data.velocities[m_indexD].w = wD; +} + +bool b2GearJoint::SolvePositionConstraints(const b2SolverData& data) +{ + b2Vec2 cA = data.positions[m_indexA].c; + float32 aA = data.positions[m_indexA].a; + b2Vec2 cB = data.positions[m_indexB].c; + float32 aB = data.positions[m_indexB].a; + b2Vec2 cC = data.positions[m_indexC].c; + float32 aC = data.positions[m_indexC].a; + b2Vec2 cD = data.positions[m_indexD].c; + float32 aD = data.positions[m_indexD].a; + + b2Rot qA(aA), qB(aB), qC(aC), qD(aD); + + float32 linearError = 0.0f; + + float32 coordinateA, coordinateB; + + b2Vec2 JvAC, JvBD; + float32 JwA, JwB, JwC, JwD; + float32 mass = 0.0f; + + if (m_typeA == e_revoluteJoint) + { + JvAC.SetZero(); + JwA = 1.0f; + JwC = 1.0f; + mass += m_iA + m_iC; + + coordinateA = aA - aC - m_referenceAngleA; + } + else + { + b2Vec2 u = b2Mul(qC, m_localAxisC); + b2Vec2 rC = b2Mul(qC, m_localAnchorC - m_lcC); + b2Vec2 rA = b2Mul(qA, m_localAnchorA - m_lcA); + JvAC = u; + JwC = b2Cross(rC, u); + JwA = b2Cross(rA, u); + mass += m_mC + m_mA + m_iC * JwC * JwC + m_iA * JwA * JwA; + + b2Vec2 pC = m_localAnchorC - m_lcC; + b2Vec2 pA = b2MulT(qC, rA + (cA - cC)); + coordinateA = b2Dot(pA - pC, m_localAxisC); + } + + if (m_typeB == e_revoluteJoint) + { + JvBD.SetZero(); + JwB = m_ratio; + JwD = m_ratio; + mass += m_ratio * m_ratio * (m_iB + m_iD); + + coordinateB = aB - aD - m_referenceAngleB; + } + else + { + b2Vec2 u = b2Mul(qD, m_localAxisD); + b2Vec2 rD = b2Mul(qD, m_localAnchorD - m_lcD); + b2Vec2 rB = b2Mul(qB, m_localAnchorB - m_lcB); + JvBD = m_ratio * u; + JwD = m_ratio * b2Cross(rD, u); + JwB = m_ratio * b2Cross(rB, u); + mass += m_ratio * m_ratio * (m_mD + m_mB) + m_iD * JwD * JwD + m_iB * JwB * JwB; + + b2Vec2 pD = m_localAnchorD - m_lcD; + b2Vec2 pB = b2MulT(qD, rB + (cB - cD)); + coordinateB = b2Dot(pB - pD, m_localAxisD); + } + + float32 C = (coordinateA + m_ratio * coordinateB) - m_constant; + + float32 impulse = 0.0f; + if (mass > 0.0f) + { + impulse = -C / mass; + } + + cA += m_mA * impulse * JvAC; + aA += m_iA * impulse * JwA; + cB += m_mB * impulse * JvBD; + aB += m_iB * impulse * JwB; + cC -= m_mC * impulse * JvAC; + aC -= m_iC * impulse * JwC; + cD -= m_mD * impulse * JvBD; + aD -= m_iD * impulse * JwD; + + data.positions[m_indexA].c = cA; + data.positions[m_indexA].a = aA; + data.positions[m_indexB].c = cB; + data.positions[m_indexB].a = aB; + data.positions[m_indexC].c = cC; + data.positions[m_indexC].a = aC; + data.positions[m_indexD].c = cD; + data.positions[m_indexD].a = aD; + + // TODO_ERIN not implemented + return linearError < b2_linearSlop; +} + +b2Vec2 b2GearJoint::GetAnchorA() const +{ + return m_bodyA->GetWorldPoint(m_localAnchorA); +} + +b2Vec2 b2GearJoint::GetAnchorB() const +{ + return m_bodyB->GetWorldPoint(m_localAnchorB); +} + +b2Vec2 b2GearJoint::GetReactionForce(float32 inv_dt) const +{ + b2Vec2 P = m_impulse * m_JvAC; + return inv_dt * P; +} + +float32 b2GearJoint::GetReactionTorque(float32 inv_dt) const +{ + float32 L = m_impulse * m_JwA; + return inv_dt * L; +} + +void b2GearJoint::SetRatio(float32 ratio) +{ + b2Assert(b2IsValid(ratio)); + m_ratio = ratio; +} + +float32 b2GearJoint::GetRatio() const +{ + return m_ratio; +} + +void b2GearJoint::Dump() +{ + int32 indexA = m_bodyA->m_islandIndex; + int32 indexB = m_bodyB->m_islandIndex; + + int32 index1 = m_joint1->m_index; + int32 index2 = m_joint2->m_index; + + b2Log(" b2GearJointDef jd;\n"); + b2Log(" jd.bodyA = bodies[%d];\n", indexA); + b2Log(" jd.bodyB = bodies[%d];\n", indexB); + b2Log(" jd.collideConnected = bool(%d);\n", m_collideConnected); + b2Log(" jd.joint1 = joints[%d];\n", index1); + b2Log(" jd.joint2 = joints[%d];\n", index2); + b2Log(" jd.ratio = %.15lef;\n", m_ratio); + b2Log(" joints[%d] = m_world->CreateJoint(&jd);\n", m_index); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2GearJoint.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2GearJoint.h new file mode 100644 index 0000000..98ab074 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2GearJoint.h @@ -0,0 +1,125 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_GEAR_JOINT_H +#define B2_GEAR_JOINT_H + +#include "Dynamics/Joints/b2Joint.h" + +/// Gear joint definition. This definition requires two existing +/// revolute or prismatic joints (any combination will work). +struct b2GearJointDef : public b2JointDef +{ + b2GearJointDef() + { + type = e_gearJoint; + joint1 = NULL; + joint2 = NULL; + ratio = 1.0f; + } + + /// The first revolute/prismatic joint attached to the gear joint. + b2Joint* joint1; + + /// The second revolute/prismatic joint attached to the gear joint. + b2Joint* joint2; + + /// The gear ratio. + /// @see b2GearJoint for explanation. + float32 ratio; +}; + +/// A gear joint is used to connect two joints together. Either joint +/// can be a revolute or prismatic joint. You specify a gear ratio +/// to bind the motions together: +/// coordinate1 + ratio * coordinate2 = constant +/// The ratio can be negative or positive. If one joint is a revolute joint +/// and the other joint is a prismatic joint, then the ratio will have units +/// of length or units of 1/length. +/// @warning You have to manually destroy the gear joint if joint1 or joint2 +/// is destroyed. +class b2GearJoint : public b2Joint +{ +public: + b2Vec2 GetAnchorA() const; + b2Vec2 GetAnchorB() const; + + b2Vec2 GetReactionForce(float32 inv_dt) const; + float32 GetReactionTorque(float32 inv_dt) const; + + /// Get the first joint. + b2Joint* GetJoint1() { return m_joint1; } + + /// Get the second joint. + b2Joint* GetJoint2() { return m_joint2; } + + /// Set/Get the gear ratio. + void SetRatio(float32 ratio); + float32 GetRatio() const; + + /// Dump joint to dmLog + void Dump(); + +protected: + + friend class b2Joint; + b2GearJoint(const b2GearJointDef* data); + + void InitVelocityConstraints(const b2SolverData& data); + void SolveVelocityConstraints(const b2SolverData& data); + bool SolvePositionConstraints(const b2SolverData& data); + + b2Joint* m_joint1; + b2Joint* m_joint2; + + b2JointType m_typeA; + b2JointType m_typeB; + + // Body A is connected to body C + // Body B is connected to body D + b2Body* m_bodyC; + b2Body* m_bodyD; + + // Solver shared + b2Vec2 m_localAnchorA; + b2Vec2 m_localAnchorB; + b2Vec2 m_localAnchorC; + b2Vec2 m_localAnchorD; + + b2Vec2 m_localAxisC; + b2Vec2 m_localAxisD; + + float32 m_referenceAngleA; + float32 m_referenceAngleB; + + float32 m_constant; + float32 m_ratio; + + float32 m_impulse; + + // Solver temp + int32 m_indexA, m_indexB, m_indexC, m_indexD; + b2Vec2 m_lcA, m_lcB, m_lcC, m_lcD; + float32 m_mA, m_mB, m_mC, m_mD; + float32 m_iA, m_iB, m_iC, m_iD; + b2Vec2 m_JvAC, m_JvBD; + float32 m_JwA, m_JwB, m_JwC, m_JwD; + float32 m_mass; +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2Joint.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2Joint.cpp new file mode 100644 index 0000000..dd55be9 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2Joint.cpp @@ -0,0 +1,211 @@ +/* +* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +b2Joint* b2Joint::Create(const b2JointDef* def, b2BlockAllocator* allocator) +{ + b2Joint* joint = NULL; + + switch (def->type) + { + case e_distanceJoint: + { + void* mem = allocator->Allocate(sizeof(b2DistanceJoint)); + joint = new (mem) b2DistanceJoint(static_cast(def)); + } + break; + + case e_mouseJoint: + { + void* mem = allocator->Allocate(sizeof(b2MouseJoint)); + joint = new (mem) b2MouseJoint(static_cast(def)); + } + break; + + case e_prismaticJoint: + { + void* mem = allocator->Allocate(sizeof(b2PrismaticJoint)); + joint = new (mem) b2PrismaticJoint(static_cast(def)); + } + break; + + case e_revoluteJoint: + { + void* mem = allocator->Allocate(sizeof(b2RevoluteJoint)); + joint = new (mem) b2RevoluteJoint(static_cast(def)); + } + break; + + case e_pulleyJoint: + { + void* mem = allocator->Allocate(sizeof(b2PulleyJoint)); + joint = new (mem) b2PulleyJoint(static_cast(def)); + } + break; + + case e_gearJoint: + { + void* mem = allocator->Allocate(sizeof(b2GearJoint)); + joint = new (mem) b2GearJoint(static_cast(def)); + } + break; + + case e_wheelJoint: + { + void* mem = allocator->Allocate(sizeof(b2WheelJoint)); + joint = new (mem) b2WheelJoint(static_cast(def)); + } + break; + + case e_weldJoint: + { + void* mem = allocator->Allocate(sizeof(b2WeldJoint)); + joint = new (mem) b2WeldJoint(static_cast(def)); + } + break; + + case e_frictionJoint: + { + void* mem = allocator->Allocate(sizeof(b2FrictionJoint)); + joint = new (mem) b2FrictionJoint(static_cast(def)); + } + break; + + case e_ropeJoint: + { + void* mem = allocator->Allocate(sizeof(b2RopeJoint)); + joint = new (mem) b2RopeJoint(static_cast(def)); + } + break; + + case e_motorJoint: + { + void* mem = allocator->Allocate(sizeof(b2MotorJoint)); + joint = new (mem) b2MotorJoint(static_cast(def)); + } + break; + + default: + b2Assert(false); + break; + } + + return joint; +} + +void b2Joint::Destroy(b2Joint* joint, b2BlockAllocator* allocator) +{ + joint->~b2Joint(); + switch (joint->m_type) + { + case e_distanceJoint: + allocator->Free(joint, sizeof(b2DistanceJoint)); + break; + + case e_mouseJoint: + allocator->Free(joint, sizeof(b2MouseJoint)); + break; + + case e_prismaticJoint: + allocator->Free(joint, sizeof(b2PrismaticJoint)); + break; + + case e_revoluteJoint: + allocator->Free(joint, sizeof(b2RevoluteJoint)); + break; + + case e_pulleyJoint: + allocator->Free(joint, sizeof(b2PulleyJoint)); + break; + + case e_gearJoint: + allocator->Free(joint, sizeof(b2GearJoint)); + break; + + case e_wheelJoint: + allocator->Free(joint, sizeof(b2WheelJoint)); + break; + + case e_weldJoint: + allocator->Free(joint, sizeof(b2WeldJoint)); + break; + + case e_frictionJoint: + allocator->Free(joint, sizeof(b2FrictionJoint)); + break; + + case e_ropeJoint: + allocator->Free(joint, sizeof(b2RopeJoint)); + break; + + case e_motorJoint: + allocator->Free(joint, sizeof(b2MotorJoint)); + break; + + default: + b2Assert(false); + break; + } +} + +b2Joint::b2Joint(const b2JointDef* def) +{ + b2Assert(def->bodyA != def->bodyB); + + m_type = def->type; + m_prev = NULL; + m_next = NULL; + m_bodyA = def->bodyA; + m_bodyB = def->bodyB; + m_index = 0; + m_collideConnected = def->collideConnected; + m_islandFlag = false; + m_userData = def->userData; + + m_edgeA.joint = NULL; + m_edgeA.other = NULL; + m_edgeA.prev = NULL; + m_edgeA.next = NULL; + + m_edgeB.joint = NULL; + m_edgeB.other = NULL; + m_edgeB.prev = NULL; + m_edgeB.next = NULL; +} + +bool b2Joint::IsActive() const +{ + return m_bodyA->IsActive() && m_bodyB->IsActive(); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MotorJoint.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MotorJoint.cpp new file mode 100644 index 0000000..e5bbcb1 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MotorJoint.cpp @@ -0,0 +1,304 @@ +/* +* Copyright (c) 2006-2012 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include + +// Point-to-point constraint +// Cdot = v2 - v1 +// = v2 + cross(w2, r2) - v1 - cross(w1, r1) +// J = [-I -r1_skew I r2_skew ] +// Identity used: +// w k % (rx i + ry j) = w * (-ry i + rx j) + +// Angle constraint +// Cdot = w2 - w1 +// J = [0 0 -1 0 0 1] +// K = invI1 + invI2 + +void b2MotorJointDef::Initialize(b2Body* bA, b2Body* bB) +{ + bodyA = bA; + bodyB = bB; + b2Vec2 xB = bodyB->GetPosition(); + linearOffset = bodyA->GetLocalPoint(xB); + + float32 angleA = bodyA->GetAngle(); + float32 angleB = bodyB->GetAngle(); + angularOffset = angleB - angleA; +} + +b2MotorJoint::b2MotorJoint(const b2MotorJointDef* def) +: b2Joint(def) +{ + m_linearOffset = def->linearOffset; + m_angularOffset = def->angularOffset; + + m_linearImpulse.SetZero(); + m_angularImpulse = 0.0f; + + m_maxForce = def->maxForce; + m_maxTorque = def->maxTorque; + m_correctionFactor = def->correctionFactor; +} + +void b2MotorJoint::InitVelocityConstraints(const b2SolverData& data) +{ + m_indexA = m_bodyA->m_islandIndex; + m_indexB = m_bodyB->m_islandIndex; + m_localCenterA = m_bodyA->m_sweep.localCenter; + m_localCenterB = m_bodyB->m_sweep.localCenter; + m_invMassA = m_bodyA->m_invMass; + m_invMassB = m_bodyB->m_invMass; + m_invIA = m_bodyA->m_invI; + m_invIB = m_bodyB->m_invI; + + b2Vec2 cA = data.positions[m_indexA].c; + float32 aA = data.positions[m_indexA].a; + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + + b2Vec2 cB = data.positions[m_indexB].c; + float32 aB = data.positions[m_indexB].a; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + b2Rot qA(aA), qB(aB); + + // Compute the effective mass matrix. + m_rA = b2Mul(qA, -m_localCenterA); + m_rB = b2Mul(qB, -m_localCenterB); + + // J = [-I -r1_skew I r2_skew] + // [ 0 -1 0 1] + // r_skew = [-ry; rx] + + // Matlab + // K = [ mA+r1y^2*iA+mB+r2y^2*iB, -r1y*iA*r1x-r2y*iB*r2x, -r1y*iA-r2y*iB] + // [ -r1y*iA*r1x-r2y*iB*r2x, mA+r1x^2*iA+mB+r2x^2*iB, r1x*iA+r2x*iB] + // [ -r1y*iA-r2y*iB, r1x*iA+r2x*iB, iA+iB] + + float32 mA = m_invMassA, mB = m_invMassB; + float32 iA = m_invIA, iB = m_invIB; + + b2Mat22 K; + K.ex.x = mA + mB + iA * m_rA.y * m_rA.y + iB * m_rB.y * m_rB.y; + K.ex.y = -iA * m_rA.x * m_rA.y - iB * m_rB.x * m_rB.y; + K.ey.x = K.ex.y; + K.ey.y = mA + mB + iA * m_rA.x * m_rA.x + iB * m_rB.x * m_rB.x; + + m_linearMass = K.GetInverse(); + + m_angularMass = iA + iB; + if (m_angularMass > 0.0f) + { + m_angularMass = 1.0f / m_angularMass; + } + + m_linearError = cB + m_rB - cA - m_rA - b2Mul(qA, m_linearOffset); + m_angularError = aB - aA - m_angularOffset; + + if (data.step.warmStarting) + { + // Scale impulses to support a variable time step. + m_linearImpulse *= data.step.dtRatio; + m_angularImpulse *= data.step.dtRatio; + + b2Vec2 P(m_linearImpulse.x, m_linearImpulse.y); + vA -= mA * P; + wA -= iA * (b2Cross(m_rA, P) + m_angularImpulse); + vB += mB * P; + wB += iB * (b2Cross(m_rB, P) + m_angularImpulse); + } + else + { + m_linearImpulse.SetZero(); + m_angularImpulse = 0.0f; + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +void b2MotorJoint::SolveVelocityConstraints(const b2SolverData& data) +{ + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + float32 mA = m_invMassA, mB = m_invMassB; + float32 iA = m_invIA, iB = m_invIB; + + float32 h = data.step.dt; + float32 inv_h = data.step.inv_dt; + + // Solve angular friction + { + float32 Cdot = wB - wA + inv_h * m_correctionFactor * m_angularError; + float32 impulse = -m_angularMass * Cdot; + + float32 oldImpulse = m_angularImpulse; + float32 maxImpulse = h * m_maxTorque; + m_angularImpulse = b2Clamp(m_angularImpulse + impulse, -maxImpulse, maxImpulse); + impulse = m_angularImpulse - oldImpulse; + + wA -= iA * impulse; + wB += iB * impulse; + } + + // Solve linear friction + { + b2Vec2 Cdot = vB + b2Cross(wB, m_rB) - vA - b2Cross(wA, m_rA) + inv_h * m_correctionFactor * m_linearError; + + b2Vec2 impulse = -b2Mul(m_linearMass, Cdot); + b2Vec2 oldImpulse = m_linearImpulse; + m_linearImpulse += impulse; + + float32 maxImpulse = h * m_maxForce; + + if (m_linearImpulse.LengthSquared() > maxImpulse * maxImpulse) + { + m_linearImpulse.Normalize(); + m_linearImpulse *= maxImpulse; + } + + impulse = m_linearImpulse - oldImpulse; + + vA -= mA * impulse; + wA -= iA * b2Cross(m_rA, impulse); + + vB += mB * impulse; + wB += iB * b2Cross(m_rB, impulse); + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +bool b2MotorJoint::SolvePositionConstraints(const b2SolverData& data) +{ + B2_NOT_USED(data); + + return true; +} + +b2Vec2 b2MotorJoint::GetAnchorA() const +{ + return m_bodyA->GetPosition(); +} + +b2Vec2 b2MotorJoint::GetAnchorB() const +{ + return m_bodyB->GetPosition(); +} + +b2Vec2 b2MotorJoint::GetReactionForce(float32 inv_dt) const +{ + return inv_dt * m_linearImpulse; +} + +float32 b2MotorJoint::GetReactionTorque(float32 inv_dt) const +{ + return inv_dt * m_angularImpulse; +} + +void b2MotorJoint::SetMaxForce(float32 force) +{ + b2Assert(b2IsValid(force) && force >= 0.0f); + m_maxForce = force; +} + +float32 b2MotorJoint::GetMaxForce() const +{ + return m_maxForce; +} + +void b2MotorJoint::SetMaxTorque(float32 torque) +{ + b2Assert(b2IsValid(torque) && torque >= 0.0f); + m_maxTorque = torque; +} + +float32 b2MotorJoint::GetMaxTorque() const +{ + return m_maxTorque; +} + +void b2MotorJoint::SetCorrectionFactor(float32 factor) +{ + b2Assert(b2IsValid(factor) && 0.0f <= factor && factor <= 1.0f); + m_correctionFactor = factor; +} + +float32 b2MotorJoint::GetCorrectionFactor() const +{ + return m_correctionFactor; +} + +void b2MotorJoint::SetLinearOffset(const b2Vec2& linearOffset) +{ + if (linearOffset.x != m_linearOffset.x || linearOffset.y != m_linearOffset.y) + { + m_bodyA->SetAwake(true); + m_bodyB->SetAwake(true); + m_linearOffset = linearOffset; + } +} + +const b2Vec2& b2MotorJoint::GetLinearOffset() const +{ + return m_linearOffset; +} + +void b2MotorJoint::SetAngularOffset(float32 angularOffset) +{ + if (angularOffset != m_angularOffset) + { + m_bodyA->SetAwake(true); + m_bodyB->SetAwake(true); + m_angularOffset = angularOffset; + } +} + +float32 b2MotorJoint::GetAngularOffset() const +{ + return m_angularOffset; +} + +void b2MotorJoint::Dump() +{ + int32 indexA = m_bodyA->m_islandIndex; + int32 indexB = m_bodyB->m_islandIndex; + + b2Log(" b2MotorJointDef jd;\n"); + b2Log(" jd.bodyA = bodies[%d];\n", indexA); + b2Log(" jd.bodyB = bodies[%d];\n", indexB); + b2Log(" jd.collideConnected = bool(%d);\n", m_collideConnected); + b2Log(" jd.linearOffset.Set(%.15lef, %.15lef);\n", m_linearOffset.x, m_linearOffset.y); + b2Log(" jd.angularOffset = %.15lef;\n", m_angularOffset); + b2Log(" jd.maxForce = %.15lef;\n", m_maxForce); + b2Log(" jd.maxTorque = %.15lef;\n", m_maxTorque); + b2Log(" jd.correctionFactor = %.15lef;\n", m_correctionFactor); + b2Log(" joints[%d] = m_world->CreateJoint(&jd);\n", m_index); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MotorJoint.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MotorJoint.h new file mode 100644 index 0000000..88201b9 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MotorJoint.h @@ -0,0 +1,133 @@ +/* +* Copyright (c) 2006-2012 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_MOTOR_JOINT_H +#define B2_MOTOR_JOINT_H + +#include "Dynamics/Joints/b2Joint.h" + +/// Motor joint definition. +struct b2MotorJointDef : public b2JointDef +{ + b2MotorJointDef() + { + type = e_motorJoint; + linearOffset.SetZero(); + angularOffset = 0.0f; + maxForce = 1.0f; + maxTorque = 1.0f; + correctionFactor = 0.3f; + } + + /// Initialize the bodies and offsets using the current transforms. + void Initialize(b2Body* bodyA, b2Body* bodyB); + + /// Position of bodyB minus the position of bodyA, in bodyA's frame, in meters. + b2Vec2 linearOffset; + + /// The bodyB angle minus bodyA angle in radians. + float32 angularOffset; + + /// The maximum motor force in N. + float32 maxForce; + + /// The maximum motor torque in N-m. + float32 maxTorque; + + /// Position correction factor in the range [0,1]. + float32 correctionFactor; +}; + +/// A motor joint is used to control the relative motion +/// between two bodies. A typical usage is to control the movement +/// of a dynamic body with respect to the ground. +class b2MotorJoint : public b2Joint +{ +public: + b2Vec2 GetAnchorA() const; + b2Vec2 GetAnchorB() const; + + b2Vec2 GetReactionForce(float32 inv_dt) const; + float32 GetReactionTorque(float32 inv_dt) const; + + /// Set/get the target linear offset, in frame A, in meters. + void SetLinearOffset(const b2Vec2& linearOffset); + const b2Vec2& GetLinearOffset() const; + + /// Set/get the target angular offset, in radians. + void SetAngularOffset(float32 angularOffset); + float32 GetAngularOffset() const; + + /// Set the maximum friction force in N. + void SetMaxForce(float32 force); + + /// Get the maximum friction force in N. + float32 GetMaxForce() const; + + /// Set the maximum friction torque in N*m. + void SetMaxTorque(float32 torque); + + /// Get the maximum friction torque in N*m. + float32 GetMaxTorque() const; + + /// Set the position correction factor in the range [0,1]. + void SetCorrectionFactor(float32 factor); + + /// Get the position correction factor in the range [0,1]. + float32 GetCorrectionFactor() const; + + /// Dump to b2Log + void Dump(); + +protected: + + friend class b2Joint; + + b2MotorJoint(const b2MotorJointDef* def); + + void InitVelocityConstraints(const b2SolverData& data); + void SolveVelocityConstraints(const b2SolverData& data); + bool SolvePositionConstraints(const b2SolverData& data); + + // Solver shared + b2Vec2 m_linearOffset; + float32 m_angularOffset; + b2Vec2 m_linearImpulse; + float32 m_angularImpulse; + float32 m_maxForce; + float32 m_maxTorque; + float32 m_correctionFactor; + + // Solver temp + int32 m_indexA; + int32 m_indexB; + b2Vec2 m_rA; + b2Vec2 m_rB; + b2Vec2 m_localCenterA; + b2Vec2 m_localCenterB; + b2Vec2 m_linearError; + float32 m_angularError; + float32 m_invMassA; + float32 m_invMassB; + float32 m_invIA; + float32 m_invIB; + b2Mat22 m_linearMass; + float32 m_angularMass; +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MouseJoint.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MouseJoint.cpp new file mode 100644 index 0000000..ea96edd --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MouseJoint.cpp @@ -0,0 +1,222 @@ +/* +* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include + +// p = attached point, m = mouse point +// C = p - m +// Cdot = v +// = v + cross(w, r) +// J = [I r_skew] +// Identity used: +// w k % (rx i + ry j) = w * (-ry i + rx j) + +b2MouseJoint::b2MouseJoint(const b2MouseJointDef* def) +: b2Joint(def) +{ + b2Assert(def->target.IsValid()); + b2Assert(b2IsValid(def->maxForce) && def->maxForce >= 0.0f); + b2Assert(b2IsValid(def->frequencyHz) && def->frequencyHz >= 0.0f); + b2Assert(b2IsValid(def->dampingRatio) && def->dampingRatio >= 0.0f); + + m_targetA = def->target; + m_localAnchorB = b2MulT(m_bodyB->GetTransform(), m_targetA); + + m_maxForce = def->maxForce; + m_impulse.SetZero(); + + m_frequencyHz = def->frequencyHz; + m_dampingRatio = def->dampingRatio; + + m_beta = 0.0f; + m_gamma = 0.0f; +} + +void b2MouseJoint::SetTarget(const b2Vec2& target) +{ + if (m_bodyB->IsAwake() == false) + { + m_bodyB->SetAwake(true); + } + m_targetA = target; +} + +const b2Vec2& b2MouseJoint::GetTarget() const +{ + return m_targetA; +} + +void b2MouseJoint::SetMaxForce(float32 force) +{ + m_maxForce = force; +} + +float32 b2MouseJoint::GetMaxForce() const +{ + return m_maxForce; +} + +void b2MouseJoint::SetFrequency(float32 hz) +{ + m_frequencyHz = hz; +} + +float32 b2MouseJoint::GetFrequency() const +{ + return m_frequencyHz; +} + +void b2MouseJoint::SetDampingRatio(float32 ratio) +{ + m_dampingRatio = ratio; +} + +float32 b2MouseJoint::GetDampingRatio() const +{ + return m_dampingRatio; +} + +void b2MouseJoint::InitVelocityConstraints(const b2SolverData& data) +{ + m_indexB = m_bodyB->m_islandIndex; + m_localCenterB = m_bodyB->m_sweep.localCenter; + m_invMassB = m_bodyB->m_invMass; + m_invIB = m_bodyB->m_invI; + + b2Vec2 cB = data.positions[m_indexB].c; + float32 aB = data.positions[m_indexB].a; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + b2Rot qB(aB); + + float32 mass = m_bodyB->GetMass(); + + // Frequency + float32 omega = 2.0f * b2_pi * m_frequencyHz; + + // Damping coefficient + float32 d = 2.0f * mass * m_dampingRatio * omega; + + // Spring stiffness + float32 k = mass * (omega * omega); + + // magic formulas + // gamma has units of inverse mass. + // beta has units of inverse time. + float32 h = data.step.dt; + b2Assert(d + h * k > b2_epsilon); + m_gamma = h * (d + h * k); + if (m_gamma != 0.0f) + { + m_gamma = 1.0f / m_gamma; + } + m_beta = h * k * m_gamma; + + // Compute the effective mass matrix. + m_rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + + // K = [(1/m1 + 1/m2) * eye(2) - skew(r1) * invI1 * skew(r1) - skew(r2) * invI2 * skew(r2)] + // = [1/m1+1/m2 0 ] + invI1 * [r1.y*r1.y -r1.x*r1.y] + invI2 * [r1.y*r1.y -r1.x*r1.y] + // [ 0 1/m1+1/m2] [-r1.x*r1.y r1.x*r1.x] [-r1.x*r1.y r1.x*r1.x] + b2Mat22 K; + K.ex.x = m_invMassB + m_invIB * m_rB.y * m_rB.y + m_gamma; + K.ex.y = -m_invIB * m_rB.x * m_rB.y; + K.ey.x = K.ex.y; + K.ey.y = m_invMassB + m_invIB * m_rB.x * m_rB.x + m_gamma; + + m_mass = K.GetInverse(); + + m_C = cB + m_rB - m_targetA; + m_C *= m_beta; + + // Cheat with some damping + wB *= 0.98f; + + if (data.step.warmStarting) + { + m_impulse *= data.step.dtRatio; + vB += m_invMassB * m_impulse; + wB += m_invIB * b2Cross(m_rB, m_impulse); + } + else + { + m_impulse.SetZero(); + } + + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +void b2MouseJoint::SolveVelocityConstraints(const b2SolverData& data) +{ + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + // Cdot = v + cross(w, r) + b2Vec2 Cdot = vB + b2Cross(wB, m_rB); + b2Vec2 impulse = b2Mul(m_mass, -(Cdot + m_C + m_gamma * m_impulse)); + + b2Vec2 oldImpulse = m_impulse; + m_impulse += impulse; + float32 maxImpulse = data.step.dt * m_maxForce; + if (m_impulse.LengthSquared() > maxImpulse * maxImpulse) + { + m_impulse *= maxImpulse / m_impulse.Length(); + } + impulse = m_impulse - oldImpulse; + + vB += m_invMassB * impulse; + wB += m_invIB * b2Cross(m_rB, impulse); + + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +bool b2MouseJoint::SolvePositionConstraints(const b2SolverData& data) +{ + B2_NOT_USED(data); + return true; +} + +b2Vec2 b2MouseJoint::GetAnchorA() const +{ + return m_targetA; +} + +b2Vec2 b2MouseJoint::GetAnchorB() const +{ + return m_bodyB->GetWorldPoint(m_localAnchorB); +} + +b2Vec2 b2MouseJoint::GetReactionForce(float32 inv_dt) const +{ + return inv_dt * m_impulse; +} + +float32 b2MouseJoint::GetReactionTorque(float32 inv_dt) const +{ + return inv_dt * 0.0f; +} + +void b2MouseJoint::ShiftOrigin(const b2Vec2& newOrigin) +{ + m_targetA -= newOrigin; +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MouseJoint.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MouseJoint.h new file mode 100644 index 0000000..aebfc44 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2MouseJoint.h @@ -0,0 +1,129 @@ +/* +* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_MOUSE_JOINT_H +#define B2_MOUSE_JOINT_H + +#include "Dynamics/Joints/b2Joint.h" + +/// Mouse joint definition. This requires a world target point, +/// tuning parameters, and the time step. +struct b2MouseJointDef : public b2JointDef +{ + b2MouseJointDef() + { + type = e_mouseJoint; + target.Set(0.0f, 0.0f); + maxForce = 0.0f; + frequencyHz = 5.0f; + dampingRatio = 0.7f; + } + + /// The initial world target point. This is assumed + /// to coincide with the body anchor initially. + b2Vec2 target; + + /// The maximum constraint force that can be exerted + /// to move the candidate body. Usually you will express + /// as some multiple of the weight (multiplier * mass * gravity). + float32 maxForce; + + /// The response speed. + float32 frequencyHz; + + /// The damping ratio. 0 = no damping, 1 = critical damping. + float32 dampingRatio; +}; + +/// A mouse joint is used to make a point on a body track a +/// specified world point. This a soft constraint with a maximum +/// force. This allows the constraint to stretch and without +/// applying huge forces. +/// NOTE: this joint is not documented in the manual because it was +/// developed to be used in the testbed. If you want to learn how to +/// use the mouse joint, look at the testbed. +class b2MouseJoint : public b2Joint +{ +public: + + /// Implements b2Joint. + b2Vec2 GetAnchorA() const; + + /// Implements b2Joint. + b2Vec2 GetAnchorB() const; + + /// Implements b2Joint. + b2Vec2 GetReactionForce(float32 inv_dt) const; + + /// Implements b2Joint. + float32 GetReactionTorque(float32 inv_dt) const; + + /// Use this to update the target point. + void SetTarget(const b2Vec2& target); + const b2Vec2& GetTarget() const; + + /// Set/get the maximum force in Newtons. + void SetMaxForce(float32 force); + float32 GetMaxForce() const; + + /// Set/get the frequency in Hertz. + void SetFrequency(float32 hz); + float32 GetFrequency() const; + + /// Set/get the damping ratio (dimensionless). + void SetDampingRatio(float32 ratio); + float32 GetDampingRatio() const; + + /// The mouse joint does not support dumping. + void Dump() { b2Log("Mouse joint dumping is not supported.\n"); } + + /// Implement b2Joint::ShiftOrigin + void ShiftOrigin(const b2Vec2& newOrigin); + +protected: + friend class b2Joint; + + b2MouseJoint(const b2MouseJointDef* def); + + void InitVelocityConstraints(const b2SolverData& data); + void SolveVelocityConstraints(const b2SolverData& data); + bool SolvePositionConstraints(const b2SolverData& data); + + b2Vec2 m_localAnchorB; + b2Vec2 m_targetA; + float32 m_frequencyHz; + float32 m_dampingRatio; + float32 m_beta; + + // Solver shared + b2Vec2 m_impulse; + float32 m_maxForce; + float32 m_gamma; + + // Solver temp + int32 m_indexA; + int32 m_indexB; + b2Vec2 m_rB; + b2Vec2 m_localCenterB; + float32 m_invMassB; + float32 m_invIB; + b2Mat22 m_mass; + b2Vec2 m_C; +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp new file mode 100644 index 0000000..217e145 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PrismaticJoint.cpp @@ -0,0 +1,629 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include + +// Linear constraint (point-to-line) +// d = p2 - p1 = x2 + r2 - x1 - r1 +// C = dot(perp, d) +// Cdot = dot(d, cross(w1, perp)) + dot(perp, v2 + cross(w2, r2) - v1 - cross(w1, r1)) +// = -dot(perp, v1) - dot(cross(d + r1, perp), w1) + dot(perp, v2) + dot(cross(r2, perp), v2) +// J = [-perp, -cross(d + r1, perp), perp, cross(r2,perp)] +// +// Angular constraint +// C = a2 - a1 + a_initial +// Cdot = w2 - w1 +// J = [0 0 -1 0 0 1] +// +// K = J * invM * JT +// +// J = [-a -s1 a s2] +// [0 -1 0 1] +// a = perp +// s1 = cross(d + r1, a) = cross(p2 - x1, a) +// s2 = cross(r2, a) = cross(p2 - x2, a) + + +// Motor/Limit linear constraint +// C = dot(ax1, d) +// Cdot = = -dot(ax1, v1) - dot(cross(d + r1, ax1), w1) + dot(ax1, v2) + dot(cross(r2, ax1), v2) +// J = [-ax1 -cross(d+r1,ax1) ax1 cross(r2,ax1)] + +// Block Solver +// We develop a block solver that includes the joint limit. This makes the limit stiff (inelastic) even +// when the mass has poor distribution (leading to large torques about the joint anchor points). +// +// The Jacobian has 3 rows: +// J = [-uT -s1 uT s2] // linear +// [0 -1 0 1] // angular +// [-vT -a1 vT a2] // limit +// +// u = perp +// v = axis +// s1 = cross(d + r1, u), s2 = cross(r2, u) +// a1 = cross(d + r1, v), a2 = cross(r2, v) + +// M * (v2 - v1) = JT * df +// J * v2 = bias +// +// v2 = v1 + invM * JT * df +// J * (v1 + invM * JT * df) = bias +// K * df = bias - J * v1 = -Cdot +// K = J * invM * JT +// Cdot = J * v1 - bias +// +// Now solve for f2. +// df = f2 - f1 +// K * (f2 - f1) = -Cdot +// f2 = invK * (-Cdot) + f1 +// +// Clamp accumulated limit impulse. +// lower: f2(3) = max(f2(3), 0) +// upper: f2(3) = min(f2(3), 0) +// +// Solve for correct f2(1:2) +// K(1:2, 1:2) * f2(1:2) = -Cdot(1:2) - K(1:2,3) * f2(3) + K(1:2,1:3) * f1 +// = -Cdot(1:2) - K(1:2,3) * f2(3) + K(1:2,1:2) * f1(1:2) + K(1:2,3) * f1(3) +// K(1:2, 1:2) * f2(1:2) = -Cdot(1:2) - K(1:2,3) * (f2(3) - f1(3)) + K(1:2,1:2) * f1(1:2) +// f2(1:2) = invK(1:2,1:2) * (-Cdot(1:2) - K(1:2,3) * (f2(3) - f1(3))) + f1(1:2) +// +// Now compute impulse to be applied: +// df = f2 - f1 + +void b2PrismaticJointDef::Initialize(b2Body* bA, b2Body* bB, const b2Vec2& anchor, const b2Vec2& axis) +{ + bodyA = bA; + bodyB = bB; + localAnchorA = bodyA->GetLocalPoint(anchor); + localAnchorB = bodyB->GetLocalPoint(anchor); + localAxisA = bodyA->GetLocalVector(axis); + referenceAngle = bodyB->GetAngle() - bodyA->GetAngle(); +} + +b2PrismaticJoint::b2PrismaticJoint(const b2PrismaticJointDef* def) +: b2Joint(def) +{ + m_localAnchorA = def->localAnchorA; + m_localAnchorB = def->localAnchorB; + m_localXAxisA = def->localAxisA; + m_localXAxisA.Normalize(); + m_localYAxisA = b2Cross(1.0f, m_localXAxisA); + m_referenceAngle = def->referenceAngle; + + m_impulse.SetZero(); + m_motorMass = 0.0f; + m_motorImpulse = 0.0f; + + m_lowerTranslation = def->lowerTranslation; + m_upperTranslation = def->upperTranslation; + m_maxMotorForce = def->maxMotorForce; + m_motorSpeed = def->motorSpeed; + m_enableLimit = def->enableLimit; + m_enableMotor = def->enableMotor; + m_limitState = e_inactiveLimit; + + m_axis.SetZero(); + m_perp.SetZero(); +} + +void b2PrismaticJoint::InitVelocityConstraints(const b2SolverData& data) +{ + m_indexA = m_bodyA->m_islandIndex; + m_indexB = m_bodyB->m_islandIndex; + m_localCenterA = m_bodyA->m_sweep.localCenter; + m_localCenterB = m_bodyB->m_sweep.localCenter; + m_invMassA = m_bodyA->m_invMass; + m_invMassB = m_bodyB->m_invMass; + m_invIA = m_bodyA->m_invI; + m_invIB = m_bodyB->m_invI; + + b2Vec2 cA = data.positions[m_indexA].c; + float32 aA = data.positions[m_indexA].a; + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + + b2Vec2 cB = data.positions[m_indexB].c; + float32 aB = data.positions[m_indexB].a; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + b2Rot qA(aA), qB(aB); + + // Compute the effective masses. + b2Vec2 rA = b2Mul(qA, m_localAnchorA - m_localCenterA); + b2Vec2 rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + b2Vec2 d = (cB - cA) + rB - rA; + + float32 mA = m_invMassA, mB = m_invMassB; + float32 iA = m_invIA, iB = m_invIB; + + // Compute motor Jacobian and effective mass. + { + m_axis = b2Mul(qA, m_localXAxisA); + m_a1 = b2Cross(d + rA, m_axis); + m_a2 = b2Cross(rB, m_axis); + + m_motorMass = mA + mB + iA * m_a1 * m_a1 + iB * m_a2 * m_a2; + if (m_motorMass > 0.0f) + { + m_motorMass = 1.0f / m_motorMass; + } + } + + // Prismatic constraint. + { + m_perp = b2Mul(qA, m_localYAxisA); + + m_s1 = b2Cross(d + rA, m_perp); + m_s2 = b2Cross(rB, m_perp); + + float32 s1test; + s1test = b2Cross(rA, m_perp); + + float32 k11 = mA + mB + iA * m_s1 * m_s1 + iB * m_s2 * m_s2; + float32 k12 = iA * m_s1 + iB * m_s2; + float32 k13 = iA * m_s1 * m_a1 + iB * m_s2 * m_a2; + float32 k22 = iA + iB; + if (k22 == 0.0f) + { + // For bodies with fixed rotation. + k22 = 1.0f; + } + float32 k23 = iA * m_a1 + iB * m_a2; + float32 k33 = mA + mB + iA * m_a1 * m_a1 + iB * m_a2 * m_a2; + + m_K.ex.Set(k11, k12, k13); + m_K.ey.Set(k12, k22, k23); + m_K.ez.Set(k13, k23, k33); + } + + // Compute motor and limit terms. + if (m_enableLimit) + { + float32 jointTranslation = b2Dot(m_axis, d); + if (b2Abs(m_upperTranslation - m_lowerTranslation) < 2.0f * b2_linearSlop) + { + m_limitState = e_equalLimits; + } + else if (jointTranslation <= m_lowerTranslation) + { + if (m_limitState != e_atLowerLimit) + { + m_limitState = e_atLowerLimit; + m_impulse.z = 0.0f; + } + } + else if (jointTranslation >= m_upperTranslation) + { + if (m_limitState != e_atUpperLimit) + { + m_limitState = e_atUpperLimit; + m_impulse.z = 0.0f; + } + } + else + { + m_limitState = e_inactiveLimit; + m_impulse.z = 0.0f; + } + } + else + { + m_limitState = e_inactiveLimit; + m_impulse.z = 0.0f; + } + + if (m_enableMotor == false) + { + m_motorImpulse = 0.0f; + } + + if (data.step.warmStarting) + { + // Account for variable time step. + m_impulse *= data.step.dtRatio; + m_motorImpulse *= data.step.dtRatio; + + b2Vec2 P = m_impulse.x * m_perp + (m_motorImpulse + m_impulse.z) * m_axis; + float32 LA = m_impulse.x * m_s1 + m_impulse.y + (m_motorImpulse + m_impulse.z) * m_a1; + float32 LB = m_impulse.x * m_s2 + m_impulse.y + (m_motorImpulse + m_impulse.z) * m_a2; + + vA -= mA * P; + wA -= iA * LA; + + vB += mB * P; + wB += iB * LB; + } + else + { + m_impulse.SetZero(); + m_motorImpulse = 0.0f; + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +void b2PrismaticJoint::SolveVelocityConstraints(const b2SolverData& data) +{ + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + float32 mA = m_invMassA, mB = m_invMassB; + float32 iA = m_invIA, iB = m_invIB; + + // Solve linear motor constraint. + if (m_enableMotor && m_limitState != e_equalLimits) + { + float32 Cdot = b2Dot(m_axis, vB - vA) + m_a2 * wB - m_a1 * wA; + float32 impulse = m_motorMass * (m_motorSpeed - Cdot); + float32 oldImpulse = m_motorImpulse; + float32 maxImpulse = data.step.dt * m_maxMotorForce; + m_motorImpulse = b2Clamp(m_motorImpulse + impulse, -maxImpulse, maxImpulse); + impulse = m_motorImpulse - oldImpulse; + + b2Vec2 P = impulse * m_axis; + float32 LA = impulse * m_a1; + float32 LB = impulse * m_a2; + + vA -= mA * P; + wA -= iA * LA; + + vB += mB * P; + wB += iB * LB; + } + + b2Vec2 Cdot1; + Cdot1.x = b2Dot(m_perp, vB - vA) + m_s2 * wB - m_s1 * wA; + Cdot1.y = wB - wA; + + if (m_enableLimit && m_limitState != e_inactiveLimit) + { + // Solve prismatic and limit constraint in block form. + float32 Cdot2; + Cdot2 = b2Dot(m_axis, vB - vA) + m_a2 * wB - m_a1 * wA; + b2Vec3 Cdot(Cdot1.x, Cdot1.y, Cdot2); + + b2Vec3 f1 = m_impulse; + b2Vec3 df = m_K.Solve33(-Cdot); + m_impulse += df; + + if (m_limitState == e_atLowerLimit) + { + m_impulse.z = b2Max(m_impulse.z, 0.0f); + } + else if (m_limitState == e_atUpperLimit) + { + m_impulse.z = b2Min(m_impulse.z, 0.0f); + } + + // f2(1:2) = invK(1:2,1:2) * (-Cdot(1:2) - K(1:2,3) * (f2(3) - f1(3))) + f1(1:2) + b2Vec2 b = -Cdot1 - (m_impulse.z - f1.z) * b2Vec2(m_K.ez.x, m_K.ez.y); + b2Vec2 f2r = m_K.Solve22(b) + b2Vec2(f1.x, f1.y); + m_impulse.x = f2r.x; + m_impulse.y = f2r.y; + + df = m_impulse - f1; + + b2Vec2 P = df.x * m_perp + df.z * m_axis; + float32 LA = df.x * m_s1 + df.y + df.z * m_a1; + float32 LB = df.x * m_s2 + df.y + df.z * m_a2; + + vA -= mA * P; + wA -= iA * LA; + + vB += mB * P; + wB += iB * LB; + } + else + { + // Limit is inactive, just solve the prismatic constraint in block form. + b2Vec2 df = m_K.Solve22(-Cdot1); + m_impulse.x += df.x; + m_impulse.y += df.y; + + b2Vec2 P = df.x * m_perp; + float32 LA = df.x * m_s1 + df.y; + float32 LB = df.x * m_s2 + df.y; + + vA -= mA * P; + wA -= iA * LA; + + vB += mB * P; + wB += iB * LB; + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +bool b2PrismaticJoint::SolvePositionConstraints(const b2SolverData& data) +{ + b2Vec2 cA = data.positions[m_indexA].c; + float32 aA = data.positions[m_indexA].a; + b2Vec2 cB = data.positions[m_indexB].c; + float32 aB = data.positions[m_indexB].a; + + b2Rot qA(aA), qB(aB); + + float32 mA = m_invMassA, mB = m_invMassB; + float32 iA = m_invIA, iB = m_invIB; + + // Compute fresh Jacobians + b2Vec2 rA = b2Mul(qA, m_localAnchorA - m_localCenterA); + b2Vec2 rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + b2Vec2 d = cB + rB - cA - rA; + + b2Vec2 axis = b2Mul(qA, m_localXAxisA); + float32 a1 = b2Cross(d + rA, axis); + float32 a2 = b2Cross(rB, axis); + b2Vec2 perp = b2Mul(qA, m_localYAxisA); + + float32 s1 = b2Cross(d + rA, perp); + float32 s2 = b2Cross(rB, perp); + + b2Vec3 impulse; + b2Vec2 C1; + C1.x = b2Dot(perp, d); + C1.y = aB - aA - m_referenceAngle; + + float32 linearError = b2Abs(C1.x); + float32 angularError = b2Abs(C1.y); + + bool active = false; + float32 C2 = 0.0f; + if (m_enableLimit) + { + float32 translation = b2Dot(axis, d); + if (b2Abs(m_upperTranslation - m_lowerTranslation) < 2.0f * b2_linearSlop) + { + // Prevent large angular corrections + C2 = b2Clamp(translation, -b2_maxLinearCorrection, b2_maxLinearCorrection); + linearError = b2Max(linearError, b2Abs(translation)); + active = true; + } + else if (translation <= m_lowerTranslation) + { + // Prevent large linear corrections and allow some slop. + C2 = b2Clamp(translation - m_lowerTranslation + b2_linearSlop, -b2_maxLinearCorrection, 0.0f); + linearError = b2Max(linearError, m_lowerTranslation - translation); + active = true; + } + else if (translation >= m_upperTranslation) + { + // Prevent large linear corrections and allow some slop. + C2 = b2Clamp(translation - m_upperTranslation - b2_linearSlop, 0.0f, b2_maxLinearCorrection); + linearError = b2Max(linearError, translation - m_upperTranslation); + active = true; + } + } + + if (active) + { + float32 k11 = mA + mB + iA * s1 * s1 + iB * s2 * s2; + float32 k12 = iA * s1 + iB * s2; + float32 k13 = iA * s1 * a1 + iB * s2 * a2; + float32 k22 = iA + iB; + if (k22 == 0.0f) + { + // For fixed rotation + k22 = 1.0f; + } + float32 k23 = iA * a1 + iB * a2; + float32 k33 = mA + mB + iA * a1 * a1 + iB * a2 * a2; + + b2Mat33 K; + K.ex.Set(k11, k12, k13); + K.ey.Set(k12, k22, k23); + K.ez.Set(k13, k23, k33); + + b2Vec3 C; + C.x = C1.x; + C.y = C1.y; + C.z = C2; + + impulse = K.Solve33(-C); + } + else + { + float32 k11 = mA + mB + iA * s1 * s1 + iB * s2 * s2; + float32 k12 = iA * s1 + iB * s2; + float32 k22 = iA + iB; + if (k22 == 0.0f) + { + k22 = 1.0f; + } + + b2Mat22 K; + K.ex.Set(k11, k12); + K.ey.Set(k12, k22); + + b2Vec2 impulse1 = K.Solve(-C1); + impulse.x = impulse1.x; + impulse.y = impulse1.y; + impulse.z = 0.0f; + } + + b2Vec2 P = impulse.x * perp + impulse.z * axis; + float32 LA = impulse.x * s1 + impulse.y + impulse.z * a1; + float32 LB = impulse.x * s2 + impulse.y + impulse.z * a2; + + cA -= mA * P; + aA -= iA * LA; + cB += mB * P; + aB += iB * LB; + + data.positions[m_indexA].c = cA; + data.positions[m_indexA].a = aA; + data.positions[m_indexB].c = cB; + data.positions[m_indexB].a = aB; + + return linearError <= b2_linearSlop && angularError <= b2_angularSlop; +} + +b2Vec2 b2PrismaticJoint::GetAnchorA() const +{ + return m_bodyA->GetWorldPoint(m_localAnchorA); +} + +b2Vec2 b2PrismaticJoint::GetAnchorB() const +{ + return m_bodyB->GetWorldPoint(m_localAnchorB); +} + +b2Vec2 b2PrismaticJoint::GetReactionForce(float32 inv_dt) const +{ + return inv_dt * (m_impulse.x * m_perp + (m_motorImpulse + m_impulse.z) * m_axis); +} + +float32 b2PrismaticJoint::GetReactionTorque(float32 inv_dt) const +{ + return inv_dt * m_impulse.y; +} + +float32 b2PrismaticJoint::GetJointTranslation() const +{ + b2Vec2 pA = m_bodyA->GetWorldPoint(m_localAnchorA); + b2Vec2 pB = m_bodyB->GetWorldPoint(m_localAnchorB); + b2Vec2 d = pB - pA; + b2Vec2 axis = m_bodyA->GetWorldVector(m_localXAxisA); + + float32 translation = b2Dot(d, axis); + return translation; +} + +float32 b2PrismaticJoint::GetJointSpeed() const +{ + b2Body* bA = m_bodyA; + b2Body* bB = m_bodyB; + + b2Vec2 rA = b2Mul(bA->m_xf.q, m_localAnchorA - bA->m_sweep.localCenter); + b2Vec2 rB = b2Mul(bB->m_xf.q, m_localAnchorB - bB->m_sweep.localCenter); + b2Vec2 p1 = bA->m_sweep.c + rA; + b2Vec2 p2 = bB->m_sweep.c + rB; + b2Vec2 d = p2 - p1; + b2Vec2 axis = b2Mul(bA->m_xf.q, m_localXAxisA); + + b2Vec2 vA = bA->m_linearVelocity; + b2Vec2 vB = bB->m_linearVelocity; + float32 wA = bA->m_angularVelocity; + float32 wB = bB->m_angularVelocity; + + float32 speed = b2Dot(d, b2Cross(wA, axis)) + b2Dot(axis, vB + b2Cross(wB, rB) - vA - b2Cross(wA, rA)); + return speed; +} + +bool b2PrismaticJoint::IsLimitEnabled() const +{ + return m_enableLimit; +} + +void b2PrismaticJoint::EnableLimit(bool flag) +{ + if (flag != m_enableLimit) + { + m_bodyA->SetAwake(true); + m_bodyB->SetAwake(true); + m_enableLimit = flag; + m_impulse.z = 0.0f; + } +} + +float32 b2PrismaticJoint::GetLowerLimit() const +{ + return m_lowerTranslation; +} + +float32 b2PrismaticJoint::GetUpperLimit() const +{ + return m_upperTranslation; +} + +void b2PrismaticJoint::SetLimits(float32 lower, float32 upper) +{ + b2Assert(lower <= upper); + if (lower != m_lowerTranslation || upper != m_upperTranslation) + { + m_bodyA->SetAwake(true); + m_bodyB->SetAwake(true); + m_lowerTranslation = lower; + m_upperTranslation = upper; + m_impulse.z = 0.0f; + } +} + +bool b2PrismaticJoint::IsMotorEnabled() const +{ + return m_enableMotor; +} + +void b2PrismaticJoint::EnableMotor(bool flag) +{ + m_bodyA->SetAwake(true); + m_bodyB->SetAwake(true); + m_enableMotor = flag; +} + +void b2PrismaticJoint::SetMotorSpeed(float32 speed) +{ + m_bodyA->SetAwake(true); + m_bodyB->SetAwake(true); + m_motorSpeed = speed; +} + +void b2PrismaticJoint::SetMaxMotorForce(float32 force) +{ + m_bodyA->SetAwake(true); + m_bodyB->SetAwake(true); + m_maxMotorForce = force; +} + +float32 b2PrismaticJoint::GetMotorForce(float32 inv_dt) const +{ + return inv_dt * m_motorImpulse; +} + +void b2PrismaticJoint::Dump() +{ + int32 indexA = m_bodyA->m_islandIndex; + int32 indexB = m_bodyB->m_islandIndex; + + b2Log(" b2PrismaticJointDef jd;\n"); + b2Log(" jd.bodyA = bodies[%d];\n", indexA); + b2Log(" jd.bodyB = bodies[%d];\n", indexB); + b2Log(" jd.collideConnected = bool(%d);\n", m_collideConnected); + b2Log(" jd.localAnchorA.Set(%.15lef, %.15lef);\n", m_localAnchorA.x, m_localAnchorA.y); + b2Log(" jd.localAnchorB.Set(%.15lef, %.15lef);\n", m_localAnchorB.x, m_localAnchorB.y); + b2Log(" jd.localAxisA.Set(%.15lef, %.15lef);\n", m_localXAxisA.x, m_localXAxisA.y); + b2Log(" jd.referenceAngle = %.15lef;\n", m_referenceAngle); + b2Log(" jd.enableLimit = bool(%d);\n", m_enableLimit); + b2Log(" jd.lowerTranslation = %.15lef;\n", m_lowerTranslation); + b2Log(" jd.upperTranslation = %.15lef;\n", m_upperTranslation); + b2Log(" jd.enableMotor = bool(%d);\n", m_enableMotor); + b2Log(" jd.motorSpeed = %.15lef;\n", m_motorSpeed); + b2Log(" jd.maxMotorForce = %.15lef;\n", m_maxMotorForce); + b2Log(" joints[%d] = m_world->CreateJoint(&jd);\n", m_index); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PrismaticJoint.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PrismaticJoint.h new file mode 100644 index 0000000..f18abd3 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PrismaticJoint.h @@ -0,0 +1,196 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_PRISMATIC_JOINT_H +#define B2_PRISMATIC_JOINT_H + +#include "Dynamics/Joints/b2Joint.h" + +/// Prismatic joint definition. This requires defining a line of +/// motion using an axis and an anchor point. The definition uses local +/// anchor points and a local axis so that the initial configuration +/// can violate the constraint slightly. The joint translation is zero +/// when the local anchor points coincide in world space. Using local +/// anchors and a local axis helps when saving and loading a game. +struct b2PrismaticJointDef : public b2JointDef +{ + b2PrismaticJointDef() + { + type = e_prismaticJoint; + localAnchorA.SetZero(); + localAnchorB.SetZero(); + localAxisA.Set(1.0f, 0.0f); + referenceAngle = 0.0f; + enableLimit = false; + lowerTranslation = 0.0f; + upperTranslation = 0.0f; + enableMotor = false; + maxMotorForce = 0.0f; + motorSpeed = 0.0f; + } + + /// Initialize the bodies, anchors, axis, and reference angle using the world + /// anchor and unit world axis. + void Initialize(b2Body* bodyA, b2Body* bodyB, const b2Vec2& anchor, const b2Vec2& axis); + + /// The local anchor point relative to bodyA's origin. + b2Vec2 localAnchorA; + + /// The local anchor point relative to bodyB's origin. + b2Vec2 localAnchorB; + + /// The local translation unit axis in bodyA. + b2Vec2 localAxisA; + + /// The constrained angle between the bodies: bodyB_angle - bodyA_angle. + float32 referenceAngle; + + /// Enable/disable the joint limit. + bool enableLimit; + + /// The lower translation limit, usually in meters. + float32 lowerTranslation; + + /// The upper translation limit, usually in meters. + float32 upperTranslation; + + /// Enable/disable the joint motor. + bool enableMotor; + + /// The maximum motor torque, usually in N-m. + float32 maxMotorForce; + + /// The desired motor speed in radians per second. + float32 motorSpeed; +}; + +/// A prismatic joint. This joint provides one degree of freedom: translation +/// along an axis fixed in bodyA. Relative rotation is prevented. You can +/// use a joint limit to restrict the range of motion and a joint motor to +/// drive the motion or to model joint friction. +class b2PrismaticJoint : public b2Joint +{ +public: + b2Vec2 GetAnchorA() const; + b2Vec2 GetAnchorB() const; + + b2Vec2 GetReactionForce(float32 inv_dt) const; + float32 GetReactionTorque(float32 inv_dt) const; + + /// The local anchor point relative to bodyA's origin. + const b2Vec2& GetLocalAnchorA() const { return m_localAnchorA; } + + /// The local anchor point relative to bodyB's origin. + const b2Vec2& GetLocalAnchorB() const { return m_localAnchorB; } + + /// The local joint axis relative to bodyA. + const b2Vec2& GetLocalAxisA() const { return m_localXAxisA; } + + /// Get the reference angle. + float32 GetReferenceAngle() const { return m_referenceAngle; } + + /// Get the current joint translation, usually in meters. + float32 GetJointTranslation() const; + + /// Get the current joint translation speed, usually in meters per second. + float32 GetJointSpeed() const; + + /// Is the joint limit enabled? + bool IsLimitEnabled() const; + + /// Enable/disable the joint limit. + void EnableLimit(bool flag); + + /// Get the lower joint limit, usually in meters. + float32 GetLowerLimit() const; + + /// Get the upper joint limit, usually in meters. + float32 GetUpperLimit() const; + + /// Set the joint limits, usually in meters. + void SetLimits(float32 lower, float32 upper); + + /// Is the joint motor enabled? + bool IsMotorEnabled() const; + + /// Enable/disable the joint motor. + void EnableMotor(bool flag); + + /// Set the motor speed, usually in meters per second. + void SetMotorSpeed(float32 speed); + + /// Get the motor speed, usually in meters per second. + float32 GetMotorSpeed() const; + + /// Set the maximum motor force, usually in N. + void SetMaxMotorForce(float32 force); + float32 GetMaxMotorForce() const { return m_maxMotorForce; } + + /// Get the current motor force given the inverse time step, usually in N. + float32 GetMotorForce(float32 inv_dt) const; + + /// Dump to b2Log + void Dump(); + +protected: + friend class b2Joint; + friend class b2GearJoint; + b2PrismaticJoint(const b2PrismaticJointDef* def); + + void InitVelocityConstraints(const b2SolverData& data); + void SolveVelocityConstraints(const b2SolverData& data); + bool SolvePositionConstraints(const b2SolverData& data); + + // Solver shared + b2Vec2 m_localAnchorA; + b2Vec2 m_localAnchorB; + b2Vec2 m_localXAxisA; + b2Vec2 m_localYAxisA; + float32 m_referenceAngle; + b2Vec3 m_impulse; + float32 m_motorImpulse; + float32 m_lowerTranslation; + float32 m_upperTranslation; + float32 m_maxMotorForce; + float32 m_motorSpeed; + bool m_enableLimit; + bool m_enableMotor; + b2LimitState m_limitState; + + // Solver temp + int32 m_indexA; + int32 m_indexB; + b2Vec2 m_localCenterA; + b2Vec2 m_localCenterB; + float32 m_invMassA; + float32 m_invMassB; + float32 m_invIA; + float32 m_invIB; + b2Vec2 m_axis, m_perp; + float32 m_s1, m_s2; + float32 m_a1, m_a2; + b2Mat33 m_K; + float32 m_motorMass; +}; + +inline float32 b2PrismaticJoint::GetMotorSpeed() const +{ + return m_motorSpeed; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PulleyJoint.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PulleyJoint.cpp new file mode 100644 index 0000000..9cd340f --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PulleyJoint.cpp @@ -0,0 +1,348 @@ +/* +* Copyright (c) 2007 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include + +// Pulley: +// length1 = norm(p1 - s1) +// length2 = norm(p2 - s2) +// C0 = (length1 + ratio * length2)_initial +// C = C0 - (length1 + ratio * length2) +// u1 = (p1 - s1) / norm(p1 - s1) +// u2 = (p2 - s2) / norm(p2 - s2) +// Cdot = -dot(u1, v1 + cross(w1, r1)) - ratio * dot(u2, v2 + cross(w2, r2)) +// J = -[u1 cross(r1, u1) ratio * u2 ratio * cross(r2, u2)] +// K = J * invM * JT +// = invMass1 + invI1 * cross(r1, u1)^2 + ratio^2 * (invMass2 + invI2 * cross(r2, u2)^2) + +void b2PulleyJointDef::Initialize(b2Body* bA, b2Body* bB, + const b2Vec2& groundA, const b2Vec2& groundB, + const b2Vec2& anchorA, const b2Vec2& anchorB, + float32 r) +{ + bodyA = bA; + bodyB = bB; + groundAnchorA = groundA; + groundAnchorB = groundB; + localAnchorA = bodyA->GetLocalPoint(anchorA); + localAnchorB = bodyB->GetLocalPoint(anchorB); + b2Vec2 dA = anchorA - groundA; + lengthA = dA.Length(); + b2Vec2 dB = anchorB - groundB; + lengthB = dB.Length(); + ratio = r; + b2Assert(ratio > b2_epsilon); +} + +b2PulleyJoint::b2PulleyJoint(const b2PulleyJointDef* def) +: b2Joint(def) +{ + m_groundAnchorA = def->groundAnchorA; + m_groundAnchorB = def->groundAnchorB; + m_localAnchorA = def->localAnchorA; + m_localAnchorB = def->localAnchorB; + + m_lengthA = def->lengthA; + m_lengthB = def->lengthB; + + b2Assert(def->ratio != 0.0f); + m_ratio = def->ratio; + + m_constant = def->lengthA + m_ratio * def->lengthB; + + m_impulse = 0.0f; +} + +void b2PulleyJoint::InitVelocityConstraints(const b2SolverData& data) +{ + m_indexA = m_bodyA->m_islandIndex; + m_indexB = m_bodyB->m_islandIndex; + m_localCenterA = m_bodyA->m_sweep.localCenter; + m_localCenterB = m_bodyB->m_sweep.localCenter; + m_invMassA = m_bodyA->m_invMass; + m_invMassB = m_bodyB->m_invMass; + m_invIA = m_bodyA->m_invI; + m_invIB = m_bodyB->m_invI; + + b2Vec2 cA = data.positions[m_indexA].c; + float32 aA = data.positions[m_indexA].a; + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + + b2Vec2 cB = data.positions[m_indexB].c; + float32 aB = data.positions[m_indexB].a; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + b2Rot qA(aA), qB(aB); + + m_rA = b2Mul(qA, m_localAnchorA - m_localCenterA); + m_rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + + // Get the pulley axes. + m_uA = cA + m_rA - m_groundAnchorA; + m_uB = cB + m_rB - m_groundAnchorB; + + float32 lengthA = m_uA.Length(); + float32 lengthB = m_uB.Length(); + + if (lengthA > 10.0f * b2_linearSlop) + { + m_uA *= 1.0f / lengthA; + } + else + { + m_uA.SetZero(); + } + + if (lengthB > 10.0f * b2_linearSlop) + { + m_uB *= 1.0f / lengthB; + } + else + { + m_uB.SetZero(); + } + + // Compute effective mass. + float32 ruA = b2Cross(m_rA, m_uA); + float32 ruB = b2Cross(m_rB, m_uB); + + float32 mA = m_invMassA + m_invIA * ruA * ruA; + float32 mB = m_invMassB + m_invIB * ruB * ruB; + + m_mass = mA + m_ratio * m_ratio * mB; + + if (m_mass > 0.0f) + { + m_mass = 1.0f / m_mass; + } + + if (data.step.warmStarting) + { + // Scale impulses to support variable time steps. + m_impulse *= data.step.dtRatio; + + // Warm starting. + b2Vec2 PA = -(m_impulse) * m_uA; + b2Vec2 PB = (-m_ratio * m_impulse) * m_uB; + + vA += m_invMassA * PA; + wA += m_invIA * b2Cross(m_rA, PA); + vB += m_invMassB * PB; + wB += m_invIB * b2Cross(m_rB, PB); + } + else + { + m_impulse = 0.0f; + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +void b2PulleyJoint::SolveVelocityConstraints(const b2SolverData& data) +{ + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + b2Vec2 vpA = vA + b2Cross(wA, m_rA); + b2Vec2 vpB = vB + b2Cross(wB, m_rB); + + float32 Cdot = -b2Dot(m_uA, vpA) - m_ratio * b2Dot(m_uB, vpB); + float32 impulse = -m_mass * Cdot; + m_impulse += impulse; + + b2Vec2 PA = -impulse * m_uA; + b2Vec2 PB = -m_ratio * impulse * m_uB; + vA += m_invMassA * PA; + wA += m_invIA * b2Cross(m_rA, PA); + vB += m_invMassB * PB; + wB += m_invIB * b2Cross(m_rB, PB); + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +bool b2PulleyJoint::SolvePositionConstraints(const b2SolverData& data) +{ + b2Vec2 cA = data.positions[m_indexA].c; + float32 aA = data.positions[m_indexA].a; + b2Vec2 cB = data.positions[m_indexB].c; + float32 aB = data.positions[m_indexB].a; + + b2Rot qA(aA), qB(aB); + + b2Vec2 rA = b2Mul(qA, m_localAnchorA - m_localCenterA); + b2Vec2 rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + + // Get the pulley axes. + b2Vec2 uA = cA + rA - m_groundAnchorA; + b2Vec2 uB = cB + rB - m_groundAnchorB; + + float32 lengthA = uA.Length(); + float32 lengthB = uB.Length(); + + if (lengthA > 10.0f * b2_linearSlop) + { + uA *= 1.0f / lengthA; + } + else + { + uA.SetZero(); + } + + if (lengthB > 10.0f * b2_linearSlop) + { + uB *= 1.0f / lengthB; + } + else + { + uB.SetZero(); + } + + // Compute effective mass. + float32 ruA = b2Cross(rA, uA); + float32 ruB = b2Cross(rB, uB); + + float32 mA = m_invMassA + m_invIA * ruA * ruA; + float32 mB = m_invMassB + m_invIB * ruB * ruB; + + float32 mass = mA + m_ratio * m_ratio * mB; + + if (mass > 0.0f) + { + mass = 1.0f / mass; + } + + float32 C = m_constant - lengthA - m_ratio * lengthB; + float32 linearError = b2Abs(C); + + float32 impulse = -mass * C; + + b2Vec2 PA = -impulse * uA; + b2Vec2 PB = -m_ratio * impulse * uB; + + cA += m_invMassA * PA; + aA += m_invIA * b2Cross(rA, PA); + cB += m_invMassB * PB; + aB += m_invIB * b2Cross(rB, PB); + + data.positions[m_indexA].c = cA; + data.positions[m_indexA].a = aA; + data.positions[m_indexB].c = cB; + data.positions[m_indexB].a = aB; + + return linearError < b2_linearSlop; +} + +b2Vec2 b2PulleyJoint::GetAnchorA() const +{ + return m_bodyA->GetWorldPoint(m_localAnchorA); +} + +b2Vec2 b2PulleyJoint::GetAnchorB() const +{ + return m_bodyB->GetWorldPoint(m_localAnchorB); +} + +b2Vec2 b2PulleyJoint::GetReactionForce(float32 inv_dt) const +{ + b2Vec2 P = m_impulse * m_uB; + return inv_dt * P; +} + +float32 b2PulleyJoint::GetReactionTorque(float32 inv_dt) const +{ + B2_NOT_USED(inv_dt); + return 0.0f; +} + +b2Vec2 b2PulleyJoint::GetGroundAnchorA() const +{ + return m_groundAnchorA; +} + +b2Vec2 b2PulleyJoint::GetGroundAnchorB() const +{ + return m_groundAnchorB; +} + +float32 b2PulleyJoint::GetLengthA() const +{ + return m_lengthA; +} + +float32 b2PulleyJoint::GetLengthB() const +{ + return m_lengthB; +} + +float32 b2PulleyJoint::GetRatio() const +{ + return m_ratio; +} + +float32 b2PulleyJoint::GetCurrentLengthA() const +{ + b2Vec2 p = m_bodyA->GetWorldPoint(m_localAnchorA); + b2Vec2 s = m_groundAnchorA; + b2Vec2 d = p - s; + return d.Length(); +} + +float32 b2PulleyJoint::GetCurrentLengthB() const +{ + b2Vec2 p = m_bodyB->GetWorldPoint(m_localAnchorB); + b2Vec2 s = m_groundAnchorB; + b2Vec2 d = p - s; + return d.Length(); +} + +void b2PulleyJoint::Dump() +{ + int32 indexA = m_bodyA->m_islandIndex; + int32 indexB = m_bodyB->m_islandIndex; + + b2Log(" b2PulleyJointDef jd;\n"); + b2Log(" jd.bodyA = bodies[%d];\n", indexA); + b2Log(" jd.bodyB = bodies[%d];\n", indexB); + b2Log(" jd.collideConnected = bool(%d);\n", m_collideConnected); + b2Log(" jd.groundAnchorA.Set(%.15lef, %.15lef);\n", m_groundAnchorA.x, m_groundAnchorA.y); + b2Log(" jd.groundAnchorB.Set(%.15lef, %.15lef);\n", m_groundAnchorB.x, m_groundAnchorB.y); + b2Log(" jd.localAnchorA.Set(%.15lef, %.15lef);\n", m_localAnchorA.x, m_localAnchorA.y); + b2Log(" jd.localAnchorB.Set(%.15lef, %.15lef);\n", m_localAnchorB.x, m_localAnchorB.y); + b2Log(" jd.lengthA = %.15lef;\n", m_lengthA); + b2Log(" jd.lengthB = %.15lef;\n", m_lengthB); + b2Log(" jd.ratio = %.15lef;\n", m_ratio); + b2Log(" joints[%d] = m_world->CreateJoint(&jd);\n", m_index); +} + +void b2PulleyJoint::ShiftOrigin(const b2Vec2& newOrigin) +{ + m_groundAnchorA -= newOrigin; + m_groundAnchorB -= newOrigin; +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PulleyJoint.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PulleyJoint.h new file mode 100644 index 0000000..a49fc3e --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2PulleyJoint.h @@ -0,0 +1,152 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_PULLEY_JOINT_H +#define B2_PULLEY_JOINT_H + +#include "Dynamics/Joints/b2Joint.h" + +const float32 b2_minPulleyLength = 2.0f; + +/// Pulley joint definition. This requires two ground anchors, +/// two dynamic body anchor points, and a pulley ratio. +struct b2PulleyJointDef : public b2JointDef +{ + b2PulleyJointDef() + { + type = e_pulleyJoint; + groundAnchorA.Set(-1.0f, 1.0f); + groundAnchorB.Set(1.0f, 1.0f); + localAnchorA.Set(-1.0f, 0.0f); + localAnchorB.Set(1.0f, 0.0f); + lengthA = 0.0f; + lengthB = 0.0f; + ratio = 1.0f; + collideConnected = true; + } + + /// Initialize the bodies, anchors, lengths, max lengths, and ratio using the world anchors. + void Initialize(b2Body* bodyA, b2Body* bodyB, + const b2Vec2& groundAnchorA, const b2Vec2& groundAnchorB, + const b2Vec2& anchorA, const b2Vec2& anchorB, + float32 ratio); + + /// The first ground anchor in world coordinates. This point never moves. + b2Vec2 groundAnchorA; + + /// The second ground anchor in world coordinates. This point never moves. + b2Vec2 groundAnchorB; + + /// The local anchor point relative to bodyA's origin. + b2Vec2 localAnchorA; + + /// The local anchor point relative to bodyB's origin. + b2Vec2 localAnchorB; + + /// The a reference length for the segment attached to bodyA. + float32 lengthA; + + /// The a reference length for the segment attached to bodyB. + float32 lengthB; + + /// The pulley ratio, used to simulate a block-and-tackle. + float32 ratio; +}; + +/// The pulley joint is connected to two bodies and two fixed ground points. +/// The pulley supports a ratio such that: +/// length1 + ratio * length2 <= constant +/// Yes, the force transmitted is scaled by the ratio. +/// Warning: the pulley joint can get a bit squirrelly by itself. They often +/// work better when combined with prismatic joints. You should also cover the +/// the anchor points with static shapes to prevent one side from going to +/// zero length. +class b2PulleyJoint : public b2Joint +{ +public: + b2Vec2 GetAnchorA() const; + b2Vec2 GetAnchorB() const; + + b2Vec2 GetReactionForce(float32 inv_dt) const; + float32 GetReactionTorque(float32 inv_dt) const; + + /// Get the first ground anchor. + b2Vec2 GetGroundAnchorA() const; + + /// Get the second ground anchor. + b2Vec2 GetGroundAnchorB() const; + + /// Get the current length of the segment attached to bodyA. + float32 GetLengthA() const; + + /// Get the current length of the segment attached to bodyB. + float32 GetLengthB() const; + + /// Get the pulley ratio. + float32 GetRatio() const; + + /// Get the current length of the segment attached to bodyA. + float32 GetCurrentLengthA() const; + + /// Get the current length of the segment attached to bodyB. + float32 GetCurrentLengthB() const; + + /// Dump joint to dmLog + void Dump(); + + /// Implement b2Joint::ShiftOrigin + void ShiftOrigin(const b2Vec2& newOrigin); + +protected: + + friend class b2Joint; + b2PulleyJoint(const b2PulleyJointDef* data); + + void InitVelocityConstraints(const b2SolverData& data); + void SolveVelocityConstraints(const b2SolverData& data); + bool SolvePositionConstraints(const b2SolverData& data); + + b2Vec2 m_groundAnchorA; + b2Vec2 m_groundAnchorB; + float32 m_lengthA; + float32 m_lengthB; + + // Solver shared + b2Vec2 m_localAnchorA; + b2Vec2 m_localAnchorB; + float32 m_constant; + float32 m_ratio; + float32 m_impulse; + + // Solver temp + int32 m_indexA; + int32 m_indexB; + b2Vec2 m_uA; + b2Vec2 m_uB; + b2Vec2 m_rA; + b2Vec2 m_rB; + b2Vec2 m_localCenterA; + b2Vec2 m_localCenterB; + float32 m_invMassA; + float32 m_invMassB; + float32 m_invIA; + float32 m_invIB; + float32 m_mass; +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp new file mode 100644 index 0000000..64bd190 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RevoluteJoint.cpp @@ -0,0 +1,502 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include + +// Point-to-point constraint +// C = p2 - p1 +// Cdot = v2 - v1 +// = v2 + cross(w2, r2) - v1 - cross(w1, r1) +// J = [-I -r1_skew I r2_skew ] +// Identity used: +// w k % (rx i + ry j) = w * (-ry i + rx j) + +// Motor constraint +// Cdot = w2 - w1 +// J = [0 0 -1 0 0 1] +// K = invI1 + invI2 + +void b2RevoluteJointDef::Initialize(b2Body* bA, b2Body* bB, const b2Vec2& anchor) +{ + bodyA = bA; + bodyB = bB; + localAnchorA = bodyA->GetLocalPoint(anchor); + localAnchorB = bodyB->GetLocalPoint(anchor); + referenceAngle = bodyB->GetAngle() - bodyA->GetAngle(); +} + +b2RevoluteJoint::b2RevoluteJoint(const b2RevoluteJointDef* def) +: b2Joint(def) +{ + m_localAnchorA = def->localAnchorA; + m_localAnchorB = def->localAnchorB; + m_referenceAngle = def->referenceAngle; + + m_impulse.SetZero(); + m_motorImpulse = 0.0f; + + m_lowerAngle = def->lowerAngle; + m_upperAngle = def->upperAngle; + m_maxMotorTorque = def->maxMotorTorque; + m_motorSpeed = def->motorSpeed; + m_enableLimit = def->enableLimit; + m_enableMotor = def->enableMotor; + m_limitState = e_inactiveLimit; +} + +void b2RevoluteJoint::InitVelocityConstraints(const b2SolverData& data) +{ + m_indexA = m_bodyA->m_islandIndex; + m_indexB = m_bodyB->m_islandIndex; + m_localCenterA = m_bodyA->m_sweep.localCenter; + m_localCenterB = m_bodyB->m_sweep.localCenter; + m_invMassA = m_bodyA->m_invMass; + m_invMassB = m_bodyB->m_invMass; + m_invIA = m_bodyA->m_invI; + m_invIB = m_bodyB->m_invI; + + float32 aA = data.positions[m_indexA].a; + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + + float32 aB = data.positions[m_indexB].a; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + b2Rot qA(aA), qB(aB); + + m_rA = b2Mul(qA, m_localAnchorA - m_localCenterA); + m_rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + + // J = [-I -r1_skew I r2_skew] + // [ 0 -1 0 1] + // r_skew = [-ry; rx] + + // Matlab + // K = [ mA+r1y^2*iA+mB+r2y^2*iB, -r1y*iA*r1x-r2y*iB*r2x, -r1y*iA-r2y*iB] + // [ -r1y*iA*r1x-r2y*iB*r2x, mA+r1x^2*iA+mB+r2x^2*iB, r1x*iA+r2x*iB] + // [ -r1y*iA-r2y*iB, r1x*iA+r2x*iB, iA+iB] + + float32 mA = m_invMassA, mB = m_invMassB; + float32 iA = m_invIA, iB = m_invIB; + + bool fixedRotation = (iA + iB == 0.0f); + + m_mass.ex.x = mA + mB + m_rA.y * m_rA.y * iA + m_rB.y * m_rB.y * iB; + m_mass.ey.x = -m_rA.y * m_rA.x * iA - m_rB.y * m_rB.x * iB; + m_mass.ez.x = -m_rA.y * iA - m_rB.y * iB; + m_mass.ex.y = m_mass.ey.x; + m_mass.ey.y = mA + mB + m_rA.x * m_rA.x * iA + m_rB.x * m_rB.x * iB; + m_mass.ez.y = m_rA.x * iA + m_rB.x * iB; + m_mass.ex.z = m_mass.ez.x; + m_mass.ey.z = m_mass.ez.y; + m_mass.ez.z = iA + iB; + + m_motorMass = iA + iB; + if (m_motorMass > 0.0f) + { + m_motorMass = 1.0f / m_motorMass; + } + + if (m_enableMotor == false || fixedRotation) + { + m_motorImpulse = 0.0f; + } + + if (m_enableLimit && fixedRotation == false) + { + float32 jointAngle = aB - aA - m_referenceAngle; + if (b2Abs(m_upperAngle - m_lowerAngle) < 2.0f * b2_angularSlop) + { + m_limitState = e_equalLimits; + } + else if (jointAngle <= m_lowerAngle) + { + if (m_limitState != e_atLowerLimit) + { + m_impulse.z = 0.0f; + } + m_limitState = e_atLowerLimit; + } + else if (jointAngle >= m_upperAngle) + { + if (m_limitState != e_atUpperLimit) + { + m_impulse.z = 0.0f; + } + m_limitState = e_atUpperLimit; + } + else + { + m_limitState = e_inactiveLimit; + m_impulse.z = 0.0f; + } + } + else + { + m_limitState = e_inactiveLimit; + } + + if (data.step.warmStarting) + { + // Scale impulses to support a variable time step. + m_impulse *= data.step.dtRatio; + m_motorImpulse *= data.step.dtRatio; + + b2Vec2 P(m_impulse.x, m_impulse.y); + + vA -= mA * P; + wA -= iA * (b2Cross(m_rA, P) + m_motorImpulse + m_impulse.z); + + vB += mB * P; + wB += iB * (b2Cross(m_rB, P) + m_motorImpulse + m_impulse.z); + } + else + { + m_impulse.SetZero(); + m_motorImpulse = 0.0f; + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +void b2RevoluteJoint::SolveVelocityConstraints(const b2SolverData& data) +{ + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + float32 mA = m_invMassA, mB = m_invMassB; + float32 iA = m_invIA, iB = m_invIB; + + bool fixedRotation = (iA + iB == 0.0f); + + // Solve motor constraint. + if (m_enableMotor && m_limitState != e_equalLimits && fixedRotation == false) + { + float32 Cdot = wB - wA - m_motorSpeed; + float32 impulse = -m_motorMass * Cdot; + float32 oldImpulse = m_motorImpulse; + float32 maxImpulse = data.step.dt * m_maxMotorTorque; + m_motorImpulse = b2Clamp(m_motorImpulse + impulse, -maxImpulse, maxImpulse); + impulse = m_motorImpulse - oldImpulse; + + wA -= iA * impulse; + wB += iB * impulse; + } + + // Solve limit constraint. + if (m_enableLimit && m_limitState != e_inactiveLimit && fixedRotation == false) + { + b2Vec2 Cdot1 = vB + b2Cross(wB, m_rB) - vA - b2Cross(wA, m_rA); + float32 Cdot2 = wB - wA; + b2Vec3 Cdot(Cdot1.x, Cdot1.y, Cdot2); + + b2Vec3 impulse = -m_mass.Solve33(Cdot); + + if (m_limitState == e_equalLimits) + { + m_impulse += impulse; + } + else if (m_limitState == e_atLowerLimit) + { + float32 newImpulse = m_impulse.z + impulse.z; + if (newImpulse < 0.0f) + { + b2Vec2 rhs = -Cdot1 + m_impulse.z * b2Vec2(m_mass.ez.x, m_mass.ez.y); + b2Vec2 reduced = m_mass.Solve22(rhs); + impulse.x = reduced.x; + impulse.y = reduced.y; + impulse.z = -m_impulse.z; + m_impulse.x += reduced.x; + m_impulse.y += reduced.y; + m_impulse.z = 0.0f; + } + else + { + m_impulse += impulse; + } + } + else if (m_limitState == e_atUpperLimit) + { + float32 newImpulse = m_impulse.z + impulse.z; + if (newImpulse > 0.0f) + { + b2Vec2 rhs = -Cdot1 + m_impulse.z * b2Vec2(m_mass.ez.x, m_mass.ez.y); + b2Vec2 reduced = m_mass.Solve22(rhs); + impulse.x = reduced.x; + impulse.y = reduced.y; + impulse.z = -m_impulse.z; + m_impulse.x += reduced.x; + m_impulse.y += reduced.y; + m_impulse.z = 0.0f; + } + else + { + m_impulse += impulse; + } + } + + b2Vec2 P(impulse.x, impulse.y); + + vA -= mA * P; + wA -= iA * (b2Cross(m_rA, P) + impulse.z); + + vB += mB * P; + wB += iB * (b2Cross(m_rB, P) + impulse.z); + } + else + { + // Solve point-to-point constraint + b2Vec2 Cdot = vB + b2Cross(wB, m_rB) - vA - b2Cross(wA, m_rA); + b2Vec2 impulse = m_mass.Solve22(-Cdot); + + m_impulse.x += impulse.x; + m_impulse.y += impulse.y; + + vA -= mA * impulse; + wA -= iA * b2Cross(m_rA, impulse); + + vB += mB * impulse; + wB += iB * b2Cross(m_rB, impulse); + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +bool b2RevoluteJoint::SolvePositionConstraints(const b2SolverData& data) +{ + b2Vec2 cA = data.positions[m_indexA].c; + float32 aA = data.positions[m_indexA].a; + b2Vec2 cB = data.positions[m_indexB].c; + float32 aB = data.positions[m_indexB].a; + + b2Rot qA(aA), qB(aB); + + float32 angularError = 0.0f; + float32 positionError = 0.0f; + + bool fixedRotation = (m_invIA + m_invIB == 0.0f); + + // Solve angular limit constraint. + if (m_enableLimit && m_limitState != e_inactiveLimit && fixedRotation == false) + { + float32 angle = aB - aA - m_referenceAngle; + float32 limitImpulse = 0.0f; + + if (m_limitState == e_equalLimits) + { + // Prevent large angular corrections + float32 C = b2Clamp(angle - m_lowerAngle, -b2_maxAngularCorrection, b2_maxAngularCorrection); + limitImpulse = -m_motorMass * C; + angularError = b2Abs(C); + } + else if (m_limitState == e_atLowerLimit) + { + float32 C = angle - m_lowerAngle; + angularError = -C; + + // Prevent large angular corrections and allow some slop. + C = b2Clamp(C + b2_angularSlop, -b2_maxAngularCorrection, 0.0f); + limitImpulse = -m_motorMass * C; + } + else if (m_limitState == e_atUpperLimit) + { + float32 C = angle - m_upperAngle; + angularError = C; + + // Prevent large angular corrections and allow some slop. + C = b2Clamp(C - b2_angularSlop, 0.0f, b2_maxAngularCorrection); + limitImpulse = -m_motorMass * C; + } + + aA -= m_invIA * limitImpulse; + aB += m_invIB * limitImpulse; + } + + // Solve point-to-point constraint. + { + qA.Set(aA); + qB.Set(aB); + b2Vec2 rA = b2Mul(qA, m_localAnchorA - m_localCenterA); + b2Vec2 rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + + b2Vec2 C = cB + rB - cA - rA; + positionError = C.Length(); + + float32 mA = m_invMassA, mB = m_invMassB; + float32 iA = m_invIA, iB = m_invIB; + + b2Mat22 K; + K.ex.x = mA + mB + iA * rA.y * rA.y + iB * rB.y * rB.y; + K.ex.y = -iA * rA.x * rA.y - iB * rB.x * rB.y; + K.ey.x = K.ex.y; + K.ey.y = mA + mB + iA * rA.x * rA.x + iB * rB.x * rB.x; + + b2Vec2 impulse = -K.Solve(C); + + cA -= mA * impulse; + aA -= iA * b2Cross(rA, impulse); + + cB += mB * impulse; + aB += iB * b2Cross(rB, impulse); + } + + data.positions[m_indexA].c = cA; + data.positions[m_indexA].a = aA; + data.positions[m_indexB].c = cB; + data.positions[m_indexB].a = aB; + + return positionError <= b2_linearSlop && angularError <= b2_angularSlop; +} + +b2Vec2 b2RevoluteJoint::GetAnchorA() const +{ + return m_bodyA->GetWorldPoint(m_localAnchorA); +} + +b2Vec2 b2RevoluteJoint::GetAnchorB() const +{ + return m_bodyB->GetWorldPoint(m_localAnchorB); +} + +b2Vec2 b2RevoluteJoint::GetReactionForce(float32 inv_dt) const +{ + b2Vec2 P(m_impulse.x, m_impulse.y); + return inv_dt * P; +} + +float32 b2RevoluteJoint::GetReactionTorque(float32 inv_dt) const +{ + return inv_dt * m_impulse.z; +} + +float32 b2RevoluteJoint::GetJointAngle() const +{ + b2Body* bA = m_bodyA; + b2Body* bB = m_bodyB; + return bB->m_sweep.a - bA->m_sweep.a - m_referenceAngle; +} + +float32 b2RevoluteJoint::GetJointSpeed() const +{ + b2Body* bA = m_bodyA; + b2Body* bB = m_bodyB; + return bB->m_angularVelocity - bA->m_angularVelocity; +} + +bool b2RevoluteJoint::IsMotorEnabled() const +{ + return m_enableMotor; +} + +void b2RevoluteJoint::EnableMotor(bool flag) +{ + m_bodyA->SetAwake(true); + m_bodyB->SetAwake(true); + m_enableMotor = flag; +} + +float32 b2RevoluteJoint::GetMotorTorque(float32 inv_dt) const +{ + return inv_dt * m_motorImpulse; +} + +void b2RevoluteJoint::SetMotorSpeed(float32 speed) +{ + m_bodyA->SetAwake(true); + m_bodyB->SetAwake(true); + m_motorSpeed = speed; +} + +void b2RevoluteJoint::SetMaxMotorTorque(float32 torque) +{ + m_bodyA->SetAwake(true); + m_bodyB->SetAwake(true); + m_maxMotorTorque = torque; +} + +bool b2RevoluteJoint::IsLimitEnabled() const +{ + return m_enableLimit; +} + +void b2RevoluteJoint::EnableLimit(bool flag) +{ + if (flag != m_enableLimit) + { + m_bodyA->SetAwake(true); + m_bodyB->SetAwake(true); + m_enableLimit = flag; + m_impulse.z = 0.0f; + } +} + +float32 b2RevoluteJoint::GetLowerLimit() const +{ + return m_lowerAngle; +} + +float32 b2RevoluteJoint::GetUpperLimit() const +{ + return m_upperAngle; +} + +void b2RevoluteJoint::SetLimits(float32 lower, float32 upper) +{ + b2Assert(lower <= upper); + + if (lower != m_lowerAngle || upper != m_upperAngle) + { + m_bodyA->SetAwake(true); + m_bodyB->SetAwake(true); + m_impulse.z = 0.0f; + m_lowerAngle = lower; + m_upperAngle = upper; + } +} + +void b2RevoluteJoint::Dump() +{ + int32 indexA = m_bodyA->m_islandIndex; + int32 indexB = m_bodyB->m_islandIndex; + + b2Log(" b2RevoluteJointDef jd;\n"); + b2Log(" jd.bodyA = bodies[%d];\n", indexA); + b2Log(" jd.bodyB = bodies[%d];\n", indexB); + b2Log(" jd.collideConnected = bool(%d);\n", m_collideConnected); + b2Log(" jd.localAnchorA.Set(%.15lef, %.15lef);\n", m_localAnchorA.x, m_localAnchorA.y); + b2Log(" jd.localAnchorB.Set(%.15lef, %.15lef);\n", m_localAnchorB.x, m_localAnchorB.y); + b2Log(" jd.referenceAngle = %.15lef;\n", m_referenceAngle); + b2Log(" jd.enableLimit = bool(%d);\n", m_enableLimit); + b2Log(" jd.lowerAngle = %.15lef;\n", m_lowerAngle); + b2Log(" jd.upperAngle = %.15lef;\n", m_upperAngle); + b2Log(" jd.enableMotor = bool(%d);\n", m_enableMotor); + b2Log(" jd.motorSpeed = %.15lef;\n", m_motorSpeed); + b2Log(" jd.maxMotorTorque = %.15lef;\n", m_maxMotorTorque); + b2Log(" joints[%d] = m_world->CreateJoint(&jd);\n", m_index); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RevoluteJoint.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RevoluteJoint.h new file mode 100644 index 0000000..ad2bb14 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RevoluteJoint.h @@ -0,0 +1,204 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_REVOLUTE_JOINT_H +#define B2_REVOLUTE_JOINT_H + +#include "Dynamics/Joints/b2Joint.h" + +/// Revolute joint definition. This requires defining an +/// anchor point where the bodies are joined. The definition +/// uses local anchor points so that the initial configuration +/// can violate the constraint slightly. You also need to +/// specify the initial relative angle for joint limits. This +/// helps when saving and loading a game. +/// The local anchor points are measured from the body's origin +/// rather than the center of mass because: +/// 1. you might not know where the center of mass will be. +/// 2. if you add/remove shapes from a body and recompute the mass, +/// the joints will be broken. +struct b2RevoluteJointDef : public b2JointDef +{ + b2RevoluteJointDef() + { + type = e_revoluteJoint; + localAnchorA.Set(0.0f, 0.0f); + localAnchorB.Set(0.0f, 0.0f); + referenceAngle = 0.0f; + lowerAngle = 0.0f; + upperAngle = 0.0f; + maxMotorTorque = 0.0f; + motorSpeed = 0.0f; + enableLimit = false; + enableMotor = false; + } + + /// Initialize the bodies, anchors, and reference angle using a world + /// anchor point. + void Initialize(b2Body* bodyA, b2Body* bodyB, const b2Vec2& anchor); + + /// The local anchor point relative to bodyA's origin. + b2Vec2 localAnchorA; + + /// The local anchor point relative to bodyB's origin. + b2Vec2 localAnchorB; + + /// The bodyB angle minus bodyA angle in the reference state (radians). + float32 referenceAngle; + + /// A flag to enable joint limits. + bool enableLimit; + + /// The lower angle for the joint limit (radians). + float32 lowerAngle; + + /// The upper angle for the joint limit (radians). + float32 upperAngle; + + /// A flag to enable the joint motor. + bool enableMotor; + + /// The desired motor speed. Usually in radians per second. + float32 motorSpeed; + + /// The maximum motor torque used to achieve the desired motor speed. + /// Usually in N-m. + float32 maxMotorTorque; +}; + +/// A revolute joint constrains two bodies to share a common point while they +/// are free to rotate about the point. The relative rotation about the shared +/// point is the joint angle. You can limit the relative rotation with +/// a joint limit that specifies a lower and upper angle. You can use a motor +/// to drive the relative rotation about the shared point. A maximum motor torque +/// is provided so that infinite forces are not generated. +class b2RevoluteJoint : public b2Joint +{ +public: + b2Vec2 GetAnchorA() const; + b2Vec2 GetAnchorB() const; + + /// The local anchor point relative to bodyA's origin. + const b2Vec2& GetLocalAnchorA() const { return m_localAnchorA; } + + /// The local anchor point relative to bodyB's origin. + const b2Vec2& GetLocalAnchorB() const { return m_localAnchorB; } + + /// Get the reference angle. + float32 GetReferenceAngle() const { return m_referenceAngle; } + + /// Get the current joint angle in radians. + float32 GetJointAngle() const; + + /// Get the current joint angle speed in radians per second. + float32 GetJointSpeed() const; + + /// Is the joint limit enabled? + bool IsLimitEnabled() const; + + /// Enable/disable the joint limit. + void EnableLimit(bool flag); + + /// Get the lower joint limit in radians. + float32 GetLowerLimit() const; + + /// Get the upper joint limit in radians. + float32 GetUpperLimit() const; + + /// Set the joint limits in radians. + void SetLimits(float32 lower, float32 upper); + + /// Is the joint motor enabled? + bool IsMotorEnabled() const; + + /// Enable/disable the joint motor. + void EnableMotor(bool flag); + + /// Set the motor speed in radians per second. + void SetMotorSpeed(float32 speed); + + /// Get the motor speed in radians per second. + float32 GetMotorSpeed() const; + + /// Set the maximum motor torque, usually in N-m. + void SetMaxMotorTorque(float32 torque); + float32 GetMaxMotorTorque() const { return m_maxMotorTorque; } + + /// Get the reaction force given the inverse time step. + /// Unit is N. + b2Vec2 GetReactionForce(float32 inv_dt) const; + + /// Get the reaction torque due to the joint limit given the inverse time step. + /// Unit is N*m. + float32 GetReactionTorque(float32 inv_dt) const; + + /// Get the current motor torque given the inverse time step. + /// Unit is N*m. + float32 GetMotorTorque(float32 inv_dt) const; + + /// Dump to b2Log. + void Dump(); + +protected: + + friend class b2Joint; + friend class b2GearJoint; + + b2RevoluteJoint(const b2RevoluteJointDef* def); + + void InitVelocityConstraints(const b2SolverData& data); + void SolveVelocityConstraints(const b2SolverData& data); + bool SolvePositionConstraints(const b2SolverData& data); + + // Solver shared + b2Vec2 m_localAnchorA; + b2Vec2 m_localAnchorB; + b2Vec3 m_impulse; + float32 m_motorImpulse; + + bool m_enableMotor; + float32 m_maxMotorTorque; + float32 m_motorSpeed; + + bool m_enableLimit; + float32 m_referenceAngle; + float32 m_lowerAngle; + float32 m_upperAngle; + + // Solver temp + int32 m_indexA; + int32 m_indexB; + b2Vec2 m_rA; + b2Vec2 m_rB; + b2Vec2 m_localCenterA; + b2Vec2 m_localCenterB; + float32 m_invMassA; + float32 m_invMassB; + float32 m_invIA; + float32 m_invIB; + b2Mat33 m_mass; // effective mass for point-to-point constraint. + float32 m_motorMass; // effective mass for motor/limit angular constraint. + b2LimitState m_limitState; +}; + +inline float32 b2RevoluteJoint::GetMotorSpeed() const +{ + return m_motorSpeed; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RopeJoint.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RopeJoint.cpp new file mode 100644 index 0000000..952ee7a --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RopeJoint.cpp @@ -0,0 +1,241 @@ +/* +* Copyright (c) 2007-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include + + +// Limit: +// C = norm(pB - pA) - L +// u = (pB - pA) / norm(pB - pA) +// Cdot = dot(u, vB + cross(wB, rB) - vA - cross(wA, rA)) +// J = [-u -cross(rA, u) u cross(rB, u)] +// K = J * invM * JT +// = invMassA + invIA * cross(rA, u)^2 + invMassB + invIB * cross(rB, u)^2 + +b2RopeJoint::b2RopeJoint(const b2RopeJointDef* def) +: b2Joint(def) +{ + m_localAnchorA = def->localAnchorA; + m_localAnchorB = def->localAnchorB; + + m_maxLength = def->maxLength; + + m_mass = 0.0f; + m_impulse = 0.0f; + m_state = e_inactiveLimit; + m_length = 0.0f; +} + +void b2RopeJoint::InitVelocityConstraints(const b2SolverData& data) +{ + m_indexA = m_bodyA->m_islandIndex; + m_indexB = m_bodyB->m_islandIndex; + m_localCenterA = m_bodyA->m_sweep.localCenter; + m_localCenterB = m_bodyB->m_sweep.localCenter; + m_invMassA = m_bodyA->m_invMass; + m_invMassB = m_bodyB->m_invMass; + m_invIA = m_bodyA->m_invI; + m_invIB = m_bodyB->m_invI; + + b2Vec2 cA = data.positions[m_indexA].c; + float32 aA = data.positions[m_indexA].a; + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + + b2Vec2 cB = data.positions[m_indexB].c; + float32 aB = data.positions[m_indexB].a; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + b2Rot qA(aA), qB(aB); + + m_rA = b2Mul(qA, m_localAnchorA - m_localCenterA); + m_rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + m_u = cB + m_rB - cA - m_rA; + + m_length = m_u.Length(); + + float32 C = m_length - m_maxLength; + if (C > 0.0f) + { + m_state = e_atUpperLimit; + } + else + { + m_state = e_inactiveLimit; + } + + if (m_length > b2_linearSlop) + { + m_u *= 1.0f / m_length; + } + else + { + m_u.SetZero(); + m_mass = 0.0f; + m_impulse = 0.0f; + return; + } + + // Compute effective mass. + float32 crA = b2Cross(m_rA, m_u); + float32 crB = b2Cross(m_rB, m_u); + float32 invMass = m_invMassA + m_invIA * crA * crA + m_invMassB + m_invIB * crB * crB; + + m_mass = invMass != 0.0f ? 1.0f / invMass : 0.0f; + + if (data.step.warmStarting) + { + // Scale the impulse to support a variable time step. + m_impulse *= data.step.dtRatio; + + b2Vec2 P = m_impulse * m_u; + vA -= m_invMassA * P; + wA -= m_invIA * b2Cross(m_rA, P); + vB += m_invMassB * P; + wB += m_invIB * b2Cross(m_rB, P); + } + else + { + m_impulse = 0.0f; + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +void b2RopeJoint::SolveVelocityConstraints(const b2SolverData& data) +{ + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + // Cdot = dot(u, v + cross(w, r)) + b2Vec2 vpA = vA + b2Cross(wA, m_rA); + b2Vec2 vpB = vB + b2Cross(wB, m_rB); + float32 C = m_length - m_maxLength; + float32 Cdot = b2Dot(m_u, vpB - vpA); + + // Predictive constraint. + if (C < 0.0f) + { + Cdot += data.step.inv_dt * C; + } + + float32 impulse = -m_mass * Cdot; + float32 oldImpulse = m_impulse; + m_impulse = b2Min(0.0f, m_impulse + impulse); + impulse = m_impulse - oldImpulse; + + b2Vec2 P = impulse * m_u; + vA -= m_invMassA * P; + wA -= m_invIA * b2Cross(m_rA, P); + vB += m_invMassB * P; + wB += m_invIB * b2Cross(m_rB, P); + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +bool b2RopeJoint::SolvePositionConstraints(const b2SolverData& data) +{ + b2Vec2 cA = data.positions[m_indexA].c; + float32 aA = data.positions[m_indexA].a; + b2Vec2 cB = data.positions[m_indexB].c; + float32 aB = data.positions[m_indexB].a; + + b2Rot qA(aA), qB(aB); + + b2Vec2 rA = b2Mul(qA, m_localAnchorA - m_localCenterA); + b2Vec2 rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + b2Vec2 u = cB + rB - cA - rA; + + float32 length = u.Normalize(); + float32 C = length - m_maxLength; + + C = b2Clamp(C, 0.0f, b2_maxLinearCorrection); + + float32 impulse = -m_mass * C; + b2Vec2 P = impulse * u; + + cA -= m_invMassA * P; + aA -= m_invIA * b2Cross(rA, P); + cB += m_invMassB * P; + aB += m_invIB * b2Cross(rB, P); + + data.positions[m_indexA].c = cA; + data.positions[m_indexA].a = aA; + data.positions[m_indexB].c = cB; + data.positions[m_indexB].a = aB; + + return length - m_maxLength < b2_linearSlop; +} + +b2Vec2 b2RopeJoint::GetAnchorA() const +{ + return m_bodyA->GetWorldPoint(m_localAnchorA); +} + +b2Vec2 b2RopeJoint::GetAnchorB() const +{ + return m_bodyB->GetWorldPoint(m_localAnchorB); +} + +b2Vec2 b2RopeJoint::GetReactionForce(float32 inv_dt) const +{ + b2Vec2 F = (inv_dt * m_impulse) * m_u; + return F; +} + +float32 b2RopeJoint::GetReactionTorque(float32 inv_dt) const +{ + B2_NOT_USED(inv_dt); + return 0.0f; +} + +float32 b2RopeJoint::GetMaxLength() const +{ + return m_maxLength; +} + +b2LimitState b2RopeJoint::GetLimitState() const +{ + return m_state; +} + +void b2RopeJoint::Dump() +{ + int32 indexA = m_bodyA->m_islandIndex; + int32 indexB = m_bodyB->m_islandIndex; + + b2Log(" b2RopeJointDef jd;\n"); + b2Log(" jd.bodyA = bodies[%d];\n", indexA); + b2Log(" jd.bodyB = bodies[%d];\n", indexB); + b2Log(" jd.collideConnected = bool(%d);\n", m_collideConnected); + b2Log(" jd.localAnchorA.Set(%.15lef, %.15lef);\n", m_localAnchorA.x, m_localAnchorA.y); + b2Log(" jd.localAnchorB.Set(%.15lef, %.15lef);\n", m_localAnchorB.x, m_localAnchorB.y); + b2Log(" jd.maxLength = %.15lef;\n", m_maxLength); + b2Log(" joints[%d] = m_world->CreateJoint(&jd);\n", m_index); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RopeJoint.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RopeJoint.h new file mode 100644 index 0000000..c9d3a4c --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2RopeJoint.h @@ -0,0 +1,114 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_ROPE_JOINT_H +#define B2_ROPE_JOINT_H + +#include "Dynamics/Joints/b2Joint.h" + +/// Rope joint definition. This requires two body anchor points and +/// a maximum lengths. +/// Note: by default the connected objects will not collide. +/// see collideConnected in b2JointDef. +struct b2RopeJointDef : public b2JointDef +{ + b2RopeJointDef() + { + type = e_ropeJoint; + localAnchorA.Set(-1.0f, 0.0f); + localAnchorB.Set(1.0f, 0.0f); + maxLength = 0.0f; + } + + /// The local anchor point relative to bodyA's origin. + b2Vec2 localAnchorA; + + /// The local anchor point relative to bodyB's origin. + b2Vec2 localAnchorB; + + /// The maximum length of the rope. + /// Warning: this must be larger than b2_linearSlop or + /// the joint will have no effect. + float32 maxLength; +}; + +/// A rope joint enforces a maximum distance between two points +/// on two bodies. It has no other effect. +/// Warning: if you attempt to change the maximum length during +/// the simulation you will get some non-physical behavior. +/// A model that would allow you to dynamically modify the length +/// would have some sponginess, so I chose not to implement it +/// that way. See b2DistanceJoint if you want to dynamically +/// control length. +class b2RopeJoint : public b2Joint +{ +public: + b2Vec2 GetAnchorA() const; + b2Vec2 GetAnchorB() const; + + b2Vec2 GetReactionForce(float32 inv_dt) const; + float32 GetReactionTorque(float32 inv_dt) const; + + /// The local anchor point relative to bodyA's origin. + const b2Vec2& GetLocalAnchorA() const { return m_localAnchorA; } + + /// The local anchor point relative to bodyB's origin. + const b2Vec2& GetLocalAnchorB() const { return m_localAnchorB; } + + /// Set/Get the maximum length of the rope. + void SetMaxLength(float32 length) { m_maxLength = length; } + float32 GetMaxLength() const; + + b2LimitState GetLimitState() const; + + /// Dump joint to dmLog + void Dump(); + +protected: + + friend class b2Joint; + b2RopeJoint(const b2RopeJointDef* data); + + void InitVelocityConstraints(const b2SolverData& data); + void SolveVelocityConstraints(const b2SolverData& data); + bool SolvePositionConstraints(const b2SolverData& data); + + // Solver shared + b2Vec2 m_localAnchorA; + b2Vec2 m_localAnchorB; + float32 m_maxLength; + float32 m_length; + float32 m_impulse; + + // Solver temp + int32 m_indexA; + int32 m_indexB; + b2Vec2 m_u; + b2Vec2 m_rA; + b2Vec2 m_rB; + b2Vec2 m_localCenterA; + b2Vec2 m_localCenterB; + float32 m_invMassA; + float32 m_invMassB; + float32 m_invIA; + float32 m_invIB; + float32 m_mass; + b2LimitState m_state; +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WeldJoint.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WeldJoint.cpp new file mode 100644 index 0000000..ffdd386 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WeldJoint.cpp @@ -0,0 +1,344 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include + +// Point-to-point constraint +// C = p2 - p1 +// Cdot = v2 - v1 +// = v2 + cross(w2, r2) - v1 - cross(w1, r1) +// J = [-I -r1_skew I r2_skew ] +// Identity used: +// w k % (rx i + ry j) = w * (-ry i + rx j) + +// Angle constraint +// C = angle2 - angle1 - referenceAngle +// Cdot = w2 - w1 +// J = [0 0 -1 0 0 1] +// K = invI1 + invI2 + +void b2WeldJointDef::Initialize(b2Body* bA, b2Body* bB, const b2Vec2& anchor) +{ + bodyA = bA; + bodyB = bB; + localAnchorA = bodyA->GetLocalPoint(anchor); + localAnchorB = bodyB->GetLocalPoint(anchor); + referenceAngle = bodyB->GetAngle() - bodyA->GetAngle(); +} + +b2WeldJoint::b2WeldJoint(const b2WeldJointDef* def) +: b2Joint(def) +{ + m_localAnchorA = def->localAnchorA; + m_localAnchorB = def->localAnchorB; + m_referenceAngle = def->referenceAngle; + m_frequencyHz = def->frequencyHz; + m_dampingRatio = def->dampingRatio; + + m_impulse.SetZero(); +} + +void b2WeldJoint::InitVelocityConstraints(const b2SolverData& data) +{ + m_indexA = m_bodyA->m_islandIndex; + m_indexB = m_bodyB->m_islandIndex; + m_localCenterA = m_bodyA->m_sweep.localCenter; + m_localCenterB = m_bodyB->m_sweep.localCenter; + m_invMassA = m_bodyA->m_invMass; + m_invMassB = m_bodyB->m_invMass; + m_invIA = m_bodyA->m_invI; + m_invIB = m_bodyB->m_invI; + + float32 aA = data.positions[m_indexA].a; + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + + float32 aB = data.positions[m_indexB].a; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + b2Rot qA(aA), qB(aB); + + m_rA = b2Mul(qA, m_localAnchorA - m_localCenterA); + m_rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + + // J = [-I -r1_skew I r2_skew] + // [ 0 -1 0 1] + // r_skew = [-ry; rx] + + // Matlab + // K = [ mA+r1y^2*iA+mB+r2y^2*iB, -r1y*iA*r1x-r2y*iB*r2x, -r1y*iA-r2y*iB] + // [ -r1y*iA*r1x-r2y*iB*r2x, mA+r1x^2*iA+mB+r2x^2*iB, r1x*iA+r2x*iB] + // [ -r1y*iA-r2y*iB, r1x*iA+r2x*iB, iA+iB] + + float32 mA = m_invMassA, mB = m_invMassB; + float32 iA = m_invIA, iB = m_invIB; + + b2Mat33 K; + K.ex.x = mA + mB + m_rA.y * m_rA.y * iA + m_rB.y * m_rB.y * iB; + K.ey.x = -m_rA.y * m_rA.x * iA - m_rB.y * m_rB.x * iB; + K.ez.x = -m_rA.y * iA - m_rB.y * iB; + K.ex.y = K.ey.x; + K.ey.y = mA + mB + m_rA.x * m_rA.x * iA + m_rB.x * m_rB.x * iB; + K.ez.y = m_rA.x * iA + m_rB.x * iB; + K.ex.z = K.ez.x; + K.ey.z = K.ez.y; + K.ez.z = iA + iB; + + if (m_frequencyHz > 0.0f) + { + K.GetInverse22(&m_mass); + + float32 invM = iA + iB; + float32 m = invM > 0.0f ? 1.0f / invM : 0.0f; + + float32 C = aB - aA - m_referenceAngle; + + // Frequency + float32 omega = 2.0f * b2_pi * m_frequencyHz; + + // Damping coefficient + float32 d = 2.0f * m * m_dampingRatio * omega; + + // Spring stiffness + float32 k = m * omega * omega; + + // magic formulas + float32 h = data.step.dt; + m_gamma = h * (d + h * k); + m_gamma = m_gamma != 0.0f ? 1.0f / m_gamma : 0.0f; + m_bias = C * h * k * m_gamma; + + invM += m_gamma; + m_mass.ez.z = invM != 0.0f ? 1.0f / invM : 0.0f; + } + else if (K.ez.z == 0.0f) + { + K.GetInverse22(&m_mass); + m_gamma = 0.0f; + m_bias = 0.0f; + } + else + { + K.GetSymInverse33(&m_mass); + m_gamma = 0.0f; + m_bias = 0.0f; + } + + if (data.step.warmStarting) + { + // Scale impulses to support a variable time step. + m_impulse *= data.step.dtRatio; + + b2Vec2 P(m_impulse.x, m_impulse.y); + + vA -= mA * P; + wA -= iA * (b2Cross(m_rA, P) + m_impulse.z); + + vB += mB * P; + wB += iB * (b2Cross(m_rB, P) + m_impulse.z); + } + else + { + m_impulse.SetZero(); + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +void b2WeldJoint::SolveVelocityConstraints(const b2SolverData& data) +{ + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + float32 mA = m_invMassA, mB = m_invMassB; + float32 iA = m_invIA, iB = m_invIB; + + if (m_frequencyHz > 0.0f) + { + float32 Cdot2 = wB - wA; + + float32 impulse2 = -m_mass.ez.z * (Cdot2 + m_bias + m_gamma * m_impulse.z); + m_impulse.z += impulse2; + + wA -= iA * impulse2; + wB += iB * impulse2; + + b2Vec2 Cdot1 = vB + b2Cross(wB, m_rB) - vA - b2Cross(wA, m_rA); + + b2Vec2 impulse1 = -b2Mul22(m_mass, Cdot1); + m_impulse.x += impulse1.x; + m_impulse.y += impulse1.y; + + b2Vec2 P = impulse1; + + vA -= mA * P; + wA -= iA * b2Cross(m_rA, P); + + vB += mB * P; + wB += iB * b2Cross(m_rB, P); + } + else + { + b2Vec2 Cdot1 = vB + b2Cross(wB, m_rB) - vA - b2Cross(wA, m_rA); + float32 Cdot2 = wB - wA; + b2Vec3 Cdot(Cdot1.x, Cdot1.y, Cdot2); + + b2Vec3 impulse = -b2Mul(m_mass, Cdot); + m_impulse += impulse; + + b2Vec2 P(impulse.x, impulse.y); + + vA -= mA * P; + wA -= iA * (b2Cross(m_rA, P) + impulse.z); + + vB += mB * P; + wB += iB * (b2Cross(m_rB, P) + impulse.z); + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +bool b2WeldJoint::SolvePositionConstraints(const b2SolverData& data) +{ + b2Vec2 cA = data.positions[m_indexA].c; + float32 aA = data.positions[m_indexA].a; + b2Vec2 cB = data.positions[m_indexB].c; + float32 aB = data.positions[m_indexB].a; + + b2Rot qA(aA), qB(aB); + + float32 mA = m_invMassA, mB = m_invMassB; + float32 iA = m_invIA, iB = m_invIB; + + b2Vec2 rA = b2Mul(qA, m_localAnchorA - m_localCenterA); + b2Vec2 rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + + float32 positionError, angularError; + + b2Mat33 K; + K.ex.x = mA + mB + rA.y * rA.y * iA + rB.y * rB.y * iB; + K.ey.x = -rA.y * rA.x * iA - rB.y * rB.x * iB; + K.ez.x = -rA.y * iA - rB.y * iB; + K.ex.y = K.ey.x; + K.ey.y = mA + mB + rA.x * rA.x * iA + rB.x * rB.x * iB; + K.ez.y = rA.x * iA + rB.x * iB; + K.ex.z = K.ez.x; + K.ey.z = K.ez.y; + K.ez.z = iA + iB; + + if (m_frequencyHz > 0.0f) + { + b2Vec2 C1 = cB + rB - cA - rA; + + positionError = C1.Length(); + angularError = 0.0f; + + b2Vec2 P = -K.Solve22(C1); + + cA -= mA * P; + aA -= iA * b2Cross(rA, P); + + cB += mB * P; + aB += iB * b2Cross(rB, P); + } + else + { + b2Vec2 C1 = cB + rB - cA - rA; + float32 C2 = aB - aA - m_referenceAngle; + + positionError = C1.Length(); + angularError = b2Abs(C2); + + b2Vec3 C(C1.x, C1.y, C2); + + b2Vec3 impulse; + if (K.ez.z > 0.0f) + { + impulse = -K.Solve33(C); + } + else + { + b2Vec2 impulse2 = -K.Solve22(C1); + impulse.Set(impulse2.x, impulse2.y, 0.0f); + } + + b2Vec2 P(impulse.x, impulse.y); + + cA -= mA * P; + aA -= iA * (b2Cross(rA, P) + impulse.z); + + cB += mB * P; + aB += iB * (b2Cross(rB, P) + impulse.z); + } + + data.positions[m_indexA].c = cA; + data.positions[m_indexA].a = aA; + data.positions[m_indexB].c = cB; + data.positions[m_indexB].a = aB; + + return positionError <= b2_linearSlop && angularError <= b2_angularSlop; +} + +b2Vec2 b2WeldJoint::GetAnchorA() const +{ + return m_bodyA->GetWorldPoint(m_localAnchorA); +} + +b2Vec2 b2WeldJoint::GetAnchorB() const +{ + return m_bodyB->GetWorldPoint(m_localAnchorB); +} + +b2Vec2 b2WeldJoint::GetReactionForce(float32 inv_dt) const +{ + b2Vec2 P(m_impulse.x, m_impulse.y); + return inv_dt * P; +} + +float32 b2WeldJoint::GetReactionTorque(float32 inv_dt) const +{ + return inv_dt * m_impulse.z; +} + +void b2WeldJoint::Dump() +{ + int32 indexA = m_bodyA->m_islandIndex; + int32 indexB = m_bodyB->m_islandIndex; + + b2Log(" b2WeldJointDef jd;\n"); + b2Log(" jd.bodyA = bodies[%d];\n", indexA); + b2Log(" jd.bodyB = bodies[%d];\n", indexB); + b2Log(" jd.collideConnected = bool(%d);\n", m_collideConnected); + b2Log(" jd.localAnchorA.Set(%.15lef, %.15lef);\n", m_localAnchorA.x, m_localAnchorA.y); + b2Log(" jd.localAnchorB.Set(%.15lef, %.15lef);\n", m_localAnchorB.x, m_localAnchorB.y); + b2Log(" jd.referenceAngle = %.15lef;\n", m_referenceAngle); + b2Log(" jd.frequencyHz = %.15lef;\n", m_frequencyHz); + b2Log(" jd.dampingRatio = %.15lef;\n", m_dampingRatio); + b2Log(" joints[%d] = m_world->CreateJoint(&jd);\n", m_index); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WeldJoint.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WeldJoint.h new file mode 100644 index 0000000..2ef63a8 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WeldJoint.h @@ -0,0 +1,126 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_WELD_JOINT_H +#define B2_WELD_JOINT_H + +#include "Dynamics/Joints/b2Joint.h" + +/// Weld joint definition. You need to specify local anchor points +/// where they are attached and the relative body angle. The position +/// of the anchor points is important for computing the reaction torque. +struct b2WeldJointDef : public b2JointDef +{ + b2WeldJointDef() + { + type = e_weldJoint; + localAnchorA.Set(0.0f, 0.0f); + localAnchorB.Set(0.0f, 0.0f); + referenceAngle = 0.0f; + frequencyHz = 0.0f; + dampingRatio = 0.0f; + } + + /// Initialize the bodies, anchors, and reference angle using a world + /// anchor point. + void Initialize(b2Body* bodyA, b2Body* bodyB, const b2Vec2& anchor); + + /// The local anchor point relative to bodyA's origin. + b2Vec2 localAnchorA; + + /// The local anchor point relative to bodyB's origin. + b2Vec2 localAnchorB; + + /// The bodyB angle minus bodyA angle in the reference state (radians). + float32 referenceAngle; + + /// The mass-spring-damper frequency in Hertz. Rotation only. + /// Disable softness with a value of 0. + float32 frequencyHz; + + /// The damping ratio. 0 = no damping, 1 = critical damping. + float32 dampingRatio; +}; + +/// A weld joint essentially glues two bodies together. A weld joint may +/// distort somewhat because the island constraint solver is approximate. +class b2WeldJoint : public b2Joint +{ +public: + b2Vec2 GetAnchorA() const; + b2Vec2 GetAnchorB() const; + + b2Vec2 GetReactionForce(float32 inv_dt) const; + float32 GetReactionTorque(float32 inv_dt) const; + + /// The local anchor point relative to bodyA's origin. + const b2Vec2& GetLocalAnchorA() const { return m_localAnchorA; } + + /// The local anchor point relative to bodyB's origin. + const b2Vec2& GetLocalAnchorB() const { return m_localAnchorB; } + + /// Get the reference angle. + float32 GetReferenceAngle() const { return m_referenceAngle; } + + /// Set/get frequency in Hz. + void SetFrequency(float32 hz) { m_frequencyHz = hz; } + float32 GetFrequency() const { return m_frequencyHz; } + + /// Set/get damping ratio. + void SetDampingRatio(float32 ratio) { m_dampingRatio = ratio; } + float32 GetDampingRatio() const { return m_dampingRatio; } + + /// Dump to b2Log + void Dump(); + +protected: + + friend class b2Joint; + + b2WeldJoint(const b2WeldJointDef* def); + + void InitVelocityConstraints(const b2SolverData& data); + void SolveVelocityConstraints(const b2SolverData& data); + bool SolvePositionConstraints(const b2SolverData& data); + + float32 m_frequencyHz; + float32 m_dampingRatio; + float32 m_bias; + + // Solver shared + b2Vec2 m_localAnchorA; + b2Vec2 m_localAnchorB; + float32 m_referenceAngle; + float32 m_gamma; + b2Vec3 m_impulse; + + // Solver temp + int32 m_indexA; + int32 m_indexB; + b2Vec2 m_rA; + b2Vec2 m_rB; + b2Vec2 m_localCenterA; + b2Vec2 m_localCenterB; + float32 m_invMassA; + float32 m_invMassB; + float32 m_invIA; + float32 m_invIB; + b2Mat33 m_mass; +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WheelJoint.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WheelJoint.cpp new file mode 100644 index 0000000..c9f6de6 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WheelJoint.cpp @@ -0,0 +1,419 @@ +/* +* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include + +// Linear constraint (point-to-line) +// d = pB - pA = xB + rB - xA - rA +// C = dot(ay, d) +// Cdot = dot(d, cross(wA, ay)) + dot(ay, vB + cross(wB, rB) - vA - cross(wA, rA)) +// = -dot(ay, vA) - dot(cross(d + rA, ay), wA) + dot(ay, vB) + dot(cross(rB, ay), vB) +// J = [-ay, -cross(d + rA, ay), ay, cross(rB, ay)] + +// Spring linear constraint +// C = dot(ax, d) +// Cdot = = -dot(ax, vA) - dot(cross(d + rA, ax), wA) + dot(ax, vB) + dot(cross(rB, ax), vB) +// J = [-ax -cross(d+rA, ax) ax cross(rB, ax)] + +// Motor rotational constraint +// Cdot = wB - wA +// J = [0 0 -1 0 0 1] + +void b2WheelJointDef::Initialize(b2Body* bA, b2Body* bB, const b2Vec2& anchor, const b2Vec2& axis) +{ + bodyA = bA; + bodyB = bB; + localAnchorA = bodyA->GetLocalPoint(anchor); + localAnchorB = bodyB->GetLocalPoint(anchor); + localAxisA = bodyA->GetLocalVector(axis); +} + +b2WheelJoint::b2WheelJoint(const b2WheelJointDef* def) +: b2Joint(def) +{ + m_localAnchorA = def->localAnchorA; + m_localAnchorB = def->localAnchorB; + m_localXAxisA = def->localAxisA; + m_localYAxisA = b2Cross(1.0f, m_localXAxisA); + + m_mass = 0.0f; + m_impulse = 0.0f; + m_motorMass = 0.0f; + m_motorImpulse = 0.0f; + m_springMass = 0.0f; + m_springImpulse = 0.0f; + + m_maxMotorTorque = def->maxMotorTorque; + m_motorSpeed = def->motorSpeed; + m_enableMotor = def->enableMotor; + + m_frequencyHz = def->frequencyHz; + m_dampingRatio = def->dampingRatio; + + m_bias = 0.0f; + m_gamma = 0.0f; + + m_ax.SetZero(); + m_ay.SetZero(); +} + +void b2WheelJoint::InitVelocityConstraints(const b2SolverData& data) +{ + m_indexA = m_bodyA->m_islandIndex; + m_indexB = m_bodyB->m_islandIndex; + m_localCenterA = m_bodyA->m_sweep.localCenter; + m_localCenterB = m_bodyB->m_sweep.localCenter; + m_invMassA = m_bodyA->m_invMass; + m_invMassB = m_bodyB->m_invMass; + m_invIA = m_bodyA->m_invI; + m_invIB = m_bodyB->m_invI; + + float32 mA = m_invMassA, mB = m_invMassB; + float32 iA = m_invIA, iB = m_invIB; + + b2Vec2 cA = data.positions[m_indexA].c; + float32 aA = data.positions[m_indexA].a; + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + + b2Vec2 cB = data.positions[m_indexB].c; + float32 aB = data.positions[m_indexB].a; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + b2Rot qA(aA), qB(aB); + + // Compute the effective masses. + b2Vec2 rA = b2Mul(qA, m_localAnchorA - m_localCenterA); + b2Vec2 rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + b2Vec2 d = cB + rB - cA - rA; + + // Point to line constraint + { + m_ay = b2Mul(qA, m_localYAxisA); + m_sAy = b2Cross(d + rA, m_ay); + m_sBy = b2Cross(rB, m_ay); + + m_mass = mA + mB + iA * m_sAy * m_sAy + iB * m_sBy * m_sBy; + + if (m_mass > 0.0f) + { + m_mass = 1.0f / m_mass; + } + } + + // Spring constraint + m_springMass = 0.0f; + m_bias = 0.0f; + m_gamma = 0.0f; + if (m_frequencyHz > 0.0f) + { + m_ax = b2Mul(qA, m_localXAxisA); + m_sAx = b2Cross(d + rA, m_ax); + m_sBx = b2Cross(rB, m_ax); + + float32 invMass = mA + mB + iA * m_sAx * m_sAx + iB * m_sBx * m_sBx; + + if (invMass > 0.0f) + { + m_springMass = 1.0f / invMass; + + float32 C = b2Dot(d, m_ax); + + // Frequency + float32 omega = 2.0f * b2_pi * m_frequencyHz; + + // Damping coefficient + float32 d = 2.0f * m_springMass * m_dampingRatio * omega; + + // Spring stiffness + float32 k = m_springMass * omega * omega; + + // magic formulas + float32 h = data.step.dt; + m_gamma = h * (d + h * k); + if (m_gamma > 0.0f) + { + m_gamma = 1.0f / m_gamma; + } + + m_bias = C * h * k * m_gamma; + + m_springMass = invMass + m_gamma; + if (m_springMass > 0.0f) + { + m_springMass = 1.0f / m_springMass; + } + } + } + else + { + m_springImpulse = 0.0f; + } + + // Rotational motor + if (m_enableMotor) + { + m_motorMass = iA + iB; + if (m_motorMass > 0.0f) + { + m_motorMass = 1.0f / m_motorMass; + } + } + else + { + m_motorMass = 0.0f; + m_motorImpulse = 0.0f; + } + + if (data.step.warmStarting) + { + // Account for variable time step. + m_impulse *= data.step.dtRatio; + m_springImpulse *= data.step.dtRatio; + m_motorImpulse *= data.step.dtRatio; + + b2Vec2 P = m_impulse * m_ay + m_springImpulse * m_ax; + float32 LA = m_impulse * m_sAy + m_springImpulse * m_sAx + m_motorImpulse; + float32 LB = m_impulse * m_sBy + m_springImpulse * m_sBx + m_motorImpulse; + + vA -= m_invMassA * P; + wA -= m_invIA * LA; + + vB += m_invMassB * P; + wB += m_invIB * LB; + } + else + { + m_impulse = 0.0f; + m_springImpulse = 0.0f; + m_motorImpulse = 0.0f; + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +void b2WheelJoint::SolveVelocityConstraints(const b2SolverData& data) +{ + float32 mA = m_invMassA, mB = m_invMassB; + float32 iA = m_invIA, iB = m_invIB; + + b2Vec2 vA = data.velocities[m_indexA].v; + float32 wA = data.velocities[m_indexA].w; + b2Vec2 vB = data.velocities[m_indexB].v; + float32 wB = data.velocities[m_indexB].w; + + // Solve spring constraint + { + float32 Cdot = b2Dot(m_ax, vB - vA) + m_sBx * wB - m_sAx * wA; + float32 impulse = -m_springMass * (Cdot + m_bias + m_gamma * m_springImpulse); + m_springImpulse += impulse; + + b2Vec2 P = impulse * m_ax; + float32 LA = impulse * m_sAx; + float32 LB = impulse * m_sBx; + + vA -= mA * P; + wA -= iA * LA; + + vB += mB * P; + wB += iB * LB; + } + + // Solve rotational motor constraint + { + float32 Cdot = wB - wA - m_motorSpeed; + float32 impulse = -m_motorMass * Cdot; + + float32 oldImpulse = m_motorImpulse; + float32 maxImpulse = data.step.dt * m_maxMotorTorque; + m_motorImpulse = b2Clamp(m_motorImpulse + impulse, -maxImpulse, maxImpulse); + impulse = m_motorImpulse - oldImpulse; + + wA -= iA * impulse; + wB += iB * impulse; + } + + // Solve point to line constraint + { + float32 Cdot = b2Dot(m_ay, vB - vA) + m_sBy * wB - m_sAy * wA; + float32 impulse = -m_mass * Cdot; + m_impulse += impulse; + + b2Vec2 P = impulse * m_ay; + float32 LA = impulse * m_sAy; + float32 LB = impulse * m_sBy; + + vA -= mA * P; + wA -= iA * LA; + + vB += mB * P; + wB += iB * LB; + } + + data.velocities[m_indexA].v = vA; + data.velocities[m_indexA].w = wA; + data.velocities[m_indexB].v = vB; + data.velocities[m_indexB].w = wB; +} + +bool b2WheelJoint::SolvePositionConstraints(const b2SolverData& data) +{ + b2Vec2 cA = data.positions[m_indexA].c; + float32 aA = data.positions[m_indexA].a; + b2Vec2 cB = data.positions[m_indexB].c; + float32 aB = data.positions[m_indexB].a; + + b2Rot qA(aA), qB(aB); + + b2Vec2 rA = b2Mul(qA, m_localAnchorA - m_localCenterA); + b2Vec2 rB = b2Mul(qB, m_localAnchorB - m_localCenterB); + b2Vec2 d = (cB - cA) + rB - rA; + + b2Vec2 ay = b2Mul(qA, m_localYAxisA); + + float32 sAy = b2Cross(d + rA, ay); + float32 sBy = b2Cross(rB, ay); + + float32 C = b2Dot(d, ay); + + float32 k = m_invMassA + m_invMassB + m_invIA * m_sAy * m_sAy + m_invIB * m_sBy * m_sBy; + + float32 impulse; + if (k != 0.0f) + { + impulse = - C / k; + } + else + { + impulse = 0.0f; + } + + b2Vec2 P = impulse * ay; + float32 LA = impulse * sAy; + float32 LB = impulse * sBy; + + cA -= m_invMassA * P; + aA -= m_invIA * LA; + cB += m_invMassB * P; + aB += m_invIB * LB; + + data.positions[m_indexA].c = cA; + data.positions[m_indexA].a = aA; + data.positions[m_indexB].c = cB; + data.positions[m_indexB].a = aB; + + return b2Abs(C) <= b2_linearSlop; +} + +b2Vec2 b2WheelJoint::GetAnchorA() const +{ + return m_bodyA->GetWorldPoint(m_localAnchorA); +} + +b2Vec2 b2WheelJoint::GetAnchorB() const +{ + return m_bodyB->GetWorldPoint(m_localAnchorB); +} + +b2Vec2 b2WheelJoint::GetReactionForce(float32 inv_dt) const +{ + return inv_dt * (m_impulse * m_ay + m_springImpulse * m_ax); +} + +float32 b2WheelJoint::GetReactionTorque(float32 inv_dt) const +{ + return inv_dt * m_motorImpulse; +} + +float32 b2WheelJoint::GetJointTranslation() const +{ + b2Body* bA = m_bodyA; + b2Body* bB = m_bodyB; + + b2Vec2 pA = bA->GetWorldPoint(m_localAnchorA); + b2Vec2 pB = bB->GetWorldPoint(m_localAnchorB); + b2Vec2 d = pB - pA; + b2Vec2 axis = bA->GetWorldVector(m_localXAxisA); + + float32 translation = b2Dot(d, axis); + return translation; +} + +float32 b2WheelJoint::GetJointSpeed() const +{ + float32 wA = m_bodyA->m_angularVelocity; + float32 wB = m_bodyB->m_angularVelocity; + return wB - wA; +} + +bool b2WheelJoint::IsMotorEnabled() const +{ + return m_enableMotor; +} + +void b2WheelJoint::EnableMotor(bool flag) +{ + m_bodyA->SetAwake(true); + m_bodyB->SetAwake(true); + m_enableMotor = flag; +} + +void b2WheelJoint::SetMotorSpeed(float32 speed) +{ + m_bodyA->SetAwake(true); + m_bodyB->SetAwake(true); + m_motorSpeed = speed; +} + +void b2WheelJoint::SetMaxMotorTorque(float32 torque) +{ + m_bodyA->SetAwake(true); + m_bodyB->SetAwake(true); + m_maxMotorTorque = torque; +} + +float32 b2WheelJoint::GetMotorTorque(float32 inv_dt) const +{ + return inv_dt * m_motorImpulse; +} + +void b2WheelJoint::Dump() +{ + int32 indexA = m_bodyA->m_islandIndex; + int32 indexB = m_bodyB->m_islandIndex; + + b2Log(" b2WheelJointDef jd;\n"); + b2Log(" jd.bodyA = bodies[%d];\n", indexA); + b2Log(" jd.bodyB = bodies[%d];\n", indexB); + b2Log(" jd.collideConnected = bool(%d);\n", m_collideConnected); + b2Log(" jd.localAnchorA.Set(%.15lef, %.15lef);\n", m_localAnchorA.x, m_localAnchorA.y); + b2Log(" jd.localAnchorB.Set(%.15lef, %.15lef);\n", m_localAnchorB.x, m_localAnchorB.y); + b2Log(" jd.localAxisA.Set(%.15lef, %.15lef);\n", m_localXAxisA.x, m_localXAxisA.y); + b2Log(" jd.enableMotor = bool(%d);\n", m_enableMotor); + b2Log(" jd.motorSpeed = %.15lef;\n", m_motorSpeed); + b2Log(" jd.maxMotorTorque = %.15lef;\n", m_maxMotorTorque); + b2Log(" jd.frequencyHz = %.15lef;\n", m_frequencyHz); + b2Log(" jd.dampingRatio = %.15lef;\n", m_dampingRatio); + b2Log(" joints[%d] = m_world->CreateJoint(&jd);\n", m_index); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WheelJoint.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WheelJoint.h new file mode 100644 index 0000000..98aa1b2 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2WheelJoint.h @@ -0,0 +1,210 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_WHEEL_JOINT_H +#define B2_WHEEL_JOINT_H + +#include "Dynamics/Joints/b2Joint.h" + +/// Wheel joint definition. This requires defining a line of +/// motion using an axis and an anchor point. The definition uses local +/// anchor points and a local axis so that the initial configuration +/// can violate the constraint slightly. The joint translation is zero +/// when the local anchor points coincide in world space. Using local +/// anchors and a local axis helps when saving and loading a game. +struct b2WheelJointDef : public b2JointDef +{ + b2WheelJointDef() + { + type = e_wheelJoint; + localAnchorA.SetZero(); + localAnchorB.SetZero(); + localAxisA.Set(1.0f, 0.0f); + enableMotor = false; + maxMotorTorque = 0.0f; + motorSpeed = 0.0f; + frequencyHz = 2.0f; + dampingRatio = 0.7f; + } + + /// Initialize the bodies, anchors, axis, and reference angle using the world + /// anchor and world axis. + void Initialize(b2Body* bodyA, b2Body* bodyB, const b2Vec2& anchor, const b2Vec2& axis); + + /// The local anchor point relative to bodyA's origin. + b2Vec2 localAnchorA; + + /// The local anchor point relative to bodyB's origin. + b2Vec2 localAnchorB; + + /// The local translation axis in bodyA. + b2Vec2 localAxisA; + + /// Enable/disable the joint motor. + bool enableMotor; + + /// The maximum motor torque, usually in N-m. + float32 maxMotorTorque; + + /// The desired motor speed in radians per second. + float32 motorSpeed; + + /// Suspension frequency, zero indicates no suspension + float32 frequencyHz; + + /// Suspension damping ratio, one indicates critical damping + float32 dampingRatio; +}; + +/// A wheel joint. This joint provides two degrees of freedom: translation +/// along an axis fixed in bodyA and rotation in the plane. In other words, it is a point to +/// line constraint with a rotational motor and a linear spring/damper. +/// This joint is designed for vehicle suspensions. +class b2WheelJoint : public b2Joint +{ +public: + b2Vec2 GetAnchorA() const; + b2Vec2 GetAnchorB() const; + + b2Vec2 GetReactionForce(float32 inv_dt) const; + float32 GetReactionTorque(float32 inv_dt) const; + + /// The local anchor point relative to bodyA's origin. + const b2Vec2& GetLocalAnchorA() const { return m_localAnchorA; } + + /// The local anchor point relative to bodyB's origin. + const b2Vec2& GetLocalAnchorB() const { return m_localAnchorB; } + + /// The local joint axis relative to bodyA. + const b2Vec2& GetLocalAxisA() const { return m_localXAxisA; } + + /// Get the current joint translation, usually in meters. + float32 GetJointTranslation() const; + + /// Get the current joint translation speed, usually in meters per second. + float32 GetJointSpeed() const; + + /// Is the joint motor enabled? + bool IsMotorEnabled() const; + + /// Enable/disable the joint motor. + void EnableMotor(bool flag); + + /// Set the motor speed, usually in radians per second. + void SetMotorSpeed(float32 speed); + + /// Get the motor speed, usually in radians per second. + float32 GetMotorSpeed() const; + + /// Set/Get the maximum motor force, usually in N-m. + void SetMaxMotorTorque(float32 torque); + float32 GetMaxMotorTorque() const; + + /// Get the current motor torque given the inverse time step, usually in N-m. + float32 GetMotorTorque(float32 inv_dt) const; + + /// Set/Get the spring frequency in hertz. Setting the frequency to zero disables the spring. + void SetSpringFrequencyHz(float32 hz); + float32 GetSpringFrequencyHz() const; + + /// Set/Get the spring damping ratio + void SetSpringDampingRatio(float32 ratio); + float32 GetSpringDampingRatio() const; + + /// Dump to b2Log + void Dump(); + +protected: + + friend class b2Joint; + b2WheelJoint(const b2WheelJointDef* def); + + void InitVelocityConstraints(const b2SolverData& data); + void SolveVelocityConstraints(const b2SolverData& data); + bool SolvePositionConstraints(const b2SolverData& data); + + float32 m_frequencyHz; + float32 m_dampingRatio; + + // Solver shared + b2Vec2 m_localAnchorA; + b2Vec2 m_localAnchorB; + b2Vec2 m_localXAxisA; + b2Vec2 m_localYAxisA; + + float32 m_impulse; + float32 m_motorImpulse; + float32 m_springImpulse; + + float32 m_maxMotorTorque; + float32 m_motorSpeed; + bool m_enableMotor; + + // Solver temp + int32 m_indexA; + int32 m_indexB; + b2Vec2 m_localCenterA; + b2Vec2 m_localCenterB; + float32 m_invMassA; + float32 m_invMassB; + float32 m_invIA; + float32 m_invIB; + + b2Vec2 m_ax, m_ay; + float32 m_sAx, m_sBx; + float32 m_sAy, m_sBy; + + float32 m_mass; + float32 m_motorMass; + float32 m_springMass; + + float32 m_bias; + float32 m_gamma; +}; + +inline float32 b2WheelJoint::GetMotorSpeed() const +{ + return m_motorSpeed; +} + +inline float32 b2WheelJoint::GetMaxMotorTorque() const +{ + return m_maxMotorTorque; +} + +inline void b2WheelJoint::SetSpringFrequencyHz(float32 hz) +{ + m_frequencyHz = hz; +} + +inline float32 b2WheelJoint::GetSpringFrequencyHz() const +{ + return m_frequencyHz; +} + +inline void b2WheelJoint::SetSpringDampingRatio(float32 ratio) +{ + m_dampingRatio = ratio; +} + +inline float32 b2WheelJoint::GetSpringDampingRatio() const +{ + return m_dampingRatio; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2joint.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2joint.h new file mode 100644 index 0000000..05c0ea7 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/Joints/b2joint.h @@ -0,0 +1,226 @@ +/* +* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_JOINT_H +#define B2_JOINT_H + +#include "Common/b2Math.h" + +class b2Body; +class b2Joint; +struct b2SolverData; +class b2BlockAllocator; + +enum b2JointType +{ + e_unknownJoint, + e_revoluteJoint, + e_prismaticJoint, + e_distanceJoint, + e_pulleyJoint, + e_mouseJoint, + e_gearJoint, + e_wheelJoint, + e_weldJoint, + e_frictionJoint, + e_ropeJoint, + e_motorJoint +}; + +enum b2LimitState +{ + e_inactiveLimit, + e_atLowerLimit, + e_atUpperLimit, + e_equalLimits +}; + +struct b2Jacobian +{ + b2Vec2 linear; + float32 angularA; + float32 angularB; +}; + +/// A joint edge is used to connect bodies and joints together +/// in a joint graph where each body is a node and each joint +/// is an edge. A joint edge belongs to a doubly linked list +/// maintained in each attached body. Each joint has two joint +/// nodes, one for each attached body. +struct b2JointEdge +{ + b2Body* other; ///< provides quick access to the other body attached. + b2Joint* joint; ///< the joint + b2JointEdge* prev; ///< the previous joint edge in the body's joint list + b2JointEdge* next; ///< the next joint edge in the body's joint list +}; + +/// Joint definitions are used to construct joints. +struct b2JointDef +{ + b2JointDef() + { + type = e_unknownJoint; + userData = NULL; + bodyA = NULL; + bodyB = NULL; + collideConnected = false; + } + + /// The joint type is set automatically for concrete joint types. + b2JointType type; + + /// Use this to attach application specific data to your joints. + void* userData; + + /// The first attached body. + b2Body* bodyA; + + /// The second attached body. + b2Body* bodyB; + + /// Set this flag to true if the attached bodies should collide. + bool collideConnected; +}; + +/// The base joint class. Joints are used to constraint two bodies together in +/// various fashions. Some joints also feature limits and motors. +class b2Joint +{ +public: + + /// Get the type of the concrete joint. + b2JointType GetType() const; + + /// Get the first body attached to this joint. + b2Body* GetBodyA(); + + /// Get the second body attached to this joint. + b2Body* GetBodyB(); + + /// Get the anchor point on bodyA in world coordinates. + virtual b2Vec2 GetAnchorA() const = 0; + + /// Get the anchor point on bodyB in world coordinates. + virtual b2Vec2 GetAnchorB() const = 0; + + /// Get the reaction force on bodyB at the joint anchor in Newtons. + virtual b2Vec2 GetReactionForce(float32 inv_dt) const = 0; + + /// Get the reaction torque on bodyB in N*m. + virtual float32 GetReactionTorque(float32 inv_dt) const = 0; + + /// Get the next joint the world joint list. + b2Joint* GetNext(); + const b2Joint* GetNext() const; + + /// Get the user data pointer. + void* GetUserData() const; + + /// Set the user data pointer. + void SetUserData(void* data); + + /// Short-cut function to determine if either body is inactive. + bool IsActive() const; + + /// Get collide connected. + /// Note: modifying the collide connect flag won't work correctly because + /// the flag is only checked when fixture AABBs begin to overlap. + bool GetCollideConnected() const; + + /// Dump this joint to the log file. + virtual void Dump() { b2Log("// Dump is not supported for this joint type.\n"); } + + /// Shift the origin for any points stored in world coordinates. + virtual void ShiftOrigin(const b2Vec2& newOrigin) { B2_NOT_USED(newOrigin); } + +protected: + friend class b2World; + friend class b2Body; + friend class b2Island; + friend class b2GearJoint; + + static b2Joint* Create(const b2JointDef* def, b2BlockAllocator* allocator); + static void Destroy(b2Joint* joint, b2BlockAllocator* allocator); + + b2Joint(const b2JointDef* def); + virtual ~b2Joint() {} + + virtual void InitVelocityConstraints(const b2SolverData& data) = 0; + virtual void SolveVelocityConstraints(const b2SolverData& data) = 0; + + // This returns true if the position errors are within tolerance. + virtual bool SolvePositionConstraints(const b2SolverData& data) = 0; + + b2JointType m_type; + b2Joint* m_prev; + b2Joint* m_next; + b2JointEdge m_edgeA; + b2JointEdge m_edgeB; + b2Body* m_bodyA; + b2Body* m_bodyB; + + int32 m_index; + + bool m_islandFlag; + bool m_collideConnected; + + void* m_userData; +}; + +inline b2JointType b2Joint::GetType() const +{ + return m_type; +} + +inline b2Body* b2Joint::GetBodyA() +{ + return m_bodyA; +} + +inline b2Body* b2Joint::GetBodyB() +{ + return m_bodyB; +} + +inline b2Joint* b2Joint::GetNext() +{ + return m_next; +} + +inline const b2Joint* b2Joint::GetNext() const +{ + return m_next; +} + +inline void* b2Joint::GetUserData() const +{ + return m_userData; +} + +inline void b2Joint::SetUserData(void* data) +{ + m_userData = data; +} + +inline bool b2Joint::GetCollideConnected() const +{ + return m_collideConnected; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Body.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Body.cpp new file mode 100644 index 0000000..b655053 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Body.cpp @@ -0,0 +1,549 @@ +/* +* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include +#include + +b2Body::b2Body(const b2BodyDef* bd, b2World* world) +{ + b2Assert(bd->position.IsValid()); + b2Assert(bd->linearVelocity.IsValid()); + b2Assert(b2IsValid(bd->angle)); + b2Assert(b2IsValid(bd->angularVelocity)); + b2Assert(b2IsValid(bd->angularDamping) && bd->angularDamping >= 0.0f); + b2Assert(b2IsValid(bd->linearDamping) && bd->linearDamping >= 0.0f); + + m_flags = 0; + + if (bd->bullet) + { + m_flags |= e_bulletFlag; + } + if (bd->fixedRotation) + { + m_flags |= e_fixedRotationFlag; + } + if (bd->allowSleep) + { + m_flags |= e_autoSleepFlag; + } + if (bd->awake) + { + m_flags |= e_awakeFlag; + } + if (bd->active) + { + m_flags |= e_activeFlag; + } + + m_world = world; + + m_xf.p = bd->position; + m_xf.q.Set(bd->angle); + + m_sweep.localCenter.SetZero(); + m_sweep.c0 = m_xf.p; + m_sweep.c = m_xf.p; + m_sweep.a0 = bd->angle; + m_sweep.a = bd->angle; + m_sweep.alpha0 = 0.0f; + + m_jointList = NULL; + m_contactList = NULL; + m_prev = NULL; + m_next = NULL; + + m_linearVelocity = bd->linearVelocity; + m_angularVelocity = bd->angularVelocity; + + m_linearDamping = bd->linearDamping; + m_angularDamping = bd->angularDamping; + m_gravityScale = bd->gravityScale; + + m_force.SetZero(); + m_torque = 0.0f; + + m_sleepTime = 0.0f; + + m_type = bd->type; + + if (m_type == b2_dynamicBody) + { + m_mass = 1.0f; + m_invMass = 1.0f; + } + else + { + m_mass = 0.0f; + m_invMass = 0.0f; + } + + m_I = 0.0f; + m_invI = 0.0f; + + m_userData = bd->userData; + + m_fixtureList = NULL; + m_fixtureCount = 0; +} + +b2Body::~b2Body() +{ + // shapes and joints are destroyed in b2World::Destroy +} + +void b2Body::SetType(b2BodyType type) +{ + b2Assert(m_world->IsLocked() == false); + if (m_world->IsLocked() == true) + { + return; + } + + if (m_type == type) + { + return; + } + + m_type = type; + + ResetMassData(); + + if (m_type == b2_staticBody) + { + m_linearVelocity.SetZero(); + m_angularVelocity = 0.0f; + m_sweep.a0 = m_sweep.a; + m_sweep.c0 = m_sweep.c; + SynchronizeFixtures(); + } + + SetAwake(true); + + m_force.SetZero(); + m_torque = 0.0f; + + // Delete the attached contacts. + b2ContactEdge* ce = m_contactList; + while (ce) + { + b2ContactEdge* ce0 = ce; + ce = ce->next; + m_world->m_contactManager.Destroy(ce0->contact); + } + m_contactList = NULL; + + // Touch the proxies so that new contacts will be created (when appropriate) + b2BroadPhase* broadPhase = &m_world->m_contactManager.m_broadPhase; + for (b2Fixture* f = m_fixtureList; f; f = f->m_next) + { + int32 proxyCount = f->m_proxyCount; + for (int32 i = 0; i < proxyCount; ++i) + { + broadPhase->TouchProxy(f->m_proxies[i].proxyId); + } + } +} + +b2Fixture* b2Body::CreateFixture(const b2FixtureDef* def) +{ + b2Assert(m_world->IsLocked() == false); + if (m_world->IsLocked() == true) + { + return NULL; + } + + b2BlockAllocator* allocator = &m_world->m_blockAllocator; + + void* memory = allocator->Allocate(sizeof(b2Fixture)); + b2Fixture* fixture = new (memory) b2Fixture; + fixture->Create(allocator, this, def); + + if (m_flags & e_activeFlag) + { + b2BroadPhase* broadPhase = &m_world->m_contactManager.m_broadPhase; + fixture->CreateProxies(broadPhase, m_xf); + } + + fixture->m_next = m_fixtureList; + m_fixtureList = fixture; + ++m_fixtureCount; + + fixture->m_body = this; + + // Adjust mass properties if needed. + if (fixture->m_density > 0.0f) + { + ResetMassData(); + } + + // Let the world know we have a new fixture. This will cause new contacts + // to be created at the beginning of the next time step. + m_world->m_flags |= b2World::e_newFixture; + + return fixture; +} + +b2Fixture* b2Body::CreateFixture(const b2Shape* shape, float32 density) +{ + b2FixtureDef def; + def.shape = shape; + def.density = density; + + return CreateFixture(&def); +} + +void b2Body::DestroyFixture(b2Fixture* fixture) +{ + b2Assert(m_world->IsLocked() == false); + if (m_world->IsLocked() == true) + { + return; + } + + b2Assert(fixture->m_body == this); + + // Remove the fixture from this body's singly linked list. + b2Assert(m_fixtureCount > 0); + b2Fixture** node = &m_fixtureList; + bool found = false; + while (*node != NULL) + { + if (*node == fixture) + { + *node = fixture->m_next; + found = true; + break; + } + + node = &(*node)->m_next; + } + + // You tried to remove a shape that is not attached to this body. + b2Assert(found); + + // Destroy any contacts associated with the fixture. + b2ContactEdge* edge = m_contactList; + while (edge) + { + b2Contact* c = edge->contact; + edge = edge->next; + + b2Fixture* fixtureA = c->GetFixtureA(); + b2Fixture* fixtureB = c->GetFixtureB(); + + if (fixture == fixtureA || fixture == fixtureB) + { + // This destroys the contact and removes it from + // this body's contact list. + m_world->m_contactManager.Destroy(c); + } + } + + b2BlockAllocator* allocator = &m_world->m_blockAllocator; + + if (m_flags & e_activeFlag) + { + b2BroadPhase* broadPhase = &m_world->m_contactManager.m_broadPhase; + fixture->DestroyProxies(broadPhase); + } + + fixture->Destroy(allocator); + fixture->m_body = NULL; + fixture->m_next = NULL; + fixture->~b2Fixture(); + allocator->Free(fixture, sizeof(b2Fixture)); + + --m_fixtureCount; + + // Reset the mass data. + ResetMassData(); +} + +void b2Body::ResetMassData() +{ + // Compute mass data from shapes. Each shape has its own density. + m_mass = 0.0f; + m_invMass = 0.0f; + m_I = 0.0f; + m_invI = 0.0f; + m_sweep.localCenter.SetZero(); + + // Static and kinematic bodies have zero mass. + if (m_type == b2_staticBody || m_type == b2_kinematicBody) + { + m_sweep.c0 = m_xf.p; + m_sweep.c = m_xf.p; + m_sweep.a0 = m_sweep.a; + return; + } + + b2Assert(m_type == b2_dynamicBody); + + // Accumulate mass over all fixtures. + b2Vec2 localCenter = b2Vec2_zero; + for (b2Fixture* f = m_fixtureList; f; f = f->m_next) + { + if (f->m_density == 0.0f) + { + continue; + } + + b2MassData massData; + f->GetMassData(&massData); + m_mass += massData.mass; + localCenter += massData.mass * massData.center; + m_I += massData.I; + } + + // Compute center of mass. + if (m_mass > 0.0f) + { + m_invMass = 1.0f / m_mass; + localCenter *= m_invMass; + } + else + { + // Force all dynamic bodies to have a positive mass. + m_mass = 1.0f; + m_invMass = 1.0f; + } + + if (m_I > 0.0f && (m_flags & e_fixedRotationFlag) == 0) + { + // Center the inertia about the center of mass. + m_I -= m_mass * b2Dot(localCenter, localCenter); + b2Assert(m_I > 0.0f); + m_invI = 1.0f / m_I; + + } + else + { + m_I = 0.0f; + m_invI = 0.0f; + } + + // Move center of mass. + b2Vec2 oldCenter = m_sweep.c; + m_sweep.localCenter = localCenter; + m_sweep.c0 = m_sweep.c = b2Mul(m_xf, m_sweep.localCenter); + + // Update center of mass velocity. + m_linearVelocity += b2Cross(m_angularVelocity, m_sweep.c - oldCenter); +} + +void b2Body::SetMassData(const b2MassData* massData) +{ + b2Assert(m_world->IsLocked() == false); + if (m_world->IsLocked() == true) + { + return; + } + + if (m_type != b2_dynamicBody) + { + return; + } + + m_invMass = 0.0f; + m_I = 0.0f; + m_invI = 0.0f; + + m_mass = massData->mass; + if (m_mass <= 0.0f) + { + m_mass = 1.0f; + } + + m_invMass = 1.0f / m_mass; + + if (massData->I > 0.0f && (m_flags & b2Body::e_fixedRotationFlag) == 0) + { + m_I = massData->I - m_mass * b2Dot(massData->center, massData->center); + b2Assert(m_I > 0.0f); + m_invI = 1.0f / m_I; + } + + // Move center of mass. + b2Vec2 oldCenter = m_sweep.c; + m_sweep.localCenter = massData->center; + m_sweep.c0 = m_sweep.c = b2Mul(m_xf, m_sweep.localCenter); + + // Update center of mass velocity. + m_linearVelocity += b2Cross(m_angularVelocity, m_sweep.c - oldCenter); +} + +bool b2Body::ShouldCollide(const b2Body* other) const +{ + // At least one body should be dynamic. + if (m_type != b2_dynamicBody && other->m_type != b2_dynamicBody) + { + return false; + } + + // Does a joint prevent collision? + for (b2JointEdge* jn = m_jointList; jn; jn = jn->next) + { + if (jn->other == other) + { + if (jn->joint->m_collideConnected == false) + { + return false; + } + } + } + + return true; +} + +void b2Body::SetTransform(const b2Vec2& position, float32 angle) +{ + b2Assert(m_world->IsLocked() == false); + if (m_world->IsLocked() == true) + { + return; + } + + m_xf.q.Set(angle); + m_xf.p = position; + + m_sweep.c = b2Mul(m_xf, m_sweep.localCenter); + m_sweep.a = angle; + + m_sweep.c0 = m_sweep.c; + m_sweep.a0 = angle; + + b2BroadPhase* broadPhase = &m_world->m_contactManager.m_broadPhase; + for (b2Fixture* f = m_fixtureList; f; f = f->m_next) + { + f->Synchronize(broadPhase, m_xf, m_xf); + } +} + +void b2Body::SynchronizeFixtures() +{ + b2Transform xf1; + xf1.q.Set(m_sweep.a0); + xf1.p = m_sweep.c0 - b2Mul(xf1.q, m_sweep.localCenter); + + b2BroadPhase* broadPhase = &m_world->m_contactManager.m_broadPhase; + for (b2Fixture* f = m_fixtureList; f; f = f->m_next) + { + f->Synchronize(broadPhase, xf1, m_xf); + } +} + +void b2Body::SetActive(bool flag) +{ + b2Assert(m_world->IsLocked() == false); + + if (flag == IsActive()) + { + return; + } + + if (flag) + { + m_flags |= e_activeFlag; + + // Create all proxies. + b2BroadPhase* broadPhase = &m_world->m_contactManager.m_broadPhase; + for (b2Fixture* f = m_fixtureList; f; f = f->m_next) + { + f->CreateProxies(broadPhase, m_xf); + } + + // Contacts are created the next time step. + } + else + { + m_flags &= ~e_activeFlag; + + // Destroy all proxies. + b2BroadPhase* broadPhase = &m_world->m_contactManager.m_broadPhase; + for (b2Fixture* f = m_fixtureList; f; f = f->m_next) + { + f->DestroyProxies(broadPhase); + } + + // Destroy the attached contacts. + b2ContactEdge* ce = m_contactList; + while (ce) + { + b2ContactEdge* ce0 = ce; + ce = ce->next; + m_world->m_contactManager.Destroy(ce0->contact); + } + m_contactList = NULL; + } +} + +void b2Body::SetFixedRotation(bool flag) +{ + bool status = (m_flags & e_fixedRotationFlag) == e_fixedRotationFlag; + if (status == flag) + { + return; + } + + if (flag) + { + m_flags |= e_fixedRotationFlag; + } + else + { + m_flags &= ~e_fixedRotationFlag; + } + + m_angularVelocity = 0.0f; + + ResetMassData(); +} + +void b2Body::Dump() +{ + int32 bodyIndex = m_islandIndex; + + b2Log("{\n"); + b2Log(" b2BodyDef bd;\n"); + b2Log(" bd.type = b2BodyType(%d);\n", m_type); + b2Log(" bd.position.Set(%.15lef, %.15lef);\n", m_xf.p.x, m_xf.p.y); + b2Log(" bd.angle = %.15lef;\n", m_sweep.a); + b2Log(" bd.linearVelocity.Set(%.15lef, %.15lef);\n", m_linearVelocity.x, m_linearVelocity.y); + b2Log(" bd.angularVelocity = %.15lef;\n", m_angularVelocity); + b2Log(" bd.linearDamping = %.15lef;\n", m_linearDamping); + b2Log(" bd.angularDamping = %.15lef;\n", m_angularDamping); + b2Log(" bd.allowSleep = bool(%d);\n", m_flags & e_autoSleepFlag); + b2Log(" bd.awake = bool(%d);\n", m_flags & e_awakeFlag); + b2Log(" bd.fixedRotation = bool(%d);\n", m_flags & e_fixedRotationFlag); + b2Log(" bd.bullet = bool(%d);\n", m_flags & e_bulletFlag); + b2Log(" bd.active = bool(%d);\n", m_flags & e_activeFlag); + b2Log(" bd.gravityScale = %.15lef;\n", m_gravityScale); + b2Log(" bodies[%d] = m_world->CreateBody(&bd);\n", m_islandIndex); + b2Log("\n"); + for (b2Fixture* f = m_fixtureList; f; f = f->m_next) + { + b2Log(" {\n"); + f->Dump(bodyIndex); + b2Log(" }\n"); + } + b2Log("}\n"); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Body.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Body.h new file mode 100644 index 0000000..c4af938 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Body.h @@ -0,0 +1,860 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_BODY_H +#define B2_BODY_H + +#include "Common/b2Math.h" +#include "Collision/Shapes/b2Shape.h" +#include + +class b2Fixture; +class b2Joint; +class b2Contact; +class b2Controller; +class b2World; +struct b2FixtureDef; +struct b2JointEdge; +struct b2ContactEdge; + +/// The body type. +/// static: zero mass, zero velocity, may be manually moved +/// kinematic: zero mass, non-zero velocity set by user, moved by solver +/// dynamic: positive mass, non-zero velocity determined by forces, moved by solver +enum b2BodyType +{ + b2_staticBody = 0, + b2_kinematicBody, + b2_dynamicBody + + // TODO_ERIN + //b2_bulletBody, +}; + +/// A body definition holds all the data needed to construct a rigid body. +/// You can safely re-use body definitions. Shapes are added to a body after construction. +struct b2BodyDef +{ + /// This constructor sets the body definition default values. + b2BodyDef() + { + userData = NULL; + position.Set(0.0f, 0.0f); + angle = 0.0f; + linearVelocity.Set(0.0f, 0.0f); + angularVelocity = 0.0f; + linearDamping = 0.0f; + angularDamping = 0.0f; + allowSleep = true; + awake = true; + fixedRotation = false; + bullet = false; + type = b2_staticBody; + active = true; + gravityScale = 1.0f; + } + + /// The body type: static, kinematic, or dynamic. + /// Note: if a dynamic body would have zero mass, the mass is set to one. + b2BodyType type; + + /// The world position of the body. Avoid creating bodies at the origin + /// since this can lead to many overlapping shapes. + b2Vec2 position; + + /// The world angle of the body in radians. + float32 angle; + + /// The linear velocity of the body's origin in world co-ordinates. + b2Vec2 linearVelocity; + + /// The angular velocity of the body. + float32 angularVelocity; + + /// Linear damping is use to reduce the linear velocity. The damping parameter + /// can be larger than 1.0f but the damping effect becomes sensitive to the + /// time step when the damping parameter is large. + float32 linearDamping; + + /// Angular damping is use to reduce the angular velocity. The damping parameter + /// can be larger than 1.0f but the damping effect becomes sensitive to the + /// time step when the damping parameter is large. + float32 angularDamping; + + /// Set this flag to false if this body should never fall asleep. Note that + /// this increases CPU usage. + bool allowSleep; + + /// Is this body initially awake or sleeping? + bool awake; + + /// Should this body be prevented from rotating? Useful for characters. + bool fixedRotation; + + /// Is this a fast moving body that should be prevented from tunneling through + /// other moving bodies? Note that all bodies are prevented from tunneling through + /// kinematic and static bodies. This setting is only considered on dynamic bodies. + /// @warning You should use this flag sparingly since it increases processing time. + bool bullet; + + /// Does this body start out active? + bool active; + + /// Use this to store application specific body data. + void* userData; + + /// Scale the gravity applied to this body. + float32 gravityScale; +}; + +/// A rigid body. These are created via b2World::CreateBody. +class b2Body +{ +public: + /// Creates a fixture and attach it to this body. Use this function if you need + /// to set some fixture parameters, like friction. Otherwise you can create the + /// fixture directly from a shape. + /// If the density is non-zero, this function automatically updates the mass of the body. + /// Contacts are not created until the next time step. + /// @param def the fixture definition. + /// @warning This function is locked during callbacks. + b2Fixture* CreateFixture(const b2FixtureDef* def); + + /// Creates a fixture from a shape and attach it to this body. + /// This is a convenience function. Use b2FixtureDef if you need to set parameters + /// like friction, restitution, user data, or filtering. + /// If the density is non-zero, this function automatically updates the mass of the body. + /// @param shape the shape to be cloned. + /// @param density the shape density (set to zero for static bodies). + /// @warning This function is locked during callbacks. + b2Fixture* CreateFixture(const b2Shape* shape, float32 density); + + /// Destroy a fixture. This removes the fixture from the broad-phase and + /// destroys all contacts associated with this fixture. This will + /// automatically adjust the mass of the body if the body is dynamic and the + /// fixture has positive density. + /// All fixtures attached to a body are implicitly destroyed when the body is destroyed. + /// @param fixture the fixture to be removed. + /// @warning This function is locked during callbacks. + void DestroyFixture(b2Fixture* fixture); + + /// Set the position of the body's origin and rotation. + /// Manipulating a body's transform may cause non-physical behavior. + /// Note: contacts are updated on the next call to b2World::Step. + /// @param position the world position of the body's local origin. + /// @param angle the world rotation in radians. + void SetTransform(const b2Vec2& position, float32 angle); + + /// Get the body transform for the body's origin. + /// @return the world transform of the body's origin. + const b2Transform& GetTransform() const; + + /// Get the world body origin position. + /// @return the world position of the body's origin. + const b2Vec2& GetPosition() const; + + /// Get the angle in radians. + /// @return the current world rotation angle in radians. + float32 GetAngle() const; + + /// Get the world position of the center of mass. + const b2Vec2& GetWorldCenter() const; + + /// Get the local position of the center of mass. + const b2Vec2& GetLocalCenter() const; + + /// Set the linear velocity of the center of mass. + /// @param v the new linear velocity of the center of mass. + void SetLinearVelocity(const b2Vec2& v); + + /// Get the linear velocity of the center of mass. + /// @return the linear velocity of the center of mass. + const b2Vec2& GetLinearVelocity() const; + + /// Set the angular velocity. + /// @param omega the new angular velocity in radians/second. + void SetAngularVelocity(float32 omega); + + /// Get the angular velocity. + /// @return the angular velocity in radians/second. + float32 GetAngularVelocity() const; + + /// Apply a force at a world point. If the force is not + /// applied at the center of mass, it will generate a torque and + /// affect the angular velocity. This wakes up the body. + /// @param force the world force vector, usually in Newtons (N). + /// @param point the world position of the point of application. + /// @param wake also wake up the body + void ApplyForce(const b2Vec2& force, const b2Vec2& point, bool wake); + + /// Apply a force to the center of mass. This wakes up the body. + /// @param force the world force vector, usually in Newtons (N). + /// @param wake also wake up the body + void ApplyForceToCenter(const b2Vec2& force, bool wake); + + /// Apply a torque. This affects the angular velocity + /// without affecting the linear velocity of the center of mass. + /// This wakes up the body. + /// @param torque about the z-axis (out of the screen), usually in N-m. + /// @param wake also wake up the body + void ApplyTorque(float32 torque, bool wake); + + /// Apply an impulse at a point. This immediately modifies the velocity. + /// It also modifies the angular velocity if the point of application + /// is not at the center of mass. This wakes up the body. + /// @param impulse the world impulse vector, usually in N-seconds or kg-m/s. + /// @param point the world position of the point of application. + /// @param wake also wake up the body + void ApplyLinearImpulse(const b2Vec2& impulse, const b2Vec2& point, bool wake); + + /// Apply an angular impulse. + /// @param impulse the angular impulse in units of kg*m*m/s + /// @param wake also wake up the body + void ApplyAngularImpulse(float32 impulse, bool wake); + + /// Get the total mass of the body. + /// @return the mass, usually in kilograms (kg). + float32 GetMass() const; + + /// Get the rotational inertia of the body about the local origin. + /// @return the rotational inertia, usually in kg-m^2. + float32 GetInertia() const; + + /// Get the mass data of the body. + /// @return a struct containing the mass, inertia and center of the body. + void GetMassData(b2MassData* data) const; + + /// Set the mass properties to override the mass properties of the fixtures. + /// Note that this changes the center of mass position. + /// Note that creating or destroying fixtures can also alter the mass. + /// This function has no effect if the body isn't dynamic. + /// @param massData the mass properties. + void SetMassData(const b2MassData* data); + + /// This resets the mass properties to the sum of the mass properties of the fixtures. + /// This normally does not need to be called unless you called SetMassData to override + /// the mass and you later want to reset the mass. + void ResetMassData(); + + /// Get the world coordinates of a point given the local coordinates. + /// @param localPoint a point on the body measured relative the the body's origin. + /// @return the same point expressed in world coordinates. + b2Vec2 GetWorldPoint(const b2Vec2& localPoint) const; + + /// Get the world coordinates of a vector given the local coordinates. + /// @param localVector a vector fixed in the body. + /// @return the same vector expressed in world coordinates. + b2Vec2 GetWorldVector(const b2Vec2& localVector) const; + + /// Gets a local point relative to the body's origin given a world point. + /// @param a point in world coordinates. + /// @return the corresponding local point relative to the body's origin. + b2Vec2 GetLocalPoint(const b2Vec2& worldPoint) const; + + /// Gets a local vector given a world vector. + /// @param a vector in world coordinates. + /// @return the corresponding local vector. + b2Vec2 GetLocalVector(const b2Vec2& worldVector) const; + + /// Get the world linear velocity of a world point attached to this body. + /// @param a point in world coordinates. + /// @return the world velocity of a point. + b2Vec2 GetLinearVelocityFromWorldPoint(const b2Vec2& worldPoint) const; + + /// Get the world velocity of a local point. + /// @param a point in local coordinates. + /// @return the world velocity of a point. + b2Vec2 GetLinearVelocityFromLocalPoint(const b2Vec2& localPoint) const; + + /// Get the linear damping of the body. + float32 GetLinearDamping() const; + + /// Set the linear damping of the body. + void SetLinearDamping(float32 linearDamping); + + /// Get the angular damping of the body. + float32 GetAngularDamping() const; + + /// Set the angular damping of the body. + void SetAngularDamping(float32 angularDamping); + + /// Get the gravity scale of the body. + float32 GetGravityScale() const; + + /// Set the gravity scale of the body. + void SetGravityScale(float32 scale); + + /// Set the type of this body. This may alter the mass and velocity. + void SetType(b2BodyType type); + + /// Get the type of this body. + b2BodyType GetType() const; + + /// Should this body be treated like a bullet for continuous collision detection? + void SetBullet(bool flag); + + /// Is this body treated like a bullet for continuous collision detection? + bool IsBullet() const; + + /// You can disable sleeping on this body. If you disable sleeping, the + /// body will be woken. + void SetSleepingAllowed(bool flag); + + /// Is this body allowed to sleep + bool IsSleepingAllowed() const; + + /// Set the sleep state of the body. A sleeping body has very + /// low CPU cost. + /// @param flag set to true to wake the body, false to put it to sleep. + void SetAwake(bool flag); + + /// Get the sleeping state of this body. + /// @return true if the body is awake. + bool IsAwake() const; + + /// Set the active state of the body. An inactive body is not + /// simulated and cannot be collided with or woken up. + /// If you pass a flag of true, all fixtures will be added to the + /// broad-phase. + /// If you pass a flag of false, all fixtures will be removed from + /// the broad-phase and all contacts will be destroyed. + /// Fixtures and joints are otherwise unaffected. You may continue + /// to create/destroy fixtures and joints on inactive bodies. + /// Fixtures on an inactive body are implicitly inactive and will + /// not participate in collisions, ray-casts, or queries. + /// Joints connected to an inactive body are implicitly inactive. + /// An inactive body is still owned by a b2World object and remains + /// in the body list. + void SetActive(bool flag); + + /// Get the active state of the body. + bool IsActive() const; + + /// Set this body to have fixed rotation. This causes the mass + /// to be reset. + void SetFixedRotation(bool flag); + + /// Does this body have fixed rotation? + bool IsFixedRotation() const; + + /// Get the list of all fixtures attached to this body. + b2Fixture* GetFixtureList(); + const b2Fixture* GetFixtureList() const; + + /// Get the list of all joints attached to this body. + b2JointEdge* GetJointList(); + const b2JointEdge* GetJointList() const; + + /// Get the list of all contacts attached to this body. + /// @warning this list changes during the time step and you may + /// miss some collisions if you don't use b2ContactListener. + b2ContactEdge* GetContactList(); + const b2ContactEdge* GetContactList() const; + + /// Get the next body in the world's body list. + b2Body* GetNext(); + const b2Body* GetNext() const; + + /// Get the user data pointer that was provided in the body definition. + void* GetUserData() const; + + /// Set the user data. Use this to store your application specific data. + void SetUserData(void* data); + + /// Get the parent world of this body. + b2World* GetWorld(); + const b2World* GetWorld() const; + + /// Dump this body to a log file + void Dump(); + +private: + + friend class b2World; + friend class b2Island; + friend class b2ContactManager; + friend class b2ContactSolver; + friend class b2Contact; + + friend class b2DistanceJoint; + friend class b2FrictionJoint; + friend class b2GearJoint; + friend class b2MotorJoint; + friend class b2MouseJoint; + friend class b2PrismaticJoint; + friend class b2PulleyJoint; + friend class b2RevoluteJoint; + friend class b2RopeJoint; + friend class b2WeldJoint; + friend class b2WheelJoint; + + // m_flags + enum + { + e_islandFlag = 0x0001, + e_awakeFlag = 0x0002, + e_autoSleepFlag = 0x0004, + e_bulletFlag = 0x0008, + e_fixedRotationFlag = 0x0010, + e_activeFlag = 0x0020, + e_toiFlag = 0x0040 + }; + + b2Body(const b2BodyDef* bd, b2World* world); + ~b2Body(); + + void SynchronizeFixtures(); + void SynchronizeTransform(); + + // This is used to prevent connected bodies from colliding. + // It may lie, depending on the collideConnected flag. + bool ShouldCollide(const b2Body* other) const; + + void Advance(float32 t); + + b2BodyType m_type; + + uint16 m_flags; + + int32 m_islandIndex; + + b2Transform m_xf; // the body origin transform + b2Sweep m_sweep; // the swept motion for CCD + + b2Vec2 m_linearVelocity; + float32 m_angularVelocity; + + b2Vec2 m_force; + float32 m_torque; + + b2World* m_world; + b2Body* m_prev; + b2Body* m_next; + + b2Fixture* m_fixtureList; + int32 m_fixtureCount; + + b2JointEdge* m_jointList; + b2ContactEdge* m_contactList; + + float32 m_mass, m_invMass; + + // Rotational inertia about the center of mass. + float32 m_I, m_invI; + + float32 m_linearDamping; + float32 m_angularDamping; + float32 m_gravityScale; + + float32 m_sleepTime; + + void* m_userData; +}; + +inline b2BodyType b2Body::GetType() const +{ + return m_type; +} + +inline const b2Transform& b2Body::GetTransform() const +{ + return m_xf; +} + +inline const b2Vec2& b2Body::GetPosition() const +{ + return m_xf.p; +} + +inline float32 b2Body::GetAngle() const +{ + return m_sweep.a; +} + +inline const b2Vec2& b2Body::GetWorldCenter() const +{ + return m_sweep.c; +} + +inline const b2Vec2& b2Body::GetLocalCenter() const +{ + return m_sweep.localCenter; +} + +inline void b2Body::SetLinearVelocity(const b2Vec2& v) +{ + if (m_type == b2_staticBody) + { + return; + } + + if (b2Dot(v,v) > 0.0f) + { + SetAwake(true); + } + + m_linearVelocity = v; +} + +inline const b2Vec2& b2Body::GetLinearVelocity() const +{ + return m_linearVelocity; +} + +inline void b2Body::SetAngularVelocity(float32 w) +{ + if (m_type == b2_staticBody) + { + return; + } + + if (w * w > 0.0f) + { + SetAwake(true); + } + + m_angularVelocity = w; +} + +inline float32 b2Body::GetAngularVelocity() const +{ + return m_angularVelocity; +} + +inline float32 b2Body::GetMass() const +{ + return m_mass; +} + +inline float32 b2Body::GetInertia() const +{ + return m_I + m_mass * b2Dot(m_sweep.localCenter, m_sweep.localCenter); +} + +inline void b2Body::GetMassData(b2MassData* data) const +{ + data->mass = m_mass; + data->I = m_I + m_mass * b2Dot(m_sweep.localCenter, m_sweep.localCenter); + data->center = m_sweep.localCenter; +} + +inline b2Vec2 b2Body::GetWorldPoint(const b2Vec2& localPoint) const +{ + return b2Mul(m_xf, localPoint); +} + +inline b2Vec2 b2Body::GetWorldVector(const b2Vec2& localVector) const +{ + return b2Mul(m_xf.q, localVector); +} + +inline b2Vec2 b2Body::GetLocalPoint(const b2Vec2& worldPoint) const +{ + return b2MulT(m_xf, worldPoint); +} + +inline b2Vec2 b2Body::GetLocalVector(const b2Vec2& worldVector) const +{ + return b2MulT(m_xf.q, worldVector); +} + +inline b2Vec2 b2Body::GetLinearVelocityFromWorldPoint(const b2Vec2& worldPoint) const +{ + return m_linearVelocity + b2Cross(m_angularVelocity, worldPoint - m_sweep.c); +} + +inline b2Vec2 b2Body::GetLinearVelocityFromLocalPoint(const b2Vec2& localPoint) const +{ + return GetLinearVelocityFromWorldPoint(GetWorldPoint(localPoint)); +} + +inline float32 b2Body::GetLinearDamping() const +{ + return m_linearDamping; +} + +inline void b2Body::SetLinearDamping(float32 linearDamping) +{ + m_linearDamping = linearDamping; +} + +inline float32 b2Body::GetAngularDamping() const +{ + return m_angularDamping; +} + +inline void b2Body::SetAngularDamping(float32 angularDamping) +{ + m_angularDamping = angularDamping; +} + +inline float32 b2Body::GetGravityScale() const +{ + return m_gravityScale; +} + +inline void b2Body::SetGravityScale(float32 scale) +{ + m_gravityScale = scale; +} + +inline void b2Body::SetBullet(bool flag) +{ + if (flag) + { + m_flags |= e_bulletFlag; + } + else + { + m_flags &= ~e_bulletFlag; + } +} + +inline bool b2Body::IsBullet() const +{ + return (m_flags & e_bulletFlag) == e_bulletFlag; +} + +inline void b2Body::SetAwake(bool flag) +{ + if (flag) + { + if ((m_flags & e_awakeFlag) == 0) + { + m_flags |= e_awakeFlag; + m_sleepTime = 0.0f; + } + } + else + { + m_flags &= ~e_awakeFlag; + m_sleepTime = 0.0f; + m_linearVelocity.SetZero(); + m_angularVelocity = 0.0f; + m_force.SetZero(); + m_torque = 0.0f; + } +} + +inline bool b2Body::IsAwake() const +{ + return (m_flags & e_awakeFlag) == e_awakeFlag; +} + +inline bool b2Body::IsActive() const +{ + return (m_flags & e_activeFlag) == e_activeFlag; +} + +inline bool b2Body::IsFixedRotation() const +{ + return (m_flags & e_fixedRotationFlag) == e_fixedRotationFlag; +} + +inline void b2Body::SetSleepingAllowed(bool flag) +{ + if (flag) + { + m_flags |= e_autoSleepFlag; + } + else + { + m_flags &= ~e_autoSleepFlag; + SetAwake(true); + } +} + +inline bool b2Body::IsSleepingAllowed() const +{ + return (m_flags & e_autoSleepFlag) == e_autoSleepFlag; +} + +inline b2Fixture* b2Body::GetFixtureList() +{ + return m_fixtureList; +} + +inline const b2Fixture* b2Body::GetFixtureList() const +{ + return m_fixtureList; +} + +inline b2JointEdge* b2Body::GetJointList() +{ + return m_jointList; +} + +inline const b2JointEdge* b2Body::GetJointList() const +{ + return m_jointList; +} + +inline b2ContactEdge* b2Body::GetContactList() +{ + return m_contactList; +} + +inline const b2ContactEdge* b2Body::GetContactList() const +{ + return m_contactList; +} + +inline b2Body* b2Body::GetNext() +{ + return m_next; +} + +inline const b2Body* b2Body::GetNext() const +{ + return m_next; +} + +inline void b2Body::SetUserData(void* data) +{ + m_userData = data; +} + +inline void* b2Body::GetUserData() const +{ + return m_userData; +} + +inline void b2Body::ApplyForce(const b2Vec2& force, const b2Vec2& point, bool wake) +{ + if (m_type != b2_dynamicBody) + { + return; + } + + if (wake && (m_flags & e_awakeFlag) == 0) + { + SetAwake(true); + } + + // Don't accumulate a force if the body is sleeping. + if (m_flags & e_awakeFlag) + { + m_force += force; + m_torque += b2Cross(point - m_sweep.c, force); + } +} + +inline void b2Body::ApplyForceToCenter(const b2Vec2& force, bool wake) +{ + if (m_type != b2_dynamicBody) + { + return; + } + + if (wake && (m_flags & e_awakeFlag) == 0) + { + SetAwake(true); + } + + // Don't accumulate a force if the body is sleeping + if (m_flags & e_awakeFlag) + { + m_force += force; + } +} + +inline void b2Body::ApplyTorque(float32 torque, bool wake) +{ + if (m_type != b2_dynamicBody) + { + return; + } + + if (wake && (m_flags & e_awakeFlag) == 0) + { + SetAwake(true); + } + + // Don't accumulate a force if the body is sleeping + if (m_flags & e_awakeFlag) + { + m_torque += torque; + } +} + +inline void b2Body::ApplyLinearImpulse(const b2Vec2& impulse, const b2Vec2& point, bool wake) +{ + if (m_type != b2_dynamicBody) + { + return; + } + + if (wake && (m_flags & e_awakeFlag) == 0) + { + SetAwake(true); + } + + // Don't accumulate velocity if the body is sleeping + if (m_flags & e_awakeFlag) + { + m_linearVelocity += m_invMass * impulse; + m_angularVelocity += m_invI * b2Cross(point - m_sweep.c, impulse); + } +} + +inline void b2Body::ApplyAngularImpulse(float32 impulse, bool wake) +{ + if (m_type != b2_dynamicBody) + { + return; + } + + if (wake && (m_flags & e_awakeFlag) == 0) + { + SetAwake(true); + } + + // Don't accumulate velocity if the body is sleeping + if (m_flags & e_awakeFlag) + { + m_angularVelocity += m_invI * impulse; + } +} + +inline void b2Body::SynchronizeTransform() +{ + m_xf.q.Set(m_sweep.a); + m_xf.p = m_sweep.c - b2Mul(m_xf.q, m_sweep.localCenter); +} + +inline void b2Body::Advance(float32 alpha) +{ + // Advance to the new safe time. This doesn't sync the broad-phase. + m_sweep.Advance(alpha); + m_sweep.c = m_sweep.c0; + m_sweep.a = m_sweep.a0; + m_xf.q.Set(m_sweep.a); + m_xf.p = m_sweep.c - b2Mul(m_xf.q, m_sweep.localCenter); +} + +inline b2World* b2Body::GetWorld() +{ + return m_world; +} + +inline const b2World* b2Body::GetWorld() const +{ + return m_world; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2ContactManager.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2ContactManager.cpp new file mode 100644 index 0000000..d8a189b --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2ContactManager.cpp @@ -0,0 +1,296 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include +#include + +b2ContactFilter b2_defaultFilter; +b2ContactListener b2_defaultListener; + +b2ContactManager::b2ContactManager() +{ + m_contactList = NULL; + m_contactCount = 0; + m_contactFilter = &b2_defaultFilter; + m_contactListener = &b2_defaultListener; + m_allocator = NULL; +} + +void b2ContactManager::Destroy(b2Contact* c) +{ + b2Fixture* fixtureA = c->GetFixtureA(); + b2Fixture* fixtureB = c->GetFixtureB(); + b2Body* bodyA = fixtureA->GetBody(); + b2Body* bodyB = fixtureB->GetBody(); + + if (m_contactListener && c->IsTouching()) + { + m_contactListener->EndContact(c); + } + + // Remove from the world. + if (c->m_prev) + { + c->m_prev->m_next = c->m_next; + } + + if (c->m_next) + { + c->m_next->m_prev = c->m_prev; + } + + if (c == m_contactList) + { + m_contactList = c->m_next; + } + + // Remove from body 1 + if (c->m_nodeA.prev) + { + c->m_nodeA.prev->next = c->m_nodeA.next; + } + + if (c->m_nodeA.next) + { + c->m_nodeA.next->prev = c->m_nodeA.prev; + } + + if (&c->m_nodeA == bodyA->m_contactList) + { + bodyA->m_contactList = c->m_nodeA.next; + } + + // Remove from body 2 + if (c->m_nodeB.prev) + { + c->m_nodeB.prev->next = c->m_nodeB.next; + } + + if (c->m_nodeB.next) + { + c->m_nodeB.next->prev = c->m_nodeB.prev; + } + + if (&c->m_nodeB == bodyB->m_contactList) + { + bodyB->m_contactList = c->m_nodeB.next; + } + + // Call the factory. + b2Contact::Destroy(c, m_allocator); + --m_contactCount; +} + +// This is the top level collision call for the time step. Here +// all the narrow phase collision is processed for the world +// contact list. +void b2ContactManager::Collide() +{ + // Update awake contacts. + b2Contact* c = m_contactList; + while (c) + { + b2Fixture* fixtureA = c->GetFixtureA(); + b2Fixture* fixtureB = c->GetFixtureB(); + int32 indexA = c->GetChildIndexA(); + int32 indexB = c->GetChildIndexB(); + b2Body* bodyA = fixtureA->GetBody(); + b2Body* bodyB = fixtureB->GetBody(); + + // Is this contact flagged for filtering? + if (c->m_flags & b2Contact::e_filterFlag) + { + // Should these bodies collide? + if (bodyB->ShouldCollide(bodyA) == false) + { + b2Contact* cNuke = c; + c = cNuke->GetNext(); + Destroy(cNuke); + continue; + } + + // Check user filtering. + if (m_contactFilter && m_contactFilter->ShouldCollide(fixtureA, fixtureB) == false) + { + b2Contact* cNuke = c; + c = cNuke->GetNext(); + Destroy(cNuke); + continue; + } + + // Clear the filtering flag. + c->m_flags &= ~b2Contact::e_filterFlag; + } + + bool activeA = bodyA->IsAwake() && bodyA->m_type != b2_staticBody; + bool activeB = bodyB->IsAwake() && bodyB->m_type != b2_staticBody; + + // At least one body must be awake and it must be dynamic or kinematic. + if (activeA == false && activeB == false) + { + c = c->GetNext(); + continue; + } + + int32 proxyIdA = fixtureA->m_proxies[indexA].proxyId; + int32 proxyIdB = fixtureB->m_proxies[indexB].proxyId; + bool overlap = m_broadPhase.TestOverlap(proxyIdA, proxyIdB); + + // Here we destroy contacts that cease to overlap in the broad-phase. + if (overlap == false) + { + b2Contact* cNuke = c; + c = cNuke->GetNext(); + Destroy(cNuke); + continue; + } + + // The contact persists. + c->Update(m_contactListener); + c = c->GetNext(); + } +} + +void b2ContactManager::FindNewContacts() +{ + m_broadPhase.UpdatePairs(this); +} + +void b2ContactManager::AddPair(void* proxyUserDataA, void* proxyUserDataB) +{ + b2FixtureProxy* proxyA = (b2FixtureProxy*)proxyUserDataA; + b2FixtureProxy* proxyB = (b2FixtureProxy*)proxyUserDataB; + + b2Fixture* fixtureA = proxyA->fixture; + b2Fixture* fixtureB = proxyB->fixture; + + int32 indexA = proxyA->childIndex; + int32 indexB = proxyB->childIndex; + + b2Body* bodyA = fixtureA->GetBody(); + b2Body* bodyB = fixtureB->GetBody(); + + // Are the fixtures on the same body? + if (bodyA == bodyB) + { + return; + } + + // TODO_ERIN use a hash table to remove a potential bottleneck when both + // bodies have a lot of contacts. + // Does a contact already exist? + b2ContactEdge* edge = bodyB->GetContactList(); + while (edge) + { + if (edge->other == bodyA) + { + b2Fixture* fA = edge->contact->GetFixtureA(); + b2Fixture* fB = edge->contact->GetFixtureB(); + int32 iA = edge->contact->GetChildIndexA(); + int32 iB = edge->contact->GetChildIndexB(); + + if (fA == fixtureA && fB == fixtureB && iA == indexA && iB == indexB) + { + // A contact already exists. + return; + } + + if (fA == fixtureB && fB == fixtureA && iA == indexB && iB == indexA) + { + // A contact already exists. + return; + } + } + + edge = edge->next; + } + + // Does a joint override collision? Is at least one body dynamic? + if (bodyB->ShouldCollide(bodyA) == false) + { + return; + } + + // Check user filtering. + if (m_contactFilter && m_contactFilter->ShouldCollide(fixtureA, fixtureB) == false) + { + return; + } + + // Call the factory. + b2Contact* c = b2Contact::Create(fixtureA, indexA, fixtureB, indexB, m_allocator); + if (c == NULL) + { + return; + } + + // Contact creation may swap fixtures. + fixtureA = c->GetFixtureA(); + fixtureB = c->GetFixtureB(); + indexA = c->GetChildIndexA(); + indexB = c->GetChildIndexB(); + bodyA = fixtureA->GetBody(); + bodyB = fixtureB->GetBody(); + + // Insert into the world. + c->m_prev = NULL; + c->m_next = m_contactList; + if (m_contactList != NULL) + { + m_contactList->m_prev = c; + } + m_contactList = c; + + // Connect to island graph. + + // Connect to body A + c->m_nodeA.contact = c; + c->m_nodeA.other = bodyB; + + c->m_nodeA.prev = NULL; + c->m_nodeA.next = bodyA->m_contactList; + if (bodyA->m_contactList != NULL) + { + bodyA->m_contactList->prev = &c->m_nodeA; + } + bodyA->m_contactList = &c->m_nodeA; + + // Connect to body B + c->m_nodeB.contact = c; + c->m_nodeB.other = bodyA; + + c->m_nodeB.prev = NULL; + c->m_nodeB.next = bodyB->m_contactList; + if (bodyB->m_contactList != NULL) + { + bodyB->m_contactList->prev = &c->m_nodeB; + } + bodyB->m_contactList = &c->m_nodeB; + + // Wake up the bodies + if (fixtureA->IsSensor() == false && fixtureB->IsSensor() == false) + { + bodyA->SetAwake(true); + bodyB->SetAwake(true); + } + + ++m_contactCount; +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2ContactManager.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2ContactManager.h new file mode 100644 index 0000000..9cc608c --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2ContactManager.h @@ -0,0 +1,52 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_CONTACT_MANAGER_H +#define B2_CONTACT_MANAGER_H + +#include "Collision/b2BroadPhase.h" + +class b2Contact; +class b2ContactFilter; +class b2ContactListener; +class b2BlockAllocator; + +// Delegate of b2World. +class b2ContactManager +{ +public: + b2ContactManager(); + + // Broad-phase callback. + void AddPair(void* proxyUserDataA, void* proxyUserDataB); + + void FindNewContacts(); + + void Destroy(b2Contact* c); + + void Collide(); + + b2BroadPhase m_broadPhase; + b2Contact* m_contactList; + int32 m_contactCount; + b2ContactFilter* m_contactFilter; + b2ContactListener* m_contactListener; + b2BlockAllocator* m_allocator; +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Fixture.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Fixture.cpp new file mode 100644 index 0000000..fb17f0a --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Fixture.cpp @@ -0,0 +1,303 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +b2Fixture::b2Fixture() +{ + m_userData = NULL; + m_body = NULL; + m_next = NULL; + m_proxies = NULL; + m_proxyCount = 0; + m_shape = NULL; + m_density = 0.0f; +} + +void b2Fixture::Create(b2BlockAllocator* allocator, b2Body* body, const b2FixtureDef* def) +{ + m_userData = def->userData; + m_friction = def->friction; + m_restitution = def->restitution; + + m_body = body; + m_next = NULL; + + m_filter = def->filter; + + m_isSensor = def->isSensor; + + m_shape = def->shape->Clone(allocator); + + // Reserve proxy space + int32 childCount = m_shape->GetChildCount(); + m_proxies = (b2FixtureProxy*)allocator->Allocate(childCount * sizeof(b2FixtureProxy)); + for (int32 i = 0; i < childCount; ++i) + { + m_proxies[i].fixture = NULL; + m_proxies[i].proxyId = b2BroadPhase::e_nullProxy; + } + m_proxyCount = 0; + + m_density = def->density; +} + +void b2Fixture::Destroy(b2BlockAllocator* allocator) +{ + // The proxies must be destroyed before calling this. + b2Assert(m_proxyCount == 0); + + // Free the proxy array. + int32 childCount = m_shape->GetChildCount(); + allocator->Free(m_proxies, childCount * sizeof(b2FixtureProxy)); + m_proxies = NULL; + + // Free the child shape. + switch (m_shape->m_type) + { + case b2Shape::e_circle: + { + b2CircleShape* s = (b2CircleShape*)m_shape; + s->~b2CircleShape(); + allocator->Free(s, sizeof(b2CircleShape)); + } + break; + + case b2Shape::e_edge: + { + b2EdgeShape* s = (b2EdgeShape*)m_shape; + s->~b2EdgeShape(); + allocator->Free(s, sizeof(b2EdgeShape)); + } + break; + + case b2Shape::e_polygon: + { + b2PolygonShape* s = (b2PolygonShape*)m_shape; + s->~b2PolygonShape(); + allocator->Free(s, sizeof(b2PolygonShape)); + } + break; + + case b2Shape::e_chain: + { + b2ChainShape* s = (b2ChainShape*)m_shape; + s->~b2ChainShape(); + allocator->Free(s, sizeof(b2ChainShape)); + } + break; + + default: + b2Assert(false); + break; + } + + m_shape = NULL; +} + +void b2Fixture::CreateProxies(b2BroadPhase* broadPhase, const b2Transform& xf) +{ + b2Assert(m_proxyCount == 0); + + // Create proxies in the broad-phase. + m_proxyCount = m_shape->GetChildCount(); + + for (int32 i = 0; i < m_proxyCount; ++i) + { + b2FixtureProxy* proxy = m_proxies + i; + m_shape->ComputeAABB(&proxy->aabb, xf, i); + proxy->proxyId = broadPhase->CreateProxy(proxy->aabb, proxy); + proxy->fixture = this; + proxy->childIndex = i; + } +} + +void b2Fixture::DestroyProxies(b2BroadPhase* broadPhase) +{ + // Destroy proxies in the broad-phase. + for (int32 i = 0; i < m_proxyCount; ++i) + { + b2FixtureProxy* proxy = m_proxies + i; + broadPhase->DestroyProxy(proxy->proxyId); + proxy->proxyId = b2BroadPhase::e_nullProxy; + } + + m_proxyCount = 0; +} + +void b2Fixture::Synchronize(b2BroadPhase* broadPhase, const b2Transform& transform1, const b2Transform& transform2) +{ + if (m_proxyCount == 0) + { + return; + } + + for (int32 i = 0; i < m_proxyCount; ++i) + { + b2FixtureProxy* proxy = m_proxies + i; + + // Compute an AABB that covers the swept shape (may miss some rotation effect). + b2AABB aabb1, aabb2; + m_shape->ComputeAABB(&aabb1, transform1, proxy->childIndex); + m_shape->ComputeAABB(&aabb2, transform2, proxy->childIndex); + + proxy->aabb.Combine(aabb1, aabb2); + + b2Vec2 displacement = transform2.p - transform1.p; + + broadPhase->MoveProxy(proxy->proxyId, proxy->aabb, displacement); + } +} + +void b2Fixture::SetFilterData(const b2Filter& filter) +{ + m_filter = filter; + + Refilter(); +} + +void b2Fixture::Refilter() +{ + if (m_body == NULL) + { + return; + } + + // Flag associated contacts for filtering. + b2ContactEdge* edge = m_body->GetContactList(); + while (edge) + { + b2Contact* contact = edge->contact; + b2Fixture* fixtureA = contact->GetFixtureA(); + b2Fixture* fixtureB = contact->GetFixtureB(); + if (fixtureA == this || fixtureB == this) + { + contact->FlagForFiltering(); + } + + edge = edge->next; + } + + b2World* world = m_body->GetWorld(); + + if (world == NULL) + { + return; + } + + // Touch each proxy so that new pairs may be created + b2BroadPhase* broadPhase = &world->m_contactManager.m_broadPhase; + for (int32 i = 0; i < m_proxyCount; ++i) + { + broadPhase->TouchProxy(m_proxies[i].proxyId); + } +} + +void b2Fixture::SetSensor(bool sensor) +{ + if (sensor != m_isSensor) + { + m_body->SetAwake(true); + m_isSensor = sensor; + } +} + +void b2Fixture::Dump(int32 bodyIndex) +{ + b2Log(" b2FixtureDef fd;\n"); + b2Log(" fd.friction = %.15lef;\n", m_friction); + b2Log(" fd.restitution = %.15lef;\n", m_restitution); + b2Log(" fd.density = %.15lef;\n", m_density); + b2Log(" fd.isSensor = bool(%d);\n", m_isSensor); + b2Log(" fd.filter.categoryBits = uint16(%d);\n", m_filter.categoryBits); + b2Log(" fd.filter.maskBits = uint16(%d);\n", m_filter.maskBits); + b2Log(" fd.filter.groupIndex = int16(%d);\n", m_filter.groupIndex); + + switch (m_shape->m_type) + { + case b2Shape::e_circle: + { + b2CircleShape* s = (b2CircleShape*)m_shape; + b2Log(" b2CircleShape shape;\n"); + b2Log(" shape.m_radius = %.15lef;\n", s->m_radius); + b2Log(" shape.m_p.Set(%.15lef, %.15lef);\n", s->m_p.x, s->m_p.y); + } + break; + + case b2Shape::e_edge: + { + b2EdgeShape* s = (b2EdgeShape*)m_shape; + b2Log(" b2EdgeShape shape;\n"); + b2Log(" shape.m_radius = %.15lef;\n", s->m_radius); + b2Log(" shape.m_vertex0.Set(%.15lef, %.15lef);\n", s->m_vertex0.x, s->m_vertex0.y); + b2Log(" shape.m_vertex1.Set(%.15lef, %.15lef);\n", s->m_vertex1.x, s->m_vertex1.y); + b2Log(" shape.m_vertex2.Set(%.15lef, %.15lef);\n", s->m_vertex2.x, s->m_vertex2.y); + b2Log(" shape.m_vertex3.Set(%.15lef, %.15lef);\n", s->m_vertex3.x, s->m_vertex3.y); + b2Log(" shape.m_hasVertex0 = bool(%d);\n", s->m_hasVertex0); + b2Log(" shape.m_hasVertex3 = bool(%d);\n", s->m_hasVertex3); + } + break; + + case b2Shape::e_polygon: + { + b2PolygonShape* s = (b2PolygonShape*)m_shape; + b2Log(" b2PolygonShape shape;\n"); + b2Log(" b2Vec2 vs[%d];\n", b2_maxPolygonVertices); + for (int32 i = 0; i < s->m_count; ++i) + { + b2Log(" vs[%d].Set(%.15lef, %.15lef);\n", i, s->m_vertices[i].x, s->m_vertices[i].y); + } + b2Log(" shape.Set(vs, %d);\n", s->m_count); + } + break; + + case b2Shape::e_chain: + { + b2ChainShape* s = (b2ChainShape*)m_shape; + b2Log(" b2ChainShape shape;\n"); + b2Log(" b2Vec2 vs[%d];\n", s->m_count); + for (int32 i = 0; i < s->m_count; ++i) + { + b2Log(" vs[%d].Set(%.15lef, %.15lef);\n", i, s->m_vertices[i].x, s->m_vertices[i].y); + } + b2Log(" shape.CreateChain(vs, %d);\n", s->m_count); + b2Log(" shape.m_prevVertex.Set(%.15lef, %.15lef);\n", s->m_prevVertex.x, s->m_prevVertex.y); + b2Log(" shape.m_nextVertex.Set(%.15lef, %.15lef);\n", s->m_nextVertex.x, s->m_nextVertex.y); + b2Log(" shape.m_hasPrevVertex = bool(%d);\n", s->m_hasPrevVertex); + b2Log(" shape.m_hasNextVertex = bool(%d);\n", s->m_hasNextVertex); + } + break; + + default: + return; + } + + b2Log("\n"); + b2Log(" fd.shape = &shape;\n"); + b2Log("\n"); + b2Log(" bodies[%d]->CreateFixture(&fd);\n", bodyIndex); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Fixture.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Fixture.h new file mode 100644 index 0000000..49026e6 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Fixture.h @@ -0,0 +1,345 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_FIXTURE_H +#define B2_FIXTURE_H + +#include "Dynamics/b2Body.h" +#include "Collision/b2Collision.h" +#include "Collision/Shapes/b2Shape.h" + +class b2BlockAllocator; +class b2Body; +class b2BroadPhase; +class b2Fixture; + +/// This holds contact filtering data. +struct b2Filter +{ + b2Filter() + { + categoryBits = 0x0001; + maskBits = 0xFFFF; + groupIndex = 0; + } + + /// The collision category bits. Normally you would just set one bit. + uint16 categoryBits; + + /// The collision mask bits. This states the categories that this + /// shape would accept for collision. + uint16 maskBits; + + /// Collision groups allow a certain group of objects to never collide (negative) + /// or always collide (positive). Zero means no collision group. Non-zero group + /// filtering always wins against the mask bits. + int16 groupIndex; +}; + +/// A fixture definition is used to create a fixture. This class defines an +/// abstract fixture definition. You can reuse fixture definitions safely. +struct b2FixtureDef +{ + /// The constructor sets the default fixture definition values. + b2FixtureDef() + { + shape = NULL; + userData = NULL; + friction = 0.2f; + restitution = 0.0f; + density = 0.0f; + isSensor = false; + } + + /// The shape, this must be set. The shape will be cloned, so you + /// can create the shape on the stack. + const b2Shape* shape; + + /// Use this to store application specific fixture data. + void* userData; + + /// The friction coefficient, usually in the range [0,1]. + float32 friction; + + /// The restitution (elasticity) usually in the range [0,1]. + float32 restitution; + + /// The density, usually in kg/m^2. + float32 density; + + /// A sensor shape collects contact information but never generates a collision + /// response. + bool isSensor; + + /// Contact filtering data. + b2Filter filter; +}; + +/// This proxy is used internally to connect fixtures to the broad-phase. +struct b2FixtureProxy +{ + b2AABB aabb; + b2Fixture* fixture; + int32 childIndex; + int32 proxyId; +}; + +/// A fixture is used to attach a shape to a body for collision detection. A fixture +/// inherits its transform from its parent. Fixtures hold additional non-geometric data +/// such as friction, collision filters, etc. +/// Fixtures are created via b2Body::CreateFixture. +/// @warning you cannot reuse fixtures. +class b2Fixture +{ +public: + /// Get the type of the child shape. You can use this to down cast to the concrete shape. + /// @return the shape type. + b2Shape::Type GetType() const; + + /// Get the child shape. You can modify the child shape, however you should not change the + /// number of vertices because this will crash some collision caching mechanisms. + /// Manipulating the shape may lead to non-physical behavior. + b2Shape* GetShape(); + const b2Shape* GetShape() const; + + /// Set if this fixture is a sensor. + void SetSensor(bool sensor); + + /// Is this fixture a sensor (non-solid)? + /// @return the true if the shape is a sensor. + bool IsSensor() const; + + /// Set the contact filtering data. This will not update contacts until the next time + /// step when either parent body is active and awake. + /// This automatically calls Refilter. + void SetFilterData(const b2Filter& filter); + + /// Get the contact filtering data. + const b2Filter& GetFilterData() const; + + /// Call this if you want to establish collision that was previously disabled by b2ContactFilter::ShouldCollide. + void Refilter(); + + /// Get the parent body of this fixture. This is NULL if the fixture is not attached. + /// @return the parent body. + b2Body* GetBody(); + const b2Body* GetBody() const; + + /// Get the next fixture in the parent body's fixture list. + /// @return the next shape. + b2Fixture* GetNext(); + const b2Fixture* GetNext() const; + + /// Get the user data that was assigned in the fixture definition. Use this to + /// store your application specific data. + void* GetUserData() const; + + /// Set the user data. Use this to store your application specific data. + void SetUserData(void* data); + + /// Test a point for containment in this fixture. + /// @param p a point in world coordinates. + bool TestPoint(const b2Vec2& p) const; + + /// Cast a ray against this shape. + /// @param output the ray-cast results. + /// @param input the ray-cast input parameters. + bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, int32 childIndex) const; + + /// Get the mass data for this fixture. The mass data is based on the density and + /// the shape. The rotational inertia is about the shape's origin. This operation + /// may be expensive. + void GetMassData(b2MassData* massData) const; + + /// Set the density of this fixture. This will _not_ automatically adjust the mass + /// of the body. You must call b2Body::ResetMassData to update the body's mass. + void SetDensity(float32 density); + + /// Get the density of this fixture. + float32 GetDensity() const; + + /// Get the coefficient of friction. + float32 GetFriction() const; + + /// Set the coefficient of friction. This will _not_ change the friction of + /// existing contacts. + void SetFriction(float32 friction); + + /// Get the coefficient of restitution. + float32 GetRestitution() const; + + /// Set the coefficient of restitution. This will _not_ change the restitution of + /// existing contacts. + void SetRestitution(float32 restitution); + + /// Get the fixture's AABB. This AABB may be enlarge and/or stale. + /// If you need a more accurate AABB, compute it using the shape and + /// the body transform. + const b2AABB& GetAABB(int32 childIndex) const; + + /// Dump this fixture to the log file. + void Dump(int32 bodyIndex); + +protected: + + friend class b2Body; + friend class b2World; + friend class b2Contact; + friend class b2ContactManager; + + b2Fixture(); + + // We need separation create/destroy functions from the constructor/destructor because + // the destructor cannot access the allocator (no destructor arguments allowed by C++). + void Create(b2BlockAllocator* allocator, b2Body* body, const b2FixtureDef* def); + void Destroy(b2BlockAllocator* allocator); + + // These support body activation/deactivation. + void CreateProxies(b2BroadPhase* broadPhase, const b2Transform& xf); + void DestroyProxies(b2BroadPhase* broadPhase); + + void Synchronize(b2BroadPhase* broadPhase, const b2Transform& xf1, const b2Transform& xf2); + + float32 m_density; + + b2Fixture* m_next; + b2Body* m_body; + + b2Shape* m_shape; + + float32 m_friction; + float32 m_restitution; + + b2FixtureProxy* m_proxies; + int32 m_proxyCount; + + b2Filter m_filter; + + bool m_isSensor; + + void* m_userData; +}; + +inline b2Shape::Type b2Fixture::GetType() const +{ + return m_shape->GetType(); +} + +inline b2Shape* b2Fixture::GetShape() +{ + return m_shape; +} + +inline const b2Shape* b2Fixture::GetShape() const +{ + return m_shape; +} + +inline bool b2Fixture::IsSensor() const +{ + return m_isSensor; +} + +inline const b2Filter& b2Fixture::GetFilterData() const +{ + return m_filter; +} + +inline void* b2Fixture::GetUserData() const +{ + return m_userData; +} + +inline void b2Fixture::SetUserData(void* data) +{ + m_userData = data; +} + +inline b2Body* b2Fixture::GetBody() +{ + return m_body; +} + +inline const b2Body* b2Fixture::GetBody() const +{ + return m_body; +} + +inline b2Fixture* b2Fixture::GetNext() +{ + return m_next; +} + +inline const b2Fixture* b2Fixture::GetNext() const +{ + return m_next; +} + +inline void b2Fixture::SetDensity(float32 density) +{ + b2Assert(b2IsValid(density) && density >= 0.0f); + m_density = density; +} + +inline float32 b2Fixture::GetDensity() const +{ + return m_density; +} + +inline float32 b2Fixture::GetFriction() const +{ + return m_friction; +} + +inline void b2Fixture::SetFriction(float32 friction) +{ + m_friction = friction; +} + +inline float32 b2Fixture::GetRestitution() const +{ + return m_restitution; +} + +inline void b2Fixture::SetRestitution(float32 restitution) +{ + m_restitution = restitution; +} + +inline bool b2Fixture::TestPoint(const b2Vec2& p) const +{ + return m_shape->TestPoint(m_body->GetTransform(), p); +} + +inline bool b2Fixture::RayCast(b2RayCastOutput* output, const b2RayCastInput& input, int32 childIndex) const +{ + return m_shape->RayCast(output, input, m_body->GetTransform(), childIndex); +} + +inline void b2Fixture::GetMassData(b2MassData* massData) const +{ + m_shape->ComputeMass(massData, m_density); +} + +inline const b2AABB& b2Fixture::GetAABB(int32 childIndex) const +{ + b2Assert(0 <= childIndex && childIndex < m_proxyCount); + return m_proxies[childIndex].aabb; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Island.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Island.cpp new file mode 100644 index 0000000..d46589d --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Island.cpp @@ -0,0 +1,539 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* +Position Correction Notes +========================= +I tried the several algorithms for position correction of the 2D revolute joint. +I looked at these systems: +- simple pendulum (1m diameter sphere on massless 5m stick) with initial angular velocity of 100 rad/s. +- suspension bridge with 30 1m long planks of length 1m. +- multi-link chain with 30 1m long links. + +Here are the algorithms: + +Baumgarte - A fraction of the position error is added to the velocity error. There is no +separate position solver. + +Pseudo Velocities - After the velocity solver and position integration, +the position error, Jacobian, and effective mass are recomputed. Then +the velocity constraints are solved with pseudo velocities and a fraction +of the position error is added to the pseudo velocity error. The pseudo +velocities are initialized to zero and there is no warm-starting. After +the position solver, the pseudo velocities are added to the positions. +This is also called the First Order World method or the Position LCP method. + +Modified Nonlinear Gauss-Seidel (NGS) - Like Pseudo Velocities except the +position error is re-computed for each constraint and the positions are updated +after the constraint is solved. The radius vectors (aka Jacobians) are +re-computed too (otherwise the algorithm has horrible instability). The pseudo +velocity states are not needed because they are effectively zero at the beginning +of each iteration. Since we have the current position error, we allow the +iterations to terminate early if the error becomes smaller than b2_linearSlop. + +Full NGS or just NGS - Like Modified NGS except the effective mass are re-computed +each time a constraint is solved. + +Here are the results: +Baumgarte - this is the cheapest algorithm but it has some stability problems, +especially with the bridge. The chain links separate easily close to the root +and they jitter as they struggle to pull together. This is one of the most common +methods in the field. The big drawback is that the position correction artificially +affects the momentum, thus leading to instabilities and false bounce. I used a +bias factor of 0.2. A larger bias factor makes the bridge less stable, a smaller +factor makes joints and contacts more spongy. + +Pseudo Velocities - the is more stable than the Baumgarte method. The bridge is +stable. However, joints still separate with large angular velocities. Drag the +simple pendulum in a circle quickly and the joint will separate. The chain separates +easily and does not recover. I used a bias factor of 0.2. A larger value lead to +the bridge collapsing when a heavy cube drops on it. + +Modified NGS - this algorithm is better in some ways than Baumgarte and Pseudo +Velocities, but in other ways it is worse. The bridge and chain are much more +stable, but the simple pendulum goes unstable at high angular velocities. + +Full NGS - stable in all tests. The joints display good stiffness. The bridge +still sags, but this is better than infinite forces. + +Recommendations +Pseudo Velocities are not really worthwhile because the bridge and chain cannot +recover from joint separation. In other cases the benefit over Baumgarte is small. + +Modified NGS is not a robust method for the revolute joint due to the violent +instability seen in the simple pendulum. Perhaps it is viable with other constraint +types, especially scalar constraints where the effective mass is a scalar. + +This leaves Baumgarte and Full NGS. Baumgarte has small, but manageable instabilities +and is very fast. I don't think we can escape Baumgarte, especially in highly +demanding cases where high constraint fidelity is not needed. + +Full NGS is robust and easy on the eyes. I recommend this as an option for +higher fidelity simulation and certainly for suspension bridges and long chains. +Full NGS might be a good choice for ragdolls, especially motorized ragdolls where +joint separation can be problematic. The number of NGS iterations can be reduced +for better performance without harming robustness much. + +Each joint in a can be handled differently in the position solver. So I recommend +a system where the user can select the algorithm on a per joint basis. I would +probably default to the slower Full NGS and let the user select the faster +Baumgarte method in performance critical scenarios. +*/ + +/* +Cache Performance + +The Box2D solvers are dominated by cache misses. Data structures are designed +to increase the number of cache hits. Much of misses are due to random access +to body data. The constraint structures are iterated over linearly, which leads +to few cache misses. + +The bodies are not accessed during iteration. Instead read only data, such as +the mass values are stored with the constraints. The mutable data are the constraint +impulses and the bodies velocities/positions. The impulses are held inside the +constraint structures. The body velocities/positions are held in compact, temporary +arrays to increase the number of cache hits. Linear and angular velocity are +stored in a single array since multiple arrays lead to multiple misses. +*/ + +/* +2D Rotation + +R = [cos(theta) -sin(theta)] + [sin(theta) cos(theta) ] + +thetaDot = omega + +Let q1 = cos(theta), q2 = sin(theta). +R = [q1 -q2] + [q2 q1] + +q1Dot = -thetaDot * q2 +q2Dot = thetaDot * q1 + +q1_new = q1_old - dt * w * q2 +q2_new = q2_old + dt * w * q1 +then normalize. + +This might be faster than computing sin+cos. +However, we can compute sin+cos of the same angle fast. +*/ + +b2Island::b2Island( + int32 bodyCapacity, + int32 contactCapacity, + int32 jointCapacity, + b2StackAllocator* allocator, + b2ContactListener* listener) +{ + m_bodyCapacity = bodyCapacity; + m_contactCapacity = contactCapacity; + m_jointCapacity = jointCapacity; + m_bodyCount = 0; + m_contactCount = 0; + m_jointCount = 0; + + m_allocator = allocator; + m_listener = listener; + + m_bodies = (b2Body**)m_allocator->Allocate(bodyCapacity * sizeof(b2Body*)); + m_contacts = (b2Contact**)m_allocator->Allocate(contactCapacity * sizeof(b2Contact*)); + m_joints = (b2Joint**)m_allocator->Allocate(jointCapacity * sizeof(b2Joint*)); + + m_velocities = (b2Velocity*)m_allocator->Allocate(m_bodyCapacity * sizeof(b2Velocity)); + m_positions = (b2Position*)m_allocator->Allocate(m_bodyCapacity * sizeof(b2Position)); +} + +b2Island::~b2Island() +{ + // Warning: the order should reverse the constructor order. + m_allocator->Free(m_positions); + m_allocator->Free(m_velocities); + m_allocator->Free(m_joints); + m_allocator->Free(m_contacts); + m_allocator->Free(m_bodies); +} + +void b2Island::Solve(b2Profile* profile, const b2TimeStep& step, const b2Vec2& gravity, bool allowSleep) +{ + b2Timer timer; + + float32 h = step.dt; + + // Integrate velocities and apply damping. Initialize the body state. + for (int32 i = 0; i < m_bodyCount; ++i) + { + b2Body* b = m_bodies[i]; + + b2Vec2 c = b->m_sweep.c; + float32 a = b->m_sweep.a; + b2Vec2 v = b->m_linearVelocity; + float32 w = b->m_angularVelocity; + + // Store positions for continuous collision. + b->m_sweep.c0 = b->m_sweep.c; + b->m_sweep.a0 = b->m_sweep.a; + + if (b->m_type == b2_dynamicBody) + { + // Integrate velocities. + v += h * (b->m_gravityScale * gravity + b->m_invMass * b->m_force); + w += h * b->m_invI * b->m_torque; + + // Apply damping. + // ODE: dv/dt + c * v = 0 + // Solution: v(t) = v0 * exp(-c * t) + // Time step: v(t + dt) = v0 * exp(-c * (t + dt)) = v0 * exp(-c * t) * exp(-c * dt) = v * exp(-c * dt) + // v2 = exp(-c * dt) * v1 + // Pade approximation: + // v2 = v1 * 1 / (1 + c * dt) + v *= 1.0f / (1.0f + h * b->m_linearDamping); + w *= 1.0f / (1.0f + h * b->m_angularDamping); + } + + m_positions[i].c = c; + m_positions[i].a = a; + m_velocities[i].v = v; + m_velocities[i].w = w; + } + + timer.Reset(); + + // Solver data + b2SolverData solverData; + solverData.step = step; + solverData.positions = m_positions; + solverData.velocities = m_velocities; + + // Initialize velocity constraints. + b2ContactSolverDef contactSolverDef; + contactSolverDef.step = step; + contactSolverDef.contacts = m_contacts; + contactSolverDef.count = m_contactCount; + contactSolverDef.positions = m_positions; + contactSolverDef.velocities = m_velocities; + contactSolverDef.allocator = m_allocator; + + b2ContactSolver contactSolver(&contactSolverDef); + contactSolver.InitializeVelocityConstraints(); + + if (step.warmStarting) + { + contactSolver.WarmStart(); + } + + for (int32 i = 0; i < m_jointCount; ++i) + { + m_joints[i]->InitVelocityConstraints(solverData); + } + + profile->solveInit = timer.GetMilliseconds(); + + // Solve velocity constraints + timer.Reset(); + for (int32 i = 0; i < step.velocityIterations; ++i) + { + for (int32 j = 0; j < m_jointCount; ++j) + { + m_joints[j]->SolveVelocityConstraints(solverData); + } + + contactSolver.SolveVelocityConstraints(); + } + + // Store impulses for warm starting + contactSolver.StoreImpulses(); + profile->solveVelocity = timer.GetMilliseconds(); + + // Integrate positions + for (int32 i = 0; i < m_bodyCount; ++i) + { + b2Vec2 c = m_positions[i].c; + float32 a = m_positions[i].a; + b2Vec2 v = m_velocities[i].v; + float32 w = m_velocities[i].w; + + // Check for large velocities + b2Vec2 translation = h * v; + if (b2Dot(translation, translation) > b2_maxTranslationSquared) + { + float32 ratio = b2_maxTranslation / translation.Length(); + v *= ratio; + } + + float32 rotation = h * w; + if (rotation * rotation > b2_maxRotationSquared) + { + float32 ratio = b2_maxRotation / b2Abs(rotation); + w *= ratio; + } + + // Integrate + c += h * v; + a += h * w; + + m_positions[i].c = c; + m_positions[i].a = a; + m_velocities[i].v = v; + m_velocities[i].w = w; + } + + // Solve position constraints + timer.Reset(); + bool positionSolved = false; + for (int32 i = 0; i < step.positionIterations; ++i) + { + bool contactsOkay = contactSolver.SolvePositionConstraints(); + + bool jointsOkay = true; + for (int32 i = 0; i < m_jointCount; ++i) + { + bool jointOkay = m_joints[i]->SolvePositionConstraints(solverData); + jointsOkay = jointsOkay && jointOkay; + } + + if (contactsOkay && jointsOkay) + { + // Exit early if the position errors are small. + positionSolved = true; + break; + } + } + + // Copy state buffers back to the bodies + for (int32 i = 0; i < m_bodyCount; ++i) + { + b2Body* body = m_bodies[i]; + body->m_sweep.c = m_positions[i].c; + body->m_sweep.a = m_positions[i].a; + body->m_linearVelocity = m_velocities[i].v; + body->m_angularVelocity = m_velocities[i].w; + body->SynchronizeTransform(); + } + + profile->solvePosition = timer.GetMilliseconds(); + + Report(contactSolver.m_velocityConstraints); + + if (allowSleep) + { + float32 minSleepTime = b2_maxFloat; + + const float32 linTolSqr = b2_linearSleepTolerance * b2_linearSleepTolerance; + const float32 angTolSqr = b2_angularSleepTolerance * b2_angularSleepTolerance; + + for (int32 i = 0; i < m_bodyCount; ++i) + { + b2Body* b = m_bodies[i]; + if (b->GetType() == b2_staticBody) + { + continue; + } + + if ((b->m_flags & b2Body::e_autoSleepFlag) == 0 || + b->m_angularVelocity * b->m_angularVelocity > angTolSqr || + b2Dot(b->m_linearVelocity, b->m_linearVelocity) > linTolSqr) + { + b->m_sleepTime = 0.0f; + minSleepTime = 0.0f; + } + else + { + b->m_sleepTime += h; + minSleepTime = b2Min(minSleepTime, b->m_sleepTime); + } + } + + if (minSleepTime >= b2_timeToSleep && positionSolved) + { + for (int32 i = 0; i < m_bodyCount; ++i) + { + b2Body* b = m_bodies[i]; + b->SetAwake(false); + } + } + } +} + +void b2Island::SolveTOI(const b2TimeStep& subStep, int32 toiIndexA, int32 toiIndexB) +{ + b2Assert(toiIndexA < m_bodyCount); + b2Assert(toiIndexB < m_bodyCount); + + // Initialize the body state. + for (int32 i = 0; i < m_bodyCount; ++i) + { + b2Body* b = m_bodies[i]; + m_positions[i].c = b->m_sweep.c; + m_positions[i].a = b->m_sweep.a; + m_velocities[i].v = b->m_linearVelocity; + m_velocities[i].w = b->m_angularVelocity; + } + + b2ContactSolverDef contactSolverDef; + contactSolverDef.contacts = m_contacts; + contactSolverDef.count = m_contactCount; + contactSolverDef.allocator = m_allocator; + contactSolverDef.step = subStep; + contactSolverDef.positions = m_positions; + contactSolverDef.velocities = m_velocities; + b2ContactSolver contactSolver(&contactSolverDef); + + // Solve position constraints. + for (int32 i = 0; i < subStep.positionIterations; ++i) + { + bool contactsOkay = contactSolver.SolveTOIPositionConstraints(toiIndexA, toiIndexB); + if (contactsOkay) + { + break; + } + } + +#if 0 + // Is the new position really safe? + for (int32 i = 0; i < m_contactCount; ++i) + { + b2Contact* c = m_contacts[i]; + b2Fixture* fA = c->GetFixtureA(); + b2Fixture* fB = c->GetFixtureB(); + + b2Body* bA = fA->GetBody(); + b2Body* bB = fB->GetBody(); + + int32 indexA = c->GetChildIndexA(); + int32 indexB = c->GetChildIndexB(); + + b2DistanceInput input; + input.proxyA.Set(fA->GetShape(), indexA); + input.proxyB.Set(fB->GetShape(), indexB); + input.transformA = bA->GetTransform(); + input.transformB = bB->GetTransform(); + input.useRadii = false; + + b2DistanceOutput output; + b2SimplexCache cache; + cache.count = 0; + b2Distance(&output, &cache, &input); + + if (output.distance == 0 || cache.count == 3) + { + cache.count += 0; + } + } +#endif + + // Leap of faith to new safe state. + m_bodies[toiIndexA]->m_sweep.c0 = m_positions[toiIndexA].c; + m_bodies[toiIndexA]->m_sweep.a0 = m_positions[toiIndexA].a; + m_bodies[toiIndexB]->m_sweep.c0 = m_positions[toiIndexB].c; + m_bodies[toiIndexB]->m_sweep.a0 = m_positions[toiIndexB].a; + + // No warm starting is needed for TOI events because warm + // starting impulses were applied in the discrete solver. + contactSolver.InitializeVelocityConstraints(); + + // Solve velocity constraints. + for (int32 i = 0; i < subStep.velocityIterations; ++i) + { + contactSolver.SolveVelocityConstraints(); + } + + // Don't store the TOI contact forces for warm starting + // because they can be quite large. + + float32 h = subStep.dt; + + // Integrate positions + for (int32 i = 0; i < m_bodyCount; ++i) + { + b2Vec2 c = m_positions[i].c; + float32 a = m_positions[i].a; + b2Vec2 v = m_velocities[i].v; + float32 w = m_velocities[i].w; + + // Check for large velocities + b2Vec2 translation = h * v; + if (b2Dot(translation, translation) > b2_maxTranslationSquared) + { + float32 ratio = b2_maxTranslation / translation.Length(); + v *= ratio; + } + + float32 rotation = h * w; + if (rotation * rotation > b2_maxRotationSquared) + { + float32 ratio = b2_maxRotation / b2Abs(rotation); + w *= ratio; + } + + // Integrate + c += h * v; + a += h * w; + + m_positions[i].c = c; + m_positions[i].a = a; + m_velocities[i].v = v; + m_velocities[i].w = w; + + // Sync bodies + b2Body* body = m_bodies[i]; + body->m_sweep.c = c; + body->m_sweep.a = a; + body->m_linearVelocity = v; + body->m_angularVelocity = w; + body->SynchronizeTransform(); + } + + Report(contactSolver.m_velocityConstraints); +} + +void b2Island::Report(const b2ContactVelocityConstraint* constraints) +{ + if (m_listener == NULL) + { + return; + } + + for (int32 i = 0; i < m_contactCount; ++i) + { + b2Contact* c = m_contacts[i]; + + const b2ContactVelocityConstraint* vc = constraints + i; + + b2ContactImpulse impulse; + impulse.count = vc->pointCount; + for (int32 j = 0; j < vc->pointCount; ++j) + { + impulse.normalImpulses[j] = vc->points[j].normalImpulse; + impulse.tangentImpulses[j] = vc->points[j].tangentImpulse; + } + + m_listener->PostSolve(c, &impulse); + } +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Island.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Island.h new file mode 100644 index 0000000..4a814c4 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2Island.h @@ -0,0 +1,93 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_ISLAND_H +#define B2_ISLAND_H + +#include +#include +#include + +class b2Contact; +class b2Joint; +class b2StackAllocator; +class b2ContactListener; +struct b2ContactVelocityConstraint; +struct b2Profile; + +/// This is an internal class. +class b2Island +{ +public: + b2Island(int32 bodyCapacity, int32 contactCapacity, int32 jointCapacity, + b2StackAllocator* allocator, b2ContactListener* listener); + ~b2Island(); + + void Clear() + { + m_bodyCount = 0; + m_contactCount = 0; + m_jointCount = 0; + } + + void Solve(b2Profile* profile, const b2TimeStep& step, const b2Vec2& gravity, bool allowSleep); + + void SolveTOI(const b2TimeStep& subStep, int32 toiIndexA, int32 toiIndexB); + + void Add(b2Body* body) + { + b2Assert(m_bodyCount < m_bodyCapacity); + body->m_islandIndex = m_bodyCount; + m_bodies[m_bodyCount] = body; + ++m_bodyCount; + } + + void Add(b2Contact* contact) + { + b2Assert(m_contactCount < m_contactCapacity); + m_contacts[m_contactCount++] = contact; + } + + void Add(b2Joint* joint) + { + b2Assert(m_jointCount < m_jointCapacity); + m_joints[m_jointCount++] = joint; + } + + void Report(const b2ContactVelocityConstraint* constraints); + + b2StackAllocator* m_allocator; + b2ContactListener* m_listener; + + b2Body** m_bodies; + b2Contact** m_contacts; + b2Joint** m_joints; + + b2Position* m_positions; + b2Velocity* m_velocities; + + int32 m_bodyCount; + int32 m_jointCount; + int32 m_contactCount; + + int32 m_bodyCapacity; + int32 m_contactCapacity; + int32 m_jointCapacity; +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2TimeStep.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2TimeStep.h new file mode 100644 index 0000000..e9d0ac7 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2TimeStep.h @@ -0,0 +1,70 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_TIME_STEP_H +#define B2_TIME_STEP_H + +#include "Common/b2Math.h" + +/// Profiling data. Times are in milliseconds. +struct b2Profile +{ + float32 step; + float32 collide; + float32 solve; + float32 solveInit; + float32 solveVelocity; + float32 solvePosition; + float32 broadphase; + float32 solveTOI; +}; + +/// This is an internal structure. +struct b2TimeStep +{ + float32 dt; // time step + float32 inv_dt; // inverse time step (0 if dt == 0). + float32 dtRatio; // dt * inv_dt0 + int32 velocityIterations; + int32 positionIterations; + bool warmStarting; +}; + +/// This is an internal structure. +struct b2Position +{ + b2Vec2 c; + float32 a; +}; + +/// This is an internal structure. +struct b2Velocity +{ + b2Vec2 v; + float32 w; +}; + +/// Solver Data +struct b2SolverData +{ + b2TimeStep step; + b2Position* positions; + b2Velocity* velocities; +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2World.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2World.cpp new file mode 100644 index 0000000..c6cf295 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2World.cpp @@ -0,0 +1,1339 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +b2World::b2World(const b2Vec2& gravity) +{ + m_destructionListener = NULL; + g_debugDraw = NULL; + + m_bodyList = NULL; + m_jointList = NULL; + + m_bodyCount = 0; + m_jointCount = 0; + + m_warmStarting = true; + m_continuousPhysics = true; + m_subStepping = false; + + m_stepComplete = true; + + m_allowSleep = true; + m_gravity = gravity; + + m_flags = e_clearForces; + + m_inv_dt0 = 0.0f; + + m_contactManager.m_allocator = &m_blockAllocator; + + memset(&m_profile, 0, sizeof(b2Profile)); +} + +b2World::~b2World() +{ + // Some shapes allocate using b2Alloc. + b2Body* b = m_bodyList; + while (b) + { + b2Body* bNext = b->m_next; + + b2Fixture* f = b->m_fixtureList; + while (f) + { + b2Fixture* fNext = f->m_next; + f->m_proxyCount = 0; + f->Destroy(&m_blockAllocator); + f = fNext; + } + + b = bNext; + } +} + +void b2World::SetDestructionListener(b2DestructionListener* listener) +{ + m_destructionListener = listener; +} + +void b2World::SetContactFilter(b2ContactFilter* filter) +{ + m_contactManager.m_contactFilter = filter; +} + +void b2World::SetContactListener(b2ContactListener* listener) +{ + m_contactManager.m_contactListener = listener; +} + +void b2World::SetDebugDraw(b2Draw* debugDraw) +{ + g_debugDraw = debugDraw; +} + +b2Body* b2World::CreateBody(const b2BodyDef* def) +{ + b2Assert(IsLocked() == false); + if (IsLocked()) + { + return NULL; + } + + void* mem = m_blockAllocator.Allocate(sizeof(b2Body)); + b2Body* b = new (mem) b2Body(def, this); + + // Add to world doubly linked list. + b->m_prev = NULL; + b->m_next = m_bodyList; + if (m_bodyList) + { + m_bodyList->m_prev = b; + } + m_bodyList = b; + ++m_bodyCount; + + return b; +} + +void b2World::DestroyBody(b2Body* b) +{ + b2Assert(m_bodyCount > 0); + b2Assert(IsLocked() == false); + if (IsLocked()) + { + return; + } + + // Delete the attached joints. + b2JointEdge* je = b->m_jointList; + while (je) + { + b2JointEdge* je0 = je; + je = je->next; + + if (m_destructionListener) + { + m_destructionListener->SayGoodbye(je0->joint); + } + + DestroyJoint(je0->joint); + + b->m_jointList = je; + } + b->m_jointList = NULL; + + // Delete the attached contacts. + b2ContactEdge* ce = b->m_contactList; + while (ce) + { + b2ContactEdge* ce0 = ce; + ce = ce->next; + m_contactManager.Destroy(ce0->contact); + } + b->m_contactList = NULL; + + // Delete the attached fixtures. This destroys broad-phase proxies. + b2Fixture* f = b->m_fixtureList; + while (f) + { + b2Fixture* f0 = f; + f = f->m_next; + + if (m_destructionListener) + { + m_destructionListener->SayGoodbye(f0); + } + + f0->DestroyProxies(&m_contactManager.m_broadPhase); + f0->Destroy(&m_blockAllocator); + f0->~b2Fixture(); + m_blockAllocator.Free(f0, sizeof(b2Fixture)); + + b->m_fixtureList = f; + b->m_fixtureCount -= 1; + } + b->m_fixtureList = NULL; + b->m_fixtureCount = 0; + + // Remove world body list. + if (b->m_prev) + { + b->m_prev->m_next = b->m_next; + } + + if (b->m_next) + { + b->m_next->m_prev = b->m_prev; + } + + if (b == m_bodyList) + { + m_bodyList = b->m_next; + } + + --m_bodyCount; + b->~b2Body(); + m_blockAllocator.Free(b, sizeof(b2Body)); +} + +b2Joint* b2World::CreateJoint(const b2JointDef* def) +{ + b2Assert(IsLocked() == false); + if (IsLocked()) + { + return NULL; + } + + b2Joint* j = b2Joint::Create(def, &m_blockAllocator); + + // Connect to the world list. + j->m_prev = NULL; + j->m_next = m_jointList; + if (m_jointList) + { + m_jointList->m_prev = j; + } + m_jointList = j; + ++m_jointCount; + + // Connect to the bodies' doubly linked lists. + j->m_edgeA.joint = j; + j->m_edgeA.other = j->m_bodyB; + j->m_edgeA.prev = NULL; + j->m_edgeA.next = j->m_bodyA->m_jointList; + if (j->m_bodyA->m_jointList) j->m_bodyA->m_jointList->prev = &j->m_edgeA; + j->m_bodyA->m_jointList = &j->m_edgeA; + + j->m_edgeB.joint = j; + j->m_edgeB.other = j->m_bodyA; + j->m_edgeB.prev = NULL; + j->m_edgeB.next = j->m_bodyB->m_jointList; + if (j->m_bodyB->m_jointList) j->m_bodyB->m_jointList->prev = &j->m_edgeB; + j->m_bodyB->m_jointList = &j->m_edgeB; + + b2Body* bodyA = def->bodyA; + b2Body* bodyB = def->bodyB; + + // If the joint prevents collisions, then flag any contacts for filtering. + if (def->collideConnected == false) + { + b2ContactEdge* edge = bodyB->GetContactList(); + while (edge) + { + if (edge->other == bodyA) + { + // Flag the contact for filtering at the next time step (where either + // body is awake). + edge->contact->FlagForFiltering(); + } + + edge = edge->next; + } + } + + // Note: creating a joint doesn't wake the bodies. + + return j; +} + +void b2World::DestroyJoint(b2Joint* j) +{ + b2Assert(IsLocked() == false); + if (IsLocked()) + { + return; + } + + bool collideConnected = j->m_collideConnected; + + // Remove from the doubly linked list. + if (j->m_prev) + { + j->m_prev->m_next = j->m_next; + } + + if (j->m_next) + { + j->m_next->m_prev = j->m_prev; + } + + if (j == m_jointList) + { + m_jointList = j->m_next; + } + + // Disconnect from island graph. + b2Body* bodyA = j->m_bodyA; + b2Body* bodyB = j->m_bodyB; + + // Wake up connected bodies. + bodyA->SetAwake(true); + bodyB->SetAwake(true); + + // Remove from body 1. + if (j->m_edgeA.prev) + { + j->m_edgeA.prev->next = j->m_edgeA.next; + } + + if (j->m_edgeA.next) + { + j->m_edgeA.next->prev = j->m_edgeA.prev; + } + + if (&j->m_edgeA == bodyA->m_jointList) + { + bodyA->m_jointList = j->m_edgeA.next; + } + + j->m_edgeA.prev = NULL; + j->m_edgeA.next = NULL; + + // Remove from body 2 + if (j->m_edgeB.prev) + { + j->m_edgeB.prev->next = j->m_edgeB.next; + } + + if (j->m_edgeB.next) + { + j->m_edgeB.next->prev = j->m_edgeB.prev; + } + + if (&j->m_edgeB == bodyB->m_jointList) + { + bodyB->m_jointList = j->m_edgeB.next; + } + + j->m_edgeB.prev = NULL; + j->m_edgeB.next = NULL; + + b2Joint::Destroy(j, &m_blockAllocator); + + b2Assert(m_jointCount > 0); + --m_jointCount; + + // If the joint prevents collisions, then flag any contacts for filtering. + if (collideConnected == false) + { + b2ContactEdge* edge = bodyB->GetContactList(); + while (edge) + { + if (edge->other == bodyA) + { + // Flag the contact for filtering at the next time step (where either + // body is awake). + edge->contact->FlagForFiltering(); + } + + edge = edge->next; + } + } +} + +// +void b2World::SetAllowSleeping(bool flag) +{ + if (flag == m_allowSleep) + { + return; + } + + m_allowSleep = flag; + if (m_allowSleep == false) + { + for (b2Body* b = m_bodyList; b; b = b->m_next) + { + b->SetAwake(true); + } + } +} + +// Find islands, integrate and solve constraints, solve position constraints +void b2World::Solve(const b2TimeStep& step) +{ + m_profile.solveInit = 0.0f; + m_profile.solveVelocity = 0.0f; + m_profile.solvePosition = 0.0f; + + // Size the island for the worst case. + b2Island island(m_bodyCount, + m_contactManager.m_contactCount, + m_jointCount, + &m_stackAllocator, + m_contactManager.m_contactListener); + + // Clear all the island flags. + for (b2Body* b = m_bodyList; b; b = b->m_next) + { + b->m_flags &= ~b2Body::e_islandFlag; + } + for (b2Contact* c = m_contactManager.m_contactList; c; c = c->m_next) + { + c->m_flags &= ~b2Contact::e_islandFlag; + } + for (b2Joint* j = m_jointList; j; j = j->m_next) + { + j->m_islandFlag = false; + } + + // Build and simulate all awake islands. + int32 stackSize = m_bodyCount; + b2Body** stack = (b2Body**)m_stackAllocator.Allocate(stackSize * sizeof(b2Body*)); + for (b2Body* seed = m_bodyList; seed; seed = seed->m_next) + { + if (seed->m_flags & b2Body::e_islandFlag) + { + continue; + } + + if (seed->IsAwake() == false || seed->IsActive() == false) + { + continue; + } + + // The seed can be dynamic or kinematic. + if (seed->GetType() == b2_staticBody) + { + continue; + } + + // Reset island and stack. + island.Clear(); + int32 stackCount = 0; + stack[stackCount++] = seed; + seed->m_flags |= b2Body::e_islandFlag; + + // Perform a depth first search (DFS) on the constraint graph. + while (stackCount > 0) + { + // Grab the next body off the stack and add it to the island. + b2Body* b = stack[--stackCount]; + b2Assert(b->IsActive() == true); + island.Add(b); + + // Make sure the body is awake. + b->SetAwake(true); + + // To keep islands as small as possible, we don't + // propagate islands across static bodies. + if (b->GetType() == b2_staticBody) + { + continue; + } + + // Search all contacts connected to this body. + for (b2ContactEdge* ce = b->m_contactList; ce; ce = ce->next) + { + b2Contact* contact = ce->contact; + + // Has this contact already been added to an island? + if (contact->m_flags & b2Contact::e_islandFlag) + { + continue; + } + + // Is this contact solid and touching? + if (contact->IsEnabled() == false || + contact->IsTouching() == false) + { + continue; + } + + // Skip sensors. + bool sensorA = contact->m_fixtureA->m_isSensor; + bool sensorB = contact->m_fixtureB->m_isSensor; + if (sensorA || sensorB) + { + continue; + } + + island.Add(contact); + contact->m_flags |= b2Contact::e_islandFlag; + + b2Body* other = ce->other; + + // Was the other body already added to this island? + if (other->m_flags & b2Body::e_islandFlag) + { + continue; + } + + b2Assert(stackCount < stackSize); + stack[stackCount++] = other; + other->m_flags |= b2Body::e_islandFlag; + } + + // Search all joints connect to this body. + for (b2JointEdge* je = b->m_jointList; je; je = je->next) + { + if (je->joint->m_islandFlag == true) + { + continue; + } + + b2Body* other = je->other; + + // Don't simulate joints connected to inactive bodies. + if (other->IsActive() == false) + { + continue; + } + + island.Add(je->joint); + je->joint->m_islandFlag = true; + + if (other->m_flags & b2Body::e_islandFlag) + { + continue; + } + + b2Assert(stackCount < stackSize); + stack[stackCount++] = other; + other->m_flags |= b2Body::e_islandFlag; + } + } + + b2Profile profile; + island.Solve(&profile, step, m_gravity, m_allowSleep); + m_profile.solveInit += profile.solveInit; + m_profile.solveVelocity += profile.solveVelocity; + m_profile.solvePosition += profile.solvePosition; + + // Post solve cleanup. + for (int32 i = 0; i < island.m_bodyCount; ++i) + { + // Allow static bodies to participate in other islands. + b2Body* b = island.m_bodies[i]; + if (b->GetType() == b2_staticBody) + { + b->m_flags &= ~b2Body::e_islandFlag; + } + } + } + + m_stackAllocator.Free(stack); + + { + b2Timer timer; + // Synchronize fixtures, check for out of range bodies. + for (b2Body* b = m_bodyList; b; b = b->GetNext()) + { + // If a body was not in an island then it did not move. + if ((b->m_flags & b2Body::e_islandFlag) == 0) + { + continue; + } + + if (b->GetType() == b2_staticBody) + { + continue; + } + + // Update fixtures (for broad-phase). + b->SynchronizeFixtures(); + } + + // Look for new contacts. + m_contactManager.FindNewContacts(); + m_profile.broadphase = timer.GetMilliseconds(); + } +} + +// Find TOI contacts and solve them. +void b2World::SolveTOI(const b2TimeStep& step) +{ + b2Island island(2 * b2_maxTOIContacts, b2_maxTOIContacts, 0, &m_stackAllocator, m_contactManager.m_contactListener); + + if (m_stepComplete) + { + for (b2Body* b = m_bodyList; b; b = b->m_next) + { + b->m_flags &= ~b2Body::e_islandFlag; + b->m_sweep.alpha0 = 0.0f; + } + + for (b2Contact* c = m_contactManager.m_contactList; c; c = c->m_next) + { + // Invalidate TOI + c->m_flags &= ~(b2Contact::e_toiFlag | b2Contact::e_islandFlag); + c->m_toiCount = 0; + c->m_toi = 1.0f; + } + } + + // Find TOI events and solve them. + for (;;) + { + // Find the first TOI. + b2Contact* minContact = NULL; + float32 minAlpha = 1.0f; + + for (b2Contact* c = m_contactManager.m_contactList; c; c = c->m_next) + { + // Is this contact disabled? + if (c->IsEnabled() == false) + { + continue; + } + + // Prevent excessive sub-stepping. + if (c->m_toiCount > b2_maxSubSteps) + { + continue; + } + + float32 alpha = 1.0f; + if (c->m_flags & b2Contact::e_toiFlag) + { + // This contact has a valid cached TOI. + alpha = c->m_toi; + } + else + { + b2Fixture* fA = c->GetFixtureA(); + b2Fixture* fB = c->GetFixtureB(); + + // Is there a sensor? + if (fA->IsSensor() || fB->IsSensor()) + { + continue; + } + + b2Body* bA = fA->GetBody(); + b2Body* bB = fB->GetBody(); + + b2BodyType typeA = bA->m_type; + b2BodyType typeB = bB->m_type; + b2Assert(typeA == b2_dynamicBody || typeB == b2_dynamicBody); + + bool activeA = bA->IsAwake() && typeA != b2_staticBody; + bool activeB = bB->IsAwake() && typeB != b2_staticBody; + + // Is at least one body active (awake and dynamic or kinematic)? + if (activeA == false && activeB == false) + { + continue; + } + + bool collideA = bA->IsBullet() || typeA != b2_dynamicBody; + bool collideB = bB->IsBullet() || typeB != b2_dynamicBody; + + // Are these two non-bullet dynamic bodies? + if (collideA == false && collideB == false) + { + continue; + } + + // Compute the TOI for this contact. + // Put the sweeps onto the same time interval. + float32 alpha0 = bA->m_sweep.alpha0; + + if (bA->m_sweep.alpha0 < bB->m_sweep.alpha0) + { + alpha0 = bB->m_sweep.alpha0; + bA->m_sweep.Advance(alpha0); + } + else if (bB->m_sweep.alpha0 < bA->m_sweep.alpha0) + { + alpha0 = bA->m_sweep.alpha0; + bB->m_sweep.Advance(alpha0); + } + + b2Assert(alpha0 < 1.0f); + + int32 indexA = c->GetChildIndexA(); + int32 indexB = c->GetChildIndexB(); + + // Compute the time of impact in interval [0, minTOI] + b2TOIInput input; + input.proxyA.Set(fA->GetShape(), indexA); + input.proxyB.Set(fB->GetShape(), indexB); + input.sweepA = bA->m_sweep; + input.sweepB = bB->m_sweep; + input.tMax = 1.0f; + + b2TOIOutput output; + b2TimeOfImpact(&output, &input); + + // Beta is the fraction of the remaining portion of the . + float32 beta = output.t; + if (output.state == b2TOIOutput::e_touching) + { + alpha = b2Min(alpha0 + (1.0f - alpha0) * beta, 1.0f); + } + else + { + alpha = 1.0f; + } + + c->m_toi = alpha; + c->m_flags |= b2Contact::e_toiFlag; + } + + if (alpha < minAlpha) + { + // This is the minimum TOI found so far. + minContact = c; + minAlpha = alpha; + } + } + + if (minContact == NULL || 1.0f - 10.0f * b2_epsilon < minAlpha) + { + // No more TOI events. Done! + m_stepComplete = true; + break; + } + + // Advance the bodies to the TOI. + b2Fixture* fA = minContact->GetFixtureA(); + b2Fixture* fB = minContact->GetFixtureB(); + b2Body* bA = fA->GetBody(); + b2Body* bB = fB->GetBody(); + + b2Sweep backup1 = bA->m_sweep; + b2Sweep backup2 = bB->m_sweep; + + bA->Advance(minAlpha); + bB->Advance(minAlpha); + + // The TOI contact likely has some new contact points. + minContact->Update(m_contactManager.m_contactListener); + minContact->m_flags &= ~b2Contact::e_toiFlag; + ++minContact->m_toiCount; + + // Is the contact solid? + if (minContact->IsEnabled() == false || minContact->IsTouching() == false) + { + // Restore the sweeps. + minContact->SetEnabled(false); + bA->m_sweep = backup1; + bB->m_sweep = backup2; + bA->SynchronizeTransform(); + bB->SynchronizeTransform(); + continue; + } + + bA->SetAwake(true); + bB->SetAwake(true); + + // Build the island + island.Clear(); + island.Add(bA); + island.Add(bB); + island.Add(minContact); + + bA->m_flags |= b2Body::e_islandFlag; + bB->m_flags |= b2Body::e_islandFlag; + minContact->m_flags |= b2Contact::e_islandFlag; + + // Get contacts on bodyA and bodyB. + b2Body* bodies[2] = {bA, bB}; + for (int32 i = 0; i < 2; ++i) + { + b2Body* body = bodies[i]; + if (body->m_type == b2_dynamicBody) + { + for (b2ContactEdge* ce = body->m_contactList; ce; ce = ce->next) + { + if (island.m_bodyCount == island.m_bodyCapacity) + { + break; + } + + if (island.m_contactCount == island.m_contactCapacity) + { + break; + } + + b2Contact* contact = ce->contact; + + // Has this contact already been added to the island? + if (contact->m_flags & b2Contact::e_islandFlag) + { + continue; + } + + // Only add static, kinematic, or bullet bodies. + b2Body* other = ce->other; + if (other->m_type == b2_dynamicBody && + body->IsBullet() == false && other->IsBullet() == false) + { + continue; + } + + // Skip sensors. + bool sensorA = contact->m_fixtureA->m_isSensor; + bool sensorB = contact->m_fixtureB->m_isSensor; + if (sensorA || sensorB) + { + continue; + } + + // Tentatively advance the body to the TOI. + b2Sweep backup = other->m_sweep; + if ((other->m_flags & b2Body::e_islandFlag) == 0) + { + other->Advance(minAlpha); + } + + // Update the contact points + contact->Update(m_contactManager.m_contactListener); + + // Was the contact disabled by the user? + if (contact->IsEnabled() == false) + { + other->m_sweep = backup; + other->SynchronizeTransform(); + continue; + } + + // Are there contact points? + if (contact->IsTouching() == false) + { + other->m_sweep = backup; + other->SynchronizeTransform(); + continue; + } + + // Add the contact to the island + contact->m_flags |= b2Contact::e_islandFlag; + island.Add(contact); + + // Has the other body already been added to the island? + if (other->m_flags & b2Body::e_islandFlag) + { + continue; + } + + // Add the other body to the island. + other->m_flags |= b2Body::e_islandFlag; + + if (other->m_type != b2_staticBody) + { + other->SetAwake(true); + } + + island.Add(other); + } + } + } + + b2TimeStep subStep; + subStep.dt = (1.0f - minAlpha) * step.dt; + subStep.inv_dt = 1.0f / subStep.dt; + subStep.dtRatio = 1.0f; + subStep.positionIterations = 20; + subStep.velocityIterations = step.velocityIterations; + subStep.warmStarting = false; + island.SolveTOI(subStep, bA->m_islandIndex, bB->m_islandIndex); + + // Reset island flags and synchronize broad-phase proxies. + for (int32 i = 0; i < island.m_bodyCount; ++i) + { + b2Body* body = island.m_bodies[i]; + body->m_flags &= ~b2Body::e_islandFlag; + + if (body->m_type != b2_dynamicBody) + { + continue; + } + + body->SynchronizeFixtures(); + + // Invalidate all contact TOIs on this displaced body. + for (b2ContactEdge* ce = body->m_contactList; ce; ce = ce->next) + { + ce->contact->m_flags &= ~(b2Contact::e_toiFlag | b2Contact::e_islandFlag); + } + } + + // Commit fixture proxy movements to the broad-phase so that new contacts are created. + // Also, some contacts can be destroyed. + m_contactManager.FindNewContacts(); + + if (m_subStepping) + { + m_stepComplete = false; + break; + } + } +} + +void b2World::Step(float32 dt, int32 velocityIterations, int32 positionIterations) +{ + b2Timer stepTimer; + + // If new fixtures were added, we need to find the new contacts. + if (m_flags & e_newFixture) + { + m_contactManager.FindNewContacts(); + m_flags &= ~e_newFixture; + } + + m_flags |= e_locked; + + b2TimeStep step; + step.dt = dt; + step.velocityIterations = velocityIterations; + step.positionIterations = positionIterations; + if (dt > 0.0f) + { + step.inv_dt = 1.0f / dt; + } + else + { + step.inv_dt = 0.0f; + } + + step.dtRatio = m_inv_dt0 * dt; + + step.warmStarting = m_warmStarting; + + // Update contacts. This is where some contacts are destroyed. + { + b2Timer timer; + m_contactManager.Collide(); + m_profile.collide = timer.GetMilliseconds(); + } + + // Integrate velocities, solve velocity constraints, and integrate positions. + if (m_stepComplete && step.dt > 0.0f) + { + b2Timer timer; + Solve(step); + m_profile.solve = timer.GetMilliseconds(); + } + + // Handle TOI events. + if (m_continuousPhysics && step.dt > 0.0f) + { + b2Timer timer; + SolveTOI(step); + m_profile.solveTOI = timer.GetMilliseconds(); + } + + if (step.dt > 0.0f) + { + m_inv_dt0 = step.inv_dt; + } + + if (m_flags & e_clearForces) + { + ClearForces(); + } + + m_flags &= ~e_locked; + + m_profile.step = stepTimer.GetMilliseconds(); +} + +void b2World::ClearForces() +{ + for (b2Body* body = m_bodyList; body; body = body->GetNext()) + { + body->m_force.SetZero(); + body->m_torque = 0.0f; + } +} + +struct b2WorldQueryWrapper +{ + bool QueryCallback(int32 proxyId) + { + b2FixtureProxy* proxy = (b2FixtureProxy*)broadPhase->GetUserData(proxyId); + return callback->ReportFixture(proxy->fixture); + } + + const b2BroadPhase* broadPhase; + b2QueryCallback* callback; +}; + +void b2World::QueryAABB(b2QueryCallback* callback, const b2AABB& aabb) const +{ + b2WorldQueryWrapper wrapper; + wrapper.broadPhase = &m_contactManager.m_broadPhase; + wrapper.callback = callback; + m_contactManager.m_broadPhase.Query(&wrapper, aabb); +} + +struct b2WorldRayCastWrapper +{ + float32 RayCastCallback(const b2RayCastInput& input, int32 proxyId) + { + void* userData = broadPhase->GetUserData(proxyId); + b2FixtureProxy* proxy = (b2FixtureProxy*)userData; + b2Fixture* fixture = proxy->fixture; + int32 index = proxy->childIndex; + b2RayCastOutput output; + bool hit = fixture->RayCast(&output, input, index); + + if (hit) + { + float32 fraction = output.fraction; + b2Vec2 point = (1.0f - fraction) * input.p1 + fraction * input.p2; + return callback->ReportFixture(fixture, point, output.normal, fraction); + } + + return input.maxFraction; + } + + const b2BroadPhase* broadPhase; + b2RayCastCallback* callback; +}; + +void b2World::RayCast(b2RayCastCallback* callback, const b2Vec2& point1, const b2Vec2& point2) const +{ + b2WorldRayCastWrapper wrapper; + wrapper.broadPhase = &m_contactManager.m_broadPhase; + wrapper.callback = callback; + b2RayCastInput input; + input.maxFraction = 1.0f; + input.p1 = point1; + input.p2 = point2; + m_contactManager.m_broadPhase.RayCast(&wrapper, input); +} + +void b2World::DrawShape(b2Fixture* fixture, const b2Transform& xf, const b2Color& color) +{ + switch (fixture->GetType()) + { + case b2Shape::e_circle: + { + b2CircleShape* circle = (b2CircleShape*)fixture->GetShape(); + + b2Vec2 center = b2Mul(xf, circle->m_p); + float32 radius = circle->m_radius; + b2Vec2 axis = b2Mul(xf.q, b2Vec2(1.0f, 0.0f)); + + g_debugDraw->DrawSolidCircle(center, radius, axis, color); + } + break; + + case b2Shape::e_edge: + { + b2EdgeShape* edge = (b2EdgeShape*)fixture->GetShape(); + b2Vec2 v1 = b2Mul(xf, edge->m_vertex1); + b2Vec2 v2 = b2Mul(xf, edge->m_vertex2); + g_debugDraw->DrawSegment(v1, v2, color); + } + break; + + case b2Shape::e_chain: + { + b2ChainShape* chain = (b2ChainShape*)fixture->GetShape(); + int32 count = chain->m_count; + const b2Vec2* vertices = chain->m_vertices; + + b2Vec2 v1 = b2Mul(xf, vertices[0]); + for (int32 i = 1; i < count; ++i) + { + b2Vec2 v2 = b2Mul(xf, vertices[i]); + g_debugDraw->DrawSegment(v1, v2, color); + g_debugDraw->DrawCircle(v1, 0.05f, color); + v1 = v2; + } + } + break; + + case b2Shape::e_polygon: + { + b2PolygonShape* poly = (b2PolygonShape*)fixture->GetShape(); + int32 vertexCount = poly->m_count; + b2Assert(vertexCount <= b2_maxPolygonVertices); + b2Vec2 vertices[b2_maxPolygonVertices]; + + for (int32 i = 0; i < vertexCount; ++i) + { + vertices[i] = b2Mul(xf, poly->m_vertices[i]); + } + + g_debugDraw->DrawSolidPolygon(vertices, vertexCount, color); + } + break; + + default: + break; + } +} + +void b2World::DrawJoint(b2Joint* joint) +{ + b2Body* bodyA = joint->GetBodyA(); + b2Body* bodyB = joint->GetBodyB(); + const b2Transform& xf1 = bodyA->GetTransform(); + const b2Transform& xf2 = bodyB->GetTransform(); + b2Vec2 x1 = xf1.p; + b2Vec2 x2 = xf2.p; + b2Vec2 p1 = joint->GetAnchorA(); + b2Vec2 p2 = joint->GetAnchorB(); + + b2Color color(0.5f, 0.8f, 0.8f); + + switch (joint->GetType()) + { + case e_distanceJoint: + g_debugDraw->DrawSegment(p1, p2, color); + break; + + case e_pulleyJoint: + { + b2PulleyJoint* pulley = (b2PulleyJoint*)joint; + b2Vec2 s1 = pulley->GetGroundAnchorA(); + b2Vec2 s2 = pulley->GetGroundAnchorB(); + g_debugDraw->DrawSegment(s1, p1, color); + g_debugDraw->DrawSegment(s2, p2, color); + g_debugDraw->DrawSegment(s1, s2, color); + } + break; + + case e_mouseJoint: + // don't draw this + break; + + default: + g_debugDraw->DrawSegment(x1, p1, color); + g_debugDraw->DrawSegment(p1, p2, color); + g_debugDraw->DrawSegment(x2, p2, color); + } +} + +void b2World::DrawDebugData() +{ + if (g_debugDraw == NULL) + { + return; + } + + uint32 flags = g_debugDraw->GetFlags(); + + if (flags & b2Draw::e_shapeBit) + { + for (b2Body* b = m_bodyList; b; b = b->GetNext()) + { + const b2Transform& xf = b->GetTransform(); + for (b2Fixture* f = b->GetFixtureList(); f; f = f->GetNext()) + { + if (b->IsActive() == false) + { + DrawShape(f, xf, b2Color(0.5f, 0.5f, 0.3f)); + } + else if (b->GetType() == b2_staticBody) + { + DrawShape(f, xf, b2Color(0.5f, 0.9f, 0.5f)); + } + else if (b->GetType() == b2_kinematicBody) + { + DrawShape(f, xf, b2Color(0.5f, 0.5f, 0.9f)); + } + else if (b->IsAwake() == false) + { + DrawShape(f, xf, b2Color(0.6f, 0.6f, 0.6f)); + } + else + { + DrawShape(f, xf, b2Color(0.9f, 0.7f, 0.7f)); + } + } + } + } + + if (flags & b2Draw::e_jointBit) + { + for (b2Joint* j = m_jointList; j; j = j->GetNext()) + { + DrawJoint(j); + } + } + + if (flags & b2Draw::e_pairBit) + { + b2Color color(0.3f, 0.9f, 0.9f); + for (b2Contact* c = m_contactManager.m_contactList; c; c = c->GetNext()) + { + //b2Fixture* fixtureA = c->GetFixtureA(); + //b2Fixture* fixtureB = c->GetFixtureB(); + + //b2Vec2 cA = fixtureA->GetAABB().GetCenter(); + //b2Vec2 cB = fixtureB->GetAABB().GetCenter(); + + //g_debugDraw->DrawSegment(cA, cB, color); + } + } + + if (flags & b2Draw::e_aabbBit) + { + b2Color color(0.9f, 0.3f, 0.9f); + b2BroadPhase* bp = &m_contactManager.m_broadPhase; + + for (b2Body* b = m_bodyList; b; b = b->GetNext()) + { + if (b->IsActive() == false) + { + continue; + } + + for (b2Fixture* f = b->GetFixtureList(); f; f = f->GetNext()) + { + for (int32 i = 0; i < f->m_proxyCount; ++i) + { + b2FixtureProxy* proxy = f->m_proxies + i; + b2AABB aabb = bp->GetFatAABB(proxy->proxyId); + b2Vec2 vs[4]; + vs[0].Set(aabb.lowerBound.x, aabb.lowerBound.y); + vs[1].Set(aabb.upperBound.x, aabb.lowerBound.y); + vs[2].Set(aabb.upperBound.x, aabb.upperBound.y); + vs[3].Set(aabb.lowerBound.x, aabb.upperBound.y); + + g_debugDraw->DrawPolygon(vs, 4, color); + } + } + } + } + + if (flags & b2Draw::e_centerOfMassBit) + { + for (b2Body* b = m_bodyList; b; b = b->GetNext()) + { + b2Transform xf = b->GetTransform(); + xf.p = b->GetWorldCenter(); + g_debugDraw->DrawTransform(xf); + } + } +} + +int32 b2World::GetProxyCount() const +{ + return m_contactManager.m_broadPhase.GetProxyCount(); +} + +int32 b2World::GetTreeHeight() const +{ + return m_contactManager.m_broadPhase.GetTreeHeight(); +} + +int32 b2World::GetTreeBalance() const +{ + return m_contactManager.m_broadPhase.GetTreeBalance(); +} + +float32 b2World::GetTreeQuality() const +{ + return m_contactManager.m_broadPhase.GetTreeQuality(); +} + +void b2World::ShiftOrigin(const b2Vec2& newOrigin) +{ + b2Assert((m_flags & e_locked) == 0); + if ((m_flags & e_locked) == e_locked) + { + return; + } + + for (b2Body* b = m_bodyList; b; b = b->m_next) + { + b->m_xf.p -= newOrigin; + b->m_sweep.c0 -= newOrigin; + b->m_sweep.c -= newOrigin; + } + + for (b2Joint* j = m_jointList; j; j = j->m_next) + { + j->ShiftOrigin(newOrigin); + } + + m_contactManager.m_broadPhase.ShiftOrigin(newOrigin); +} + +void b2World::Dump() +{ + if ((m_flags & e_locked) == e_locked) + { + return; + } + + b2Log("b2Vec2 g(%.15lef, %.15lef);\n", m_gravity.x, m_gravity.y); + b2Log("m_world->SetGravity(g);\n"); + + b2Log("b2Body** bodies = (b2Body**)b2Alloc(%d * sizeof(b2Body*));\n", m_bodyCount); + b2Log("b2Joint** joints = (b2Joint**)b2Alloc(%d * sizeof(b2Joint*));\n", m_jointCount); + int32 i = 0; + for (b2Body* b = m_bodyList; b; b = b->m_next) + { + b->m_islandIndex = i; + b->Dump(); + ++i; + } + + i = 0; + for (b2Joint* j = m_jointList; j; j = j->m_next) + { + j->m_index = i; + ++i; + } + + // First pass on joints, skip gear joints. + for (b2Joint* j = m_jointList; j; j = j->m_next) + { + if (j->m_type == e_gearJoint) + { + continue; + } + + b2Log("{\n"); + j->Dump(); + b2Log("}\n"); + } + + // Second pass on joints, only gear joints. + for (b2Joint* j = m_jointList; j; j = j->m_next) + { + if (j->m_type != e_gearJoint) + { + continue; + } + + b2Log("{\n"); + j->Dump(); + b2Log("}\n"); + } + + b2Log("b2Free(joints);\n"); + b2Log("b2Free(bodies);\n"); + b2Log("joints = NULL;\n"); + b2Log("bodies = NULL;\n"); +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2World.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2World.h new file mode 100644 index 0000000..9e67d30 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2World.h @@ -0,0 +1,354 @@ +/* +* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_WORLD_H +#define B2_WORLD_H + +#include "Common/b2Math.h" +#include "Common/b2BlockAllocator.h" +#include "Common/b2StackAllocator.h" +#include "Dynamics/b2ContactManager.h" +#include "Dynamics/b2WorldCallbacks.h" +#include "Dynamics/b2TimeStep.h" + +struct b2AABB; +struct b2BodyDef; +struct b2Color; +struct b2JointDef; +class b2Body; +class b2Draw; +class b2Fixture; +class b2Joint; + +/// The world class manages all physics entities, dynamic simulation, +/// and asynchronous queries. The world also contains efficient memory +/// management facilities. +class b2World +{ +public: + /// Construct a world object. + /// @param gravity the world gravity vector. + b2World(const b2Vec2& gravity); + + /// Destruct the world. All physics entities are destroyed and all heap memory is released. + ~b2World(); + + /// Register a destruction listener. The listener is owned by you and must + /// remain in scope. + void SetDestructionListener(b2DestructionListener* listener); + + /// Register a contact filter to provide specific control over collision. + /// Otherwise the default filter is used (b2_defaultFilter). The listener is + /// owned by you and must remain in scope. + void SetContactFilter(b2ContactFilter* filter); + + /// Register a contact event listener. The listener is owned by you and must + /// remain in scope. + void SetContactListener(b2ContactListener* listener); + + /// Register a routine for debug drawing. The debug draw functions are called + /// inside with b2World::DrawDebugData method. The debug draw object is owned + /// by you and must remain in scope. + void SetDebugDraw(b2Draw* debugDraw); + + /// Create a rigid body given a definition. No reference to the definition + /// is retained. + /// @warning This function is locked during callbacks. + b2Body* CreateBody(const b2BodyDef* def); + + /// Destroy a rigid body given a definition. No reference to the definition + /// is retained. This function is locked during callbacks. + /// @warning This automatically deletes all associated shapes and joints. + /// @warning This function is locked during callbacks. + void DestroyBody(b2Body* body); + + /// Create a joint to constrain bodies together. No reference to the definition + /// is retained. This may cause the connected bodies to cease colliding. + /// @warning This function is locked during callbacks. + b2Joint* CreateJoint(const b2JointDef* def); + + /// Destroy a joint. This may cause the connected bodies to begin colliding. + /// @warning This function is locked during callbacks. + void DestroyJoint(b2Joint* joint); + + /// Take a time step. This performs collision detection, integration, + /// and constraint solution. + /// @param timeStep the amount of time to simulate, this should not vary. + /// @param velocityIterations for the velocity constraint solver. + /// @param positionIterations for the position constraint solver. + void Step( float32 timeStep, + int32 velocityIterations, + int32 positionIterations); + + /// Manually clear the force buffer on all bodies. By default, forces are cleared automatically + /// after each call to Step. The default behavior is modified by calling SetAutoClearForces. + /// The purpose of this function is to support sub-stepping. Sub-stepping is often used to maintain + /// a fixed sized time step under a variable frame-rate. + /// When you perform sub-stepping you will disable auto clearing of forces and instead call + /// ClearForces after all sub-steps are complete in one pass of your game loop. + /// @see SetAutoClearForces + void ClearForces(); + + /// Call this to draw shapes and other debug draw data. This is intentionally non-const. + void DrawDebugData(); + + /// Query the world for all fixtures that potentially overlap the + /// provided AABB. + /// @param callback a user implemented callback class. + /// @param aabb the query box. + void QueryAABB(b2QueryCallback* callback, const b2AABB& aabb) const; + + /// Ray-cast the world for all fixtures in the path of the ray. Your callback + /// controls whether you get the closest point, any point, or n-points. + /// The ray-cast ignores shapes that contain the starting point. + /// @param callback a user implemented callback class. + /// @param point1 the ray starting point + /// @param point2 the ray ending point + void RayCast(b2RayCastCallback* callback, const b2Vec2& point1, const b2Vec2& point2) const; + + /// Get the world body list. With the returned body, use b2Body::GetNext to get + /// the next body in the world list. A NULL body indicates the end of the list. + /// @return the head of the world body list. + b2Body* GetBodyList(); + const b2Body* GetBodyList() const; + + /// Get the world joint list. With the returned joint, use b2Joint::GetNext to get + /// the next joint in the world list. A NULL joint indicates the end of the list. + /// @return the head of the world joint list. + b2Joint* GetJointList(); + const b2Joint* GetJointList() const; + + /// Get the world contact list. With the returned contact, use b2Contact::GetNext to get + /// the next contact in the world list. A NULL contact indicates the end of the list. + /// @return the head of the world contact list. + /// @warning contacts are created and destroyed in the middle of a time step. + /// Use b2ContactListener to avoid missing contacts. + b2Contact* GetContactList(); + const b2Contact* GetContactList() const; + + /// Enable/disable sleep. + void SetAllowSleeping(bool flag); + bool GetAllowSleeping() const { return m_allowSleep; } + + /// Enable/disable warm starting. For testing. + void SetWarmStarting(bool flag) { m_warmStarting = flag; } + bool GetWarmStarting() const { return m_warmStarting; } + + /// Enable/disable continuous physics. For testing. + void SetContinuousPhysics(bool flag) { m_continuousPhysics = flag; } + bool GetContinuousPhysics() const { return m_continuousPhysics; } + + /// Enable/disable single stepped continuous physics. For testing. + void SetSubStepping(bool flag) { m_subStepping = flag; } + bool GetSubStepping() const { return m_subStepping; } + + /// Get the number of broad-phase proxies. + int32 GetProxyCount() const; + + /// Get the number of bodies. + int32 GetBodyCount() const; + + /// Get the number of joints. + int32 GetJointCount() const; + + /// Get the number of contacts (each may have 0 or more contact points). + int32 GetContactCount() const; + + /// Get the height of the dynamic tree. + int32 GetTreeHeight() const; + + /// Get the balance of the dynamic tree. + int32 GetTreeBalance() const; + + /// Get the quality metric of the dynamic tree. The smaller the better. + /// The minimum is 1. + float32 GetTreeQuality() const; + + /// Change the global gravity vector. + void SetGravity(const b2Vec2& gravity); + + /// Get the global gravity vector. + b2Vec2 GetGravity() const; + + /// Is the world locked (in the middle of a time step). + bool IsLocked() const; + + /// Set flag to control automatic clearing of forces after each time step. + void SetAutoClearForces(bool flag); + + /// Get the flag that controls automatic clearing of forces after each time step. + bool GetAutoClearForces() const; + + /// Shift the world origin. Useful for large worlds. + /// The body shift formula is: position -= newOrigin + /// @param newOrigin the new origin with respect to the old origin + void ShiftOrigin(const b2Vec2& newOrigin); + + /// Get the contact manager for testing. + const b2ContactManager& GetContactManager() const; + + /// Get the current profile. + const b2Profile& GetProfile() const; + + /// Dump the world into the log file. + /// @warning this should be called outside of a time step. + void Dump(); + +private: + + // m_flags + enum + { + e_newFixture = 0x0001, + e_locked = 0x0002, + e_clearForces = 0x0004 + }; + + friend class b2Body; + friend class b2Fixture; + friend class b2ContactManager; + friend class b2Controller; + + void Solve(const b2TimeStep& step); + void SolveTOI(const b2TimeStep& step); + + void DrawJoint(b2Joint* joint); + void DrawShape(b2Fixture* shape, const b2Transform& xf, const b2Color& color); + + b2BlockAllocator m_blockAllocator; + b2StackAllocator m_stackAllocator; + + int32 m_flags; + + b2ContactManager m_contactManager; + + b2Body* m_bodyList; + b2Joint* m_jointList; + + int32 m_bodyCount; + int32 m_jointCount; + + b2Vec2 m_gravity; + bool m_allowSleep; + + b2DestructionListener* m_destructionListener; + b2Draw* g_debugDraw; + + // This is used to compute the time step ratio to + // support a variable time step. + float32 m_inv_dt0; + + // These are for debugging the solver. + bool m_warmStarting; + bool m_continuousPhysics; + bool m_subStepping; + + bool m_stepComplete; + + b2Profile m_profile; +}; + +inline b2Body* b2World::GetBodyList() +{ + return m_bodyList; +} + +inline const b2Body* b2World::GetBodyList() const +{ + return m_bodyList; +} + +inline b2Joint* b2World::GetJointList() +{ + return m_jointList; +} + +inline const b2Joint* b2World::GetJointList() const +{ + return m_jointList; +} + +inline b2Contact* b2World::GetContactList() +{ + return m_contactManager.m_contactList; +} + +inline const b2Contact* b2World::GetContactList() const +{ + return m_contactManager.m_contactList; +} + +inline int32 b2World::GetBodyCount() const +{ + return m_bodyCount; +} + +inline int32 b2World::GetJointCount() const +{ + return m_jointCount; +} + +inline int32 b2World::GetContactCount() const +{ + return m_contactManager.m_contactCount; +} + +inline void b2World::SetGravity(const b2Vec2& gravity) +{ + m_gravity = gravity; +} + +inline b2Vec2 b2World::GetGravity() const +{ + return m_gravity; +} + +inline bool b2World::IsLocked() const +{ + return (m_flags & e_locked) == e_locked; +} + +inline void b2World::SetAutoClearForces(bool flag) +{ + if (flag) + { + m_flags |= e_clearForces; + } + else + { + m_flags &= ~e_clearForces; + } +} + +/// Get the flag that controls automatic clearing of forces after each time step. +inline bool b2World::GetAutoClearForces() const +{ + return (m_flags & e_clearForces) == e_clearForces; +} + +inline const b2ContactManager& b2World::GetContactManager() const +{ + return m_contactManager; +} + +inline const b2Profile& b2World::GetProfile() const +{ + return m_profile; +} + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2WorldCallbacks.cpp b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2WorldCallbacks.cpp new file mode 100644 index 0000000..0f4b9c5 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2WorldCallbacks.cpp @@ -0,0 +1,36 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#include +#include + +// Return true if contact calculations should be performed between these two shapes. +// If you implement your own collision filter you may want to build from this implementation. +bool b2ContactFilter::ShouldCollide(b2Fixture* fixtureA, b2Fixture* fixtureB) +{ + const b2Filter& filterA = fixtureA->GetFilterData(); + const b2Filter& filterB = fixtureB->GetFilterData(); + + if (filterA.groupIndex == filterB.groupIndex && filterA.groupIndex != 0) + { + return filterA.groupIndex > 0; + } + + bool collide = (filterA.maskBits & filterB.categoryBits) != 0 && (filterA.categoryBits & filterB.maskBits) != 0; + return collide; +} diff --git a/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2WorldCallbacks.h b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2WorldCallbacks.h new file mode 100644 index 0000000..4a013e0 --- /dev/null +++ b/Template/Game/Source/External/Box2D/Box2D/Dynamics/b2WorldCallbacks.h @@ -0,0 +1,155 @@ +/* +* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org +* +* This software is provided 'as-is', without any express or implied +* warranty. In no event will the authors be held liable for any damages +* arising from the use of this software. +* Permission is granted to anyone to use this software for any purpose, +* including commercial applications, and to alter it and redistribute it +* freely, subject to the following restrictions: +* 1. The origin of this software must not be misrepresented; you must not +* claim that you wrote the original software. If you use this software +* in a product, an acknowledgment in the product documentation would be +* appreciated but is not required. +* 2. Altered source versions must be plainly marked as such, and must not be +* misrepresented as being the original software. +* 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef B2_WORLD_CALLBACKS_H +#define B2_WORLD_CALLBACKS_H + +#include "Common/b2Settings.h" + +struct b2Vec2; +struct b2Transform; +class b2Fixture; +class b2Body; +class b2Joint; +class b2Contact; +struct b2ContactResult; +struct b2Manifold; + +/// Joints and fixtures are destroyed when their associated +/// body is destroyed. Implement this listener so that you +/// may nullify references to these joints and shapes. +class b2DestructionListener +{ +public: + virtual ~b2DestructionListener() {} + + /// Called when any joint is about to be destroyed due + /// to the destruction of one of its attached bodies. + virtual void SayGoodbye(b2Joint* joint) = 0; + + /// Called when any fixture is about to be destroyed due + /// to the destruction of its parent body. + virtual void SayGoodbye(b2Fixture* fixture) = 0; +}; + +/// Implement this class to provide collision filtering. In other words, you can implement +/// this class if you want finer control over contact creation. +class b2ContactFilter +{ +public: + virtual ~b2ContactFilter() {} + + /// Return true if contact calculations should be performed between these two shapes. + /// @warning for performance reasons this is only called when the AABBs begin to overlap. + virtual bool ShouldCollide(b2Fixture* fixtureA, b2Fixture* fixtureB); +}; + +/// Contact impulses for reporting. Impulses are used instead of forces because +/// sub-step forces may approach infinity for rigid body collisions. These +/// match up one-to-one with the contact points in b2Manifold. +struct b2ContactImpulse +{ + float32 normalImpulses[b2_maxManifoldPoints]; + float32 tangentImpulses[b2_maxManifoldPoints]; + int32 count; +}; + +/// Implement this class to get contact information. You can use these results for +/// things like sounds and game logic. You can also get contact results by +/// traversing the contact lists after the time step. However, you might miss +/// some contacts because continuous physics leads to sub-stepping. +/// Additionally you may receive multiple callbacks for the same contact in a +/// single time step. +/// You should strive to make your callbacks efficient because there may be +/// many callbacks per time step. +/// @warning You cannot create/destroy Box2D entities inside these callbacks. +class b2ContactListener +{ +public: + virtual ~b2ContactListener() {} + + /// Called when two fixtures begin to touch. + virtual void BeginContact(b2Contact* contact) { B2_NOT_USED(contact); } + + /// Called when two fixtures cease to touch. + virtual void EndContact(b2Contact* contact) { B2_NOT_USED(contact); } + + /// This is called after a contact is updated. This allows you to inspect a + /// contact before it goes to the solver. If you are careful, you can modify the + /// contact manifold (e.g. disable contact). + /// A copy of the old manifold is provided so that you can detect changes. + /// Note: this is called only for awake bodies. + /// Note: this is called even when the number of contact points is zero. + /// Note: this is not called for sensors. + /// Note: if you set the number of contact points to zero, you will not + /// get an EndContact callback. However, you may get a BeginContact callback + /// the next step. + virtual void PreSolve(b2Contact* contact, const b2Manifold* oldManifold) + { + B2_NOT_USED(contact); + B2_NOT_USED(oldManifold); + } + + /// This lets you inspect a contact after the solver is finished. This is useful + /// for inspecting impulses. + /// Note: the contact manifold does not include time of impact impulses, which can be + /// arbitrarily large if the sub-step is small. Hence the impulse is provided explicitly + /// in a separate data structure. + /// Note: this is only called for contacts that are touching, solid, and awake. + virtual void PostSolve(b2Contact* contact, const b2ContactImpulse* impulse) + { + B2_NOT_USED(contact); + B2_NOT_USED(impulse); + } +}; + +/// Callback class for AABB queries. +/// See b2World::Query +class b2QueryCallback +{ +public: + virtual ~b2QueryCallback() {} + + /// Called for each fixture found in the query AABB. + /// @return false to terminate the query. + virtual bool ReportFixture(b2Fixture* fixture) = 0; +}; + +/// Callback class for ray casts. +/// See b2World::RayCast +class b2RayCastCallback +{ +public: + virtual ~b2RayCastCallback() {} + + /// Called for each fixture found in the query. You control how the ray cast + /// proceeds by returning a float: + /// return -1: ignore this fixture and continue + /// return 0: terminate the ray cast + /// return fraction: clip the ray to this point + /// return 1: don't clip the ray and continue + /// @param fixture the fixture hit by the ray + /// @param point the point of initial intersection + /// @param normal the normal vector at the point of intersection + /// @return -1 to filter, 0 to terminate, fraction to clip the ray for + /// closest hit, 1 to continue + virtual float32 ReportFixture( b2Fixture* fixture, const b2Vec2& point, + const b2Vec2& normal, float32 fraction) = 0; +}; + +#endif diff --git a/Template/Game/Source/External/Box2D/Box2D_Manual.pdf b/Template/Game/Source/External/Box2D/Box2D_Manual.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9b64d96beeb9d15cf2b6db4f5291393860520c4b GIT binary patch literal 1143002 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≥ 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

ceR)Y^>CFxb-pE0cP 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 z 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

Za@}4y$RcHT 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%0DHB#$p5eecBk!+z0ZX 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

-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%0A|l~V!Q!shLe9ZMG9oc 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


Ig2+PMG2#>)8)|L+$E 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

g)Zk28D=~|SQ3coR4)iho9exLQ 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

nx!xrZEqbFke&R!Q*mPUHdsZJ?6xutb;j= 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%0A$RbPvWZAA(A*9*5CGFKjoUtVQ}*7Z||dkjp1 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
C1EA7)WrD_bg_1bK^p*(FCPExzRjbBJc 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 V|8IZ4{ +#include +#include +#include + +#ifdef PUGIXML_WCHAR_MODE +# include +#endif + +#ifndef PUGIXML_NO_XPATH +# include +# include +# ifdef PUGIXML_NO_EXCEPTIONS +# include +# endif +#endif + +#ifndef PUGIXML_NO_STL +# include +# include +# include +#endif + +// For placement new +#include + +#ifdef _MSC_VER +# pragma warning(push) +# pragma warning(disable: 4127) // conditional expression is constant +# pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +# pragma warning(disable: 4611) // interaction between '_setjmp' and C++ object destruction is non-portable +# pragma warning(disable: 4702) // unreachable code +# pragma warning(disable: 4996) // this function or variable may be unsafe +# pragma warning(disable: 4793) // function compiled as native: presence of '_setjmp' makes a function unmanaged +#endif + +#ifdef __INTEL_COMPILER +# pragma warning(disable: 177) // function was declared but never referenced +# pragma warning(disable: 279) // controlling expression is constant +# pragma warning(disable: 1478 1786) // function was declared "deprecated" +# pragma warning(disable: 1684) // conversion from pointer to same-sized integral type +#endif + +#if defined(__BORLANDC__) && defined(PUGIXML_HEADER_ONLY) +# pragma warn -8080 // symbol is declared but never used; disabling this inside push/pop bracket does not make the warning go away +#endif + +#ifdef __BORLANDC__ +# pragma option push +# pragma warn -8008 // condition is always false +# pragma warn -8066 // unreachable code +#endif + +#ifdef __SNC__ +// Using diag_push/diag_pop does not disable the warnings inside templates due to a compiler bug +# pragma diag_suppress=178 // function was declared but never referenced +# pragma diag_suppress=237 // controlling expression is constant +#endif + +// Inlining controls +#if defined(_MSC_VER) && _MSC_VER >= 1300 +# define PUGI__NO_INLINE __declspec(noinline) +#elif defined(__GNUC__) +# define PUGI__NO_INLINE __attribute__((noinline)) +#else +# define PUGI__NO_INLINE +#endif + +// Branch weight controls +#if defined(__GNUC__) +# define PUGI__UNLIKELY(cond) __builtin_expect(cond, 0) +#else +# define PUGI__UNLIKELY(cond) (cond) +#endif + +// Simple static assertion +#define PUGI__STATIC_ASSERT(cond) { static const char condition_failed[(cond) ? 1 : -1] = {0}; (void)condition_failed[0]; } + +// Digital Mars C++ bug workaround for passing char loaded from memory via stack +#ifdef __DMC__ +# define PUGI__DMC_VOLATILE volatile +#else +# define PUGI__DMC_VOLATILE +#endif + +// Borland C++ bug workaround for not defining ::memcpy depending on header include order (can't always use std::memcpy because some compilers don't have it at all) +#if defined(__BORLANDC__) && !defined(__MEM_H_USING_LIST) +using std::memcpy; +using std::memmove; +#endif + +// In some environments MSVC is a compiler but the CRT lacks certain MSVC-specific features +#if defined(_MSC_VER) && !defined(__S3E__) +# define PUGI__MSVC_CRT_VERSION _MSC_VER +#endif + +#ifdef PUGIXML_HEADER_ONLY +# define PUGI__NS_BEGIN namespace pugi { namespace impl { +# define PUGI__NS_END } } +# define PUGI__FN inline +# define PUGI__FN_NO_INLINE inline +#else +# if defined(_MSC_VER) && _MSC_VER < 1300 // MSVC6 seems to have an amusing bug with anonymous namespaces inside namespaces +# define PUGI__NS_BEGIN namespace pugi { namespace impl { +# define PUGI__NS_END } } +# else +# define PUGI__NS_BEGIN namespace pugi { namespace impl { namespace { +# define PUGI__NS_END } } } +# endif +# define PUGI__FN +# define PUGI__FN_NO_INLINE PUGI__NO_INLINE +#endif + +// uintptr_t +#if !defined(_MSC_VER) || _MSC_VER >= 1600 +# include +#else +# ifndef _UINTPTR_T_DEFINED +// No native uintptr_t in MSVC6 and in some WinCE versions +typedef size_t uintptr_t; +#define _UINTPTR_T_DEFINED +# endif +PUGI__NS_BEGIN + typedef unsigned __int8 uint8_t; + typedef unsigned __int16 uint16_t; + typedef unsigned __int32 uint32_t; +PUGI__NS_END +#endif + +// Memory allocation +PUGI__NS_BEGIN + PUGI__FN void* default_allocate(size_t size) + { + return malloc(size); + } + + PUGI__FN void default_deallocate(void* ptr) + { + free(ptr); + } + + template + struct xml_memory_management_function_storage + { + static allocation_function allocate; + static deallocation_function deallocate; + }; + + // Global allocation functions are stored in class statics so that in header mode linker deduplicates them + // Without a template<> we'll get multiple definitions of the same static + template allocation_function xml_memory_management_function_storage::allocate = default_allocate; + template deallocation_function xml_memory_management_function_storage::deallocate = default_deallocate; + + typedef xml_memory_management_function_storage xml_memory; +PUGI__NS_END + +// String utilities +PUGI__NS_BEGIN + // Get string length + PUGI__FN size_t strlength(const char_t* s) + { + assert(s); + + #ifdef PUGIXML_WCHAR_MODE + return wcslen(s); + #else + return strlen(s); + #endif + } + + // Compare two strings + PUGI__FN bool strequal(const char_t* src, const char_t* dst) + { + assert(src && dst); + + #ifdef PUGIXML_WCHAR_MODE + return wcscmp(src, dst) == 0; + #else + return strcmp(src, dst) == 0; + #endif + } + + // Compare lhs with [rhs_begin, rhs_end) + PUGI__FN bool strequalrange(const char_t* lhs, const char_t* rhs, size_t count) + { + for (size_t i = 0; i < count; ++i) + if (lhs[i] != rhs[i]) + return false; + + return lhs[count] == 0; + } + + // Get length of wide string, even if CRT lacks wide character support + PUGI__FN size_t strlength_wide(const wchar_t* s) + { + assert(s); + + #ifdef PUGIXML_WCHAR_MODE + return wcslen(s); + #else + const wchar_t* end = s; + while (*end) end++; + return static_cast(end - s); + #endif + } + +#ifdef PUGIXML_WCHAR_MODE + // Convert string to wide string, assuming all symbols are ASCII + PUGI__FN void widen_ascii(wchar_t* dest, const char* source) + { + for (const char* i = source; *i; ++i) *dest++ = *i; + *dest = 0; + } +#endif +PUGI__NS_END + +#if !defined(PUGIXML_NO_STL) || !defined(PUGIXML_NO_XPATH) +// auto_ptr-like buffer holder for exception recovery +PUGI__NS_BEGIN + struct buffer_holder + { + void* data; + void (*deleter)(void*); + + buffer_holder(void* data_, void (*deleter_)(void*)): data(data_), deleter(deleter_) + { + } + + ~buffer_holder() + { + if (data) deleter(data); + } + + void* release() + { + void* result = data; + data = 0; + return result; + } + }; +PUGI__NS_END +#endif + +PUGI__NS_BEGIN + static const size_t xml_memory_page_size = + #ifdef PUGIXML_MEMORY_PAGE_SIZE + PUGIXML_MEMORY_PAGE_SIZE + #else + 32768 + #endif + ; + + static const uintptr_t xml_memory_page_alignment = 64; + static const uintptr_t xml_memory_page_pointer_mask = ~(xml_memory_page_alignment - 1); + static const uintptr_t xml_memory_page_contents_shared_mask = 32; + static const uintptr_t xml_memory_page_name_allocated_mask = 16; + static const uintptr_t xml_memory_page_value_allocated_mask = 8; + static const uintptr_t xml_memory_page_type_mask = 7; + static const uintptr_t xml_memory_page_name_allocated_or_shared_mask = xml_memory_page_name_allocated_mask | xml_memory_page_contents_shared_mask; + static const uintptr_t xml_memory_page_value_allocated_or_shared_mask = xml_memory_page_value_allocated_mask | xml_memory_page_contents_shared_mask; + + #define PUGI__NODETYPE(n) static_cast(((n)->header & impl::xml_memory_page_type_mask) + 1) + + struct xml_allocator; + + struct xml_memory_page + { + static xml_memory_page* construct(void* memory) + { + xml_memory_page* result = static_cast(memory); + + result->allocator = 0; + result->prev = 0; + result->next = 0; + result->busy_size = 0; + result->freed_size = 0; + + return result; + } + + xml_allocator* allocator; + + xml_memory_page* prev; + xml_memory_page* next; + + size_t busy_size; + size_t freed_size; + }; + + struct xml_memory_string_header + { + uint16_t page_offset; // offset from page->data + uint16_t full_size; // 0 if string occupies whole page + }; + + struct xml_allocator + { + xml_allocator(xml_memory_page* root): _root(root), _busy_size(root->busy_size) + { + } + + xml_memory_page* allocate_page(size_t data_size) + { + size_t size = sizeof(xml_memory_page) + data_size; + + // allocate block with some alignment, leaving memory for worst-case padding + void* memory = xml_memory::allocate(size + xml_memory_page_alignment); + if (!memory) return 0; + + // align to next page boundary (note: this guarantees at least 1 usable byte before the page) + char* page_memory = reinterpret_cast((reinterpret_cast(memory) + xml_memory_page_alignment) & ~(xml_memory_page_alignment - 1)); + + // prepare page structure + xml_memory_page* page = xml_memory_page::construct(page_memory); + assert(page); + + page->allocator = _root->allocator; + + // record the offset for freeing the memory block + assert(page_memory > memory && page_memory - static_cast(memory) <= 127); + page_memory[-1] = static_cast(page_memory - static_cast(memory)); + + return page; + } + + static void deallocate_page(xml_memory_page* page) + { + char* page_memory = reinterpret_cast(page); + + xml_memory::deallocate(page_memory - page_memory[-1]); + } + + void* allocate_memory_oob(size_t size, xml_memory_page*& out_page); + + void* allocate_memory(size_t size, xml_memory_page*& out_page) + { + if (_busy_size + size > xml_memory_page_size) return allocate_memory_oob(size, out_page); + + void* buf = reinterpret_cast(_root) + sizeof(xml_memory_page) + _busy_size; + + _busy_size += size; + + out_page = _root; + + return buf; + } + + void deallocate_memory(void* ptr, size_t size, xml_memory_page* page) + { + if (page == _root) page->busy_size = _busy_size; + + assert(ptr >= reinterpret_cast(page) + sizeof(xml_memory_page) && ptr < reinterpret_cast(page) + sizeof(xml_memory_page) + page->busy_size); + (void)!ptr; + + page->freed_size += size; + assert(page->freed_size <= page->busy_size); + + if (page->freed_size == page->busy_size) + { + if (page->next == 0) + { + assert(_root == page); + + // top page freed, just reset sizes + page->busy_size = page->freed_size = 0; + _busy_size = 0; + } + else + { + assert(_root != page); + assert(page->prev); + + // remove from the list + page->prev->next = page->next; + page->next->prev = page->prev; + + // deallocate + deallocate_page(page); + } + } + } + + char_t* allocate_string(size_t length) + { + static const size_t max_encoded_offset = (1 << 16) * sizeof(void*); + + PUGI__STATIC_ASSERT(xml_memory_page_size <= max_encoded_offset); + + // allocate memory for string and header block + size_t size = sizeof(xml_memory_string_header) + length * sizeof(char_t); + + // round size up to pointer alignment boundary + size_t full_size = (size + (sizeof(void*) - 1)) & ~(sizeof(void*) - 1); + + xml_memory_page* page; + xml_memory_string_header* header = static_cast(allocate_memory(full_size, page)); + + if (!header) return 0; + + // setup header + ptrdiff_t page_offset = reinterpret_cast(header) - reinterpret_cast(page) - sizeof(xml_memory_page); + + assert(page_offset % sizeof(void*) == 0); + assert(page_offset >= 0 && static_cast(page_offset) < max_encoded_offset); + header->page_offset = static_cast(static_cast(page_offset) / sizeof(void*)); + + // full_size == 0 for large strings that occupy the whole page + assert(full_size % sizeof(void*) == 0); + assert(full_size < max_encoded_offset || (page->busy_size == full_size && page_offset == 0)); + header->full_size = static_cast(full_size < max_encoded_offset ? full_size / sizeof(void*) : 0); + + // round-trip through void* to avoid 'cast increases required alignment of target type' warning + // header is guaranteed a pointer-sized alignment, which should be enough for char_t + return static_cast(static_cast(header + 1)); + } + + void deallocate_string(char_t* string) + { + // this function casts pointers through void* to avoid 'cast increases required alignment of target type' warnings + // we're guaranteed the proper (pointer-sized) alignment on the input string if it was allocated via allocate_string + + // get header + xml_memory_string_header* header = static_cast(static_cast(string)) - 1; + assert(header); + + // deallocate + size_t page_offset = sizeof(xml_memory_page) + header->page_offset * sizeof(void*); + xml_memory_page* page = reinterpret_cast(static_cast(reinterpret_cast(header) - page_offset)); + + // if full_size == 0 then this string occupies the whole page + size_t full_size = header->full_size == 0 ? page->busy_size : header->full_size * sizeof(void*); + + deallocate_memory(header, full_size, page); + } + + xml_memory_page* _root; + size_t _busy_size; + }; + + PUGI__FN_NO_INLINE void* xml_allocator::allocate_memory_oob(size_t size, xml_memory_page*& out_page) + { + const size_t large_allocation_threshold = xml_memory_page_size / 4; + + xml_memory_page* page = allocate_page(size <= large_allocation_threshold ? xml_memory_page_size : size); + out_page = page; + + if (!page) return 0; + + if (size <= large_allocation_threshold) + { + _root->busy_size = _busy_size; + + // insert page at the end of linked list + page->prev = _root; + _root->next = page; + _root = page; + + _busy_size = size; + } + else + { + // insert page before the end of linked list, so that it is deleted as soon as possible + // the last page is not deleted even if it's empty (see deallocate_memory) + assert(_root->prev); + + page->prev = _root->prev; + page->next = _root; + + _root->prev->next = page; + _root->prev = page; + } + + // allocate inside page + page->busy_size = size; + + return reinterpret_cast(page) + sizeof(xml_memory_page); + } +PUGI__NS_END + +namespace pugi +{ + /// A 'name=value' XML attribute structure. + struct xml_attribute_struct + { + /// Default ctor + xml_attribute_struct(impl::xml_memory_page* page): header(reinterpret_cast(page)), name(0), value(0), prev_attribute_c(0), next_attribute(0) + { + } + + uintptr_t header; + + char_t* name; ///< Pointer to attribute name. + char_t* value; ///< Pointer to attribute value. + + xml_attribute_struct* prev_attribute_c; ///< Previous attribute (cyclic list) + xml_attribute_struct* next_attribute; ///< Next attribute + }; + + /// An XML document tree node. + struct xml_node_struct + { + /// Default ctor + /// \param type - node type + xml_node_struct(impl::xml_memory_page* page, xml_node_type type): header(reinterpret_cast(page) | (type - 1)), parent(0), name(0), value(0), first_child(0), prev_sibling_c(0), next_sibling(0), first_attribute(0) + { + } + + uintptr_t header; + + xml_node_struct* parent; ///< Pointer to parent + + char_t* name; ///< Pointer to element name. + char_t* value; ///< Pointer to any associated string data. + + xml_node_struct* first_child; ///< First child + + xml_node_struct* prev_sibling_c; ///< Left brother (cyclic list) + xml_node_struct* next_sibling; ///< Right brother + + xml_attribute_struct* first_attribute; ///< First attribute + }; +} + +PUGI__NS_BEGIN + struct xml_extra_buffer + { + char_t* buffer; + xml_extra_buffer* next; + }; + + struct xml_document_struct: public xml_node_struct, public xml_allocator + { + xml_document_struct(xml_memory_page* page): xml_node_struct(page, node_document), xml_allocator(page), buffer(0), extra_buffers(0) + { + } + + const char_t* buffer; + + xml_extra_buffer* extra_buffers; + }; + + inline xml_allocator& get_allocator(const xml_node_struct* node) + { + assert(node); + + return *reinterpret_cast(node->header & xml_memory_page_pointer_mask)->allocator; + } + + template inline xml_document_struct& get_document(const Object* object) + { + assert(object); + + return *static_cast(reinterpret_cast(object->header & xml_memory_page_pointer_mask)->allocator); + } +PUGI__NS_END + +// Low-level DOM operations +PUGI__NS_BEGIN + inline xml_attribute_struct* allocate_attribute(xml_allocator& alloc) + { + xml_memory_page* page; + void* memory = alloc.allocate_memory(sizeof(xml_attribute_struct), page); + + return new (memory) xml_attribute_struct(page); + } + + inline xml_node_struct* allocate_node(xml_allocator& alloc, xml_node_type type) + { + xml_memory_page* page; + void* memory = alloc.allocate_memory(sizeof(xml_node_struct), page); + + return new (memory) xml_node_struct(page, type); + } + + inline void destroy_attribute(xml_attribute_struct* a, xml_allocator& alloc) + { + uintptr_t header = a->header; + + if (header & impl::xml_memory_page_name_allocated_mask) alloc.deallocate_string(a->name); + if (header & impl::xml_memory_page_value_allocated_mask) alloc.deallocate_string(a->value); + + alloc.deallocate_memory(a, sizeof(xml_attribute_struct), reinterpret_cast(header & xml_memory_page_pointer_mask)); + } + + inline void destroy_node(xml_node_struct* n, xml_allocator& alloc) + { + uintptr_t header = n->header; + + if (header & impl::xml_memory_page_name_allocated_mask) alloc.deallocate_string(n->name); + if (header & impl::xml_memory_page_value_allocated_mask) alloc.deallocate_string(n->value); + + for (xml_attribute_struct* attr = n->first_attribute; attr; ) + { + xml_attribute_struct* next = attr->next_attribute; + + destroy_attribute(attr, alloc); + + attr = next; + } + + for (xml_node_struct* child = n->first_child; child; ) + { + xml_node_struct* next = child->next_sibling; + + destroy_node(child, alloc); + + child = next; + } + + alloc.deallocate_memory(n, sizeof(xml_node_struct), reinterpret_cast(header & xml_memory_page_pointer_mask)); + } + + inline void append_node(xml_node_struct* child, xml_node_struct* node) + { + child->parent = node; + + xml_node_struct* head = node->first_child; + + if (head) + { + xml_node_struct* tail = head->prev_sibling_c; + + tail->next_sibling = child; + child->prev_sibling_c = tail; + head->prev_sibling_c = child; + } + else + { + node->first_child = child; + child->prev_sibling_c = child; + } + } + + inline void prepend_node(xml_node_struct* child, xml_node_struct* node) + { + child->parent = node; + + xml_node_struct* head = node->first_child; + + if (head) + { + child->prev_sibling_c = head->prev_sibling_c; + head->prev_sibling_c = child; + } + else + child->prev_sibling_c = child; + + child->next_sibling = head; + node->first_child = child; + } + + inline void insert_node_after(xml_node_struct* child, xml_node_struct* node) + { + xml_node_struct* parent = node->parent; + + child->parent = parent; + + if (node->next_sibling) + node->next_sibling->prev_sibling_c = child; + else + parent->first_child->prev_sibling_c = child; + + child->next_sibling = node->next_sibling; + child->prev_sibling_c = node; + + node->next_sibling = child; + } + + inline void insert_node_before(xml_node_struct* child, xml_node_struct* node) + { + xml_node_struct* parent = node->parent; + + child->parent = parent; + + if (node->prev_sibling_c->next_sibling) + node->prev_sibling_c->next_sibling = child; + else + parent->first_child = child; + + child->prev_sibling_c = node->prev_sibling_c; + child->next_sibling = node; + + node->prev_sibling_c = child; + } + + inline void remove_node(xml_node_struct* node) + { + xml_node_struct* parent = node->parent; + + if (node->next_sibling) + node->next_sibling->prev_sibling_c = node->prev_sibling_c; + else + parent->first_child->prev_sibling_c = node->prev_sibling_c; + + if (node->prev_sibling_c->next_sibling) + node->prev_sibling_c->next_sibling = node->next_sibling; + else + parent->first_child = node->next_sibling; + + node->parent = 0; + node->prev_sibling_c = 0; + node->next_sibling = 0; + } + + inline void append_attribute(xml_attribute_struct* attr, xml_node_struct* node) + { + xml_attribute_struct* head = node->first_attribute; + + if (head) + { + xml_attribute_struct* tail = head->prev_attribute_c; + + tail->next_attribute = attr; + attr->prev_attribute_c = tail; + head->prev_attribute_c = attr; + } + else + { + node->first_attribute = attr; + attr->prev_attribute_c = attr; + } + } + + inline void prepend_attribute(xml_attribute_struct* attr, xml_node_struct* node) + { + xml_attribute_struct* head = node->first_attribute; + + if (head) + { + attr->prev_attribute_c = head->prev_attribute_c; + head->prev_attribute_c = attr; + } + else + attr->prev_attribute_c = attr; + + attr->next_attribute = head; + node->first_attribute = attr; + } + + inline void insert_attribute_after(xml_attribute_struct* attr, xml_attribute_struct* place, xml_node_struct* node) + { + if (place->next_attribute) + place->next_attribute->prev_attribute_c = attr; + else + node->first_attribute->prev_attribute_c = attr; + + attr->next_attribute = place->next_attribute; + attr->prev_attribute_c = place; + place->next_attribute = attr; + } + + inline void insert_attribute_before(xml_attribute_struct* attr, xml_attribute_struct* place, xml_node_struct* node) + { + if (place->prev_attribute_c->next_attribute) + place->prev_attribute_c->next_attribute = attr; + else + node->first_attribute = attr; + + attr->prev_attribute_c = place->prev_attribute_c; + attr->next_attribute = place; + place->prev_attribute_c = attr; + } + + inline void remove_attribute(xml_attribute_struct* attr, xml_node_struct* node) + { + if (attr->next_attribute) + attr->next_attribute->prev_attribute_c = attr->prev_attribute_c; + else + node->first_attribute->prev_attribute_c = attr->prev_attribute_c; + + if (attr->prev_attribute_c->next_attribute) + attr->prev_attribute_c->next_attribute = attr->next_attribute; + else + node->first_attribute = attr->next_attribute; + + attr->prev_attribute_c = 0; + attr->next_attribute = 0; + } + + PUGI__FN_NO_INLINE xml_node_struct* append_new_node(xml_node_struct* node, xml_allocator& alloc, xml_node_type type = node_element) + { + xml_node_struct* child = allocate_node(alloc, type); + if (!child) return 0; + + append_node(child, node); + + return child; + } + + PUGI__FN_NO_INLINE xml_attribute_struct* append_new_attribute(xml_node_struct* node, xml_allocator& alloc) + { + xml_attribute_struct* attr = allocate_attribute(alloc); + if (!attr) return 0; + + append_attribute(attr, node); + + return attr; + } +PUGI__NS_END + +// Helper classes for code generation +PUGI__NS_BEGIN + struct opt_false + { + enum { value = 0 }; + }; + + struct opt_true + { + enum { value = 1 }; + }; +PUGI__NS_END + +// Unicode utilities +PUGI__NS_BEGIN + inline uint16_t endian_swap(uint16_t value) + { + return static_cast(((value & 0xff) << 8) | (value >> 8)); + } + + inline uint32_t endian_swap(uint32_t value) + { + return ((value & 0xff) << 24) | ((value & 0xff00) << 8) | ((value & 0xff0000) >> 8) | (value >> 24); + } + + struct utf8_counter + { + typedef size_t value_type; + + static value_type low(value_type result, uint32_t ch) + { + // U+0000..U+007F + if (ch < 0x80) return result + 1; + // U+0080..U+07FF + else if (ch < 0x800) return result + 2; + // U+0800..U+FFFF + else return result + 3; + } + + static value_type high(value_type result, uint32_t) + { + // U+10000..U+10FFFF + return result + 4; + } + }; + + struct utf8_writer + { + typedef uint8_t* value_type; + + static value_type low(value_type result, uint32_t ch) + { + // U+0000..U+007F + if (ch < 0x80) + { + *result = static_cast(ch); + return result + 1; + } + // U+0080..U+07FF + else if (ch < 0x800) + { + result[0] = static_cast(0xC0 | (ch >> 6)); + result[1] = static_cast(0x80 | (ch & 0x3F)); + return result + 2; + } + // U+0800..U+FFFF + else + { + result[0] = static_cast(0xE0 | (ch >> 12)); + result[1] = static_cast(0x80 | ((ch >> 6) & 0x3F)); + result[2] = static_cast(0x80 | (ch & 0x3F)); + return result + 3; + } + } + + static value_type high(value_type result, uint32_t ch) + { + // U+10000..U+10FFFF + result[0] = static_cast(0xF0 | (ch >> 18)); + result[1] = static_cast(0x80 | ((ch >> 12) & 0x3F)); + result[2] = static_cast(0x80 | ((ch >> 6) & 0x3F)); + result[3] = static_cast(0x80 | (ch & 0x3F)); + return result + 4; + } + + static value_type any(value_type result, uint32_t ch) + { + return (ch < 0x10000) ? low(result, ch) : high(result, ch); + } + }; + + struct utf16_counter + { + typedef size_t value_type; + + static value_type low(value_type result, uint32_t) + { + return result + 1; + } + + static value_type high(value_type result, uint32_t) + { + return result + 2; + } + }; + + struct utf16_writer + { + typedef uint16_t* value_type; + + static value_type low(value_type result, uint32_t ch) + { + *result = static_cast(ch); + + return result + 1; + } + + static value_type high(value_type result, uint32_t ch) + { + uint32_t msh = static_cast(ch - 0x10000) >> 10; + uint32_t lsh = static_cast(ch - 0x10000) & 0x3ff; + + result[0] = static_cast(0xD800 + msh); + result[1] = static_cast(0xDC00 + lsh); + + return result + 2; + } + + static value_type any(value_type result, uint32_t ch) + { + return (ch < 0x10000) ? low(result, ch) : high(result, ch); + } + }; + + struct utf32_counter + { + typedef size_t value_type; + + static value_type low(value_type result, uint32_t) + { + return result + 1; + } + + static value_type high(value_type result, uint32_t) + { + return result + 1; + } + }; + + struct utf32_writer + { + typedef uint32_t* value_type; + + static value_type low(value_type result, uint32_t ch) + { + *result = ch; + + return result + 1; + } + + static value_type high(value_type result, uint32_t ch) + { + *result = ch; + + return result + 1; + } + + static value_type any(value_type result, uint32_t ch) + { + *result = ch; + + return result + 1; + } + }; + + struct latin1_writer + { + typedef uint8_t* value_type; + + static value_type low(value_type result, uint32_t ch) + { + *result = static_cast(ch > 255 ? '?' : ch); + + return result + 1; + } + + static value_type high(value_type result, uint32_t ch) + { + (void)ch; + + *result = '?'; + + return result + 1; + } + }; + + template struct wchar_selector; + + template <> struct wchar_selector<2> + { + typedef uint16_t type; + typedef utf16_counter counter; + typedef utf16_writer writer; + }; + + template <> struct wchar_selector<4> + { + typedef uint32_t type; + typedef utf32_counter counter; + typedef utf32_writer writer; + }; + + typedef wchar_selector::counter wchar_counter; + typedef wchar_selector::writer wchar_writer; + + template struct utf_decoder + { + static inline typename Traits::value_type decode_utf8_block(const uint8_t* data, size_t size, typename Traits::value_type result) + { + const uint8_t utf8_byte_mask = 0x3f; + + while (size) + { + uint8_t lead = *data; + + // 0xxxxxxx -> U+0000..U+007F + if (lead < 0x80) + { + result = Traits::low(result, lead); + data += 1; + size -= 1; + + // process aligned single-byte (ascii) blocks + if ((reinterpret_cast(data) & 3) == 0) + { + // round-trip through void* to silence 'cast increases required alignment of target type' warnings + while (size >= 4 && (*static_cast(static_cast(data)) & 0x80808080) == 0) + { + result = Traits::low(result, data[0]); + result = Traits::low(result, data[1]); + result = Traits::low(result, data[2]); + result = Traits::low(result, data[3]); + data += 4; + size -= 4; + } + } + } + // 110xxxxx -> U+0080..U+07FF + else if (static_cast(lead - 0xC0) < 0x20 && size >= 2 && (data[1] & 0xc0) == 0x80) + { + result = Traits::low(result, ((lead & ~0xC0) << 6) | (data[1] & utf8_byte_mask)); + data += 2; + size -= 2; + } + // 1110xxxx -> U+0800-U+FFFF + else if (static_cast(lead - 0xE0) < 0x10 && size >= 3 && (data[1] & 0xc0) == 0x80 && (data[2] & 0xc0) == 0x80) + { + result = Traits::low(result, ((lead & ~0xE0) << 12) | ((data[1] & utf8_byte_mask) << 6) | (data[2] & utf8_byte_mask)); + data += 3; + size -= 3; + } + // 11110xxx -> U+10000..U+10FFFF + else if (static_cast(lead - 0xF0) < 0x08 && size >= 4 && (data[1] & 0xc0) == 0x80 && (data[2] & 0xc0) == 0x80 && (data[3] & 0xc0) == 0x80) + { + result = Traits::high(result, ((lead & ~0xF0) << 18) | ((data[1] & utf8_byte_mask) << 12) | ((data[2] & utf8_byte_mask) << 6) | (data[3] & utf8_byte_mask)); + data += 4; + size -= 4; + } + // 10xxxxxx or 11111xxx -> invalid + else + { + data += 1; + size -= 1; + } + } + + return result; + } + + static inline typename Traits::value_type decode_utf16_block(const uint16_t* data, size_t size, typename Traits::value_type result) + { + const uint16_t* end = data + size; + + while (data < end) + { + unsigned int lead = opt_swap::value ? endian_swap(*data) : *data; + + // U+0000..U+D7FF + if (lead < 0xD800) + { + result = Traits::low(result, lead); + data += 1; + } + // U+E000..U+FFFF + else if (static_cast(lead - 0xE000) < 0x2000) + { + result = Traits::low(result, lead); + data += 1; + } + // surrogate pair lead + else if (static_cast(lead - 0xD800) < 0x400 && data + 1 < end) + { + uint16_t next = opt_swap::value ? endian_swap(data[1]) : data[1]; + + if (static_cast(next - 0xDC00) < 0x400) + { + result = Traits::high(result, 0x10000 + ((lead & 0x3ff) << 10) + (next & 0x3ff)); + data += 2; + } + else + { + data += 1; + } + } + else + { + data += 1; + } + } + + return result; + } + + static inline typename Traits::value_type decode_utf32_block(const uint32_t* data, size_t size, typename Traits::value_type result) + { + const uint32_t* end = data + size; + + while (data < end) + { + uint32_t lead = opt_swap::value ? endian_swap(*data) : *data; + + // U+0000..U+FFFF + if (lead < 0x10000) + { + result = Traits::low(result, lead); + data += 1; + } + // U+10000..U+10FFFF + else + { + result = Traits::high(result, lead); + data += 1; + } + } + + return result; + } + + static inline typename Traits::value_type decode_latin1_block(const uint8_t* data, size_t size, typename Traits::value_type result) + { + for (size_t i = 0; i < size; ++i) + { + result = Traits::low(result, data[i]); + } + + return result; + } + + static inline typename Traits::value_type decode_wchar_block_impl(const uint16_t* data, size_t size, typename Traits::value_type result) + { + return decode_utf16_block(data, size, result); + } + + static inline typename Traits::value_type decode_wchar_block_impl(const uint32_t* data, size_t size, typename Traits::value_type result) + { + return decode_utf32_block(data, size, result); + } + + static inline typename Traits::value_type decode_wchar_block(const wchar_t* data, size_t size, typename Traits::value_type result) + { + return decode_wchar_block_impl(reinterpret_cast::type*>(data), size, result); + } + }; + + template PUGI__FN void convert_utf_endian_swap(T* result, const T* data, size_t length) + { + for (size_t i = 0; i < length; ++i) result[i] = endian_swap(data[i]); + } + +#ifdef PUGIXML_WCHAR_MODE + PUGI__FN void convert_wchar_endian_swap(wchar_t* result, const wchar_t* data, size_t length) + { + for (size_t i = 0; i < length; ++i) result[i] = static_cast(endian_swap(static_cast::type>(data[i]))); + } +#endif +PUGI__NS_END + +PUGI__NS_BEGIN + enum chartype_t + { + ct_parse_pcdata = 1, // \0, &, \r, < + ct_parse_attr = 2, // \0, &, \r, ', " + ct_parse_attr_ws = 4, // \0, &, \r, ', ", \n, tab + ct_space = 8, // \r, \n, space, tab + ct_parse_cdata = 16, // \0, ], >, \r + ct_parse_comment = 32, // \0, -, >, \r + ct_symbol = 64, // Any symbol > 127, a-z, A-Z, 0-9, _, :, -, . + ct_start_symbol = 128 // Any symbol > 127, a-z, A-Z, _, : + }; + + static const unsigned char chartype_table[256] = + { + 55, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 63, 0, 0, // 0-15 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16-31 + 8, 0, 6, 0, 0, 0, 7, 6, 0, 0, 0, 0, 0, 96, 64, 0, // 32-47 + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 192, 0, 1, 0, 48, 0, // 48-63 + 0, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, // 64-79 + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 0, 0, 16, 0, 192, // 80-95 + 0, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, // 96-111 + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 0, 0, 0, 0, 0, // 112-127 + + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, // 128+ + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192 + }; + + enum chartypex_t + { + ctx_special_pcdata = 1, // Any symbol >= 0 and < 32 (except \t, \r, \n), &, <, > + ctx_special_attr = 2, // Any symbol >= 0 and < 32 (except \t), &, <, >, " + ctx_start_symbol = 4, // Any symbol > 127, a-z, A-Z, _ + ctx_digit = 8, // 0-9 + ctx_symbol = 16 // Any symbol > 127, a-z, A-Z, 0-9, _, -, . + }; + + static const unsigned char chartypex_table[256] = + { + 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 2, 3, 3, 2, 3, 3, // 0-15 + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 16-31 + 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 16, 16, 0, // 32-47 + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 0, 3, 0, 3, 0, // 48-63 + + 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, // 64-79 + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0, 0, 20, // 80-95 + 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, // 96-111 + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0, 0, 0, // 112-127 + + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, // 128+ + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 + }; + +#ifdef PUGIXML_WCHAR_MODE + #define PUGI__IS_CHARTYPE_IMPL(c, ct, table) ((static_cast(c) < 128 ? table[static_cast(c)] : table[128]) & (ct)) +#else + #define PUGI__IS_CHARTYPE_IMPL(c, ct, table) (table[static_cast(c)] & (ct)) +#endif + + #define PUGI__IS_CHARTYPE(c, ct) PUGI__IS_CHARTYPE_IMPL(c, ct, chartype_table) + #define PUGI__IS_CHARTYPEX(c, ct) PUGI__IS_CHARTYPE_IMPL(c, ct, chartypex_table) + + PUGI__FN bool is_little_endian() + { + unsigned int ui = 1; + + return *reinterpret_cast(&ui) == 1; + } + + PUGI__FN xml_encoding get_wchar_encoding() + { + PUGI__STATIC_ASSERT(sizeof(wchar_t) == 2 || sizeof(wchar_t) == 4); + + if (sizeof(wchar_t) == 2) + return is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + else + return is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + } + + PUGI__FN xml_encoding guess_buffer_encoding(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) + { + // look for BOM in first few bytes + if (d0 == 0 && d1 == 0 && d2 == 0xfe && d3 == 0xff) return encoding_utf32_be; + if (d0 == 0xff && d1 == 0xfe && d2 == 0 && d3 == 0) return encoding_utf32_le; + if (d0 == 0xfe && d1 == 0xff) return encoding_utf16_be; + if (d0 == 0xff && d1 == 0xfe) return encoding_utf16_le; + if (d0 == 0xef && d1 == 0xbb && d2 == 0xbf) return encoding_utf8; + + // look for <, (contents); + + PUGI__DMC_VOLATILE uint8_t d0 = data[0], d1 = data[1], d2 = data[2], d3 = data[3]; + + return guess_buffer_encoding(d0, d1, d2, d3); + } + + PUGI__FN bool get_mutable_buffer(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, bool is_mutable) + { + size_t length = size / sizeof(char_t); + + if (is_mutable) + { + out_buffer = static_cast(const_cast(contents)); + out_length = length; + } + else + { + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + if (contents) + memcpy(buffer, contents, length * sizeof(char_t)); + else + assert(length == 0); + + buffer[length] = 0; + + out_buffer = buffer; + out_length = length + 1; + } + + return true; + } + +#ifdef PUGIXML_WCHAR_MODE + PUGI__FN bool need_endian_swap_utf(xml_encoding le, xml_encoding re) + { + return (le == encoding_utf16_be && re == encoding_utf16_le) || (le == encoding_utf16_le && re == encoding_utf16_be) || + (le == encoding_utf32_be && re == encoding_utf32_le) || (le == encoding_utf32_le && re == encoding_utf32_be); + } + + PUGI__FN bool convert_buffer_endian_swap(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, bool is_mutable) + { + const char_t* data = static_cast(contents); + size_t length = size / sizeof(char_t); + + if (is_mutable) + { + char_t* buffer = const_cast(data); + + convert_wchar_endian_swap(buffer, data, length); + + out_buffer = buffer; + out_length = length; + } + else + { + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + convert_wchar_endian_swap(buffer, data, length); + buffer[length] = 0; + + out_buffer = buffer; + out_length = length + 1; + } + + return true; + } + + PUGI__FN bool convert_buffer_utf8(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size) + { + const uint8_t* data = static_cast(contents); + size_t data_length = size; + + // first pass: get length in wchar_t units + size_t length = utf_decoder::decode_utf8_block(data, data_length, 0); + + // allocate buffer of suitable length + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + // second pass: convert utf8 input to wchar_t + wchar_writer::value_type obegin = reinterpret_cast(buffer); + wchar_writer::value_type oend = utf_decoder::decode_utf8_block(data, data_length, obegin); + + assert(oend == obegin + length); + *oend = 0; + + out_buffer = buffer; + out_length = length + 1; + + return true; + } + + template PUGI__FN bool convert_buffer_utf16(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, opt_swap) + { + const uint16_t* data = static_cast(contents); + size_t data_length = size / sizeof(uint16_t); + + // first pass: get length in wchar_t units + size_t length = utf_decoder::decode_utf16_block(data, data_length, 0); + + // allocate buffer of suitable length + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + // second pass: convert utf16 input to wchar_t + wchar_writer::value_type obegin = reinterpret_cast(buffer); + wchar_writer::value_type oend = utf_decoder::decode_utf16_block(data, data_length, obegin); + + assert(oend == obegin + length); + *oend = 0; + + out_buffer = buffer; + out_length = length + 1; + + return true; + } + + template PUGI__FN bool convert_buffer_utf32(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, opt_swap) + { + const uint32_t* data = static_cast(contents); + size_t data_length = size / sizeof(uint32_t); + + // first pass: get length in wchar_t units + size_t length = utf_decoder::decode_utf32_block(data, data_length, 0); + + // allocate buffer of suitable length + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + // second pass: convert utf32 input to wchar_t + wchar_writer::value_type obegin = reinterpret_cast(buffer); + wchar_writer::value_type oend = utf_decoder::decode_utf32_block(data, data_length, obegin); + + assert(oend == obegin + length); + *oend = 0; + + out_buffer = buffer; + out_length = length + 1; + + return true; + } + + PUGI__FN bool convert_buffer_latin1(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size) + { + const uint8_t* data = static_cast(contents); + size_t data_length = size; + + // get length in wchar_t units + size_t length = data_length; + + // allocate buffer of suitable length + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + // convert latin1 input to wchar_t + wchar_writer::value_type obegin = reinterpret_cast(buffer); + wchar_writer::value_type oend = utf_decoder::decode_latin1_block(data, data_length, obegin); + + assert(oend == obegin + length); + *oend = 0; + + out_buffer = buffer; + out_length = length + 1; + + return true; + } + + PUGI__FN bool convert_buffer(char_t*& out_buffer, size_t& out_length, xml_encoding encoding, const void* contents, size_t size, bool is_mutable) + { + // get native encoding + xml_encoding wchar_encoding = get_wchar_encoding(); + + // fast path: no conversion required + if (encoding == wchar_encoding) return get_mutable_buffer(out_buffer, out_length, contents, size, is_mutable); + + // only endian-swapping is required + if (need_endian_swap_utf(encoding, wchar_encoding)) return convert_buffer_endian_swap(out_buffer, out_length, contents, size, is_mutable); + + // source encoding is utf8 + if (encoding == encoding_utf8) return convert_buffer_utf8(out_buffer, out_length, contents, size); + + // source encoding is utf16 + if (encoding == encoding_utf16_be || encoding == encoding_utf16_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + + return (native_encoding == encoding) ? + convert_buffer_utf16(out_buffer, out_length, contents, size, opt_false()) : + convert_buffer_utf16(out_buffer, out_length, contents, size, opt_true()); + } + + // source encoding is utf32 + if (encoding == encoding_utf32_be || encoding == encoding_utf32_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + + return (native_encoding == encoding) ? + convert_buffer_utf32(out_buffer, out_length, contents, size, opt_false()) : + convert_buffer_utf32(out_buffer, out_length, contents, size, opt_true()); + } + + // source encoding is latin1 + if (encoding == encoding_latin1) return convert_buffer_latin1(out_buffer, out_length, contents, size); + + assert(!"Invalid encoding"); + return false; + } +#else + template PUGI__FN bool convert_buffer_utf16(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, opt_swap) + { + const uint16_t* data = static_cast(contents); + size_t data_length = size / sizeof(uint16_t); + + // first pass: get length in utf8 units + size_t length = utf_decoder::decode_utf16_block(data, data_length, 0); + + // allocate buffer of suitable length + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + // second pass: convert utf16 input to utf8 + uint8_t* obegin = reinterpret_cast(buffer); + uint8_t* oend = utf_decoder::decode_utf16_block(data, data_length, obegin); + + assert(oend == obegin + length); + *oend = 0; + + out_buffer = buffer; + out_length = length + 1; + + return true; + } + + template PUGI__FN bool convert_buffer_utf32(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, opt_swap) + { + const uint32_t* data = static_cast(contents); + size_t data_length = size / sizeof(uint32_t); + + // first pass: get length in utf8 units + size_t length = utf_decoder::decode_utf32_block(data, data_length, 0); + + // allocate buffer of suitable length + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + // second pass: convert utf32 input to utf8 + uint8_t* obegin = reinterpret_cast(buffer); + uint8_t* oend = utf_decoder::decode_utf32_block(data, data_length, obegin); + + assert(oend == obegin + length); + *oend = 0; + + out_buffer = buffer; + out_length = length + 1; + + return true; + } + + PUGI__FN size_t get_latin1_7bit_prefix_length(const uint8_t* data, size_t size) + { + for (size_t i = 0; i < size; ++i) + if (data[i] > 127) + return i; + + return size; + } + + PUGI__FN bool convert_buffer_latin1(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, bool is_mutable) + { + const uint8_t* data = static_cast(contents); + size_t data_length = size; + + // get size of prefix that does not need utf8 conversion + size_t prefix_length = get_latin1_7bit_prefix_length(data, data_length); + assert(prefix_length <= data_length); + + const uint8_t* postfix = data + prefix_length; + size_t postfix_length = data_length - prefix_length; + + // if no conversion is needed, just return the original buffer + if (postfix_length == 0) return get_mutable_buffer(out_buffer, out_length, contents, size, is_mutable); + + // first pass: get length in utf8 units + size_t length = prefix_length + utf_decoder::decode_latin1_block(postfix, postfix_length, 0); + + // allocate buffer of suitable length + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + // second pass: convert latin1 input to utf8 + memcpy(buffer, data, prefix_length); + + uint8_t* obegin = reinterpret_cast(buffer); + uint8_t* oend = utf_decoder::decode_latin1_block(postfix, postfix_length, obegin + prefix_length); + + assert(oend == obegin + length); + *oend = 0; + + out_buffer = buffer; + out_length = length + 1; + + return true; + } + + PUGI__FN bool convert_buffer(char_t*& out_buffer, size_t& out_length, xml_encoding encoding, const void* contents, size_t size, bool is_mutable) + { + // fast path: no conversion required + if (encoding == encoding_utf8) return get_mutable_buffer(out_buffer, out_length, contents, size, is_mutable); + + // source encoding is utf16 + if (encoding == encoding_utf16_be || encoding == encoding_utf16_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + + return (native_encoding == encoding) ? + convert_buffer_utf16(out_buffer, out_length, contents, size, opt_false()) : + convert_buffer_utf16(out_buffer, out_length, contents, size, opt_true()); + } + + // source encoding is utf32 + if (encoding == encoding_utf32_be || encoding == encoding_utf32_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + + return (native_encoding == encoding) ? + convert_buffer_utf32(out_buffer, out_length, contents, size, opt_false()) : + convert_buffer_utf32(out_buffer, out_length, contents, size, opt_true()); + } + + // source encoding is latin1 + if (encoding == encoding_latin1) return convert_buffer_latin1(out_buffer, out_length, contents, size, is_mutable); + + assert(!"Invalid encoding"); + return false; + } +#endif + + PUGI__FN size_t as_utf8_begin(const wchar_t* str, size_t length) + { + // get length in utf8 characters + return utf_decoder::decode_wchar_block(str, length, 0); + } + + PUGI__FN void as_utf8_end(char* buffer, size_t size, const wchar_t* str, size_t length) + { + // convert to utf8 + uint8_t* begin = reinterpret_cast(buffer); + uint8_t* end = utf_decoder::decode_wchar_block(str, length, begin); + + assert(begin + size == end); + (void)!end; + + // zero-terminate + buffer[size] = 0; + } + +#ifndef PUGIXML_NO_STL + PUGI__FN std::string as_utf8_impl(const wchar_t* str, size_t length) + { + // first pass: get length in utf8 characters + size_t size = as_utf8_begin(str, length); + + // allocate resulting string + std::string result; + result.resize(size); + + // second pass: convert to utf8 + if (size > 0) as_utf8_end(&result[0], size, str, length); + + return result; + } + + PUGI__FN std::basic_string as_wide_impl(const char* str, size_t size) + { + const uint8_t* data = reinterpret_cast(str); + + // first pass: get length in wchar_t units + size_t length = utf_decoder::decode_utf8_block(data, size, 0); + + // allocate resulting string + std::basic_string result; + result.resize(length); + + // second pass: convert to wchar_t + if (length > 0) + { + wchar_writer::value_type begin = reinterpret_cast(&result[0]); + wchar_writer::value_type end = utf_decoder::decode_utf8_block(data, size, begin); + + assert(begin + length == end); + (void)!end; + } + + return result; + } +#endif + + inline bool strcpy_insitu_allow(size_t length, uintptr_t header, uintptr_t header_mask, char_t* target) + { + // never reuse shared memory + if (header & xml_memory_page_contents_shared_mask) return false; + + size_t target_length = strlength(target); + + // always reuse document buffer memory if possible + if ((header & header_mask) == 0) return target_length >= length; + + // reuse heap memory if waste is not too great + const size_t reuse_threshold = 32; + + return target_length >= length && (target_length < reuse_threshold || target_length - length < target_length / 2); + } + + PUGI__FN bool strcpy_insitu(char_t*& dest, uintptr_t& header, uintptr_t header_mask, const char_t* source) + { + assert(header); + + size_t source_length = strlength(source); + + if (source_length == 0) + { + // empty string and null pointer are equivalent, so just deallocate old memory + xml_allocator* alloc = reinterpret_cast(header & xml_memory_page_pointer_mask)->allocator; + + if (header & header_mask) alloc->deallocate_string(dest); + + // mark the string as not allocated + dest = 0; + header &= ~header_mask; + + return true; + } + else if (dest && strcpy_insitu_allow(source_length, header, header_mask, dest)) + { + // we can reuse old buffer, so just copy the new data (including zero terminator) + memcpy(dest, source, (source_length + 1) * sizeof(char_t)); + + return true; + } + else + { + xml_allocator* alloc = reinterpret_cast(header & xml_memory_page_pointer_mask)->allocator; + + // allocate new buffer + char_t* buf = alloc->allocate_string(source_length + 1); + if (!buf) return false; + + // copy the string (including zero terminator) + memcpy(buf, source, (source_length + 1) * sizeof(char_t)); + + // deallocate old buffer (*after* the above to protect against overlapping memory and/or allocation failures) + if (header & header_mask) alloc->deallocate_string(dest); + + // the string is now allocated, so set the flag + dest = buf; + header |= header_mask; + + return true; + } + } + + struct gap + { + char_t* end; + size_t size; + + gap(): end(0), size(0) + { + } + + // Push new gap, move s count bytes further (skipping the gap). + // Collapse previous gap. + void push(char_t*& s, size_t count) + { + if (end) // there was a gap already; collapse it + { + // Move [old_gap_end, new_gap_start) to [old_gap_start, ...) + assert(s >= end); + memmove(end - size, end, reinterpret_cast(s) - reinterpret_cast(end)); + } + + s += count; // end of current gap + + // "merge" two gaps + end = s; + size += count; + } + + // Collapse all gaps, return past-the-end pointer + char_t* flush(char_t* s) + { + if (end) + { + // Move [old_gap_end, current_pos) to [old_gap_start, ...) + assert(s >= end); + memmove(end - size, end, reinterpret_cast(s) - reinterpret_cast(end)); + + return s - size; + } + else return s; + } + }; + + PUGI__FN char_t* strconv_escape(char_t* s, gap& g) + { + char_t* stre = s + 1; + + switch (*stre) + { + case '#': // &#... + { + unsigned int ucsc = 0; + + if (stre[1] == 'x') // &#x... (hex code) + { + stre += 2; + + char_t ch = *stre; + + if (ch == ';') return stre; + + for (;;) + { + if (static_cast(ch - '0') <= 9) + ucsc = 16 * ucsc + (ch - '0'); + else if (static_cast((ch | ' ') - 'a') <= 5) + ucsc = 16 * ucsc + ((ch | ' ') - 'a' + 10); + else if (ch == ';') + break; + else // cancel + return stre; + + ch = *++stre; + } + + ++stre; + } + else // &#... (dec code) + { + char_t ch = *++stre; + + if (ch == ';') return stre; + + for (;;) + { + if (static_cast(static_cast(ch) - '0') <= 9) + ucsc = 10 * ucsc + (ch - '0'); + else if (ch == ';') + break; + else // cancel + return stre; + + ch = *++stre; + } + + ++stre; + } + + #ifdef PUGIXML_WCHAR_MODE + s = reinterpret_cast(wchar_writer::any(reinterpret_cast(s), ucsc)); + #else + s = reinterpret_cast(utf8_writer::any(reinterpret_cast(s), ucsc)); + #endif + + g.push(s, stre - s); + return stre; + } + + case 'a': // &a + { + ++stre; + + if (*stre == 'm') // &am + { + if (*++stre == 'p' && *++stre == ';') // & + { + *s++ = '&'; + ++stre; + + g.push(s, stre - s); + return stre; + } + } + else if (*stre == 'p') // &ap + { + if (*++stre == 'o' && *++stre == 's' && *++stre == ';') // ' + { + *s++ = '\''; + ++stre; + + g.push(s, stre - s); + return stre; + } + } + break; + } + + case 'g': // &g + { + if (*++stre == 't' && *++stre == ';') // > + { + *s++ = '>'; + ++stre; + + g.push(s, stre - s); + return stre; + } + break; + } + + case 'l': // &l + { + if (*++stre == 't' && *++stre == ';') // < + { + *s++ = '<'; + ++stre; + + g.push(s, stre - s); + return stre; + } + break; + } + + case 'q': // &q + { + if (*++stre == 'u' && *++stre == 'o' && *++stre == 't' && *++stre == ';') // " + { + *s++ = '"'; + ++stre; + + g.push(s, stre - s); + return stre; + } + break; + } + + default: + break; + } + + return stre; + } + + // Parser utilities + #define PUGI__ENDSWITH(c, e) ((c) == (e) || ((c) == 0 && endch == (e))) + #define PUGI__SKIPWS() { while (PUGI__IS_CHARTYPE(*s, ct_space)) ++s; } + #define PUGI__OPTSET(OPT) ( optmsk & (OPT) ) + #define PUGI__PUSHNODE(TYPE) { cursor = append_new_node(cursor, alloc, TYPE); if (!cursor) PUGI__THROW_ERROR(status_out_of_memory, s); } + #define PUGI__POPNODE() { cursor = cursor->parent; } + #define PUGI__SCANFOR(X) { while (*s != 0 && !(X)) ++s; } + #define PUGI__SCANWHILE(X) { while (X) ++s; } + #define PUGI__SCANWHILE_UNROLL(X) { for (;;) { char_t ss = s[0]; if (PUGI__UNLIKELY(!(X))) { break; } ss = s[1]; if (PUGI__UNLIKELY(!(X))) { s += 1; break; } ss = s[2]; if (PUGI__UNLIKELY(!(X))) { s += 2; break; } ss = s[3]; if (PUGI__UNLIKELY(!(X))) { s += 3; break; } s += 4; } } + #define PUGI__ENDSEG() { ch = *s; *s = 0; ++s; } + #define PUGI__THROW_ERROR(err, m) return error_offset = m, error_status = err, static_cast(0) + #define PUGI__CHECK_ERROR(err, m) { if (*s == 0) PUGI__THROW_ERROR(err, m); } + + PUGI__FN char_t* strconv_comment(char_t* s, char_t endch) + { + gap g; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_comment)); + + if (*s == '\r') // Either a single 0x0d or 0x0d 0x0a pair + { + *s++ = '\n'; // replace first one with 0x0a + + if (*s == '\n') g.push(s, 1); + } + else if (s[0] == '-' && s[1] == '-' && PUGI__ENDSWITH(s[2], '>')) // comment ends here + { + *g.flush(s) = 0; + + return s + (s[2] == '>' ? 3 : 2); + } + else if (*s == 0) + { + return 0; + } + else ++s; + } + } + + PUGI__FN char_t* strconv_cdata(char_t* s, char_t endch) + { + gap g; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_cdata)); + + if (*s == '\r') // Either a single 0x0d or 0x0d 0x0a pair + { + *s++ = '\n'; // replace first one with 0x0a + + if (*s == '\n') g.push(s, 1); + } + else if (s[0] == ']' && s[1] == ']' && PUGI__ENDSWITH(s[2], '>')) // CDATA ends here + { + *g.flush(s) = 0; + + return s + 1; + } + else if (*s == 0) + { + return 0; + } + else ++s; + } + } + + typedef char_t* (*strconv_pcdata_t)(char_t*); + + template struct strconv_pcdata_impl + { + static char_t* parse(char_t* s) + { + gap g; + + char_t* begin = s; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_pcdata)); + + if (*s == '<') // PCDATA ends here + { + char_t* end = g.flush(s); + + if (opt_trim::value) + while (end > begin && PUGI__IS_CHARTYPE(end[-1], ct_space)) + --end; + + *end = 0; + + return s + 1; + } + else if (opt_eol::value && *s == '\r') // Either a single 0x0d or 0x0d 0x0a pair + { + *s++ = '\n'; // replace first one with 0x0a + + if (*s == '\n') g.push(s, 1); + } + else if (opt_escape::value && *s == '&') + { + s = strconv_escape(s, g); + } + else if (*s == 0) + { + char_t* end = g.flush(s); + + if (opt_trim::value) + while (end > begin && PUGI__IS_CHARTYPE(end[-1], ct_space)) + --end; + + *end = 0; + + return s; + } + else ++s; + } + } + }; + + PUGI__FN strconv_pcdata_t get_strconv_pcdata(unsigned int optmask) + { + PUGI__STATIC_ASSERT(parse_escapes == 0x10 && parse_eol == 0x20 && parse_trim_pcdata == 0x0800); + + switch (((optmask >> 4) & 3) | ((optmask >> 9) & 4)) // get bitmask for flags (eol escapes trim) + { + case 0: return strconv_pcdata_impl::parse; + case 1: return strconv_pcdata_impl::parse; + case 2: return strconv_pcdata_impl::parse; + case 3: return strconv_pcdata_impl::parse; + case 4: return strconv_pcdata_impl::parse; + case 5: return strconv_pcdata_impl::parse; + case 6: return strconv_pcdata_impl::parse; + case 7: return strconv_pcdata_impl::parse; + default: assert(false); return 0; // should not get here + } + } + + typedef char_t* (*strconv_attribute_t)(char_t*, char_t); + + template struct strconv_attribute_impl + { + static char_t* parse_wnorm(char_t* s, char_t end_quote) + { + gap g; + + // trim leading whitespaces + if (PUGI__IS_CHARTYPE(*s, ct_space)) + { + char_t* str = s; + + do ++str; + while (PUGI__IS_CHARTYPE(*str, ct_space)); + + g.push(s, str - s); + } + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_attr_ws | ct_space)); + + if (*s == end_quote) + { + char_t* str = g.flush(s); + + do *str-- = 0; + while (PUGI__IS_CHARTYPE(*str, ct_space)); + + return s + 1; + } + else if (PUGI__IS_CHARTYPE(*s, ct_space)) + { + *s++ = ' '; + + if (PUGI__IS_CHARTYPE(*s, ct_space)) + { + char_t* str = s + 1; + while (PUGI__IS_CHARTYPE(*str, ct_space)) ++str; + + g.push(s, str - s); + } + } + else if (opt_escape::value && *s == '&') + { + s = strconv_escape(s, g); + } + else if (!*s) + { + return 0; + } + else ++s; + } + } + + static char_t* parse_wconv(char_t* s, char_t end_quote) + { + gap g; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_attr_ws)); + + if (*s == end_quote) + { + *g.flush(s) = 0; + + return s + 1; + } + else if (PUGI__IS_CHARTYPE(*s, ct_space)) + { + if (*s == '\r') + { + *s++ = ' '; + + if (*s == '\n') g.push(s, 1); + } + else *s++ = ' '; + } + else if (opt_escape::value && *s == '&') + { + s = strconv_escape(s, g); + } + else if (!*s) + { + return 0; + } + else ++s; + } + } + + static char_t* parse_eol(char_t* s, char_t end_quote) + { + gap g; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_attr)); + + if (*s == end_quote) + { + *g.flush(s) = 0; + + return s + 1; + } + else if (*s == '\r') + { + *s++ = '\n'; + + if (*s == '\n') g.push(s, 1); + } + else if (opt_escape::value && *s == '&') + { + s = strconv_escape(s, g); + } + else if (!*s) + { + return 0; + } + else ++s; + } + } + + static char_t* parse_simple(char_t* s, char_t end_quote) + { + gap g; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_attr)); + + if (*s == end_quote) + { + *g.flush(s) = 0; + + return s + 1; + } + else if (opt_escape::value && *s == '&') + { + s = strconv_escape(s, g); + } + else if (!*s) + { + return 0; + } + else ++s; + } + } + }; + + PUGI__FN strconv_attribute_t get_strconv_attribute(unsigned int optmask) + { + PUGI__STATIC_ASSERT(parse_escapes == 0x10 && parse_eol == 0x20 && parse_wconv_attribute == 0x40 && parse_wnorm_attribute == 0x80); + + switch ((optmask >> 4) & 15) // get bitmask for flags (wconv wnorm eol escapes) + { + case 0: return strconv_attribute_impl::parse_simple; + case 1: return strconv_attribute_impl::parse_simple; + case 2: return strconv_attribute_impl::parse_eol; + case 3: return strconv_attribute_impl::parse_eol; + case 4: return strconv_attribute_impl::parse_wconv; + case 5: return strconv_attribute_impl::parse_wconv; + case 6: return strconv_attribute_impl::parse_wconv; + case 7: return strconv_attribute_impl::parse_wconv; + case 8: return strconv_attribute_impl::parse_wnorm; + case 9: return strconv_attribute_impl::parse_wnorm; + case 10: return strconv_attribute_impl::parse_wnorm; + case 11: return strconv_attribute_impl::parse_wnorm; + case 12: return strconv_attribute_impl::parse_wnorm; + case 13: return strconv_attribute_impl::parse_wnorm; + case 14: return strconv_attribute_impl::parse_wnorm; + case 15: return strconv_attribute_impl::parse_wnorm; + default: assert(false); return 0; // should not get here + } + } + + inline xml_parse_result make_parse_result(xml_parse_status status, ptrdiff_t offset = 0) + { + xml_parse_result result; + result.status = status; + result.offset = offset; + + return result; + } + + struct xml_parser + { + xml_allocator alloc; + char_t* error_offset; + xml_parse_status error_status; + + xml_parser(const xml_allocator& alloc_): alloc(alloc_), error_offset(0), error_status(status_ok) + { + } + + // DOCTYPE consists of nested sections of the following possible types: + // , , "...", '...' + // + // + // First group can not contain nested groups + // Second group can contain nested groups of the same type + // Third group can contain all other groups + char_t* parse_doctype_primitive(char_t* s) + { + if (*s == '"' || *s == '\'') + { + // quoted string + char_t ch = *s++; + PUGI__SCANFOR(*s == ch); + if (!*s) PUGI__THROW_ERROR(status_bad_doctype, s); + + s++; + } + else if (s[0] == '<' && s[1] == '?') + { + // + s += 2; + PUGI__SCANFOR(s[0] == '?' && s[1] == '>'); // no need for ENDSWITH because ?> can't terminate proper doctype + if (!*s) PUGI__THROW_ERROR(status_bad_doctype, s); + + s += 2; + } + else if (s[0] == '<' && s[1] == '!' && s[2] == '-' && s[3] == '-') + { + s += 4; + PUGI__SCANFOR(s[0] == '-' && s[1] == '-' && s[2] == '>'); // no need for ENDSWITH because --> can't terminate proper doctype + if (!*s) PUGI__THROW_ERROR(status_bad_doctype, s); + + s += 3; + } + else PUGI__THROW_ERROR(status_bad_doctype, s); + + return s; + } + + char_t* parse_doctype_ignore(char_t* s) + { + size_t depth = 0; + + assert(s[0] == '<' && s[1] == '!' && s[2] == '['); + s += 3; + + while (*s) + { + if (s[0] == '<' && s[1] == '!' && s[2] == '[') + { + // nested ignore section + s += 3; + depth++; + } + else if (s[0] == ']' && s[1] == ']' && s[2] == '>') + { + // ignore section end + s += 3; + + if (depth == 0) + return s; + + depth--; + } + else s++; + } + + PUGI__THROW_ERROR(status_bad_doctype, s); + } + + char_t* parse_doctype_group(char_t* s, char_t endch) + { + size_t depth = 0; + + assert((s[0] == '<' || s[0] == 0) && s[1] == '!'); + s += 2; + + while (*s) + { + if (s[0] == '<' && s[1] == '!' && s[2] != '-') + { + if (s[2] == '[') + { + // ignore + s = parse_doctype_ignore(s); + if (!s) return s; + } + else + { + // some control group + s += 2; + depth++; + } + } + else if (s[0] == '<' || s[0] == '"' || s[0] == '\'') + { + // unknown tag (forbidden), or some primitive group + s = parse_doctype_primitive(s); + if (!s) return s; + } + else if (*s == '>') + { + if (depth == 0) + return s; + + depth--; + s++; + } + else s++; + } + + if (depth != 0 || endch != '>') PUGI__THROW_ERROR(status_bad_doctype, s); + + return s; + } + + char_t* parse_exclamation(char_t* s, xml_node_struct* cursor, unsigned int optmsk, char_t endch) + { + // parse node contents, starting with exclamation mark + ++s; + + if (*s == '-') // 'value = s; // Save the offset. + } + + if (PUGI__OPTSET(parse_eol) && PUGI__OPTSET(parse_comments)) + { + s = strconv_comment(s, endch); + + if (!s) PUGI__THROW_ERROR(status_bad_comment, cursor->value); + } + else + { + // Scan for terminating '-->'. + PUGI__SCANFOR(s[0] == '-' && s[1] == '-' && PUGI__ENDSWITH(s[2], '>')); + PUGI__CHECK_ERROR(status_bad_comment, s); + + if (PUGI__OPTSET(parse_comments)) + *s = 0; // Zero-terminate this segment at the first terminating '-'. + + s += (s[2] == '>' ? 3 : 2); // Step over the '\0->'. + } + } + else PUGI__THROW_ERROR(status_bad_comment, s); + } + else if (*s == '[') + { + // 'value = s; // Save the offset. + + if (PUGI__OPTSET(parse_eol)) + { + s = strconv_cdata(s, endch); + + if (!s) PUGI__THROW_ERROR(status_bad_cdata, cursor->value); + } + else + { + // Scan for terminating ']]>'. + PUGI__SCANFOR(s[0] == ']' && s[1] == ']' && PUGI__ENDSWITH(s[2], '>')); + PUGI__CHECK_ERROR(status_bad_cdata, s); + + *s++ = 0; // Zero-terminate this segment. + } + } + else // Flagged for discard, but we still have to scan for the terminator. + { + // Scan for terminating ']]>'. + PUGI__SCANFOR(s[0] == ']' && s[1] == ']' && PUGI__ENDSWITH(s[2], '>')); + PUGI__CHECK_ERROR(status_bad_cdata, s); + + ++s; + } + + s += (s[1] == '>' ? 2 : 1); // Step over the last ']>'. + } + else PUGI__THROW_ERROR(status_bad_cdata, s); + } + else if (s[0] == 'D' && s[1] == 'O' && s[2] == 'C' && s[3] == 'T' && s[4] == 'Y' && s[5] == 'P' && PUGI__ENDSWITH(s[6], 'E')) + { + s -= 2; + + if (cursor->parent) PUGI__THROW_ERROR(status_bad_doctype, s); + + char_t* mark = s + 9; + + s = parse_doctype_group(s, endch); + if (!s) return s; + + assert((*s == 0 && endch == '>') || *s == '>'); + if (*s) *s++ = 0; + + if (PUGI__OPTSET(parse_doctype)) + { + while (PUGI__IS_CHARTYPE(*mark, ct_space)) ++mark; + + PUGI__PUSHNODE(node_doctype); + + cursor->value = mark; + } + } + else if (*s == 0 && endch == '-') PUGI__THROW_ERROR(status_bad_comment, s); + else if (*s == 0 && endch == '[') PUGI__THROW_ERROR(status_bad_cdata, s); + else PUGI__THROW_ERROR(status_unrecognized_tag, s); + + return s; + } + + char_t* parse_question(char_t* s, xml_node_struct*& ref_cursor, unsigned int optmsk, char_t endch) + { + // load into registers + xml_node_struct* cursor = ref_cursor; + char_t ch = 0; + + // parse node contents, starting with question mark + ++s; + + // read PI target + char_t* target = s; + + if (!PUGI__IS_CHARTYPE(*s, ct_start_symbol)) PUGI__THROW_ERROR(status_bad_pi, s); + + PUGI__SCANWHILE(PUGI__IS_CHARTYPE(*s, ct_symbol)); + PUGI__CHECK_ERROR(status_bad_pi, s); + + // determine node type; stricmp / strcasecmp is not portable + bool declaration = (target[0] | ' ') == 'x' && (target[1] | ' ') == 'm' && (target[2] | ' ') == 'l' && target + 3 == s; + + if (declaration ? PUGI__OPTSET(parse_declaration) : PUGI__OPTSET(parse_pi)) + { + if (declaration) + { + // disallow non top-level declarations + if (cursor->parent) PUGI__THROW_ERROR(status_bad_pi, s); + + PUGI__PUSHNODE(node_declaration); + } + else + { + PUGI__PUSHNODE(node_pi); + } + + cursor->name = target; + + PUGI__ENDSEG(); + + // parse value/attributes + if (ch == '?') + { + // empty node + if (!PUGI__ENDSWITH(*s, '>')) PUGI__THROW_ERROR(status_bad_pi, s); + s += (*s == '>'); + + PUGI__POPNODE(); + } + else if (PUGI__IS_CHARTYPE(ch, ct_space)) + { + PUGI__SKIPWS(); + + // scan for tag end + char_t* value = s; + + PUGI__SCANFOR(s[0] == '?' && PUGI__ENDSWITH(s[1], '>')); + PUGI__CHECK_ERROR(status_bad_pi, s); + + if (declaration) + { + // replace ending ? with / so that 'element' terminates properly + *s = '/'; + + // we exit from this function with cursor at node_declaration, which is a signal to parse() to go to LOC_ATTRIBUTES + s = value; + } + else + { + // store value and step over > + cursor->value = value; + PUGI__POPNODE(); + + PUGI__ENDSEG(); + + s += (*s == '>'); + } + } + else PUGI__THROW_ERROR(status_bad_pi, s); + } + else + { + // scan for tag end + PUGI__SCANFOR(s[0] == '?' && PUGI__ENDSWITH(s[1], '>')); + PUGI__CHECK_ERROR(status_bad_pi, s); + + s += (s[1] == '>' ? 2 : 1); + } + + // store from registers + ref_cursor = cursor; + + return s; + } + + char_t* parse_tree(char_t* s, xml_node_struct* root, unsigned int optmsk, char_t endch) + { + strconv_attribute_t strconv_attribute = get_strconv_attribute(optmsk); + strconv_pcdata_t strconv_pcdata = get_strconv_pcdata(optmsk); + + char_t ch = 0; + xml_node_struct* cursor = root; + char_t* mark = s; + + while (*s != 0) + { + if (*s == '<') + { + ++s; + + LOC_TAG: + if (PUGI__IS_CHARTYPE(*s, ct_start_symbol)) // '<#...' + { + PUGI__PUSHNODE(node_element); // Append a new node to the tree. + + cursor->name = s; + + PUGI__SCANWHILE_UNROLL(PUGI__IS_CHARTYPE(ss, ct_symbol)); // Scan for a terminator. + PUGI__ENDSEG(); // Save char in 'ch', terminate & step over. + + if (ch == '>') + { + // end of tag + } + else if (PUGI__IS_CHARTYPE(ch, ct_space)) + { + LOC_ATTRIBUTES: + while (true) + { + PUGI__SKIPWS(); // Eat any whitespace. + + if (PUGI__IS_CHARTYPE(*s, ct_start_symbol)) // <... #... + { + xml_attribute_struct* a = append_new_attribute(cursor, alloc); // Make space for this attribute. + if (!a) PUGI__THROW_ERROR(status_out_of_memory, s); + + a->name = s; // Save the offset. + + PUGI__SCANWHILE_UNROLL(PUGI__IS_CHARTYPE(ss, ct_symbol)); // Scan for a terminator. + PUGI__ENDSEG(); // Save char in 'ch', terminate & step over. + + if (PUGI__IS_CHARTYPE(ch, ct_space)) + { + PUGI__SKIPWS(); // Eat any whitespace. + + ch = *s; + ++s; + } + + if (ch == '=') // '<... #=...' + { + PUGI__SKIPWS(); // Eat any whitespace. + + if (*s == '"' || *s == '\'') // '<... #="...' + { + ch = *s; // Save quote char to avoid breaking on "''" -or- '""'. + ++s; // Step over the quote. + a->value = s; // Save the offset. + + s = strconv_attribute(s, ch); + + if (!s) PUGI__THROW_ERROR(status_bad_attribute, a->value); + + // After this line the loop continues from the start; + // Whitespaces, / and > are ok, symbols and EOF are wrong, + // everything else will be detected + if (PUGI__IS_CHARTYPE(*s, ct_start_symbol)) PUGI__THROW_ERROR(status_bad_attribute, s); + } + else PUGI__THROW_ERROR(status_bad_attribute, s); + } + else PUGI__THROW_ERROR(status_bad_attribute, s); + } + else if (*s == '/') + { + ++s; + + if (*s == '>') + { + PUGI__POPNODE(); + s++; + break; + } + else if (*s == 0 && endch == '>') + { + PUGI__POPNODE(); + break; + } + else PUGI__THROW_ERROR(status_bad_start_element, s); + } + else if (*s == '>') + { + ++s; + + break; + } + else if (*s == 0 && endch == '>') + { + break; + } + else PUGI__THROW_ERROR(status_bad_start_element, s); + } + + // !!! + } + else if (ch == '/') // '<#.../' + { + if (!PUGI__ENDSWITH(*s, '>')) PUGI__THROW_ERROR(status_bad_start_element, s); + + PUGI__POPNODE(); // Pop. + + s += (*s == '>'); + } + else if (ch == 0) + { + // we stepped over null terminator, backtrack & handle closing tag + --s; + + if (endch != '>') PUGI__THROW_ERROR(status_bad_start_element, s); + } + else PUGI__THROW_ERROR(status_bad_start_element, s); + } + else if (*s == '/') + { + ++s; + + char_t* name = cursor->name; + if (!name) PUGI__THROW_ERROR(status_end_element_mismatch, s); + + while (PUGI__IS_CHARTYPE(*s, ct_symbol)) + { + if (*s++ != *name++) PUGI__THROW_ERROR(status_end_element_mismatch, s); + } + + if (*name) + { + if (*s == 0 && name[0] == endch && name[1] == 0) PUGI__THROW_ERROR(status_bad_end_element, s); + else PUGI__THROW_ERROR(status_end_element_mismatch, s); + } + + PUGI__POPNODE(); // Pop. + + PUGI__SKIPWS(); + + if (*s == 0) + { + if (endch != '>') PUGI__THROW_ERROR(status_bad_end_element, s); + } + else + { + if (*s != '>') PUGI__THROW_ERROR(status_bad_end_element, s); + ++s; + } + } + else if (*s == '?') // 'first_child) continue; + } + } + + if (!PUGI__OPTSET(parse_trim_pcdata)) + s = mark; + + if (cursor->parent || PUGI__OPTSET(parse_fragment)) + { + PUGI__PUSHNODE(node_pcdata); // Append a new node on the tree. + cursor->value = s; // Save the offset. + + s = strconv_pcdata(s); + + PUGI__POPNODE(); // Pop since this is a standalone. + + if (!*s) break; + } + else + { + PUGI__SCANFOR(*s == '<'); // '...<' + if (!*s) break; + + ++s; + } + + // We're after '<' + goto LOC_TAG; + } + } + + // check that last tag is closed + if (cursor != root) PUGI__THROW_ERROR(status_end_element_mismatch, s); + + return s; + } + + #ifdef PUGIXML_WCHAR_MODE + static char_t* parse_skip_bom(char_t* s) + { + unsigned int bom = 0xfeff; + return (s[0] == static_cast(bom)) ? s + 1 : s; + } + #else + static char_t* parse_skip_bom(char_t* s) + { + return (s[0] == '\xef' && s[1] == '\xbb' && s[2] == '\xbf') ? s + 3 : s; + } + #endif + + static bool has_element_node_siblings(xml_node_struct* node) + { + while (node) + { + if (PUGI__NODETYPE(node) == node_element) return true; + + node = node->next_sibling; + } + + return false; + } + + static xml_parse_result parse(char_t* buffer, size_t length, xml_document_struct* xmldoc, xml_node_struct* root, unsigned int optmsk) + { + // allocator object is a part of document object + xml_allocator& alloc_ = *static_cast(xmldoc); + + // early-out for empty documents + if (length == 0) + return make_parse_result(PUGI__OPTSET(parse_fragment) ? status_ok : status_no_document_element); + + // get last child of the root before parsing + xml_node_struct* last_root_child = root->first_child ? root->first_child->prev_sibling_c : 0; + + // create parser on stack + xml_parser parser(alloc_); + + // save last character and make buffer zero-terminated (speeds up parsing) + char_t endch = buffer[length - 1]; + buffer[length - 1] = 0; + + // skip BOM to make sure it does not end up as part of parse output + char_t* buffer_data = parse_skip_bom(buffer); + + // perform actual parsing + parser.parse_tree(buffer_data, root, optmsk, endch); + + // update allocator state + alloc_ = parser.alloc; + + xml_parse_result result = make_parse_result(parser.error_status, parser.error_offset ? parser.error_offset - buffer : 0); + assert(result.offset >= 0 && static_cast(result.offset) <= length); + + if (result) + { + // since we removed last character, we have to handle the only possible false positive (stray <) + if (endch == '<') + return make_parse_result(status_unrecognized_tag, length - 1); + + // check if there are any element nodes parsed + xml_node_struct* first_root_child_parsed = last_root_child ? last_root_child->next_sibling : root->first_child; + + if (!PUGI__OPTSET(parse_fragment) && !has_element_node_siblings(first_root_child_parsed)) + return make_parse_result(status_no_document_element, length - 1); + } + else + { + // roll back offset if it occurs on a null terminator in the source buffer + if (result.offset > 0 && static_cast(result.offset) == length - 1 && endch == 0) + result.offset--; + } + + return result; + } + }; + + // Output facilities + PUGI__FN xml_encoding get_write_native_encoding() + { + #ifdef PUGIXML_WCHAR_MODE + return get_wchar_encoding(); + #else + return encoding_utf8; + #endif + } + + PUGI__FN xml_encoding get_write_encoding(xml_encoding encoding) + { + // replace wchar encoding with utf implementation + if (encoding == encoding_wchar) return get_wchar_encoding(); + + // replace utf16 encoding with utf16 with specific endianness + if (encoding == encoding_utf16) return is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + + // replace utf32 encoding with utf32 with specific endianness + if (encoding == encoding_utf32) return is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + + // only do autodetection if no explicit encoding is requested + if (encoding != encoding_auto) return encoding; + + // assume utf8 encoding + return encoding_utf8; + } + +#ifdef PUGIXML_WCHAR_MODE + PUGI__FN size_t get_valid_length(const char_t* data, size_t length) + { + if (length < 1) return 0; + + // discard last character if it's the lead of a surrogate pair + return (sizeof(wchar_t) == 2 && static_cast(static_cast(data[length - 1]) - 0xD800) < 0x400) ? length - 1 : length; + } + + PUGI__FN size_t convert_buffer_output(char_t* r_char, uint8_t* r_u8, uint16_t* r_u16, uint32_t* r_u32, const char_t* data, size_t length, xml_encoding encoding) + { + // only endian-swapping is required + if (need_endian_swap_utf(encoding, get_wchar_encoding())) + { + convert_wchar_endian_swap(r_char, data, length); + + return length * sizeof(char_t); + } + + // convert to utf8 + if (encoding == encoding_utf8) + { + uint8_t* dest = r_u8; + uint8_t* end = utf_decoder::decode_wchar_block(data, length, dest); + + return static_cast(end - dest); + } + + // convert to utf16 + if (encoding == encoding_utf16_be || encoding == encoding_utf16_le) + { + uint16_t* dest = r_u16; + + // convert to native utf16 + uint16_t* end = utf_decoder::decode_wchar_block(data, length, dest); + + // swap if necessary + xml_encoding native_encoding = is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + + if (native_encoding != encoding) convert_utf_endian_swap(dest, dest, static_cast(end - dest)); + + return static_cast(end - dest) * sizeof(uint16_t); + } + + // convert to utf32 + if (encoding == encoding_utf32_be || encoding == encoding_utf32_le) + { + uint32_t* dest = r_u32; + + // convert to native utf32 + uint32_t* end = utf_decoder::decode_wchar_block(data, length, dest); + + // swap if necessary + xml_encoding native_encoding = is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + + if (native_encoding != encoding) convert_utf_endian_swap(dest, dest, static_cast(end - dest)); + + return static_cast(end - dest) * sizeof(uint32_t); + } + + // convert to latin1 + if (encoding == encoding_latin1) + { + uint8_t* dest = r_u8; + uint8_t* end = utf_decoder::decode_wchar_block(data, length, dest); + + return static_cast(end - dest); + } + + assert(!"Invalid encoding"); + return 0; + } +#else + PUGI__FN size_t get_valid_length(const char_t* data, size_t length) + { + if (length < 5) return 0; + + for (size_t i = 1; i <= 4; ++i) + { + uint8_t ch = static_cast(data[length - i]); + + // either a standalone character or a leading one + if ((ch & 0xc0) != 0x80) return length - i; + } + + // there are four non-leading characters at the end, sequence tail is broken so might as well process the whole chunk + return length; + } + + PUGI__FN size_t convert_buffer_output(char_t* /* r_char */, uint8_t* r_u8, uint16_t* r_u16, uint32_t* r_u32, const char_t* data, size_t length, xml_encoding encoding) + { + if (encoding == encoding_utf16_be || encoding == encoding_utf16_le) + { + uint16_t* dest = r_u16; + + // convert to native utf16 + uint16_t* end = utf_decoder::decode_utf8_block(reinterpret_cast(data), length, dest); + + // swap if necessary + xml_encoding native_encoding = is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + + if (native_encoding != encoding) convert_utf_endian_swap(dest, dest, static_cast(end - dest)); + + return static_cast(end - dest) * sizeof(uint16_t); + } + + if (encoding == encoding_utf32_be || encoding == encoding_utf32_le) + { + uint32_t* dest = r_u32; + + // convert to native utf32 + uint32_t* end = utf_decoder::decode_utf8_block(reinterpret_cast(data), length, dest); + + // swap if necessary + xml_encoding native_encoding = is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + + if (native_encoding != encoding) convert_utf_endian_swap(dest, dest, static_cast(end - dest)); + + return static_cast(end - dest) * sizeof(uint32_t); + } + + if (encoding == encoding_latin1) + { + uint8_t* dest = r_u8; + uint8_t* end = utf_decoder::decode_utf8_block(reinterpret_cast(data), length, dest); + + return static_cast(end - dest); + } + + assert(!"Invalid encoding"); + return 0; + } +#endif + + class xml_buffered_writer + { + xml_buffered_writer(const xml_buffered_writer&); + xml_buffered_writer& operator=(const xml_buffered_writer&); + + public: + xml_buffered_writer(xml_writer& writer_, xml_encoding user_encoding): writer(writer_), bufsize(0), encoding(get_write_encoding(user_encoding)) + { + PUGI__STATIC_ASSERT(bufcapacity >= 8); + } + + ~xml_buffered_writer() + { + flush(); + } + + size_t flush() + { + flush(buffer, bufsize); + bufsize = 0; + return 0; + } + + void flush(const char_t* data, size_t size) + { + if (size == 0) return; + + // fast path, just write data + if (encoding == get_write_native_encoding()) + writer.write(data, size * sizeof(char_t)); + else + { + // convert chunk + size_t result = convert_buffer_output(scratch.data_char, scratch.data_u8, scratch.data_u16, scratch.data_u32, data, size, encoding); + assert(result <= sizeof(scratch)); + + // write data + writer.write(scratch.data_u8, result); + } + } + + void write_direct(const char_t* data, size_t length) + { + // flush the remaining buffer contents + flush(); + + // handle large chunks + if (length > bufcapacity) + { + if (encoding == get_write_native_encoding()) + { + // fast path, can just write data chunk + writer.write(data, length * sizeof(char_t)); + return; + } + + // need to convert in suitable chunks + while (length > bufcapacity) + { + // get chunk size by selecting such number of characters that are guaranteed to fit into scratch buffer + // and form a complete codepoint sequence (i.e. discard start of last codepoint if necessary) + size_t chunk_size = get_valid_length(data, bufcapacity); + assert(chunk_size); + + // convert chunk and write + flush(data, chunk_size); + + // iterate + data += chunk_size; + length -= chunk_size; + } + + // small tail is copied below + bufsize = 0; + } + + memcpy(buffer + bufsize, data, length * sizeof(char_t)); + bufsize += length; + } + + void write_buffer(const char_t* data, size_t length) + { + size_t offset = bufsize; + + if (offset + length <= bufcapacity) + { + memcpy(buffer + offset, data, length * sizeof(char_t)); + bufsize = offset + length; + } + else + { + write_direct(data, length); + } + } + + void write_string(const char_t* data) + { + // write the part of the string that fits in the buffer + size_t offset = bufsize; + + while (*data && offset < bufcapacity) + buffer[offset++] = *data++; + + // write the rest + if (offset < bufcapacity) + { + bufsize = offset; + } + else + { + // backtrack a bit if we have split the codepoint + size_t length = offset - bufsize; + size_t extra = length - get_valid_length(data - length, length); + + bufsize = offset - extra; + + write_direct(data - extra, strlength(data) + extra); + } + } + + void write(char_t d0) + { + size_t offset = bufsize; + if (offset > bufcapacity - 1) offset = flush(); + + buffer[offset + 0] = d0; + bufsize = offset + 1; + } + + void write(char_t d0, char_t d1) + { + size_t offset = bufsize; + if (offset > bufcapacity - 2) offset = flush(); + + buffer[offset + 0] = d0; + buffer[offset + 1] = d1; + bufsize = offset + 2; + } + + void write(char_t d0, char_t d1, char_t d2) + { + size_t offset = bufsize; + if (offset > bufcapacity - 3) offset = flush(); + + buffer[offset + 0] = d0; + buffer[offset + 1] = d1; + buffer[offset + 2] = d2; + bufsize = offset + 3; + } + + void write(char_t d0, char_t d1, char_t d2, char_t d3) + { + size_t offset = bufsize; + if (offset > bufcapacity - 4) offset = flush(); + + buffer[offset + 0] = d0; + buffer[offset + 1] = d1; + buffer[offset + 2] = d2; + buffer[offset + 3] = d3; + bufsize = offset + 4; + } + + void write(char_t d0, char_t d1, char_t d2, char_t d3, char_t d4) + { + size_t offset = bufsize; + if (offset > bufcapacity - 5) offset = flush(); + + buffer[offset + 0] = d0; + buffer[offset + 1] = d1; + buffer[offset + 2] = d2; + buffer[offset + 3] = d3; + buffer[offset + 4] = d4; + bufsize = offset + 5; + } + + void write(char_t d0, char_t d1, char_t d2, char_t d3, char_t d4, char_t d5) + { + size_t offset = bufsize; + if (offset > bufcapacity - 6) offset = flush(); + + buffer[offset + 0] = d0; + buffer[offset + 1] = d1; + buffer[offset + 2] = d2; + buffer[offset + 3] = d3; + buffer[offset + 4] = d4; + buffer[offset + 5] = d5; + bufsize = offset + 6; + } + + // utf8 maximum expansion: x4 (-> utf32) + // utf16 maximum expansion: x2 (-> utf32) + // utf32 maximum expansion: x1 + enum + { + bufcapacitybytes = + #ifdef PUGIXML_MEMORY_OUTPUT_STACK + PUGIXML_MEMORY_OUTPUT_STACK + #else + 10240 + #endif + , + bufcapacity = bufcapacitybytes / (sizeof(char_t) + 4) + }; + + char_t buffer[bufcapacity]; + + union + { + uint8_t data_u8[4 * bufcapacity]; + uint16_t data_u16[2 * bufcapacity]; + uint32_t data_u32[bufcapacity]; + char_t data_char[bufcapacity]; + } scratch; + + xml_writer& writer; + size_t bufsize; + xml_encoding encoding; + }; + + PUGI__FN void text_output_escaped(xml_buffered_writer& writer, const char_t* s, chartypex_t type) + { + while (*s) + { + const char_t* prev = s; + + // While *s is a usual symbol + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPEX(ss, type)); + + writer.write_buffer(prev, static_cast(s - prev)); + + switch (*s) + { + case 0: break; + case '&': + writer.write('&', 'a', 'm', 'p', ';'); + ++s; + break; + case '<': + writer.write('&', 'l', 't', ';'); + ++s; + break; + case '>': + writer.write('&', 'g', 't', ';'); + ++s; + break; + case '"': + writer.write('&', 'q', 'u', 'o', 't', ';'); + ++s; + break; + default: // s is not a usual symbol + { + unsigned int ch = static_cast(*s++); + assert(ch < 32); + + writer.write('&', '#', static_cast((ch / 10) + '0'), static_cast((ch % 10) + '0'), ';'); + } + } + } + } + + PUGI__FN void text_output(xml_buffered_writer& writer, const char_t* s, chartypex_t type, unsigned int flags) + { + if (flags & format_no_escapes) + writer.write_string(s); + else + text_output_escaped(writer, s, type); + } + + PUGI__FN void text_output_cdata(xml_buffered_writer& writer, const char_t* s) + { + do + { + writer.write('<', '!', '[', 'C', 'D'); + writer.write('A', 'T', 'A', '['); + + const char_t* prev = s; + + // look for ]]> sequence - we can't output it as is since it terminates CDATA + while (*s && !(s[0] == ']' && s[1] == ']' && s[2] == '>')) ++s; + + // skip ]] if we stopped at ]]>, > will go to the next CDATA section + if (*s) s += 2; + + writer.write_buffer(prev, static_cast(s - prev)); + + writer.write(']', ']', '>'); + } + while (*s); + } + + PUGI__FN void text_output_indent(xml_buffered_writer& writer, const char_t* indent, size_t indent_length, unsigned int depth) + { + switch (indent_length) + { + case 1: + { + for (unsigned int i = 0; i < depth; ++i) + writer.write(indent[0]); + break; + } + + case 2: + { + for (unsigned int i = 0; i < depth; ++i) + writer.write(indent[0], indent[1]); + break; + } + + case 3: + { + for (unsigned int i = 0; i < depth; ++i) + writer.write(indent[0], indent[1], indent[2]); + break; + } + + case 4: + { + for (unsigned int i = 0; i < depth; ++i) + writer.write(indent[0], indent[1], indent[2], indent[3]); + break; + } + + default: + { + for (unsigned int i = 0; i < depth; ++i) + writer.write_buffer(indent, indent_length); + } + } + } + + PUGI__FN void node_output_comment(xml_buffered_writer& writer, const char_t* s) + { + writer.write('<', '!', '-', '-'); + + while (*s) + { + const char_t* prev = s; + + // look for -\0 or -- sequence - we can't output it since -- is illegal in comment body + while (*s && !(s[0] == '-' && (s[1] == '-' || s[1] == 0))) ++s; + + writer.write_buffer(prev, static_cast(s - prev)); + + if (*s) + { + assert(*s == '-'); + + writer.write('-', ' '); + ++s; + } + } + + writer.write('-', '-', '>'); + } + + PUGI__FN void node_output_pi_value(xml_buffered_writer& writer, const char_t* s) + { + while (*s) + { + const char_t* prev = s; + + // look for ?> sequence - we can't output it since ?> terminates PI + while (*s && !(s[0] == '?' && s[1] == '>')) ++s; + + writer.write_buffer(prev, static_cast(s - prev)); + + if (*s) + { + assert(s[0] == '?' && s[1] == '>'); + + writer.write('?', ' ', '>'); + s += 2; + } + } + } + + PUGI__FN void node_output_attributes(xml_buffered_writer& writer, xml_node_struct* node, unsigned int flags) + { + const char_t* default_name = PUGIXML_TEXT(":anonymous"); + + for (xml_attribute_struct* a = node->first_attribute; a; a = a->next_attribute) + { + writer.write(' '); + writer.write_string(a->name ? a->name : default_name); + writer.write('=', '"'); + + if (a->value) + text_output(writer, a->value, ctx_special_attr, flags); + + writer.write('"'); + } + } + + PUGI__FN bool node_output_start(xml_buffered_writer& writer, xml_node_struct* node, unsigned int flags) + { + const char_t* default_name = PUGIXML_TEXT(":anonymous"); + const char_t* name = node->name ? node->name : default_name; + + writer.write('<'); + writer.write_string(name); + + if (node->first_attribute) + node_output_attributes(writer, node, flags); + + if (!node->first_child) + { + writer.write(' ', '/', '>'); + + return false; + } + else + { + writer.write('>'); + + return true; + } + } + + PUGI__FN void node_output_end(xml_buffered_writer& writer, xml_node_struct* node) + { + const char_t* default_name = PUGIXML_TEXT(":anonymous"); + const char_t* name = node->name ? node->name : default_name; + + writer.write('<', '/'); + writer.write_string(name); + writer.write('>'); + } + + PUGI__FN void node_output_simple(xml_buffered_writer& writer, xml_node_struct* node, unsigned int flags) + { + const char_t* default_name = PUGIXML_TEXT(":anonymous"); + + switch (PUGI__NODETYPE(node)) + { + case node_pcdata: + text_output(writer, node->value ? node->value : PUGIXML_TEXT(""), ctx_special_pcdata, flags); + break; + + case node_cdata: + text_output_cdata(writer, node->value ? node->value : PUGIXML_TEXT("")); + break; + + case node_comment: + node_output_comment(writer, node->value ? node->value : PUGIXML_TEXT("")); + break; + + case node_pi: + writer.write('<', '?'); + writer.write_string(node->name ? node->name : default_name); + + if (node->value) + { + writer.write(' '); + node_output_pi_value(writer, node->value); + } + + writer.write('?', '>'); + break; + + case node_declaration: + writer.write('<', '?'); + writer.write_string(node->name ? node->name : default_name); + node_output_attributes(writer, node, flags); + writer.write('?', '>'); + break; + + case node_doctype: + writer.write('<', '!', 'D', 'O', 'C'); + writer.write('T', 'Y', 'P', 'E'); + + if (node->value) + { + writer.write(' '); + writer.write_string(node->value); + } + + writer.write('>'); + break; + + default: + assert(!"Invalid node type"); + } + } + + enum indent_flags_t + { + indent_newline = 1, + indent_indent = 2 + }; + + PUGI__FN void node_output(xml_buffered_writer& writer, xml_node_struct* root, const char_t* indent, unsigned int flags, unsigned int depth) + { + size_t indent_length = ((flags & (format_indent | format_raw)) == format_indent) ? strlength(indent) : 0; + unsigned int indent_flags = indent_indent; + + xml_node_struct* node = root; + + do + { + assert(node); + + // begin writing current node + if (PUGI__NODETYPE(node) == node_pcdata || PUGI__NODETYPE(node) == node_cdata) + { + node_output_simple(writer, node, flags); + + indent_flags = 0; + } + else + { + if ((indent_flags & indent_newline) && (flags & format_raw) == 0) + writer.write('\n'); + + if ((indent_flags & indent_indent) && indent_length) + text_output_indent(writer, indent, indent_length, depth); + + if (PUGI__NODETYPE(node) == node_element) + { + indent_flags = indent_newline | indent_indent; + + if (node_output_start(writer, node, flags)) + { + node = node->first_child; + depth++; + continue; + } + } + else if (PUGI__NODETYPE(node) == node_document) + { + indent_flags = indent_indent; + + if (node->first_child) + { + node = node->first_child; + continue; + } + } + else + { + node_output_simple(writer, node, flags); + + indent_flags = indent_newline | indent_indent; + } + } + + // continue to the next node + while (node != root) + { + if (node->next_sibling) + { + node = node->next_sibling; + break; + } + + node = node->parent; + + // write closing node + if (PUGI__NODETYPE(node) == node_element) + { + depth--; + + if ((indent_flags & indent_newline) && (flags & format_raw) == 0) + writer.write('\n'); + + if ((indent_flags & indent_indent) && indent_length) + text_output_indent(writer, indent, indent_length, depth); + + node_output_end(writer, node); + + indent_flags = indent_newline | indent_indent; + } + } + } + while (node != root); + + if ((indent_flags & indent_newline) && (flags & format_raw) == 0) + writer.write('\n'); + } + + PUGI__FN bool has_declaration(xml_node_struct* node) + { + for (xml_node_struct* child = node->first_child; child; child = child->next_sibling) + { + xml_node_type type = PUGI__NODETYPE(child); + + if (type == node_declaration) return true; + if (type == node_element) return false; + } + + return false; + } + + PUGI__FN bool is_attribute_of(xml_attribute_struct* attr, xml_node_struct* node) + { + for (xml_attribute_struct* a = node->first_attribute; a; a = a->next_attribute) + if (a == attr) + return true; + + return false; + } + + PUGI__FN bool allow_insert_attribute(xml_node_type parent) + { + return parent == node_element || parent == node_declaration; + } + + PUGI__FN bool allow_insert_child(xml_node_type parent, xml_node_type child) + { + if (parent != node_document && parent != node_element) return false; + if (child == node_document || child == node_null) return false; + if (parent != node_document && (child == node_declaration || child == node_doctype)) return false; + + return true; + } + + PUGI__FN bool allow_move(xml_node parent, xml_node child) + { + // check that child can be a child of parent + if (!allow_insert_child(parent.type(), child.type())) + return false; + + // check that node is not moved between documents + if (parent.root() != child.root()) + return false; + + // check that new parent is not in the child subtree + xml_node cur = parent; + + while (cur) + { + if (cur == child) + return false; + + cur = cur.parent(); + } + + return true; + } + + PUGI__FN void node_copy_string(char_t*& dest, uintptr_t& header, uintptr_t header_mask, char_t* source, uintptr_t& source_header, xml_allocator* alloc) + { + assert(!dest && (header & header_mask) == 0); + + if (source) + { + if (alloc && (source_header & header_mask) == 0) + { + dest = source; + + // since strcpy_insitu can reuse document buffer memory we need to mark both source and dest as shared + header |= xml_memory_page_contents_shared_mask; + source_header |= xml_memory_page_contents_shared_mask; + } + else + strcpy_insitu(dest, header, header_mask, source); + } + } + + PUGI__FN void node_copy_contents(xml_node_struct* dn, xml_node_struct* sn, xml_allocator* shared_alloc) + { + node_copy_string(dn->name, dn->header, xml_memory_page_name_allocated_mask, sn->name, sn->header, shared_alloc); + node_copy_string(dn->value, dn->header, xml_memory_page_value_allocated_mask, sn->value, sn->header, shared_alloc); + + for (xml_attribute_struct* sa = sn->first_attribute; sa; sa = sa->next_attribute) + { + xml_attribute_struct* da = append_new_attribute(dn, get_allocator(dn)); + + if (da) + { + node_copy_string(da->name, da->header, xml_memory_page_name_allocated_mask, sa->name, sa->header, shared_alloc); + node_copy_string(da->value, da->header, xml_memory_page_value_allocated_mask, sa->value, sa->header, shared_alloc); + } + } + } + + PUGI__FN void node_copy_tree(xml_node_struct* dn, xml_node_struct* sn) + { + xml_allocator& alloc = get_allocator(dn); + xml_allocator* shared_alloc = (&alloc == &get_allocator(sn)) ? &alloc : 0; + + node_copy_contents(dn, sn, shared_alloc); + + xml_node_struct* dit = dn; + xml_node_struct* sit = sn->first_child; + + while (sit && sit != sn) + { + if (sit != dn) + { + xml_node_struct* copy = append_new_node(dit, alloc, PUGI__NODETYPE(sit)); + + if (copy) + { + node_copy_contents(copy, sit, shared_alloc); + + if (sit->first_child) + { + dit = copy; + sit = sit->first_child; + continue; + } + } + } + + // continue to the next node + do + { + if (sit->next_sibling) + { + sit = sit->next_sibling; + break; + } + + sit = sit->parent; + dit = dit->parent; + } + while (sit != sn); + } + } + + inline bool is_text_node(xml_node_struct* node) + { + xml_node_type type = PUGI__NODETYPE(node); + + return type == node_pcdata || type == node_cdata; + } + + // get value with conversion functions + PUGI__FN int get_integer_base(const char_t* value) + { + const char_t* s = value; + + while (PUGI__IS_CHARTYPE(*s, ct_space)) + s++; + + if (*s == '-') + s++; + + return (s[0] == '0' && (s[1] == 'x' || s[1] == 'X')) ? 16 : 10; + } + + PUGI__FN int get_value_int(const char_t* value, int def) + { + if (!value) return def; + + int base = get_integer_base(value); + + #ifdef PUGIXML_WCHAR_MODE + return static_cast(wcstol(value, 0, base)); + #else + return static_cast(strtol(value, 0, base)); + #endif + } + + PUGI__FN unsigned int get_value_uint(const char_t* value, unsigned int def) + { + if (!value) return def; + + int base = get_integer_base(value); + + #ifdef PUGIXML_WCHAR_MODE + return static_cast(wcstoul(value, 0, base)); + #else + return static_cast(strtoul(value, 0, base)); + #endif + } + + PUGI__FN double get_value_double(const char_t* value, double def) + { + if (!value) return def; + + #ifdef PUGIXML_WCHAR_MODE + return wcstod(value, 0); + #else + return strtod(value, 0); + #endif + } + + PUGI__FN float get_value_float(const char_t* value, float def) + { + if (!value) return def; + + #ifdef PUGIXML_WCHAR_MODE + return static_cast(wcstod(value, 0)); + #else + return static_cast(strtod(value, 0)); + #endif + } + + PUGI__FN bool get_value_bool(const char_t* value, bool def) + { + if (!value) return def; + + // only look at first char + char_t first = *value; + + // 1*, t* (true), T* (True), y* (yes), Y* (YES) + return (first == '1' || first == 't' || first == 'T' || first == 'y' || first == 'Y'); + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN long long get_value_llong(const char_t* value, long long def) + { + if (!value) return def; + + int base = get_integer_base(value); + + #ifdef PUGIXML_WCHAR_MODE + #ifdef PUGI__MSVC_CRT_VERSION + return _wcstoi64(value, 0, base); + #else + return wcstoll(value, 0, base); + #endif + #else + #ifdef PUGI__MSVC_CRT_VERSION + return _strtoi64(value, 0, base); + #else + return strtoll(value, 0, base); + #endif + #endif + } + + PUGI__FN unsigned long long get_value_ullong(const char_t* value, unsigned long long def) + { + if (!value) return def; + + int base = get_integer_base(value); + + #ifdef PUGIXML_WCHAR_MODE + #ifdef PUGI__MSVC_CRT_VERSION + return _wcstoui64(value, 0, base); + #else + return wcstoull(value, 0, base); + #endif + #else + #ifdef PUGI__MSVC_CRT_VERSION + return _strtoui64(value, 0, base); + #else + return strtoull(value, 0, base); + #endif + #endif + } +#endif + + // set value with conversion functions + PUGI__FN bool set_value_buffer(char_t*& dest, uintptr_t& header, uintptr_t header_mask, char (&buf)[128]) + { + #ifdef PUGIXML_WCHAR_MODE + char_t wbuf[128]; + impl::widen_ascii(wbuf, buf); + + return strcpy_insitu(dest, header, header_mask, wbuf); + #else + return strcpy_insitu(dest, header, header_mask, buf); + #endif + } + + PUGI__FN bool set_value_convert(char_t*& dest, uintptr_t& header, uintptr_t header_mask, int value) + { + char buf[128]; + sprintf(buf, "%d", value); + + return set_value_buffer(dest, header, header_mask, buf); + } + + PUGI__FN bool set_value_convert(char_t*& dest, uintptr_t& header, uintptr_t header_mask, unsigned int value) + { + char buf[128]; + sprintf(buf, "%u", value); + + return set_value_buffer(dest, header, header_mask, buf); + } + + PUGI__FN bool set_value_convert(char_t*& dest, uintptr_t& header, uintptr_t header_mask, float value) + { + char buf[128]; + sprintf(buf, "%.9g", value); + + return set_value_buffer(dest, header, header_mask, buf); + } + + PUGI__FN bool set_value_convert(char_t*& dest, uintptr_t& header, uintptr_t header_mask, double value) + { + char buf[128]; + sprintf(buf, "%.17g", value); + + return set_value_buffer(dest, header, header_mask, buf); + } + + PUGI__FN bool set_value_convert(char_t*& dest, uintptr_t& header, uintptr_t header_mask, bool value) + { + return strcpy_insitu(dest, header, header_mask, value ? PUGIXML_TEXT("true") : PUGIXML_TEXT("false")); + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN bool set_value_convert(char_t*& dest, uintptr_t& header, uintptr_t header_mask, long long value) + { + char buf[128]; + sprintf(buf, "%lld", value); + + return set_value_buffer(dest, header, header_mask, buf); + } + + PUGI__FN bool set_value_convert(char_t*& dest, uintptr_t& header, uintptr_t header_mask, unsigned long long value) + { + char buf[128]; + sprintf(buf, "%llu", value); + + return set_value_buffer(dest, header, header_mask, buf); + } +#endif + + // we need to get length of entire file to load it in memory; the only (relatively) sane way to do it is via seek/tell trick + PUGI__FN xml_parse_status get_file_size(FILE* file, size_t& out_result) + { + #if defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 && !defined(_WIN32_WCE) + // there are 64-bit versions of fseek/ftell, let's use them + typedef __int64 length_type; + + _fseeki64(file, 0, SEEK_END); + length_type length = _ftelli64(file); + _fseeki64(file, 0, SEEK_SET); + #elif defined(__MINGW32__) && !defined(__NO_MINGW_LFS) && (!defined(__STRICT_ANSI__) || defined(__MINGW64_VERSION_MAJOR)) + // there are 64-bit versions of fseek/ftell, let's use them + typedef off64_t length_type; + + fseeko64(file, 0, SEEK_END); + length_type length = ftello64(file); + fseeko64(file, 0, SEEK_SET); + #else + // if this is a 32-bit OS, long is enough; if this is a unix system, long is 64-bit, which is enough; otherwise we can't do anything anyway. + typedef long length_type; + + fseek(file, 0, SEEK_END); + length_type length = ftell(file); + fseek(file, 0, SEEK_SET); + #endif + + // check for I/O errors + if (length < 0) return status_io_error; + + // check for overflow + size_t result = static_cast(length); + + if (static_cast(result) != length) return status_out_of_memory; + + // finalize + out_result = result; + + return status_ok; + } + + PUGI__FN size_t zero_terminate_buffer(void* buffer, size_t size, xml_encoding encoding) + { + // We only need to zero-terminate if encoding conversion does not do it for us + #ifdef PUGIXML_WCHAR_MODE + xml_encoding wchar_encoding = get_wchar_encoding(); + + if (encoding == wchar_encoding || need_endian_swap_utf(encoding, wchar_encoding)) + { + size_t length = size / sizeof(char_t); + + static_cast(buffer)[length] = 0; + return (length + 1) * sizeof(char_t); + } + #else + if (encoding == encoding_utf8) + { + static_cast(buffer)[size] = 0; + return size + 1; + } + #endif + + return size; + } + + PUGI__FN xml_parse_result load_file_impl(xml_document& doc, FILE* file, unsigned int options, xml_encoding encoding) + { + if (!file) return make_parse_result(status_file_not_found); + + // get file size (can result in I/O errors) + size_t size = 0; + xml_parse_status size_status = get_file_size(file, size); + + if (size_status != status_ok) + { + fclose(file); + return make_parse_result(size_status); + } + + size_t max_suffix_size = sizeof(char_t); + + // allocate buffer for the whole file + char* contents = static_cast(xml_memory::allocate(size + max_suffix_size)); + + if (!contents) + { + fclose(file); + return make_parse_result(status_out_of_memory); + } + + // read file in memory + size_t read_size = fread(contents, 1, size, file); + fclose(file); + + if (read_size != size) + { + xml_memory::deallocate(contents); + return make_parse_result(status_io_error); + } + + xml_encoding real_encoding = get_buffer_encoding(encoding, contents, size); + + return doc.load_buffer_inplace_own(contents, zero_terminate_buffer(contents, size, real_encoding), options, real_encoding); + } + +#ifndef PUGIXML_NO_STL + template struct xml_stream_chunk + { + static xml_stream_chunk* create() + { + void* memory = xml_memory::allocate(sizeof(xml_stream_chunk)); + + return new (memory) xml_stream_chunk(); + } + + static void destroy(void* ptr) + { + xml_stream_chunk* chunk = static_cast(ptr); + + // free chunk chain + while (chunk) + { + xml_stream_chunk* next_ = chunk->next; + + xml_memory::deallocate(chunk); + + chunk = next_; + } + } + + xml_stream_chunk(): next(0), size(0) + { + } + + xml_stream_chunk* next; + size_t size; + + T data[xml_memory_page_size / sizeof(T)]; + }; + + template PUGI__FN xml_parse_status load_stream_data_noseek(std::basic_istream& stream, void** out_buffer, size_t* out_size) + { + buffer_holder chunks(0, xml_stream_chunk::destroy); + + // read file to a chunk list + size_t total = 0; + xml_stream_chunk* last = 0; + + while (!stream.eof()) + { + // allocate new chunk + xml_stream_chunk* chunk = xml_stream_chunk::create(); + if (!chunk) return status_out_of_memory; + + // append chunk to list + if (last) last = last->next = chunk; + else chunks.data = last = chunk; + + // read data to chunk + stream.read(chunk->data, static_cast(sizeof(chunk->data) / sizeof(T))); + chunk->size = static_cast(stream.gcount()) * sizeof(T); + + // read may set failbit | eofbit in case gcount() is less than read length, so check for other I/O errors + if (stream.bad() || (!stream.eof() && stream.fail())) return status_io_error; + + // guard against huge files (chunk size is small enough to make this overflow check work) + if (total + chunk->size < total) return status_out_of_memory; + total += chunk->size; + } + + size_t max_suffix_size = sizeof(char_t); + + // copy chunk list to a contiguous buffer + char* buffer = static_cast(xml_memory::allocate(total + max_suffix_size)); + if (!buffer) return status_out_of_memory; + + char* write = buffer; + + for (xml_stream_chunk* chunk = static_cast*>(chunks.data); chunk; chunk = chunk->next) + { + assert(write + chunk->size <= buffer + total); + memcpy(write, chunk->data, chunk->size); + write += chunk->size; + } + + assert(write == buffer + total); + + // return buffer + *out_buffer = buffer; + *out_size = total; + + return status_ok; + } + + template PUGI__FN xml_parse_status load_stream_data_seek(std::basic_istream& stream, void** out_buffer, size_t* out_size) + { + // get length of remaining data in stream + typename std::basic_istream::pos_type pos = stream.tellg(); + stream.seekg(0, std::ios::end); + std::streamoff length = stream.tellg() - pos; + stream.seekg(pos); + + if (stream.fail() || pos < 0) return status_io_error; + + // guard against huge files + size_t read_length = static_cast(length); + + if (static_cast(read_length) != length || length < 0) return status_out_of_memory; + + size_t max_suffix_size = sizeof(char_t); + + // read stream data into memory (guard against stream exceptions with buffer holder) + buffer_holder buffer(xml_memory::allocate(read_length * sizeof(T) + max_suffix_size), xml_memory::deallocate); + if (!buffer.data) return status_out_of_memory; + + stream.read(static_cast(buffer.data), static_cast(read_length)); + + // read may set failbit | eofbit in case gcount() is less than read_length (i.e. line ending conversion), so check for other I/O errors + if (stream.bad() || (!stream.eof() && stream.fail())) return status_io_error; + + // return buffer + size_t actual_length = static_cast(stream.gcount()); + assert(actual_length <= read_length); + + *out_buffer = buffer.release(); + *out_size = actual_length * sizeof(T); + + return status_ok; + } + + template PUGI__FN xml_parse_result load_stream_impl(xml_document& doc, std::basic_istream& stream, unsigned int options, xml_encoding encoding) + { + void* buffer = 0; + size_t size = 0; + xml_parse_status status = status_ok; + + // if stream has an error bit set, bail out (otherwise tellg() can fail and we'll clear error bits) + if (stream.fail()) return make_parse_result(status_io_error); + + // load stream to memory (using seek-based implementation if possible, since it's faster and takes less memory) + if (stream.tellg() < 0) + { + stream.clear(); // clear error flags that could be set by a failing tellg + status = load_stream_data_noseek(stream, &buffer, &size); + } + else + status = load_stream_data_seek(stream, &buffer, &size); + + if (status != status_ok) return make_parse_result(status); + + xml_encoding real_encoding = get_buffer_encoding(encoding, buffer, size); + + return doc.load_buffer_inplace_own(buffer, zero_terminate_buffer(buffer, size, real_encoding), options, real_encoding); + } +#endif + +#if defined(PUGI__MSVC_CRT_VERSION) || defined(__BORLANDC__) || (defined(__MINGW32__) && (!defined(__STRICT_ANSI__) || defined(__MINGW64_VERSION_MAJOR))) + PUGI__FN FILE* open_file_wide(const wchar_t* path, const wchar_t* mode) + { + return _wfopen(path, mode); + } +#else + PUGI__FN char* convert_path_heap(const wchar_t* str) + { + assert(str); + + // first pass: get length in utf8 characters + size_t length = strlength_wide(str); + size_t size = as_utf8_begin(str, length); + + // allocate resulting string + char* result = static_cast(xml_memory::allocate(size + 1)); + if (!result) return 0; + + // second pass: convert to utf8 + as_utf8_end(result, size, str, length); + + return result; + } + + PUGI__FN FILE* open_file_wide(const wchar_t* path, const wchar_t* mode) + { + // there is no standard function to open wide paths, so our best bet is to try utf8 path + char* path_utf8 = convert_path_heap(path); + if (!path_utf8) return 0; + + // convert mode to ASCII (we mirror _wfopen interface) + char mode_ascii[4] = {0}; + for (size_t i = 0; mode[i]; ++i) mode_ascii[i] = static_cast(mode[i]); + + // try to open the utf8 path + FILE* result = fopen(path_utf8, mode_ascii); + + // free dummy buffer + xml_memory::deallocate(path_utf8); + + return result; + } +#endif + + PUGI__FN bool save_file_impl(const xml_document& doc, FILE* file, const char_t* indent, unsigned int flags, xml_encoding encoding) + { + if (!file) return false; + + xml_writer_file writer(file); + doc.save(writer, indent, flags, encoding); + + int result = ferror(file); + + fclose(file); + + return result == 0; + } + + PUGI__FN xml_parse_result load_buffer_impl(xml_document_struct* doc, xml_node_struct* root, void* contents, size_t size, unsigned int options, xml_encoding encoding, bool is_mutable, bool own, char_t** out_buffer) + { + // check input buffer + if (!contents && size) return make_parse_result(status_io_error); + + // get actual encoding + xml_encoding buffer_encoding = impl::get_buffer_encoding(encoding, contents, size); + + // get private buffer + char_t* buffer = 0; + size_t length = 0; + + if (!impl::convert_buffer(buffer, length, buffer_encoding, contents, size, is_mutable)) return impl::make_parse_result(status_out_of_memory); + + // delete original buffer if we performed a conversion + if (own && buffer != contents && contents) impl::xml_memory::deallocate(contents); + + // store buffer for offset_debug + doc->buffer = buffer; + + // parse + xml_parse_result res = impl::xml_parser::parse(buffer, length, doc, root, options); + + // remember encoding + res.encoding = buffer_encoding; + + // grab onto buffer if it's our buffer, user is responsible for deallocating contents himself + if (own || buffer != contents) *out_buffer = buffer; + + return res; + } +PUGI__NS_END + +namespace pugi +{ + PUGI__FN xml_writer_file::xml_writer_file(void* file_): file(file_) + { + } + + PUGI__FN void xml_writer_file::write(const void* data, size_t size) + { + size_t result = fwrite(data, 1, size, static_cast(file)); + (void)!result; // unfortunately we can't do proper error handling here + } + +#ifndef PUGIXML_NO_STL + PUGI__FN xml_writer_stream::xml_writer_stream(std::basic_ostream >& stream): narrow_stream(&stream), wide_stream(0) + { + } + + PUGI__FN xml_writer_stream::xml_writer_stream(std::basic_ostream >& stream): narrow_stream(0), wide_stream(&stream) + { + } + + PUGI__FN void xml_writer_stream::write(const void* data, size_t size) + { + if (narrow_stream) + { + assert(!wide_stream); + narrow_stream->write(reinterpret_cast(data), static_cast(size)); + } + else + { + assert(wide_stream); + assert(size % sizeof(wchar_t) == 0); + + wide_stream->write(reinterpret_cast(data), static_cast(size / sizeof(wchar_t))); + } + } +#endif + + PUGI__FN xml_tree_walker::xml_tree_walker(): _depth(0) + { + } + + PUGI__FN xml_tree_walker::~xml_tree_walker() + { + } + + PUGI__FN int xml_tree_walker::depth() const + { + return _depth; + } + + PUGI__FN bool xml_tree_walker::begin(xml_node&) + { + return true; + } + + PUGI__FN bool xml_tree_walker::end(xml_node&) + { + return true; + } + + PUGI__FN xml_attribute::xml_attribute(): _attr(0) + { + } + + PUGI__FN xml_attribute::xml_attribute(xml_attribute_struct* attr): _attr(attr) + { + } + + PUGI__FN static void unspecified_bool_xml_attribute(xml_attribute***) + { + } + + PUGI__FN xml_attribute::operator xml_attribute::unspecified_bool_type() const + { + return _attr ? unspecified_bool_xml_attribute : 0; + } + + PUGI__FN bool xml_attribute::operator!() const + { + return !_attr; + } + + PUGI__FN bool xml_attribute::operator==(const xml_attribute& r) const + { + return (_attr == r._attr); + } + + PUGI__FN bool xml_attribute::operator!=(const xml_attribute& r) const + { + return (_attr != r._attr); + } + + PUGI__FN bool xml_attribute::operator<(const xml_attribute& r) const + { + return (_attr < r._attr); + } + + PUGI__FN bool xml_attribute::operator>(const xml_attribute& r) const + { + return (_attr > r._attr); + } + + PUGI__FN bool xml_attribute::operator<=(const xml_attribute& r) const + { + return (_attr <= r._attr); + } + + PUGI__FN bool xml_attribute::operator>=(const xml_attribute& r) const + { + return (_attr >= r._attr); + } + + PUGI__FN xml_attribute xml_attribute::next_attribute() const + { + return _attr ? xml_attribute(_attr->next_attribute) : xml_attribute(); + } + + PUGI__FN xml_attribute xml_attribute::previous_attribute() const + { + return _attr && _attr->prev_attribute_c->next_attribute ? xml_attribute(_attr->prev_attribute_c) : xml_attribute(); + } + + PUGI__FN const char_t* xml_attribute::as_string(const char_t* def) const + { + return (_attr && _attr->value) ? _attr->value : def; + } + + PUGI__FN int xml_attribute::as_int(int def) const + { + return impl::get_value_int(_attr ? _attr->value : 0, def); + } + + PUGI__FN unsigned int xml_attribute::as_uint(unsigned int def) const + { + return impl::get_value_uint(_attr ? _attr->value : 0, def); + } + + PUGI__FN double xml_attribute::as_double(double def) const + { + return impl::get_value_double(_attr ? _attr->value : 0, def); + } + + PUGI__FN float xml_attribute::as_float(float def) const + { + return impl::get_value_float(_attr ? _attr->value : 0, def); + } + + PUGI__FN bool xml_attribute::as_bool(bool def) const + { + return impl::get_value_bool(_attr ? _attr->value : 0, def); + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN long long xml_attribute::as_llong(long long def) const + { + return impl::get_value_llong(_attr ? _attr->value : 0, def); + } + + PUGI__FN unsigned long long xml_attribute::as_ullong(unsigned long long def) const + { + return impl::get_value_ullong(_attr ? _attr->value : 0, def); + } +#endif + + PUGI__FN bool xml_attribute::empty() const + { + return !_attr; + } + + PUGI__FN const char_t* xml_attribute::name() const + { + return (_attr && _attr->name) ? _attr->name : PUGIXML_TEXT(""); + } + + PUGI__FN const char_t* xml_attribute::value() const + { + return (_attr && _attr->value) ? _attr->value : PUGIXML_TEXT(""); + } + + PUGI__FN size_t xml_attribute::hash_value() const + { + return static_cast(reinterpret_cast(_attr) / sizeof(xml_attribute_struct)); + } + + PUGI__FN xml_attribute_struct* xml_attribute::internal_object() const + { + return _attr; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(const char_t* rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(int rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(unsigned int rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(double rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(float rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(bool rhs) + { + set_value(rhs); + return *this; + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN xml_attribute& xml_attribute::operator=(long long rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(unsigned long long rhs) + { + set_value(rhs); + return *this; + } +#endif + + PUGI__FN bool xml_attribute::set_name(const char_t* rhs) + { + if (!_attr) return false; + + return impl::strcpy_insitu(_attr->name, _attr->header, impl::xml_memory_page_name_allocated_mask, rhs); + } + + PUGI__FN bool xml_attribute::set_value(const char_t* rhs) + { + if (!_attr) return false; + + return impl::strcpy_insitu(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } + + PUGI__FN bool xml_attribute::set_value(int rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } + + PUGI__FN bool xml_attribute::set_value(unsigned int rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } + + PUGI__FN bool xml_attribute::set_value(double rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } + + PUGI__FN bool xml_attribute::set_value(float rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } + + PUGI__FN bool xml_attribute::set_value(bool rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN bool xml_attribute::set_value(long long rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } + + PUGI__FN bool xml_attribute::set_value(unsigned long long rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } +#endif + +#ifdef __BORLANDC__ + PUGI__FN bool operator&&(const xml_attribute& lhs, bool rhs) + { + return (bool)lhs && rhs; + } + + PUGI__FN bool operator||(const xml_attribute& lhs, bool rhs) + { + return (bool)lhs || rhs; + } +#endif + + PUGI__FN xml_node::xml_node(): _root(0) + { + } + + PUGI__FN xml_node::xml_node(xml_node_struct* p): _root(p) + { + } + + PUGI__FN static void unspecified_bool_xml_node(xml_node***) + { + } + + PUGI__FN xml_node::operator xml_node::unspecified_bool_type() const + { + return _root ? unspecified_bool_xml_node : 0; + } + + PUGI__FN bool xml_node::operator!() const + { + return !_root; + } + + PUGI__FN xml_node::iterator xml_node::begin() const + { + return iterator(_root ? _root->first_child : 0, _root); + } + + PUGI__FN xml_node::iterator xml_node::end() const + { + return iterator(0, _root); + } + + PUGI__FN xml_node::attribute_iterator xml_node::attributes_begin() const + { + return attribute_iterator(_root ? _root->first_attribute : 0, _root); + } + + PUGI__FN xml_node::attribute_iterator xml_node::attributes_end() const + { + return attribute_iterator(0, _root); + } + + PUGI__FN xml_object_range xml_node::children() const + { + return xml_object_range(begin(), end()); + } + + PUGI__FN xml_object_range xml_node::children(const char_t* name_) const + { + return xml_object_range(xml_named_node_iterator(child(name_)._root, _root, name_), xml_named_node_iterator(0, _root, name_)); + } + + PUGI__FN xml_object_range xml_node::attributes() const + { + return xml_object_range(attributes_begin(), attributes_end()); + } + + PUGI__FN bool xml_node::operator==(const xml_node& r) const + { + return (_root == r._root); + } + + PUGI__FN bool xml_node::operator!=(const xml_node& r) const + { + return (_root != r._root); + } + + PUGI__FN bool xml_node::operator<(const xml_node& r) const + { + return (_root < r._root); + } + + PUGI__FN bool xml_node::operator>(const xml_node& r) const + { + return (_root > r._root); + } + + PUGI__FN bool xml_node::operator<=(const xml_node& r) const + { + return (_root <= r._root); + } + + PUGI__FN bool xml_node::operator>=(const xml_node& r) const + { + return (_root >= r._root); + } + + PUGI__FN bool xml_node::empty() const + { + return !_root; + } + + PUGI__FN const char_t* xml_node::name() const + { + return (_root && _root->name) ? _root->name : PUGIXML_TEXT(""); + } + + PUGI__FN xml_node_type xml_node::type() const + { + return _root ? PUGI__NODETYPE(_root) : node_null; + } + + PUGI__FN const char_t* xml_node::value() const + { + return (_root && _root->value) ? _root->value : PUGIXML_TEXT(""); + } + + PUGI__FN xml_node xml_node::child(const char_t* name_) const + { + if (!_root) return xml_node(); + + for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) + if (i->name && impl::strequal(name_, i->name)) return xml_node(i); + + return xml_node(); + } + + PUGI__FN xml_attribute xml_node::attribute(const char_t* name_) const + { + if (!_root) return xml_attribute(); + + for (xml_attribute_struct* i = _root->first_attribute; i; i = i->next_attribute) + if (i->name && impl::strequal(name_, i->name)) + return xml_attribute(i); + + return xml_attribute(); + } + + PUGI__FN xml_node xml_node::next_sibling(const char_t* name_) const + { + if (!_root) return xml_node(); + + for (xml_node_struct* i = _root->next_sibling; i; i = i->next_sibling) + if (i->name && impl::strequal(name_, i->name)) return xml_node(i); + + return xml_node(); + } + + PUGI__FN xml_node xml_node::next_sibling() const + { + return _root ? xml_node(_root->next_sibling) : xml_node(); + } + + PUGI__FN xml_node xml_node::previous_sibling(const char_t* name_) const + { + if (!_root) return xml_node(); + + for (xml_node_struct* i = _root->prev_sibling_c; i->next_sibling; i = i->prev_sibling_c) + if (i->name && impl::strequal(name_, i->name)) return xml_node(i); + + return xml_node(); + } + + PUGI__FN xml_node xml_node::previous_sibling() const + { + if (!_root) return xml_node(); + + if (_root->prev_sibling_c->next_sibling) return xml_node(_root->prev_sibling_c); + else return xml_node(); + } + + PUGI__FN xml_node xml_node::parent() const + { + return _root ? xml_node(_root->parent) : xml_node(); + } + + PUGI__FN xml_node xml_node::root() const + { + return _root ? xml_node(&impl::get_document(_root)) : xml_node(); + } + + PUGI__FN xml_text xml_node::text() const + { + return xml_text(_root); + } + + PUGI__FN const char_t* xml_node::child_value() const + { + if (!_root) return PUGIXML_TEXT(""); + + for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) + if (i->value && impl::is_text_node(i)) + return i->value; + + return PUGIXML_TEXT(""); + } + + PUGI__FN const char_t* xml_node::child_value(const char_t* name_) const + { + return child(name_).child_value(); + } + + PUGI__FN xml_attribute xml_node::first_attribute() const + { + return _root ? xml_attribute(_root->first_attribute) : xml_attribute(); + } + + PUGI__FN xml_attribute xml_node::last_attribute() const + { + return _root && _root->first_attribute ? xml_attribute(_root->first_attribute->prev_attribute_c) : xml_attribute(); + } + + PUGI__FN xml_node xml_node::first_child() const + { + return _root ? xml_node(_root->first_child) : xml_node(); + } + + PUGI__FN xml_node xml_node::last_child() const + { + return _root && _root->first_child ? xml_node(_root->first_child->prev_sibling_c) : xml_node(); + } + + PUGI__FN bool xml_node::set_name(const char_t* rhs) + { + switch (type()) + { + case node_pi: + case node_declaration: + case node_element: + return impl::strcpy_insitu(_root->name, _root->header, impl::xml_memory_page_name_allocated_mask, rhs); + + default: + return false; + } + } + + PUGI__FN bool xml_node::set_value(const char_t* rhs) + { + switch (type()) + { + case node_pi: + case node_cdata: + case node_pcdata: + case node_comment: + case node_doctype: + return impl::strcpy_insitu(_root->value, _root->header, impl::xml_memory_page_value_allocated_mask, rhs); + + default: + return false; + } + } + + PUGI__FN xml_attribute xml_node::append_attribute(const char_t* name_) + { + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(impl::get_allocator(_root))); + if (!a) return xml_attribute(); + + impl::append_attribute(a._attr, _root); + + a.set_name(name_); + + return a; + } + + PUGI__FN xml_attribute xml_node::prepend_attribute(const char_t* name_) + { + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(impl::get_allocator(_root))); + if (!a) return xml_attribute(); + + impl::prepend_attribute(a._attr, _root); + + a.set_name(name_); + + return a; + } + + PUGI__FN xml_attribute xml_node::insert_attribute_after(const char_t* name_, const xml_attribute& attr) + { + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + if (!attr || !impl::is_attribute_of(attr._attr, _root)) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(impl::get_allocator(_root))); + if (!a) return xml_attribute(); + + impl::insert_attribute_after(a._attr, attr._attr, _root); + + a.set_name(name_); + + return a; + } + + PUGI__FN xml_attribute xml_node::insert_attribute_before(const char_t* name_, const xml_attribute& attr) + { + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + if (!attr || !impl::is_attribute_of(attr._attr, _root)) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(impl::get_allocator(_root))); + if (!a) return xml_attribute(); + + impl::insert_attribute_before(a._attr, attr._attr, _root); + + a.set_name(name_); + + return a; + } + + PUGI__FN xml_attribute xml_node::append_copy(const xml_attribute& proto) + { + if (!proto) return xml_attribute(); + + xml_attribute result = append_attribute(proto.name()); + result.set_value(proto.value()); + + return result; + } + + PUGI__FN xml_attribute xml_node::prepend_copy(const xml_attribute& proto) + { + if (!proto) return xml_attribute(); + + xml_attribute result = prepend_attribute(proto.name()); + result.set_value(proto.value()); + + return result; + } + + PUGI__FN xml_attribute xml_node::insert_copy_after(const xml_attribute& proto, const xml_attribute& attr) + { + if (!proto) return xml_attribute(); + + xml_attribute result = insert_attribute_after(proto.name(), attr); + result.set_value(proto.value()); + + return result; + } + + PUGI__FN xml_attribute xml_node::insert_copy_before(const xml_attribute& proto, const xml_attribute& attr) + { + if (!proto) return xml_attribute(); + + xml_attribute result = insert_attribute_before(proto.name(), attr); + result.set_value(proto.value()); + + return result; + } + + PUGI__FN xml_node xml_node::append_child(xml_node_type type_) + { + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + + xml_node n(impl::allocate_node(impl::get_allocator(_root), type_)); + if (!n) return xml_node(); + + impl::append_node(n._root, _root); + + if (type_ == node_declaration) n.set_name(PUGIXML_TEXT("xml")); + + return n; + } + + PUGI__FN xml_node xml_node::prepend_child(xml_node_type type_) + { + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + + xml_node n(impl::allocate_node(impl::get_allocator(_root), type_)); + if (!n) return xml_node(); + + impl::prepend_node(n._root, _root); + + if (type_ == node_declaration) n.set_name(PUGIXML_TEXT("xml")); + + return n; + } + + PUGI__FN xml_node xml_node::insert_child_before(xml_node_type type_, const xml_node& node) + { + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + + xml_node n(impl::allocate_node(impl::get_allocator(_root), type_)); + if (!n) return xml_node(); + + impl::insert_node_before(n._root, node._root); + + if (type_ == node_declaration) n.set_name(PUGIXML_TEXT("xml")); + + return n; + } + + PUGI__FN xml_node xml_node::insert_child_after(xml_node_type type_, const xml_node& node) + { + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + + xml_node n(impl::allocate_node(impl::get_allocator(_root), type_)); + if (!n) return xml_node(); + + impl::insert_node_after(n._root, node._root); + + if (type_ == node_declaration) n.set_name(PUGIXML_TEXT("xml")); + + return n; + } + + PUGI__FN xml_node xml_node::append_child(const char_t* name_) + { + xml_node result = append_child(node_element); + + result.set_name(name_); + + return result; + } + + PUGI__FN xml_node xml_node::prepend_child(const char_t* name_) + { + xml_node result = prepend_child(node_element); + + result.set_name(name_); + + return result; + } + + PUGI__FN xml_node xml_node::insert_child_after(const char_t* name_, const xml_node& node) + { + xml_node result = insert_child_after(node_element, node); + + result.set_name(name_); + + return result; + } + + PUGI__FN xml_node xml_node::insert_child_before(const char_t* name_, const xml_node& node) + { + xml_node result = insert_child_before(node_element, node); + + result.set_name(name_); + + return result; + } + + PUGI__FN xml_node xml_node::append_copy(const xml_node& proto) + { + xml_node_type type_ = proto.type(); + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + + xml_node n(impl::allocate_node(impl::get_allocator(_root), type_)); + if (!n) return xml_node(); + + impl::append_node(n._root, _root); + impl::node_copy_tree(n._root, proto._root); + + return n; + } + + PUGI__FN xml_node xml_node::prepend_copy(const xml_node& proto) + { + xml_node_type type_ = proto.type(); + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + + xml_node n(impl::allocate_node(impl::get_allocator(_root), type_)); + if (!n) return xml_node(); + + impl::prepend_node(n._root, _root); + impl::node_copy_tree(n._root, proto._root); + + return n; + } + + PUGI__FN xml_node xml_node::insert_copy_after(const xml_node& proto, const xml_node& node) + { + xml_node_type type_ = proto.type(); + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + + xml_node n(impl::allocate_node(impl::get_allocator(_root), type_)); + if (!n) return xml_node(); + + impl::insert_node_after(n._root, node._root); + impl::node_copy_tree(n._root, proto._root); + + return n; + } + + PUGI__FN xml_node xml_node::insert_copy_before(const xml_node& proto, const xml_node& node) + { + xml_node_type type_ = proto.type(); + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + + xml_node n(impl::allocate_node(impl::get_allocator(_root), type_)); + if (!n) return xml_node(); + + impl::insert_node_before(n._root, node._root); + impl::node_copy_tree(n._root, proto._root); + + return n; + } + + PUGI__FN xml_node xml_node::append_move(const xml_node& moved) + { + if (!impl::allow_move(*this, moved)) return xml_node(); + + // disable document_buffer_order optimization since moving nodes around changes document order without changing buffer pointers + impl::get_document(_root).header |= impl::xml_memory_page_contents_shared_mask; + + impl::remove_node(moved._root); + impl::append_node(moved._root, _root); + + return moved; + } + + PUGI__FN xml_node xml_node::prepend_move(const xml_node& moved) + { + if (!impl::allow_move(*this, moved)) return xml_node(); + + // disable document_buffer_order optimization since moving nodes around changes document order without changing buffer pointers + impl::get_document(_root).header |= impl::xml_memory_page_contents_shared_mask; + + impl::remove_node(moved._root); + impl::prepend_node(moved._root, _root); + + return moved; + } + + PUGI__FN xml_node xml_node::insert_move_after(const xml_node& moved, const xml_node& node) + { + if (!impl::allow_move(*this, moved)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + if (moved._root == node._root) return xml_node(); + + // disable document_buffer_order optimization since moving nodes around changes document order without changing buffer pointers + impl::get_document(_root).header |= impl::xml_memory_page_contents_shared_mask; + + impl::remove_node(moved._root); + impl::insert_node_after(moved._root, node._root); + + return moved; + } + + PUGI__FN xml_node xml_node::insert_move_before(const xml_node& moved, const xml_node& node) + { + if (!impl::allow_move(*this, moved)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + if (moved._root == node._root) return xml_node(); + + // disable document_buffer_order optimization since moving nodes around changes document order without changing buffer pointers + impl::get_document(_root).header |= impl::xml_memory_page_contents_shared_mask; + + impl::remove_node(moved._root); + impl::insert_node_before(moved._root, node._root); + + return moved; + } + + PUGI__FN bool xml_node::remove_attribute(const char_t* name_) + { + return remove_attribute(attribute(name_)); + } + + PUGI__FN bool xml_node::remove_attribute(const xml_attribute& a) + { + if (!_root || !a._attr) return false; + if (!impl::is_attribute_of(a._attr, _root)) return false; + + impl::remove_attribute(a._attr, _root); + impl::destroy_attribute(a._attr, impl::get_allocator(_root)); + + return true; + } + + PUGI__FN bool xml_node::remove_child(const char_t* name_) + { + return remove_child(child(name_)); + } + + PUGI__FN bool xml_node::remove_child(const xml_node& n) + { + if (!_root || !n._root || n._root->parent != _root) return false; + + impl::remove_node(n._root); + impl::destroy_node(n._root, impl::get_allocator(_root)); + + return true; + } + + PUGI__FN xml_parse_result xml_node::append_buffer(const void* contents, size_t size, unsigned int options, xml_encoding encoding) + { + // append_buffer is only valid for elements/documents + if (!impl::allow_insert_child(type(), node_element)) return impl::make_parse_result(status_append_invalid_root); + + // get document node + impl::xml_document_struct* doc = &impl::get_document(_root); + + // disable document_buffer_order optimization since in a document with multiple buffers comparing buffer pointers does not make sense + doc->header |= impl::xml_memory_page_contents_shared_mask; + + // get extra buffer element (we'll store the document fragment buffer there so that we can deallocate it later) + impl::xml_memory_page* page = 0; + impl::xml_extra_buffer* extra = static_cast(doc->allocate_memory(sizeof(impl::xml_extra_buffer), page)); + (void)page; + + if (!extra) return impl::make_parse_result(status_out_of_memory); + + // save name; name of the root has to be NULL before parsing - otherwise closing node mismatches will not be detected at the top level + char_t* rootname = _root->name; + _root->name = 0; + + // parse + char_t* buffer = 0; + xml_parse_result res = impl::load_buffer_impl(doc, _root, const_cast(contents), size, options, encoding, false, false, &buffer); + + // restore name + _root->name = rootname; + + // add extra buffer to the list + extra->buffer = buffer; + extra->next = doc->extra_buffers; + doc->extra_buffers = extra; + + return res; + } + + PUGI__FN xml_node xml_node::find_child_by_attribute(const char_t* name_, const char_t* attr_name, const char_t* attr_value) const + { + if (!_root) return xml_node(); + + for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) + if (i->name && impl::strequal(name_, i->name)) + { + for (xml_attribute_struct* a = i->first_attribute; a; a = a->next_attribute) + if (a->name && impl::strequal(attr_name, a->name) && impl::strequal(attr_value, a->value ? a->value : PUGIXML_TEXT(""))) + return xml_node(i); + } + + return xml_node(); + } + + PUGI__FN xml_node xml_node::find_child_by_attribute(const char_t* attr_name, const char_t* attr_value) const + { + if (!_root) return xml_node(); + + for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) + for (xml_attribute_struct* a = i->first_attribute; a; a = a->next_attribute) + if (a->name && impl::strequal(attr_name, a->name) && impl::strequal(attr_value, a->value ? a->value : PUGIXML_TEXT(""))) + return xml_node(i); + + return xml_node(); + } + +#ifndef PUGIXML_NO_STL + PUGI__FN string_t xml_node::path(char_t delimiter) const + { + xml_node cursor = *this; // Make a copy. + + string_t result = cursor.name(); + + while (cursor.parent()) + { + cursor = cursor.parent(); + + string_t temp = cursor.name(); + temp += delimiter; + temp += result; + result.swap(temp); + } + + return result; + } +#endif + + PUGI__FN xml_node xml_node::first_element_by_path(const char_t* path_, char_t delimiter) const + { + xml_node found = *this; // Current search context. + + if (!_root || !path_ || !path_[0]) return found; + + if (path_[0] == delimiter) + { + // Absolute path; e.g. '/foo/bar' + found = found.root(); + ++path_; + } + + const char_t* path_segment = path_; + + while (*path_segment == delimiter) ++path_segment; + + const char_t* path_segment_end = path_segment; + + while (*path_segment_end && *path_segment_end != delimiter) ++path_segment_end; + + if (path_segment == path_segment_end) return found; + + const char_t* next_segment = path_segment_end; + + while (*next_segment == delimiter) ++next_segment; + + if (*path_segment == '.' && path_segment + 1 == path_segment_end) + return found.first_element_by_path(next_segment, delimiter); + else if (*path_segment == '.' && *(path_segment+1) == '.' && path_segment + 2 == path_segment_end) + return found.parent().first_element_by_path(next_segment, delimiter); + else + { + for (xml_node_struct* j = found._root->first_child; j; j = j->next_sibling) + { + if (j->name && impl::strequalrange(j->name, path_segment, static_cast(path_segment_end - path_segment))) + { + xml_node subsearch = xml_node(j).first_element_by_path(next_segment, delimiter); + + if (subsearch) return subsearch; + } + } + + return xml_node(); + } + } + + PUGI__FN bool xml_node::traverse(xml_tree_walker& walker) + { + walker._depth = -1; + + xml_node arg_begin = *this; + if (!walker.begin(arg_begin)) return false; + + xml_node cur = first_child(); + + if (cur) + { + ++walker._depth; + + do + { + xml_node arg_for_each = cur; + if (!walker.for_each(arg_for_each)) + return false; + + if (cur.first_child()) + { + ++walker._depth; + cur = cur.first_child(); + } + else if (cur.next_sibling()) + cur = cur.next_sibling(); + else + { + // Borland C++ workaround + while (!cur.next_sibling() && cur != *this && !cur.parent().empty()) + { + --walker._depth; + cur = cur.parent(); + } + + if (cur != *this) + cur = cur.next_sibling(); + } + } + while (cur && cur != *this); + } + + assert(walker._depth == -1); + + xml_node arg_end = *this; + return walker.end(arg_end); + } + + PUGI__FN size_t xml_node::hash_value() const + { + return static_cast(reinterpret_cast(_root) / sizeof(xml_node_struct)); + } + + PUGI__FN xml_node_struct* xml_node::internal_object() const + { + return _root; + } + + PUGI__FN void xml_node::print(xml_writer& writer, const char_t* indent, unsigned int flags, xml_encoding encoding, unsigned int depth) const + { + if (!_root) return; + + impl::xml_buffered_writer buffered_writer(writer, encoding); + + impl::node_output(buffered_writer, _root, indent, flags, depth); + } + +#ifndef PUGIXML_NO_STL + PUGI__FN void xml_node::print(std::basic_ostream >& stream, const char_t* indent, unsigned int flags, xml_encoding encoding, unsigned int depth) const + { + xml_writer_stream writer(stream); + + print(writer, indent, flags, encoding, depth); + } + + PUGI__FN void xml_node::print(std::basic_ostream >& stream, const char_t* indent, unsigned int flags, unsigned int depth) const + { + xml_writer_stream writer(stream); + + print(writer, indent, flags, encoding_wchar, depth); + } +#endif + + PUGI__FN ptrdiff_t xml_node::offset_debug() const + { + if (!_root) return -1; + + impl::xml_document_struct& doc = impl::get_document(_root); + + // we can determine the offset reliably only if there is exactly once parse buffer + if (!doc.buffer || doc.extra_buffers) return -1; + + switch (type()) + { + case node_document: + return 0; + + case node_element: + case node_declaration: + case node_pi: + return _root->name && (_root->header & impl::xml_memory_page_name_allocated_or_shared_mask) == 0 ? _root->name - doc.buffer : -1; + + case node_pcdata: + case node_cdata: + case node_comment: + case node_doctype: + return _root->value && (_root->header & impl::xml_memory_page_value_allocated_or_shared_mask) == 0 ? _root->value - doc.buffer : -1; + + default: + return -1; + } + } + +#ifdef __BORLANDC__ + PUGI__FN bool operator&&(const xml_node& lhs, bool rhs) + { + return (bool)lhs && rhs; + } + + PUGI__FN bool operator||(const xml_node& lhs, bool rhs) + { + return (bool)lhs || rhs; + } +#endif + + PUGI__FN xml_text::xml_text(xml_node_struct* root): _root(root) + { + } + + PUGI__FN xml_node_struct* xml_text::_data() const + { + if (!_root || impl::is_text_node(_root)) return _root; + + for (xml_node_struct* node = _root->first_child; node; node = node->next_sibling) + if (impl::is_text_node(node)) + return node; + + return 0; + } + + PUGI__FN xml_node_struct* xml_text::_data_new() + { + xml_node_struct* d = _data(); + if (d) return d; + + return xml_node(_root).append_child(node_pcdata).internal_object(); + } + + PUGI__FN xml_text::xml_text(): _root(0) + { + } + + PUGI__FN static void unspecified_bool_xml_text(xml_text***) + { + } + + PUGI__FN xml_text::operator xml_text::unspecified_bool_type() const + { + return _data() ? unspecified_bool_xml_text : 0; + } + + PUGI__FN bool xml_text::operator!() const + { + return !_data(); + } + + PUGI__FN bool xml_text::empty() const + { + return _data() == 0; + } + + PUGI__FN const char_t* xml_text::get() const + { + xml_node_struct* d = _data(); + + return (d && d->value) ? d->value : PUGIXML_TEXT(""); + } + + PUGI__FN const char_t* xml_text::as_string(const char_t* def) const + { + xml_node_struct* d = _data(); + + return (d && d->value) ? d->value : def; + } + + PUGI__FN int xml_text::as_int(int def) const + { + xml_node_struct* d = _data(); + + return impl::get_value_int(d ? d->value : 0, def); + } + + PUGI__FN unsigned int xml_text::as_uint(unsigned int def) const + { + xml_node_struct* d = _data(); + + return impl::get_value_uint(d ? d->value : 0, def); + } + + PUGI__FN double xml_text::as_double(double def) const + { + xml_node_struct* d = _data(); + + return impl::get_value_double(d ? d->value : 0, def); + } + + PUGI__FN float xml_text::as_float(float def) const + { + xml_node_struct* d = _data(); + + return impl::get_value_float(d ? d->value : 0, def); + } + + PUGI__FN bool xml_text::as_bool(bool def) const + { + xml_node_struct* d = _data(); + + return impl::get_value_bool(d ? d->value : 0, def); + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN long long xml_text::as_llong(long long def) const + { + xml_node_struct* d = _data(); + + return impl::get_value_llong(d ? d->value : 0, def); + } + + PUGI__FN unsigned long long xml_text::as_ullong(unsigned long long def) const + { + xml_node_struct* d = _data(); + + return impl::get_value_ullong(d ? d->value : 0, def); + } +#endif + + PUGI__FN bool xml_text::set(const char_t* rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::strcpy_insitu(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } + + PUGI__FN bool xml_text::set(int rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } + + PUGI__FN bool xml_text::set(unsigned int rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } + + PUGI__FN bool xml_text::set(float rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } + + PUGI__FN bool xml_text::set(double rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } + + PUGI__FN bool xml_text::set(bool rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN bool xml_text::set(long long rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } + + PUGI__FN bool xml_text::set(unsigned long long rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } +#endif + + PUGI__FN xml_text& xml_text::operator=(const char_t* rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(int rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(unsigned int rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(double rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(float rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(bool rhs) + { + set(rhs); + return *this; + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN xml_text& xml_text::operator=(long long rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(unsigned long long rhs) + { + set(rhs); + return *this; + } +#endif + + PUGI__FN xml_node xml_text::data() const + { + return xml_node(_data()); + } + +#ifdef __BORLANDC__ + PUGI__FN bool operator&&(const xml_text& lhs, bool rhs) + { + return (bool)lhs && rhs; + } + + PUGI__FN bool operator||(const xml_text& lhs, bool rhs) + { + return (bool)lhs || rhs; + } +#endif + + PUGI__FN xml_node_iterator::xml_node_iterator() + { + } + + PUGI__FN xml_node_iterator::xml_node_iterator(const xml_node& node): _wrap(node), _parent(node.parent()) + { + } + + PUGI__FN xml_node_iterator::xml_node_iterator(xml_node_struct* ref, xml_node_struct* parent): _wrap(ref), _parent(parent) + { + } + + PUGI__FN bool xml_node_iterator::operator==(const xml_node_iterator& rhs) const + { + return _wrap._root == rhs._wrap._root && _parent._root == rhs._parent._root; + } + + PUGI__FN bool xml_node_iterator::operator!=(const xml_node_iterator& rhs) const + { + return _wrap._root != rhs._wrap._root || _parent._root != rhs._parent._root; + } + + PUGI__FN xml_node& xml_node_iterator::operator*() const + { + assert(_wrap._root); + return _wrap; + } + + PUGI__FN xml_node* xml_node_iterator::operator->() const + { + assert(_wrap._root); + return const_cast(&_wrap); // BCC32 workaround + } + + PUGI__FN const xml_node_iterator& xml_node_iterator::operator++() + { + assert(_wrap._root); + _wrap._root = _wrap._root->next_sibling; + return *this; + } + + PUGI__FN xml_node_iterator xml_node_iterator::operator++(int) + { + xml_node_iterator temp = *this; + ++*this; + return temp; + } + + PUGI__FN const xml_node_iterator& xml_node_iterator::operator--() + { + _wrap = _wrap._root ? _wrap.previous_sibling() : _parent.last_child(); + return *this; + } + + PUGI__FN xml_node_iterator xml_node_iterator::operator--(int) + { + xml_node_iterator temp = *this; + --*this; + return temp; + } + + PUGI__FN xml_attribute_iterator::xml_attribute_iterator() + { + } + + PUGI__FN xml_attribute_iterator::xml_attribute_iterator(const xml_attribute& attr, const xml_node& parent): _wrap(attr), _parent(parent) + { + } + + PUGI__FN xml_attribute_iterator::xml_attribute_iterator(xml_attribute_struct* ref, xml_node_struct* parent): _wrap(ref), _parent(parent) + { + } + + PUGI__FN bool xml_attribute_iterator::operator==(const xml_attribute_iterator& rhs) const + { + return _wrap._attr == rhs._wrap._attr && _parent._root == rhs._parent._root; + } + + PUGI__FN bool xml_attribute_iterator::operator!=(const xml_attribute_iterator& rhs) const + { + return _wrap._attr != rhs._wrap._attr || _parent._root != rhs._parent._root; + } + + PUGI__FN xml_attribute& xml_attribute_iterator::operator*() const + { + assert(_wrap._attr); + return _wrap; + } + + PUGI__FN xml_attribute* xml_attribute_iterator::operator->() const + { + assert(_wrap._attr); + return const_cast(&_wrap); // BCC32 workaround + } + + PUGI__FN const xml_attribute_iterator& xml_attribute_iterator::operator++() + { + assert(_wrap._attr); + _wrap._attr = _wrap._attr->next_attribute; + return *this; + } + + PUGI__FN xml_attribute_iterator xml_attribute_iterator::operator++(int) + { + xml_attribute_iterator temp = *this; + ++*this; + return temp; + } + + PUGI__FN const xml_attribute_iterator& xml_attribute_iterator::operator--() + { + _wrap = _wrap._attr ? _wrap.previous_attribute() : _parent.last_attribute(); + return *this; + } + + PUGI__FN xml_attribute_iterator xml_attribute_iterator::operator--(int) + { + xml_attribute_iterator temp = *this; + --*this; + return temp; + } + + PUGI__FN xml_named_node_iterator::xml_named_node_iterator(): _name(0) + { + } + + PUGI__FN xml_named_node_iterator::xml_named_node_iterator(const xml_node& node, const char_t* name): _wrap(node), _parent(node.parent()), _name(name) + { + } + + PUGI__FN xml_named_node_iterator::xml_named_node_iterator(xml_node_struct* ref, xml_node_struct* parent, const char_t* name): _wrap(ref), _parent(parent), _name(name) + { + } + + PUGI__FN bool xml_named_node_iterator::operator==(const xml_named_node_iterator& rhs) const + { + return _wrap._root == rhs._wrap._root && _parent._root == rhs._parent._root; + } + + PUGI__FN bool xml_named_node_iterator::operator!=(const xml_named_node_iterator& rhs) const + { + return _wrap._root != rhs._wrap._root || _parent._root != rhs._parent._root; + } + + PUGI__FN xml_node& xml_named_node_iterator::operator*() const + { + assert(_wrap._root); + return _wrap; + } + + PUGI__FN xml_node* xml_named_node_iterator::operator->() const + { + assert(_wrap._root); + return const_cast(&_wrap); // BCC32 workaround + } + + PUGI__FN const xml_named_node_iterator& xml_named_node_iterator::operator++() + { + assert(_wrap._root); + _wrap = _wrap.next_sibling(_name); + return *this; + } + + PUGI__FN xml_named_node_iterator xml_named_node_iterator::operator++(int) + { + xml_named_node_iterator temp = *this; + ++*this; + return temp; + } + + PUGI__FN const xml_named_node_iterator& xml_named_node_iterator::operator--() + { + if (_wrap._root) + _wrap = _wrap.previous_sibling(_name); + else + { + _wrap = _parent.last_child(); + + if (!impl::strequal(_wrap.name(), _name)) + _wrap = _wrap.previous_sibling(_name); + } + + return *this; + } + + PUGI__FN xml_named_node_iterator xml_named_node_iterator::operator--(int) + { + xml_named_node_iterator temp = *this; + --*this; + return temp; + } + + PUGI__FN xml_parse_result::xml_parse_result(): status(status_internal_error), offset(0), encoding(encoding_auto) + { + } + + PUGI__FN xml_parse_result::operator bool() const + { + return status == status_ok; + } + + PUGI__FN const char* xml_parse_result::description() const + { + switch (status) + { + case status_ok: return "No error"; + + case status_file_not_found: return "File was not found"; + case status_io_error: return "Error reading from file/stream"; + case status_out_of_memory: return "Could not allocate memory"; + case status_internal_error: return "Internal error occurred"; + + case status_unrecognized_tag: return "Could not determine tag type"; + + case status_bad_pi: return "Error parsing document declaration/processing instruction"; + case status_bad_comment: return "Error parsing comment"; + case status_bad_cdata: return "Error parsing CDATA section"; + case status_bad_doctype: return "Error parsing document type declaration"; + case status_bad_pcdata: return "Error parsing PCDATA section"; + case status_bad_start_element: return "Error parsing start element tag"; + case status_bad_attribute: return "Error parsing element attribute"; + case status_bad_end_element: return "Error parsing end element tag"; + case status_end_element_mismatch: return "Start-end tags mismatch"; + + case status_append_invalid_root: return "Unable to append nodes: root is not an element or document"; + + case status_no_document_element: return "No document element found"; + + default: return "Unknown error"; + } + } + + PUGI__FN xml_document::xml_document(): _buffer(0) + { + create(); + } + + PUGI__FN xml_document::~xml_document() + { + destroy(); + } + + PUGI__FN void xml_document::reset() + { + destroy(); + create(); + } + + PUGI__FN void xml_document::reset(const xml_document& proto) + { + reset(); + + for (xml_node cur = proto.first_child(); cur; cur = cur.next_sibling()) + append_copy(cur); + } + + PUGI__FN void xml_document::create() + { + assert(!_root); + + // initialize sentinel page + PUGI__STATIC_ASSERT(sizeof(impl::xml_memory_page) + sizeof(impl::xml_document_struct) + impl::xml_memory_page_alignment - sizeof(void*) <= sizeof(_memory)); + + // align upwards to page boundary + void* page_memory = reinterpret_cast((reinterpret_cast(_memory) + (impl::xml_memory_page_alignment - 1)) & ~(impl::xml_memory_page_alignment - 1)); + + // prepare page structure + impl::xml_memory_page* page = impl::xml_memory_page::construct(page_memory); + assert(page); + + page->busy_size = impl::xml_memory_page_size; + + // allocate new root + _root = new (reinterpret_cast(page) + sizeof(impl::xml_memory_page)) impl::xml_document_struct(page); + _root->prev_sibling_c = _root; + + // setup sentinel page + page->allocator = static_cast(_root); + + // verify the document allocation + assert(reinterpret_cast(_root) + sizeof(impl::xml_document_struct) <= _memory + sizeof(_memory)); + } + + PUGI__FN void xml_document::destroy() + { + assert(_root); + + // destroy static storage + if (_buffer) + { + impl::xml_memory::deallocate(_buffer); + _buffer = 0; + } + + // destroy extra buffers (note: no need to destroy linked list nodes, they're allocated using document allocator) + for (impl::xml_extra_buffer* extra = static_cast(_root)->extra_buffers; extra; extra = extra->next) + { + if (extra->buffer) impl::xml_memory::deallocate(extra->buffer); + } + + // destroy dynamic storage, leave sentinel page (it's in static memory) + impl::xml_memory_page* root_page = reinterpret_cast(_root->header & impl::xml_memory_page_pointer_mask); + assert(root_page && !root_page->prev); + assert(reinterpret_cast(root_page) >= _memory && reinterpret_cast(root_page) < _memory + sizeof(_memory)); + + for (impl::xml_memory_page* page = root_page->next; page; ) + { + impl::xml_memory_page* next = page->next; + + impl::xml_allocator::deallocate_page(page); + + page = next; + } + + _root = 0; + } + +#ifndef PUGIXML_NO_STL + PUGI__FN xml_parse_result xml_document::load(std::basic_istream >& stream, unsigned int options, xml_encoding encoding) + { + reset(); + + return impl::load_stream_impl(*this, stream, options, encoding); + } + + PUGI__FN xml_parse_result xml_document::load(std::basic_istream >& stream, unsigned int options) + { + reset(); + + return impl::load_stream_impl(*this, stream, options, encoding_wchar); + } +#endif + + PUGI__FN xml_parse_result xml_document::load_string(const char_t* contents, unsigned int options) + { + // Force native encoding (skip autodetection) + #ifdef PUGIXML_WCHAR_MODE + xml_encoding encoding = encoding_wchar; + #else + xml_encoding encoding = encoding_utf8; + #endif + + return load_buffer(contents, impl::strlength(contents) * sizeof(char_t), options, encoding); + } + + PUGI__FN xml_parse_result xml_document::load(const char_t* contents, unsigned int options) + { + return load_string(contents, options); + } + + PUGI__FN xml_parse_result xml_document::load_file(const char* path_, unsigned int options, xml_encoding encoding) + { + reset(); + + FILE* file = fopen(path_, "rb"); + + return impl::load_file_impl(*this, file, options, encoding); + } + + PUGI__FN xml_parse_result xml_document::load_file(const wchar_t* path_, unsigned int options, xml_encoding encoding) + { + reset(); + + FILE* file = impl::open_file_wide(path_, L"rb"); + + return impl::load_file_impl(*this, file, options, encoding); + } + + PUGI__FN xml_parse_result xml_document::load_buffer(const void* contents, size_t size, unsigned int options, xml_encoding encoding) + { + reset(); + + return impl::load_buffer_impl(static_cast(_root), _root, const_cast(contents), size, options, encoding, false, false, &_buffer); + } + + PUGI__FN xml_parse_result xml_document::load_buffer_inplace(void* contents, size_t size, unsigned int options, xml_encoding encoding) + { + reset(); + + return impl::load_buffer_impl(static_cast(_root), _root, contents, size, options, encoding, true, false, &_buffer); + } + + PUGI__FN xml_parse_result xml_document::load_buffer_inplace_own(void* contents, size_t size, unsigned int options, xml_encoding encoding) + { + reset(); + + return impl::load_buffer_impl(static_cast(_root), _root, contents, size, options, encoding, true, true, &_buffer); + } + + PUGI__FN void xml_document::save(xml_writer& writer, const char_t* indent, unsigned int flags, xml_encoding encoding) const + { + impl::xml_buffered_writer buffered_writer(writer, encoding); + + if ((flags & format_write_bom) && encoding != encoding_latin1) + { + // BOM always represents the codepoint U+FEFF, so just write it in native encoding + #ifdef PUGIXML_WCHAR_MODE + unsigned int bom = 0xfeff; + buffered_writer.write(static_cast(bom)); + #else + buffered_writer.write('\xef', '\xbb', '\xbf'); + #endif + } + + if (!(flags & format_no_declaration) && !impl::has_declaration(_root)) + { + buffered_writer.write_string(PUGIXML_TEXT("'); + if (!(flags & format_raw)) buffered_writer.write('\n'); + } + + impl::node_output(buffered_writer, _root, indent, flags, 0); + } + +#ifndef PUGIXML_NO_STL + PUGI__FN void xml_document::save(std::basic_ostream >& stream, const char_t* indent, unsigned int flags, xml_encoding encoding) const + { + xml_writer_stream writer(stream); + + save(writer, indent, flags, encoding); + } + + PUGI__FN void xml_document::save(std::basic_ostream >& stream, const char_t* indent, unsigned int flags) const + { + xml_writer_stream writer(stream); + + save(writer, indent, flags, encoding_wchar); + } +#endif + + PUGI__FN bool xml_document::save_file(const char* path_, const char_t* indent, unsigned int flags, xml_encoding encoding) const + { + FILE* file = fopen(path_, (flags & format_save_file_text) ? "w" : "wb"); + return impl::save_file_impl(*this, file, indent, flags, encoding); + } + + PUGI__FN bool xml_document::save_file(const wchar_t* path_, const char_t* indent, unsigned int flags, xml_encoding encoding) const + { + FILE* file = impl::open_file_wide(path_, (flags & format_save_file_text) ? L"w" : L"wb"); + return impl::save_file_impl(*this, file, indent, flags, encoding); + } + + PUGI__FN xml_node xml_document::document_element() const + { + assert(_root); + + for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) + if (PUGI__NODETYPE(i) == node_element) + return xml_node(i); + + return xml_node(); + } + +#ifndef PUGIXML_NO_STL + PUGI__FN std::string PUGIXML_FUNCTION as_utf8(const wchar_t* str) + { + assert(str); + + return impl::as_utf8_impl(str, impl::strlength_wide(str)); + } + + PUGI__FN std::string PUGIXML_FUNCTION as_utf8(const std::basic_string& str) + { + return impl::as_utf8_impl(str.c_str(), str.size()); + } + + PUGI__FN std::basic_string PUGIXML_FUNCTION as_wide(const char* str) + { + assert(str); + + return impl::as_wide_impl(str, strlen(str)); + } + + PUGI__FN std::basic_string PUGIXML_FUNCTION as_wide(const std::string& str) + { + return impl::as_wide_impl(str.c_str(), str.size()); + } +#endif + + PUGI__FN void PUGIXML_FUNCTION set_memory_management_functions(allocation_function allocate, deallocation_function deallocate) + { + impl::xml_memory::allocate = allocate; + impl::xml_memory::deallocate = deallocate; + } + + PUGI__FN allocation_function PUGIXML_FUNCTION get_memory_allocation_function() + { + return impl::xml_memory::allocate; + } + + PUGI__FN deallocation_function PUGIXML_FUNCTION get_memory_deallocation_function() + { + return impl::xml_memory::deallocate; + } +} + +#if !defined(PUGIXML_NO_STL) && (defined(_MSC_VER) || defined(__ICC)) +namespace std +{ + // Workarounds for (non-standard) iterator category detection for older versions (MSVC7/IC8 and earlier) + PUGI__FN std::bidirectional_iterator_tag _Iter_cat(const pugi::xml_node_iterator&) + { + return std::bidirectional_iterator_tag(); + } + + PUGI__FN std::bidirectional_iterator_tag _Iter_cat(const pugi::xml_attribute_iterator&) + { + return std::bidirectional_iterator_tag(); + } + + PUGI__FN std::bidirectional_iterator_tag _Iter_cat(const pugi::xml_named_node_iterator&) + { + return std::bidirectional_iterator_tag(); + } +} +#endif + +#if !defined(PUGIXML_NO_STL) && defined(__SUNPRO_CC) +namespace std +{ + // Workarounds for (non-standard) iterator category detection + PUGI__FN std::bidirectional_iterator_tag __iterator_category(const pugi::xml_node_iterator&) + { + return std::bidirectional_iterator_tag(); + } + + PUGI__FN std::bidirectional_iterator_tag __iterator_category(const pugi::xml_attribute_iterator&) + { + return std::bidirectional_iterator_tag(); + } + + PUGI__FN std::bidirectional_iterator_tag __iterator_category(const pugi::xml_named_node_iterator&) + { + return std::bidirectional_iterator_tag(); + } +} +#endif + +#ifndef PUGIXML_NO_XPATH +// STL replacements +PUGI__NS_BEGIN + struct equal_to + { + template bool operator()(const T& lhs, const T& rhs) const + { + return lhs == rhs; + } + }; + + struct not_equal_to + { + template bool operator()(const T& lhs, const T& rhs) const + { + return lhs != rhs; + } + }; + + struct less + { + template bool operator()(const T& lhs, const T& rhs) const + { + return lhs < rhs; + } + }; + + struct less_equal + { + template bool operator()(const T& lhs, const T& rhs) const + { + return lhs <= rhs; + } + }; + + template void swap(T& lhs, T& rhs) + { + T temp = lhs; + lhs = rhs; + rhs = temp; + } + + template I min_element(I begin, I end, const Pred& pred) + { + I result = begin; + + for (I it = begin + 1; it != end; ++it) + if (pred(*it, *result)) + result = it; + + return result; + } + + template void reverse(I begin, I end) + { + while (end - begin > 1) swap(*begin++, *--end); + } + + template I unique(I begin, I end) + { + // fast skip head + while (end - begin > 1 && *begin != *(begin + 1)) begin++; + + if (begin == end) return begin; + + // last written element + I write = begin++; + + // merge unique elements + while (begin != end) + { + if (*begin != *write) + *++write = *begin++; + else + begin++; + } + + // past-the-end (write points to live element) + return write + 1; + } + + template void copy_backwards(I begin, I end, I target) + { + while (begin != end) *--target = *--end; + } + + template void insertion_sort(I begin, I end, const Pred& pred, T*) + { + assert(begin != end); + + for (I it = begin + 1; it != end; ++it) + { + T val = *it; + + if (pred(val, *begin)) + { + // move to front + copy_backwards(begin, it, it + 1); + *begin = val; + } + else + { + I hole = it; + + // move hole backwards + while (pred(val, *(hole - 1))) + { + *hole = *(hole - 1); + hole--; + } + + // fill hole with element + *hole = val; + } + } + } + + // std variant for elements with == + template void partition(I begin, I middle, I end, const Pred& pred, I* out_eqbeg, I* out_eqend) + { + I eqbeg = middle, eqend = middle + 1; + + // expand equal range + while (eqbeg != begin && *(eqbeg - 1) == *eqbeg) --eqbeg; + while (eqend != end && *eqend == *eqbeg) ++eqend; + + // process outer elements + I ltend = eqbeg, gtbeg = eqend; + + for (;;) + { + // find the element from the right side that belongs to the left one + for (; gtbeg != end; ++gtbeg) + if (!pred(*eqbeg, *gtbeg)) + { + if (*gtbeg == *eqbeg) swap(*gtbeg, *eqend++); + else break; + } + + // find the element from the left side that belongs to the right one + for (; ltend != begin; --ltend) + if (!pred(*(ltend - 1), *eqbeg)) + { + if (*eqbeg == *(ltend - 1)) swap(*(ltend - 1), *--eqbeg); + else break; + } + + // scanned all elements + if (gtbeg == end && ltend == begin) + { + *out_eqbeg = eqbeg; + *out_eqend = eqend; + return; + } + + // make room for elements by moving equal area + if (gtbeg == end) + { + if (--ltend != --eqbeg) swap(*ltend, *eqbeg); + swap(*eqbeg, *--eqend); + } + else if (ltend == begin) + { + if (eqend != gtbeg) swap(*eqbeg, *eqend); + ++eqend; + swap(*gtbeg++, *eqbeg++); + } + else swap(*gtbeg++, *--ltend); + } + } + + template void median3(I first, I middle, I last, const Pred& pred) + { + if (pred(*middle, *first)) swap(*middle, *first); + if (pred(*last, *middle)) swap(*last, *middle); + if (pred(*middle, *first)) swap(*middle, *first); + } + + template void median(I first, I middle, I last, const Pred& pred) + { + if (last - first <= 40) + { + // median of three for small chunks + median3(first, middle, last, pred); + } + else + { + // median of nine + size_t step = (last - first + 1) / 8; + + median3(first, first + step, first + 2 * step, pred); + median3(middle - step, middle, middle + step, pred); + median3(last - 2 * step, last - step, last, pred); + median3(first + step, middle, last - step, pred); + } + } + + template void sort(I begin, I end, const Pred& pred) + { + // sort large chunks + while (end - begin > 32) + { + // find median element + I middle = begin + (end - begin) / 2; + median(begin, middle, end - 1, pred); + + // partition in three chunks (< = >) + I eqbeg, eqend; + partition(begin, middle, end, pred, &eqbeg, &eqend); + + // loop on larger half + if (eqbeg - begin > end - eqend) + { + sort(eqend, end, pred); + end = eqbeg; + } + else + { + sort(begin, eqbeg, pred); + begin = eqend; + } + } + + // insertion sort small chunk + if (begin != end) insertion_sort(begin, end, pred, &*begin); + } +PUGI__NS_END + +// Allocator used for AST and evaluation stacks +PUGI__NS_BEGIN + struct xpath_memory_block + { + xpath_memory_block* next; + size_t capacity; + + char data[ + #ifdef PUGIXML_MEMORY_XPATH_PAGE_SIZE + PUGIXML_MEMORY_XPATH_PAGE_SIZE + #else + 4096 + #endif + ]; + }; + + class xpath_allocator + { + xpath_memory_block* _root; + size_t _root_size; + + public: + #ifdef PUGIXML_NO_EXCEPTIONS + jmp_buf* error_handler; + #endif + + xpath_allocator(xpath_memory_block* root, size_t root_size = 0): _root(root), _root_size(root_size) + { + #ifdef PUGIXML_NO_EXCEPTIONS + error_handler = 0; + #endif + } + + void* allocate_nothrow(size_t size) + { + // align size so that we're able to store pointers in subsequent blocks + size = (size + sizeof(void*) - 1) & ~(sizeof(void*) - 1); + + if (_root_size + size <= _root->capacity) + { + void* buf = _root->data + _root_size; + _root_size += size; + return buf; + } + else + { + // make sure we have at least 1/4th of the page free after allocation to satisfy subsequent allocation requests + size_t block_capacity_base = sizeof(_root->data); + size_t block_capacity_req = size + block_capacity_base / 4; + size_t block_capacity = (block_capacity_base > block_capacity_req) ? block_capacity_base : block_capacity_req; + + size_t block_size = block_capacity + offsetof(xpath_memory_block, data); + + xpath_memory_block* block = static_cast(xml_memory::allocate(block_size)); + if (!block) return 0; + + block->next = _root; + block->capacity = block_capacity; + + _root = block; + _root_size = size; + + return block->data; + } + } + + void* allocate(size_t size) + { + void* result = allocate_nothrow(size); + + if (!result) + { + #ifdef PUGIXML_NO_EXCEPTIONS + assert(error_handler); + longjmp(*error_handler, 1); + #else + throw std::bad_alloc(); + #endif + } + + return result; + } + + void* reallocate(void* ptr, size_t old_size, size_t new_size) + { + // align size so that we're able to store pointers in subsequent blocks + old_size = (old_size + sizeof(void*) - 1) & ~(sizeof(void*) - 1); + new_size = (new_size + sizeof(void*) - 1) & ~(sizeof(void*) - 1); + + // we can only reallocate the last object + assert(ptr == 0 || static_cast(ptr) + old_size == _root->data + _root_size); + + // adjust root size so that we have not allocated the object at all + bool only_object = (_root_size == old_size); + + if (ptr) _root_size -= old_size; + + // allocate a new version (this will obviously reuse the memory if possible) + void* result = allocate(new_size); + assert(result); + + // we have a new block + if (result != ptr && ptr) + { + // copy old data + assert(new_size >= old_size); + memcpy(result, ptr, old_size); + + // free the previous page if it had no other objects + if (only_object) + { + assert(_root->data == result); + assert(_root->next); + + xpath_memory_block* next = _root->next->next; + + if (next) + { + // deallocate the whole page, unless it was the first one + xml_memory::deallocate(_root->next); + _root->next = next; + } + } + } + + return result; + } + + void revert(const xpath_allocator& state) + { + // free all new pages + xpath_memory_block* cur = _root; + + while (cur != state._root) + { + xpath_memory_block* next = cur->next; + + xml_memory::deallocate(cur); + + cur = next; + } + + // restore state + _root = state._root; + _root_size = state._root_size; + } + + void release() + { + xpath_memory_block* cur = _root; + assert(cur); + + while (cur->next) + { + xpath_memory_block* next = cur->next; + + xml_memory::deallocate(cur); + + cur = next; + } + } + }; + + struct xpath_allocator_capture + { + xpath_allocator_capture(xpath_allocator* alloc): _target(alloc), _state(*alloc) + { + } + + ~xpath_allocator_capture() + { + _target->revert(_state); + } + + xpath_allocator* _target; + xpath_allocator _state; + }; + + struct xpath_stack + { + xpath_allocator* result; + xpath_allocator* temp; + }; + + struct xpath_stack_data + { + xpath_memory_block blocks[2]; + xpath_allocator result; + xpath_allocator temp; + xpath_stack stack; + + #ifdef PUGIXML_NO_EXCEPTIONS + jmp_buf error_handler; + #endif + + xpath_stack_data(): result(blocks + 0), temp(blocks + 1) + { + blocks[0].next = blocks[1].next = 0; + blocks[0].capacity = blocks[1].capacity = sizeof(blocks[0].data); + + stack.result = &result; + stack.temp = &temp; + + #ifdef PUGIXML_NO_EXCEPTIONS + result.error_handler = temp.error_handler = &error_handler; + #endif + } + + ~xpath_stack_data() + { + result.release(); + temp.release(); + } + }; +PUGI__NS_END + +// String class +PUGI__NS_BEGIN + class xpath_string + { + const char_t* _buffer; + bool _uses_heap; + size_t _length_heap; + + static char_t* duplicate_string(const char_t* string, size_t length, xpath_allocator* alloc) + { + char_t* result = static_cast(alloc->allocate((length + 1) * sizeof(char_t))); + assert(result); + + memcpy(result, string, length * sizeof(char_t)); + result[length] = 0; + + return result; + } + + xpath_string(const char_t* buffer, bool uses_heap_, size_t length_heap): _buffer(buffer), _uses_heap(uses_heap_), _length_heap(length_heap) + { + } + + public: + static xpath_string from_const(const char_t* str) + { + return xpath_string(str, false, 0); + } + + static xpath_string from_heap_preallocated(const char_t* begin, const char_t* end) + { + assert(begin <= end && *end == 0); + + return xpath_string(begin, true, static_cast(end - begin)); + } + + static xpath_string from_heap(const char_t* begin, const char_t* end, xpath_allocator* alloc) + { + assert(begin <= end); + + size_t length = static_cast(end - begin); + + return length == 0 ? xpath_string() : xpath_string(duplicate_string(begin, length, alloc), true, length); + } + + xpath_string(): _buffer(PUGIXML_TEXT("")), _uses_heap(false), _length_heap(0) + { + } + + void append(const xpath_string& o, xpath_allocator* alloc) + { + // skip empty sources + if (!*o._buffer) return; + + // fast append for constant empty target and constant source + if (!*_buffer && !_uses_heap && !o._uses_heap) + { + _buffer = o._buffer; + } + else + { + // need to make heap copy + size_t target_length = length(); + size_t source_length = o.length(); + size_t result_length = target_length + source_length; + + // allocate new buffer + char_t* result = static_cast(alloc->reallocate(_uses_heap ? const_cast(_buffer) : 0, (target_length + 1) * sizeof(char_t), (result_length + 1) * sizeof(char_t))); + assert(result); + + // append first string to the new buffer in case there was no reallocation + if (!_uses_heap) memcpy(result, _buffer, target_length * sizeof(char_t)); + + // append second string to the new buffer + memcpy(result + target_length, o._buffer, source_length * sizeof(char_t)); + result[result_length] = 0; + + // finalize + _buffer = result; + _uses_heap = true; + _length_heap = result_length; + } + } + + const char_t* c_str() const + { + return _buffer; + } + + size_t length() const + { + return _uses_heap ? _length_heap : strlength(_buffer); + } + + char_t* data(xpath_allocator* alloc) + { + // make private heap copy + if (!_uses_heap) + { + size_t length_ = strlength(_buffer); + + _buffer = duplicate_string(_buffer, length_, alloc); + _uses_heap = true; + _length_heap = length_; + } + + return const_cast(_buffer); + } + + bool empty() const + { + return *_buffer == 0; + } + + bool operator==(const xpath_string& o) const + { + return strequal(_buffer, o._buffer); + } + + bool operator!=(const xpath_string& o) const + { + return !strequal(_buffer, o._buffer); + } + + bool uses_heap() const + { + return _uses_heap; + } + }; +PUGI__NS_END + +PUGI__NS_BEGIN + PUGI__FN bool starts_with(const char_t* string, const char_t* pattern) + { + while (*pattern && *string == *pattern) + { + string++; + pattern++; + } + + return *pattern == 0; + } + + PUGI__FN const char_t* find_char(const char_t* s, char_t c) + { + #ifdef PUGIXML_WCHAR_MODE + return wcschr(s, c); + #else + return strchr(s, c); + #endif + } + + PUGI__FN const char_t* find_substring(const char_t* s, const char_t* p) + { + #ifdef PUGIXML_WCHAR_MODE + // MSVC6 wcsstr bug workaround (if s is empty it always returns 0) + return (*p == 0) ? s : wcsstr(s, p); + #else + return strstr(s, p); + #endif + } + + // Converts symbol to lower case, if it is an ASCII one + PUGI__FN char_t tolower_ascii(char_t ch) + { + return static_cast(ch - 'A') < 26 ? static_cast(ch | ' ') : ch; + } + + PUGI__FN xpath_string string_value(const xpath_node& na, xpath_allocator* alloc) + { + if (na.attribute()) + return xpath_string::from_const(na.attribute().value()); + else + { + xml_node n = na.node(); + + switch (n.type()) + { + case node_pcdata: + case node_cdata: + case node_comment: + case node_pi: + return xpath_string::from_const(n.value()); + + case node_document: + case node_element: + { + xpath_string result; + + xml_node cur = n.first_child(); + + while (cur && cur != n) + { + if (cur.type() == node_pcdata || cur.type() == node_cdata) + result.append(xpath_string::from_const(cur.value()), alloc); + + if (cur.first_child()) + cur = cur.first_child(); + else if (cur.next_sibling()) + cur = cur.next_sibling(); + else + { + while (!cur.next_sibling() && cur != n) + cur = cur.parent(); + + if (cur != n) cur = cur.next_sibling(); + } + } + + return result; + } + + default: + return xpath_string(); + } + } + } + + PUGI__FN bool node_is_before_sibling(xml_node_struct* ln, xml_node_struct* rn) + { + assert(ln->parent == rn->parent); + + // there is no common ancestor (the shared parent is null), nodes are from different documents + if (!ln->parent) return ln < rn; + + // determine sibling order + xml_node_struct* ls = ln; + xml_node_struct* rs = rn; + + while (ls && rs) + { + if (ls == rn) return true; + if (rs == ln) return false; + + ls = ls->next_sibling; + rs = rs->next_sibling; + } + + // if rn sibling chain ended ln must be before rn + return !rs; + } + + PUGI__FN bool node_is_before(xml_node_struct* ln, xml_node_struct* rn) + { + // find common ancestor at the same depth, if any + xml_node_struct* lp = ln; + xml_node_struct* rp = rn; + + while (lp && rp && lp->parent != rp->parent) + { + lp = lp->parent; + rp = rp->parent; + } + + // parents are the same! + if (lp && rp) return node_is_before_sibling(lp, rp); + + // nodes are at different depths, need to normalize heights + bool left_higher = !lp; + + while (lp) + { + lp = lp->parent; + ln = ln->parent; + } + + while (rp) + { + rp = rp->parent; + rn = rn->parent; + } + + // one node is the ancestor of the other + if (ln == rn) return left_higher; + + // find common ancestor... again + while (ln->parent != rn->parent) + { + ln = ln->parent; + rn = rn->parent; + } + + return node_is_before_sibling(ln, rn); + } + + PUGI__FN bool node_is_ancestor(xml_node_struct* parent, xml_node_struct* node) + { + while (node && node != parent) node = node->parent; + + return parent && node == parent; + } + + PUGI__FN const void* document_buffer_order(const xpath_node& xnode) + { + xml_node_struct* node = xnode.node().internal_object(); + + if (node) + { + if ((get_document(node).header & xml_memory_page_contents_shared_mask) == 0) + { + if (node->name && (node->header & impl::xml_memory_page_name_allocated_or_shared_mask) == 0) return node->name; + if (node->value && (node->header & impl::xml_memory_page_value_allocated_or_shared_mask) == 0) return node->value; + } + + return 0; + } + + xml_attribute_struct* attr = xnode.attribute().internal_object(); + + if (attr) + { + if ((get_document(attr).header & xml_memory_page_contents_shared_mask) == 0) + { + if ((attr->header & impl::xml_memory_page_name_allocated_or_shared_mask) == 0) return attr->name; + if ((attr->header & impl::xml_memory_page_value_allocated_or_shared_mask) == 0) return attr->value; + } + + return 0; + } + + return 0; + } + + struct document_order_comparator + { + bool operator()(const xpath_node& lhs, const xpath_node& rhs) const + { + // optimized document order based check + const void* lo = document_buffer_order(lhs); + const void* ro = document_buffer_order(rhs); + + if (lo && ro) return lo < ro; + + // slow comparison + xml_node ln = lhs.node(), rn = rhs.node(); + + // compare attributes + if (lhs.attribute() && rhs.attribute()) + { + // shared parent + if (lhs.parent() == rhs.parent()) + { + // determine sibling order + for (xml_attribute a = lhs.attribute(); a; a = a.next_attribute()) + if (a == rhs.attribute()) + return true; + + return false; + } + + // compare attribute parents + ln = lhs.parent(); + rn = rhs.parent(); + } + else if (lhs.attribute()) + { + // attributes go after the parent element + if (lhs.parent() == rhs.node()) return false; + + ln = lhs.parent(); + } + else if (rhs.attribute()) + { + // attributes go after the parent element + if (rhs.parent() == lhs.node()) return true; + + rn = rhs.parent(); + } + + if (ln == rn) return false; + + if (!ln || !rn) return ln < rn; + + return node_is_before(ln.internal_object(), rn.internal_object()); + } + }; + + struct duplicate_comparator + { + bool operator()(const xpath_node& lhs, const xpath_node& rhs) const + { + if (lhs.attribute()) return rhs.attribute() ? lhs.attribute() < rhs.attribute() : true; + else return rhs.attribute() ? false : lhs.node() < rhs.node(); + } + }; + + PUGI__FN double gen_nan() + { + #if defined(__STDC_IEC_559__) || ((FLT_RADIX - 0 == 2) && (FLT_MAX_EXP - 0 == 128) && (FLT_MANT_DIG - 0 == 24)) + union { float f; uint32_t i; } u[sizeof(float) == sizeof(uint32_t) ? 1 : -1]; + u[0].i = 0x7fc00000; + return u[0].f; + #else + // fallback + const volatile double zero = 0.0; + return zero / zero; + #endif + } + + PUGI__FN bool is_nan(double value) + { + #if defined(PUGI__MSVC_CRT_VERSION) || defined(__BORLANDC__) + return !!_isnan(value); + #elif defined(fpclassify) && defined(FP_NAN) + return fpclassify(value) == FP_NAN; + #else + // fallback + const volatile double v = value; + return v != v; + #endif + } + + PUGI__FN const char_t* convert_number_to_string_special(double value) + { + #if defined(PUGI__MSVC_CRT_VERSION) || defined(__BORLANDC__) + if (_finite(value)) return (value == 0) ? PUGIXML_TEXT("0") : 0; + if (_isnan(value)) return PUGIXML_TEXT("NaN"); + return value > 0 ? PUGIXML_TEXT("Infinity") : PUGIXML_TEXT("-Infinity"); + #elif defined(fpclassify) && defined(FP_NAN) && defined(FP_INFINITE) && defined(FP_ZERO) + switch (fpclassify(value)) + { + case FP_NAN: + return PUGIXML_TEXT("NaN"); + + case FP_INFINITE: + return value > 0 ? PUGIXML_TEXT("Infinity") : PUGIXML_TEXT("-Infinity"); + + case FP_ZERO: + return PUGIXML_TEXT("0"); + + default: + return 0; + } + #else + // fallback + const volatile double v = value; + + if (v == 0) return PUGIXML_TEXT("0"); + if (v != v) return PUGIXML_TEXT("NaN"); + if (v * 2 == v) return value > 0 ? PUGIXML_TEXT("Infinity") : PUGIXML_TEXT("-Infinity"); + return 0; + #endif + } + + PUGI__FN bool convert_number_to_boolean(double value) + { + return (value != 0 && !is_nan(value)); + } + + PUGI__FN void truncate_zeros(char* begin, char* end) + { + while (begin != end && end[-1] == '0') end--; + + *end = 0; + } + + // gets mantissa digits in the form of 0.xxxxx with 0. implied and the exponent +#if defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 && !defined(_WIN32_WCE) + PUGI__FN void convert_number_to_mantissa_exponent(double value, char* buffer, size_t buffer_size, char** out_mantissa, int* out_exponent) + { + // get base values + int sign, exponent; + _ecvt_s(buffer, buffer_size, value, DBL_DIG + 1, &exponent, &sign); + + // truncate redundant zeros + truncate_zeros(buffer, buffer + strlen(buffer)); + + // fill results + *out_mantissa = buffer; + *out_exponent = exponent; + } +#else + PUGI__FN void convert_number_to_mantissa_exponent(double value, char* buffer, size_t buffer_size, char** out_mantissa, int* out_exponent) + { + // get a scientific notation value with IEEE DBL_DIG decimals + sprintf(buffer, "%.*e", DBL_DIG, value); + assert(strlen(buffer) < buffer_size); + (void)!buffer_size; + + // get the exponent (possibly negative) + char* exponent_string = strchr(buffer, 'e'); + assert(exponent_string); + + int exponent = atoi(exponent_string + 1); + + // extract mantissa string: skip sign + char* mantissa = buffer[0] == '-' ? buffer + 1 : buffer; + assert(mantissa[0] != '0' && mantissa[1] == '.'); + + // divide mantissa by 10 to eliminate integer part + mantissa[1] = mantissa[0]; + mantissa++; + exponent++; + + // remove extra mantissa digits and zero-terminate mantissa + truncate_zeros(mantissa, exponent_string); + + // fill results + *out_mantissa = mantissa; + *out_exponent = exponent; + } +#endif + + PUGI__FN xpath_string convert_number_to_string(double value, xpath_allocator* alloc) + { + // try special number conversion + const char_t* special = convert_number_to_string_special(value); + if (special) return xpath_string::from_const(special); + + // get mantissa + exponent form + char mantissa_buffer[32]; + + char* mantissa; + int exponent; + convert_number_to_mantissa_exponent(value, mantissa_buffer, sizeof(mantissa_buffer), &mantissa, &exponent); + + // allocate a buffer of suitable length for the number + size_t result_size = strlen(mantissa_buffer) + (exponent > 0 ? exponent : -exponent) + 4; + char_t* result = static_cast(alloc->allocate(sizeof(char_t) * result_size)); + assert(result); + + // make the number! + char_t* s = result; + + // sign + if (value < 0) *s++ = '-'; + + // integer part + if (exponent <= 0) + { + *s++ = '0'; + } + else + { + while (exponent > 0) + { + assert(*mantissa == 0 || static_cast(static_cast(*mantissa) - '0') <= 9); + *s++ = *mantissa ? *mantissa++ : '0'; + exponent--; + } + } + + // fractional part + if (*mantissa) + { + // decimal point + *s++ = '.'; + + // extra zeroes from negative exponent + while (exponent < 0) + { + *s++ = '0'; + exponent++; + } + + // extra mantissa digits + while (*mantissa) + { + assert(static_cast(*mantissa - '0') <= 9); + *s++ = *mantissa++; + } + } + + // zero-terminate + assert(s < result + result_size); + *s = 0; + + return xpath_string::from_heap_preallocated(result, s); + } + + PUGI__FN bool check_string_to_number_format(const char_t* string) + { + // parse leading whitespace + while (PUGI__IS_CHARTYPE(*string, ct_space)) ++string; + + // parse sign + if (*string == '-') ++string; + + if (!*string) return false; + + // if there is no integer part, there should be a decimal part with at least one digit + if (!PUGI__IS_CHARTYPEX(string[0], ctx_digit) && (string[0] != '.' || !PUGI__IS_CHARTYPEX(string[1], ctx_digit))) return false; + + // parse integer part + while (PUGI__IS_CHARTYPEX(*string, ctx_digit)) ++string; + + // parse decimal part + if (*string == '.') + { + ++string; + + while (PUGI__IS_CHARTYPEX(*string, ctx_digit)) ++string; + } + + // parse trailing whitespace + while (PUGI__IS_CHARTYPE(*string, ct_space)) ++string; + + return *string == 0; + } + + PUGI__FN double convert_string_to_number(const char_t* string) + { + // check string format + if (!check_string_to_number_format(string)) return gen_nan(); + + // parse string + #ifdef PUGIXML_WCHAR_MODE + return wcstod(string, 0); + #else + return atof(string); + #endif + } + + PUGI__FN bool convert_string_to_number_scratch(char_t (&buffer)[32], const char_t* begin, const char_t* end, double* out_result) + { + size_t length = static_cast(end - begin); + char_t* scratch = buffer; + + if (length >= sizeof(buffer) / sizeof(buffer[0])) + { + // need to make dummy on-heap copy + scratch = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!scratch) return false; + } + + // copy string to zero-terminated buffer and perform conversion + memcpy(scratch, begin, length * sizeof(char_t)); + scratch[length] = 0; + + *out_result = convert_string_to_number(scratch); + + // free dummy buffer + if (scratch != buffer) xml_memory::deallocate(scratch); + + return true; + } + + PUGI__FN double round_nearest(double value) + { + return floor(value + 0.5); + } + + PUGI__FN double round_nearest_nzero(double value) + { + // same as round_nearest, but returns -0 for [-0.5, -0] + // ceil is used to differentiate between +0 and -0 (we return -0 for [-0.5, -0] and +0 for +0) + return (value >= -0.5 && value <= 0) ? ceil(value) : floor(value + 0.5); + } + + PUGI__FN const char_t* qualified_name(const xpath_node& node) + { + return node.attribute() ? node.attribute().name() : node.node().name(); + } + + PUGI__FN const char_t* local_name(const xpath_node& node) + { + const char_t* name = qualified_name(node); + const char_t* p = find_char(name, ':'); + + return p ? p + 1 : name; + } + + struct namespace_uri_predicate + { + const char_t* prefix; + size_t prefix_length; + + namespace_uri_predicate(const char_t* name) + { + const char_t* pos = find_char(name, ':'); + + prefix = pos ? name : 0; + prefix_length = pos ? static_cast(pos - name) : 0; + } + + bool operator()(xml_attribute a) const + { + const char_t* name = a.name(); + + if (!starts_with(name, PUGIXML_TEXT("xmlns"))) return false; + + return prefix ? name[5] == ':' && strequalrange(name + 6, prefix, prefix_length) : name[5] == 0; + } + }; + + PUGI__FN const char_t* namespace_uri(xml_node node) + { + namespace_uri_predicate pred = node.name(); + + xml_node p = node; + + while (p) + { + xml_attribute a = p.find_attribute(pred); + + if (a) return a.value(); + + p = p.parent(); + } + + return PUGIXML_TEXT(""); + } + + PUGI__FN const char_t* namespace_uri(xml_attribute attr, xml_node parent) + { + namespace_uri_predicate pred = attr.name(); + + // Default namespace does not apply to attributes + if (!pred.prefix) return PUGIXML_TEXT(""); + + xml_node p = parent; + + while (p) + { + xml_attribute a = p.find_attribute(pred); + + if (a) return a.value(); + + p = p.parent(); + } + + return PUGIXML_TEXT(""); + } + + PUGI__FN const char_t* namespace_uri(const xpath_node& node) + { + return node.attribute() ? namespace_uri(node.attribute(), node.parent()) : namespace_uri(node.node()); + } + + PUGI__FN char_t* normalize_space(char_t* buffer) + { + char_t* write = buffer; + + for (char_t* it = buffer; *it; ) + { + char_t ch = *it++; + + if (PUGI__IS_CHARTYPE(ch, ct_space)) + { + // replace whitespace sequence with single space + while (PUGI__IS_CHARTYPE(*it, ct_space)) it++; + + // avoid leading spaces + if (write != buffer) *write++ = ' '; + } + else *write++ = ch; + } + + // remove trailing space + if (write != buffer && PUGI__IS_CHARTYPE(write[-1], ct_space)) write--; + + // zero-terminate + *write = 0; + + return write; + } + + PUGI__FN char_t* translate(char_t* buffer, const char_t* from, const char_t* to, size_t to_length) + { + char_t* write = buffer; + + while (*buffer) + { + PUGI__DMC_VOLATILE char_t ch = *buffer++; + + const char_t* pos = find_char(from, ch); + + if (!pos) + *write++ = ch; // do not process + else if (static_cast(pos - from) < to_length) + *write++ = to[pos - from]; // replace + } + + // zero-terminate + *write = 0; + + return write; + } + + PUGI__FN unsigned char* translate_table_generate(xpath_allocator* alloc, const char_t* from, const char_t* to) + { + unsigned char table[128] = {0}; + + while (*from) + { + unsigned int fc = static_cast(*from); + unsigned int tc = static_cast(*to); + + if (fc >= 128 || tc >= 128) + return 0; + + // code=128 means "skip character" + if (!table[fc]) + table[fc] = static_cast(tc ? tc : 128); + + from++; + if (tc) to++; + } + + for (int i = 0; i < 128; ++i) + if (!table[i]) + table[i] = static_cast(i); + + void* result = alloc->allocate_nothrow(sizeof(table)); + + if (result) + { + memcpy(result, table, sizeof(table)); + } + + return static_cast(result); + } + + PUGI__FN char_t* translate_table(char_t* buffer, const unsigned char* table) + { + char_t* write = buffer; + + while (*buffer) + { + char_t ch = *buffer++; + unsigned int index = static_cast(ch); + + if (index < 128) + { + unsigned char code = table[index]; + + // code=128 means "skip character" (table size is 128 so 128 can be a special value) + // this code skips these characters without extra branches + *write = static_cast(code); + write += 1 - (code >> 7); + } + else + { + *write++ = ch; + } + } + + // zero-terminate + *write = 0; + + return write; + } + + inline bool is_xpath_attribute(const char_t* name) + { + return !(starts_with(name, PUGIXML_TEXT("xmlns")) && (name[5] == 0 || name[5] == ':')); + } + + struct xpath_variable_boolean: xpath_variable + { + xpath_variable_boolean(): value(false) + { + } + + bool value; + char_t name[1]; + }; + + struct xpath_variable_number: xpath_variable + { + xpath_variable_number(): value(0) + { + } + + double value; + char_t name[1]; + }; + + struct xpath_variable_string: xpath_variable + { + xpath_variable_string(): value(0) + { + } + + ~xpath_variable_string() + { + if (value) xml_memory::deallocate(value); + } + + char_t* value; + char_t name[1]; + }; + + struct xpath_variable_node_set: xpath_variable + { + xpath_node_set value; + char_t name[1]; + }; + + static const xpath_node_set dummy_node_set; + + PUGI__FN unsigned int hash_string(const char_t* str) + { + // Jenkins one-at-a-time hash (http://en.wikipedia.org/wiki/Jenkins_hash_function#one-at-a-time) + unsigned int result = 0; + + while (*str) + { + result += static_cast(*str++); + result += result << 10; + result ^= result >> 6; + } + + result += result << 3; + result ^= result >> 11; + result += result << 15; + + return result; + } + + template PUGI__FN T* new_xpath_variable(const char_t* name) + { + size_t length = strlength(name); + if (length == 0) return 0; // empty variable names are invalid + + // $$ we can't use offsetof(T, name) because T is non-POD, so we just allocate additional length characters + void* memory = xml_memory::allocate(sizeof(T) + length * sizeof(char_t)); + if (!memory) return 0; + + T* result = new (memory) T(); + + memcpy(result->name, name, (length + 1) * sizeof(char_t)); + + return result; + } + + PUGI__FN xpath_variable* new_xpath_variable(xpath_value_type type, const char_t* name) + { + switch (type) + { + case xpath_type_node_set: + return new_xpath_variable(name); + + case xpath_type_number: + return new_xpath_variable(name); + + case xpath_type_string: + return new_xpath_variable(name); + + case xpath_type_boolean: + return new_xpath_variable(name); + + default: + return 0; + } + } + + template PUGI__FN void delete_xpath_variable(T* var) + { + var->~T(); + xml_memory::deallocate(var); + } + + PUGI__FN void delete_xpath_variable(xpath_value_type type, xpath_variable* var) + { + switch (type) + { + case xpath_type_node_set: + delete_xpath_variable(static_cast(var)); + break; + + case xpath_type_number: + delete_xpath_variable(static_cast(var)); + break; + + case xpath_type_string: + delete_xpath_variable(static_cast(var)); + break; + + case xpath_type_boolean: + delete_xpath_variable(static_cast(var)); + break; + + default: + assert(!"Invalid variable type"); + } + } + + PUGI__FN xpath_variable* get_variable_scratch(char_t (&buffer)[32], xpath_variable_set* set, const char_t* begin, const char_t* end) + { + size_t length = static_cast(end - begin); + char_t* scratch = buffer; + + if (length >= sizeof(buffer) / sizeof(buffer[0])) + { + // need to make dummy on-heap copy + scratch = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!scratch) return 0; + } + + // copy string to zero-terminated buffer and perform lookup + memcpy(scratch, begin, length * sizeof(char_t)); + scratch[length] = 0; + + xpath_variable* result = set->get(scratch); + + // free dummy buffer + if (scratch != buffer) xml_memory::deallocate(scratch); + + return result; + } +PUGI__NS_END + +// Internal node set class +PUGI__NS_BEGIN + PUGI__FN xpath_node_set::type_t xpath_get_order(const xpath_node* begin, const xpath_node* end) + { + if (end - begin < 2) + return xpath_node_set::type_sorted; + + document_order_comparator cmp; + + bool first = cmp(begin[0], begin[1]); + + for (const xpath_node* it = begin + 1; it + 1 < end; ++it) + if (cmp(it[0], it[1]) != first) + return xpath_node_set::type_unsorted; + + return first ? xpath_node_set::type_sorted : xpath_node_set::type_sorted_reverse; + } + + PUGI__FN xpath_node_set::type_t xpath_sort(xpath_node* begin, xpath_node* end, xpath_node_set::type_t type, bool rev) + { + xpath_node_set::type_t order = rev ? xpath_node_set::type_sorted_reverse : xpath_node_set::type_sorted; + + if (type == xpath_node_set::type_unsorted) + { + xpath_node_set::type_t sorted = xpath_get_order(begin, end); + + if (sorted == xpath_node_set::type_unsorted) + { + sort(begin, end, document_order_comparator()); + + type = xpath_node_set::type_sorted; + } + else + type = sorted; + } + + if (type != order) reverse(begin, end); + + return order; + } + + PUGI__FN xpath_node xpath_first(const xpath_node* begin, const xpath_node* end, xpath_node_set::type_t type) + { + if (begin == end) return xpath_node(); + + switch (type) + { + case xpath_node_set::type_sorted: + return *begin; + + case xpath_node_set::type_sorted_reverse: + return *(end - 1); + + case xpath_node_set::type_unsorted: + return *min_element(begin, end, document_order_comparator()); + + default: + assert(!"Invalid node set type"); + return xpath_node(); + } + } + + class xpath_node_set_raw + { + xpath_node_set::type_t _type; + + xpath_node* _begin; + xpath_node* _end; + xpath_node* _eos; + + public: + xpath_node_set_raw(): _type(xpath_node_set::type_unsorted), _begin(0), _end(0), _eos(0) + { + } + + xpath_node* begin() const + { + return _begin; + } + + xpath_node* end() const + { + return _end; + } + + bool empty() const + { + return _begin == _end; + } + + size_t size() const + { + return static_cast(_end - _begin); + } + + xpath_node first() const + { + return xpath_first(_begin, _end, _type); + } + + void push_back_grow(const xpath_node& node, xpath_allocator* alloc); + + void push_back(const xpath_node& node, xpath_allocator* alloc) + { + if (_end != _eos) + *_end++ = node; + else + push_back_grow(node, alloc); + } + + void append(const xpath_node* begin_, const xpath_node* end_, xpath_allocator* alloc) + { + if (begin_ == end_) return; + + size_t size_ = static_cast(_end - _begin); + size_t capacity = static_cast(_eos - _begin); + size_t count = static_cast(end_ - begin_); + + if (size_ + count > capacity) + { + // reallocate the old array or allocate a new one + xpath_node* data = static_cast(alloc->reallocate(_begin, capacity * sizeof(xpath_node), (size_ + count) * sizeof(xpath_node))); + assert(data); + + // finalize + _begin = data; + _end = data + size_; + _eos = data + size_ + count; + } + + memcpy(_end, begin_, count * sizeof(xpath_node)); + _end += count; + } + + void sort_do() + { + _type = xpath_sort(_begin, _end, _type, false); + } + + void truncate(xpath_node* pos) + { + assert(_begin <= pos && pos <= _end); + + _end = pos; + } + + void remove_duplicates() + { + if (_type == xpath_node_set::type_unsorted) + sort(_begin, _end, duplicate_comparator()); + + _end = unique(_begin, _end); + } + + xpath_node_set::type_t type() const + { + return _type; + } + + void set_type(xpath_node_set::type_t value) + { + _type = value; + } + }; + + PUGI__FN_NO_INLINE void xpath_node_set_raw::push_back_grow(const xpath_node& node, xpath_allocator* alloc) + { + size_t capacity = static_cast(_eos - _begin); + + // get new capacity (1.5x rule) + size_t new_capacity = capacity + capacity / 2 + 1; + + // reallocate the old array or allocate a new one + xpath_node* data = static_cast(alloc->reallocate(_begin, capacity * sizeof(xpath_node), new_capacity * sizeof(xpath_node))); + assert(data); + + // finalize + _begin = data; + _end = data + capacity; + _eos = data + new_capacity; + + // push + *_end++ = node; + } +PUGI__NS_END + +PUGI__NS_BEGIN + struct xpath_context + { + xpath_node n; + size_t position, size; + + xpath_context(const xpath_node& n_, size_t position_, size_t size_): n(n_), position(position_), size(size_) + { + } + }; + + enum lexeme_t + { + lex_none = 0, + lex_equal, + lex_not_equal, + lex_less, + lex_greater, + lex_less_or_equal, + lex_greater_or_equal, + lex_plus, + lex_minus, + lex_multiply, + lex_union, + lex_var_ref, + lex_open_brace, + lex_close_brace, + lex_quoted_string, + lex_number, + lex_slash, + lex_double_slash, + lex_open_square_brace, + lex_close_square_brace, + lex_string, + lex_comma, + lex_axis_attribute, + lex_dot, + lex_double_dot, + lex_double_colon, + lex_eof + }; + + struct xpath_lexer_string + { + const char_t* begin; + const char_t* end; + + xpath_lexer_string(): begin(0), end(0) + { + } + + bool operator==(const char_t* other) const + { + size_t length = static_cast(end - begin); + + return strequalrange(other, begin, length); + } + }; + + class xpath_lexer + { + const char_t* _cur; + const char_t* _cur_lexeme_pos; + xpath_lexer_string _cur_lexeme_contents; + + lexeme_t _cur_lexeme; + + public: + explicit xpath_lexer(const char_t* query): _cur(query) + { + next(); + } + + const char_t* state() const + { + return _cur; + } + + void next() + { + const char_t* cur = _cur; + + while (PUGI__IS_CHARTYPE(*cur, ct_space)) ++cur; + + // save lexeme position for error reporting + _cur_lexeme_pos = cur; + + switch (*cur) + { + case 0: + _cur_lexeme = lex_eof; + break; + + case '>': + if (*(cur+1) == '=') + { + cur += 2; + _cur_lexeme = lex_greater_or_equal; + } + else + { + cur += 1; + _cur_lexeme = lex_greater; + } + break; + + case '<': + if (*(cur+1) == '=') + { + cur += 2; + _cur_lexeme = lex_less_or_equal; + } + else + { + cur += 1; + _cur_lexeme = lex_less; + } + break; + + case '!': + if (*(cur+1) == '=') + { + cur += 2; + _cur_lexeme = lex_not_equal; + } + else + { + _cur_lexeme = lex_none; + } + break; + + case '=': + cur += 1; + _cur_lexeme = lex_equal; + + break; + + case '+': + cur += 1; + _cur_lexeme = lex_plus; + + break; + + case '-': + cur += 1; + _cur_lexeme = lex_minus; + + break; + + case '*': + cur += 1; + _cur_lexeme = lex_multiply; + + break; + + case '|': + cur += 1; + _cur_lexeme = lex_union; + + break; + + case '$': + cur += 1; + + if (PUGI__IS_CHARTYPEX(*cur, ctx_start_symbol)) + { + _cur_lexeme_contents.begin = cur; + + while (PUGI__IS_CHARTYPEX(*cur, ctx_symbol)) cur++; + + if (cur[0] == ':' && PUGI__IS_CHARTYPEX(cur[1], ctx_symbol)) // qname + { + cur++; // : + + while (PUGI__IS_CHARTYPEX(*cur, ctx_symbol)) cur++; + } + + _cur_lexeme_contents.end = cur; + + _cur_lexeme = lex_var_ref; + } + else + { + _cur_lexeme = lex_none; + } + + break; + + case '(': + cur += 1; + _cur_lexeme = lex_open_brace; + + break; + + case ')': + cur += 1; + _cur_lexeme = lex_close_brace; + + break; + + case '[': + cur += 1; + _cur_lexeme = lex_open_square_brace; + + break; + + case ']': + cur += 1; + _cur_lexeme = lex_close_square_brace; + + break; + + case ',': + cur += 1; + _cur_lexeme = lex_comma; + + break; + + case '/': + if (*(cur+1) == '/') + { + cur += 2; + _cur_lexeme = lex_double_slash; + } + else + { + cur += 1; + _cur_lexeme = lex_slash; + } + break; + + case '.': + if (*(cur+1) == '.') + { + cur += 2; + _cur_lexeme = lex_double_dot; + } + else if (PUGI__IS_CHARTYPEX(*(cur+1), ctx_digit)) + { + _cur_lexeme_contents.begin = cur; // . + + ++cur; + + while (PUGI__IS_CHARTYPEX(*cur, ctx_digit)) cur++; + + _cur_lexeme_contents.end = cur; + + _cur_lexeme = lex_number; + } + else + { + cur += 1; + _cur_lexeme = lex_dot; + } + break; + + case '@': + cur += 1; + _cur_lexeme = lex_axis_attribute; + + break; + + case '"': + case '\'': + { + char_t terminator = *cur; + + ++cur; + + _cur_lexeme_contents.begin = cur; + while (*cur && *cur != terminator) cur++; + _cur_lexeme_contents.end = cur; + + if (!*cur) + _cur_lexeme = lex_none; + else + { + cur += 1; + _cur_lexeme = lex_quoted_string; + } + + break; + } + + case ':': + if (*(cur+1) == ':') + { + cur += 2; + _cur_lexeme = lex_double_colon; + } + else + { + _cur_lexeme = lex_none; + } + break; + + default: + if (PUGI__IS_CHARTYPEX(*cur, ctx_digit)) + { + _cur_lexeme_contents.begin = cur; + + while (PUGI__IS_CHARTYPEX(*cur, ctx_digit)) cur++; + + if (*cur == '.') + { + cur++; + + while (PUGI__IS_CHARTYPEX(*cur, ctx_digit)) cur++; + } + + _cur_lexeme_contents.end = cur; + + _cur_lexeme = lex_number; + } + else if (PUGI__IS_CHARTYPEX(*cur, ctx_start_symbol)) + { + _cur_lexeme_contents.begin = cur; + + while (PUGI__IS_CHARTYPEX(*cur, ctx_symbol)) cur++; + + if (cur[0] == ':') + { + if (cur[1] == '*') // namespace test ncname:* + { + cur += 2; // :* + } + else if (PUGI__IS_CHARTYPEX(cur[1], ctx_symbol)) // namespace test qname + { + cur++; // : + + while (PUGI__IS_CHARTYPEX(*cur, ctx_symbol)) cur++; + } + } + + _cur_lexeme_contents.end = cur; + + _cur_lexeme = lex_string; + } + else + { + _cur_lexeme = lex_none; + } + } + + _cur = cur; + } + + lexeme_t current() const + { + return _cur_lexeme; + } + + const char_t* current_pos() const + { + return _cur_lexeme_pos; + } + + const xpath_lexer_string& contents() const + { + assert(_cur_lexeme == lex_var_ref || _cur_lexeme == lex_number || _cur_lexeme == lex_string || _cur_lexeme == lex_quoted_string); + + return _cur_lexeme_contents; + } + }; + + enum ast_type_t + { + ast_unknown, + ast_op_or, // left or right + ast_op_and, // left and right + ast_op_equal, // left = right + ast_op_not_equal, // left != right + ast_op_less, // left < right + ast_op_greater, // left > right + ast_op_less_or_equal, // left <= right + ast_op_greater_or_equal, // left >= right + ast_op_add, // left + right + ast_op_subtract, // left - right + ast_op_multiply, // left * right + ast_op_divide, // left / right + ast_op_mod, // left % right + ast_op_negate, // left - right + ast_op_union, // left | right + ast_predicate, // apply predicate to set; next points to next predicate + ast_filter, // select * from left where right + ast_string_constant, // string constant + ast_number_constant, // number constant + ast_variable, // variable + ast_func_last, // last() + ast_func_position, // position() + ast_func_count, // count(left) + ast_func_id, // id(left) + ast_func_local_name_0, // local-name() + ast_func_local_name_1, // local-name(left) + ast_func_namespace_uri_0, // namespace-uri() + ast_func_namespace_uri_1, // namespace-uri(left) + ast_func_name_0, // name() + ast_func_name_1, // name(left) + ast_func_string_0, // string() + ast_func_string_1, // string(left) + ast_func_concat, // concat(left, right, siblings) + ast_func_starts_with, // starts_with(left, right) + ast_func_contains, // contains(left, right) + ast_func_substring_before, // substring-before(left, right) + ast_func_substring_after, // substring-after(left, right) + ast_func_substring_2, // substring(left, right) + ast_func_substring_3, // substring(left, right, third) + ast_func_string_length_0, // string-length() + ast_func_string_length_1, // string-length(left) + ast_func_normalize_space_0, // normalize-space() + ast_func_normalize_space_1, // normalize-space(left) + ast_func_translate, // translate(left, right, third) + ast_func_boolean, // boolean(left) + ast_func_not, // not(left) + ast_func_true, // true() + ast_func_false, // false() + ast_func_lang, // lang(left) + ast_func_number_0, // number() + ast_func_number_1, // number(left) + ast_func_sum, // sum(left) + ast_func_floor, // floor(left) + ast_func_ceiling, // ceiling(left) + ast_func_round, // round(left) + ast_step, // process set left with step + ast_step_root, // select root node + + ast_opt_translate_table, // translate(left, right, third) where right/third are constants + ast_opt_compare_attribute // @name = 'string' + }; + + enum axis_t + { + axis_ancestor, + axis_ancestor_or_self, + axis_attribute, + axis_child, + axis_descendant, + axis_descendant_or_self, + axis_following, + axis_following_sibling, + axis_namespace, + axis_parent, + axis_preceding, + axis_preceding_sibling, + axis_self + }; + + enum nodetest_t + { + nodetest_none, + nodetest_name, + nodetest_type_node, + nodetest_type_comment, + nodetest_type_pi, + nodetest_type_text, + nodetest_pi, + nodetest_all, + nodetest_all_in_namespace + }; + + enum predicate_t + { + predicate_default, + predicate_posinv, + predicate_constant, + predicate_constant_one + }; + + enum nodeset_eval_t + { + nodeset_eval_all, + nodeset_eval_any, + nodeset_eval_first + }; + + template struct axis_to_type + { + static const axis_t axis; + }; + + template const axis_t axis_to_type::axis = N; + + class xpath_ast_node + { + private: + // node type + char _type; + char _rettype; + + // for ast_step + char _axis; + + // for ast_step/ast_predicate/ast_filter + char _test; + + // tree node structure + xpath_ast_node* _left; + xpath_ast_node* _right; + xpath_ast_node* _next; + + union + { + // value for ast_string_constant + const char_t* string; + // value for ast_number_constant + double number; + // variable for ast_variable + xpath_variable* variable; + // node test for ast_step (node name/namespace/node type/pi target) + const char_t* nodetest; + // table for ast_opt_translate_table + const unsigned char* table; + } _data; + + xpath_ast_node(const xpath_ast_node&); + xpath_ast_node& operator=(const xpath_ast_node&); + + template static bool compare_eq(xpath_ast_node* lhs, xpath_ast_node* rhs, const xpath_context& c, const xpath_stack& stack, const Comp& comp) + { + xpath_value_type lt = lhs->rettype(), rt = rhs->rettype(); + + if (lt != xpath_type_node_set && rt != xpath_type_node_set) + { + if (lt == xpath_type_boolean || rt == xpath_type_boolean) + return comp(lhs->eval_boolean(c, stack), rhs->eval_boolean(c, stack)); + else if (lt == xpath_type_number || rt == xpath_type_number) + return comp(lhs->eval_number(c, stack), rhs->eval_number(c, stack)); + else if (lt == xpath_type_string || rt == xpath_type_string) + { + xpath_allocator_capture cr(stack.result); + + xpath_string ls = lhs->eval_string(c, stack); + xpath_string rs = rhs->eval_string(c, stack); + + return comp(ls, rs); + } + } + else if (lt == xpath_type_node_set && rt == xpath_type_node_set) + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ls = lhs->eval_node_set(c, stack, nodeset_eval_all); + xpath_node_set_raw rs = rhs->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* li = ls.begin(); li != ls.end(); ++li) + for (const xpath_node* ri = rs.begin(); ri != rs.end(); ++ri) + { + xpath_allocator_capture cri(stack.result); + + if (comp(string_value(*li, stack.result), string_value(*ri, stack.result))) + return true; + } + + return false; + } + else + { + if (lt == xpath_type_node_set) + { + swap(lhs, rhs); + swap(lt, rt); + } + + if (lt == xpath_type_boolean) + return comp(lhs->eval_boolean(c, stack), rhs->eval_boolean(c, stack)); + else if (lt == xpath_type_number) + { + xpath_allocator_capture cr(stack.result); + + double l = lhs->eval_number(c, stack); + xpath_node_set_raw rs = rhs->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* ri = rs.begin(); ri != rs.end(); ++ri) + { + xpath_allocator_capture cri(stack.result); + + if (comp(l, convert_string_to_number(string_value(*ri, stack.result).c_str()))) + return true; + } + + return false; + } + else if (lt == xpath_type_string) + { + xpath_allocator_capture cr(stack.result); + + xpath_string l = lhs->eval_string(c, stack); + xpath_node_set_raw rs = rhs->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* ri = rs.begin(); ri != rs.end(); ++ri) + { + xpath_allocator_capture cri(stack.result); + + if (comp(l, string_value(*ri, stack.result))) + return true; + } + + return false; + } + } + + assert(!"Wrong types"); + return false; + } + + static bool eval_once(xpath_node_set::type_t type, nodeset_eval_t eval) + { + return type == xpath_node_set::type_sorted ? eval != nodeset_eval_all : eval == nodeset_eval_any; + } + + template static bool compare_rel(xpath_ast_node* lhs, xpath_ast_node* rhs, const xpath_context& c, const xpath_stack& stack, const Comp& comp) + { + xpath_value_type lt = lhs->rettype(), rt = rhs->rettype(); + + if (lt != xpath_type_node_set && rt != xpath_type_node_set) + return comp(lhs->eval_number(c, stack), rhs->eval_number(c, stack)); + else if (lt == xpath_type_node_set && rt == xpath_type_node_set) + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ls = lhs->eval_node_set(c, stack, nodeset_eval_all); + xpath_node_set_raw rs = rhs->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* li = ls.begin(); li != ls.end(); ++li) + { + xpath_allocator_capture cri(stack.result); + + double l = convert_string_to_number(string_value(*li, stack.result).c_str()); + + for (const xpath_node* ri = rs.begin(); ri != rs.end(); ++ri) + { + xpath_allocator_capture crii(stack.result); + + if (comp(l, convert_string_to_number(string_value(*ri, stack.result).c_str()))) + return true; + } + } + + return false; + } + else if (lt != xpath_type_node_set && rt == xpath_type_node_set) + { + xpath_allocator_capture cr(stack.result); + + double l = lhs->eval_number(c, stack); + xpath_node_set_raw rs = rhs->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* ri = rs.begin(); ri != rs.end(); ++ri) + { + xpath_allocator_capture cri(stack.result); + + if (comp(l, convert_string_to_number(string_value(*ri, stack.result).c_str()))) + return true; + } + + return false; + } + else if (lt == xpath_type_node_set && rt != xpath_type_node_set) + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ls = lhs->eval_node_set(c, stack, nodeset_eval_all); + double r = rhs->eval_number(c, stack); + + for (const xpath_node* li = ls.begin(); li != ls.end(); ++li) + { + xpath_allocator_capture cri(stack.result); + + if (comp(convert_string_to_number(string_value(*li, stack.result).c_str()), r)) + return true; + } + + return false; + } + else + { + assert(!"Wrong types"); + return false; + } + } + + static void apply_predicate_boolean(xpath_node_set_raw& ns, size_t first, xpath_ast_node* expr, const xpath_stack& stack, bool once) + { + assert(ns.size() >= first); + assert(expr->rettype() != xpath_type_number); + + size_t i = 1; + size_t size = ns.size() - first; + + xpath_node* last = ns.begin() + first; + + // remove_if... or well, sort of + for (xpath_node* it = last; it != ns.end(); ++it, ++i) + { + xpath_context c(*it, i, size); + + if (expr->eval_boolean(c, stack)) + { + *last++ = *it; + + if (once) break; + } + } + + ns.truncate(last); + } + + static void apply_predicate_number(xpath_node_set_raw& ns, size_t first, xpath_ast_node* expr, const xpath_stack& stack, bool once) + { + assert(ns.size() >= first); + assert(expr->rettype() == xpath_type_number); + + size_t i = 1; + size_t size = ns.size() - first; + + xpath_node* last = ns.begin() + first; + + // remove_if... or well, sort of + for (xpath_node* it = last; it != ns.end(); ++it, ++i) + { + xpath_context c(*it, i, size); + + if (expr->eval_number(c, stack) == i) + { + *last++ = *it; + + if (once) break; + } + } + + ns.truncate(last); + } + + static void apply_predicate_number_const(xpath_node_set_raw& ns, size_t first, xpath_ast_node* expr, const xpath_stack& stack) + { + assert(ns.size() >= first); + assert(expr->rettype() == xpath_type_number); + + size_t size = ns.size() - first; + + xpath_node* last = ns.begin() + first; + + xpath_context c(xpath_node(), 1, size); + + double er = expr->eval_number(c, stack); + + if (er >= 1.0 && er <= size) + { + size_t eri = static_cast(er); + + if (er == eri) + { + xpath_node r = last[eri - 1]; + + *last++ = r; + } + } + + ns.truncate(last); + } + + void apply_predicate(xpath_node_set_raw& ns, size_t first, const xpath_stack& stack, bool once) + { + if (ns.size() == first) return; + + assert(_type == ast_filter || _type == ast_predicate); + + if (_test == predicate_constant || _test == predicate_constant_one) + apply_predicate_number_const(ns, first, _right, stack); + else if (_right->rettype() == xpath_type_number) + apply_predicate_number(ns, first, _right, stack, once); + else + apply_predicate_boolean(ns, first, _right, stack, once); + } + + void apply_predicates(xpath_node_set_raw& ns, size_t first, const xpath_stack& stack, nodeset_eval_t eval) + { + if (ns.size() == first) return; + + bool last_once = eval_once(ns.type(), eval); + + for (xpath_ast_node* pred = _right; pred; pred = pred->_next) + pred->apply_predicate(ns, first, stack, !pred->_next && last_once); + } + + bool step_push(xpath_node_set_raw& ns, xml_attribute_struct* a, xml_node_struct* parent, xpath_allocator* alloc) + { + assert(a); + + const char_t* name = a->name ? a->name : PUGIXML_TEXT(""); + + switch (_test) + { + case nodetest_name: + if (strequal(name, _data.nodetest) && is_xpath_attribute(name)) + { + ns.push_back(xpath_node(xml_attribute(a), xml_node(parent)), alloc); + return true; + } + break; + + case nodetest_type_node: + case nodetest_all: + if (is_xpath_attribute(name)) + { + ns.push_back(xpath_node(xml_attribute(a), xml_node(parent)), alloc); + return true; + } + break; + + case nodetest_all_in_namespace: + if (starts_with(name, _data.nodetest) && is_xpath_attribute(name)) + { + ns.push_back(xpath_node(xml_attribute(a), xml_node(parent)), alloc); + return true; + } + break; + + default: + ; + } + + return false; + } + + bool step_push(xpath_node_set_raw& ns, xml_node_struct* n, xpath_allocator* alloc) + { + assert(n); + + xml_node_type type = PUGI__NODETYPE(n); + + switch (_test) + { + case nodetest_name: + if (type == node_element && n->name && strequal(n->name, _data.nodetest)) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_type_node: + ns.push_back(xml_node(n), alloc); + return true; + + case nodetest_type_comment: + if (type == node_comment) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_type_text: + if (type == node_pcdata || type == node_cdata) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_type_pi: + if (type == node_pi) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_pi: + if (type == node_pi && n->name && strequal(n->name, _data.nodetest)) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_all: + if (type == node_element) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_all_in_namespace: + if (type == node_element && n->name && starts_with(n->name, _data.nodetest)) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + default: + assert(!"Unknown axis"); + } + + return false; + } + + template void step_fill(xpath_node_set_raw& ns, xml_node_struct* n, xpath_allocator* alloc, bool once, T) + { + const axis_t axis = T::axis; + + switch (axis) + { + case axis_attribute: + { + for (xml_attribute_struct* a = n->first_attribute; a; a = a->next_attribute) + if (step_push(ns, a, n, alloc) & once) + return; + + break; + } + + case axis_child: + { + for (xml_node_struct* c = n->first_child; c; c = c->next_sibling) + if (step_push(ns, c, alloc) & once) + return; + + break; + } + + case axis_descendant: + case axis_descendant_or_self: + { + if (axis == axis_descendant_or_self) + if (step_push(ns, n, alloc) & once) + return; + + xml_node_struct* cur = n->first_child; + + while (cur) + { + if (step_push(ns, cur, alloc) & once) + return; + + if (cur->first_child) + cur = cur->first_child; + else + { + while (!cur->next_sibling) + { + cur = cur->parent; + + if (cur == n) return; + } + + cur = cur->next_sibling; + } + } + + break; + } + + case axis_following_sibling: + { + for (xml_node_struct* c = n->next_sibling; c; c = c->next_sibling) + if (step_push(ns, c, alloc) & once) + return; + + break; + } + + case axis_preceding_sibling: + { + for (xml_node_struct* c = n->prev_sibling_c; c->next_sibling; c = c->prev_sibling_c) + if (step_push(ns, c, alloc) & once) + return; + + break; + } + + case axis_following: + { + xml_node_struct* cur = n; + + // exit from this node so that we don't include descendants + while (!cur->next_sibling) + { + cur = cur->parent; + + if (!cur) return; + } + + cur = cur->next_sibling; + + while (cur) + { + if (step_push(ns, cur, alloc) & once) + return; + + if (cur->first_child) + cur = cur->first_child; + else + { + while (!cur->next_sibling) + { + cur = cur->parent; + + if (!cur) return; + } + + cur = cur->next_sibling; + } + } + + break; + } + + case axis_preceding: + { + xml_node_struct* cur = n; + + // exit from this node so that we don't include descendants + while (!cur->prev_sibling_c->next_sibling) + { + cur = cur->parent; + + if (!cur) return; + } + + cur = cur->prev_sibling_c; + + while (cur) + { + if (cur->first_child) + cur = cur->first_child->prev_sibling_c; + else + { + // leaf node, can't be ancestor + if (step_push(ns, cur, alloc) & once) + return; + + while (!cur->prev_sibling_c->next_sibling) + { + cur = cur->parent; + + if (!cur) return; + + if (!node_is_ancestor(cur, n)) + if (step_push(ns, cur, alloc) & once) + return; + } + + cur = cur->prev_sibling_c; + } + } + + break; + } + + case axis_ancestor: + case axis_ancestor_or_self: + { + if (axis == axis_ancestor_or_self) + if (step_push(ns, n, alloc) & once) + return; + + xml_node_struct* cur = n->parent; + + while (cur) + { + if (step_push(ns, cur, alloc) & once) + return; + + cur = cur->parent; + } + + break; + } + + case axis_self: + { + step_push(ns, n, alloc); + + break; + } + + case axis_parent: + { + if (n->parent) + step_push(ns, n->parent, alloc); + + break; + } + + default: + assert(!"Unimplemented axis"); + } + } + + template void step_fill(xpath_node_set_raw& ns, xml_attribute_struct* a, xml_node_struct* p, xpath_allocator* alloc, bool once, T v) + { + const axis_t axis = T::axis; + + switch (axis) + { + case axis_ancestor: + case axis_ancestor_or_self: + { + if (axis == axis_ancestor_or_self && _test == nodetest_type_node) // reject attributes based on principal node type test + if (step_push(ns, a, p, alloc) & once) + return; + + xml_node_struct* cur = p; + + while (cur) + { + if (step_push(ns, cur, alloc) & once) + return; + + cur = cur->parent; + } + + break; + } + + case axis_descendant_or_self: + case axis_self: + { + if (_test == nodetest_type_node) // reject attributes based on principal node type test + step_push(ns, a, p, alloc); + + break; + } + + case axis_following: + { + xml_node_struct* cur = p; + + while (cur) + { + if (cur->first_child) + cur = cur->first_child; + else + { + while (!cur->next_sibling) + { + cur = cur->parent; + + if (!cur) return; + } + + cur = cur->next_sibling; + } + + if (step_push(ns, cur, alloc) & once) + return; + } + + break; + } + + case axis_parent: + { + step_push(ns, p, alloc); + + break; + } + + case axis_preceding: + { + // preceding:: axis does not include attribute nodes and attribute ancestors (they are the same as parent's ancestors), so we can reuse node preceding + step_fill(ns, p, alloc, once, v); + break; + } + + default: + assert(!"Unimplemented axis"); + } + } + + template void step_fill(xpath_node_set_raw& ns, const xpath_node& xn, xpath_allocator* alloc, bool once, T v) + { + const axis_t axis = T::axis; + const bool axis_has_attributes = (axis == axis_ancestor || axis == axis_ancestor_or_self || axis == axis_descendant_or_self || axis == axis_following || axis == axis_parent || axis == axis_preceding || axis == axis_self); + + if (xn.node()) + step_fill(ns, xn.node().internal_object(), alloc, once, v); + else if (axis_has_attributes && xn.attribute() && xn.parent()) + step_fill(ns, xn.attribute().internal_object(), xn.parent().internal_object(), alloc, once, v); + } + + template xpath_node_set_raw step_do(const xpath_context& c, const xpath_stack& stack, nodeset_eval_t eval, T v) + { + const axis_t axis = T::axis; + const bool axis_reverse = (axis == axis_ancestor || axis == axis_ancestor_or_self || axis == axis_preceding || axis == axis_preceding_sibling); + const xpath_node_set::type_t axis_type = axis_reverse ? xpath_node_set::type_sorted_reverse : xpath_node_set::type_sorted; + + bool once = + (axis == axis_attribute && _test == nodetest_name) || + (!_right && eval_once(axis_type, eval)) || + (_right && !_right->_next && _right->_test == predicate_constant_one); + + xpath_node_set_raw ns; + ns.set_type(axis_type); + + if (_left) + { + xpath_node_set_raw s = _left->eval_node_set(c, stack, nodeset_eval_all); + + // self axis preserves the original order + if (axis == axis_self) ns.set_type(s.type()); + + for (const xpath_node* it = s.begin(); it != s.end(); ++it) + { + size_t size = ns.size(); + + // in general, all axes generate elements in a particular order, but there is no order guarantee if axis is applied to two nodes + if (axis != axis_self && size != 0) ns.set_type(xpath_node_set::type_unsorted); + + step_fill(ns, *it, stack.result, once, v); + if (_right) apply_predicates(ns, size, stack, eval); + } + } + else + { + step_fill(ns, c.n, stack.result, once, v); + if (_right) apply_predicates(ns, 0, stack, eval); + } + + // child, attribute and self axes always generate unique set of nodes + // for other axis, if the set stayed sorted, it stayed unique because the traversal algorithms do not visit the same node twice + if (axis != axis_child && axis != axis_attribute && axis != axis_self && ns.type() == xpath_node_set::type_unsorted) + ns.remove_duplicates(); + + return ns; + } + + public: + xpath_ast_node(ast_type_t type, xpath_value_type rettype_, const char_t* value): + _type(static_cast(type)), _rettype(static_cast(rettype_)), _axis(0), _test(0), _left(0), _right(0), _next(0) + { + assert(type == ast_string_constant); + _data.string = value; + } + + xpath_ast_node(ast_type_t type, xpath_value_type rettype_, double value): + _type(static_cast(type)), _rettype(static_cast(rettype_)), _axis(0), _test(0), _left(0), _right(0), _next(0) + { + assert(type == ast_number_constant); + _data.number = value; + } + + xpath_ast_node(ast_type_t type, xpath_value_type rettype_, xpath_variable* value): + _type(static_cast(type)), _rettype(static_cast(rettype_)), _axis(0), _test(0), _left(0), _right(0), _next(0) + { + assert(type == ast_variable); + _data.variable = value; + } + + xpath_ast_node(ast_type_t type, xpath_value_type rettype_, xpath_ast_node* left = 0, xpath_ast_node* right = 0): + _type(static_cast(type)), _rettype(static_cast(rettype_)), _axis(0), _test(0), _left(left), _right(right), _next(0) + { + } + + xpath_ast_node(ast_type_t type, xpath_ast_node* left, axis_t axis, nodetest_t test, const char_t* contents): + _type(static_cast(type)), _rettype(xpath_type_node_set), _axis(static_cast(axis)), _test(static_cast(test)), _left(left), _right(0), _next(0) + { + assert(type == ast_step); + _data.nodetest = contents; + } + + xpath_ast_node(ast_type_t type, xpath_ast_node* left, xpath_ast_node* right, predicate_t test): + _type(static_cast(type)), _rettype(xpath_type_node_set), _axis(0), _test(static_cast(test)), _left(left), _right(right), _next(0) + { + assert(type == ast_filter || type == ast_predicate); + } + + void set_next(xpath_ast_node* value) + { + _next = value; + } + + void set_right(xpath_ast_node* value) + { + _right = value; + } + + bool eval_boolean(const xpath_context& c, const xpath_stack& stack) + { + switch (_type) + { + case ast_op_or: + return _left->eval_boolean(c, stack) || _right->eval_boolean(c, stack); + + case ast_op_and: + return _left->eval_boolean(c, stack) && _right->eval_boolean(c, stack); + + case ast_op_equal: + return compare_eq(_left, _right, c, stack, equal_to()); + + case ast_op_not_equal: + return compare_eq(_left, _right, c, stack, not_equal_to()); + + case ast_op_less: + return compare_rel(_left, _right, c, stack, less()); + + case ast_op_greater: + return compare_rel(_right, _left, c, stack, less()); + + case ast_op_less_or_equal: + return compare_rel(_left, _right, c, stack, less_equal()); + + case ast_op_greater_or_equal: + return compare_rel(_right, _left, c, stack, less_equal()); + + case ast_func_starts_with: + { + xpath_allocator_capture cr(stack.result); + + xpath_string lr = _left->eval_string(c, stack); + xpath_string rr = _right->eval_string(c, stack); + + return starts_with(lr.c_str(), rr.c_str()); + } + + case ast_func_contains: + { + xpath_allocator_capture cr(stack.result); + + xpath_string lr = _left->eval_string(c, stack); + xpath_string rr = _right->eval_string(c, stack); + + return find_substring(lr.c_str(), rr.c_str()) != 0; + } + + case ast_func_boolean: + return _left->eval_boolean(c, stack); + + case ast_func_not: + return !_left->eval_boolean(c, stack); + + case ast_func_true: + return true; + + case ast_func_false: + return false; + + case ast_func_lang: + { + if (c.n.attribute()) return false; + + xpath_allocator_capture cr(stack.result); + + xpath_string lang = _left->eval_string(c, stack); + + for (xml_node n = c.n.node(); n; n = n.parent()) + { + xml_attribute a = n.attribute(PUGIXML_TEXT("xml:lang")); + + if (a) + { + const char_t* value = a.value(); + + // strnicmp / strncasecmp is not portable + for (const char_t* lit = lang.c_str(); *lit; ++lit) + { + if (tolower_ascii(*lit) != tolower_ascii(*value)) return false; + ++value; + } + + return *value == 0 || *value == '-'; + } + } + + return false; + } + + case ast_opt_compare_attribute: + { + const char_t* value = (_right->_type == ast_string_constant) ? _right->_data.string : _right->_data.variable->get_string(); + + xml_attribute attr = c.n.node().attribute(_left->_data.nodetest); + + return attr && strequal(attr.value(), value) && is_xpath_attribute(attr.name()); + } + + case ast_variable: + { + assert(_rettype == _data.variable->type()); + + if (_rettype == xpath_type_boolean) + return _data.variable->get_boolean(); + + // fallthrough to type conversion + } + + default: + { + switch (_rettype) + { + case xpath_type_number: + return convert_number_to_boolean(eval_number(c, stack)); + + case xpath_type_string: + { + xpath_allocator_capture cr(stack.result); + + return !eval_string(c, stack).empty(); + } + + case xpath_type_node_set: + { + xpath_allocator_capture cr(stack.result); + + return !eval_node_set(c, stack, nodeset_eval_any).empty(); + } + + default: + assert(!"Wrong expression for return type boolean"); + return false; + } + } + } + } + + double eval_number(const xpath_context& c, const xpath_stack& stack) + { + switch (_type) + { + case ast_op_add: + return _left->eval_number(c, stack) + _right->eval_number(c, stack); + + case ast_op_subtract: + return _left->eval_number(c, stack) - _right->eval_number(c, stack); + + case ast_op_multiply: + return _left->eval_number(c, stack) * _right->eval_number(c, stack); + + case ast_op_divide: + return _left->eval_number(c, stack) / _right->eval_number(c, stack); + + case ast_op_mod: + return fmod(_left->eval_number(c, stack), _right->eval_number(c, stack)); + + case ast_op_negate: + return -_left->eval_number(c, stack); + + case ast_number_constant: + return _data.number; + + case ast_func_last: + return static_cast(c.size); + + case ast_func_position: + return static_cast(c.position); + + case ast_func_count: + { + xpath_allocator_capture cr(stack.result); + + return static_cast(_left->eval_node_set(c, stack, nodeset_eval_all).size()); + } + + case ast_func_string_length_0: + { + xpath_allocator_capture cr(stack.result); + + return static_cast(string_value(c.n, stack.result).length()); + } + + case ast_func_string_length_1: + { + xpath_allocator_capture cr(stack.result); + + return static_cast(_left->eval_string(c, stack).length()); + } + + case ast_func_number_0: + { + xpath_allocator_capture cr(stack.result); + + return convert_string_to_number(string_value(c.n, stack.result).c_str()); + } + + case ast_func_number_1: + return _left->eval_number(c, stack); + + case ast_func_sum: + { + xpath_allocator_capture cr(stack.result); + + double r = 0; + + xpath_node_set_raw ns = _left->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* it = ns.begin(); it != ns.end(); ++it) + { + xpath_allocator_capture cri(stack.result); + + r += convert_string_to_number(string_value(*it, stack.result).c_str()); + } + + return r; + } + + case ast_func_floor: + { + double r = _left->eval_number(c, stack); + + return r == r ? floor(r) : r; + } + + case ast_func_ceiling: + { + double r = _left->eval_number(c, stack); + + return r == r ? ceil(r) : r; + } + + case ast_func_round: + return round_nearest_nzero(_left->eval_number(c, stack)); + + case ast_variable: + { + assert(_rettype == _data.variable->type()); + + if (_rettype == xpath_type_number) + return _data.variable->get_number(); + + // fallthrough to type conversion + } + + default: + { + switch (_rettype) + { + case xpath_type_boolean: + return eval_boolean(c, stack) ? 1 : 0; + + case xpath_type_string: + { + xpath_allocator_capture cr(stack.result); + + return convert_string_to_number(eval_string(c, stack).c_str()); + } + + case xpath_type_node_set: + { + xpath_allocator_capture cr(stack.result); + + return convert_string_to_number(eval_string(c, stack).c_str()); + } + + default: + assert(!"Wrong expression for return type number"); + return 0; + } + + } + } + } + + xpath_string eval_string_concat(const xpath_context& c, const xpath_stack& stack) + { + assert(_type == ast_func_concat); + + xpath_allocator_capture ct(stack.temp); + + // count the string number + size_t count = 1; + for (xpath_ast_node* nc = _right; nc; nc = nc->_next) count++; + + // gather all strings + xpath_string static_buffer[4]; + xpath_string* buffer = static_buffer; + + // allocate on-heap for large concats + if (count > sizeof(static_buffer) / sizeof(static_buffer[0])) + { + buffer = static_cast(stack.temp->allocate(count * sizeof(xpath_string))); + assert(buffer); + } + + // evaluate all strings to temporary stack + xpath_stack swapped_stack = {stack.temp, stack.result}; + + buffer[0] = _left->eval_string(c, swapped_stack); + + size_t pos = 1; + for (xpath_ast_node* n = _right; n; n = n->_next, ++pos) buffer[pos] = n->eval_string(c, swapped_stack); + assert(pos == count); + + // get total length + size_t length = 0; + for (size_t i = 0; i < count; ++i) length += buffer[i].length(); + + // create final string + char_t* result = static_cast(stack.result->allocate((length + 1) * sizeof(char_t))); + assert(result); + + char_t* ri = result; + + for (size_t j = 0; j < count; ++j) + for (const char_t* bi = buffer[j].c_str(); *bi; ++bi) + *ri++ = *bi; + + *ri = 0; + + return xpath_string::from_heap_preallocated(result, ri); + } + + xpath_string eval_string(const xpath_context& c, const xpath_stack& stack) + { + switch (_type) + { + case ast_string_constant: + return xpath_string::from_const(_data.string); + + case ast_func_local_name_0: + { + xpath_node na = c.n; + + return xpath_string::from_const(local_name(na)); + } + + case ast_func_local_name_1: + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ns = _left->eval_node_set(c, stack, nodeset_eval_first); + xpath_node na = ns.first(); + + return xpath_string::from_const(local_name(na)); + } + + case ast_func_name_0: + { + xpath_node na = c.n; + + return xpath_string::from_const(qualified_name(na)); + } + + case ast_func_name_1: + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ns = _left->eval_node_set(c, stack, nodeset_eval_first); + xpath_node na = ns.first(); + + return xpath_string::from_const(qualified_name(na)); + } + + case ast_func_namespace_uri_0: + { + xpath_node na = c.n; + + return xpath_string::from_const(namespace_uri(na)); + } + + case ast_func_namespace_uri_1: + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ns = _left->eval_node_set(c, stack, nodeset_eval_first); + xpath_node na = ns.first(); + + return xpath_string::from_const(namespace_uri(na)); + } + + case ast_func_string_0: + return string_value(c.n, stack.result); + + case ast_func_string_1: + return _left->eval_string(c, stack); + + case ast_func_concat: + return eval_string_concat(c, stack); + + case ast_func_substring_before: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_string s = _left->eval_string(c, swapped_stack); + xpath_string p = _right->eval_string(c, swapped_stack); + + const char_t* pos = find_substring(s.c_str(), p.c_str()); + + return pos ? xpath_string::from_heap(s.c_str(), pos, stack.result) : xpath_string(); + } + + case ast_func_substring_after: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_string s = _left->eval_string(c, swapped_stack); + xpath_string p = _right->eval_string(c, swapped_stack); + + const char_t* pos = find_substring(s.c_str(), p.c_str()); + if (!pos) return xpath_string(); + + const char_t* rbegin = pos + p.length(); + const char_t* rend = s.c_str() + s.length(); + + return s.uses_heap() ? xpath_string::from_heap(rbegin, rend, stack.result) : xpath_string::from_const(rbegin); + } + + case ast_func_substring_2: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_string s = _left->eval_string(c, swapped_stack); + size_t s_length = s.length(); + + double first = round_nearest(_right->eval_number(c, stack)); + + if (is_nan(first)) return xpath_string(); // NaN + else if (first >= s_length + 1) return xpath_string(); + + size_t pos = first < 1 ? 1 : static_cast(first); + assert(1 <= pos && pos <= s_length + 1); + + const char_t* rbegin = s.c_str() + (pos - 1); + const char_t* rend = s.c_str() + s.length(); + + return s.uses_heap() ? xpath_string::from_heap(rbegin, rend, stack.result) : xpath_string::from_const(rbegin); + } + + case ast_func_substring_3: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_string s = _left->eval_string(c, swapped_stack); + size_t s_length = s.length(); + + double first = round_nearest(_right->eval_number(c, stack)); + double last = first + round_nearest(_right->_next->eval_number(c, stack)); + + if (is_nan(first) || is_nan(last)) return xpath_string(); + else if (first >= s_length + 1) return xpath_string(); + else if (first >= last) return xpath_string(); + else if (last < 1) return xpath_string(); + + size_t pos = first < 1 ? 1 : static_cast(first); + size_t end = last >= s_length + 1 ? s_length + 1 : static_cast(last); + + assert(1 <= pos && pos <= end && end <= s_length + 1); + const char_t* rbegin = s.c_str() + (pos - 1); + const char_t* rend = s.c_str() + (end - 1); + + return (end == s_length + 1 && !s.uses_heap()) ? xpath_string::from_const(rbegin) : xpath_string::from_heap(rbegin, rend, stack.result); + } + + case ast_func_normalize_space_0: + { + xpath_string s = string_value(c.n, stack.result); + + char_t* begin = s.data(stack.result); + char_t* end = normalize_space(begin); + + return xpath_string::from_heap_preallocated(begin, end); + } + + case ast_func_normalize_space_1: + { + xpath_string s = _left->eval_string(c, stack); + + char_t* begin = s.data(stack.result); + char_t* end = normalize_space(begin); + + return xpath_string::from_heap_preallocated(begin, end); + } + + case ast_func_translate: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_string s = _left->eval_string(c, stack); + xpath_string from = _right->eval_string(c, swapped_stack); + xpath_string to = _right->_next->eval_string(c, swapped_stack); + + char_t* begin = s.data(stack.result); + char_t* end = translate(begin, from.c_str(), to.c_str(), to.length()); + + return xpath_string::from_heap_preallocated(begin, end); + } + + case ast_opt_translate_table: + { + xpath_string s = _left->eval_string(c, stack); + + char_t* begin = s.data(stack.result); + char_t* end = translate_table(begin, _data.table); + + return xpath_string::from_heap_preallocated(begin, end); + } + + case ast_variable: + { + assert(_rettype == _data.variable->type()); + + if (_rettype == xpath_type_string) + return xpath_string::from_const(_data.variable->get_string()); + + // fallthrough to type conversion + } + + default: + { + switch (_rettype) + { + case xpath_type_boolean: + return xpath_string::from_const(eval_boolean(c, stack) ? PUGIXML_TEXT("true") : PUGIXML_TEXT("false")); + + case xpath_type_number: + return convert_number_to_string(eval_number(c, stack), stack.result); + + case xpath_type_node_set: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_node_set_raw ns = eval_node_set(c, swapped_stack, nodeset_eval_first); + return ns.empty() ? xpath_string() : string_value(ns.first(), stack.result); + } + + default: + assert(!"Wrong expression for return type string"); + return xpath_string(); + } + } + } + } + + xpath_node_set_raw eval_node_set(const xpath_context& c, const xpath_stack& stack, nodeset_eval_t eval) + { + switch (_type) + { + case ast_op_union: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_node_set_raw ls = _left->eval_node_set(c, swapped_stack, eval); + xpath_node_set_raw rs = _right->eval_node_set(c, stack, eval); + + // we can optimize merging two sorted sets, but this is a very rare operation, so don't bother + rs.set_type(xpath_node_set::type_unsorted); + + rs.append(ls.begin(), ls.end(), stack.result); + rs.remove_duplicates(); + + return rs; + } + + case ast_filter: + { + xpath_node_set_raw set = _left->eval_node_set(c, stack, _test == predicate_constant_one ? nodeset_eval_first : nodeset_eval_all); + + // either expression is a number or it contains position() call; sort by document order + if (_test != predicate_posinv) set.sort_do(); + + bool once = eval_once(set.type(), eval); + + apply_predicate(set, 0, stack, once); + + return set; + } + + case ast_func_id: + return xpath_node_set_raw(); + + case ast_step: + { + switch (_axis) + { + case axis_ancestor: + return step_do(c, stack, eval, axis_to_type()); + + case axis_ancestor_or_self: + return step_do(c, stack, eval, axis_to_type()); + + case axis_attribute: + return step_do(c, stack, eval, axis_to_type()); + + case axis_child: + return step_do(c, stack, eval, axis_to_type()); + + case axis_descendant: + return step_do(c, stack, eval, axis_to_type()); + + case axis_descendant_or_self: + return step_do(c, stack, eval, axis_to_type()); + + case axis_following: + return step_do(c, stack, eval, axis_to_type()); + + case axis_following_sibling: + return step_do(c, stack, eval, axis_to_type()); + + case axis_namespace: + // namespaced axis is not supported + return xpath_node_set_raw(); + + case axis_parent: + return step_do(c, stack, eval, axis_to_type()); + + case axis_preceding: + return step_do(c, stack, eval, axis_to_type()); + + case axis_preceding_sibling: + return step_do(c, stack, eval, axis_to_type()); + + case axis_self: + return step_do(c, stack, eval, axis_to_type()); + + default: + assert(!"Unknown axis"); + return xpath_node_set_raw(); + } + } + + case ast_step_root: + { + assert(!_right); // root step can't have any predicates + + xpath_node_set_raw ns; + + ns.set_type(xpath_node_set::type_sorted); + + if (c.n.node()) ns.push_back(c.n.node().root(), stack.result); + else if (c.n.attribute()) ns.push_back(c.n.parent().root(), stack.result); + + return ns; + } + + case ast_variable: + { + assert(_rettype == _data.variable->type()); + + if (_rettype == xpath_type_node_set) + { + const xpath_node_set& s = _data.variable->get_node_set(); + + xpath_node_set_raw ns; + + ns.set_type(s.type()); + ns.append(s.begin(), s.end(), stack.result); + + return ns; + } + + // fallthrough to type conversion + } + + default: + assert(!"Wrong expression for return type node set"); + return xpath_node_set_raw(); + } + } + + void optimize(xpath_allocator* alloc) + { + if (_left) _left->optimize(alloc); + if (_right) _right->optimize(alloc); + if (_next) _next->optimize(alloc); + + // Rewrite [position()=expr] with [expr] + // Note that this step has to go before classification to recognize [position()=1] + if ((_type == ast_filter || _type == ast_predicate) && + _right->_type == ast_op_equal && _right->_left->_type == ast_func_position && _right->_right->_rettype == xpath_type_number) + { + _right = _right->_right; + } + + // Classify filter/predicate ops to perform various optimizations during evaluation + if (_type == ast_filter || _type == ast_predicate) + { + assert(_test == predicate_default); + + if (_right->_type == ast_number_constant && _right->_data.number == 1.0) + _test = predicate_constant_one; + else if (_right->_rettype == xpath_type_number && (_right->_type == ast_number_constant || _right->_type == ast_variable || _right->_type == ast_func_last)) + _test = predicate_constant; + else if (_right->_rettype != xpath_type_number && _right->is_posinv_expr()) + _test = predicate_posinv; + } + + // Rewrite descendant-or-self::node()/child::foo with descendant::foo + // The former is a full form of //foo, the latter is much faster since it executes the node test immediately + // Do a similar kind of rewrite for self/descendant/descendant-or-self axes + // Note that we only rewrite positionally invariant steps (//foo[1] != /descendant::foo[1]) + if (_type == ast_step && (_axis == axis_child || _axis == axis_self || _axis == axis_descendant || _axis == axis_descendant_or_self) && _left && + _left->_type == ast_step && _left->_axis == axis_descendant_or_self && _left->_test == nodetest_type_node && !_left->_right && + is_posinv_step()) + { + if (_axis == axis_child || _axis == axis_descendant) + _axis = axis_descendant; + else + _axis = axis_descendant_or_self; + + _left = _left->_left; + } + + // Use optimized lookup table implementation for translate() with constant arguments + if (_type == ast_func_translate && _right->_type == ast_string_constant && _right->_next->_type == ast_string_constant) + { + unsigned char* table = translate_table_generate(alloc, _right->_data.string, _right->_next->_data.string); + + if (table) + { + _type = ast_opt_translate_table; + _data.table = table; + } + } + + // Use optimized path for @attr = 'value' or @attr = $value + if (_type == ast_op_equal && + _left->_type == ast_step && _left->_axis == axis_attribute && _left->_test == nodetest_name && !_left->_left && !_left->_right && + (_right->_type == ast_string_constant || (_right->_type == ast_variable && _right->_rettype == xpath_type_string))) + { + _type = ast_opt_compare_attribute; + } + } + + bool is_posinv_expr() const + { + switch (_type) + { + case ast_func_position: + case ast_func_last: + return false; + + case ast_string_constant: + case ast_number_constant: + case ast_variable: + return true; + + case ast_step: + case ast_step_root: + return true; + + case ast_predicate: + case ast_filter: + return true; + + default: + if (_left && !_left->is_posinv_expr()) return false; + + for (xpath_ast_node* n = _right; n; n = n->_next) + if (!n->is_posinv_expr()) return false; + + return true; + } + } + + bool is_posinv_step() const + { + assert(_type == ast_step); + + for (xpath_ast_node* n = _right; n; n = n->_next) + { + assert(n->_type == ast_predicate); + + if (n->_test != predicate_posinv) + return false; + } + + return true; + } + + xpath_value_type rettype() const + { + return static_cast(_rettype); + } + }; + + struct xpath_parser + { + xpath_allocator* _alloc; + xpath_lexer _lexer; + + const char_t* _query; + xpath_variable_set* _variables; + + xpath_parse_result* _result; + + char_t _scratch[32]; + + #ifdef PUGIXML_NO_EXCEPTIONS + jmp_buf _error_handler; + #endif + + void throw_error(const char* message) + { + _result->error = message; + _result->offset = _lexer.current_pos() - _query; + + #ifdef PUGIXML_NO_EXCEPTIONS + longjmp(_error_handler, 1); + #else + throw xpath_exception(*_result); + #endif + } + + void throw_error_oom() + { + #ifdef PUGIXML_NO_EXCEPTIONS + throw_error("Out of memory"); + #else + throw std::bad_alloc(); + #endif + } + + void* alloc_node() + { + void* result = _alloc->allocate_nothrow(sizeof(xpath_ast_node)); + + if (!result) throw_error_oom(); + + return result; + } + + const char_t* alloc_string(const xpath_lexer_string& value) + { + if (value.begin) + { + size_t length = static_cast(value.end - value.begin); + + char_t* c = static_cast(_alloc->allocate_nothrow((length + 1) * sizeof(char_t))); + if (!c) throw_error_oom(); + assert(c); // workaround for clang static analysis + + memcpy(c, value.begin, length * sizeof(char_t)); + c[length] = 0; + + return c; + } + else return 0; + } + + xpath_ast_node* parse_function_helper(ast_type_t type0, ast_type_t type1, size_t argc, xpath_ast_node* args[2]) + { + assert(argc <= 1); + + if (argc == 1 && args[0]->rettype() != xpath_type_node_set) throw_error("Function has to be applied to node set"); + + return new (alloc_node()) xpath_ast_node(argc == 0 ? type0 : type1, xpath_type_string, args[0]); + } + + xpath_ast_node* parse_function(const xpath_lexer_string& name, size_t argc, xpath_ast_node* args[2]) + { + switch (name.begin[0]) + { + case 'b': + if (name == PUGIXML_TEXT("boolean") && argc == 1) + return new (alloc_node()) xpath_ast_node(ast_func_boolean, xpath_type_boolean, args[0]); + + break; + + case 'c': + if (name == PUGIXML_TEXT("count") && argc == 1) + { + if (args[0]->rettype() != xpath_type_node_set) throw_error("Function has to be applied to node set"); + return new (alloc_node()) xpath_ast_node(ast_func_count, xpath_type_number, args[0]); + } + else if (name == PUGIXML_TEXT("contains") && argc == 2) + return new (alloc_node()) xpath_ast_node(ast_func_contains, xpath_type_boolean, args[0], args[1]); + else if (name == PUGIXML_TEXT("concat") && argc >= 2) + return new (alloc_node()) xpath_ast_node(ast_func_concat, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("ceiling") && argc == 1) + return new (alloc_node()) xpath_ast_node(ast_func_ceiling, xpath_type_number, args[0]); + + break; + + case 'f': + if (name == PUGIXML_TEXT("false") && argc == 0) + return new (alloc_node()) xpath_ast_node(ast_func_false, xpath_type_boolean); + else if (name == PUGIXML_TEXT("floor") && argc == 1) + return new (alloc_node()) xpath_ast_node(ast_func_floor, xpath_type_number, args[0]); + + break; + + case 'i': + if (name == PUGIXML_TEXT("id") && argc == 1) + return new (alloc_node()) xpath_ast_node(ast_func_id, xpath_type_node_set, args[0]); + + break; + + case 'l': + if (name == PUGIXML_TEXT("last") && argc == 0) + return new (alloc_node()) xpath_ast_node(ast_func_last, xpath_type_number); + else if (name == PUGIXML_TEXT("lang") && argc == 1) + return new (alloc_node()) xpath_ast_node(ast_func_lang, xpath_type_boolean, args[0]); + else if (name == PUGIXML_TEXT("local-name") && argc <= 1) + return parse_function_helper(ast_func_local_name_0, ast_func_local_name_1, argc, args); + + break; + + case 'n': + if (name == PUGIXML_TEXT("name") && argc <= 1) + return parse_function_helper(ast_func_name_0, ast_func_name_1, argc, args); + else if (name == PUGIXML_TEXT("namespace-uri") && argc <= 1) + return parse_function_helper(ast_func_namespace_uri_0, ast_func_namespace_uri_1, argc, args); + else if (name == PUGIXML_TEXT("normalize-space") && argc <= 1) + return new (alloc_node()) xpath_ast_node(argc == 0 ? ast_func_normalize_space_0 : ast_func_normalize_space_1, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("not") && argc == 1) + return new (alloc_node()) xpath_ast_node(ast_func_not, xpath_type_boolean, args[0]); + else if (name == PUGIXML_TEXT("number") && argc <= 1) + return new (alloc_node()) xpath_ast_node(argc == 0 ? ast_func_number_0 : ast_func_number_1, xpath_type_number, args[0]); + + break; + + case 'p': + if (name == PUGIXML_TEXT("position") && argc == 0) + return new (alloc_node()) xpath_ast_node(ast_func_position, xpath_type_number); + + break; + + case 'r': + if (name == PUGIXML_TEXT("round") && argc == 1) + return new (alloc_node()) xpath_ast_node(ast_func_round, xpath_type_number, args[0]); + + break; + + case 's': + if (name == PUGIXML_TEXT("string") && argc <= 1) + return new (alloc_node()) xpath_ast_node(argc == 0 ? ast_func_string_0 : ast_func_string_1, xpath_type_string, args[0]); + else if (name == PUGIXML_TEXT("string-length") && argc <= 1) + return new (alloc_node()) xpath_ast_node(argc == 0 ? ast_func_string_length_0 : ast_func_string_length_1, xpath_type_number, args[0]); + else if (name == PUGIXML_TEXT("starts-with") && argc == 2) + return new (alloc_node()) xpath_ast_node(ast_func_starts_with, xpath_type_boolean, args[0], args[1]); + else if (name == PUGIXML_TEXT("substring-before") && argc == 2) + return new (alloc_node()) xpath_ast_node(ast_func_substring_before, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("substring-after") && argc == 2) + return new (alloc_node()) xpath_ast_node(ast_func_substring_after, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("substring") && (argc == 2 || argc == 3)) + return new (alloc_node()) xpath_ast_node(argc == 2 ? ast_func_substring_2 : ast_func_substring_3, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("sum") && argc == 1) + { + if (args[0]->rettype() != xpath_type_node_set) throw_error("Function has to be applied to node set"); + return new (alloc_node()) xpath_ast_node(ast_func_sum, xpath_type_number, args[0]); + } + + break; + + case 't': + if (name == PUGIXML_TEXT("translate") && argc == 3) + return new (alloc_node()) xpath_ast_node(ast_func_translate, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("true") && argc == 0) + return new (alloc_node()) xpath_ast_node(ast_func_true, xpath_type_boolean); + + break; + + default: + break; + } + + throw_error("Unrecognized function or wrong parameter count"); + + return 0; + } + + axis_t parse_axis_name(const xpath_lexer_string& name, bool& specified) + { + specified = true; + + switch (name.begin[0]) + { + case 'a': + if (name == PUGIXML_TEXT("ancestor")) + return axis_ancestor; + else if (name == PUGIXML_TEXT("ancestor-or-self")) + return axis_ancestor_or_self; + else if (name == PUGIXML_TEXT("attribute")) + return axis_attribute; + + break; + + case 'c': + if (name == PUGIXML_TEXT("child")) + return axis_child; + + break; + + case 'd': + if (name == PUGIXML_TEXT("descendant")) + return axis_descendant; + else if (name == PUGIXML_TEXT("descendant-or-self")) + return axis_descendant_or_self; + + break; + + case 'f': + if (name == PUGIXML_TEXT("following")) + return axis_following; + else if (name == PUGIXML_TEXT("following-sibling")) + return axis_following_sibling; + + break; + + case 'n': + if (name == PUGIXML_TEXT("namespace")) + return axis_namespace; + + break; + + case 'p': + if (name == PUGIXML_TEXT("parent")) + return axis_parent; + else if (name == PUGIXML_TEXT("preceding")) + return axis_preceding; + else if (name == PUGIXML_TEXT("preceding-sibling")) + return axis_preceding_sibling; + + break; + + case 's': + if (name == PUGIXML_TEXT("self")) + return axis_self; + + break; + + default: + break; + } + + specified = false; + return axis_child; + } + + nodetest_t parse_node_test_type(const xpath_lexer_string& name) + { + switch (name.begin[0]) + { + case 'c': + if (name == PUGIXML_TEXT("comment")) + return nodetest_type_comment; + + break; + + case 'n': + if (name == PUGIXML_TEXT("node")) + return nodetest_type_node; + + break; + + case 'p': + if (name == PUGIXML_TEXT("processing-instruction")) + return nodetest_type_pi; + + break; + + case 't': + if (name == PUGIXML_TEXT("text")) + return nodetest_type_text; + + break; + + default: + break; + } + + return nodetest_none; + } + + // PrimaryExpr ::= VariableReference | '(' Expr ')' | Literal | Number | FunctionCall + xpath_ast_node* parse_primary_expression() + { + switch (_lexer.current()) + { + case lex_var_ref: + { + xpath_lexer_string name = _lexer.contents(); + + if (!_variables) + throw_error("Unknown variable: variable set is not provided"); + + xpath_variable* var = get_variable_scratch(_scratch, _variables, name.begin, name.end); + + if (!var) + throw_error("Unknown variable: variable set does not contain the given name"); + + _lexer.next(); + + return new (alloc_node()) xpath_ast_node(ast_variable, var->type(), var); + } + + case lex_open_brace: + { + _lexer.next(); + + xpath_ast_node* n = parse_expression(); + + if (_lexer.current() != lex_close_brace) + throw_error("Unmatched braces"); + + _lexer.next(); + + return n; + } + + case lex_quoted_string: + { + const char_t* value = alloc_string(_lexer.contents()); + + xpath_ast_node* n = new (alloc_node()) xpath_ast_node(ast_string_constant, xpath_type_string, value); + _lexer.next(); + + return n; + } + + case lex_number: + { + double value = 0; + + if (!convert_string_to_number_scratch(_scratch, _lexer.contents().begin, _lexer.contents().end, &value)) + throw_error_oom(); + + xpath_ast_node* n = new (alloc_node()) xpath_ast_node(ast_number_constant, xpath_type_number, value); + _lexer.next(); + + return n; + } + + case lex_string: + { + xpath_ast_node* args[2] = {0}; + size_t argc = 0; + + xpath_lexer_string function = _lexer.contents(); + _lexer.next(); + + xpath_ast_node* last_arg = 0; + + if (_lexer.current() != lex_open_brace) + throw_error("Unrecognized function call"); + _lexer.next(); + + if (_lexer.current() != lex_close_brace) + args[argc++] = parse_expression(); + + while (_lexer.current() != lex_close_brace) + { + if (_lexer.current() != lex_comma) + throw_error("No comma between function arguments"); + _lexer.next(); + + xpath_ast_node* n = parse_expression(); + + if (argc < 2) args[argc] = n; + else last_arg->set_next(n); + + argc++; + last_arg = n; + } + + _lexer.next(); + + return parse_function(function, argc, args); + } + + default: + throw_error("Unrecognizable primary expression"); + + return 0; + } + } + + // FilterExpr ::= PrimaryExpr | FilterExpr Predicate + // Predicate ::= '[' PredicateExpr ']' + // PredicateExpr ::= Expr + xpath_ast_node* parse_filter_expression() + { + xpath_ast_node* n = parse_primary_expression(); + + while (_lexer.current() == lex_open_square_brace) + { + _lexer.next(); + + xpath_ast_node* expr = parse_expression(); + + if (n->rettype() != xpath_type_node_set) throw_error("Predicate has to be applied to node set"); + + n = new (alloc_node()) xpath_ast_node(ast_filter, n, expr, predicate_default); + + if (_lexer.current() != lex_close_square_brace) + throw_error("Unmatched square brace"); + + _lexer.next(); + } + + return n; + } + + // Step ::= AxisSpecifier NodeTest Predicate* | AbbreviatedStep + // AxisSpecifier ::= AxisName '::' | '@'? + // NodeTest ::= NameTest | NodeType '(' ')' | 'processing-instruction' '(' Literal ')' + // NameTest ::= '*' | NCName ':' '*' | QName + // AbbreviatedStep ::= '.' | '..' + xpath_ast_node* parse_step(xpath_ast_node* set) + { + if (set && set->rettype() != xpath_type_node_set) + throw_error("Step has to be applied to node set"); + + bool axis_specified = false; + axis_t axis = axis_child; // implied child axis + + if (_lexer.current() == lex_axis_attribute) + { + axis = axis_attribute; + axis_specified = true; + + _lexer.next(); + } + else if (_lexer.current() == lex_dot) + { + _lexer.next(); + + return new (alloc_node()) xpath_ast_node(ast_step, set, axis_self, nodetest_type_node, 0); + } + else if (_lexer.current() == lex_double_dot) + { + _lexer.next(); + + return new (alloc_node()) xpath_ast_node(ast_step, set, axis_parent, nodetest_type_node, 0); + } + + nodetest_t nt_type = nodetest_none; + xpath_lexer_string nt_name; + + if (_lexer.current() == lex_string) + { + // node name test + nt_name = _lexer.contents(); + _lexer.next(); + + // was it an axis name? + if (_lexer.current() == lex_double_colon) + { + // parse axis name + if (axis_specified) throw_error("Two axis specifiers in one step"); + + axis = parse_axis_name(nt_name, axis_specified); + + if (!axis_specified) throw_error("Unknown axis"); + + // read actual node test + _lexer.next(); + + if (_lexer.current() == lex_multiply) + { + nt_type = nodetest_all; + nt_name = xpath_lexer_string(); + _lexer.next(); + } + else if (_lexer.current() == lex_string) + { + nt_name = _lexer.contents(); + _lexer.next(); + } + else throw_error("Unrecognized node test"); + } + + if (nt_type == nodetest_none) + { + // node type test or processing-instruction + if (_lexer.current() == lex_open_brace) + { + _lexer.next(); + + if (_lexer.current() == lex_close_brace) + { + _lexer.next(); + + nt_type = parse_node_test_type(nt_name); + + if (nt_type == nodetest_none) throw_error("Unrecognized node type"); + + nt_name = xpath_lexer_string(); + } + else if (nt_name == PUGIXML_TEXT("processing-instruction")) + { + if (_lexer.current() != lex_quoted_string) + throw_error("Only literals are allowed as arguments to processing-instruction()"); + + nt_type = nodetest_pi; + nt_name = _lexer.contents(); + _lexer.next(); + + if (_lexer.current() != lex_close_brace) + throw_error("Unmatched brace near processing-instruction()"); + _lexer.next(); + } + else + throw_error("Unmatched brace near node type test"); + + } + // QName or NCName:* + else + { + if (nt_name.end - nt_name.begin > 2 && nt_name.end[-2] == ':' && nt_name.end[-1] == '*') // NCName:* + { + nt_name.end--; // erase * + + nt_type = nodetest_all_in_namespace; + } + else nt_type = nodetest_name; + } + } + } + else if (_lexer.current() == lex_multiply) + { + nt_type = nodetest_all; + _lexer.next(); + } + else throw_error("Unrecognized node test"); + + xpath_ast_node* n = new (alloc_node()) xpath_ast_node(ast_step, set, axis, nt_type, alloc_string(nt_name)); + + xpath_ast_node* last = 0; + + while (_lexer.current() == lex_open_square_brace) + { + _lexer.next(); + + xpath_ast_node* expr = parse_expression(); + + xpath_ast_node* pred = new (alloc_node()) xpath_ast_node(ast_predicate, 0, expr, predicate_default); + + if (_lexer.current() != lex_close_square_brace) + throw_error("Unmatched square brace"); + _lexer.next(); + + if (last) last->set_next(pred); + else n->set_right(pred); + + last = pred; + } + + return n; + } + + // RelativeLocationPath ::= Step | RelativeLocationPath '/' Step | RelativeLocationPath '//' Step + xpath_ast_node* parse_relative_location_path(xpath_ast_node* set) + { + xpath_ast_node* n = parse_step(set); + + while (_lexer.current() == lex_slash || _lexer.current() == lex_double_slash) + { + lexeme_t l = _lexer.current(); + _lexer.next(); + + if (l == lex_double_slash) + n = new (alloc_node()) xpath_ast_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0); + + n = parse_step(n); + } + + return n; + } + + // LocationPath ::= RelativeLocationPath | AbsoluteLocationPath + // AbsoluteLocationPath ::= '/' RelativeLocationPath? | '//' RelativeLocationPath + xpath_ast_node* parse_location_path() + { + if (_lexer.current() == lex_slash) + { + _lexer.next(); + + xpath_ast_node* n = new (alloc_node()) xpath_ast_node(ast_step_root, xpath_type_node_set); + + // relative location path can start from axis_attribute, dot, double_dot, multiply and string lexemes; any other lexeme means standalone root path + lexeme_t l = _lexer.current(); + + if (l == lex_string || l == lex_axis_attribute || l == lex_dot || l == lex_double_dot || l == lex_multiply) + return parse_relative_location_path(n); + else + return n; + } + else if (_lexer.current() == lex_double_slash) + { + _lexer.next(); + + xpath_ast_node* n = new (alloc_node()) xpath_ast_node(ast_step_root, xpath_type_node_set); + n = new (alloc_node()) xpath_ast_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0); + + return parse_relative_location_path(n); + } + + // else clause moved outside of if because of bogus warning 'control may reach end of non-void function being inlined' in gcc 4.0.1 + return parse_relative_location_path(0); + } + + // PathExpr ::= LocationPath + // | FilterExpr + // | FilterExpr '/' RelativeLocationPath + // | FilterExpr '//' RelativeLocationPath + // UnionExpr ::= PathExpr | UnionExpr '|' PathExpr + // UnaryExpr ::= UnionExpr | '-' UnaryExpr + xpath_ast_node* parse_path_or_unary_expression() + { + // Clarification. + // PathExpr begins with either LocationPath or FilterExpr. + // FilterExpr begins with PrimaryExpr + // PrimaryExpr begins with '$' in case of it being a variable reference, + // '(' in case of it being an expression, string literal, number constant or + // function call. + + if (_lexer.current() == lex_var_ref || _lexer.current() == lex_open_brace || + _lexer.current() == lex_quoted_string || _lexer.current() == lex_number || + _lexer.current() == lex_string) + { + if (_lexer.current() == lex_string) + { + // This is either a function call, or not - if not, we shall proceed with location path + const char_t* state = _lexer.state(); + + while (PUGI__IS_CHARTYPE(*state, ct_space)) ++state; + + if (*state != '(') return parse_location_path(); + + // This looks like a function call; however this still can be a node-test. Check it. + if (parse_node_test_type(_lexer.contents()) != nodetest_none) return parse_location_path(); + } + + xpath_ast_node* n = parse_filter_expression(); + + if (_lexer.current() == lex_slash || _lexer.current() == lex_double_slash) + { + lexeme_t l = _lexer.current(); + _lexer.next(); + + if (l == lex_double_slash) + { + if (n->rettype() != xpath_type_node_set) throw_error("Step has to be applied to node set"); + + n = new (alloc_node()) xpath_ast_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0); + } + + // select from location path + return parse_relative_location_path(n); + } + + return n; + } + else if (_lexer.current() == lex_minus) + { + _lexer.next(); + + // precedence 7+ - only parses union expressions + xpath_ast_node* expr = parse_expression_rec(parse_path_or_unary_expression(), 7); + + return new (alloc_node()) xpath_ast_node(ast_op_negate, xpath_type_number, expr); + } + else + return parse_location_path(); + } + + struct binary_op_t + { + ast_type_t asttype; + xpath_value_type rettype; + int precedence; + + binary_op_t(): asttype(ast_unknown), rettype(xpath_type_none), precedence(0) + { + } + + binary_op_t(ast_type_t asttype_, xpath_value_type rettype_, int precedence_): asttype(asttype_), rettype(rettype_), precedence(precedence_) + { + } + + static binary_op_t parse(xpath_lexer& lexer) + { + switch (lexer.current()) + { + case lex_string: + if (lexer.contents() == PUGIXML_TEXT("or")) + return binary_op_t(ast_op_or, xpath_type_boolean, 1); + else if (lexer.contents() == PUGIXML_TEXT("and")) + return binary_op_t(ast_op_and, xpath_type_boolean, 2); + else if (lexer.contents() == PUGIXML_TEXT("div")) + return binary_op_t(ast_op_divide, xpath_type_number, 6); + else if (lexer.contents() == PUGIXML_TEXT("mod")) + return binary_op_t(ast_op_mod, xpath_type_number, 6); + else + return binary_op_t(); + + case lex_equal: + return binary_op_t(ast_op_equal, xpath_type_boolean, 3); + + case lex_not_equal: + return binary_op_t(ast_op_not_equal, xpath_type_boolean, 3); + + case lex_less: + return binary_op_t(ast_op_less, xpath_type_boolean, 4); + + case lex_greater: + return binary_op_t(ast_op_greater, xpath_type_boolean, 4); + + case lex_less_or_equal: + return binary_op_t(ast_op_less_or_equal, xpath_type_boolean, 4); + + case lex_greater_or_equal: + return binary_op_t(ast_op_greater_or_equal, xpath_type_boolean, 4); + + case lex_plus: + return binary_op_t(ast_op_add, xpath_type_number, 5); + + case lex_minus: + return binary_op_t(ast_op_subtract, xpath_type_number, 5); + + case lex_multiply: + return binary_op_t(ast_op_multiply, xpath_type_number, 6); + + case lex_union: + return binary_op_t(ast_op_union, xpath_type_node_set, 7); + + default: + return binary_op_t(); + } + } + }; + + xpath_ast_node* parse_expression_rec(xpath_ast_node* lhs, int limit) + { + binary_op_t op = binary_op_t::parse(_lexer); + + while (op.asttype != ast_unknown && op.precedence >= limit) + { + _lexer.next(); + + xpath_ast_node* rhs = parse_path_or_unary_expression(); + + binary_op_t nextop = binary_op_t::parse(_lexer); + + while (nextop.asttype != ast_unknown && nextop.precedence > op.precedence) + { + rhs = parse_expression_rec(rhs, nextop.precedence); + + nextop = binary_op_t::parse(_lexer); + } + + if (op.asttype == ast_op_union && (lhs->rettype() != xpath_type_node_set || rhs->rettype() != xpath_type_node_set)) + throw_error("Union operator has to be applied to node sets"); + + lhs = new (alloc_node()) xpath_ast_node(op.asttype, op.rettype, lhs, rhs); + + op = binary_op_t::parse(_lexer); + } + + return lhs; + } + + // Expr ::= OrExpr + // OrExpr ::= AndExpr | OrExpr 'or' AndExpr + // AndExpr ::= EqualityExpr | AndExpr 'and' EqualityExpr + // EqualityExpr ::= RelationalExpr + // | EqualityExpr '=' RelationalExpr + // | EqualityExpr '!=' RelationalExpr + // RelationalExpr ::= AdditiveExpr + // | RelationalExpr '<' AdditiveExpr + // | RelationalExpr '>' AdditiveExpr + // | RelationalExpr '<=' AdditiveExpr + // | RelationalExpr '>=' AdditiveExpr + // AdditiveExpr ::= MultiplicativeExpr + // | AdditiveExpr '+' MultiplicativeExpr + // | AdditiveExpr '-' MultiplicativeExpr + // MultiplicativeExpr ::= UnaryExpr + // | MultiplicativeExpr '*' UnaryExpr + // | MultiplicativeExpr 'div' UnaryExpr + // | MultiplicativeExpr 'mod' UnaryExpr + xpath_ast_node* parse_expression() + { + return parse_expression_rec(parse_path_or_unary_expression(), 0); + } + + xpath_parser(const char_t* query, xpath_variable_set* variables, xpath_allocator* alloc, xpath_parse_result* result): _alloc(alloc), _lexer(query), _query(query), _variables(variables), _result(result) + { + } + + xpath_ast_node* parse() + { + xpath_ast_node* result = parse_expression(); + + if (_lexer.current() != lex_eof) + { + // there are still unparsed tokens left, error + throw_error("Incorrect query"); + } + + return result; + } + + static xpath_ast_node* parse(const char_t* query, xpath_variable_set* variables, xpath_allocator* alloc, xpath_parse_result* result) + { + xpath_parser parser(query, variables, alloc, result); + + #ifdef PUGIXML_NO_EXCEPTIONS + int error = setjmp(parser._error_handler); + + return (error == 0) ? parser.parse() : 0; + #else + return parser.parse(); + #endif + } + }; + + struct xpath_query_impl + { + static xpath_query_impl* create() + { + void* memory = xml_memory::allocate(sizeof(xpath_query_impl)); + + return new (memory) xpath_query_impl(); + } + + static void destroy(void* ptr) + { + if (!ptr) return; + + // free all allocated pages + static_cast(ptr)->alloc.release(); + + // free allocator memory (with the first page) + xml_memory::deallocate(ptr); + } + + xpath_query_impl(): root(0), alloc(&block) + { + block.next = 0; + block.capacity = sizeof(block.data); + } + + xpath_ast_node* root; + xpath_allocator alloc; + xpath_memory_block block; + }; + + PUGI__FN xpath_string evaluate_string_impl(xpath_query_impl* impl, const xpath_node& n, xpath_stack_data& sd) + { + if (!impl) return xpath_string(); + + #ifdef PUGIXML_NO_EXCEPTIONS + if (setjmp(sd.error_handler)) return xpath_string(); + #endif + + xpath_context c(n, 1, 1); + + return impl->root->eval_string(c, sd.stack); + } + + PUGI__FN impl::xpath_ast_node* evaluate_node_set_prepare(xpath_query_impl* impl) + { + if (!impl) return 0; + + if (impl->root->rettype() != xpath_type_node_set) + { + #ifdef PUGIXML_NO_EXCEPTIONS + return 0; + #else + xpath_parse_result res; + res.error = "Expression does not evaluate to node set"; + + throw xpath_exception(res); + #endif + } + + return impl->root; + } +PUGI__NS_END + +namespace pugi +{ +#ifndef PUGIXML_NO_EXCEPTIONS + PUGI__FN xpath_exception::xpath_exception(const xpath_parse_result& result_): _result(result_) + { + assert(_result.error); + } + + PUGI__FN const char* xpath_exception::what() const throw() + { + return _result.error; + } + + PUGI__FN const xpath_parse_result& xpath_exception::result() const + { + return _result; + } +#endif + + PUGI__FN xpath_node::xpath_node() + { + } + + PUGI__FN xpath_node::xpath_node(const xml_node& node_): _node(node_) + { + } + + PUGI__FN xpath_node::xpath_node(const xml_attribute& attribute_, const xml_node& parent_): _node(attribute_ ? parent_ : xml_node()), _attribute(attribute_) + { + } + + PUGI__FN xml_node xpath_node::node() const + { + return _attribute ? xml_node() : _node; + } + + PUGI__FN xml_attribute xpath_node::attribute() const + { + return _attribute; + } + + PUGI__FN xml_node xpath_node::parent() const + { + return _attribute ? _node : _node.parent(); + } + + PUGI__FN static void unspecified_bool_xpath_node(xpath_node***) + { + } + + PUGI__FN xpath_node::operator xpath_node::unspecified_bool_type() const + { + return (_node || _attribute) ? unspecified_bool_xpath_node : 0; + } + + PUGI__FN bool xpath_node::operator!() const + { + return !(_node || _attribute); + } + + PUGI__FN bool xpath_node::operator==(const xpath_node& n) const + { + return _node == n._node && _attribute == n._attribute; + } + + PUGI__FN bool xpath_node::operator!=(const xpath_node& n) const + { + return _node != n._node || _attribute != n._attribute; + } + +#ifdef __BORLANDC__ + PUGI__FN bool operator&&(const xpath_node& lhs, bool rhs) + { + return (bool)lhs && rhs; + } + + PUGI__FN bool operator||(const xpath_node& lhs, bool rhs) + { + return (bool)lhs || rhs; + } +#endif + + PUGI__FN void xpath_node_set::_assign(const_iterator begin_, const_iterator end_) + { + assert(begin_ <= end_); + + size_t size_ = static_cast(end_ - begin_); + + if (size_ <= 1) + { + // deallocate old buffer + if (_begin != &_storage) impl::xml_memory::deallocate(_begin); + + // use internal buffer + if (begin_ != end_) _storage = *begin_; + + _begin = &_storage; + _end = &_storage + size_; + } + else + { + // make heap copy + xpath_node* storage = static_cast(impl::xml_memory::allocate(size_ * sizeof(xpath_node))); + + if (!storage) + { + #ifdef PUGIXML_NO_EXCEPTIONS + return; + #else + throw std::bad_alloc(); + #endif + } + + memcpy(storage, begin_, size_ * sizeof(xpath_node)); + + // deallocate old buffer + if (_begin != &_storage) impl::xml_memory::deallocate(_begin); + + // finalize + _begin = storage; + _end = storage + size_; + } + } + + PUGI__FN xpath_node_set::xpath_node_set(): _type(type_unsorted), _begin(&_storage), _end(&_storage) + { + } + + PUGI__FN xpath_node_set::xpath_node_set(const_iterator begin_, const_iterator end_, type_t type_): _type(type_), _begin(&_storage), _end(&_storage) + { + _assign(begin_, end_); + } + + PUGI__FN xpath_node_set::~xpath_node_set() + { + if (_begin != &_storage) impl::xml_memory::deallocate(_begin); + } + + PUGI__FN xpath_node_set::xpath_node_set(const xpath_node_set& ns): _type(ns._type), _begin(&_storage), _end(&_storage) + { + _assign(ns._begin, ns._end); + } + + PUGI__FN xpath_node_set& xpath_node_set::operator=(const xpath_node_set& ns) + { + if (this == &ns) return *this; + + _type = ns._type; + _assign(ns._begin, ns._end); + + return *this; + } + + PUGI__FN xpath_node_set::type_t xpath_node_set::type() const + { + return _type; + } + + PUGI__FN size_t xpath_node_set::size() const + { + return _end - _begin; + } + + PUGI__FN bool xpath_node_set::empty() const + { + return _begin == _end; + } + + PUGI__FN const xpath_node& xpath_node_set::operator[](size_t index) const + { + assert(index < size()); + return _begin[index]; + } + + PUGI__FN xpath_node_set::const_iterator xpath_node_set::begin() const + { + return _begin; + } + + PUGI__FN xpath_node_set::const_iterator xpath_node_set::end() const + { + return _end; + } + + PUGI__FN void xpath_node_set::sort(bool reverse) + { + _type = impl::xpath_sort(_begin, _end, _type, reverse); + } + + PUGI__FN xpath_node xpath_node_set::first() const + { + return impl::xpath_first(_begin, _end, _type); + } + + PUGI__FN xpath_parse_result::xpath_parse_result(): error("Internal error"), offset(0) + { + } + + PUGI__FN xpath_parse_result::operator bool() const + { + return error == 0; + } + + PUGI__FN const char* xpath_parse_result::description() const + { + return error ? error : "No error"; + } + + PUGI__FN xpath_variable::xpath_variable(): _type(xpath_type_none), _next(0) + { + } + + PUGI__FN const char_t* xpath_variable::name() const + { + switch (_type) + { + case xpath_type_node_set: + return static_cast(this)->name; + + case xpath_type_number: + return static_cast(this)->name; + + case xpath_type_string: + return static_cast(this)->name; + + case xpath_type_boolean: + return static_cast(this)->name; + + default: + assert(!"Invalid variable type"); + return 0; + } + } + + PUGI__FN xpath_value_type xpath_variable::type() const + { + return _type; + } + + PUGI__FN bool xpath_variable::get_boolean() const + { + return (_type == xpath_type_boolean) ? static_cast(this)->value : false; + } + + PUGI__FN double xpath_variable::get_number() const + { + return (_type == xpath_type_number) ? static_cast(this)->value : impl::gen_nan(); + } + + PUGI__FN const char_t* xpath_variable::get_string() const + { + const char_t* value = (_type == xpath_type_string) ? static_cast(this)->value : 0; + return value ? value : PUGIXML_TEXT(""); + } + + PUGI__FN const xpath_node_set& xpath_variable::get_node_set() const + { + return (_type == xpath_type_node_set) ? static_cast(this)->value : impl::dummy_node_set; + } + + PUGI__FN bool xpath_variable::set(bool value) + { + if (_type != xpath_type_boolean) return false; + + static_cast(this)->value = value; + return true; + } + + PUGI__FN bool xpath_variable::set(double value) + { + if (_type != xpath_type_number) return false; + + static_cast(this)->value = value; + return true; + } + + PUGI__FN bool xpath_variable::set(const char_t* value) + { + if (_type != xpath_type_string) return false; + + impl::xpath_variable_string* var = static_cast(this); + + // duplicate string + size_t size = (impl::strlength(value) + 1) * sizeof(char_t); + + char_t* copy = static_cast(impl::xml_memory::allocate(size)); + if (!copy) return false; + + memcpy(copy, value, size); + + // replace old string + if (var->value) impl::xml_memory::deallocate(var->value); + var->value = copy; + + return true; + } + + PUGI__FN bool xpath_variable::set(const xpath_node_set& value) + { + if (_type != xpath_type_node_set) return false; + + static_cast(this)->value = value; + return true; + } + + PUGI__FN xpath_variable_set::xpath_variable_set() + { + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) _data[i] = 0; + } + + PUGI__FN xpath_variable_set::~xpath_variable_set() + { + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) + { + xpath_variable* var = _data[i]; + + while (var) + { + xpath_variable* next = var->_next; + + impl::delete_xpath_variable(var->_type, var); + + var = next; + } + } + } + + PUGI__FN xpath_variable* xpath_variable_set::find(const char_t* name) const + { + const size_t hash_size = sizeof(_data) / sizeof(_data[0]); + size_t hash = impl::hash_string(name) % hash_size; + + // look for existing variable + for (xpath_variable* var = _data[hash]; var; var = var->_next) + if (impl::strequal(var->name(), name)) + return var; + + return 0; + } + + PUGI__FN xpath_variable* xpath_variable_set::add(const char_t* name, xpath_value_type type) + { + const size_t hash_size = sizeof(_data) / sizeof(_data[0]); + size_t hash = impl::hash_string(name) % hash_size; + + // look for existing variable + for (xpath_variable* var = _data[hash]; var; var = var->_next) + if (impl::strequal(var->name(), name)) + return var->type() == type ? var : 0; + + // add new variable + xpath_variable* result = impl::new_xpath_variable(type, name); + + if (result) + { + result->_type = type; + result->_next = _data[hash]; + + _data[hash] = result; + } + + return result; + } + + PUGI__FN bool xpath_variable_set::set(const char_t* name, bool value) + { + xpath_variable* var = add(name, xpath_type_boolean); + return var ? var->set(value) : false; + } + + PUGI__FN bool xpath_variable_set::set(const char_t* name, double value) + { + xpath_variable* var = add(name, xpath_type_number); + return var ? var->set(value) : false; + } + + PUGI__FN bool xpath_variable_set::set(const char_t* name, const char_t* value) + { + xpath_variable* var = add(name, xpath_type_string); + return var ? var->set(value) : false; + } + + PUGI__FN bool xpath_variable_set::set(const char_t* name, const xpath_node_set& value) + { + xpath_variable* var = add(name, xpath_type_node_set); + return var ? var->set(value) : false; + } + + PUGI__FN xpath_variable* xpath_variable_set::get(const char_t* name) + { + return find(name); + } + + PUGI__FN const xpath_variable* xpath_variable_set::get(const char_t* name) const + { + return find(name); + } + + PUGI__FN xpath_query::xpath_query(const char_t* query, xpath_variable_set* variables): _impl(0) + { + impl::xpath_query_impl* qimpl = impl::xpath_query_impl::create(); + + if (!qimpl) + { + #ifdef PUGIXML_NO_EXCEPTIONS + _result.error = "Out of memory"; + #else + throw std::bad_alloc(); + #endif + } + else + { + impl::buffer_holder impl_holder(qimpl, impl::xpath_query_impl::destroy); + + qimpl->root = impl::xpath_parser::parse(query, variables, &qimpl->alloc, &_result); + + if (qimpl->root) + { + qimpl->root->optimize(&qimpl->alloc); + + _impl = static_cast(impl_holder.release()); + _result.error = 0; + } + } + } + + PUGI__FN xpath_query::~xpath_query() + { + impl::xpath_query_impl::destroy(_impl); + } + + PUGI__FN xpath_value_type xpath_query::return_type() const + { + if (!_impl) return xpath_type_none; + + return static_cast(_impl)->root->rettype(); + } + + PUGI__FN bool xpath_query::evaluate_boolean(const xpath_node& n) const + { + if (!_impl) return false; + + impl::xpath_context c(n, 1, 1); + impl::xpath_stack_data sd; + + #ifdef PUGIXML_NO_EXCEPTIONS + if (setjmp(sd.error_handler)) return false; + #endif + + return static_cast(_impl)->root->eval_boolean(c, sd.stack); + } + + PUGI__FN double xpath_query::evaluate_number(const xpath_node& n) const + { + if (!_impl) return impl::gen_nan(); + + impl::xpath_context c(n, 1, 1); + impl::xpath_stack_data sd; + + #ifdef PUGIXML_NO_EXCEPTIONS + if (setjmp(sd.error_handler)) return impl::gen_nan(); + #endif + + return static_cast(_impl)->root->eval_number(c, sd.stack); + } + +#ifndef PUGIXML_NO_STL + PUGI__FN string_t xpath_query::evaluate_string(const xpath_node& n) const + { + impl::xpath_stack_data sd; + + impl::xpath_string r = impl::evaluate_string_impl(static_cast(_impl), n, sd); + + return string_t(r.c_str(), r.length()); + } +#endif + + PUGI__FN size_t xpath_query::evaluate_string(char_t* buffer, size_t capacity, const xpath_node& n) const + { + impl::xpath_stack_data sd; + + impl::xpath_string r = impl::evaluate_string_impl(static_cast(_impl), n, sd); + + size_t full_size = r.length() + 1; + + if (capacity > 0) + { + size_t size = (full_size < capacity) ? full_size : capacity; + assert(size > 0); + + memcpy(buffer, r.c_str(), (size - 1) * sizeof(char_t)); + buffer[size - 1] = 0; + } + + return full_size; + } + + PUGI__FN xpath_node_set xpath_query::evaluate_node_set(const xpath_node& n) const + { + impl::xpath_ast_node* root = impl::evaluate_node_set_prepare(static_cast(_impl)); + if (!root) return xpath_node_set(); + + impl::xpath_context c(n, 1, 1); + impl::xpath_stack_data sd; + + #ifdef PUGIXML_NO_EXCEPTIONS + if (setjmp(sd.error_handler)) return xpath_node_set(); + #endif + + impl::xpath_node_set_raw r = root->eval_node_set(c, sd.stack, impl::nodeset_eval_all); + + return xpath_node_set(r.begin(), r.end(), r.type()); + } + + PUGI__FN xpath_node xpath_query::evaluate_node(const xpath_node& n) const + { + impl::xpath_ast_node* root = impl::evaluate_node_set_prepare(static_cast(_impl)); + if (!root) return xpath_node(); + + impl::xpath_context c(n, 1, 1); + impl::xpath_stack_data sd; + + #ifdef PUGIXML_NO_EXCEPTIONS + if (setjmp(sd.error_handler)) return xpath_node(); + #endif + + impl::xpath_node_set_raw r = root->eval_node_set(c, sd.stack, impl::nodeset_eval_first); + + return r.first(); + } + + PUGI__FN const xpath_parse_result& xpath_query::result() const + { + return _result; + } + + PUGI__FN static void unspecified_bool_xpath_query(xpath_query***) + { + } + + PUGI__FN xpath_query::operator xpath_query::unspecified_bool_type() const + { + return _impl ? unspecified_bool_xpath_query : 0; + } + + PUGI__FN bool xpath_query::operator!() const + { + return !_impl; + } + + PUGI__FN xpath_node xml_node::select_node(const char_t* query, xpath_variable_set* variables) const + { + xpath_query q(query, variables); + return select_node(q); + } + + PUGI__FN xpath_node xml_node::select_node(const xpath_query& query) const + { + return query.evaluate_node(*this); + } + + PUGI__FN xpath_node_set xml_node::select_nodes(const char_t* query, xpath_variable_set* variables) const + { + xpath_query q(query, variables); + return select_nodes(q); + } + + PUGI__FN xpath_node_set xml_node::select_nodes(const xpath_query& query) const + { + return query.evaluate_node_set(*this); + } + + PUGI__FN xpath_node xml_node::select_single_node(const char_t* query, xpath_variable_set* variables) const + { + xpath_query q(query, variables); + return select_single_node(q); + } + + PUGI__FN xpath_node xml_node::select_single_node(const xpath_query& query) const + { + return query.evaluate_node(*this); + } +} + +#endif + +#ifdef __BORLANDC__ +# pragma option pop +#endif + +// Intel C++ does not properly keep warning state for function templates, +// so popping warning state at the end of translation unit leads to warnings in the middle. +#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) +# pragma warning(pop) +#endif + +// Undefine all local macros (makes sure we're not leaking macros in header-only mode) +#undef PUGI__NO_INLINE +#undef PUGI__UNLIKELY +#undef PUGI__STATIC_ASSERT +#undef PUGI__DMC_VOLATILE +#undef PUGI__MSVC_CRT_VERSION +#undef PUGI__NS_BEGIN +#undef PUGI__NS_END +#undef PUGI__FN +#undef PUGI__FN_NO_INLINE +#undef PUGI__NODETYPE +#undef PUGI__IS_CHARTYPE_IMPL +#undef PUGI__IS_CHARTYPE +#undef PUGI__IS_CHARTYPEX +#undef PUGI__ENDSWITH +#undef PUGI__SKIPWS +#undef PUGI__OPTSET +#undef PUGI__PUSHNODE +#undef PUGI__POPNODE +#undef PUGI__SCANFOR +#undef PUGI__SCANWHILE +#undef PUGI__SCANWHILE_UNROLL +#undef PUGI__ENDSEG +#undef PUGI__THROW_ERROR +#undef PUGI__CHECK_ERROR + +#endif + +/** + * Copyright (c) 2006-2015 Arseny Kapoulkine + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ diff --git a/Template/Game/Source/External/PugiXml/src/pugixml.hpp b/Template/Game/Source/External/PugiXml/src/pugixml.hpp new file mode 100644 index 0000000..fd5a5cf --- /dev/null +++ b/Template/Game/Source/External/PugiXml/src/pugixml.hpp @@ -0,0 +1,1366 @@ +/** + * pugixml parser - version 1.6 + * -------------------------------------------------------- + * Copyright (C) 2006-2015, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) + * Report bugs and download new versions at http://pugixml.org/ + * + * This library is distributed under the MIT License. See notice at the end + * of this file. + * + * This work is based on the pugxml parser, which is: + * Copyright (C) 2003, by Kristen Wegner (kristen@tima.net) + */ + +#ifndef PUGIXML_VERSION +// Define version macro; evaluates to major * 100 + minor so that it's safe to use in less-than comparisons +# define PUGIXML_VERSION 160 +#endif + +// Include user configuration file (this can define various configuration macros) +#include "pugiconfig.hpp" + +#ifndef HEADER_PUGIXML_HPP +#define HEADER_PUGIXML_HPP + +// Include stddef.h for size_t and ptrdiff_t +#include + +// Include exception header for XPath +#if !defined(PUGIXML_NO_XPATH) && !defined(PUGIXML_NO_EXCEPTIONS) +# include +#endif + +// Include STL headers +#ifndef PUGIXML_NO_STL +# include +# include +# include +#endif + +// Macro for deprecated features +#ifndef PUGIXML_DEPRECATED +# if defined(__GNUC__) +# define PUGIXML_DEPRECATED __attribute__((deprecated)) +# elif defined(_MSC_VER) && _MSC_VER >= 1300 +# define PUGIXML_DEPRECATED __declspec(deprecated) +# else +# define PUGIXML_DEPRECATED +# endif +#endif + +// If no API is defined, assume default +#ifndef PUGIXML_API +# define PUGIXML_API +#endif + +// If no API for classes is defined, assume default +#ifndef PUGIXML_CLASS +# define PUGIXML_CLASS PUGIXML_API +#endif + +// If no API for functions is defined, assume default +#ifndef PUGIXML_FUNCTION +# define PUGIXML_FUNCTION PUGIXML_API +#endif + +// If the platform is known to have long long support, enable long long functions +#ifndef PUGIXML_HAS_LONG_LONG +# if defined(__cplusplus) && __cplusplus >= 201103 +# define PUGIXML_HAS_LONG_LONG +# elif defined(_MSC_VER) && _MSC_VER >= 1400 +# define PUGIXML_HAS_LONG_LONG +# endif +#endif + +// Character interface macros +#ifdef PUGIXML_WCHAR_MODE +# define PUGIXML_TEXT(t) L ## t +# define PUGIXML_CHAR wchar_t +#else +# define PUGIXML_TEXT(t) t +# define PUGIXML_CHAR char +#endif + +namespace pugi +{ + // Character type used for all internal storage and operations; depends on PUGIXML_WCHAR_MODE + typedef PUGIXML_CHAR char_t; + +#ifndef PUGIXML_NO_STL + // String type used for operations that work with STL string; depends on PUGIXML_WCHAR_MODE + typedef std::basic_string, std::allocator > string_t; +#endif +} + +// The PugiXML namespace +namespace pugi +{ + // Tree node types + enum xml_node_type + { + node_null, // Empty (null) node handle + node_document, // A document tree's absolute root + node_element, // Element tag, i.e. '' + node_pcdata, // Plain character data, i.e. 'text' + node_cdata, // Character data, i.e. '' + node_comment, // Comment tag, i.e. '' + node_pi, // Processing instruction, i.e. '' + node_declaration, // Document declaration, i.e. '' + node_doctype // Document type declaration, i.e. '' + }; + + // Parsing options + + // Minimal parsing mode (equivalent to turning all other flags off). + // Only elements and PCDATA sections are added to the DOM tree, no text conversions are performed. + const unsigned int parse_minimal = 0x0000; + + // This flag determines if processing instructions (node_pi) are added to the DOM tree. This flag is off by default. + const unsigned int parse_pi = 0x0001; + + // This flag determines if comments (node_comment) are added to the DOM tree. This flag is off by default. + const unsigned int parse_comments = 0x0002; + + // This flag determines if CDATA sections (node_cdata) are added to the DOM tree. This flag is on by default. + const unsigned int parse_cdata = 0x0004; + + // This flag determines if plain character data (node_pcdata) that consist only of whitespace are added to the DOM tree. + // This flag is off by default; turning it on usually results in slower parsing and more memory consumption. + const unsigned int parse_ws_pcdata = 0x0008; + + // This flag determines if character and entity references are expanded during parsing. This flag is on by default. + const unsigned int parse_escapes = 0x0010; + + // This flag determines if EOL characters are normalized (converted to #xA) during parsing. This flag is on by default. + const unsigned int parse_eol = 0x0020; + + // This flag determines if attribute values are normalized using CDATA normalization rules during parsing. This flag is on by default. + const unsigned int parse_wconv_attribute = 0x0040; + + // This flag determines if attribute values are normalized using NMTOKENS normalization rules during parsing. This flag is off by default. + const unsigned int parse_wnorm_attribute = 0x0080; + + // This flag determines if document declaration (node_declaration) is added to the DOM tree. This flag is off by default. + const unsigned int parse_declaration = 0x0100; + + // This flag determines if document type declaration (node_doctype) is added to the DOM tree. This flag is off by default. + const unsigned int parse_doctype = 0x0200; + + // This flag determines if plain character data (node_pcdata) that is the only child of the parent node and that consists only + // of whitespace is added to the DOM tree. + // This flag is off by default; turning it on may result in slower parsing and more memory consumption. + const unsigned int parse_ws_pcdata_single = 0x0400; + + // This flag determines if leading and trailing whitespace is to be removed from plain character data. This flag is off by default. + const unsigned int parse_trim_pcdata = 0x0800; + + // This flag determines if plain character data that does not have a parent node is added to the DOM tree, and if an empty document + // is a valid document. This flag is off by default. + const unsigned int parse_fragment = 0x1000; + + // The default parsing mode. + // Elements, PCDATA and CDATA sections are added to the DOM tree, character/reference entities are expanded, + // End-of-Line characters are normalized, attribute values are normalized using CDATA normalization rules. + const unsigned int parse_default = parse_cdata | parse_escapes | parse_wconv_attribute | parse_eol; + + // The full parsing mode. + // Nodes of all types are added to the DOM tree, character/reference entities are expanded, + // End-of-Line characters are normalized, attribute values are normalized using CDATA normalization rules. + const unsigned int parse_full = parse_default | parse_pi | parse_comments | parse_declaration | parse_doctype; + + // These flags determine the encoding of input data for XML document + enum xml_encoding + { + encoding_auto, // Auto-detect input encoding using BOM or < / class xml_object_range + { + public: + typedef It const_iterator; + typedef It iterator; + + xml_object_range(It b, It e): _begin(b), _end(e) + { + } + + It begin() const { return _begin; } + It end() const { return _end; } + + private: + It _begin, _end; + }; + + // Writer interface for node printing (see xml_node::print) + class PUGIXML_CLASS xml_writer + { + public: + virtual ~xml_writer() {} + + // Write memory chunk into stream/file/whatever + virtual void write(const void* data, size_t size) = 0; + }; + + // xml_writer implementation for FILE* + class PUGIXML_CLASS xml_writer_file: public xml_writer + { + public: + // Construct writer from a FILE* object; void* is used to avoid header dependencies on stdio + xml_writer_file(void* file); + + virtual void write(const void* data, size_t size); + + private: + void* file; + }; + + #ifndef PUGIXML_NO_STL + // xml_writer implementation for streams + class PUGIXML_CLASS xml_writer_stream: public xml_writer + { + public: + // Construct writer from an output stream object + xml_writer_stream(std::basic_ostream >& stream); + xml_writer_stream(std::basic_ostream >& stream); + + virtual void write(const void* data, size_t size); + + private: + std::basic_ostream >* narrow_stream; + std::basic_ostream >* wide_stream; + }; + #endif + + // A light-weight handle for manipulating attributes in DOM tree + class PUGIXML_CLASS xml_attribute + { + friend class xml_attribute_iterator; + friend class xml_node; + + private: + xml_attribute_struct* _attr; + + typedef void (*unspecified_bool_type)(xml_attribute***); + + public: + // Default constructor. Constructs an empty attribute. + xml_attribute(); + + // Constructs attribute from internal pointer + explicit xml_attribute(xml_attribute_struct* attr); + + // Safe bool conversion operator + operator unspecified_bool_type() const; + + // Borland C++ workaround + bool operator!() const; + + // Comparison operators (compares wrapped attribute pointers) + bool operator==(const xml_attribute& r) const; + bool operator!=(const xml_attribute& r) const; + bool operator<(const xml_attribute& r) const; + bool operator>(const xml_attribute& r) const; + bool operator<=(const xml_attribute& r) const; + bool operator>=(const xml_attribute& r) const; + + // Check if attribute is empty + bool empty() const; + + // Get attribute name/value, or "" if attribute is empty + const char_t* name() const; + const char_t* value() const; + + // Get attribute value, or the default value if attribute is empty + const char_t* as_string(const char_t* def = PUGIXML_TEXT("")) const; + + // Get attribute value as a number, or the default value if conversion did not succeed or attribute is empty + int as_int(int def = 0) const; + unsigned int as_uint(unsigned int def = 0) const; + double as_double(double def = 0) const; + float as_float(float def = 0) const; + + #ifdef PUGIXML_HAS_LONG_LONG + long long as_llong(long long def = 0) const; + unsigned long long as_ullong(unsigned long long def = 0) const; + #endif + + // Get attribute value as bool (returns true if first character is in '1tTyY' set), or the default value if attribute is empty + bool as_bool(bool def = false) const; + + // Set attribute name/value (returns false if attribute is empty or there is not enough memory) + bool set_name(const char_t* rhs); + bool set_value(const char_t* rhs); + + // Set attribute value with type conversion (numbers are converted to strings, boolean is converted to "true"/"false") + bool set_value(int rhs); + bool set_value(unsigned int rhs); + bool set_value(double rhs); + bool set_value(float rhs); + bool set_value(bool rhs); + + #ifdef PUGIXML_HAS_LONG_LONG + bool set_value(long long rhs); + bool set_value(unsigned long long rhs); + #endif + + // Set attribute value (equivalent to set_value without error checking) + xml_attribute& operator=(const char_t* rhs); + xml_attribute& operator=(int rhs); + xml_attribute& operator=(unsigned int rhs); + xml_attribute& operator=(double rhs); + xml_attribute& operator=(float rhs); + xml_attribute& operator=(bool rhs); + + #ifdef PUGIXML_HAS_LONG_LONG + xml_attribute& operator=(long long rhs); + xml_attribute& operator=(unsigned long long rhs); + #endif + + // Get next/previous attribute in the attribute list of the parent node + xml_attribute next_attribute() const; + xml_attribute previous_attribute() const; + + // Get hash value (unique for handles to the same object) + size_t hash_value() const; + + // Get internal pointer + xml_attribute_struct* internal_object() const; + }; + +#ifdef __BORLANDC__ + // Borland C++ workaround + bool PUGIXML_FUNCTION operator&&(const xml_attribute& lhs, bool rhs); + bool PUGIXML_FUNCTION operator||(const xml_attribute& lhs, bool rhs); +#endif + + // A light-weight handle for manipulating nodes in DOM tree + class PUGIXML_CLASS xml_node + { + friend class xml_attribute_iterator; + friend class xml_node_iterator; + friend class xml_named_node_iterator; + + protected: + xml_node_struct* _root; + + typedef void (*unspecified_bool_type)(xml_node***); + + public: + // Default constructor. Constructs an empty node. + xml_node(); + + // Constructs node from internal pointer + explicit xml_node(xml_node_struct* p); + + // Safe bool conversion operator + operator unspecified_bool_type() const; + + // Borland C++ workaround + bool operator!() const; + + // Comparison operators (compares wrapped node pointers) + bool operator==(const xml_node& r) const; + bool operator!=(const xml_node& r) const; + bool operator<(const xml_node& r) const; + bool operator>(const xml_node& r) const; + bool operator<=(const xml_node& r) const; + bool operator>=(const xml_node& r) const; + + // Check if node is empty. + bool empty() const; + + // Get node type + xml_node_type type() const; + + // Get node name, or "" if node is empty or it has no name + const char_t* name() const; + + // Get node value, or "" if node is empty or it has no value + // Note: For text node.value() does not return "text"! Use child_value() or text() methods to access text inside nodes. + const char_t* value() const; + + // Get attribute list + xml_attribute first_attribute() const; + xml_attribute last_attribute() const; + + // Get children list + xml_node first_child() const; + xml_node last_child() const; + + // Get next/previous sibling in the children list of the parent node + xml_node next_sibling() const; + xml_node previous_sibling() const; + + // Get parent node + xml_node parent() const; + + // Get root of DOM tree this node belongs to + xml_node root() const; + + // Get text object for the current node + xml_text text() const; + + // Get child, attribute or next/previous sibling with the specified name + xml_node child(const char_t* name) const; + xml_attribute attribute(const char_t* name) const; + xml_node next_sibling(const char_t* name) const; + xml_node previous_sibling(const char_t* name) const; + + // Get child value of current node; that is, value of the first child node of type PCDATA/CDATA + const char_t* child_value() const; + + // Get child value of child with specified name. Equivalent to child(name).child_value(). + const char_t* child_value(const char_t* name) const; + + // Set node name/value (returns false if node is empty, there is not enough memory, or node can not have name/value) + bool set_name(const char_t* rhs); + bool set_value(const char_t* rhs); + + // Add attribute with specified name. Returns added attribute, or empty attribute on errors. + xml_attribute append_attribute(const char_t* name); + xml_attribute prepend_attribute(const char_t* name); + xml_attribute insert_attribute_after(const char_t* name, const xml_attribute& attr); + xml_attribute insert_attribute_before(const char_t* name, const xml_attribute& attr); + + // Add a copy of the specified attribute. Returns added attribute, or empty attribute on errors. + xml_attribute append_copy(const xml_attribute& proto); + xml_attribute prepend_copy(const xml_attribute& proto); + xml_attribute insert_copy_after(const xml_attribute& proto, const xml_attribute& attr); + xml_attribute insert_copy_before(const xml_attribute& proto, const xml_attribute& attr); + + // Add child node with specified type. Returns added node, or empty node on errors. + xml_node append_child(xml_node_type type = node_element); + xml_node prepend_child(xml_node_type type = node_element); + xml_node insert_child_after(xml_node_type type, const xml_node& node); + xml_node insert_child_before(xml_node_type type, const xml_node& node); + + // Add child element with specified name. Returns added node, or empty node on errors. + xml_node append_child(const char_t* name); + xml_node prepend_child(const char_t* name); + xml_node insert_child_after(const char_t* name, const xml_node& node); + xml_node insert_child_before(const char_t* name, const xml_node& node); + + // Add a copy of the specified node as a child. Returns added node, or empty node on errors. + xml_node append_copy(const xml_node& proto); + xml_node prepend_copy(const xml_node& proto); + xml_node insert_copy_after(const xml_node& proto, const xml_node& node); + xml_node insert_copy_before(const xml_node& proto, const xml_node& node); + + // Move the specified node to become a child of this node. Returns moved node, or empty node on errors. + xml_node append_move(const xml_node& moved); + xml_node prepend_move(const xml_node& moved); + xml_node insert_move_after(const xml_node& moved, const xml_node& node); + xml_node insert_move_before(const xml_node& moved, const xml_node& node); + + // Remove specified attribute + bool remove_attribute(const xml_attribute& a); + bool remove_attribute(const char_t* name); + + // Remove specified child + bool remove_child(const xml_node& n); + bool remove_child(const char_t* name); + + // Parses buffer as an XML document fragment and appends all nodes as children of the current node. + // Copies/converts the buffer, so it may be deleted or changed after the function returns. + // Note: append_buffer allocates memory that has the lifetime of the owning document; removing the appended nodes does not immediately reclaim that memory. + xml_parse_result append_buffer(const void* contents, size_t size, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + + // Find attribute using predicate. Returns first attribute for which predicate returned true. + template xml_attribute find_attribute(Predicate pred) const + { + if (!_root) return xml_attribute(); + + for (xml_attribute attrib = first_attribute(); attrib; attrib = attrib.next_attribute()) + if (pred(attrib)) + return attrib; + + return xml_attribute(); + } + + // Find child node using predicate. Returns first child for which predicate returned true. + template xml_node find_child(Predicate pred) const + { + if (!_root) return xml_node(); + + for (xml_node node = first_child(); node; node = node.next_sibling()) + if (pred(node)) + return node; + + return xml_node(); + } + + // Find node from subtree using predicate. Returns first node from subtree (depth-first), for which predicate returned true. + template xml_node find_node(Predicate pred) const + { + if (!_root) return xml_node(); + + xml_node cur = first_child(); + + while (cur._root && cur._root != _root) + { + if (pred(cur)) return cur; + + if (cur.first_child()) cur = cur.first_child(); + else if (cur.next_sibling()) cur = cur.next_sibling(); + else + { + while (!cur.next_sibling() && cur._root != _root) cur = cur.parent(); + + if (cur._root != _root) cur = cur.next_sibling(); + } + } + + return xml_node(); + } + + // Find child node by attribute name/value + xml_node find_child_by_attribute(const char_t* name, const char_t* attr_name, const char_t* attr_value) const; + xml_node find_child_by_attribute(const char_t* attr_name, const char_t* attr_value) const; + + #ifndef PUGIXML_NO_STL + // Get the absolute node path from root as a text string. + string_t path(char_t delimiter = '/') const; + #endif + + // Search for a node by path consisting of node names and . or .. elements. + xml_node first_element_by_path(const char_t* path, char_t delimiter = '/') const; + + // Recursively traverse subtree with xml_tree_walker + bool traverse(xml_tree_walker& walker); + + #ifndef PUGIXML_NO_XPATH + // Select single node by evaluating XPath query. Returns first node from the resulting node set. + xpath_node select_node(const char_t* query, xpath_variable_set* variables = 0) const; + xpath_node select_node(const xpath_query& query) const; + + // Select node set by evaluating XPath query + xpath_node_set select_nodes(const char_t* query, xpath_variable_set* variables = 0) const; + xpath_node_set select_nodes(const xpath_query& query) const; + + // (deprecated: use select_node instead) Select single node by evaluating XPath query. + xpath_node select_single_node(const char_t* query, xpath_variable_set* variables = 0) const; + xpath_node select_single_node(const xpath_query& query) const; + + #endif + + // Print subtree using a writer object + void print(xml_writer& writer, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto, unsigned int depth = 0) const; + + #ifndef PUGIXML_NO_STL + // Print subtree to stream + void print(std::basic_ostream >& os, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto, unsigned int depth = 0) const; + void print(std::basic_ostream >& os, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, unsigned int depth = 0) const; + #endif + + // Child nodes iterators + typedef xml_node_iterator iterator; + + iterator begin() const; + iterator end() const; + + // Attribute iterators + typedef xml_attribute_iterator attribute_iterator; + + attribute_iterator attributes_begin() const; + attribute_iterator attributes_end() const; + + // Range-based for support + xml_object_range children() const; + xml_object_range children(const char_t* name) const; + xml_object_range attributes() const; + + // Get node offset in parsed file/string (in char_t units) for debugging purposes + ptrdiff_t offset_debug() const; + + // Get hash value (unique for handles to the same object) + size_t hash_value() const; + + // Get internal pointer + xml_node_struct* internal_object() const; + }; + +#ifdef __BORLANDC__ + // Borland C++ workaround + bool PUGIXML_FUNCTION operator&&(const xml_node& lhs, bool rhs); + bool PUGIXML_FUNCTION operator||(const xml_node& lhs, bool rhs); +#endif + + // A helper for working with text inside PCDATA nodes + class PUGIXML_CLASS xml_text + { + friend class xml_node; + + xml_node_struct* _root; + + typedef void (*unspecified_bool_type)(xml_text***); + + explicit xml_text(xml_node_struct* root); + + xml_node_struct* _data_new(); + xml_node_struct* _data() const; + + public: + // Default constructor. Constructs an empty object. + xml_text(); + + // Safe bool conversion operator + operator unspecified_bool_type() const; + + // Borland C++ workaround + bool operator!() const; + + // Check if text object is empty + bool empty() const; + + // Get text, or "" if object is empty + const char_t* get() const; + + // Get text, or the default value if object is empty + const char_t* as_string(const char_t* def = PUGIXML_TEXT("")) const; + + // Get text as a number, or the default value if conversion did not succeed or object is empty + int as_int(int def = 0) const; + unsigned int as_uint(unsigned int def = 0) const; + double as_double(double def = 0) const; + float as_float(float def = 0) const; + + #ifdef PUGIXML_HAS_LONG_LONG + long long as_llong(long long def = 0) const; + unsigned long long as_ullong(unsigned long long def = 0) const; + #endif + + // Get text as bool (returns true if first character is in '1tTyY' set), or the default value if object is empty + bool as_bool(bool def = false) const; + + // Set text (returns false if object is empty or there is not enough memory) + bool set(const char_t* rhs); + + // Set text with type conversion (numbers are converted to strings, boolean is converted to "true"/"false") + bool set(int rhs); + bool set(unsigned int rhs); + bool set(double rhs); + bool set(float rhs); + bool set(bool rhs); + + #ifdef PUGIXML_HAS_LONG_LONG + bool set(long long rhs); + bool set(unsigned long long rhs); + #endif + + // Set text (equivalent to set without error checking) + xml_text& operator=(const char_t* rhs); + xml_text& operator=(int rhs); + xml_text& operator=(unsigned int rhs); + xml_text& operator=(double rhs); + xml_text& operator=(float rhs); + xml_text& operator=(bool rhs); + + #ifdef PUGIXML_HAS_LONG_LONG + xml_text& operator=(long long rhs); + xml_text& operator=(unsigned long long rhs); + #endif + + // Get the data node (node_pcdata or node_cdata) for this object + xml_node data() const; + }; + +#ifdef __BORLANDC__ + // Borland C++ workaround + bool PUGIXML_FUNCTION operator&&(const xml_text& lhs, bool rhs); + bool PUGIXML_FUNCTION operator||(const xml_text& lhs, bool rhs); +#endif + + // Child node iterator (a bidirectional iterator over a collection of xml_node) + class PUGIXML_CLASS xml_node_iterator + { + friend class xml_node; + + private: + mutable xml_node _wrap; + xml_node _parent; + + xml_node_iterator(xml_node_struct* ref, xml_node_struct* parent); + + public: + // Iterator traits + typedef ptrdiff_t difference_type; + typedef xml_node value_type; + typedef xml_node* pointer; + typedef xml_node& reference; + + #ifndef PUGIXML_NO_STL + typedef std::bidirectional_iterator_tag iterator_category; + #endif + + // Default constructor + xml_node_iterator(); + + // Construct an iterator which points to the specified node + xml_node_iterator(const xml_node& node); + + // Iterator operators + bool operator==(const xml_node_iterator& rhs) const; + bool operator!=(const xml_node_iterator& rhs) const; + + xml_node& operator*() const; + xml_node* operator->() const; + + const xml_node_iterator& operator++(); + xml_node_iterator operator++(int); + + const xml_node_iterator& operator--(); + xml_node_iterator operator--(int); + }; + + // Attribute iterator (a bidirectional iterator over a collection of xml_attribute) + class PUGIXML_CLASS xml_attribute_iterator + { + friend class xml_node; + + private: + mutable xml_attribute _wrap; + xml_node _parent; + + xml_attribute_iterator(xml_attribute_struct* ref, xml_node_struct* parent); + + public: + // Iterator traits + typedef ptrdiff_t difference_type; + typedef xml_attribute value_type; + typedef xml_attribute* pointer; + typedef xml_attribute& reference; + + #ifndef PUGIXML_NO_STL + typedef std::bidirectional_iterator_tag iterator_category; + #endif + + // Default constructor + xml_attribute_iterator(); + + // Construct an iterator which points to the specified attribute + xml_attribute_iterator(const xml_attribute& attr, const xml_node& parent); + + // Iterator operators + bool operator==(const xml_attribute_iterator& rhs) const; + bool operator!=(const xml_attribute_iterator& rhs) const; + + xml_attribute& operator*() const; + xml_attribute* operator->() const; + + const xml_attribute_iterator& operator++(); + xml_attribute_iterator operator++(int); + + const xml_attribute_iterator& operator--(); + xml_attribute_iterator operator--(int); + }; + + // Named node range helper + class PUGIXML_CLASS xml_named_node_iterator + { + friend class xml_node; + + public: + // Iterator traits + typedef ptrdiff_t difference_type; + typedef xml_node value_type; + typedef xml_node* pointer; + typedef xml_node& reference; + + #ifndef PUGIXML_NO_STL + typedef std::bidirectional_iterator_tag iterator_category; + #endif + + // Default constructor + xml_named_node_iterator(); + + // Construct an iterator which points to the specified node + xml_named_node_iterator(const xml_node& node, const char_t* name); + + // Iterator operators + bool operator==(const xml_named_node_iterator& rhs) const; + bool operator!=(const xml_named_node_iterator& rhs) const; + + xml_node& operator*() const; + xml_node* operator->() const; + + const xml_named_node_iterator& operator++(); + xml_named_node_iterator operator++(int); + + const xml_named_node_iterator& operator--(); + xml_named_node_iterator operator--(int); + + private: + mutable xml_node _wrap; + xml_node _parent; + const char_t* _name; + + xml_named_node_iterator(xml_node_struct* ref, xml_node_struct* parent, const char_t* name); + }; + + // Abstract tree walker class (see xml_node::traverse) + class PUGIXML_CLASS xml_tree_walker + { + friend class xml_node; + + private: + int _depth; + + protected: + // Get current traversal depth + int depth() const; + + public: + xml_tree_walker(); + virtual ~xml_tree_walker(); + + // Callback that is called when traversal begins + virtual bool begin(xml_node& node); + + // Callback that is called for each node traversed + virtual bool for_each(xml_node& node) = 0; + + // Callback that is called when traversal ends + virtual bool end(xml_node& node); + }; + + // Parsing status, returned as part of xml_parse_result object + enum xml_parse_status + { + status_ok = 0, // No error + + status_file_not_found, // File was not found during load_file() + status_io_error, // Error reading from file/stream + status_out_of_memory, // Could not allocate memory + status_internal_error, // Internal error occurred + + status_unrecognized_tag, // Parser could not determine tag type + + status_bad_pi, // Parsing error occurred while parsing document declaration/processing instruction + status_bad_comment, // Parsing error occurred while parsing comment + status_bad_cdata, // Parsing error occurred while parsing CDATA section + status_bad_doctype, // Parsing error occurred while parsing document type declaration + status_bad_pcdata, // Parsing error occurred while parsing PCDATA section + status_bad_start_element, // Parsing error occurred while parsing start element tag + status_bad_attribute, // Parsing error occurred while parsing element attribute + status_bad_end_element, // Parsing error occurred while parsing end element tag + status_end_element_mismatch,// There was a mismatch of start-end tags (closing tag had incorrect name, some tag was not closed or there was an excessive closing tag) + + status_append_invalid_root, // Unable to append nodes since root type is not node_element or node_document (exclusive to xml_node::append_buffer) + + status_no_document_element // Parsing resulted in a document without element nodes + }; + + // Parsing result + struct PUGIXML_CLASS xml_parse_result + { + // Parsing status (see xml_parse_status) + xml_parse_status status; + + // Last parsed offset (in char_t units from start of input data) + ptrdiff_t offset; + + // Source document encoding + xml_encoding encoding; + + // Default constructor, initializes object to failed state + xml_parse_result(); + + // Cast to bool operator + operator bool() const; + + // Get error description + const char* description() const; + }; + + // Document class (DOM tree root) + class PUGIXML_CLASS xml_document: public xml_node + { + private: + char_t* _buffer; + + char _memory[192]; + + // Non-copyable semantics + xml_document(const xml_document&); + const xml_document& operator=(const xml_document&); + + void create(); + void destroy(); + + public: + // Default constructor, makes empty document + xml_document(); + + // Destructor, invalidates all node/attribute handles to this document + ~xml_document(); + + // Removes all nodes, leaving the empty document + void reset(); + + // Removes all nodes, then copies the entire contents of the specified document + void reset(const xml_document& proto); + + #ifndef PUGIXML_NO_STL + // Load document from stream. + xml_parse_result load(std::basic_istream >& stream, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + xml_parse_result load(std::basic_istream >& stream, unsigned int options = parse_default); + #endif + + // (deprecated: use load_string instead) Load document from zero-terminated string. No encoding conversions are applied. + xml_parse_result load(const char_t* contents, unsigned int options = parse_default); + + // Load document from zero-terminated string. No encoding conversions are applied. + xml_parse_result load_string(const char_t* contents, unsigned int options = parse_default); + + // Load document from file + xml_parse_result load_file(const char* path, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + xml_parse_result load_file(const wchar_t* path, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + + // Load document from buffer. Copies/converts the buffer, so it may be deleted or changed after the function returns. + xml_parse_result load_buffer(const void* contents, size_t size, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + + // Load document from buffer, using the buffer for in-place parsing (the buffer is modified and used for storage of document data). + // You should ensure that buffer data will persist throughout the document's lifetime, and free the buffer memory manually once document is destroyed. + xml_parse_result load_buffer_inplace(void* contents, size_t size, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + + // Load document from buffer, using the buffer for in-place parsing (the buffer is modified and used for storage of document data). + // You should allocate the buffer with pugixml allocation function; document will free the buffer when it is no longer needed (you can't use it anymore). + xml_parse_result load_buffer_inplace_own(void* contents, size_t size, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + + // Save XML document to writer (semantics is slightly different from xml_node::print, see documentation for details). + void save(xml_writer& writer, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto) const; + + #ifndef PUGIXML_NO_STL + // Save XML document to stream (semantics is slightly different from xml_node::print, see documentation for details). + void save(std::basic_ostream >& stream, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto) const; + void save(std::basic_ostream >& stream, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default) const; + #endif + + // Save XML to file + bool save_file(const char* path, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto) const; + bool save_file(const wchar_t* path, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto) const; + + // Get document element + xml_node document_element() const; + }; + +#ifndef PUGIXML_NO_XPATH + // XPath query return type + enum xpath_value_type + { + xpath_type_none, // Unknown type (query failed to compile) + xpath_type_node_set, // Node set (xpath_node_set) + xpath_type_number, // Number + xpath_type_string, // String + xpath_type_boolean // Boolean + }; + + // XPath parsing result + struct PUGIXML_CLASS xpath_parse_result + { + // Error message (0 if no error) + const char* error; + + // Last parsed offset (in char_t units from string start) + ptrdiff_t offset; + + // Default constructor, initializes object to failed state + xpath_parse_result(); + + // Cast to bool operator + operator bool() const; + + // Get error description + const char* description() const; + }; + + // A single XPath variable + class PUGIXML_CLASS xpath_variable + { + friend class xpath_variable_set; + + protected: + xpath_value_type _type; + xpath_variable* _next; + + xpath_variable(); + + // Non-copyable semantics + xpath_variable(const xpath_variable&); + xpath_variable& operator=(const xpath_variable&); + + public: + // Get variable name + const char_t* name() const; + + // Get variable type + xpath_value_type type() const; + + // Get variable value; no type conversion is performed, default value (false, NaN, empty string, empty node set) is returned on type mismatch error + bool get_boolean() const; + double get_number() const; + const char_t* get_string() const; + const xpath_node_set& get_node_set() const; + + // Set variable value; no type conversion is performed, false is returned on type mismatch error + bool set(bool value); + bool set(double value); + bool set(const char_t* value); + bool set(const xpath_node_set& value); + }; + + // A set of XPath variables + class PUGIXML_CLASS xpath_variable_set + { + private: + xpath_variable* _data[64]; + + // Non-copyable semantics + xpath_variable_set(const xpath_variable_set&); + xpath_variable_set& operator=(const xpath_variable_set&); + + xpath_variable* find(const char_t* name) const; + + public: + // Default constructor/destructor + xpath_variable_set(); + ~xpath_variable_set(); + + // Add a new variable or get the existing one, if the types match + xpath_variable* add(const char_t* name, xpath_value_type type); + + // Set value of an existing variable; no type conversion is performed, false is returned if there is no such variable or if types mismatch + bool set(const char_t* name, bool value); + bool set(const char_t* name, double value); + bool set(const char_t* name, const char_t* value); + bool set(const char_t* name, const xpath_node_set& value); + + // Get existing variable by name + xpath_variable* get(const char_t* name); + const xpath_variable* get(const char_t* name) const; + }; + + // A compiled XPath query object + class PUGIXML_CLASS xpath_query + { + private: + void* _impl; + xpath_parse_result _result; + + typedef void (*unspecified_bool_type)(xpath_query***); + + // Non-copyable semantics + xpath_query(const xpath_query&); + xpath_query& operator=(const xpath_query&); + + public: + // Construct a compiled object from XPath expression. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws xpath_exception on compilation errors. + explicit xpath_query(const char_t* query, xpath_variable_set* variables = 0); + + // Destructor + ~xpath_query(); + + // Get query expression return type + xpath_value_type return_type() const; + + // Evaluate expression as boolean value in the specified context; performs type conversion if necessary. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws std::bad_alloc on out of memory errors. + bool evaluate_boolean(const xpath_node& n) const; + + // Evaluate expression as double value in the specified context; performs type conversion if necessary. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws std::bad_alloc on out of memory errors. + double evaluate_number(const xpath_node& n) const; + + #ifndef PUGIXML_NO_STL + // Evaluate expression as string value in the specified context; performs type conversion if necessary. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws std::bad_alloc on out of memory errors. + string_t evaluate_string(const xpath_node& n) const; + #endif + + // Evaluate expression as string value in the specified context; performs type conversion if necessary. + // At most capacity characters are written to the destination buffer, full result size is returned (includes terminating zero). + // If PUGIXML_NO_EXCEPTIONS is not defined, throws std::bad_alloc on out of memory errors. + // If PUGIXML_NO_EXCEPTIONS is defined, returns empty set instead. + size_t evaluate_string(char_t* buffer, size_t capacity, const xpath_node& n) const; + + // Evaluate expression as node set in the specified context. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws xpath_exception on type mismatch and std::bad_alloc on out of memory errors. + // If PUGIXML_NO_EXCEPTIONS is defined, returns empty node set instead. + xpath_node_set evaluate_node_set(const xpath_node& n) const; + + // Evaluate expression as node set in the specified context. + // Return first node in document order, or empty node if node set is empty. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws xpath_exception on type mismatch and std::bad_alloc on out of memory errors. + // If PUGIXML_NO_EXCEPTIONS is defined, returns empty node instead. + xpath_node evaluate_node(const xpath_node& n) const; + + // Get parsing result (used to get compilation errors in PUGIXML_NO_EXCEPTIONS mode) + const xpath_parse_result& result() const; + + // Safe bool conversion operator + operator unspecified_bool_type() const; + + // Borland C++ workaround + bool operator!() const; + }; + + #ifndef PUGIXML_NO_EXCEPTIONS + // XPath exception class + class PUGIXML_CLASS xpath_exception: public std::exception + { + private: + xpath_parse_result _result; + + public: + // Construct exception from parse result + explicit xpath_exception(const xpath_parse_result& result); + + // Get error message + virtual const char* what() const throw(); + + // Get parse result + const xpath_parse_result& result() const; + }; + #endif + + // XPath node class (either xml_node or xml_attribute) + class PUGIXML_CLASS xpath_node + { + private: + xml_node _node; + xml_attribute _attribute; + + typedef void (*unspecified_bool_type)(xpath_node***); + + public: + // Default constructor; constructs empty XPath node + xpath_node(); + + // Construct XPath node from XML node/attribute + xpath_node(const xml_node& node); + xpath_node(const xml_attribute& attribute, const xml_node& parent); + + // Get node/attribute, if any + xml_node node() const; + xml_attribute attribute() const; + + // Get parent of contained node/attribute + xml_node parent() const; + + // Safe bool conversion operator + operator unspecified_bool_type() const; + + // Borland C++ workaround + bool operator!() const; + + // Comparison operators + bool operator==(const xpath_node& n) const; + bool operator!=(const xpath_node& n) const; + }; + +#ifdef __BORLANDC__ + // Borland C++ workaround + bool PUGIXML_FUNCTION operator&&(const xpath_node& lhs, bool rhs); + bool PUGIXML_FUNCTION operator||(const xpath_node& lhs, bool rhs); +#endif + + // A fixed-size collection of XPath nodes + class PUGIXML_CLASS xpath_node_set + { + public: + // Collection type + enum type_t + { + type_unsorted, // Not ordered + type_sorted, // Sorted by document order (ascending) + type_sorted_reverse // Sorted by document order (descending) + }; + + // Constant iterator type + typedef const xpath_node* const_iterator; + + // We define non-constant iterator to be the same as constant iterator so that various generic algorithms (i.e. boost foreach) work + typedef const xpath_node* iterator; + + // Default constructor. Constructs empty set. + xpath_node_set(); + + // Constructs a set from iterator range; data is not checked for duplicates and is not sorted according to provided type, so be careful + xpath_node_set(const_iterator begin, const_iterator end, type_t type = type_unsorted); + + // Destructor + ~xpath_node_set(); + + // Copy constructor/assignment operator + xpath_node_set(const xpath_node_set& ns); + xpath_node_set& operator=(const xpath_node_set& ns); + + // Get collection type + type_t type() const; + + // Get collection size + size_t size() const; + + // Indexing operator + const xpath_node& operator[](size_t index) const; + + // Collection iterators + const_iterator begin() const; + const_iterator end() const; + + // Sort the collection in ascending/descending order by document order + void sort(bool reverse = false); + + // Get first node in the collection by document order + xpath_node first() const; + + // Check if collection is empty + bool empty() const; + + private: + type_t _type; + + xpath_node _storage; + + xpath_node* _begin; + xpath_node* _end; + + void _assign(const_iterator begin, const_iterator end); + }; +#endif + +#ifndef PUGIXML_NO_STL + // Convert wide string to UTF8 + std::basic_string, std::allocator > PUGIXML_FUNCTION as_utf8(const wchar_t* str); + std::basic_string, std::allocator > PUGIXML_FUNCTION as_utf8(const std::basic_string, std::allocator >& str); + + // Convert UTF8 to wide string + std::basic_string, std::allocator > PUGIXML_FUNCTION as_wide(const char* str); + std::basic_string, std::allocator > PUGIXML_FUNCTION as_wide(const std::basic_string, std::allocator >& str); +#endif + + // Memory allocation function interface; returns pointer to allocated memory or NULL on failure + typedef void* (*allocation_function)(size_t size); + + // Memory deallocation function interface + typedef void (*deallocation_function)(void* ptr); + + // Override default memory management functions. All subsequent allocations/deallocations will be performed via supplied functions. + void PUGIXML_FUNCTION set_memory_management_functions(allocation_function allocate, deallocation_function deallocate); + + // Get current memory management functions + allocation_function PUGIXML_FUNCTION get_memory_allocation_function(); + deallocation_function PUGIXML_FUNCTION get_memory_deallocation_function(); +} + +#if !defined(PUGIXML_NO_STL) && (defined(_MSC_VER) || defined(__ICC)) +namespace std +{ + // Workarounds for (non-standard) iterator category detection for older versions (MSVC7/IC8 and earlier) + std::bidirectional_iterator_tag PUGIXML_FUNCTION _Iter_cat(const pugi::xml_node_iterator&); + std::bidirectional_iterator_tag PUGIXML_FUNCTION _Iter_cat(const pugi::xml_attribute_iterator&); + std::bidirectional_iterator_tag PUGIXML_FUNCTION _Iter_cat(const pugi::xml_named_node_iterator&); +} +#endif + +#if !defined(PUGIXML_NO_STL) && defined(__SUNPRO_CC) +namespace std +{ + // Workarounds for (non-standard) iterator category detection + std::bidirectional_iterator_tag PUGIXML_FUNCTION __iterator_category(const pugi::xml_node_iterator&); + std::bidirectional_iterator_tag PUGIXML_FUNCTION __iterator_category(const pugi::xml_attribute_iterator&); + std::bidirectional_iterator_tag PUGIXML_FUNCTION __iterator_category(const pugi::xml_named_node_iterator&); +} +#endif + +#endif + +// Make sure implementation is included in header-only mode +// Use macro expansion in #include to work around QMake (QTBUG-11923) +#if defined(PUGIXML_HEADER_ONLY) && !defined(PUGIXML_SOURCE) +# define PUGIXML_SOURCE "pugixml.cpp" +# include PUGIXML_SOURCE +#endif + +/** + * Copyright (c) 2006-2015 Arseny Kapoulkine + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ diff --git a/Template/Game/Source/External/SDL/BUGS.txt b/Template/Game/Source/External/SDL/BUGS.txt new file mode 100644 index 0000000..c5ed3af --- /dev/null +++ b/Template/Game/Source/External/SDL/BUGS.txt @@ -0,0 +1,16 @@ + +Bugs are now managed in the SDL bug tracker, here: + + http://bugzilla.libsdl.org/ + +You may report bugs there, and search to see if a given issue has already + been reported, discussed, and maybe even fixed. + + +You may also find help on the SDL mailing list. Subscription information: + + http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org + +Bug reports are welcome here, but we really appreciate if you use Bugzilla, as + bugs discussed on the mailing list may be forgotten or missed. + diff --git a/Template/Game/Source/External/SDL/COPYING.txt b/Template/Game/Source/External/SDL/COPYING.txt new file mode 100644 index 0000000..dd9574e --- /dev/null +++ b/Template/Game/Source/External/SDL/COPYING.txt @@ -0,0 +1,20 @@ + +Simple DirectMedia Layer +Copyright (C) 1997-2016 Sam Lantinga + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + diff --git a/Template/Game/Source/External/SDL/README-SDL.txt b/Template/Game/Source/External/SDL/README-SDL.txt new file mode 100644 index 0000000..fade0b9 --- /dev/null +++ b/Template/Game/Source/External/SDL/README-SDL.txt @@ -0,0 +1,13 @@ + +Please distribute this file with the SDL runtime environment: + +The Simple DirectMedia Layer (SDL for short) is a cross-platform library +designed to make it easy to write multi-media software, such as games and +emulators. + +The Simple DirectMedia Layer library source code is available from: +http://www.libsdl.org/ + +This library is distributed under the terms of the zlib license: +http://www.zlib.net/zlib_license.html + diff --git a/Template/Game/Source/External/SDL/README.txt b/Template/Game/Source/External/SDL/README.txt new file mode 100644 index 0000000..f76a633 --- /dev/null +++ b/Template/Game/Source/External/SDL/README.txt @@ -0,0 +1,21 @@ + + Simple DirectMedia Layer + + (SDL) + + Version 2.0 + +--- +http://www.libsdl.org/ + +Simple DirectMedia Layer is a cross-platform development library designed +to provide low level access to audio, keyboard, mouse, joystick, and graphics +hardware via OpenGL and Direct3D. It is used by video playback software, +emulators, and popular games including Valve's award winning catalog +and many Humble Bundle games. + +More extensive documentation is available in the docs directory, starting +with README.md + +Enjoy! + Sam Lantinga (slouken@libsdl.org) diff --git a/Template/Game/Source/External/SDL/WhatsNew.txt b/Template/Game/Source/External/SDL/WhatsNew.txt new file mode 100644 index 0000000..9b7139f --- /dev/null +++ b/Template/Game/Source/External/SDL/WhatsNew.txt @@ -0,0 +1,199 @@ + +This is a list of major changes in SDL's version history. + +--------------------------------------------------------------------------- +2.0.4: +--------------------------------------------------------------------------- + +General: +* Added support for web applications using Emscripten, see docs/README-emscripten.md for more information +* Added support for web applications using Native Client (NaCl), see docs/README-nacl.md for more information +* Added an API to queue audio instead of using the audio callback: + SDL_QueueAudio(), SDL_GetQueuedAudioSize(), SDL_ClearQueuedAudio() +* Added events for audio device hot plug support: + SDL_AUDIODEVICEADDED, SDL_AUDIODEVICEREMOVED +* Added SDL_PointInRect() +* Added SDL_HasAVX2() to detect CPUs with AVX2 support +* Added SDL_SetWindowHitTest() to let apps treat parts of their SDL window like traditional window decorations (drag areas, resize areas) +* Added SDL_GetGrabbedWindow() to get the window that currently has input grab, if any +* Added SDL_RenderIsClipEnabled() to tell whether clipping is currently enabled in a renderer +* Added SDL_CaptureMouse() to capture the mouse to get events while the mouse is not in your window +* Added SDL_WarpMouseGlobal() to warp the mouse cursor in global screen space +* Added SDL_GetGlobalMouseState() to get the current mouse state outside of an SDL window +* Added a direction field to mouse wheel events to tell whether they are flipped (natural) or not +* Added GL_CONTEXT_RELEASE_BEHAVIOR GL attribute (maps to [WGL|GLX]_ARB_context_flush_control extension) +* Added EGL_KHR_create_context support to allow OpenGL ES version selection on some platforms +* Added NV12 and NV21 YUV texture support for OpenGL and OpenGL ES 2.0 renderers +* Added a Vivante video driver that is used on various SoC platforms +* Added an event SDL_RENDER_DEVICE_RESET that is sent from the D3D renderers when the D3D device is lost, and from Android's event loop when the GLES context had to be recreated +* Added a hint SDL_HINT_NO_SIGNAL_HANDLERS to disable SDL's built in signal handling +* Added a hint SDL_HINT_THREAD_STACK_SIZE to set the stack size of SDL's threads +* Added SDL_sqrtf(), SDL_tan(), and SDL_tanf() to the stdlib routines +* Improved support for WAV and BMP files with unusual chunks in them +* Renamed SDL_assert_data to SDL_AssertData and SDL_assert_state to SDL_AssertState +* Added a hint SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN to prevent window interaction while cursor is hidden +* Added SDL_GetDisplayDPI() to get the DPI information for a display +* Added SDL_JoystickCurrentPowerLevel() to get the battery level of a joystick +* Added SDL_JoystickFromInstanceID(), as a helper function, to get the SDL_Joystick* that an event is referring to. +* Added SDL_GameControllerFromInstanceID(), as a helper function, to get the SDL_GameController* that an event is referring to. + +Windows: +* Added support for Windows Phone 8.1 and Windows 10/UWP (Universal Windows Platform) +* Timer resolution is now 1 ms by default, adjustable with the SDL_HINT_TIMER_RESOLUTION hint +* SDLmain no longer depends on the C runtime, so you can use the same .lib in both Debug and Release builds +* Added SDL_SetWindowsMessageHook() to set a function to be called for every windows message before TranslateMessage() +* Added a hint SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP to control whether SDL_PumpEvents() processes the Windows message loop +* You can distinguish between real mouse and touch events by looking for SDL_TOUCH_MOUSEID in the mouse event "which" field +* SDL_SysWMinfo now contains the window HDC +* Added support for Unicode command line options +* Prevent beeping when Alt-key combos are pressed +* SDL_SetTextInputRect() re-positions the OS-rendered IME +* Added a hint SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 to prevent generating SDL_WINDOWEVENT_CLOSE events when Alt-F4 is pressed +* Added a hint SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING to use the old axis and button mapping for XInput devices (deprecated) + +Mac OS X: +* Implemented drag-and-drop support +* Improved joystick hot-plug detection +* The SDL_WINDOWEVENT_EXPOSED window event is triggered in the appropriate situations +* Fixed relative mouse mode when the application loses/regains focus +* Fixed bugs related to transitioning to and from Spaces-aware fullscreen-desktop mode +* Fixed the refresh rate of display modes +* SDL_SysWMInfo is now ARC-compatible +* Added a hint SDL_HINT_MAC_BACKGROUND_APP to prevent forcing the application to become a foreground process + +Linux: +* Enabled building with Mir and Wayland support by default. +* Added IBus IME support +* Added a hint SDL_HINT_IME_INTERNAL_EDITING to control whether IBus should handle text editing internally instead of sending SDL_TEXTEDITING events +* Added a hint SDL_HINT_VIDEO_X11_NET_WM_PING to allow disabling _NET_WM_PING protocol handling in SDL_CreateWindow() +* Added support for multiple audio devices when using Pulseaudio +* Fixed duplicate mouse events when using relative mouse motion + +iOS: +* Added support for iOS 8 +* The SDL_WINDOW_ALLOW_HIGHDPI window flag now enables high-dpi support, and SDL_GL_GetDrawableSize() or SDL_GetRendererOutputSize() gets the window resolution in pixels +* SDL_GetWindowSize() and display mode sizes are in the "DPI-independent points" / "screen coordinates" coordinate space rather than pixels (matches OS X behavior) +* Added native resolution support for the iPhone 6 Plus +* Added support for MFi game controllers +* Added support for the hint SDL_HINT_ACCELEROMETER_AS_JOYSTICK +* Added sRGB OpenGL ES context support on iOS 7+ +* Added support for SDL_DisableScreenSaver(), SDL_EnableScreenSaver() and the hint SDL_HINT_VIDEO_ALLOW_SCREENSAVER +* SDL_SysWMinfo now contains the OpenGL ES framebuffer and color renderbuffer objects used by the window's active GLES view +* Fixed various rotation and orientation issues +* Fixed memory leaks + +Android: +* Added a hint SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH to prevent mouse events from being registered as touch events +* Added hints SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION and SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION +* Added support for SDL_DisableScreenSaver(), SDL_EnableScreenSaver() and the hint SDL_HINT_VIDEO_ALLOW_SCREENSAVER +* Added support for SDL_ShowMessageBox() and SDL_ShowSimpleMessageBox() + +Raspberry Pi: +* Added support for the Raspberry Pi 2 + + +--------------------------------------------------------------------------- +2.0.3: +--------------------------------------------------------------------------- + +Mac OS X: +* Fixed creating an OpenGL context by default on Mac OS X 10.6 + + +--------------------------------------------------------------------------- +2.0.2: +--------------------------------------------------------------------------- +General: +* Added SDL_GL_ResetAttributes() to reset OpenGL attributes to default values +* Added an API to load a database of game controller mappings from a file: + SDL_GameControllerAddMappingsFromFile(), SDL_GameControllerAddMappingsFromRW() +* Added game controller mappings for the PS4 and OUYA controllers +* Added SDL_GetDefaultAssertionHandler() and SDL_GetAssertionHandler() +* Added SDL_DetachThread() +* Added SDL_HasAVX() to determine if the CPU has AVX features +* Added SDL_vsscanf(), SDL_acos(), and SDL_asin() to the stdlib routines +* EGL can now create/manage OpenGL and OpenGL ES 1.x/2.x contexts, and share + them using SDL_GL_SHARE_WITH_CURRENT_CONTEXT +* Added a field "clicks" to the mouse button event which records whether the event is a single click, double click, etc. +* The screensaver is now disabled by default, and there is a hint SDL_HINT_VIDEO_ALLOW_SCREENSAVER that can change that behavior. +* Added a hint SDL_HINT_MOUSE_RELATIVE_MODE_WARP to specify whether mouse relative mode should be emulated using mouse warping. +* testgl2 does not need to link with libGL anymore +* Added testgles2 test program to demonstrate working with OpenGL ES 2.0 +* Added controllermap test program to visually map a game controller + +Windows: +* Support for OpenGL ES 2.x contexts using either WGL or EGL (natively via + the driver or emulated through ANGLE) +* Added a hint SDL_HINT_VIDEO_WIN_D3DCOMPILER to specify which D3D shader compiler to use for OpenGL ES 2 support through ANGLE +* Added a hint SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT that is useful when creating multiple windows that should share the same OpenGL context. +* Added an event SDL_RENDER_TARGETS_RESET that is sent when D3D9 render targets are reset after the device has been restored. + +Mac OS X: +* Added a hint SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK to control whether Ctrl+click should be treated as a right click on Mac OS X. This is off by default. + +Linux: +* Fixed fullscreen and focused behavior when receiving NotifyGrab events +* Added experimental Wayland and Mir support, disabled by default + +Android: +* Joystick support (minimum SDK version required to build SDL is now 12, + the required runtime version remains at 10, but on such devices joystick + support won't be available). +* Hotplugging support for joysticks +* Added a hint SDL_HINT_ACCELEROMETER_AS_JOYSTICK to control whether the accelerometer should be listed as a 3 axis joystick, which it will by default. + + +--------------------------------------------------------------------------- +2.0.1: +--------------------------------------------------------------------------- + +General: +* Added an API to get common filesystem paths in SDL_filesystem.h: + SDL_GetBasePath(), SDL_GetPrefPath() +* Added an API to do optimized YV12 and IYUV texture updates: + SDL_UpdateYUVTexture() +* Added an API to get the amount of RAM on the system: + SDL_GetSystemRAM() +* Added a macro to perform timestamp comparisons with SDL_GetTicks(): + SDL_TICKS_PASSED() +* Dramatically improved OpenGL ES 2.0 rendering performance +* Added OpenGL attribute SDL_GL_FRAMEBUFFER_SRGB_CAPABLE + +Windows: +* Created a static library configuration for the Visual Studio 2010 project +* Added a hint to create the Direct3D device with support for multi-threading: + SDL_HINT_RENDER_DIRECT3D_THREADSAFE +* Added a function to get the D3D9 adapter index for a display: + SDL_Direct3D9GetAdapterIndex() +* Added a function to get the D3D9 device for a D3D9 renderer: + SDL_RenderGetD3D9Device() +* Fixed building SDL with the mingw32 toolchain (mingw-w64 is preferred) +* Fixed crash when using two XInput controllers at the same time +* Fixed detecting a mixture of XInput and DirectInput controllers +* Fixed clearing a D3D render target larger than the window +* Improved support for format specifiers in SDL_snprintf() + +Mac OS X: +* Added support for retina displays: + Create your window with the SDL_WINDOW_ALLOW_HIGHDPI flag, and then use SDL_GL_GetDrawableSize() to find the actual drawable size. You are responsible for scaling mouse and drawing coordinates appropriately. +* Fixed mouse warping in fullscreen mode +* Right mouse click is emulated by holding the Ctrl key while left clicking + +Linux: +* Fixed float audio support with the PulseAudio driver +* Fixed missing line endpoints in the OpenGL renderer on some drivers +* X11 symbols are no longer defined to avoid collisions when linking statically + +iOS: +* Fixed status bar visibility on iOS 7 +* Flipped the accelerometer Y axis to match expected values + +Android: +IMPORTANT: You MUST get the updated SDLActivity.java to match C code +* Moved EGL initialization to native code +* Fixed the accelerometer axis rotation relative to the device rotation +* Fixed race conditions when handling the EGL context on pause/resume +* Touch devices are available for enumeration immediately after init + +Raspberry Pi: +* Added support for the Raspberry Pi, see README-raspberrypi.txt for details diff --git a/Template/Game/Source/External/SDL/include/SDL.h b/Template/Game/Source/External/SDL/include/SDL.h new file mode 100644 index 0000000..7647b51 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL.h @@ -0,0 +1,132 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL.h + * + * Main include header for the SDL library + */ + + +#ifndef _SDL_H +#define _SDL_H + +#include "SDL_main.h" +#include "SDL_stdinc.h" +#include "SDL_assert.h" +#include "SDL_atomic.h" +#include "SDL_audio.h" +#include "SDL_clipboard.h" +#include "SDL_cpuinfo.h" +#include "SDL_endian.h" +#include "SDL_error.h" +#include "SDL_events.h" +#include "SDL_filesystem.h" +#include "SDL_joystick.h" +#include "SDL_gamecontroller.h" +#include "SDL_haptic.h" +#include "SDL_hints.h" +#include "SDL_loadso.h" +#include "SDL_log.h" +#include "SDL_messagebox.h" +#include "SDL_mutex.h" +#include "SDL_power.h" +#include "SDL_render.h" +#include "SDL_rwops.h" +#include "SDL_system.h" +#include "SDL_thread.h" +#include "SDL_timer.h" +#include "SDL_version.h" +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* As of version 0.5, SDL is loaded dynamically into the application */ + +/** + * \name SDL_INIT_* + * + * These are the flags which may be passed to SDL_Init(). You should + * specify the subsystems which you will be using in your application. + */ +/* @{ */ +#define SDL_INIT_TIMER 0x00000001 +#define SDL_INIT_AUDIO 0x00000010 +#define SDL_INIT_VIDEO 0x00000020 /**< SDL_INIT_VIDEO implies SDL_INIT_EVENTS */ +#define SDL_INIT_JOYSTICK 0x00000200 /**< SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS */ +#define SDL_INIT_HAPTIC 0x00001000 +#define SDL_INIT_GAMECONTROLLER 0x00002000 /**< SDL_INIT_GAMECONTROLLER implies SDL_INIT_JOYSTICK */ +#define SDL_INIT_EVENTS 0x00004000 +#define SDL_INIT_NOPARACHUTE 0x00100000 /**< compatibility; this flag is ignored. */ +#define SDL_INIT_EVERYTHING ( \ + SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_EVENTS | \ + SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_GAMECONTROLLER \ + ) +/* @} */ + +/** + * This function initializes the subsystems specified by \c flags + */ +extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags); + +/** + * This function initializes specific SDL subsystems + * + * Subsystem initialization is ref-counted, you must call + * SDL_QuitSubSystem for each SDL_InitSubSystem to correctly + * shutdown a subsystem manually (or call SDL_Quit to force shutdown). + * If a subsystem is already loaded then this call will + * increase the ref-count and return. + */ +extern DECLSPEC int SDLCALL SDL_InitSubSystem(Uint32 flags); + +/** + * This function cleans up specific SDL subsystems + */ +extern DECLSPEC void SDLCALL SDL_QuitSubSystem(Uint32 flags); + +/** + * This function returns a mask of the specified subsystems which have + * previously been initialized. + * + * If \c flags is 0, it returns a mask of all initialized subsystems. + */ +extern DECLSPEC Uint32 SDLCALL SDL_WasInit(Uint32 flags); + +/** + * This function cleans up all initialized subsystems. You should + * call it upon all exit conditions. + */ +extern DECLSPEC void SDLCALL SDL_Quit(void); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_H */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_assert.h b/Template/Game/Source/External/SDL/include/SDL_assert.h new file mode 100644 index 0000000..402981f --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_assert.h @@ -0,0 +1,289 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_assert_h +#define _SDL_assert_h + +#include "SDL_config.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef SDL_ASSERT_LEVEL +#ifdef SDL_DEFAULT_ASSERT_LEVEL +#define SDL_ASSERT_LEVEL SDL_DEFAULT_ASSERT_LEVEL +#elif defined(_DEBUG) || defined(DEBUG) || \ + (defined(__GNUC__) && !defined(__OPTIMIZE__)) +#define SDL_ASSERT_LEVEL 2 +#else +#define SDL_ASSERT_LEVEL 1 +#endif +#endif /* SDL_ASSERT_LEVEL */ + +/* +These are macros and not first class functions so that the debugger breaks +on the assertion line and not in some random guts of SDL, and so each +assert can have unique static variables associated with it. +*/ + +#if defined(_MSC_VER) +/* Don't include intrin.h here because it contains C++ code */ + extern void __cdecl __debugbreak(void); + #define SDL_TriggerBreakpoint() __debugbreak() +#elif (!defined(__NACL__) && defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))) + #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" ) +#elif defined(HAVE_SIGNAL_H) + #include + #define SDL_TriggerBreakpoint() raise(SIGTRAP) +#else + /* How do we trigger breakpoints on this platform? */ + #define SDL_TriggerBreakpoint() +#endif + +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 supports __func__ as a standard. */ +# define SDL_FUNCTION __func__ +#elif ((__GNUC__ >= 2) || defined(_MSC_VER)) +# define SDL_FUNCTION __FUNCTION__ +#else +# define SDL_FUNCTION "???" +#endif +#define SDL_FILE __FILE__ +#define SDL_LINE __LINE__ + +/* +sizeof (x) makes the compiler still parse the expression even without +assertions enabled, so the code is always checked at compile time, but +doesn't actually generate code for it, so there are no side effects or +expensive checks at run time, just the constant size of what x WOULD be, +which presumably gets optimized out as unused. +This also solves the problem of... + + int somevalue = blah(); + SDL_assert(somevalue == 1); + +...which would cause compiles to complain that somevalue is unused if we +disable assertions. +*/ + +/* "while (0,0)" fools Microsoft's compiler's /W4 warning level into thinking + this condition isn't constant. And looks like an owl's face! */ +#ifdef _MSC_VER /* stupid /W4 warnings. */ +#define SDL_NULL_WHILE_LOOP_CONDITION (0,0) +#else +#define SDL_NULL_WHILE_LOOP_CONDITION (0) +#endif + +#define SDL_disabled_assert(condition) \ + do { (void) sizeof ((condition)); } while (SDL_NULL_WHILE_LOOP_CONDITION) + +typedef enum +{ + SDL_ASSERTION_RETRY, /**< Retry the assert immediately. */ + SDL_ASSERTION_BREAK, /**< Make the debugger trigger a breakpoint. */ + SDL_ASSERTION_ABORT, /**< Terminate the program. */ + SDL_ASSERTION_IGNORE, /**< Ignore the assert. */ + SDL_ASSERTION_ALWAYS_IGNORE /**< Ignore the assert from now on. */ +} SDL_AssertState; + +typedef struct SDL_AssertData +{ + int always_ignore; + unsigned int trigger_count; + const char *condition; + const char *filename; + int linenum; + const char *function; + const struct SDL_AssertData *next; +} SDL_AssertData; + +#if (SDL_ASSERT_LEVEL > 0) + +/* Never call this directly. Use the SDL_assert* macros. */ +extern DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *, + const char *, + const char *, int) +#if defined(__clang__) +#if __has_feature(attribute_analyzer_noreturn) +/* this tells Clang's static analysis that we're a custom assert function, + and that the analyzer should assume the condition was always true past this + SDL_assert test. */ + __attribute__((analyzer_noreturn)) +#endif +#endif +; + +/* the do {} while(0) avoids dangling else problems: + if (x) SDL_assert(y); else blah(); + ... without the do/while, the "else" could attach to this macro's "if". + We try to handle just the minimum we need here in a macro...the loop, + the static vars, and break points. The heavy lifting is handled in + SDL_ReportAssertion(), in SDL_assert.c. +*/ +#define SDL_enabled_assert(condition) \ + do { \ + while ( !(condition) ) { \ + static struct SDL_AssertData sdl_assert_data = { \ + 0, 0, #condition, 0, 0, 0, 0 \ + }; \ + const SDL_AssertState sdl_assert_state = SDL_ReportAssertion(&sdl_assert_data, SDL_FUNCTION, SDL_FILE, SDL_LINE); \ + if (sdl_assert_state == SDL_ASSERTION_RETRY) { \ + continue; /* go again. */ \ + } else if (sdl_assert_state == SDL_ASSERTION_BREAK) { \ + SDL_TriggerBreakpoint(); \ + } \ + break; /* not retrying. */ \ + } \ + } while (SDL_NULL_WHILE_LOOP_CONDITION) + +#endif /* enabled assertions support code */ + +/* Enable various levels of assertions. */ +#if SDL_ASSERT_LEVEL == 0 /* assertions disabled */ +# define SDL_assert(condition) SDL_disabled_assert(condition) +# define SDL_assert_release(condition) SDL_disabled_assert(condition) +# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition) +#elif SDL_ASSERT_LEVEL == 1 /* release settings. */ +# define SDL_assert(condition) SDL_disabled_assert(condition) +# define SDL_assert_release(condition) SDL_enabled_assert(condition) +# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition) +#elif SDL_ASSERT_LEVEL == 2 /* normal settings. */ +# define SDL_assert(condition) SDL_enabled_assert(condition) +# define SDL_assert_release(condition) SDL_enabled_assert(condition) +# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition) +#elif SDL_ASSERT_LEVEL == 3 /* paranoid settings. */ +# define SDL_assert(condition) SDL_enabled_assert(condition) +# define SDL_assert_release(condition) SDL_enabled_assert(condition) +# define SDL_assert_paranoid(condition) SDL_enabled_assert(condition) +#else +# error Unknown assertion level. +#endif + +/* this assertion is never disabled at any level. */ +#define SDL_assert_always(condition) SDL_enabled_assert(condition) + + +typedef SDL_AssertState (SDLCALL *SDL_AssertionHandler)( + const SDL_AssertData* data, void* userdata); + +/** + * \brief Set an application-defined assertion handler. + * + * This allows an app to show its own assertion UI and/or force the + * response to an assertion failure. If the app doesn't provide this, SDL + * will try to do the right thing, popping up a system-specific GUI dialog, + * and probably minimizing any fullscreen windows. + * + * This callback may fire from any thread, but it runs wrapped in a mutex, so + * it will only fire from one thread at a time. + * + * Setting the callback to NULL restores SDL's original internal handler. + * + * This callback is NOT reset to SDL's internal handler upon SDL_Quit()! + * + * \return SDL_AssertState value of how to handle the assertion failure. + * + * \param handler Callback function, called when an assertion fails. + * \param userdata A pointer passed to the callback as-is. + */ +extern DECLSPEC void SDLCALL SDL_SetAssertionHandler( + SDL_AssertionHandler handler, + void *userdata); + +/** + * \brief Get the default assertion handler. + * + * This returns the function pointer that is called by default when an + * assertion is triggered. This is an internal function provided by SDL, + * that is used for assertions when SDL_SetAssertionHandler() hasn't been + * used to provide a different function. + * + * \return The default SDL_AssertionHandler that is called when an assert triggers. + */ +extern DECLSPEC SDL_AssertionHandler SDLCALL SDL_GetDefaultAssertionHandler(void); + +/** + * \brief Get the current assertion handler. + * + * This returns the function pointer that is called when an assertion is + * triggered. This is either the value last passed to + * SDL_SetAssertionHandler(), or if no application-specified function is + * set, is equivalent to calling SDL_GetDefaultAssertionHandler(). + * + * \param puserdata Pointer to a void*, which will store the "userdata" + * pointer that was passed to SDL_SetAssertionHandler(). + * This value will always be NULL for the default handler. + * If you don't care about this data, it is safe to pass + * a NULL pointer to this function to ignore it. + * \return The SDL_AssertionHandler that is called when an assert triggers. + */ +extern DECLSPEC SDL_AssertionHandler SDLCALL SDL_GetAssertionHandler(void **puserdata); + +/** + * \brief Get a list of all assertion failures. + * + * Get all assertions triggered since last call to SDL_ResetAssertionReport(), + * or the start of the program. + * + * The proper way to examine this data looks something like this: + * + * + * const SDL_AssertData *item = SDL_GetAssertionReport(); + * while (item) { + * printf("'%s', %s (%s:%d), triggered %u times, always ignore: %s.\n", + * item->condition, item->function, item->filename, + * item->linenum, item->trigger_count, + * item->always_ignore ? "yes" : "no"); + * item = item->next; + * } + * + * + * \return List of all assertions. + * \sa SDL_ResetAssertionReport + */ +extern DECLSPEC const SDL_AssertData * SDLCALL SDL_GetAssertionReport(void); + +/** + * \brief Reset the list of all assertion failures. + * + * Reset list of all assertions triggered. + * + * \sa SDL_GetAssertionReport + */ +extern DECLSPEC void SDLCALL SDL_ResetAssertionReport(void); + + +/* these had wrong naming conventions until 2.0.4. Please update your app! */ +#define SDL_assert_state SDL_AssertState +#define SDL_assert_data SDL_AssertData + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_assert_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_atomic.h b/Template/Game/Source/External/SDL/include/SDL_atomic.h new file mode 100644 index 0000000..56aa81d --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_atomic.h @@ -0,0 +1,268 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_atomic.h + * + * Atomic operations. + * + * IMPORTANT: + * If you are not an expert in concurrent lockless programming, you should + * only be using the atomic lock and reference counting functions in this + * file. In all other cases you should be protecting your data structures + * with full mutexes. + * + * The list of "safe" functions to use are: + * SDL_AtomicLock() + * SDL_AtomicUnlock() + * SDL_AtomicIncRef() + * SDL_AtomicDecRef() + * + * Seriously, here be dragons! + * ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + * + * You can find out a little more about lockless programming and the + * subtle issues that can arise here: + * http://msdn.microsoft.com/en-us/library/ee418650%28v=vs.85%29.aspx + * + * There's also lots of good information here: + * http://www.1024cores.net/home/lock-free-algorithms + * http://preshing.com/ + * + * These operations may or may not actually be implemented using + * processor specific atomic operations. When possible they are + * implemented as true processor specific atomic operations. When that + * is not possible the are implemented using locks that *do* use the + * available atomic operations. + * + * All of the atomic operations that modify memory are full memory barriers. + */ + +#ifndef _SDL_atomic_h_ +#define _SDL_atomic_h_ + +#include "SDL_stdinc.h" +#include "SDL_platform.h" + +#include "begin_code.h" + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \name SDL AtomicLock + * + * The atomic locks are efficient spinlocks using CPU instructions, + * but are vulnerable to starvation and can spin forever if a thread + * holding a lock has been terminated. For this reason you should + * minimize the code executed inside an atomic lock and never do + * expensive things like API or system calls while holding them. + * + * The atomic locks are not safe to lock recursively. + * + * Porting Note: + * The spin lock functions and type are required and can not be + * emulated because they are used in the atomic emulation code. + */ +/* @{ */ + +typedef int SDL_SpinLock; + +/** + * \brief Try to lock a spin lock by setting it to a non-zero value. + * + * \param lock Points to the lock. + * + * \return SDL_TRUE if the lock succeeded, SDL_FALSE if the lock is already held. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_AtomicTryLock(SDL_SpinLock *lock); + +/** + * \brief Lock a spin lock by setting it to a non-zero value. + * + * \param lock Points to the lock. + */ +extern DECLSPEC void SDLCALL SDL_AtomicLock(SDL_SpinLock *lock); + +/** + * \brief Unlock a spin lock by setting it to 0. Always returns immediately + * + * \param lock Points to the lock. + */ +extern DECLSPEC void SDLCALL SDL_AtomicUnlock(SDL_SpinLock *lock); + +/* @} *//* SDL AtomicLock */ + + +/** + * The compiler barrier prevents the compiler from reordering + * reads and writes to globally visible variables across the call. + */ +#if defined(_MSC_VER) && (_MSC_VER > 1200) +void _ReadWriteBarrier(void); +#pragma intrinsic(_ReadWriteBarrier) +#define SDL_CompilerBarrier() _ReadWriteBarrier() +#elif (defined(__GNUC__) && !defined(__EMSCRIPTEN__)) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5120)) +/* This is correct for all CPUs when using GCC or Solaris Studio 12.1+. */ +#define SDL_CompilerBarrier() __asm__ __volatile__ ("" : : : "memory") +#else +#define SDL_CompilerBarrier() \ +{ SDL_SpinLock _tmp = 0; SDL_AtomicLock(&_tmp); SDL_AtomicUnlock(&_tmp); } +#endif + +/** + * Memory barriers are designed to prevent reads and writes from being + * reordered by the compiler and being seen out of order on multi-core CPUs. + * + * A typical pattern would be for thread A to write some data and a flag, + * and for thread B to read the flag and get the data. In this case you + * would insert a release barrier between writing the data and the flag, + * guaranteeing that the data write completes no later than the flag is + * written, and you would insert an acquire barrier between reading the + * flag and reading the data, to ensure that all the reads associated + * with the flag have completed. + * + * In this pattern you should always see a release barrier paired with + * an acquire barrier and you should gate the data reads/writes with a + * single flag variable. + * + * For more information on these semantics, take a look at the blog post: + * http://preshing.com/20120913/acquire-and-release-semantics + */ +#if defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__)) +#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("lwsync" : : : "memory") +#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("lwsync" : : : "memory") +#elif defined(__GNUC__) && defined(__arm__) +#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7EM__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) +#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("dmb ish" : : : "memory") +#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("dmb ish" : : : "memory") +#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) +#ifdef __thumb__ +/* The mcr instruction isn't available in thumb mode, use real functions */ +extern DECLSPEC void SDLCALL SDL_MemoryBarrierRelease(); +extern DECLSPEC void SDLCALL SDL_MemoryBarrierAcquire(); +#else +#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r"(0) : "memory") +#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r"(0) : "memory") +#endif /* __thumb__ */ +#else +#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("" : : : "memory") +#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("" : : : "memory") +#endif /* __GNUC__ && __arm__ */ +#else +#if (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5120)) +/* This is correct for all CPUs on Solaris when using Solaris Studio 12.1+. */ +#include +#define SDL_MemoryBarrierRelease() __machine_rel_barrier() +#define SDL_MemoryBarrierAcquire() __machine_acq_barrier() +#else +/* This is correct for the x86 and x64 CPUs, and we'll expand this over time. */ +#define SDL_MemoryBarrierRelease() SDL_CompilerBarrier() +#define SDL_MemoryBarrierAcquire() SDL_CompilerBarrier() +#endif +#endif + +/** + * \brief A type representing an atomic integer value. It is a struct + * so people don't accidentally use numeric operations on it. + */ +typedef struct { int value; } SDL_atomic_t; + +/** + * \brief Set an atomic variable to a new value if it is currently an old value. + * + * \return SDL_TRUE if the atomic variable was set, SDL_FALSE otherwise. + * + * \note If you don't know what this function is for, you shouldn't use it! +*/ +extern DECLSPEC SDL_bool SDLCALL SDL_AtomicCAS(SDL_atomic_t *a, int oldval, int newval); + +/** + * \brief Set an atomic variable to a value. + * + * \return The previous value of the atomic variable. + */ +extern DECLSPEC int SDLCALL SDL_AtomicSet(SDL_atomic_t *a, int v); + +/** + * \brief Get the value of an atomic variable + */ +extern DECLSPEC int SDLCALL SDL_AtomicGet(SDL_atomic_t *a); + +/** + * \brief Add to an atomic variable. + * + * \return The previous value of the atomic variable. + * + * \note This same style can be used for any number operation + */ +extern DECLSPEC int SDLCALL SDL_AtomicAdd(SDL_atomic_t *a, int v); + +/** + * \brief Increment an atomic variable used as a reference count. + */ +#ifndef SDL_AtomicIncRef +#define SDL_AtomicIncRef(a) SDL_AtomicAdd(a, 1) +#endif + +/** + * \brief Decrement an atomic variable used as a reference count. + * + * \return SDL_TRUE if the variable reached zero after decrementing, + * SDL_FALSE otherwise + */ +#ifndef SDL_AtomicDecRef +#define SDL_AtomicDecRef(a) (SDL_AtomicAdd(a, -1) == 1) +#endif + +/** + * \brief Set a pointer to a new value if it is currently an old value. + * + * \return SDL_TRUE if the pointer was set, SDL_FALSE otherwise. + * + * \note If you don't know what this function is for, you shouldn't use it! +*/ +extern DECLSPEC SDL_bool SDLCALL SDL_AtomicCASPtr(void **a, void *oldval, void *newval); + +/** + * \brief Set a pointer to a value atomically. + * + * \return The previous value of the pointer. + */ +extern DECLSPEC void* SDLCALL SDL_AtomicSetPtr(void **a, void* v); + +/** + * \brief Get the value of a pointer atomically. + */ +extern DECLSPEC void* SDLCALL SDL_AtomicGetPtr(void **a); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif + +#include "close_code.h" + +#endif /* _SDL_atomic_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_audio.h b/Template/Game/Source/External/SDL/include/SDL_audio.h new file mode 100644 index 0000000..4f65521 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_audio.h @@ -0,0 +1,605 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_audio.h + * + * Access to the raw audio mixing buffer for the SDL library. + */ + +#ifndef _SDL_audio_h +#define _SDL_audio_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_endian.h" +#include "SDL_mutex.h" +#include "SDL_thread.h" +#include "SDL_rwops.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief Audio format flags. + * + * These are what the 16 bits in SDL_AudioFormat currently mean... + * (Unspecified bits are always zero). + * + * \verbatim + ++-----------------------sample is signed if set + || + || ++-----------sample is bigendian if set + || || + || || ++---sample is float if set + || || || + || || || +---sample bit size---+ + || || || | | + 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 + \endverbatim + * + * There are macros in SDL 2.0 and later to query these bits. + */ +typedef Uint16 SDL_AudioFormat; + +/** + * \name Audio flags + */ +/* @{ */ + +#define SDL_AUDIO_MASK_BITSIZE (0xFF) +#define SDL_AUDIO_MASK_DATATYPE (1<<8) +#define SDL_AUDIO_MASK_ENDIAN (1<<12) +#define SDL_AUDIO_MASK_SIGNED (1<<15) +#define SDL_AUDIO_BITSIZE(x) (x & SDL_AUDIO_MASK_BITSIZE) +#define SDL_AUDIO_ISFLOAT(x) (x & SDL_AUDIO_MASK_DATATYPE) +#define SDL_AUDIO_ISBIGENDIAN(x) (x & SDL_AUDIO_MASK_ENDIAN) +#define SDL_AUDIO_ISSIGNED(x) (x & SDL_AUDIO_MASK_SIGNED) +#define SDL_AUDIO_ISINT(x) (!SDL_AUDIO_ISFLOAT(x)) +#define SDL_AUDIO_ISLITTLEENDIAN(x) (!SDL_AUDIO_ISBIGENDIAN(x)) +#define SDL_AUDIO_ISUNSIGNED(x) (!SDL_AUDIO_ISSIGNED(x)) + +/** + * \name Audio format flags + * + * Defaults to LSB byte order. + */ +/* @{ */ +#define AUDIO_U8 0x0008 /**< Unsigned 8-bit samples */ +#define AUDIO_S8 0x8008 /**< Signed 8-bit samples */ +#define AUDIO_U16LSB 0x0010 /**< Unsigned 16-bit samples */ +#define AUDIO_S16LSB 0x8010 /**< Signed 16-bit samples */ +#define AUDIO_U16MSB 0x1010 /**< As above, but big-endian byte order */ +#define AUDIO_S16MSB 0x9010 /**< As above, but big-endian byte order */ +#define AUDIO_U16 AUDIO_U16LSB +#define AUDIO_S16 AUDIO_S16LSB +/* @} */ + +/** + * \name int32 support + */ +/* @{ */ +#define AUDIO_S32LSB 0x8020 /**< 32-bit integer samples */ +#define AUDIO_S32MSB 0x9020 /**< As above, but big-endian byte order */ +#define AUDIO_S32 AUDIO_S32LSB +/* @} */ + +/** + * \name float32 support + */ +/* @{ */ +#define AUDIO_F32LSB 0x8120 /**< 32-bit floating point samples */ +#define AUDIO_F32MSB 0x9120 /**< As above, but big-endian byte order */ +#define AUDIO_F32 AUDIO_F32LSB +/* @} */ + +/** + * \name Native audio byte ordering + */ +/* @{ */ +#if SDL_BYTEORDER == SDL_LIL_ENDIAN +#define AUDIO_U16SYS AUDIO_U16LSB +#define AUDIO_S16SYS AUDIO_S16LSB +#define AUDIO_S32SYS AUDIO_S32LSB +#define AUDIO_F32SYS AUDIO_F32LSB +#else +#define AUDIO_U16SYS AUDIO_U16MSB +#define AUDIO_S16SYS AUDIO_S16MSB +#define AUDIO_S32SYS AUDIO_S32MSB +#define AUDIO_F32SYS AUDIO_F32MSB +#endif +/* @} */ + +/** + * \name Allow change flags + * + * Which audio format changes are allowed when opening a device. + */ +/* @{ */ +#define SDL_AUDIO_ALLOW_FREQUENCY_CHANGE 0x00000001 +#define SDL_AUDIO_ALLOW_FORMAT_CHANGE 0x00000002 +#define SDL_AUDIO_ALLOW_CHANNELS_CHANGE 0x00000004 +#define SDL_AUDIO_ALLOW_ANY_CHANGE (SDL_AUDIO_ALLOW_FREQUENCY_CHANGE|SDL_AUDIO_ALLOW_FORMAT_CHANGE|SDL_AUDIO_ALLOW_CHANNELS_CHANGE) +/* @} */ + +/* @} *//* Audio flags */ + +/** + * This function is called when the audio device needs more data. + * + * \param userdata An application-specific parameter saved in + * the SDL_AudioSpec structure + * \param stream A pointer to the audio data buffer. + * \param len The length of that buffer in bytes. + * + * Once the callback returns, the buffer will no longer be valid. + * Stereo samples are stored in a LRLRLR ordering. + * + * You can choose to avoid callbacks and use SDL_QueueAudio() instead, if + * you like. Just open your audio device with a NULL callback. + */ +typedef void (SDLCALL * SDL_AudioCallback) (void *userdata, Uint8 * stream, + int len); + +/** + * The calculated values in this structure are calculated by SDL_OpenAudio(). + */ +typedef struct SDL_AudioSpec +{ + int freq; /**< DSP frequency -- samples per second */ + SDL_AudioFormat format; /**< Audio data format */ + Uint8 channels; /**< Number of channels: 1 mono, 2 stereo */ + Uint8 silence; /**< Audio buffer silence value (calculated) */ + Uint16 samples; /**< Audio buffer size in samples (power of 2) */ + Uint16 padding; /**< Necessary for some compile environments */ + Uint32 size; /**< Audio buffer size in bytes (calculated) */ + SDL_AudioCallback callback; /**< Callback that feeds the audio device (NULL to use SDL_QueueAudio()). */ + void *userdata; /**< Userdata passed to callback (ignored for NULL callbacks). */ +} SDL_AudioSpec; + + +struct SDL_AudioCVT; +typedef void (SDLCALL * SDL_AudioFilter) (struct SDL_AudioCVT * cvt, + SDL_AudioFormat format); + +/** + * A structure to hold a set of audio conversion filters and buffers. + */ +#ifdef __GNUC__ +/* This structure is 84 bytes on 32-bit architectures, make sure GCC doesn't + pad it out to 88 bytes to guarantee ABI compatibility between compilers. + vvv + The next time we rev the ABI, make sure to size the ints and add padding. +*/ +#define SDL_AUDIOCVT_PACKED __attribute__((packed)) +#else +#define SDL_AUDIOCVT_PACKED +#endif +/* */ +typedef struct SDL_AudioCVT +{ + int needed; /**< Set to 1 if conversion possible */ + SDL_AudioFormat src_format; /**< Source audio format */ + SDL_AudioFormat dst_format; /**< Target audio format */ + double rate_incr; /**< Rate conversion increment */ + Uint8 *buf; /**< Buffer to hold entire audio data */ + int len; /**< Length of original audio buffer */ + int len_cvt; /**< Length of converted audio buffer */ + int len_mult; /**< buffer must be len*len_mult big */ + double len_ratio; /**< Given len, final size is len*len_ratio */ + SDL_AudioFilter filters[10]; /**< Filter list */ + int filter_index; /**< Current audio conversion function */ +} SDL_AUDIOCVT_PACKED SDL_AudioCVT; + + +/* Function prototypes */ + +/** + * \name Driver discovery functions + * + * These functions return the list of built in audio drivers, in the + * order that they are normally initialized by default. + */ +/* @{ */ +extern DECLSPEC int SDLCALL SDL_GetNumAudioDrivers(void); +extern DECLSPEC const char *SDLCALL SDL_GetAudioDriver(int index); +/* @} */ + +/** + * \name Initialization and cleanup + * + * \internal These functions are used internally, and should not be used unless + * you have a specific need to specify the audio driver you want to + * use. You should normally use SDL_Init() or SDL_InitSubSystem(). + */ +/* @{ */ +extern DECLSPEC int SDLCALL SDL_AudioInit(const char *driver_name); +extern DECLSPEC void SDLCALL SDL_AudioQuit(void); +/* @} */ + +/** + * This function returns the name of the current audio driver, or NULL + * if no driver has been initialized. + */ +extern DECLSPEC const char *SDLCALL SDL_GetCurrentAudioDriver(void); + +/** + * This function opens the audio device with the desired parameters, and + * returns 0 if successful, placing the actual hardware parameters in the + * structure pointed to by \c obtained. If \c obtained is NULL, the audio + * data passed to the callback function will be guaranteed to be in the + * requested format, and will be automatically converted to the hardware + * audio format if necessary. This function returns -1 if it failed + * to open the audio device, or couldn't set up the audio thread. + * + * When filling in the desired audio spec structure, + * - \c desired->freq should be the desired audio frequency in samples-per- + * second. + * - \c desired->format should be the desired audio format. + * - \c desired->samples is the desired size of the audio buffer, in + * samples. This number should be a power of two, and may be adjusted by + * the audio driver to a value more suitable for the hardware. Good values + * seem to range between 512 and 8096 inclusive, depending on the + * application and CPU speed. Smaller values yield faster response time, + * but can lead to underflow if the application is doing heavy processing + * and cannot fill the audio buffer in time. A stereo sample consists of + * both right and left channels in LR ordering. + * Note that the number of samples is directly related to time by the + * following formula: \code ms = (samples*1000)/freq \endcode + * - \c desired->size is the size in bytes of the audio buffer, and is + * calculated by SDL_OpenAudio(). + * - \c desired->silence is the value used to set the buffer to silence, + * and is calculated by SDL_OpenAudio(). + * - \c desired->callback should be set to a function that will be called + * when the audio device is ready for more data. It is passed a pointer + * to the audio buffer, and the length in bytes of the audio buffer. + * This function usually runs in a separate thread, and so you should + * protect data structures that it accesses by calling SDL_LockAudio() + * and SDL_UnlockAudio() in your code. Alternately, you may pass a NULL + * pointer here, and call SDL_QueueAudio() with some frequency, to queue + * more audio samples to be played. + * - \c desired->userdata is passed as the first parameter to your callback + * function. If you passed a NULL callback, this value is ignored. + * + * The audio device starts out playing silence when it's opened, and should + * be enabled for playing by calling \c SDL_PauseAudio(0) when you are ready + * for your audio callback function to be called. Since the audio driver + * may modify the requested size of the audio buffer, you should allocate + * any local mixing buffers after you open the audio device. + */ +extern DECLSPEC int SDLCALL SDL_OpenAudio(SDL_AudioSpec * desired, + SDL_AudioSpec * obtained); + +/** + * SDL Audio Device IDs. + * + * A successful call to SDL_OpenAudio() is always device id 1, and legacy + * SDL audio APIs assume you want this device ID. SDL_OpenAudioDevice() calls + * always returns devices >= 2 on success. The legacy calls are good both + * for backwards compatibility and when you don't care about multiple, + * specific, or capture devices. + */ +typedef Uint32 SDL_AudioDeviceID; + +/** + * Get the number of available devices exposed by the current driver. + * Only valid after a successfully initializing the audio subsystem. + * Returns -1 if an explicit list of devices can't be determined; this is + * not an error. For example, if SDL is set up to talk to a remote audio + * server, it can't list every one available on the Internet, but it will + * still allow a specific host to be specified to SDL_OpenAudioDevice(). + * + * In many common cases, when this function returns a value <= 0, it can still + * successfully open the default device (NULL for first argument of + * SDL_OpenAudioDevice()). + */ +extern DECLSPEC int SDLCALL SDL_GetNumAudioDevices(int iscapture); + +/** + * Get the human-readable name of a specific audio device. + * Must be a value between 0 and (number of audio devices-1). + * Only valid after a successfully initializing the audio subsystem. + * The values returned by this function reflect the latest call to + * SDL_GetNumAudioDevices(); recall that function to redetect available + * hardware. + * + * The string returned by this function is UTF-8 encoded, read-only, and + * managed internally. You are not to free it. If you need to keep the + * string for any length of time, you should make your own copy of it, as it + * will be invalid next time any of several other SDL functions is called. + */ +extern DECLSPEC const char *SDLCALL SDL_GetAudioDeviceName(int index, + int iscapture); + + +/** + * Open a specific audio device. Passing in a device name of NULL requests + * the most reasonable default (and is equivalent to calling SDL_OpenAudio()). + * + * The device name is a UTF-8 string reported by SDL_GetAudioDeviceName(), but + * some drivers allow arbitrary and driver-specific strings, such as a + * hostname/IP address for a remote audio server, or a filename in the + * diskaudio driver. + * + * \return 0 on error, a valid device ID that is >= 2 on success. + * + * SDL_OpenAudio(), unlike this function, always acts on device ID 1. + */ +extern DECLSPEC SDL_AudioDeviceID SDLCALL SDL_OpenAudioDevice(const char + *device, + int iscapture, + const + SDL_AudioSpec * + desired, + SDL_AudioSpec * + obtained, + int + allowed_changes); + + + +/** + * \name Audio state + * + * Get the current audio state. + */ +/* @{ */ +typedef enum +{ + SDL_AUDIO_STOPPED = 0, + SDL_AUDIO_PLAYING, + SDL_AUDIO_PAUSED +} SDL_AudioStatus; +extern DECLSPEC SDL_AudioStatus SDLCALL SDL_GetAudioStatus(void); + +extern DECLSPEC SDL_AudioStatus SDLCALL +SDL_GetAudioDeviceStatus(SDL_AudioDeviceID dev); +/* @} *//* Audio State */ + +/** + * \name Pause audio functions + * + * These functions pause and unpause the audio callback processing. + * They should be called with a parameter of 0 after opening the audio + * device to start playing sound. This is so you can safely initialize + * data for your callback function after opening the audio device. + * Silence will be written to the audio device during the pause. + */ +/* @{ */ +extern DECLSPEC void SDLCALL SDL_PauseAudio(int pause_on); +extern DECLSPEC void SDLCALL SDL_PauseAudioDevice(SDL_AudioDeviceID dev, + int pause_on); +/* @} *//* Pause audio functions */ + +/** + * This function loads a WAVE from the data source, automatically freeing + * that source if \c freesrc is non-zero. For example, to load a WAVE file, + * you could do: + * \code + * SDL_LoadWAV_RW(SDL_RWFromFile("sample.wav", "rb"), 1, ...); + * \endcode + * + * If this function succeeds, it returns the given SDL_AudioSpec, + * filled with the audio data format of the wave data, and sets + * \c *audio_buf to a malloc()'d buffer containing the audio data, + * and sets \c *audio_len to the length of that audio buffer, in bytes. + * You need to free the audio buffer with SDL_FreeWAV() when you are + * done with it. + * + * This function returns NULL and sets the SDL error message if the + * wave file cannot be opened, uses an unknown data format, or is + * corrupt. Currently raw and MS-ADPCM WAVE files are supported. + */ +extern DECLSPEC SDL_AudioSpec *SDLCALL SDL_LoadWAV_RW(SDL_RWops * src, + int freesrc, + SDL_AudioSpec * spec, + Uint8 ** audio_buf, + Uint32 * audio_len); + +/** + * Loads a WAV from a file. + * Compatibility convenience function. + */ +#define SDL_LoadWAV(file, spec, audio_buf, audio_len) \ + SDL_LoadWAV_RW(SDL_RWFromFile(file, "rb"),1, spec,audio_buf,audio_len) + +/** + * This function frees data previously allocated with SDL_LoadWAV_RW() + */ +extern DECLSPEC void SDLCALL SDL_FreeWAV(Uint8 * audio_buf); + +/** + * This function takes a source format and rate and a destination format + * and rate, and initializes the \c cvt structure with information needed + * by SDL_ConvertAudio() to convert a buffer of audio data from one format + * to the other. + * + * \return -1 if the format conversion is not supported, 0 if there's + * no conversion needed, or 1 if the audio filter is set up. + */ +extern DECLSPEC int SDLCALL SDL_BuildAudioCVT(SDL_AudioCVT * cvt, + SDL_AudioFormat src_format, + Uint8 src_channels, + int src_rate, + SDL_AudioFormat dst_format, + Uint8 dst_channels, + int dst_rate); + +/** + * Once you have initialized the \c cvt structure using SDL_BuildAudioCVT(), + * created an audio buffer \c cvt->buf, and filled it with \c cvt->len bytes of + * audio data in the source format, this function will convert it in-place + * to the desired format. + * + * The data conversion may expand the size of the audio data, so the buffer + * \c cvt->buf should be allocated after the \c cvt structure is initialized by + * SDL_BuildAudioCVT(), and should be \c cvt->len*cvt->len_mult bytes long. + */ +extern DECLSPEC int SDLCALL SDL_ConvertAudio(SDL_AudioCVT * cvt); + +#define SDL_MIX_MAXVOLUME 128 +/** + * This takes two audio buffers of the playing audio format and mixes + * them, performing addition, volume adjustment, and overflow clipping. + * The volume ranges from 0 - 128, and should be set to ::SDL_MIX_MAXVOLUME + * for full audio volume. Note this does not change hardware volume. + * This is provided for convenience -- you can mix your own audio data. + */ +extern DECLSPEC void SDLCALL SDL_MixAudio(Uint8 * dst, const Uint8 * src, + Uint32 len, int volume); + +/** + * This works like SDL_MixAudio(), but you specify the audio format instead of + * using the format of audio device 1. Thus it can be used when no audio + * device is open at all. + */ +extern DECLSPEC void SDLCALL SDL_MixAudioFormat(Uint8 * dst, + const Uint8 * src, + SDL_AudioFormat format, + Uint32 len, int volume); + +/** + * Queue more audio on non-callback devices. + * + * SDL offers two ways to feed audio to the device: you can either supply a + * callback that SDL triggers with some frequency to obtain more audio + * (pull method), or you can supply no callback, and then SDL will expect + * you to supply data at regular intervals (push method) with this function. + * + * There are no limits on the amount of data you can queue, short of + * exhaustion of address space. Queued data will drain to the device as + * necessary without further intervention from you. If the device needs + * audio but there is not enough queued, it will play silence to make up + * the difference. This means you will have skips in your audio playback + * if you aren't routinely queueing sufficient data. + * + * This function copies the supplied data, so you are safe to free it when + * the function returns. This function is thread-safe, but queueing to the + * same device from two threads at once does not promise which buffer will + * be queued first. + * + * You may not queue audio on a device that is using an application-supplied + * callback; doing so returns an error. You have to use the audio callback + * or queue audio with this function, but not both. + * + * You should not call SDL_LockAudio() on the device before queueing; SDL + * handles locking internally for this function. + * + * \param dev The device ID to which we will queue audio. + * \param data The data to queue to the device for later playback. + * \param len The number of bytes (not samples!) to which (data) points. + * \return zero on success, -1 on error. + * + * \sa SDL_GetQueuedAudioSize + * \sa SDL_ClearQueuedAudio + */ +extern DECLSPEC int SDLCALL SDL_QueueAudio(SDL_AudioDeviceID dev, const void *data, Uint32 len); + +/** + * Get the number of bytes of still-queued audio. + * + * This is the number of bytes that have been queued for playback with + * SDL_QueueAudio(), but have not yet been sent to the hardware. + * + * Once we've sent it to the hardware, this function can not decide the exact + * byte boundary of what has been played. It's possible that we just gave the + * hardware several kilobytes right before you called this function, but it + * hasn't played any of it yet, or maybe half of it, etc. + * + * You may not queue audio on a device that is using an application-supplied + * callback; calling this function on such a device always returns 0. + * You have to use the audio callback or queue audio with SDL_QueueAudio(), + * but not both. + * + * You should not call SDL_LockAudio() on the device before querying; SDL + * handles locking internally for this function. + * + * \param dev The device ID of which we will query queued audio size. + * \return Number of bytes (not samples!) of queued audio. + * + * \sa SDL_QueueAudio + * \sa SDL_ClearQueuedAudio + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetQueuedAudioSize(SDL_AudioDeviceID dev); + +/** + * Drop any queued audio data waiting to be sent to the hardware. + * + * Immediately after this call, SDL_GetQueuedAudioSize() will return 0 and + * the hardware will start playing silence if more audio isn't queued. + * + * This will not prevent playback of queued audio that's already been sent + * to the hardware, as we can not undo that, so expect there to be some + * fraction of a second of audio that might still be heard. This can be + * useful if you want to, say, drop any pending music during a level change + * in your game. + * + * You may not queue audio on a device that is using an application-supplied + * callback; calling this function on such a device is always a no-op. + * You have to use the audio callback or queue audio with SDL_QueueAudio(), + * but not both. + * + * You should not call SDL_LockAudio() on the device before clearing the + * queue; SDL handles locking internally for this function. + * + * This function always succeeds and thus returns void. + * + * \param dev The device ID of which to clear the audio queue. + * + * \sa SDL_QueueAudio + * \sa SDL_GetQueuedAudioSize + */ +extern DECLSPEC void SDLCALL SDL_ClearQueuedAudio(SDL_AudioDeviceID dev); + + +/** + * \name Audio lock functions + * + * The lock manipulated by these functions protects the callback function. + * During a SDL_LockAudio()/SDL_UnlockAudio() pair, you can be guaranteed that + * the callback function is not running. Do not call these from the callback + * function or you will cause deadlock. + */ +/* @{ */ +extern DECLSPEC void SDLCALL SDL_LockAudio(void); +extern DECLSPEC void SDLCALL SDL_LockAudioDevice(SDL_AudioDeviceID dev); +extern DECLSPEC void SDLCALL SDL_UnlockAudio(void); +extern DECLSPEC void SDLCALL SDL_UnlockAudioDevice(SDL_AudioDeviceID dev); +/* @} *//* Audio lock functions */ + +/** + * This function shuts down audio processing and closes the audio device. + */ +extern DECLSPEC void SDLCALL SDL_CloseAudio(void); +extern DECLSPEC void SDLCALL SDL_CloseAudioDevice(SDL_AudioDeviceID dev); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_audio_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_bits.h b/Template/Game/Source/External/SDL/include/SDL_bits.h new file mode 100644 index 0000000..528da2e --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_bits.h @@ -0,0 +1,97 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_bits.h + * + * Functions for fiddling with bits and bitmasks. + */ + +#ifndef _SDL_bits_h +#define _SDL_bits_h + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \file SDL_bits.h + */ + +/** + * Get the index of the most significant bit. Result is undefined when called + * with 0. This operation can also be stated as "count leading zeroes" and + * "log base 2". + * + * \return Index of the most significant bit, or -1 if the value is 0. + */ +SDL_FORCE_INLINE int +SDL_MostSignificantBitIndex32(Uint32 x) +{ +#if defined(__GNUC__) && __GNUC__ >= 4 + /* Count Leading Zeroes builtin in GCC. + * http://gcc.gnu.org/onlinedocs/gcc-4.3.4/gcc/Other-Builtins.html + */ + if (x == 0) { + return -1; + } + return 31 - __builtin_clz(x); +#else + /* Based off of Bit Twiddling Hacks by Sean Eron Anderson + * , released in the public domain. + * http://graphics.stanford.edu/~seander/bithacks.html#IntegerLog + */ + const Uint32 b[] = {0x2, 0xC, 0xF0, 0xFF00, 0xFFFF0000}; + const int S[] = {1, 2, 4, 8, 16}; + + int msbIndex = 0; + int i; + + if (x == 0) { + return -1; + } + + for (i = 4; i >= 0; i--) + { + if (x & b[i]) + { + x >>= S[i]; + msbIndex |= S[i]; + } + } + + return msbIndex; +#endif +} + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_bits_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_blendmode.h b/Template/Game/Source/External/SDL/include/SDL_blendmode.h new file mode 100644 index 0000000..56d8ad6 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_blendmode.h @@ -0,0 +1,63 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_blendmode.h + * + * Header file declaring the SDL_BlendMode enumeration + */ + +#ifndef _SDL_blendmode_h +#define _SDL_blendmode_h + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief The blend mode used in SDL_RenderCopy() and drawing operations. + */ +typedef enum +{ + SDL_BLENDMODE_NONE = 0x00000000, /**< no blending + dstRGBA = srcRGBA */ + SDL_BLENDMODE_BLEND = 0x00000001, /**< alpha blending + dstRGB = (srcRGB * srcA) + (dstRGB * (1-srcA)) + dstA = srcA + (dstA * (1-srcA)) */ + SDL_BLENDMODE_ADD = 0x00000002, /**< additive blending + dstRGB = (srcRGB * srcA) + dstRGB + dstA = dstA */ + SDL_BLENDMODE_MOD = 0x00000004 /**< color modulate + dstRGB = srcRGB * dstRGB + dstA = dstA */ +} SDL_BlendMode; + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_blendmode_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_clipboard.h b/Template/Game/Source/External/SDL/include/SDL_clipboard.h new file mode 100644 index 0000000..a5556f2 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_clipboard.h @@ -0,0 +1,71 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_clipboard.h + * + * Include file for SDL clipboard handling + */ + +#ifndef _SDL_clipboard_h +#define _SDL_clipboard_h + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Function prototypes */ + +/** + * \brief Put UTF-8 text into the clipboard + * + * \sa SDL_GetClipboardText() + */ +extern DECLSPEC int SDLCALL SDL_SetClipboardText(const char *text); + +/** + * \brief Get UTF-8 text from the clipboard, which must be freed with SDL_free() + * + * \sa SDL_SetClipboardText() + */ +extern DECLSPEC char * SDLCALL SDL_GetClipboardText(void); + +/** + * \brief Returns a flag indicating whether the clipboard exists and contains a text string that is non-empty + * + * \sa SDL_GetClipboardText() + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_clipboard_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_config.h b/Template/Game/Source/External/SDL/include/SDL_config.h new file mode 100644 index 0000000..890986c --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_config.h @@ -0,0 +1,221 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_windows_h +#define _SDL_config_windows_h + +#include "SDL_platform.h" + +/* This is a set of defines to configure the SDL features */ + +#if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) +#if defined(__GNUC__) || defined(__DMC__) || defined(__WATCOMC__) +#define HAVE_STDINT_H 1 +#elif defined(_MSC_VER) +typedef signed __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef signed __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef signed __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; +#ifndef _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +#else +typedef unsigned int uintptr_t; +#endif +#define _UINTPTR_T_DEFINED +#endif +/* Older Visual C++ headers don't have the Win64-compatible typedefs... */ +#if ((_MSC_VER <= 1200) && (!defined(DWORD_PTR))) +#define DWORD_PTR DWORD +#endif +#if ((_MSC_VER <= 1200) && (!defined(LONG_PTR))) +#define LONG_PTR LONG +#endif +#else /* !__GNUC__ && !_MSC_VER */ +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; +#ifndef _SIZE_T_DEFINED_ +#define _SIZE_T_DEFINED_ +typedef unsigned int size_t; +#endif +typedef unsigned int uintptr_t; +#endif /* __GNUC__ || _MSC_VER */ +#endif /* !_STDINT_H_ && !HAVE_STDINT_H */ + +#ifdef _WIN64 +# define SIZEOF_VOIDP 8 +#else +# define SIZEOF_VOIDP 4 +#endif + +#define HAVE_DDRAW_H 1 +#define HAVE_DINPUT_H 1 +#define HAVE_DSOUND_H 1 +#define HAVE_DXGI_H 1 +#define HAVE_XINPUT_H 1 + +/* This is disabled by default to avoid C runtime dependencies and manifest requirements */ +#ifdef HAVE_LIBC +/* Useful headers */ +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STRING_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE__STRREV 1 +#define HAVE__STRUPR 1 +#define HAVE__STRLWR 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE__LTOA 1 +#define HAVE__ULTOA 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE__STRICMP 1 +#define HAVE__STRNICMP 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_ACOS 1 +#define HAVE_ASIN 1 +#define HAVE_CEIL 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_POW 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_SQRTF 1 +#define HAVE_TAN 1 +#define HAVE_TANF 1 +#if _MSC_VER >= 1800 +#define HAVE_STRTOLL 1 +#define HAVE_VSSCANF 1 +#define HAVE_COPYSIGN 1 +#define HAVE_SCALBN 1 +#endif +#if !defined(_MSC_VER) || defined(_USE_MATH_DEFINES) +#define HAVE_M_PI 1 +#endif +#else +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 +#endif + +/* Enable various audio drivers */ +#define SDL_AUDIO_DRIVER_DSOUND 1 +#define SDL_AUDIO_DRIVER_XAUDIO2 1 +#define SDL_AUDIO_DRIVER_WINMM 1 +#define SDL_AUDIO_DRIVER_DISK 1 +#define SDL_AUDIO_DRIVER_DUMMY 1 + +/* Enable various input drivers */ +#define SDL_JOYSTICK_DINPUT 1 +#define SDL_JOYSTICK_XINPUT 1 +#define SDL_HAPTIC_DINPUT 1 +#define SDL_HAPTIC_XINPUT 1 + +/* Enable various shared object loading systems */ +#define SDL_LOADSO_WINDOWS 1 + +/* Enable various threading systems */ +#define SDL_THREAD_WINDOWS 1 + +/* Enable various timer systems */ +#define SDL_TIMER_WINDOWS 1 + +/* Enable various video drivers */ +#define SDL_VIDEO_DRIVER_DUMMY 1 +#define SDL_VIDEO_DRIVER_WINDOWS 1 + +#ifndef SDL_VIDEO_RENDER_D3D +#define SDL_VIDEO_RENDER_D3D 1 +#endif +#ifndef SDL_VIDEO_RENDER_D3D11 +#define SDL_VIDEO_RENDER_D3D11 0 +#endif + +/* Enable OpenGL support */ +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_WGL +#define SDL_VIDEO_OPENGL_WGL 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL_ES2 +#define SDL_VIDEO_RENDER_OGL_ES2 1 +#endif +#ifndef SDL_VIDEO_OPENGL_ES2 +#define SDL_VIDEO_OPENGL_ES2 1 +#endif +#ifndef SDL_VIDEO_OPENGL_EGL +#define SDL_VIDEO_OPENGL_EGL 1 +#endif + + +/* Enable system power support */ +#define SDL_POWER_WINDOWS 1 + +/* Enable filesystem support */ +#define SDL_FILESYSTEM_WINDOWS 1 + +/* Enable assembly routines (Win64 doesn't have inline asm) */ +#ifndef _WIN64 +#define SDL_ASSEMBLY_ROUTINES 1 +#endif + +#endif /* _SDL_config_windows_h */ diff --git a/Template/Game/Source/External/SDL/include/SDL_cpuinfo.h b/Template/Game/Source/External/SDL/include/SDL_cpuinfo.h new file mode 100644 index 0000000..d0ba47b --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_cpuinfo.h @@ -0,0 +1,161 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_cpuinfo.h + * + * CPU feature detection for SDL. + */ + +#ifndef _SDL_cpuinfo_h +#define _SDL_cpuinfo_h + +#include "SDL_stdinc.h" + +/* Need to do this here because intrin.h has C++ code in it */ +/* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */ +#if defined(_MSC_VER) && (_MSC_VER >= 1500) && (defined(_M_IX86) || defined(_M_X64)) +#include +#ifndef _WIN64 +#define __MMX__ +#define __3dNOW__ +#endif +#define __SSE__ +#define __SSE2__ +#elif defined(__MINGW64_VERSION_MAJOR) +#include +#else +#ifdef __ALTIVEC__ +#if HAVE_ALTIVEC_H && !defined(__APPLE_ALTIVEC__) +#include +#undef pixel +#endif +#endif +#ifdef __MMX__ +#include +#endif +#ifdef __3dNOW__ +#include +#endif +#ifdef __SSE__ +#include +#endif +#ifdef __SSE2__ +#include +#endif +#endif + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* This is a guess for the cacheline size used for padding. + * Most x86 processors have a 64 byte cache line. + * The 64-bit PowerPC processors have a 128 byte cache line. + * We'll use the larger value to be generally safe. + */ +#define SDL_CACHELINE_SIZE 128 + +/** + * This function returns the number of CPU cores available. + */ +extern DECLSPEC int SDLCALL SDL_GetCPUCount(void); + +/** + * This function returns the L1 cache line size of the CPU + * + * This is useful for determining multi-threaded structure padding + * or SIMD prefetch sizes. + */ +extern DECLSPEC int SDLCALL SDL_GetCPUCacheLineSize(void); + +/** + * This function returns true if the CPU has the RDTSC instruction. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasRDTSC(void); + +/** + * This function returns true if the CPU has AltiVec features. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasAltiVec(void); + +/** + * This function returns true if the CPU has MMX features. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasMMX(void); + +/** + * This function returns true if the CPU has 3DNow! features. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_Has3DNow(void); + +/** + * This function returns true if the CPU has SSE features. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE(void); + +/** + * This function returns true if the CPU has SSE2 features. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE2(void); + +/** + * This function returns true if the CPU has SSE3 features. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE3(void); + +/** + * This function returns true if the CPU has SSE4.1 features. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE41(void); + +/** + * This function returns true if the CPU has SSE4.2 features. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE42(void); + +/** + * This function returns true if the CPU has AVX features. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX(void); + +/** + * This function returns true if the CPU has AVX2 features. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX2(void); + +/** + * This function returns the amount of RAM configured in the system, in MB. + */ +extern DECLSPEC int SDLCALL SDL_GetSystemRAM(void); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_cpuinfo_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_egl.h b/Template/Game/Source/External/SDL/include/SDL_egl.h new file mode 100644 index 0000000..bea2a6c --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_egl.h @@ -0,0 +1,1673 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_egl.h + * + * This is a simple file to encapsulate the EGL API headers. + */ +#ifndef _MSC_VER + +#include +#include + +#else /* _MSC_VER */ + +/* EGL headers for Visual Studio */ + +#ifndef __khrplatform_h_ +#define __khrplatform_h_ + +/* +** Copyright (c) 2008-2009 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Khronos platform-specific types and definitions. +* +* $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $ +* +* Adopters may modify this file to suit their platform. Adopters are +* encouraged to submit platform specific modifications to the Khronos +* group so that they can be included in future versions of this file. +* Please submit changes by sending them to the public Khronos Bugzilla +* (http://khronos.org/bugzilla) by filing a bug against product +* "Khronos (general)" component "Registry". +* +* A predefined template which fills in some of the bug fields can be +* reached using http://tinyurl.com/khrplatform-h-bugreport, but you +* must create a Bugzilla login first. +* +* +* See the Implementer's Guidelines for information about where this file +* should be located on your system and for more details of its use: +* http://www.khronos.org/registry/implementers_guide.pdf +* +* This file should be included as +* #include +* by Khronos client API header files that use its types and defines. +* +* The types in khrplatform.h should only be used to define API-specific types. +* +* Types defined in khrplatform.h: +* khronos_int8_t signed 8 bit +* khronos_uint8_t unsigned 8 bit +* khronos_int16_t signed 16 bit +* khronos_uint16_t unsigned 16 bit +* khronos_int32_t signed 32 bit +* khronos_uint32_t unsigned 32 bit +* khronos_int64_t signed 64 bit +* khronos_uint64_t unsigned 64 bit +* khronos_intptr_t signed same number of bits as a pointer +* khronos_uintptr_t unsigned same number of bits as a pointer +* khronos_ssize_t signed size +* khronos_usize_t unsigned size +* khronos_float_t signed 32 bit floating point +* khronos_time_ns_t unsigned 64 bit time in nanoseconds +* khronos_utime_nanoseconds_t unsigned time interval or absolute time in +* nanoseconds +* khronos_stime_nanoseconds_t signed time interval in nanoseconds +* khronos_boolean_enum_t enumerated boolean type. This should +* only be used as a base type when a client API's boolean type is +* an enum. Client APIs which use an integer or other type for +* booleans cannot use this as the base type for their boolean. +* +* Tokens defined in khrplatform.h: +* +* KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. +* +* KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. +* KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. +* +* Calling convention macros defined in this file: +* KHRONOS_APICALL +* KHRONOS_APIENTRY +* KHRONOS_APIATTRIBUTES +* +* These may be used in function prototypes as: +* +* KHRONOS_APICALL void KHRONOS_APIENTRY funcname( +* int arg1, +* int arg2) KHRONOS_APIATTRIBUTES; +*/ + +/*------------------------------------------------------------------------- +* Definition of KHRONOS_APICALL +*------------------------------------------------------------------------- +* This precedes the return type of the function in the function prototype. +*/ +#if defined(_WIN32) && !defined(__SCITECH_SNAP__) +# define KHRONOS_APICALL __declspec(dllimport) +#elif defined (__SYMBIAN32__) +# define KHRONOS_APICALL IMPORT_C +#else +# define KHRONOS_APICALL +#endif + +/*------------------------------------------------------------------------- +* Definition of KHRONOS_APIENTRY +*------------------------------------------------------------------------- +* This follows the return type of the function and precedes the function +* name in the function prototype. +*/ +#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) +/* Win32 but not WinCE */ +# define KHRONOS_APIENTRY __stdcall +#else +# define KHRONOS_APIENTRY +#endif + +/*------------------------------------------------------------------------- +* Definition of KHRONOS_APIATTRIBUTES +*------------------------------------------------------------------------- +* This follows the closing parenthesis of the function prototype arguments. +*/ +#if defined (__ARMCC_2__) +#define KHRONOS_APIATTRIBUTES __softfp +#else +#define KHRONOS_APIATTRIBUTES +#endif + +/*------------------------------------------------------------------------- +* basic type definitions +*-----------------------------------------------------------------------*/ +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) + + +/* +* Using +*/ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__VMS ) || defined(__sgi) + +/* +* Using +*/ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) + +/* +* Win32 +*/ +typedef __int32 khronos_int32_t; +typedef unsigned __int32 khronos_uint32_t; +typedef __int64 khronos_int64_t; +typedef unsigned __int64 khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__sun__) || defined(__digital__) + +/* +* Sun or Digital +*/ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#if defined(__arch64__) || defined(_LP64) +typedef long int khronos_int64_t; +typedef unsigned long int khronos_uint64_t; +#else +typedef long long int khronos_int64_t; +typedef unsigned long long int khronos_uint64_t; +#endif /* __arch64__ */ +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif 0 + +/* +* Hypothetical platform with no float or int64 support +*/ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#define KHRONOS_SUPPORT_INT64 0 +#define KHRONOS_SUPPORT_FLOAT 0 + +#else + +/* +* Generic fallback +*/ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#endif + + +/* +* Types that are (so far) the same on all platforms +*/ +typedef signed char khronos_int8_t; +typedef unsigned char khronos_uint8_t; +typedef signed short int khronos_int16_t; +typedef unsigned short int khronos_uint16_t; + +/* +* Types that differ between LLP64 and LP64 architectures - in LLP64, +* pointers are 64 bits, but 'long' is still 32 bits. Win64 appears +* to be the only LLP64 architecture in current use. +*/ +#ifdef _WIN64 +typedef signed long long int khronos_intptr_t; +typedef unsigned long long int khronos_uintptr_t; +typedef signed long long int khronos_ssize_t; +typedef unsigned long long int khronos_usize_t; +#else +typedef signed long int khronos_intptr_t; +typedef unsigned long int khronos_uintptr_t; +typedef signed long int khronos_ssize_t; +typedef unsigned long int khronos_usize_t; +#endif + +#if KHRONOS_SUPPORT_FLOAT +/* +* Float type +*/ +typedef float khronos_float_t; +#endif + +#if KHRONOS_SUPPORT_INT64 +/* Time types +* +* These types can be used to represent a time interval in nanoseconds or +* an absolute Unadjusted System Time. Unadjusted System Time is the number +* of nanoseconds since some arbitrary system event (e.g. since the last +* time the system booted). The Unadjusted System Time is an unsigned +* 64 bit value that wraps back to 0 every 584 years. Time intervals +* may be either signed or unsigned. +*/ +typedef khronos_uint64_t khronos_utime_nanoseconds_t; +typedef khronos_int64_t khronos_stime_nanoseconds_t; +#endif + +/* +* Dummy value used to pad enum types to 32 bits. +*/ +#ifndef KHRONOS_MAX_ENUM +#define KHRONOS_MAX_ENUM 0x7FFFFFFF +#endif + +/* +* Enumerated boolean type +* +* Values other than zero should be considered to be true. Therefore +* comparisons should not be made against KHRONOS_TRUE. +*/ +typedef enum { + KHRONOS_FALSE = 0, + KHRONOS_TRUE = 1, + KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM +} khronos_boolean_enum_t; + +#endif /* __khrplatform_h_ */ + + +#ifndef __eglplatform_h_ +#define __eglplatform_h_ + +/* +** Copyright (c) 2007-2009 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Platform-specific types and definitions for egl.h +* $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $ +* +* Adopters may modify khrplatform.h and this file to suit their platform. +* You are encouraged to submit all modifications to the Khronos group so that +* they can be included in future versions of this file. Please submit changes +* by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) +* by filing a bug against product "EGL" component "Registry". +*/ + +/*#include */ + +/* Macros used in EGL function prototype declarations. +* +* EGL functions should be prototyped as: +* +* EGLAPI return-type EGLAPIENTRY eglFunction(arguments); +* typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); +* +* KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h +*/ + +#ifndef EGLAPI +#define EGLAPI KHRONOS_APICALL +#endif + +#ifndef EGLAPIENTRY +#define EGLAPIENTRY KHRONOS_APIENTRY +#endif +#define EGLAPIENTRYP EGLAPIENTRY* + +/* The types NativeDisplayType, NativeWindowType, and NativePixmapType +* are aliases of window-system-dependent types, such as X Display * or +* Windows Device Context. They must be defined in platform-specific +* code below. The EGL-prefixed versions of Native*Type are the same +* types, renamed in EGL 1.3 so all types in the API start with "EGL". +* +* Khronos STRONGLY RECOMMENDS that you use the default definitions +* provided below, since these changes affect both binary and source +* portability of applications using EGL running on different EGL +* implementations. +*/ + +#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN 1 +#endif +#include + +#if __WINRT__ +#include +typedef IUnknown * EGLNativeWindowType; +typedef IUnknown * EGLNativePixmapType; +typedef IUnknown * EGLNativeDisplayType; +#else +typedef HDC EGLNativeDisplayType; +typedef HBITMAP EGLNativePixmapType; +typedef HWND EGLNativeWindowType; +#endif + +#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ + +typedef int EGLNativeDisplayType; +typedef void *EGLNativeWindowType; +typedef void *EGLNativePixmapType; + +#elif defined(WL_EGL_PLATFORM) + +typedef struct wl_display *EGLNativeDisplayType; +typedef struct wl_egl_pixmap *EGLNativePixmapType; +typedef struct wl_egl_window *EGLNativeWindowType; + +#elif defined(__GBM__) + +typedef struct gbm_device *EGLNativeDisplayType; +typedef struct gbm_bo *EGLNativePixmapType; +typedef void *EGLNativeWindowType; + +#elif defined(__ANDROID__) /* Android */ + +struct ANativeWindow; +struct egl_native_pixmap_t; + +typedef struct ANativeWindow *EGLNativeWindowType; +typedef struct egl_native_pixmap_t *EGLNativePixmapType; +typedef void *EGLNativeDisplayType; + +#elif defined(MIR_EGL_PLATFORM) + +#include +typedef MirEGLNativeDisplayType EGLNativeDisplayType; +typedef void *EGLNativePixmapType; +typedef MirEGLNativeWindowType EGLNativeWindowType; + +#elif defined(__unix__) + +#ifdef MESA_EGL_NO_X11_HEADERS + +typedef void *EGLNativeDisplayType; +typedef khronos_uintptr_t EGLNativePixmapType; +typedef khronos_uintptr_t EGLNativeWindowType; + +#else + +/* X11 (tentative) */ +#include +#include + +typedef Display *EGLNativeDisplayType; +typedef Pixmap EGLNativePixmapType; +typedef Window EGLNativeWindowType; + +#endif /* MESA_EGL_NO_X11_HEADERS */ + +#else +#error "Platform not recognized" +#endif + +/* EGL 1.2 types, renamed for consistency in EGL 1.3 */ +typedef EGLNativeDisplayType NativeDisplayType; +typedef EGLNativePixmapType NativePixmapType; +typedef EGLNativeWindowType NativeWindowType; + + +/* Define EGLint. This must be a signed integral type large enough to contain +* all legal attribute names and values passed into and out of EGL, whether +* their type is boolean, bitmask, enumerant (symbolic constant), integer, +* handle, or other. While in general a 32-bit integer will suffice, if +* handles are 64 bit types, then EGLint should be defined as a signed 64-bit +* integer type. +*/ +typedef khronos_int32_t EGLint; + +#endif /* __eglplatform_h */ + +#ifndef __egl_h_ +#define __egl_h_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2013-2015 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ +/* +** This header is generated from the Khronos OpenGL / OpenGL ES XML +** API Registry. The current version of the Registry, generator scripts +** used to make the header, and the header can be found at +** http://www.opengl.org/registry/ +** +** Khronos $Revision: 31566 $ on $Date: 2015-06-23 08:48:48 -0700 (Tue, 23 Jun 2015) $ +*/ + +/*#include */ + +/* Generated on date 20150623 */ + +/* Generated C header for: + * API: egl + * Versions considered: .* + * Versions emitted: .* + * Default extensions included: None + * Additional extensions included: _nomatch_^ + * Extensions removed: _nomatch_^ + */ + +#ifndef EGL_VERSION_1_0 +#define EGL_VERSION_1_0 1 +typedef unsigned int EGLBoolean; +typedef void *EGLDisplay; +typedef void *EGLConfig; +typedef void *EGLSurface; +typedef void *EGLContext; +typedef void (*__eglMustCastToProperFunctionPointerType)(void); +#define EGL_ALPHA_SIZE 0x3021 +#define EGL_BAD_ACCESS 0x3002 +#define EGL_BAD_ALLOC 0x3003 +#define EGL_BAD_ATTRIBUTE 0x3004 +#define EGL_BAD_CONFIG 0x3005 +#define EGL_BAD_CONTEXT 0x3006 +#define EGL_BAD_CURRENT_SURFACE 0x3007 +#define EGL_BAD_DISPLAY 0x3008 +#define EGL_BAD_MATCH 0x3009 +#define EGL_BAD_NATIVE_PIXMAP 0x300A +#define EGL_BAD_NATIVE_WINDOW 0x300B +#define EGL_BAD_PARAMETER 0x300C +#define EGL_BAD_SURFACE 0x300D +#define EGL_BLUE_SIZE 0x3022 +#define EGL_BUFFER_SIZE 0x3020 +#define EGL_CONFIG_CAVEAT 0x3027 +#define EGL_CONFIG_ID 0x3028 +#define EGL_CORE_NATIVE_ENGINE 0x305B +#define EGL_DEPTH_SIZE 0x3025 +#define EGL_DONT_CARE ((EGLint)-1) +#define EGL_DRAW 0x3059 +#define EGL_EXTENSIONS 0x3055 +#define EGL_FALSE 0 +#define EGL_GREEN_SIZE 0x3023 +#define EGL_HEIGHT 0x3056 +#define EGL_LARGEST_PBUFFER 0x3058 +#define EGL_LEVEL 0x3029 +#define EGL_MAX_PBUFFER_HEIGHT 0x302A +#define EGL_MAX_PBUFFER_PIXELS 0x302B +#define EGL_MAX_PBUFFER_WIDTH 0x302C +#define EGL_NATIVE_RENDERABLE 0x302D +#define EGL_NATIVE_VISUAL_ID 0x302E +#define EGL_NATIVE_VISUAL_TYPE 0x302F +#define EGL_NONE 0x3038 +#define EGL_NON_CONFORMANT_CONFIG 0x3051 +#define EGL_NOT_INITIALIZED 0x3001 +#define EGL_NO_CONTEXT ((EGLContext)0) +#define EGL_NO_DISPLAY ((EGLDisplay)0) +#define EGL_NO_SURFACE ((EGLSurface)0) +#define EGL_PBUFFER_BIT 0x0001 +#define EGL_PIXMAP_BIT 0x0002 +#define EGL_READ 0x305A +#define EGL_RED_SIZE 0x3024 +#define EGL_SAMPLES 0x3031 +#define EGL_SAMPLE_BUFFERS 0x3032 +#define EGL_SLOW_CONFIG 0x3050 +#define EGL_STENCIL_SIZE 0x3026 +#define EGL_SUCCESS 0x3000 +#define EGL_SURFACE_TYPE 0x3033 +#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 +#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 +#define EGL_TRANSPARENT_RED_VALUE 0x3037 +#define EGL_TRANSPARENT_RGB 0x3052 +#define EGL_TRANSPARENT_TYPE 0x3034 +#define EGL_TRUE 1 +#define EGL_VENDOR 0x3053 +#define EGL_VERSION 0x3054 +#define EGL_WIDTH 0x3057 +#define EGL_WINDOW_BIT 0x0004 +EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); +EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); +EGLAPI EGLContext EGLAPIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface); +EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); +EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); +EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay (void); +EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface (EGLint readdraw); +EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay (EGLNativeDisplayType display_id); +EGLAPI EGLint EGLAPIENTRY eglGetError (void); +EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname); +EGLAPI EGLBoolean EGLAPIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor); +EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); +EGLAPI const char *EGLAPIENTRY eglQueryString (EGLDisplay dpy, EGLint name); +EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface surface); +EGLAPI EGLBoolean EGLAPIENTRY eglTerminate (EGLDisplay dpy); +EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL (void); +EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative (EGLint engine); +#endif /* EGL_VERSION_1_0 */ + +#ifndef EGL_VERSION_1_1 +#define EGL_VERSION_1_1 1 +#define EGL_BACK_BUFFER 0x3084 +#define EGL_BIND_TO_TEXTURE_RGB 0x3039 +#define EGL_BIND_TO_TEXTURE_RGBA 0x303A +#define EGL_CONTEXT_LOST 0x300E +#define EGL_MIN_SWAP_INTERVAL 0x303B +#define EGL_MAX_SWAP_INTERVAL 0x303C +#define EGL_MIPMAP_TEXTURE 0x3082 +#define EGL_MIPMAP_LEVEL 0x3083 +#define EGL_NO_TEXTURE 0x305C +#define EGL_TEXTURE_2D 0x305F +#define EGL_TEXTURE_FORMAT 0x3080 +#define EGL_TEXTURE_RGB 0x305D +#define EGL_TEXTURE_RGBA 0x305E +#define EGL_TEXTURE_TARGET 0x3081 +EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer); +EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer); +EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); +EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval (EGLDisplay dpy, EGLint interval); +#endif /* EGL_VERSION_1_1 */ + +#ifndef EGL_VERSION_1_2 +#define EGL_VERSION_1_2 1 +typedef unsigned int EGLenum; +typedef void *EGLClientBuffer; +#define EGL_ALPHA_FORMAT 0x3088 +#define EGL_ALPHA_FORMAT_NONPRE 0x308B +#define EGL_ALPHA_FORMAT_PRE 0x308C +#define EGL_ALPHA_MASK_SIZE 0x303E +#define EGL_BUFFER_PRESERVED 0x3094 +#define EGL_BUFFER_DESTROYED 0x3095 +#define EGL_CLIENT_APIS 0x308D +#define EGL_COLORSPACE 0x3087 +#define EGL_COLORSPACE_sRGB 0x3089 +#define EGL_COLORSPACE_LINEAR 0x308A +#define EGL_COLOR_BUFFER_TYPE 0x303F +#define EGL_CONTEXT_CLIENT_TYPE 0x3097 +#define EGL_DISPLAY_SCALING 10000 +#define EGL_HORIZONTAL_RESOLUTION 0x3090 +#define EGL_LUMINANCE_BUFFER 0x308F +#define EGL_LUMINANCE_SIZE 0x303D +#define EGL_OPENGL_ES_BIT 0x0001 +#define EGL_OPENVG_BIT 0x0002 +#define EGL_OPENGL_ES_API 0x30A0 +#define EGL_OPENVG_API 0x30A1 +#define EGL_OPENVG_IMAGE 0x3096 +#define EGL_PIXEL_ASPECT_RATIO 0x3092 +#define EGL_RENDERABLE_TYPE 0x3040 +#define EGL_RENDER_BUFFER 0x3086 +#define EGL_RGB_BUFFER 0x308E +#define EGL_SINGLE_BUFFER 0x3085 +#define EGL_SWAP_BEHAVIOR 0x3093 +#define EGL_UNKNOWN ((EGLint)-1) +#define EGL_VERTICAL_RESOLUTION 0x3091 +EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI (EGLenum api); +EGLAPI EGLenum EGLAPIENTRY eglQueryAPI (void); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread (void); +EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient (void); +#endif /* EGL_VERSION_1_2 */ + +#ifndef EGL_VERSION_1_3 +#define EGL_VERSION_1_3 1 +#define EGL_CONFORMANT 0x3042 +#define EGL_CONTEXT_CLIENT_VERSION 0x3098 +#define EGL_MATCH_NATIVE_PIXMAP 0x3041 +#define EGL_OPENGL_ES2_BIT 0x0004 +#define EGL_VG_ALPHA_FORMAT 0x3088 +#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B +#define EGL_VG_ALPHA_FORMAT_PRE 0x308C +#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 +#define EGL_VG_COLORSPACE 0x3087 +#define EGL_VG_COLORSPACE_sRGB 0x3089 +#define EGL_VG_COLORSPACE_LINEAR 0x308A +#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 +#endif /* EGL_VERSION_1_3 */ + +#ifndef EGL_VERSION_1_4 +#define EGL_VERSION_1_4 1 +#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0) +#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 +#define EGL_MULTISAMPLE_RESOLVE 0x3099 +#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A +#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B +#define EGL_OPENGL_API 0x30A2 +#define EGL_OPENGL_BIT 0x0008 +#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 +EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext (void); +#endif /* EGL_VERSION_1_4 */ + +#ifndef EGL_VERSION_1_5 +#define EGL_VERSION_1_5 1 +typedef void *EGLSync; +typedef intptr_t EGLAttrib; +typedef khronos_utime_nanoseconds_t EGLTime; +typedef void *EGLImage; +#define EGL_CONTEXT_MAJOR_VERSION 0x3098 +#define EGL_CONTEXT_MINOR_VERSION 0x30FB +#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD +#define EGL_NO_RESET_NOTIFICATION 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF +#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001 +#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0 +#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2 +#define EGL_OPENGL_ES3_BIT 0x00000040 +#define EGL_CL_EVENT_HANDLE 0x309C +#define EGL_SYNC_CL_EVENT 0x30FE +#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0 +#define EGL_SYNC_TYPE 0x30F7 +#define EGL_SYNC_STATUS 0x30F1 +#define EGL_SYNC_CONDITION 0x30F8 +#define EGL_SIGNALED 0x30F2 +#define EGL_UNSIGNALED 0x30F3 +#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001 +#define EGL_FOREVER 0xFFFFFFFFFFFFFFFFull +#define EGL_TIMEOUT_EXPIRED 0x30F5 +#define EGL_CONDITION_SATISFIED 0x30F6 +#define EGL_NO_SYNC ((EGLSync)0) +#define EGL_SYNC_FENCE 0x30F9 +#define EGL_GL_COLORSPACE 0x309D +#define EGL_GL_COLORSPACE_SRGB 0x3089 +#define EGL_GL_COLORSPACE_LINEAR 0x308A +#define EGL_GL_RENDERBUFFER 0x30B9 +#define EGL_GL_TEXTURE_2D 0x30B1 +#define EGL_GL_TEXTURE_LEVEL 0x30BC +#define EGL_GL_TEXTURE_3D 0x30B2 +#define EGL_GL_TEXTURE_ZOFFSET 0x30BD +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8 +#define EGL_IMAGE_PRESERVED 0x30D2 +#define EGL_NO_IMAGE ((EGLImage)0) +EGLAPI EGLSync EGLAPIENTRY eglCreateSync (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync (EGLDisplay dpy, EGLSync sync); +EGLAPI EGLint EGLAPIENTRY eglClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout); +EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value); +EGLAPI EGLImage EGLAPIENTRY eglCreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage (EGLDisplay dpy, EGLImage image); +EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplay (EGLenum platform, void *native_display, const EGLAttrib *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags); +#endif /* EGL_VERSION_1_5 */ + +#ifdef __cplusplus +} +#endif + +#endif /* __egl_h_ */ + + + +#ifndef __eglext_h_ +#define __eglext_h_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2013-2015 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ +/* +** This header is generated from the Khronos OpenGL / OpenGL ES XML +** API Registry. The current version of the Registry, generator scripts +** used to make the header, and the header can be found at +** http://www.opengl.org/registry/ +** +** Khronos $Revision: 31566 $ on $Date: 2015-06-23 08:48:48 -0700 (Tue, 23 Jun 2015) $ +*/ + +/*#include */ + +#define EGL_EGLEXT_VERSION 20150623 + +/* Generated C header for: + * API: egl + * Versions considered: .* + * Versions emitted: _nomatch_^ + * Default extensions included: egl + * Additional extensions included: _nomatch_^ + * Extensions removed: _nomatch_^ + */ + +#ifndef EGL_KHR_cl_event +#define EGL_KHR_cl_event 1 +#define EGL_CL_EVENT_HANDLE_KHR 0x309C +#define EGL_SYNC_CL_EVENT_KHR 0x30FE +#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF +#endif /* EGL_KHR_cl_event */ + +#ifndef EGL_KHR_cl_event2 +#define EGL_KHR_cl_event2 1 +typedef void *EGLSyncKHR; +typedef intptr_t EGLAttribKHR; +typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); +#endif +#endif /* EGL_KHR_cl_event2 */ + +#ifndef EGL_KHR_client_get_all_proc_addresses +#define EGL_KHR_client_get_all_proc_addresses 1 +#endif /* EGL_KHR_client_get_all_proc_addresses */ + +#ifndef EGL_KHR_config_attribs +#define EGL_KHR_config_attribs 1 +#define EGL_CONFORMANT_KHR 0x3042 +#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020 +#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040 +#endif /* EGL_KHR_config_attribs */ + +#ifndef EGL_KHR_create_context +#define EGL_KHR_create_context 1 +#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 +#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB +#define EGL_CONTEXT_FLAGS_KHR 0x30FC +#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD +#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF +#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001 +#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 +#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 +#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 +#define EGL_OPENGL_ES3_BIT_KHR 0x00000040 +#endif /* EGL_KHR_create_context */ + +#ifndef EGL_KHR_create_context_no_error +#define EGL_KHR_create_context_no_error 1 +#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3 +#endif /* EGL_KHR_create_context_no_error */ + +#ifndef EGL_KHR_fence_sync +#define EGL_KHR_fence_sync 1 +typedef khronos_utime_nanoseconds_t EGLTimeKHR; +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0 +#define EGL_SYNC_CONDITION_KHR 0x30F8 +#define EGL_SYNC_FENCE_KHR 0x30F9 +typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync); +typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync); +EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); +EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_KHR_fence_sync */ + +#ifndef EGL_KHR_get_all_proc_addresses +#define EGL_KHR_get_all_proc_addresses 1 +#endif /* EGL_KHR_get_all_proc_addresses */ + +#ifndef EGL_KHR_gl_colorspace +#define EGL_KHR_gl_colorspace 1 +#define EGL_GL_COLORSPACE_KHR 0x309D +#define EGL_GL_COLORSPACE_SRGB_KHR 0x3089 +#define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A +#endif /* EGL_KHR_gl_colorspace */ + +#ifndef EGL_KHR_gl_renderbuffer_image +#define EGL_KHR_gl_renderbuffer_image 1 +#define EGL_GL_RENDERBUFFER_KHR 0x30B9 +#endif /* EGL_KHR_gl_renderbuffer_image */ + +#ifndef EGL_KHR_gl_texture_2D_image +#define EGL_KHR_gl_texture_2D_image 1 +#define EGL_GL_TEXTURE_2D_KHR 0x30B1 +#define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC +#endif /* EGL_KHR_gl_texture_2D_image */ + +#ifndef EGL_KHR_gl_texture_3D_image +#define EGL_KHR_gl_texture_3D_image 1 +#define EGL_GL_TEXTURE_3D_KHR 0x30B2 +#define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD +#endif /* EGL_KHR_gl_texture_3D_image */ + +#ifndef EGL_KHR_gl_texture_cubemap_image +#define EGL_KHR_gl_texture_cubemap_image 1 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8 +#endif /* EGL_KHR_gl_texture_cubemap_image */ + +#ifndef EGL_KHR_image +#define EGL_KHR_image 1 +typedef void *EGLImageKHR; +#define EGL_NATIVE_PIXMAP_KHR 0x30B0 +#define EGL_NO_IMAGE_KHR ((EGLImageKHR)0) +typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image); +#endif +#endif /* EGL_KHR_image */ + +#ifndef EGL_KHR_image_base +#define EGL_KHR_image_base 1 +#define EGL_IMAGE_PRESERVED_KHR 0x30D2 +#endif /* EGL_KHR_image_base */ + +#ifndef EGL_KHR_image_pixmap +#define EGL_KHR_image_pixmap 1 +#endif /* EGL_KHR_image_pixmap */ + +#ifndef EGL_KHR_lock_surface +#define EGL_KHR_lock_surface 1 +#define EGL_READ_SURFACE_BIT_KHR 0x0001 +#define EGL_WRITE_SURFACE_BIT_KHR 0x0002 +#define EGL_LOCK_SURFACE_BIT_KHR 0x0080 +#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 +#define EGL_MATCH_FORMAT_KHR 0x3043 +#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 +#define EGL_FORMAT_RGB_565_KHR 0x30C1 +#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 +#define EGL_FORMAT_RGBA_8888_KHR 0x30C3 +#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 +#define EGL_LOCK_USAGE_HINT_KHR 0x30C5 +#define EGL_BITMAP_POINTER_KHR 0x30C6 +#define EGL_BITMAP_PITCH_KHR 0x30C7 +#define EGL_BITMAP_ORIGIN_KHR 0x30C8 +#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 +#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA +#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB +#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC +#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD +#define EGL_LOWER_LEFT_KHR 0x30CE +#define EGL_UPPER_LEFT_KHR 0x30CF +typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface); +#endif +#endif /* EGL_KHR_lock_surface */ + +#ifndef EGL_KHR_lock_surface2 +#define EGL_KHR_lock_surface2 1 +#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 +#endif /* EGL_KHR_lock_surface2 */ + +#ifndef EGL_KHR_lock_surface3 +#define EGL_KHR_lock_surface3 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); +#endif +#endif /* EGL_KHR_lock_surface3 */ + +#ifndef EGL_KHR_partial_update +#define EGL_KHR_partial_update 1 +#define EGL_BUFFER_AGE_KHR 0x313D +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#endif +#endif /* EGL_KHR_partial_update */ + +#ifndef EGL_KHR_platform_android +#define EGL_KHR_platform_android 1 +#define EGL_PLATFORM_ANDROID_KHR 0x3141 +#endif /* EGL_KHR_platform_android */ + +#ifndef EGL_KHR_platform_gbm +#define EGL_KHR_platform_gbm 1 +#define EGL_PLATFORM_GBM_KHR 0x31D7 +#endif /* EGL_KHR_platform_gbm */ + +#ifndef EGL_KHR_platform_wayland +#define EGL_KHR_platform_wayland 1 +#define EGL_PLATFORM_WAYLAND_KHR 0x31D8 +#endif /* EGL_KHR_platform_wayland */ + +#ifndef EGL_KHR_platform_x11 +#define EGL_KHR_platform_x11 1 +#define EGL_PLATFORM_X11_KHR 0x31D5 +#define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6 +#endif /* EGL_KHR_platform_x11 */ + +#ifndef EGL_KHR_reusable_sync +#define EGL_KHR_reusable_sync 1 +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_SYNC_STATUS_KHR 0x30F1 +#define EGL_SIGNALED_KHR 0x30F2 +#define EGL_UNSIGNALED_KHR 0x30F3 +#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5 +#define EGL_CONDITION_SATISFIED_KHR 0x30F6 +#define EGL_SYNC_TYPE_KHR 0x30F7 +#define EGL_SYNC_REUSABLE_KHR 0x30FA +#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001 +#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull +#define EGL_NO_SYNC_KHR ((EGLSyncKHR)0) +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_KHR_reusable_sync */ + +#ifndef EGL_KHR_stream +#define EGL_KHR_stream 1 +typedef void *EGLStreamKHR; +typedef khronos_uint64_t EGLuint64KHR; +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_NO_STREAM_KHR ((EGLStreamKHR)0) +#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210 +#define EGL_PRODUCER_FRAME_KHR 0x3212 +#define EGL_CONSUMER_FRAME_KHR 0x3213 +#define EGL_STREAM_STATE_KHR 0x3214 +#define EGL_STREAM_STATE_CREATED_KHR 0x3215 +#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216 +#define EGL_STREAM_STATE_EMPTY_KHR 0x3217 +#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218 +#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219 +#define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A +#define EGL_BAD_STREAM_KHR 0x321B +#define EGL_BAD_STATE_KHR 0x321C +typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR (EGLDisplay dpy, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_KHR_stream */ + +#ifndef EGL_KHR_stream_consumer_gltexture +#define EGL_KHR_stream_consumer_gltexture 1 +#ifdef EGL_KHR_stream +#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR (EGLDisplay dpy, EGLStreamKHR stream); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_consumer_gltexture */ + +#ifndef EGL_KHR_stream_cross_process_fd +#define EGL_KHR_stream_cross_process_fd 1 +typedef int EGLNativeFileDescriptorKHR; +#ifdef EGL_KHR_stream +#define EGL_NO_FILE_DESCRIPTOR_KHR ((EGLNativeFileDescriptorKHR)(-1)) +typedef EGLNativeFileDescriptorKHR (EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_cross_process_fd */ + +#ifndef EGL_KHR_stream_fifo +#define EGL_KHR_stream_fifo 1 +#ifdef EGL_KHR_stream +#define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC +#define EGL_STREAM_TIME_NOW_KHR 0x31FD +#define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE +#define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_fifo */ + +#ifndef EGL_KHR_stream_producer_aldatalocator +#define EGL_KHR_stream_producer_aldatalocator 1 +#ifdef EGL_KHR_stream +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_producer_aldatalocator */ + +#ifndef EGL_KHR_stream_producer_eglsurface +#define EGL_KHR_stream_producer_eglsurface 1 +#ifdef EGL_KHR_stream +#define EGL_STREAM_BIT_KHR 0x0800 +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_producer_eglsurface */ + +#ifndef EGL_KHR_surfaceless_context +#define EGL_KHR_surfaceless_context 1 +#endif /* EGL_KHR_surfaceless_context */ + +#ifndef EGL_KHR_swap_buffers_with_damage +#define EGL_KHR_swap_buffers_with_damage 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#endif +#endif /* EGL_KHR_swap_buffers_with_damage */ + +#ifndef EGL_KHR_vg_parent_image +#define EGL_KHR_vg_parent_image 1 +#define EGL_VG_PARENT_IMAGE_KHR 0x30BA +#endif /* EGL_KHR_vg_parent_image */ + +#ifndef EGL_KHR_wait_sync +#define EGL_KHR_wait_sync 1 +typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); +#endif +#endif /* EGL_KHR_wait_sync */ + +#ifndef EGL_ANDROID_blob_cache +#define EGL_ANDROID_blob_cache 1 +typedef khronos_ssize_t EGLsizeiANDROID; +typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize); +typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize); +typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); +#endif +#endif /* EGL_ANDROID_blob_cache */ + +#ifndef EGL_ANDROID_framebuffer_target +#define EGL_ANDROID_framebuffer_target 1 +#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147 +#endif /* EGL_ANDROID_framebuffer_target */ + +#ifndef EGL_ANDROID_image_native_buffer +#define EGL_ANDROID_image_native_buffer 1 +#define EGL_NATIVE_BUFFER_ANDROID 0x3140 +#endif /* EGL_ANDROID_image_native_buffer */ + +#ifndef EGL_ANDROID_native_fence_sync +#define EGL_ANDROID_native_fence_sync 1 +#define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144 +#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145 +#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146 +#define EGL_NO_NATIVE_FENCE_FD_ANDROID -1 +typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync); +#endif +#endif /* EGL_ANDROID_native_fence_sync */ + +#ifndef EGL_ANDROID_recordable +#define EGL_ANDROID_recordable 1 +#define EGL_RECORDABLE_ANDROID 0x3142 +#endif /* EGL_ANDROID_recordable */ + +#ifndef EGL_ANGLE_d3d_share_handle_client_buffer +#define EGL_ANGLE_d3d_share_handle_client_buffer 1 +#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 +#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */ + +#ifndef EGL_ANGLE_device_d3d +#define EGL_ANGLE_device_d3d 1 +#define EGL_D3D9_DEVICE_ANGLE 0x33A0 +#define EGL_D3D11_DEVICE_ANGLE 0x33A1 +#endif /* EGL_ANGLE_device_d3d */ + +#ifndef EGL_ANGLE_query_surface_pointer +#define EGL_ANGLE_query_surface_pointer 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); +#endif +#endif /* EGL_ANGLE_query_surface_pointer */ + +#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle +#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1 +#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */ + +#ifndef EGL_ANGLE_window_fixed_size +#define EGL_ANGLE_window_fixed_size 1 +#define EGL_FIXED_SIZE_ANGLE 0x3201 +#endif /* EGL_ANGLE_window_fixed_size */ + +#ifndef EGL_ARM_pixmap_multisample_discard +#define EGL_ARM_pixmap_multisample_discard 1 +#define EGL_DISCARD_SAMPLES_ARM 0x3286 +#endif /* EGL_ARM_pixmap_multisample_discard */ + +#ifndef EGL_EXT_buffer_age +#define EGL_EXT_buffer_age 1 +#define EGL_BUFFER_AGE_EXT 0x313D +#endif /* EGL_EXT_buffer_age */ + +#ifndef EGL_EXT_client_extensions +#define EGL_EXT_client_extensions 1 +#endif /* EGL_EXT_client_extensions */ + +#ifndef EGL_EXT_create_context_robustness +#define EGL_EXT_create_context_robustness 1 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 +#define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF +#endif /* EGL_EXT_create_context_robustness */ + +#ifndef EGL_EXT_device_base +#define EGL_EXT_device_base 1 +typedef void *EGLDeviceEXT; +#define EGL_NO_DEVICE_EXT ((EGLDeviceEXT)(0)) +#define EGL_BAD_DEVICE_EXT 0x322B +#define EGL_DEVICE_EXT 0x322C +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); +typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); +EGLAPI const char *EGLAPIENTRY eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); +#endif +#endif /* EGL_EXT_device_base */ + +#ifndef EGL_EXT_device_drm +#define EGL_EXT_device_drm 1 +#define EGL_DRM_DEVICE_FILE_EXT 0x3233 +#endif /* EGL_EXT_device_drm */ + +#ifndef EGL_EXT_device_enumeration +#define EGL_EXT_device_enumeration 1 +#endif /* EGL_EXT_device_enumeration */ + +#ifndef EGL_EXT_device_openwf +#define EGL_EXT_device_openwf 1 +#define EGL_OPENWF_DEVICE_ID_EXT 0x3237 +#endif /* EGL_EXT_device_openwf */ + +#ifndef EGL_EXT_device_query +#define EGL_EXT_device_query 1 +#endif /* EGL_EXT_device_query */ + +#ifndef EGL_EXT_image_dma_buf_import +#define EGL_EXT_image_dma_buf_import 1 +#define EGL_LINUX_DMA_BUF_EXT 0x3270 +#define EGL_LINUX_DRM_FOURCC_EXT 0x3271 +#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272 +#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273 +#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274 +#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275 +#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276 +#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277 +#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278 +#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279 +#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A +#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B +#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C +#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D +#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E +#define EGL_ITU_REC601_EXT 0x327F +#define EGL_ITU_REC709_EXT 0x3280 +#define EGL_ITU_REC2020_EXT 0x3281 +#define EGL_YUV_FULL_RANGE_EXT 0x3282 +#define EGL_YUV_NARROW_RANGE_EXT 0x3283 +#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284 +#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285 +#endif /* EGL_EXT_image_dma_buf_import */ + +#ifndef EGL_EXT_multiview_window +#define EGL_EXT_multiview_window 1 +#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134 +#endif /* EGL_EXT_multiview_window */ + +#ifndef EGL_EXT_output_base +#define EGL_EXT_output_base 1 +typedef void *EGLOutputLayerEXT; +typedef void *EGLOutputPortEXT; +#define EGL_NO_OUTPUT_LAYER_EXT ((EGLOutputLayerEXT)0) +#define EGL_NO_OUTPUT_PORT_EXT ((EGLOutputPortEXT)0) +#define EGL_BAD_OUTPUT_LAYER_EXT 0x322D +#define EGL_BAD_OUTPUT_PORT_EXT 0x322E +#define EGL_SWAP_INTERVAL_EXT 0x322F +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); +typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); +typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); +EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); +EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); +EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); +EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); +EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); +#endif +#endif /* EGL_EXT_output_base */ + +#ifndef EGL_EXT_output_drm +#define EGL_EXT_output_drm 1 +#define EGL_DRM_CRTC_EXT 0x3234 +#define EGL_DRM_PLANE_EXT 0x3235 +#define EGL_DRM_CONNECTOR_EXT 0x3236 +#endif /* EGL_EXT_output_drm */ + +#ifndef EGL_EXT_output_openwf +#define EGL_EXT_output_openwf 1 +#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238 +#define EGL_OPENWF_PORT_ID_EXT 0x3239 +#endif /* EGL_EXT_output_openwf */ + +#ifndef EGL_EXT_platform_base +#define EGL_EXT_platform_base 1 +typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list); +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT (EGLenum platform, void *native_display, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); +#endif +#endif /* EGL_EXT_platform_base */ + +#ifndef EGL_EXT_platform_device +#define EGL_EXT_platform_device 1 +#define EGL_PLATFORM_DEVICE_EXT 0x313F +#endif /* EGL_EXT_platform_device */ + +#ifndef EGL_EXT_platform_wayland +#define EGL_EXT_platform_wayland 1 +#define EGL_PLATFORM_WAYLAND_EXT 0x31D8 +#endif /* EGL_EXT_platform_wayland */ + +#ifndef EGL_EXT_platform_x11 +#define EGL_EXT_platform_x11 1 +#define EGL_PLATFORM_X11_EXT 0x31D5 +#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6 +#endif /* EGL_EXT_platform_x11 */ + +#ifndef EGL_EXT_protected_surface +#define EGL_EXT_protected_surface 1 +#define EGL_PROTECTED_CONTENT_EXT 0x32C0 +#endif /* EGL_EXT_protected_surface */ + +#ifndef EGL_EXT_stream_consumer_egloutput +#define EGL_EXT_stream_consumer_egloutput 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); +#endif +#endif /* EGL_EXT_stream_consumer_egloutput */ + +#ifndef EGL_EXT_swap_buffers_with_damage +#define EGL_EXT_swap_buffers_with_damage 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#endif +#endif /* EGL_EXT_swap_buffers_with_damage */ + +#ifndef EGL_EXT_yuv_surface +#define EGL_EXT_yuv_surface 1 +#define EGL_YUV_ORDER_EXT 0x3301 +#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311 +#define EGL_YUV_SUBSAMPLE_EXT 0x3312 +#define EGL_YUV_DEPTH_RANGE_EXT 0x3317 +#define EGL_YUV_CSC_STANDARD_EXT 0x330A +#define EGL_YUV_PLANE_BPP_EXT 0x331A +#define EGL_YUV_BUFFER_EXT 0x3300 +#define EGL_YUV_ORDER_YUV_EXT 0x3302 +#define EGL_YUV_ORDER_YVU_EXT 0x3303 +#define EGL_YUV_ORDER_YUYV_EXT 0x3304 +#define EGL_YUV_ORDER_UYVY_EXT 0x3305 +#define EGL_YUV_ORDER_YVYU_EXT 0x3306 +#define EGL_YUV_ORDER_VYUY_EXT 0x3307 +#define EGL_YUV_ORDER_AYUV_EXT 0x3308 +#define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313 +#define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314 +#define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315 +#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318 +#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319 +#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B +#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C +#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D +#define EGL_YUV_PLANE_BPP_0_EXT 0x331B +#define EGL_YUV_PLANE_BPP_8_EXT 0x331C +#define EGL_YUV_PLANE_BPP_10_EXT 0x331D +#endif /* EGL_EXT_yuv_surface */ + +#ifndef EGL_HI_clientpixmap +#define EGL_HI_clientpixmap 1 +struct EGLClientPixmapHI { + void *pData; + EGLint iWidth; + EGLint iHeight; + EGLint iStride; +}; +#define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74 +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); +#endif +#endif /* EGL_HI_clientpixmap */ + +#ifndef EGL_HI_colorformats +#define EGL_HI_colorformats 1 +#define EGL_COLOR_FORMAT_HI 0x8F70 +#define EGL_COLOR_RGB_HI 0x8F71 +#define EGL_COLOR_RGBA_HI 0x8F72 +#define EGL_COLOR_ARGB_HI 0x8F73 +#endif /* EGL_HI_colorformats */ + +#ifndef EGL_IMG_context_priority +#define EGL_IMG_context_priority 1 +#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100 +#define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101 +#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102 +#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103 +#endif /* EGL_IMG_context_priority */ + +#ifndef EGL_MESA_drm_image +#define EGL_MESA_drm_image 1 +#define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 +#define EGL_DRM_BUFFER_USE_MESA 0x31D1 +#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 +#define EGL_DRM_BUFFER_MESA 0x31D3 +#define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 +#define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001 +#define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002 +typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); +#endif +#endif /* EGL_MESA_drm_image */ + +#ifndef EGL_MESA_image_dma_buf_export +#define EGL_MESA_image_dma_buf_export 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); +EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); +#endif +#endif /* EGL_MESA_image_dma_buf_export */ + +#ifndef EGL_MESA_platform_gbm +#define EGL_MESA_platform_gbm 1 +#define EGL_PLATFORM_GBM_MESA 0x31D7 +#endif /* EGL_MESA_platform_gbm */ + +#ifndef EGL_NOK_swap_region +#define EGL_NOK_swap_region 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#endif +#endif /* EGL_NOK_swap_region */ + +#ifndef EGL_NOK_swap_region2 +#define EGL_NOK_swap_region2 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#endif +#endif /* EGL_NOK_swap_region2 */ + +#ifndef EGL_NOK_texture_from_pixmap +#define EGL_NOK_texture_from_pixmap 1 +#define EGL_Y_INVERTED_NOK 0x307F +#endif /* EGL_NOK_texture_from_pixmap */ + +#ifndef EGL_NV_3dvision_surface +#define EGL_NV_3dvision_surface 1 +#define EGL_AUTO_STEREO_NV 0x3136 +#endif /* EGL_NV_3dvision_surface */ + +#ifndef EGL_NV_coverage_sample +#define EGL_NV_coverage_sample 1 +#define EGL_COVERAGE_BUFFERS_NV 0x30E0 +#define EGL_COVERAGE_SAMPLES_NV 0x30E1 +#endif /* EGL_NV_coverage_sample */ + +#ifndef EGL_NV_coverage_sample_resolve +#define EGL_NV_coverage_sample_resolve 1 +#define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131 +#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132 +#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133 +#endif /* EGL_NV_coverage_sample_resolve */ + +#ifndef EGL_NV_cuda_event +#define EGL_NV_cuda_event 1 +#define EGL_CUDA_EVENT_HANDLE_NV 0x323B +#define EGL_SYNC_CUDA_EVENT_NV 0x323C +#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D +#endif /* EGL_NV_cuda_event */ + +#ifndef EGL_NV_depth_nonlinear +#define EGL_NV_depth_nonlinear 1 +#define EGL_DEPTH_ENCODING_NV 0x30E2 +#define EGL_DEPTH_ENCODING_NONE_NV 0 +#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3 +#endif /* EGL_NV_depth_nonlinear */ + +#ifndef EGL_NV_device_cuda +#define EGL_NV_device_cuda 1 +#define EGL_CUDA_DEVICE_NV 0x323A +#endif /* EGL_NV_device_cuda */ + +#ifndef EGL_NV_native_query +#define EGL_NV_native_query 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV (EGLDisplay dpy, EGLNativeDisplayType *display_id); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); +#endif +#endif /* EGL_NV_native_query */ + +#ifndef EGL_NV_post_convert_rounding +#define EGL_NV_post_convert_rounding 1 +#endif /* EGL_NV_post_convert_rounding */ + +#ifndef EGL_NV_post_sub_buffer +#define EGL_NV_post_sub_buffer 1 +#define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE +typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); +#endif +#endif /* EGL_NV_post_sub_buffer */ + +#ifndef EGL_NV_stream_sync +#define EGL_NV_stream_sync 1 +#define EGL_SYNC_NEW_FRAME_NV 0x321F +typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateStreamSyncNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); +#endif +#endif /* EGL_NV_stream_sync */ + +#ifndef EGL_NV_sync +#define EGL_NV_sync 1 +typedef void *EGLSyncNV; +typedef khronos_utime_nanoseconds_t EGLTimeNV; +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6 +#define EGL_SYNC_STATUS_NV 0x30E7 +#define EGL_SIGNALED_NV 0x30E8 +#define EGL_UNSIGNALED_NV 0x30E9 +#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001 +#define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFFull +#define EGL_ALREADY_SIGNALED_NV 0x30EA +#define EGL_TIMEOUT_EXPIRED_NV 0x30EB +#define EGL_CONDITION_SATISFIED_NV 0x30EC +#define EGL_SYNC_TYPE_NV 0x30ED +#define EGL_SYNC_CONDITION_NV 0x30EE +#define EGL_SYNC_FENCE_NV 0x30EF +#define EGL_NO_SYNC_NV ((EGLSyncNV)0) +typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync); +typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV (EGLSyncNV sync); +EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV (EGLSyncNV sync); +EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); +EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV (EGLSyncNV sync, EGLenum mode); +EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_NV_sync */ + +#ifndef EGL_NV_system_time +#define EGL_NV_system_time 1 +typedef khronos_utime_nanoseconds_t EGLuint64NV; +#ifdef KHRONOS_SUPPORT_INT64 +typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void); +typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV (void); +EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_NV_system_time */ + +#ifndef EGL_TIZEN_image_native_buffer +#define EGL_TIZEN_image_native_buffer 1 +#define EGL_NATIVE_BUFFER_TIZEN 0x32A0 +#endif /* EGL_TIZEN_image_native_buffer */ + +#ifndef EGL_TIZEN_image_native_surface +#define EGL_TIZEN_image_native_surface 1 +#define EGL_NATIVE_SURFACE_TIZEN 0x32A1 +#endif /* EGL_TIZEN_image_native_surface */ + +#ifdef __cplusplus +} +#endif + +#endif /* __eglext_h_ */ + + +#endif /* _MSC_VER */ diff --git a/Template/Game/Source/External/SDL/include/SDL_endian.h b/Template/Game/Source/External/SDL/include/SDL_endian.h new file mode 100644 index 0000000..9100b10 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_endian.h @@ -0,0 +1,239 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_endian.h + * + * Functions for reading and writing endian-specific values + */ + +#ifndef _SDL_endian_h +#define _SDL_endian_h + +#include "SDL_stdinc.h" + +/** + * \name The two types of endianness + */ +/* @{ */ +#define SDL_LIL_ENDIAN 1234 +#define SDL_BIG_ENDIAN 4321 +/* @} */ + +#ifndef SDL_BYTEORDER /* Not defined in SDL_config.h? */ +#ifdef __linux__ +#include +#define SDL_BYTEORDER __BYTE_ORDER +#else /* __linux__ */ +#if defined(__hppa__) || \ + defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \ + (defined(__MIPS__) && defined(__MISPEB__)) || \ + defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \ + defined(__sparc__) +#define SDL_BYTEORDER SDL_BIG_ENDIAN +#else +#define SDL_BYTEORDER SDL_LIL_ENDIAN +#endif +#endif /* __linux__ */ +#endif /* !SDL_BYTEORDER */ + + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \file SDL_endian.h + */ +#if defined(__GNUC__) && defined(__i386__) && \ + !(__GNUC__ == 2 && __GNUC_MINOR__ == 95 /* broken gcc version */) +SDL_FORCE_INLINE Uint16 +SDL_Swap16(Uint16 x) +{ + __asm__("xchgb %b0,%h0": "=q"(x):"0"(x)); + return x; +} +#elif defined(__GNUC__) && defined(__x86_64__) +SDL_FORCE_INLINE Uint16 +SDL_Swap16(Uint16 x) +{ + __asm__("xchgb %b0,%h0": "=Q"(x):"0"(x)); + return x; +} +#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__)) +SDL_FORCE_INLINE Uint16 +SDL_Swap16(Uint16 x) +{ + int result; + + __asm__("rlwimi %0,%2,8,16,23": "=&r"(result):"0"(x >> 8), "r"(x)); + return (Uint16)result; +} +#elif defined(__GNUC__) && (defined(__M68000__) || defined(__M68020__)) && !defined(__mcoldfire__) +SDL_FORCE_INLINE Uint16 +SDL_Swap16(Uint16 x) +{ + __asm__("rorw #8,%0": "=d"(x): "0"(x):"cc"); + return x; +} +#else +SDL_FORCE_INLINE Uint16 +SDL_Swap16(Uint16 x) +{ + return SDL_static_cast(Uint16, ((x << 8) | (x >> 8))); +} +#endif + +#if defined(__GNUC__) && defined(__i386__) +SDL_FORCE_INLINE Uint32 +SDL_Swap32(Uint32 x) +{ + __asm__("bswap %0": "=r"(x):"0"(x)); + return x; +} +#elif defined(__GNUC__) && defined(__x86_64__) +SDL_FORCE_INLINE Uint32 +SDL_Swap32(Uint32 x) +{ + __asm__("bswapl %0": "=r"(x):"0"(x)); + return x; +} +#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__)) +SDL_FORCE_INLINE Uint32 +SDL_Swap32(Uint32 x) +{ + Uint32 result; + + __asm__("rlwimi %0,%2,24,16,23": "=&r"(result):"0"(x >> 24), "r"(x)); + __asm__("rlwimi %0,%2,8,8,15": "=&r"(result):"0"(result), "r"(x)); + __asm__("rlwimi %0,%2,24,0,7": "=&r"(result):"0"(result), "r"(x)); + return result; +} +#elif defined(__GNUC__) && (defined(__M68000__) || defined(__M68020__)) && !defined(__mcoldfire__) +SDL_FORCE_INLINE Uint32 +SDL_Swap32(Uint32 x) +{ + __asm__("rorw #8,%0\n\tswap %0\n\trorw #8,%0": "=d"(x): "0"(x):"cc"); + return x; +} +#else +SDL_FORCE_INLINE Uint32 +SDL_Swap32(Uint32 x) +{ + return SDL_static_cast(Uint32, ((x << 24) | ((x << 8) & 0x00FF0000) | + ((x >> 8) & 0x0000FF00) | (x >> 24))); +} +#endif + +#if defined(__GNUC__) && defined(__i386__) +SDL_FORCE_INLINE Uint64 +SDL_Swap64(Uint64 x) +{ + union + { + struct + { + Uint32 a, b; + } s; + Uint64 u; + } v; + v.u = x; + __asm__("bswapl %0 ; bswapl %1 ; xchgl %0,%1": "=r"(v.s.a), "=r"(v.s.b):"0"(v.s.a), + "1"(v.s. + b)); + return v.u; +} +#elif defined(__GNUC__) && defined(__x86_64__) +SDL_FORCE_INLINE Uint64 +SDL_Swap64(Uint64 x) +{ + __asm__("bswapq %0": "=r"(x):"0"(x)); + return x; +} +#else +SDL_FORCE_INLINE Uint64 +SDL_Swap64(Uint64 x) +{ + Uint32 hi, lo; + + /* Separate into high and low 32-bit values and swap them */ + lo = SDL_static_cast(Uint32, x & 0xFFFFFFFF); + x >>= 32; + hi = SDL_static_cast(Uint32, x & 0xFFFFFFFF); + x = SDL_Swap32(lo); + x <<= 32; + x |= SDL_Swap32(hi); + return (x); +} +#endif + + +SDL_FORCE_INLINE float +SDL_SwapFloat(float x) +{ + union + { + float f; + Uint32 ui32; + } swapper; + swapper.f = x; + swapper.ui32 = SDL_Swap32(swapper.ui32); + return swapper.f; +} + + +/** + * \name Swap to native + * Byteswap item from the specified endianness to the native endianness. + */ +/* @{ */ +#if SDL_BYTEORDER == SDL_LIL_ENDIAN +#define SDL_SwapLE16(X) (X) +#define SDL_SwapLE32(X) (X) +#define SDL_SwapLE64(X) (X) +#define SDL_SwapFloatLE(X) (X) +#define SDL_SwapBE16(X) SDL_Swap16(X) +#define SDL_SwapBE32(X) SDL_Swap32(X) +#define SDL_SwapBE64(X) SDL_Swap64(X) +#define SDL_SwapFloatBE(X) SDL_SwapFloat(X) +#else +#define SDL_SwapLE16(X) SDL_Swap16(X) +#define SDL_SwapLE32(X) SDL_Swap32(X) +#define SDL_SwapLE64(X) SDL_Swap64(X) +#define SDL_SwapFloatLE(X) SDL_SwapFloat(X) +#define SDL_SwapBE16(X) (X) +#define SDL_SwapBE32(X) (X) +#define SDL_SwapBE64(X) (X) +#define SDL_SwapFloatBE(X) (X) +#endif +/* @} *//* Swap to native */ + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_endian_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_error.h b/Template/Game/Source/External/SDL/include/SDL_error.h new file mode 100644 index 0000000..2f3b4b5 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_error.h @@ -0,0 +1,76 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_error.h + * + * Simple error message routines for SDL. + */ + +#ifndef _SDL_error_h +#define _SDL_error_h + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Public functions */ +/* SDL_SetError() unconditionally returns -1. */ +extern DECLSPEC int SDLCALL SDL_SetError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); +extern DECLSPEC const char *SDLCALL SDL_GetError(void); +extern DECLSPEC void SDLCALL SDL_ClearError(void); + +/** + * \name Internal error functions + * + * \internal + * Private error reporting function - used internally. + */ +/* @{ */ +#define SDL_OutOfMemory() SDL_Error(SDL_ENOMEM) +#define SDL_Unsupported() SDL_Error(SDL_UNSUPPORTED) +#define SDL_InvalidParamError(param) SDL_SetError("Parameter '%s' is invalid", (param)) +typedef enum +{ + SDL_ENOMEM, + SDL_EFREAD, + SDL_EFWRITE, + SDL_EFSEEK, + SDL_UNSUPPORTED, + SDL_LASTERROR +} SDL_errorcode; +/* SDL_Error() unconditionally returns -1. */ +extern DECLSPEC int SDLCALL SDL_Error(SDL_errorcode code); +/* @} *//* Internal error functions */ + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_error_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_events.h b/Template/Game/Source/External/SDL/include/SDL_events.h new file mode 100644 index 0000000..1437f4c --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_events.h @@ -0,0 +1,750 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_events.h + * + * Include file for SDL event handling. + */ + +#ifndef _SDL_events_h +#define _SDL_events_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_video.h" +#include "SDL_keyboard.h" +#include "SDL_mouse.h" +#include "SDL_joystick.h" +#include "SDL_gamecontroller.h" +#include "SDL_quit.h" +#include "SDL_gesture.h" +#include "SDL_touch.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* General keyboard/mouse state definitions */ +#define SDL_RELEASED 0 +#define SDL_PRESSED 1 + +/** + * \brief The types of events that can be delivered. + */ +typedef enum +{ + SDL_FIRSTEVENT = 0, /**< Unused (do not remove) */ + + /* Application events */ + SDL_QUIT = 0x100, /**< User-requested quit */ + + /* These application events have special meaning on iOS, see README-ios.md for details */ + SDL_APP_TERMINATING, /**< The application is being terminated by the OS + Called on iOS in applicationWillTerminate() + Called on Android in onDestroy() + */ + SDL_APP_LOWMEMORY, /**< The application is low on memory, free memory if possible. + Called on iOS in applicationDidReceiveMemoryWarning() + Called on Android in onLowMemory() + */ + SDL_APP_WILLENTERBACKGROUND, /**< The application is about to enter the background + Called on iOS in applicationWillResignActive() + Called on Android in onPause() + */ + SDL_APP_DIDENTERBACKGROUND, /**< The application did enter the background and may not get CPU for some time + Called on iOS in applicationDidEnterBackground() + Called on Android in onPause() + */ + SDL_APP_WILLENTERFOREGROUND, /**< The application is about to enter the foreground + Called on iOS in applicationWillEnterForeground() + Called on Android in onResume() + */ + SDL_APP_DIDENTERFOREGROUND, /**< The application is now interactive + Called on iOS in applicationDidBecomeActive() + Called on Android in onResume() + */ + + /* Window events */ + SDL_WINDOWEVENT = 0x200, /**< Window state change */ + SDL_SYSWMEVENT, /**< System specific event */ + + /* Keyboard events */ + SDL_KEYDOWN = 0x300, /**< Key pressed */ + SDL_KEYUP, /**< Key released */ + SDL_TEXTEDITING, /**< Keyboard text editing (composition) */ + SDL_TEXTINPUT, /**< Keyboard text input */ + SDL_KEYMAPCHANGED, /**< Keymap changed due to a system event such as an + input language or keyboard layout change. + */ + + /* Mouse events */ + SDL_MOUSEMOTION = 0x400, /**< Mouse moved */ + SDL_MOUSEBUTTONDOWN, /**< Mouse button pressed */ + SDL_MOUSEBUTTONUP, /**< Mouse button released */ + SDL_MOUSEWHEEL, /**< Mouse wheel motion */ + + /* Joystick events */ + SDL_JOYAXISMOTION = 0x600, /**< Joystick axis motion */ + SDL_JOYBALLMOTION, /**< Joystick trackball motion */ + SDL_JOYHATMOTION, /**< Joystick hat position change */ + SDL_JOYBUTTONDOWN, /**< Joystick button pressed */ + SDL_JOYBUTTONUP, /**< Joystick button released */ + SDL_JOYDEVICEADDED, /**< A new joystick has been inserted into the system */ + SDL_JOYDEVICEREMOVED, /**< An opened joystick has been removed */ + + /* Game controller events */ + SDL_CONTROLLERAXISMOTION = 0x650, /**< Game controller axis motion */ + SDL_CONTROLLERBUTTONDOWN, /**< Game controller button pressed */ + SDL_CONTROLLERBUTTONUP, /**< Game controller button released */ + SDL_CONTROLLERDEVICEADDED, /**< A new Game controller has been inserted into the system */ + SDL_CONTROLLERDEVICEREMOVED, /**< An opened Game controller has been removed */ + SDL_CONTROLLERDEVICEREMAPPED, /**< The controller mapping was updated */ + + /* Touch events */ + SDL_FINGERDOWN = 0x700, + SDL_FINGERUP, + SDL_FINGERMOTION, + + /* Gesture events */ + SDL_DOLLARGESTURE = 0x800, + SDL_DOLLARRECORD, + SDL_MULTIGESTURE, + + /* Clipboard events */ + SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard changed */ + + /* Drag and drop events */ + SDL_DROPFILE = 0x1000, /**< The system requests a file open */ + + /* Audio hotplug events */ + SDL_AUDIODEVICEADDED = 0x1100, /**< A new audio device is available */ + SDL_AUDIODEVICEREMOVED, /**< An audio device has been removed. */ + + /* Render events */ + SDL_RENDER_TARGETS_RESET = 0x2000, /**< The render targets have been reset and their contents need to be updated */ + SDL_RENDER_DEVICE_RESET, /**< The device has been reset and all textures need to be recreated */ + + /** Events ::SDL_USEREVENT through ::SDL_LASTEVENT are for your use, + * and should be allocated with SDL_RegisterEvents() + */ + SDL_USEREVENT = 0x8000, + + /** + * This last event is only for bounding internal arrays + */ + SDL_LASTEVENT = 0xFFFF +} SDL_EventType; + +/** + * \brief Fields shared by every event + */ +typedef struct SDL_CommonEvent +{ + Uint32 type; + Uint32 timestamp; +} SDL_CommonEvent; + +/** + * \brief Window state change event data (event.window.*) + */ +typedef struct SDL_WindowEvent +{ + Uint32 type; /**< ::SDL_WINDOWEVENT */ + Uint32 timestamp; + Uint32 windowID; /**< The associated window */ + Uint8 event; /**< ::SDL_WindowEventID */ + Uint8 padding1; + Uint8 padding2; + Uint8 padding3; + Sint32 data1; /**< event dependent data */ + Sint32 data2; /**< event dependent data */ +} SDL_WindowEvent; + +/** + * \brief Keyboard button event structure (event.key.*) + */ +typedef struct SDL_KeyboardEvent +{ + Uint32 type; /**< ::SDL_KEYDOWN or ::SDL_KEYUP */ + Uint32 timestamp; + Uint32 windowID; /**< The window with keyboard focus, if any */ + Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ + Uint8 repeat; /**< Non-zero if this is a key repeat */ + Uint8 padding2; + Uint8 padding3; + SDL_Keysym keysym; /**< The key that was pressed or released */ +} SDL_KeyboardEvent; + +#define SDL_TEXTEDITINGEVENT_TEXT_SIZE (32) +/** + * \brief Keyboard text editing event structure (event.edit.*) + */ +typedef struct SDL_TextEditingEvent +{ + Uint32 type; /**< ::SDL_TEXTEDITING */ + Uint32 timestamp; + Uint32 windowID; /**< The window with keyboard focus, if any */ + char text[SDL_TEXTEDITINGEVENT_TEXT_SIZE]; /**< The editing text */ + Sint32 start; /**< The start cursor of selected editing text */ + Sint32 length; /**< The length of selected editing text */ +} SDL_TextEditingEvent; + + +#define SDL_TEXTINPUTEVENT_TEXT_SIZE (32) +/** + * \brief Keyboard text input event structure (event.text.*) + */ +typedef struct SDL_TextInputEvent +{ + Uint32 type; /**< ::SDL_TEXTINPUT */ + Uint32 timestamp; + Uint32 windowID; /**< The window with keyboard focus, if any */ + char text[SDL_TEXTINPUTEVENT_TEXT_SIZE]; /**< The input text */ +} SDL_TextInputEvent; + +/** + * \brief Mouse motion event structure (event.motion.*) + */ +typedef struct SDL_MouseMotionEvent +{ + Uint32 type; /**< ::SDL_MOUSEMOTION */ + Uint32 timestamp; + Uint32 windowID; /**< The window with mouse focus, if any */ + Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ + Uint32 state; /**< The current button state */ + Sint32 x; /**< X coordinate, relative to window */ + Sint32 y; /**< Y coordinate, relative to window */ + Sint32 xrel; /**< The relative motion in the X direction */ + Sint32 yrel; /**< The relative motion in the Y direction */ +} SDL_MouseMotionEvent; + +/** + * \brief Mouse button event structure (event.button.*) + */ +typedef struct SDL_MouseButtonEvent +{ + Uint32 type; /**< ::SDL_MOUSEBUTTONDOWN or ::SDL_MOUSEBUTTONUP */ + Uint32 timestamp; + Uint32 windowID; /**< The window with mouse focus, if any */ + Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ + Uint8 button; /**< The mouse button index */ + Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ + Uint8 clicks; /**< 1 for single-click, 2 for double-click, etc. */ + Uint8 padding1; + Sint32 x; /**< X coordinate, relative to window */ + Sint32 y; /**< Y coordinate, relative to window */ +} SDL_MouseButtonEvent; + +/** + * \brief Mouse wheel event structure (event.wheel.*) + */ +typedef struct SDL_MouseWheelEvent +{ + Uint32 type; /**< ::SDL_MOUSEWHEEL */ + Uint32 timestamp; + Uint32 windowID; /**< The window with mouse focus, if any */ + Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ + Sint32 x; /**< The amount scrolled horizontally, positive to the right and negative to the left */ + Sint32 y; /**< The amount scrolled vertically, positive away from the user and negative toward the user */ + Uint32 direction; /**< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back */ +} SDL_MouseWheelEvent; + +/** + * \brief Joystick axis motion event structure (event.jaxis.*) + */ +typedef struct SDL_JoyAxisEvent +{ + Uint32 type; /**< ::SDL_JOYAXISMOTION */ + Uint32 timestamp; + SDL_JoystickID which; /**< The joystick instance id */ + Uint8 axis; /**< The joystick axis index */ + Uint8 padding1; + Uint8 padding2; + Uint8 padding3; + Sint16 value; /**< The axis value (range: -32768 to 32767) */ + Uint16 padding4; +} SDL_JoyAxisEvent; + +/** + * \brief Joystick trackball motion event structure (event.jball.*) + */ +typedef struct SDL_JoyBallEvent +{ + Uint32 type; /**< ::SDL_JOYBALLMOTION */ + Uint32 timestamp; + SDL_JoystickID which; /**< The joystick instance id */ + Uint8 ball; /**< The joystick trackball index */ + Uint8 padding1; + Uint8 padding2; + Uint8 padding3; + Sint16 xrel; /**< The relative motion in the X direction */ + Sint16 yrel; /**< The relative motion in the Y direction */ +} SDL_JoyBallEvent; + +/** + * \brief Joystick hat position change event structure (event.jhat.*) + */ +typedef struct SDL_JoyHatEvent +{ + Uint32 type; /**< ::SDL_JOYHATMOTION */ + Uint32 timestamp; + SDL_JoystickID which; /**< The joystick instance id */ + Uint8 hat; /**< The joystick hat index */ + Uint8 value; /**< The hat position value. + * \sa ::SDL_HAT_LEFTUP ::SDL_HAT_UP ::SDL_HAT_RIGHTUP + * \sa ::SDL_HAT_LEFT ::SDL_HAT_CENTERED ::SDL_HAT_RIGHT + * \sa ::SDL_HAT_LEFTDOWN ::SDL_HAT_DOWN ::SDL_HAT_RIGHTDOWN + * + * Note that zero means the POV is centered. + */ + Uint8 padding1; + Uint8 padding2; +} SDL_JoyHatEvent; + +/** + * \brief Joystick button event structure (event.jbutton.*) + */ +typedef struct SDL_JoyButtonEvent +{ + Uint32 type; /**< ::SDL_JOYBUTTONDOWN or ::SDL_JOYBUTTONUP */ + Uint32 timestamp; + SDL_JoystickID which; /**< The joystick instance id */ + Uint8 button; /**< The joystick button index */ + Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ + Uint8 padding1; + Uint8 padding2; +} SDL_JoyButtonEvent; + +/** + * \brief Joystick device event structure (event.jdevice.*) + */ +typedef struct SDL_JoyDeviceEvent +{ + Uint32 type; /**< ::SDL_JOYDEVICEADDED or ::SDL_JOYDEVICEREMOVED */ + Uint32 timestamp; + Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED event */ +} SDL_JoyDeviceEvent; + + +/** + * \brief Game controller axis motion event structure (event.caxis.*) + */ +typedef struct SDL_ControllerAxisEvent +{ + Uint32 type; /**< ::SDL_CONTROLLERAXISMOTION */ + Uint32 timestamp; + SDL_JoystickID which; /**< The joystick instance id */ + Uint8 axis; /**< The controller axis (SDL_GameControllerAxis) */ + Uint8 padding1; + Uint8 padding2; + Uint8 padding3; + Sint16 value; /**< The axis value (range: -32768 to 32767) */ + Uint16 padding4; +} SDL_ControllerAxisEvent; + + +/** + * \brief Game controller button event structure (event.cbutton.*) + */ +typedef struct SDL_ControllerButtonEvent +{ + Uint32 type; /**< ::SDL_CONTROLLERBUTTONDOWN or ::SDL_CONTROLLERBUTTONUP */ + Uint32 timestamp; + SDL_JoystickID which; /**< The joystick instance id */ + Uint8 button; /**< The controller button (SDL_GameControllerButton) */ + Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ + Uint8 padding1; + Uint8 padding2; +} SDL_ControllerButtonEvent; + + +/** + * \brief Controller device event structure (event.cdevice.*) + */ +typedef struct SDL_ControllerDeviceEvent +{ + Uint32 type; /**< ::SDL_CONTROLLERDEVICEADDED, ::SDL_CONTROLLERDEVICEREMOVED, or ::SDL_CONTROLLERDEVICEREMAPPED */ + Uint32 timestamp; + Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED or REMAPPED event */ +} SDL_ControllerDeviceEvent; + +/** + * \brief Audio device event structure (event.adevice.*) + */ +typedef struct SDL_AudioDeviceEvent +{ + Uint32 type; /**< ::SDL_AUDIODEVICEADDED, or ::SDL_AUDIODEVICEREMOVED */ + Uint32 timestamp; + Uint32 which; /**< The audio device index for the ADDED event (valid until next SDL_GetNumAudioDevices() call), SDL_AudioDeviceID for the REMOVED event */ + Uint8 iscapture; /**< zero if an output device, non-zero if a capture device. */ + Uint8 padding1; + Uint8 padding2; + Uint8 padding3; +} SDL_AudioDeviceEvent; + + +/** + * \brief Touch finger event structure (event.tfinger.*) + */ +typedef struct SDL_TouchFingerEvent +{ + Uint32 type; /**< ::SDL_FINGERMOTION or ::SDL_FINGERDOWN or ::SDL_FINGERUP */ + Uint32 timestamp; + SDL_TouchID touchId; /**< The touch device id */ + SDL_FingerID fingerId; + float x; /**< Normalized in the range 0...1 */ + float y; /**< Normalized in the range 0...1 */ + float dx; /**< Normalized in the range -1...1 */ + float dy; /**< Normalized in the range -1...1 */ + float pressure; /**< Normalized in the range 0...1 */ +} SDL_TouchFingerEvent; + + +/** + * \brief Multiple Finger Gesture Event (event.mgesture.*) + */ +typedef struct SDL_MultiGestureEvent +{ + Uint32 type; /**< ::SDL_MULTIGESTURE */ + Uint32 timestamp; + SDL_TouchID touchId; /**< The touch device index */ + float dTheta; + float dDist; + float x; + float y; + Uint16 numFingers; + Uint16 padding; +} SDL_MultiGestureEvent; + + +/** + * \brief Dollar Gesture Event (event.dgesture.*) + */ +typedef struct SDL_DollarGestureEvent +{ + Uint32 type; /**< ::SDL_DOLLARGESTURE or ::SDL_DOLLARRECORD */ + Uint32 timestamp; + SDL_TouchID touchId; /**< The touch device id */ + SDL_GestureID gestureId; + Uint32 numFingers; + float error; + float x; /**< Normalized center of gesture */ + float y; /**< Normalized center of gesture */ +} SDL_DollarGestureEvent; + + +/** + * \brief An event used to request a file open by the system (event.drop.*) + * This event is enabled by default, you can disable it with SDL_EventState(). + * \note If this event is enabled, you must free the filename in the event. + */ +typedef struct SDL_DropEvent +{ + Uint32 type; /**< ::SDL_DROPFILE */ + Uint32 timestamp; + char *file; /**< The file name, which should be freed with SDL_free() */ +} SDL_DropEvent; + + +/** + * \brief The "quit requested" event + */ +typedef struct SDL_QuitEvent +{ + Uint32 type; /**< ::SDL_QUIT */ + Uint32 timestamp; +} SDL_QuitEvent; + +/** + * \brief OS Specific event + */ +typedef struct SDL_OSEvent +{ + Uint32 type; /**< ::SDL_QUIT */ + Uint32 timestamp; +} SDL_OSEvent; + +/** + * \brief A user-defined event type (event.user.*) + */ +typedef struct SDL_UserEvent +{ + Uint32 type; /**< ::SDL_USEREVENT through ::SDL_LASTEVENT-1 */ + Uint32 timestamp; + Uint32 windowID; /**< The associated window if any */ + Sint32 code; /**< User defined event code */ + void *data1; /**< User defined data pointer */ + void *data2; /**< User defined data pointer */ +} SDL_UserEvent; + + +struct SDL_SysWMmsg; +typedef struct SDL_SysWMmsg SDL_SysWMmsg; + +/** + * \brief A video driver dependent system event (event.syswm.*) + * This event is disabled by default, you can enable it with SDL_EventState() + * + * \note If you want to use this event, you should include SDL_syswm.h. + */ +typedef struct SDL_SysWMEvent +{ + Uint32 type; /**< ::SDL_SYSWMEVENT */ + Uint32 timestamp; + SDL_SysWMmsg *msg; /**< driver dependent data, defined in SDL_syswm.h */ +} SDL_SysWMEvent; + +/** + * \brief General event structure + */ +typedef union SDL_Event +{ + Uint32 type; /**< Event type, shared with all events */ + SDL_CommonEvent common; /**< Common event data */ + SDL_WindowEvent window; /**< Window event data */ + SDL_KeyboardEvent key; /**< Keyboard event data */ + SDL_TextEditingEvent edit; /**< Text editing event data */ + SDL_TextInputEvent text; /**< Text input event data */ + SDL_MouseMotionEvent motion; /**< Mouse motion event data */ + SDL_MouseButtonEvent button; /**< Mouse button event data */ + SDL_MouseWheelEvent wheel; /**< Mouse wheel event data */ + SDL_JoyAxisEvent jaxis; /**< Joystick axis event data */ + SDL_JoyBallEvent jball; /**< Joystick ball event data */ + SDL_JoyHatEvent jhat; /**< Joystick hat event data */ + SDL_JoyButtonEvent jbutton; /**< Joystick button event data */ + SDL_JoyDeviceEvent jdevice; /**< Joystick device change event data */ + SDL_ControllerAxisEvent caxis; /**< Game Controller axis event data */ + SDL_ControllerButtonEvent cbutton; /**< Game Controller button event data */ + SDL_ControllerDeviceEvent cdevice; /**< Game Controller device event data */ + SDL_AudioDeviceEvent adevice; /**< Audio device event data */ + SDL_QuitEvent quit; /**< Quit request event data */ + SDL_UserEvent user; /**< Custom event data */ + SDL_SysWMEvent syswm; /**< System dependent window event data */ + SDL_TouchFingerEvent tfinger; /**< Touch finger event data */ + SDL_MultiGestureEvent mgesture; /**< Gesture event data */ + SDL_DollarGestureEvent dgesture; /**< Gesture event data */ + SDL_DropEvent drop; /**< Drag and drop event data */ + + /* This is necessary for ABI compatibility between Visual C++ and GCC + Visual C++ will respect the push pack pragma and use 52 bytes for + this structure, and GCC will use the alignment of the largest datatype + within the union, which is 8 bytes. + + So... we'll add padding to force the size to be 56 bytes for both. + */ + Uint8 padding[56]; +} SDL_Event; + + +/* Function prototypes */ + +/** + * Pumps the event loop, gathering events from the input devices. + * + * This function updates the event queue and internal input device state. + * + * This should only be run in the thread that sets the video mode. + */ +extern DECLSPEC void SDLCALL SDL_PumpEvents(void); + +/* @{ */ +typedef enum +{ + SDL_ADDEVENT, + SDL_PEEKEVENT, + SDL_GETEVENT +} SDL_eventaction; + +/** + * Checks the event queue for messages and optionally returns them. + * + * If \c action is ::SDL_ADDEVENT, up to \c numevents events will be added to + * the back of the event queue. + * + * If \c action is ::SDL_PEEKEVENT, up to \c numevents events at the front + * of the event queue, within the specified minimum and maximum type, + * will be returned and will not be removed from the queue. + * + * If \c action is ::SDL_GETEVENT, up to \c numevents events at the front + * of the event queue, within the specified minimum and maximum type, + * will be returned and will be removed from the queue. + * + * \return The number of events actually stored, or -1 if there was an error. + * + * This function is thread-safe. + */ +extern DECLSPEC int SDLCALL SDL_PeepEvents(SDL_Event * events, int numevents, + SDL_eventaction action, + Uint32 minType, Uint32 maxType); +/* @} */ + +/** + * Checks to see if certain event types are in the event queue. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasEvent(Uint32 type); +extern DECLSPEC SDL_bool SDLCALL SDL_HasEvents(Uint32 minType, Uint32 maxType); + +/** + * This function clears events from the event queue + * This function only affects currently queued events. If you want to make + * sure that all pending OS events are flushed, you can call SDL_PumpEvents() + * on the main thread immediately before the flush call. + */ +extern DECLSPEC void SDLCALL SDL_FlushEvent(Uint32 type); +extern DECLSPEC void SDLCALL SDL_FlushEvents(Uint32 minType, Uint32 maxType); + +/** + * \brief Polls for currently pending events. + * + * \return 1 if there are any pending events, or 0 if there are none available. + * + * \param event If not NULL, the next event is removed from the queue and + * stored in that area. + */ +extern DECLSPEC int SDLCALL SDL_PollEvent(SDL_Event * event); + +/** + * \brief Waits indefinitely for the next available event. + * + * \return 1, or 0 if there was an error while waiting for events. + * + * \param event If not NULL, the next event is removed from the queue and + * stored in that area. + */ +extern DECLSPEC int SDLCALL SDL_WaitEvent(SDL_Event * event); + +/** + * \brief Waits until the specified timeout (in milliseconds) for the next + * available event. + * + * \return 1, or 0 if there was an error while waiting for events. + * + * \param event If not NULL, the next event is removed from the queue and + * stored in that area. + * \param timeout The timeout (in milliseconds) to wait for next event. + */ +extern DECLSPEC int SDLCALL SDL_WaitEventTimeout(SDL_Event * event, + int timeout); + +/** + * \brief Add an event to the event queue. + * + * \return 1 on success, 0 if the event was filtered, or -1 if the event queue + * was full or there was some other error. + */ +extern DECLSPEC int SDLCALL SDL_PushEvent(SDL_Event * event); + +typedef int (SDLCALL * SDL_EventFilter) (void *userdata, SDL_Event * event); + +/** + * Sets up a filter to process all events before they change internal state and + * are posted to the internal event queue. + * + * The filter is prototyped as: + * \code + * int SDL_EventFilter(void *userdata, SDL_Event * event); + * \endcode + * + * If the filter returns 1, then the event will be added to the internal queue. + * If it returns 0, then the event will be dropped from the queue, but the + * internal state will still be updated. This allows selective filtering of + * dynamically arriving events. + * + * \warning Be very careful of what you do in the event filter function, as + * it may run in a different thread! + * + * There is one caveat when dealing with the ::SDL_QuitEvent event type. The + * event filter is only called when the window manager desires to close the + * application window. If the event filter returns 1, then the window will + * be closed, otherwise the window will remain open if possible. + * + * If the quit event is generated by an interrupt signal, it will bypass the + * internal queue and be delivered to the application at the next event poll. + */ +extern DECLSPEC void SDLCALL SDL_SetEventFilter(SDL_EventFilter filter, + void *userdata); + +/** + * Return the current event filter - can be used to "chain" filters. + * If there is no event filter set, this function returns SDL_FALSE. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GetEventFilter(SDL_EventFilter * filter, + void **userdata); + +/** + * Add a function which is called when an event is added to the queue. + */ +extern DECLSPEC void SDLCALL SDL_AddEventWatch(SDL_EventFilter filter, + void *userdata); + +/** + * Remove an event watch function added with SDL_AddEventWatch() + */ +extern DECLSPEC void SDLCALL SDL_DelEventWatch(SDL_EventFilter filter, + void *userdata); + +/** + * Run the filter function on the current event queue, removing any + * events for which the filter returns 0. + */ +extern DECLSPEC void SDLCALL SDL_FilterEvents(SDL_EventFilter filter, + void *userdata); + +/* @{ */ +#define SDL_QUERY -1 +#define SDL_IGNORE 0 +#define SDL_DISABLE 0 +#define SDL_ENABLE 1 + +/** + * This function allows you to set the state of processing certain events. + * - If \c state is set to ::SDL_IGNORE, that event will be automatically + * dropped from the event queue and will not event be filtered. + * - If \c state is set to ::SDL_ENABLE, that event will be processed + * normally. + * - If \c state is set to ::SDL_QUERY, SDL_EventState() will return the + * current processing state of the specified event. + */ +extern DECLSPEC Uint8 SDLCALL SDL_EventState(Uint32 type, int state); +/* @} */ +#define SDL_GetEventState(type) SDL_EventState(type, SDL_QUERY) + +/** + * This function allocates a set of user-defined events, and returns + * the beginning event number for that set of events. + * + * If there aren't enough user-defined events left, this function + * returns (Uint32)-1 + */ +extern DECLSPEC Uint32 SDLCALL SDL_RegisterEvents(int numevents); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_events_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_filesystem.h b/Template/Game/Source/External/SDL/include/SDL_filesystem.h new file mode 100644 index 0000000..02999ed --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_filesystem.h @@ -0,0 +1,136 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_filesystem.h + * + * \brief Include file for filesystem SDL API functions + */ + +#ifndef _SDL_filesystem_h +#define _SDL_filesystem_h + +#include "SDL_stdinc.h" + +#include "begin_code.h" + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief Get the path where the application resides. + * + * Get the "base path". This is the directory where the application was run + * from, which is probably the installation directory, and may or may not + * be the process's current working directory. + * + * This returns an absolute path in UTF-8 encoding, and is guaranteed to + * end with a path separator ('\\' on Windows, '/' most other places). + * + * The pointer returned by this function is owned by you. Please call + * SDL_free() on the pointer when you are done with it, or it will be a + * memory leak. This is not necessarily a fast call, though, so you should + * call this once near startup and save the string if you need it. + * + * Some platforms can't determine the application's path, and on other + * platforms, this might be meaningless. In such cases, this function will + * return NULL. + * + * \return String of base dir in UTF-8 encoding, or NULL on error. + * + * \sa SDL_GetPrefPath + */ +extern DECLSPEC char *SDLCALL SDL_GetBasePath(void); + +/** + * \brief Get the user-and-app-specific path where files can be written. + * + * Get the "pref dir". This is meant to be where users can write personal + * files (preferences and save games, etc) that are specific to your + * application. This directory is unique per user, per application. + * + * This function will decide the appropriate location in the native filesystem, + * create the directory if necessary, and return a string of the absolute + * path to the directory in UTF-8 encoding. + * + * On Windows, the string might look like: + * "C:\\Users\\bob\\AppData\\Roaming\\My Company\\My Program Name\\" + * + * On Linux, the string might look like: + * "/home/bob/.local/share/My Program Name/" + * + * On Mac OS X, the string might look like: + * "/Users/bob/Library/Application Support/My Program Name/" + * + * (etc.) + * + * You specify the name of your organization (if it's not a real organization, + * your name or an Internet domain you own might do) and the name of your + * application. These should be untranslated proper names. + * + * Both the org and app strings may become part of a directory name, so + * please follow these rules: + * + * - Try to use the same org string (including case-sensitivity) for + * all your applications that use this function. + * - Always use a unique app string for each one, and make sure it never + * changes for an app once you've decided on it. + * - Unicode characters are legal, as long as it's UTF-8 encoded, but... + * - ...only use letters, numbers, and spaces. Avoid punctuation like + * "Game Name 2: Bad Guy's Revenge!" ... "Game Name 2" is sufficient. + * + * This returns an absolute path in UTF-8 encoding, and is guaranteed to + * end with a path separator ('\\' on Windows, '/' most other places). + * + * The pointer returned by this function is owned by you. Please call + * SDL_free() on the pointer when you are done with it, or it will be a + * memory leak. This is not necessarily a fast call, though, so you should + * call this once near startup and save the string if you need it. + * + * You should assume the path returned by this function is the only safe + * place to write files (and that SDL_GetBasePath(), while it might be + * writable, or even the parent of the returned path, aren't where you + * should be writing things). + * + * Some platforms can't determine the pref path, and on other + * platforms, this might be meaningless. In such cases, this function will + * return NULL. + * + * \param org The name of your organization. + * \param app The name of your application. + * \return UTF-8 string of user dir in platform-dependent notation. NULL + * if there's a problem (creating directory failed, etc). + * + * \sa SDL_GetBasePath + */ +extern DECLSPEC char *SDLCALL SDL_GetPrefPath(const char *org, const char *app); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_filesystem_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_gamecontroller.h b/Template/Game/Source/External/SDL/include/SDL_gamecontroller.h new file mode 100644 index 0000000..42087ee --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_gamecontroller.h @@ -0,0 +1,323 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_gamecontroller.h + * + * Include file for SDL game controller event handling + */ + +#ifndef _SDL_gamecontroller_h +#define _SDL_gamecontroller_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_rwops.h" +#include "SDL_joystick.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \file SDL_gamecontroller.h + * + * In order to use these functions, SDL_Init() must have been called + * with the ::SDL_INIT_GAMECONTROLLER flag. This causes SDL to scan the system + * for game controllers, and load appropriate drivers. + * + * If you would like to receive controller updates while the application + * is in the background, you should set the following hint before calling + * SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS + */ + +/* The gamecontroller structure used to identify an SDL game controller */ +struct _SDL_GameController; +typedef struct _SDL_GameController SDL_GameController; + + +typedef enum +{ + SDL_CONTROLLER_BINDTYPE_NONE = 0, + SDL_CONTROLLER_BINDTYPE_BUTTON, + SDL_CONTROLLER_BINDTYPE_AXIS, + SDL_CONTROLLER_BINDTYPE_HAT +} SDL_GameControllerBindType; + +/** + * Get the SDL joystick layer binding for this controller button/axis mapping + */ +typedef struct SDL_GameControllerButtonBind +{ + SDL_GameControllerBindType bindType; + union + { + int button; + int axis; + struct { + int hat; + int hat_mask; + } hat; + } value; + +} SDL_GameControllerButtonBind; + + +/** + * To count the number of game controllers in the system for the following: + * int nJoysticks = SDL_NumJoysticks(); + * int nGameControllers = 0; + * for ( int i = 0; i < nJoysticks; i++ ) { + * if ( SDL_IsGameController(i) ) { + * nGameControllers++; + * } + * } + * + * Using the SDL_HINT_GAMECONTROLLERCONFIG hint or the SDL_GameControllerAddMapping you can add support for controllers SDL is unaware of or cause an existing controller to have a different binding. The format is: + * guid,name,mappings + * + * Where GUID is the string value from SDL_JoystickGetGUIDString(), name is the human readable string for the device and mappings are controller mappings to joystick ones. + * Under Windows there is a reserved GUID of "xinput" that covers any XInput devices. + * The mapping format for joystick is: + * bX - a joystick button, index X + * hX.Y - hat X with value Y + * aX - axis X of the joystick + * Buttons can be used as a controller axis and vice versa. + * + * This string shows an example of a valid mapping for a controller + * "341a3608000000000000504944564944,Afterglow PS3 Controller,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7", + * + */ + +/** + * Load a set of mappings from a seekable SDL data stream (memory or file), filtered by the current SDL_GetPlatform() + * A community sourced database of controllers is available at https://raw.github.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt + * + * If \c freerw is non-zero, the stream will be closed after being read. + * + * \return number of mappings added, -1 on error + */ +extern DECLSPEC int SDLCALL SDL_GameControllerAddMappingsFromRW( SDL_RWops * rw, int freerw ); + +/** + * Load a set of mappings from a file, filtered by the current SDL_GetPlatform() + * + * Convenience macro. + */ +#define SDL_GameControllerAddMappingsFromFile(file) SDL_GameControllerAddMappingsFromRW(SDL_RWFromFile(file, "rb"), 1) + +/** + * Add or update an existing mapping configuration + * + * \return 1 if mapping is added, 0 if updated, -1 on error + */ +extern DECLSPEC int SDLCALL SDL_GameControllerAddMapping( const char* mappingString ); + +/** + * Get a mapping string for a GUID + * + * \return the mapping string. Must be freed with SDL_free. Returns NULL if no mapping is available + */ +extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForGUID( SDL_JoystickGUID guid ); + +/** + * Get a mapping string for an open GameController + * + * \return the mapping string. Must be freed with SDL_free. Returns NULL if no mapping is available + */ +extern DECLSPEC char * SDLCALL SDL_GameControllerMapping( SDL_GameController * gamecontroller ); + +/** + * Is the joystick on this index supported by the game controller interface? + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsGameController(int joystick_index); + + +/** + * Get the implementation dependent name of a game controller. + * This can be called before any controllers are opened. + * If no name can be found, this function returns NULL. + */ +extern DECLSPEC const char *SDLCALL SDL_GameControllerNameForIndex(int joystick_index); + +/** + * Open a game controller for use. + * The index passed as an argument refers to the N'th game controller on the system. + * This index is not the value which will identify this controller in future + * controller events. The joystick's instance id (::SDL_JoystickID) will be + * used there instead. + * + * \return A controller identifier, or NULL if an error occurred. + */ +extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerOpen(int joystick_index); + +/** + * Return the SDL_GameController associated with an instance id. + */ +extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerFromInstanceID(SDL_JoystickID joyid); + +/** + * Return the name for this currently opened controller + */ +extern DECLSPEC const char *SDLCALL SDL_GameControllerName(SDL_GameController *gamecontroller); + +/** + * Returns SDL_TRUE if the controller has been opened and currently connected, + * or SDL_FALSE if it has not. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerGetAttached(SDL_GameController *gamecontroller); + +/** + * Get the underlying joystick object used by a controller + */ +extern DECLSPEC SDL_Joystick *SDLCALL SDL_GameControllerGetJoystick(SDL_GameController *gamecontroller); + +/** + * Enable/disable controller event polling. + * + * If controller events are disabled, you must call SDL_GameControllerUpdate() + * yourself and check the state of the controller when you want controller + * information. + * + * The state can be one of ::SDL_QUERY, ::SDL_ENABLE or ::SDL_IGNORE. + */ +extern DECLSPEC int SDLCALL SDL_GameControllerEventState(int state); + +/** + * Update the current state of the open game controllers. + * + * This is called automatically by the event loop if any game controller + * events are enabled. + */ +extern DECLSPEC void SDLCALL SDL_GameControllerUpdate(void); + + +/** + * The list of axes available from a controller + */ +typedef enum +{ + SDL_CONTROLLER_AXIS_INVALID = -1, + SDL_CONTROLLER_AXIS_LEFTX, + SDL_CONTROLLER_AXIS_LEFTY, + SDL_CONTROLLER_AXIS_RIGHTX, + SDL_CONTROLLER_AXIS_RIGHTY, + SDL_CONTROLLER_AXIS_TRIGGERLEFT, + SDL_CONTROLLER_AXIS_TRIGGERRIGHT, + SDL_CONTROLLER_AXIS_MAX +} SDL_GameControllerAxis; + +/** + * turn this string into a axis mapping + */ +extern DECLSPEC SDL_GameControllerAxis SDLCALL SDL_GameControllerGetAxisFromString(const char *pchString); + +/** + * turn this axis enum into a string mapping + */ +extern DECLSPEC const char* SDLCALL SDL_GameControllerGetStringForAxis(SDL_GameControllerAxis axis); + +/** + * Get the SDL joystick layer binding for this controller button mapping + */ +extern DECLSPEC SDL_GameControllerButtonBind SDLCALL +SDL_GameControllerGetBindForAxis(SDL_GameController *gamecontroller, + SDL_GameControllerAxis axis); + +/** + * Get the current state of an axis control on a game controller. + * + * The state is a value ranging from -32768 to 32767 (except for the triggers, + * which range from 0 to 32767). + * + * The axis indices start at index 0. + */ +extern DECLSPEC Sint16 SDLCALL +SDL_GameControllerGetAxis(SDL_GameController *gamecontroller, + SDL_GameControllerAxis axis); + +/** + * The list of buttons available from a controller + */ +typedef enum +{ + SDL_CONTROLLER_BUTTON_INVALID = -1, + SDL_CONTROLLER_BUTTON_A, + SDL_CONTROLLER_BUTTON_B, + SDL_CONTROLLER_BUTTON_X, + SDL_CONTROLLER_BUTTON_Y, + SDL_CONTROLLER_BUTTON_BACK, + SDL_CONTROLLER_BUTTON_GUIDE, + SDL_CONTROLLER_BUTTON_START, + SDL_CONTROLLER_BUTTON_LEFTSTICK, + SDL_CONTROLLER_BUTTON_RIGHTSTICK, + SDL_CONTROLLER_BUTTON_LEFTSHOULDER, + SDL_CONTROLLER_BUTTON_RIGHTSHOULDER, + SDL_CONTROLLER_BUTTON_DPAD_UP, + SDL_CONTROLLER_BUTTON_DPAD_DOWN, + SDL_CONTROLLER_BUTTON_DPAD_LEFT, + SDL_CONTROLLER_BUTTON_DPAD_RIGHT, + SDL_CONTROLLER_BUTTON_MAX +} SDL_GameControllerButton; + +/** + * turn this string into a button mapping + */ +extern DECLSPEC SDL_GameControllerButton SDLCALL SDL_GameControllerGetButtonFromString(const char *pchString); + +/** + * turn this button enum into a string mapping + */ +extern DECLSPEC const char* SDLCALL SDL_GameControllerGetStringForButton(SDL_GameControllerButton button); + +/** + * Get the SDL joystick layer binding for this controller button mapping + */ +extern DECLSPEC SDL_GameControllerButtonBind SDLCALL +SDL_GameControllerGetBindForButton(SDL_GameController *gamecontroller, + SDL_GameControllerButton button); + + +/** + * Get the current state of a button on a game controller. + * + * The button indices start at index 0. + */ +extern DECLSPEC Uint8 SDLCALL SDL_GameControllerGetButton(SDL_GameController *gamecontroller, + SDL_GameControllerButton button); + +/** + * Close a controller previously opened with SDL_GameControllerOpen(). + */ +extern DECLSPEC void SDLCALL SDL_GameControllerClose(SDL_GameController *gamecontroller); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_gamecontroller_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_gesture.h b/Template/Game/Source/External/SDL/include/SDL_gesture.h new file mode 100644 index 0000000..3c29ca7 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_gesture.h @@ -0,0 +1,87 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_gesture.h + * + * Include file for SDL gesture event handling. + */ + +#ifndef _SDL_gesture_h +#define _SDL_gesture_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_video.h" + +#include "SDL_touch.h" + + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +typedef Sint64 SDL_GestureID; + +/* Function prototypes */ + +/** + * \brief Begin Recording a gesture on the specified touch, or all touches (-1) + * + * + */ +extern DECLSPEC int SDLCALL SDL_RecordGesture(SDL_TouchID touchId); + + +/** + * \brief Save all currently loaded Dollar Gesture templates + * + * + */ +extern DECLSPEC int SDLCALL SDL_SaveAllDollarTemplates(SDL_RWops *dst); + +/** + * \brief Save a currently loaded Dollar Gesture template + * + * + */ +extern DECLSPEC int SDLCALL SDL_SaveDollarTemplate(SDL_GestureID gestureId,SDL_RWops *dst); + + +/** + * \brief Load Dollar Gesture templates from a file + * + * + */ +extern DECLSPEC int SDLCALL SDL_LoadDollarTemplates(SDL_TouchID touchId, SDL_RWops *src); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_gesture_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_haptic.h b/Template/Game/Source/External/SDL/include/SDL_haptic.h new file mode 100644 index 0000000..b36d78b --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_haptic.h @@ -0,0 +1,1223 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_haptic.h + * + * \brief The SDL Haptic subsystem allows you to control haptic (force feedback) + * devices. + * + * The basic usage is as follows: + * - Initialize the Subsystem (::SDL_INIT_HAPTIC). + * - Open a Haptic Device. + * - SDL_HapticOpen() to open from index. + * - SDL_HapticOpenFromJoystick() to open from an existing joystick. + * - Create an effect (::SDL_HapticEffect). + * - Upload the effect with SDL_HapticNewEffect(). + * - Run the effect with SDL_HapticRunEffect(). + * - (optional) Free the effect with SDL_HapticDestroyEffect(). + * - Close the haptic device with SDL_HapticClose(). + * + * \par Simple rumble example: + * \code + * SDL_Haptic *haptic; + * + * // Open the device + * haptic = SDL_HapticOpen( 0 ); + * if (haptic == NULL) + * return -1; + * + * // Initialize simple rumble + * if (SDL_HapticRumbleInit( haptic ) != 0) + * return -1; + * + * // Play effect at 50% strength for 2 seconds + * if (SDL_HapticRumblePlay( haptic, 0.5, 2000 ) != 0) + * return -1; + * SDL_Delay( 2000 ); + * + * // Clean up + * SDL_HapticClose( haptic ); + * \endcode + * + * \par Complete example: + * \code + * int test_haptic( SDL_Joystick * joystick ) { + * SDL_Haptic *haptic; + * SDL_HapticEffect effect; + * int effect_id; + * + * // Open the device + * haptic = SDL_HapticOpenFromJoystick( joystick ); + * if (haptic == NULL) return -1; // Most likely joystick isn't haptic + * + * // See if it can do sine waves + * if ((SDL_HapticQuery(haptic) & SDL_HAPTIC_SINE)==0) { + * SDL_HapticClose(haptic); // No sine effect + * return -1; + * } + * + * // Create the effect + * memset( &effect, 0, sizeof(SDL_HapticEffect) ); // 0 is safe default + * effect.type = SDL_HAPTIC_SINE; + * effect.periodic.direction.type = SDL_HAPTIC_POLAR; // Polar coordinates + * effect.periodic.direction.dir[0] = 18000; // Force comes from south + * effect.periodic.period = 1000; // 1000 ms + * effect.periodic.magnitude = 20000; // 20000/32767 strength + * effect.periodic.length = 5000; // 5 seconds long + * effect.periodic.attack_length = 1000; // Takes 1 second to get max strength + * effect.periodic.fade_length = 1000; // Takes 1 second to fade away + * + * // Upload the effect + * effect_id = SDL_HapticNewEffect( haptic, &effect ); + * + * // Test the effect + * SDL_HapticRunEffect( haptic, effect_id, 1 ); + * SDL_Delay( 5000); // Wait for the effect to finish + * + * // We destroy the effect, although closing the device also does this + * SDL_HapticDestroyEffect( haptic, effect_id ); + * + * // Close the device + * SDL_HapticClose(haptic); + * + * return 0; // Success + * } + * \endcode + */ + +#ifndef _SDL_haptic_h +#define _SDL_haptic_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_joystick.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * \typedef SDL_Haptic + * + * \brief The haptic structure used to identify an SDL haptic. + * + * \sa SDL_HapticOpen + * \sa SDL_HapticOpenFromJoystick + * \sa SDL_HapticClose + */ +struct _SDL_Haptic; +typedef struct _SDL_Haptic SDL_Haptic; + + +/** + * \name Haptic features + * + * Different haptic features a device can have. + */ +/* @{ */ + +/** + * \name Haptic effects + */ +/* @{ */ + +/** + * \brief Constant effect supported. + * + * Constant haptic effect. + * + * \sa SDL_HapticCondition + */ +#define SDL_HAPTIC_CONSTANT (1<<0) + +/** + * \brief Sine wave effect supported. + * + * Periodic haptic effect that simulates sine waves. + * + * \sa SDL_HapticPeriodic + */ +#define SDL_HAPTIC_SINE (1<<1) + +/** + * \brief Left/Right effect supported. + * + * Haptic effect for direct control over high/low frequency motors. + * + * \sa SDL_HapticLeftRight + * \warning this value was SDL_HAPTIC_SQUARE right before 2.0.0 shipped. Sorry, + * we ran out of bits, and this is important for XInput devices. + */ +#define SDL_HAPTIC_LEFTRIGHT (1<<2) + +/* !!! FIXME: put this back when we have more bits in 2.1 */ +/* #define SDL_HAPTIC_SQUARE (1<<2) */ + +/** + * \brief Triangle wave effect supported. + * + * Periodic haptic effect that simulates triangular waves. + * + * \sa SDL_HapticPeriodic + */ +#define SDL_HAPTIC_TRIANGLE (1<<3) + +/** + * \brief Sawtoothup wave effect supported. + * + * Periodic haptic effect that simulates saw tooth up waves. + * + * \sa SDL_HapticPeriodic + */ +#define SDL_HAPTIC_SAWTOOTHUP (1<<4) + +/** + * \brief Sawtoothdown wave effect supported. + * + * Periodic haptic effect that simulates saw tooth down waves. + * + * \sa SDL_HapticPeriodic + */ +#define SDL_HAPTIC_SAWTOOTHDOWN (1<<5) + +/** + * \brief Ramp effect supported. + * + * Ramp haptic effect. + * + * \sa SDL_HapticRamp + */ +#define SDL_HAPTIC_RAMP (1<<6) + +/** + * \brief Spring effect supported - uses axes position. + * + * Condition haptic effect that simulates a spring. Effect is based on the + * axes position. + * + * \sa SDL_HapticCondition + */ +#define SDL_HAPTIC_SPRING (1<<7) + +/** + * \brief Damper effect supported - uses axes velocity. + * + * Condition haptic effect that simulates dampening. Effect is based on the + * axes velocity. + * + * \sa SDL_HapticCondition + */ +#define SDL_HAPTIC_DAMPER (1<<8) + +/** + * \brief Inertia effect supported - uses axes acceleration. + * + * Condition haptic effect that simulates inertia. Effect is based on the axes + * acceleration. + * + * \sa SDL_HapticCondition + */ +#define SDL_HAPTIC_INERTIA (1<<9) + +/** + * \brief Friction effect supported - uses axes movement. + * + * Condition haptic effect that simulates friction. Effect is based on the + * axes movement. + * + * \sa SDL_HapticCondition + */ +#define SDL_HAPTIC_FRICTION (1<<10) + +/** + * \brief Custom effect is supported. + * + * User defined custom haptic effect. + */ +#define SDL_HAPTIC_CUSTOM (1<<11) + +/* @} *//* Haptic effects */ + +/* These last few are features the device has, not effects */ + +/** + * \brief Device can set global gain. + * + * Device supports setting the global gain. + * + * \sa SDL_HapticSetGain + */ +#define SDL_HAPTIC_GAIN (1<<12) + +/** + * \brief Device can set autocenter. + * + * Device supports setting autocenter. + * + * \sa SDL_HapticSetAutocenter + */ +#define SDL_HAPTIC_AUTOCENTER (1<<13) + +/** + * \brief Device can be queried for effect status. + * + * Device can be queried for effect status. + * + * \sa SDL_HapticGetEffectStatus + */ +#define SDL_HAPTIC_STATUS (1<<14) + +/** + * \brief Device can be paused. + * + * \sa SDL_HapticPause + * \sa SDL_HapticUnpause + */ +#define SDL_HAPTIC_PAUSE (1<<15) + + +/** + * \name Direction encodings + */ +/* @{ */ + +/** + * \brief Uses polar coordinates for the direction. + * + * \sa SDL_HapticDirection + */ +#define SDL_HAPTIC_POLAR 0 + +/** + * \brief Uses cartesian coordinates for the direction. + * + * \sa SDL_HapticDirection + */ +#define SDL_HAPTIC_CARTESIAN 1 + +/** + * \brief Uses spherical coordinates for the direction. + * + * \sa SDL_HapticDirection + */ +#define SDL_HAPTIC_SPHERICAL 2 + +/* @} *//* Direction encodings */ + +/* @} *//* Haptic features */ + +/* + * Misc defines. + */ + +/** + * \brief Used to play a device an infinite number of times. + * + * \sa SDL_HapticRunEffect + */ +#define SDL_HAPTIC_INFINITY 4294967295U + + +/** + * \brief Structure that represents a haptic direction. + * + * This is the direction where the force comes from, + * instead of the direction in which the force is exerted. + * + * Directions can be specified by: + * - ::SDL_HAPTIC_POLAR : Specified by polar coordinates. + * - ::SDL_HAPTIC_CARTESIAN : Specified by cartesian coordinates. + * - ::SDL_HAPTIC_SPHERICAL : Specified by spherical coordinates. + * + * Cardinal directions of the haptic device are relative to the positioning + * of the device. North is considered to be away from the user. + * + * The following diagram represents the cardinal directions: + * \verbatim + .--. + |__| .-------. + |=.| |.-----.| + |--| || || + | | |'-----'| + |__|~')_____(' + [ COMPUTER ] + + + North (0,-1) + ^ + | + | + (-1,0) West <----[ HAPTIC ]----> East (1,0) + | + | + v + South (0,1) + + + [ USER ] + \|||/ + (o o) + ---ooO-(_)-Ooo--- + \endverbatim + * + * If type is ::SDL_HAPTIC_POLAR, direction is encoded by hundredths of a + * degree starting north and turning clockwise. ::SDL_HAPTIC_POLAR only uses + * the first \c dir parameter. The cardinal directions would be: + * - North: 0 (0 degrees) + * - East: 9000 (90 degrees) + * - South: 18000 (180 degrees) + * - West: 27000 (270 degrees) + * + * If type is ::SDL_HAPTIC_CARTESIAN, direction is encoded by three positions + * (X axis, Y axis and Z axis (with 3 axes)). ::SDL_HAPTIC_CARTESIAN uses + * the first three \c dir parameters. The cardinal directions would be: + * - North: 0,-1, 0 + * - East: 1, 0, 0 + * - South: 0, 1, 0 + * - West: -1, 0, 0 + * + * The Z axis represents the height of the effect if supported, otherwise + * it's unused. In cartesian encoding (1, 2) would be the same as (2, 4), you + * can use any multiple you want, only the direction matters. + * + * If type is ::SDL_HAPTIC_SPHERICAL, direction is encoded by two rotations. + * The first two \c dir parameters are used. The \c dir parameters are as + * follows (all values are in hundredths of degrees): + * - Degrees from (1, 0) rotated towards (0, 1). + * - Degrees towards (0, 0, 1) (device needs at least 3 axes). + * + * + * Example of force coming from the south with all encodings (force coming + * from the south means the user will have to pull the stick to counteract): + * \code + * SDL_HapticDirection direction; + * + * // Cartesian directions + * direction.type = SDL_HAPTIC_CARTESIAN; // Using cartesian direction encoding. + * direction.dir[0] = 0; // X position + * direction.dir[1] = 1; // Y position + * // Assuming the device has 2 axes, we don't need to specify third parameter. + * + * // Polar directions + * direction.type = SDL_HAPTIC_POLAR; // We'll be using polar direction encoding. + * direction.dir[0] = 18000; // Polar only uses first parameter + * + * // Spherical coordinates + * direction.type = SDL_HAPTIC_SPHERICAL; // Spherical encoding + * direction.dir[0] = 9000; // Since we only have two axes we don't need more parameters. + * \endcode + * + * \sa SDL_HAPTIC_POLAR + * \sa SDL_HAPTIC_CARTESIAN + * \sa SDL_HAPTIC_SPHERICAL + * \sa SDL_HapticEffect + * \sa SDL_HapticNumAxes + */ +typedef struct SDL_HapticDirection +{ + Uint8 type; /**< The type of encoding. */ + Sint32 dir[3]; /**< The encoded direction. */ +} SDL_HapticDirection; + + +/** + * \brief A structure containing a template for a Constant effect. + * + * The struct is exclusive to the ::SDL_HAPTIC_CONSTANT effect. + * + * A constant effect applies a constant force in the specified direction + * to the joystick. + * + * \sa SDL_HAPTIC_CONSTANT + * \sa SDL_HapticEffect + */ +typedef struct SDL_HapticConstant +{ + /* Header */ + Uint16 type; /**< ::SDL_HAPTIC_CONSTANT */ + SDL_HapticDirection direction; /**< Direction of the effect. */ + + /* Replay */ + Uint32 length; /**< Duration of the effect. */ + Uint16 delay; /**< Delay before starting the effect. */ + + /* Trigger */ + Uint16 button; /**< Button that triggers the effect. */ + Uint16 interval; /**< How soon it can be triggered again after button. */ + + /* Constant */ + Sint16 level; /**< Strength of the constant effect. */ + + /* Envelope */ + Uint16 attack_length; /**< Duration of the attack. */ + Uint16 attack_level; /**< Level at the start of the attack. */ + Uint16 fade_length; /**< Duration of the fade. */ + Uint16 fade_level; /**< Level at the end of the fade. */ +} SDL_HapticConstant; + +/** + * \brief A structure containing a template for a Periodic effect. + * + * The struct handles the following effects: + * - ::SDL_HAPTIC_SINE + * - ::SDL_HAPTIC_LEFTRIGHT + * - ::SDL_HAPTIC_TRIANGLE + * - ::SDL_HAPTIC_SAWTOOTHUP + * - ::SDL_HAPTIC_SAWTOOTHDOWN + * + * A periodic effect consists in a wave-shaped effect that repeats itself + * over time. The type determines the shape of the wave and the parameters + * determine the dimensions of the wave. + * + * Phase is given by hundredth of a degree meaning that giving the phase a value + * of 9000 will displace it 25% of its period. Here are sample values: + * - 0: No phase displacement. + * - 9000: Displaced 25% of its period. + * - 18000: Displaced 50% of its period. + * - 27000: Displaced 75% of its period. + * - 36000: Displaced 100% of its period, same as 0, but 0 is preferred. + * + * Examples: + * \verbatim + SDL_HAPTIC_SINE + __ __ __ __ + / \ / \ / \ / + / \__/ \__/ \__/ + + SDL_HAPTIC_SQUARE + __ __ __ __ __ + | | | | | | | | | | + | |__| |__| |__| |__| | + + SDL_HAPTIC_TRIANGLE + /\ /\ /\ /\ /\ + / \ / \ / \ / \ / + / \/ \/ \/ \/ + + SDL_HAPTIC_SAWTOOTHUP + /| /| /| /| /| /| /| + / | / | / | / | / | / | / | + / |/ |/ |/ |/ |/ |/ | + + SDL_HAPTIC_SAWTOOTHDOWN + \ |\ |\ |\ |\ |\ |\ | + \ | \ | \ | \ | \ | \ | \ | + \| \| \| \| \| \| \| + \endverbatim + * + * \sa SDL_HAPTIC_SINE + * \sa SDL_HAPTIC_LEFTRIGHT + * \sa SDL_HAPTIC_TRIANGLE + * \sa SDL_HAPTIC_SAWTOOTHUP + * \sa SDL_HAPTIC_SAWTOOTHDOWN + * \sa SDL_HapticEffect + */ +typedef struct SDL_HapticPeriodic +{ + /* Header */ + Uint16 type; /**< ::SDL_HAPTIC_SINE, ::SDL_HAPTIC_LEFTRIGHT, + ::SDL_HAPTIC_TRIANGLE, ::SDL_HAPTIC_SAWTOOTHUP or + ::SDL_HAPTIC_SAWTOOTHDOWN */ + SDL_HapticDirection direction; /**< Direction of the effect. */ + + /* Replay */ + Uint32 length; /**< Duration of the effect. */ + Uint16 delay; /**< Delay before starting the effect. */ + + /* Trigger */ + Uint16 button; /**< Button that triggers the effect. */ + Uint16 interval; /**< How soon it can be triggered again after button. */ + + /* Periodic */ + Uint16 period; /**< Period of the wave. */ + Sint16 magnitude; /**< Peak value; if negative, equivalent to 180 degrees extra phase shift. */ + Sint16 offset; /**< Mean value of the wave. */ + Uint16 phase; /**< Positive phase shift given by hundredth of a degree. */ + + /* Envelope */ + Uint16 attack_length; /**< Duration of the attack. */ + Uint16 attack_level; /**< Level at the start of the attack. */ + Uint16 fade_length; /**< Duration of the fade. */ + Uint16 fade_level; /**< Level at the end of the fade. */ +} SDL_HapticPeriodic; + +/** + * \brief A structure containing a template for a Condition effect. + * + * The struct handles the following effects: + * - ::SDL_HAPTIC_SPRING: Effect based on axes position. + * - ::SDL_HAPTIC_DAMPER: Effect based on axes velocity. + * - ::SDL_HAPTIC_INERTIA: Effect based on axes acceleration. + * - ::SDL_HAPTIC_FRICTION: Effect based on axes movement. + * + * Direction is handled by condition internals instead of a direction member. + * The condition effect specific members have three parameters. The first + * refers to the X axis, the second refers to the Y axis and the third + * refers to the Z axis. The right terms refer to the positive side of the + * axis and the left terms refer to the negative side of the axis. Please + * refer to the ::SDL_HapticDirection diagram for which side is positive and + * which is negative. + * + * \sa SDL_HapticDirection + * \sa SDL_HAPTIC_SPRING + * \sa SDL_HAPTIC_DAMPER + * \sa SDL_HAPTIC_INERTIA + * \sa SDL_HAPTIC_FRICTION + * \sa SDL_HapticEffect + */ +typedef struct SDL_HapticCondition +{ + /* Header */ + Uint16 type; /**< ::SDL_HAPTIC_SPRING, ::SDL_HAPTIC_DAMPER, + ::SDL_HAPTIC_INERTIA or ::SDL_HAPTIC_FRICTION */ + SDL_HapticDirection direction; /**< Direction of the effect - Not used ATM. */ + + /* Replay */ + Uint32 length; /**< Duration of the effect. */ + Uint16 delay; /**< Delay before starting the effect. */ + + /* Trigger */ + Uint16 button; /**< Button that triggers the effect. */ + Uint16 interval; /**< How soon it can be triggered again after button. */ + + /* Condition */ + Uint16 right_sat[3]; /**< Level when joystick is to the positive side; max 0xFFFF. */ + Uint16 left_sat[3]; /**< Level when joystick is to the negative side; max 0xFFFF. */ + Sint16 right_coeff[3]; /**< How fast to increase the force towards the positive side. */ + Sint16 left_coeff[3]; /**< How fast to increase the force towards the negative side. */ + Uint16 deadband[3]; /**< Size of the dead zone; max 0xFFFF: whole axis-range when 0-centered. */ + Sint16 center[3]; /**< Position of the dead zone. */ +} SDL_HapticCondition; + +/** + * \brief A structure containing a template for a Ramp effect. + * + * This struct is exclusively for the ::SDL_HAPTIC_RAMP effect. + * + * The ramp effect starts at start strength and ends at end strength. + * It augments in linear fashion. If you use attack and fade with a ramp + * the effects get added to the ramp effect making the effect become + * quadratic instead of linear. + * + * \sa SDL_HAPTIC_RAMP + * \sa SDL_HapticEffect + */ +typedef struct SDL_HapticRamp +{ + /* Header */ + Uint16 type; /**< ::SDL_HAPTIC_RAMP */ + SDL_HapticDirection direction; /**< Direction of the effect. */ + + /* Replay */ + Uint32 length; /**< Duration of the effect. */ + Uint16 delay; /**< Delay before starting the effect. */ + + /* Trigger */ + Uint16 button; /**< Button that triggers the effect. */ + Uint16 interval; /**< How soon it can be triggered again after button. */ + + /* Ramp */ + Sint16 start; /**< Beginning strength level. */ + Sint16 end; /**< Ending strength level. */ + + /* Envelope */ + Uint16 attack_length; /**< Duration of the attack. */ + Uint16 attack_level; /**< Level at the start of the attack. */ + Uint16 fade_length; /**< Duration of the fade. */ + Uint16 fade_level; /**< Level at the end of the fade. */ +} SDL_HapticRamp; + +/** + * \brief A structure containing a template for a Left/Right effect. + * + * This struct is exclusively for the ::SDL_HAPTIC_LEFTRIGHT effect. + * + * The Left/Right effect is used to explicitly control the large and small + * motors, commonly found in modern game controllers. One motor is high + * frequency, the other is low frequency. + * + * \sa SDL_HAPTIC_LEFTRIGHT + * \sa SDL_HapticEffect + */ +typedef struct SDL_HapticLeftRight +{ + /* Header */ + Uint16 type; /**< ::SDL_HAPTIC_LEFTRIGHT */ + + /* Replay */ + Uint32 length; /**< Duration of the effect. */ + + /* Rumble */ + Uint16 large_magnitude; /**< Control of the large controller motor. */ + Uint16 small_magnitude; /**< Control of the small controller motor. */ +} SDL_HapticLeftRight; + +/** + * \brief A structure containing a template for the ::SDL_HAPTIC_CUSTOM effect. + * + * A custom force feedback effect is much like a periodic effect, where the + * application can define its exact shape. You will have to allocate the + * data yourself. Data should consist of channels * samples Uint16 samples. + * + * If channels is one, the effect is rotated using the defined direction. + * Otherwise it uses the samples in data for the different axes. + * + * \sa SDL_HAPTIC_CUSTOM + * \sa SDL_HapticEffect + */ +typedef struct SDL_HapticCustom +{ + /* Header */ + Uint16 type; /**< ::SDL_HAPTIC_CUSTOM */ + SDL_HapticDirection direction; /**< Direction of the effect. */ + + /* Replay */ + Uint32 length; /**< Duration of the effect. */ + Uint16 delay; /**< Delay before starting the effect. */ + + /* Trigger */ + Uint16 button; /**< Button that triggers the effect. */ + Uint16 interval; /**< How soon it can be triggered again after button. */ + + /* Custom */ + Uint8 channels; /**< Axes to use, minimum of one. */ + Uint16 period; /**< Sample periods. */ + Uint16 samples; /**< Amount of samples. */ + Uint16 *data; /**< Should contain channels*samples items. */ + + /* Envelope */ + Uint16 attack_length; /**< Duration of the attack. */ + Uint16 attack_level; /**< Level at the start of the attack. */ + Uint16 fade_length; /**< Duration of the fade. */ + Uint16 fade_level; /**< Level at the end of the fade. */ +} SDL_HapticCustom; + +/** + * \brief The generic template for any haptic effect. + * + * All values max at 32767 (0x7FFF). Signed values also can be negative. + * Time values unless specified otherwise are in milliseconds. + * + * You can also pass ::SDL_HAPTIC_INFINITY to length instead of a 0-32767 + * value. Neither delay, interval, attack_length nor fade_length support + * ::SDL_HAPTIC_INFINITY. Fade will also not be used since effect never ends. + * + * Additionally, the ::SDL_HAPTIC_RAMP effect does not support a duration of + * ::SDL_HAPTIC_INFINITY. + * + * Button triggers may not be supported on all devices, it is advised to not + * use them if possible. Buttons start at index 1 instead of index 0 like + * the joystick. + * + * If both attack_length and fade_level are 0, the envelope is not used, + * otherwise both values are used. + * + * Common parts: + * \code + * // Replay - All effects have this + * Uint32 length; // Duration of effect (ms). + * Uint16 delay; // Delay before starting effect. + * + * // Trigger - All effects have this + * Uint16 button; // Button that triggers effect. + * Uint16 interval; // How soon before effect can be triggered again. + * + * // Envelope - All effects except condition effects have this + * Uint16 attack_length; // Duration of the attack (ms). + * Uint16 attack_level; // Level at the start of the attack. + * Uint16 fade_length; // Duration of the fade out (ms). + * Uint16 fade_level; // Level at the end of the fade. + * \endcode + * + * + * Here we have an example of a constant effect evolution in time: + * \verbatim + Strength + ^ + | + | effect level --> _________________ + | / \ + | / \ + | / \ + | / \ + | attack_level --> | \ + | | | <--- fade_level + | + +--------------------------------------------------> Time + [--] [---] + attack_length fade_length + + [------------------][-----------------------] + delay length + \endverbatim + * + * Note either the attack_level or the fade_level may be above the actual + * effect level. + * + * \sa SDL_HapticConstant + * \sa SDL_HapticPeriodic + * \sa SDL_HapticCondition + * \sa SDL_HapticRamp + * \sa SDL_HapticLeftRight + * \sa SDL_HapticCustom + */ +typedef union SDL_HapticEffect +{ + /* Common for all force feedback effects */ + Uint16 type; /**< Effect type. */ + SDL_HapticConstant constant; /**< Constant effect. */ + SDL_HapticPeriodic periodic; /**< Periodic effect. */ + SDL_HapticCondition condition; /**< Condition effect. */ + SDL_HapticRamp ramp; /**< Ramp effect. */ + SDL_HapticLeftRight leftright; /**< Left/Right effect. */ + SDL_HapticCustom custom; /**< Custom effect. */ +} SDL_HapticEffect; + + +/* Function prototypes */ +/** + * \brief Count the number of haptic devices attached to the system. + * + * \return Number of haptic devices detected on the system. + */ +extern DECLSPEC int SDLCALL SDL_NumHaptics(void); + +/** + * \brief Get the implementation dependent name of a Haptic device. + * + * This can be called before any joysticks are opened. + * If no name can be found, this function returns NULL. + * + * \param device_index Index of the device to get its name. + * \return Name of the device or NULL on error. + * + * \sa SDL_NumHaptics + */ +extern DECLSPEC const char *SDLCALL SDL_HapticName(int device_index); + +/** + * \brief Opens a Haptic device for usage. + * + * The index passed as an argument refers to the N'th Haptic device on this + * system. + * + * When opening a haptic device, its gain will be set to maximum and + * autocenter will be disabled. To modify these values use + * SDL_HapticSetGain() and SDL_HapticSetAutocenter(). + * + * \param device_index Index of the device to open. + * \return Device identifier or NULL on error. + * + * \sa SDL_HapticIndex + * \sa SDL_HapticOpenFromMouse + * \sa SDL_HapticOpenFromJoystick + * \sa SDL_HapticClose + * \sa SDL_HapticSetGain + * \sa SDL_HapticSetAutocenter + * \sa SDL_HapticPause + * \sa SDL_HapticStopAll + */ +extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpen(int device_index); + +/** + * \brief Checks if the haptic device at index has been opened. + * + * \param device_index Index to check to see if it has been opened. + * \return 1 if it has been opened or 0 if it hasn't. + * + * \sa SDL_HapticOpen + * \sa SDL_HapticIndex + */ +extern DECLSPEC int SDLCALL SDL_HapticOpened(int device_index); + +/** + * \brief Gets the index of a haptic device. + * + * \param haptic Haptic device to get the index of. + * \return The index of the haptic device or -1 on error. + * + * \sa SDL_HapticOpen + * \sa SDL_HapticOpened + */ +extern DECLSPEC int SDLCALL SDL_HapticIndex(SDL_Haptic * haptic); + +/** + * \brief Gets whether or not the current mouse has haptic capabilities. + * + * \return SDL_TRUE if the mouse is haptic, SDL_FALSE if it isn't. + * + * \sa SDL_HapticOpenFromMouse + */ +extern DECLSPEC int SDLCALL SDL_MouseIsHaptic(void); + +/** + * \brief Tries to open a haptic device from the current mouse. + * + * \return The haptic device identifier or NULL on error. + * + * \sa SDL_MouseIsHaptic + * \sa SDL_HapticOpen + */ +extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromMouse(void); + +/** + * \brief Checks to see if a joystick has haptic features. + * + * \param joystick Joystick to test for haptic capabilities. + * \return 1 if the joystick is haptic, 0 if it isn't + * or -1 if an error ocurred. + * + * \sa SDL_HapticOpenFromJoystick + */ +extern DECLSPEC int SDLCALL SDL_JoystickIsHaptic(SDL_Joystick * joystick); + +/** + * \brief Opens a Haptic device for usage from a Joystick device. + * + * You must still close the haptic device separately. It will not be closed + * with the joystick. + * + * When opening from a joystick you should first close the haptic device before + * closing the joystick device. If not, on some implementations the haptic + * device will also get unallocated and you'll be unable to use force feedback + * on that device. + * + * \param joystick Joystick to create a haptic device from. + * \return A valid haptic device identifier on success or NULL on error. + * + * \sa SDL_HapticOpen + * \sa SDL_HapticClose + */ +extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromJoystick(SDL_Joystick * + joystick); + +/** + * \brief Closes a Haptic device previously opened with SDL_HapticOpen(). + * + * \param haptic Haptic device to close. + */ +extern DECLSPEC void SDLCALL SDL_HapticClose(SDL_Haptic * haptic); + +/** + * \brief Returns the number of effects a haptic device can store. + * + * On some platforms this isn't fully supported, and therefore is an + * approximation. Always check to see if your created effect was actually + * created and do not rely solely on SDL_HapticNumEffects(). + * + * \param haptic The haptic device to query effect max. + * \return The number of effects the haptic device can store or + * -1 on error. + * + * \sa SDL_HapticNumEffectsPlaying + * \sa SDL_HapticQuery + */ +extern DECLSPEC int SDLCALL SDL_HapticNumEffects(SDL_Haptic * haptic); + +/** + * \brief Returns the number of effects a haptic device can play at the same + * time. + * + * This is not supported on all platforms, but will always return a value. + * Added here for the sake of completeness. + * + * \param haptic The haptic device to query maximum playing effects. + * \return The number of effects the haptic device can play at the same time + * or -1 on error. + * + * \sa SDL_HapticNumEffects + * \sa SDL_HapticQuery + */ +extern DECLSPEC int SDLCALL SDL_HapticNumEffectsPlaying(SDL_Haptic * haptic); + +/** + * \brief Gets the haptic device's supported features in bitwise manner. + * + * Example: + * \code + * if (SDL_HapticQuery(haptic) & SDL_HAPTIC_CONSTANT) { + * printf("We have constant haptic effect!"); + * } + * \endcode + * + * \param haptic The haptic device to query. + * \return Haptic features in bitwise manner (OR'd). + * + * \sa SDL_HapticNumEffects + * \sa SDL_HapticEffectSupported + */ +extern DECLSPEC unsigned int SDLCALL SDL_HapticQuery(SDL_Haptic * haptic); + + +/** + * \brief Gets the number of haptic axes the device has. + * + * \sa SDL_HapticDirection + */ +extern DECLSPEC int SDLCALL SDL_HapticNumAxes(SDL_Haptic * haptic); + +/** + * \brief Checks to see if effect is supported by haptic. + * + * \param haptic Haptic device to check on. + * \param effect Effect to check to see if it is supported. + * \return SDL_TRUE if effect is supported, SDL_FALSE if it isn't or -1 on error. + * + * \sa SDL_HapticQuery + * \sa SDL_HapticNewEffect + */ +extern DECLSPEC int SDLCALL SDL_HapticEffectSupported(SDL_Haptic * haptic, + SDL_HapticEffect * + effect); + +/** + * \brief Creates a new haptic effect on the device. + * + * \param haptic Haptic device to create the effect on. + * \param effect Properties of the effect to create. + * \return The id of the effect on success or -1 on error. + * + * \sa SDL_HapticUpdateEffect + * \sa SDL_HapticRunEffect + * \sa SDL_HapticDestroyEffect + */ +extern DECLSPEC int SDLCALL SDL_HapticNewEffect(SDL_Haptic * haptic, + SDL_HapticEffect * effect); + +/** + * \brief Updates the properties of an effect. + * + * Can be used dynamically, although behaviour when dynamically changing + * direction may be strange. Specifically the effect may reupload itself + * and start playing from the start. You cannot change the type either when + * running SDL_HapticUpdateEffect(). + * + * \param haptic Haptic device that has the effect. + * \param effect Effect to update. + * \param data New effect properties to use. + * \return 0 on success or -1 on error. + * + * \sa SDL_HapticNewEffect + * \sa SDL_HapticRunEffect + * \sa SDL_HapticDestroyEffect + */ +extern DECLSPEC int SDLCALL SDL_HapticUpdateEffect(SDL_Haptic * haptic, + int effect, + SDL_HapticEffect * data); + +/** + * \brief Runs the haptic effect on its associated haptic device. + * + * If iterations are ::SDL_HAPTIC_INFINITY, it'll run the effect over and over + * repeating the envelope (attack and fade) every time. If you only want the + * effect to last forever, set ::SDL_HAPTIC_INFINITY in the effect's length + * parameter. + * + * \param haptic Haptic device to run the effect on. + * \param effect Identifier of the haptic effect to run. + * \param iterations Number of iterations to run the effect. Use + * ::SDL_HAPTIC_INFINITY for infinity. + * \return 0 on success or -1 on error. + * + * \sa SDL_HapticStopEffect + * \sa SDL_HapticDestroyEffect + * \sa SDL_HapticGetEffectStatus + */ +extern DECLSPEC int SDLCALL SDL_HapticRunEffect(SDL_Haptic * haptic, + int effect, + Uint32 iterations); + +/** + * \brief Stops the haptic effect on its associated haptic device. + * + * \param haptic Haptic device to stop the effect on. + * \param effect Identifier of the effect to stop. + * \return 0 on success or -1 on error. + * + * \sa SDL_HapticRunEffect + * \sa SDL_HapticDestroyEffect + */ +extern DECLSPEC int SDLCALL SDL_HapticStopEffect(SDL_Haptic * haptic, + int effect); + +/** + * \brief Destroys a haptic effect on the device. + * + * This will stop the effect if it's running. Effects are automatically + * destroyed when the device is closed. + * + * \param haptic Device to destroy the effect on. + * \param effect Identifier of the effect to destroy. + * + * \sa SDL_HapticNewEffect + */ +extern DECLSPEC void SDLCALL SDL_HapticDestroyEffect(SDL_Haptic * haptic, + int effect); + +/** + * \brief Gets the status of the current effect on the haptic device. + * + * Device must support the ::SDL_HAPTIC_STATUS feature. + * + * \param haptic Haptic device to query the effect status on. + * \param effect Identifier of the effect to query its status. + * \return 0 if it isn't playing, 1 if it is playing or -1 on error. + * + * \sa SDL_HapticRunEffect + * \sa SDL_HapticStopEffect + */ +extern DECLSPEC int SDLCALL SDL_HapticGetEffectStatus(SDL_Haptic * haptic, + int effect); + +/** + * \brief Sets the global gain of the device. + * + * Device must support the ::SDL_HAPTIC_GAIN feature. + * + * The user may specify the maximum gain by setting the environment variable + * SDL_HAPTIC_GAIN_MAX which should be between 0 and 100. All calls to + * SDL_HapticSetGain() will scale linearly using SDL_HAPTIC_GAIN_MAX as the + * maximum. + * + * \param haptic Haptic device to set the gain on. + * \param gain Value to set the gain to, should be between 0 and 100. + * \return 0 on success or -1 on error. + * + * \sa SDL_HapticQuery + */ +extern DECLSPEC int SDLCALL SDL_HapticSetGain(SDL_Haptic * haptic, int gain); + +/** + * \brief Sets the global autocenter of the device. + * + * Autocenter should be between 0 and 100. Setting it to 0 will disable + * autocentering. + * + * Device must support the ::SDL_HAPTIC_AUTOCENTER feature. + * + * \param haptic Haptic device to set autocentering on. + * \param autocenter Value to set autocenter to, 0 disables autocentering. + * \return 0 on success or -1 on error. + * + * \sa SDL_HapticQuery + */ +extern DECLSPEC int SDLCALL SDL_HapticSetAutocenter(SDL_Haptic * haptic, + int autocenter); + +/** + * \brief Pauses a haptic device. + * + * Device must support the ::SDL_HAPTIC_PAUSE feature. Call + * SDL_HapticUnpause() to resume playback. + * + * Do not modify the effects nor add new ones while the device is paused. + * That can cause all sorts of weird errors. + * + * \param haptic Haptic device to pause. + * \return 0 on success or -1 on error. + * + * \sa SDL_HapticUnpause + */ +extern DECLSPEC int SDLCALL SDL_HapticPause(SDL_Haptic * haptic); + +/** + * \brief Unpauses a haptic device. + * + * Call to unpause after SDL_HapticPause(). + * + * \param haptic Haptic device to unpause. + * \return 0 on success or -1 on error. + * + * \sa SDL_HapticPause + */ +extern DECLSPEC int SDLCALL SDL_HapticUnpause(SDL_Haptic * haptic); + +/** + * \brief Stops all the currently playing effects on a haptic device. + * + * \param haptic Haptic device to stop. + * \return 0 on success or -1 on error. + */ +extern DECLSPEC int SDLCALL SDL_HapticStopAll(SDL_Haptic * haptic); + +/** + * \brief Checks to see if rumble is supported on a haptic device. + * + * \param haptic Haptic device to check to see if it supports rumble. + * \return SDL_TRUE if effect is supported, SDL_FALSE if it isn't or -1 on error. + * + * \sa SDL_HapticRumbleInit + * \sa SDL_HapticRumblePlay + * \sa SDL_HapticRumbleStop + */ +extern DECLSPEC int SDLCALL SDL_HapticRumbleSupported(SDL_Haptic * haptic); + +/** + * \brief Initializes the haptic device for simple rumble playback. + * + * \param haptic Haptic device to initialize for simple rumble playback. + * \return 0 on success or -1 on error. + * + * \sa SDL_HapticOpen + * \sa SDL_HapticRumbleSupported + * \sa SDL_HapticRumblePlay + * \sa SDL_HapticRumbleStop + */ +extern DECLSPEC int SDLCALL SDL_HapticRumbleInit(SDL_Haptic * haptic); + +/** + * \brief Runs simple rumble on a haptic device + * + * \param haptic Haptic device to play rumble effect on. + * \param strength Strength of the rumble to play as a 0-1 float value. + * \param length Length of the rumble to play in milliseconds. + * \return 0 on success or -1 on error. + * + * \sa SDL_HapticRumbleSupported + * \sa SDL_HapticRumbleInit + * \sa SDL_HapticRumbleStop + */ +extern DECLSPEC int SDLCALL SDL_HapticRumblePlay(SDL_Haptic * haptic, float strength, Uint32 length ); + +/** + * \brief Stops the simple rumble on a haptic device. + * + * \param haptic Haptic to stop the rumble on. + * \return 0 on success or -1 on error. + * + * \sa SDL_HapticRumbleSupported + * \sa SDL_HapticRumbleInit + * \sa SDL_HapticRumblePlay + */ +extern DECLSPEC int SDLCALL SDL_HapticRumbleStop(SDL_Haptic * haptic); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_haptic_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_hints.h b/Template/Game/Source/External/SDL/include/SDL_hints.h new file mode 100644 index 0000000..3bd5435 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_hints.h @@ -0,0 +1,711 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_hints.h + * + * Official documentation for SDL configuration variables + * + * This file contains functions to set and get configuration hints, + * as well as listing each of them alphabetically. + * + * The convention for naming hints is SDL_HINT_X, where "SDL_X" is + * the environment variable that can be used to override the default. + * + * In general these hints are just that - they may or may not be + * supported or applicable on any given platform, but they provide + * a way for an application or user to give the library a hint as + * to how they would like the library to work. + */ + +#ifndef _SDL_hints_h +#define _SDL_hints_h + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief A variable controlling how 3D acceleration is used to accelerate the SDL screen surface. + * + * SDL can try to accelerate the SDL screen surface by using streaming + * textures with a 3D rendering engine. This variable controls whether and + * how this is done. + * + * This variable can be set to the following values: + * "0" - Disable 3D acceleration + * "1" - Enable 3D acceleration, using the default renderer. + * "X" - Enable 3D acceleration, using X where X is one of the valid rendering drivers. (e.g. "direct3d", "opengl", etc.) + * + * By default SDL tries to make a best guess for each platform whether + * to use acceleration or not. + */ +#define SDL_HINT_FRAMEBUFFER_ACCELERATION "SDL_FRAMEBUFFER_ACCELERATION" + +/** + * \brief A variable specifying which render driver to use. + * + * If the application doesn't pick a specific renderer to use, this variable + * specifies the name of the preferred renderer. If the preferred renderer + * can't be initialized, the normal default renderer is used. + * + * This variable is case insensitive and can be set to the following values: + * "direct3d" + * "opengl" + * "opengles2" + * "opengles" + * "software" + * + * The default varies by platform, but it's the first one in the list that + * is available on the current platform. + */ +#define SDL_HINT_RENDER_DRIVER "SDL_RENDER_DRIVER" + +/** + * \brief A variable controlling whether the OpenGL render driver uses shaders if they are available. + * + * This variable can be set to the following values: + * "0" - Disable shaders + * "1" - Enable shaders + * + * By default shaders are used if OpenGL supports them. + */ +#define SDL_HINT_RENDER_OPENGL_SHADERS "SDL_RENDER_OPENGL_SHADERS" + +/** + * \brief A variable controlling whether the Direct3D device is initialized for thread-safe operations. + * + * This variable can be set to the following values: + * "0" - Thread-safety is not enabled (faster) + * "1" - Thread-safety is enabled + * + * By default the Direct3D device is created with thread-safety disabled. + */ +#define SDL_HINT_RENDER_DIRECT3D_THREADSAFE "SDL_RENDER_DIRECT3D_THREADSAFE" + +/** + * \brief A variable controlling whether to enable Direct3D 11+'s Debug Layer. + * + * This variable does not have any effect on the Direct3D 9 based renderer. + * + * This variable can be set to the following values: + * "0" - Disable Debug Layer use + * "1" - Enable Debug Layer use + * + * By default, SDL does not use Direct3D Debug Layer. + */ +#define SDL_HINT_RENDER_DIRECT3D11_DEBUG "SDL_RENDER_DIRECT3D11_DEBUG" + +/** + * \brief A variable controlling the scaling quality + * + * This variable can be set to the following values: + * "0" or "nearest" - Nearest pixel sampling + * "1" or "linear" - Linear filtering (supported by OpenGL and Direct3D) + * "2" or "best" - Currently this is the same as "linear" + * + * By default nearest pixel sampling is used + */ +#define SDL_HINT_RENDER_SCALE_QUALITY "SDL_RENDER_SCALE_QUALITY" + +/** + * \brief A variable controlling whether updates to the SDL screen surface should be synchronized with the vertical refresh, to avoid tearing. + * + * This variable can be set to the following values: + * "0" - Disable vsync + * "1" - Enable vsync + * + * By default SDL does not sync screen surface updates with vertical refresh. + */ +#define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC" + +/** + * \brief A variable controlling whether the screensaver is enabled. + * + * This variable can be set to the following values: + * "0" - Disable screensaver + * "1" - Enable screensaver + * + * By default SDL will disable the screensaver. + */ +#define SDL_HINT_VIDEO_ALLOW_SCREENSAVER "SDL_VIDEO_ALLOW_SCREENSAVER" + +/** + * \brief A variable controlling whether the X11 VidMode extension should be used. + * + * This variable can be set to the following values: + * "0" - Disable XVidMode + * "1" - Enable XVidMode + * + * By default SDL will use XVidMode if it is available. + */ +#define SDL_HINT_VIDEO_X11_XVIDMODE "SDL_VIDEO_X11_XVIDMODE" + +/** + * \brief A variable controlling whether the X11 Xinerama extension should be used. + * + * This variable can be set to the following values: + * "0" - Disable Xinerama + * "1" - Enable Xinerama + * + * By default SDL will use Xinerama if it is available. + */ +#define SDL_HINT_VIDEO_X11_XINERAMA "SDL_VIDEO_X11_XINERAMA" + +/** + * \brief A variable controlling whether the X11 XRandR extension should be used. + * + * This variable can be set to the following values: + * "0" - Disable XRandR + * "1" - Enable XRandR + * + * By default SDL will not use XRandR because of window manager issues. + */ +#define SDL_HINT_VIDEO_X11_XRANDR "SDL_VIDEO_X11_XRANDR" + +/** + * \brief A variable controlling whether the X11 _NET_WM_PING protocol should be supported. + * + * This variable can be set to the following values: + * "0" - Disable _NET_WM_PING + * "1" - Enable _NET_WM_PING + * + * By default SDL will use _NET_WM_PING, but for applications that know they + * will not always be able to respond to ping requests in a timely manner they can + * turn it off to avoid the window manager thinking the app is hung. + * The hint is checked in CreateWindow. + */ +#define SDL_HINT_VIDEO_X11_NET_WM_PING "SDL_VIDEO_X11_NET_WM_PING" + +/** + * \brief A variable controlling whether the window frame and title bar are interactive when the cursor is hidden + * + * This variable can be set to the following values: + * "0" - The window frame is not interactive when the cursor is hidden (no move, resize, etc) + * "1" - The window frame is interactive when the cursor is hidden + * + * By default SDL will allow interaction with the window frame when the cursor is hidden + */ +#define SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN" + +/** + * \brief A variable controlling whether the windows message loop is processed by SDL + * + * This variable can be set to the following values: + * "0" - The window message loop is not run + * "1" - The window message loop is processed in SDL_PumpEvents() + * + * By default SDL will process the windows message loop + */ +#define SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP "SDL_WINDOWS_ENABLE_MESSAGELOOP" + +/** + * \brief A variable controlling whether grabbing input grabs the keyboard + * + * This variable can be set to the following values: + * "0" - Grab will affect only the mouse + * "1" - Grab will affect mouse and keyboard + * + * By default SDL will not grab the keyboard so system shortcuts still work. + */ +#define SDL_HINT_GRAB_KEYBOARD "SDL_GRAB_KEYBOARD" + +/** +* \brief A variable controlling whether relative mouse mode is implemented using mouse warping +* +* This variable can be set to the following values: +* "0" - Relative mouse mode uses raw input +* "1" - Relative mouse mode uses mouse warping +* +* By default SDL will use raw input for relative mouse mode +*/ +#define SDL_HINT_MOUSE_RELATIVE_MODE_WARP "SDL_MOUSE_RELATIVE_MODE_WARP" + +/** + * \brief Minimize your SDL_Window if it loses key focus when in fullscreen mode. Defaults to true. + * + */ +#define SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS" + +/** + * \brief A variable controlling whether the idle timer is disabled on iOS. + * + * When an iOS app does not receive touches for some time, the screen is + * dimmed automatically. For games where the accelerometer is the only input + * this is problematic. This functionality can be disabled by setting this + * hint. + * + * As of SDL 2.0.4, SDL_EnableScreenSaver and SDL_DisableScreenSaver accomplish + * the same thing on iOS. They should be preferred over this hint. + * + * This variable can be set to the following values: + * "0" - Enable idle timer + * "1" - Disable idle timer + */ +#define SDL_HINT_IDLE_TIMER_DISABLED "SDL_IOS_IDLE_TIMER_DISABLED" + +/** + * \brief A variable controlling which orientations are allowed on iOS. + * + * In some circumstances it is necessary to be able to explicitly control + * which UI orientations are allowed. + * + * This variable is a space delimited list of the following values: + * "LandscapeLeft", "LandscapeRight", "Portrait" "PortraitUpsideDown" + */ +#define SDL_HINT_ORIENTATIONS "SDL_IOS_ORIENTATIONS" + +/** + * \brief A variable controlling whether the Android / iOS built-in + * accelerometer should be listed as a joystick device, rather than listing + * actual joysticks only. + * + * This variable can be set to the following values: + * "0" - List only real joysticks and accept input from them + * "1" - List real joysticks along with the accelerometer as if it were a 3 axis joystick (the default). + */ +#define SDL_HINT_ACCELEROMETER_AS_JOYSTICK "SDL_ACCELEROMETER_AS_JOYSTICK" + + +/** + * \brief A variable that lets you disable the detection and use of Xinput gamepad devices + * + * The variable can be set to the following values: + * "0" - Disable XInput detection (only uses direct input) + * "1" - Enable XInput detection (the default) + */ +#define SDL_HINT_XINPUT_ENABLED "SDL_XINPUT_ENABLED" + + +/** + * \brief A variable that causes SDL to use the old axis and button mapping for XInput devices. + * + * This hint is for backwards compatibility only and will be removed in SDL 2.1 + * + * The default value is "0". This hint must be set before SDL_Init() + */ +#define SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING" + + +/** + * \brief A variable that lets you manually hint extra gamecontroller db entries + * + * The variable should be newline delimited rows of gamecontroller config data, see SDL_gamecontroller.h + * + * This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) + * You can update mappings after the system is initialized with SDL_GameControllerMappingForGUID() and SDL_GameControllerAddMapping() + */ +#define SDL_HINT_GAMECONTROLLERCONFIG "SDL_GAMECONTROLLERCONFIG" + + +/** + * \brief A variable that lets you enable joystick (and gamecontroller) events even when your app is in the background. + * + * The variable can be set to the following values: + * "0" - Disable joystick & gamecontroller input events when the + * application is in the background. + * "1" - Enable joystick & gamecontroller input events when the + * application is in the background. + * + * The default value is "0". This hint may be set at any time. + */ +#define SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS" + + +/** + * \brief If set to "0" then never set the top most bit on a SDL Window, even if the video mode expects it. + * This is a debugging aid for developers and not expected to be used by end users. The default is "1" + * + * This variable can be set to the following values: + * "0" - don't allow topmost + * "1" - allow topmost + */ +#define SDL_HINT_ALLOW_TOPMOST "SDL_ALLOW_TOPMOST" + + +/** + * \brief A variable that controls the timer resolution, in milliseconds. + * + * The higher resolution the timer, the more frequently the CPU services + * timer interrupts, and the more precise delays are, but this takes up + * power and CPU time. This hint is only used on Windows 7 and earlier. + * + * See this blog post for more information: + * http://randomascii.wordpress.com/2013/07/08/windows-timer-resolution-megawatts-wasted/ + * + * If this variable is set to "0", the system timer resolution is not set. + * + * The default value is "1". This hint may be set at any time. + */ +#define SDL_HINT_TIMER_RESOLUTION "SDL_TIMER_RESOLUTION" + + + +/** +* \brief A string specifying SDL's threads stack size in bytes or "0" for the backend's default size +* +* Use this hint in case you need to set SDL's threads stack size to other than the default. +* This is specially useful if you build SDL against a non glibc libc library (such as musl) which +* provides a relatively small default thread stack size (a few kilobytes versus the default 8MB glibc uses). +* Support for this hint is currently available only in the pthread backend. +*/ +#define SDL_HINT_THREAD_STACK_SIZE "SDL_THREAD_STACK_SIZE" + +/** + * \brief If set to 1, then do not allow high-DPI windows. ("Retina" on Mac and iOS) + */ +#define SDL_HINT_VIDEO_HIGHDPI_DISABLED "SDL_VIDEO_HIGHDPI_DISABLED" + +/** + * \brief A variable that determines whether ctrl+click should generate a right-click event on Mac + * + * If present, holding ctrl while left clicking will generate a right click + * event when on Mac. + */ +#define SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK" + +/** +* \brief A variable specifying which shader compiler to preload when using the Chrome ANGLE binaries +* +* SDL has EGL and OpenGL ES2 support on Windows via the ANGLE project. It +* can use two different sets of binaries, those compiled by the user from source +* or those provided by the Chrome browser. In the later case, these binaries require +* that SDL loads a DLL providing the shader compiler. +* +* This variable can be set to the following values: +* "d3dcompiler_46.dll" - default, best for Vista or later. +* "d3dcompiler_43.dll" - for XP support. +* "none" - do not load any library, useful if you compiled ANGLE from source and included the compiler in your binaries. +* +*/ +#define SDL_HINT_VIDEO_WIN_D3DCOMPILER "SDL_VIDEO_WIN_D3DCOMPILER" + +/** +* \brief A variable that is the address of another SDL_Window* (as a hex string formatted with "%p"). +* +* If this hint is set before SDL_CreateWindowFrom() and the SDL_Window* it is set to has +* SDL_WINDOW_OPENGL set (and running on WGL only, currently), then two things will occur on the newly +* created SDL_Window: +* +* 1. Its pixel format will be set to the same pixel format as this SDL_Window. This is +* needed for example when sharing an OpenGL context across multiple windows. +* +* 2. The flag SDL_WINDOW_OPENGL will be set on the new window so it can be used for +* OpenGL rendering. +* +* This variable can be set to the following values: +* The address (as a string "%p") of the SDL_Window* that new windows created with SDL_CreateWindowFrom() should +* share a pixel format with. +*/ +#define SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT "SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT" + +/** + * \brief A URL to a WinRT app's privacy policy + * + * All network-enabled WinRT apps must make a privacy policy available to its + * users. On Windows 8, 8.1, and RT, Microsoft mandates that this policy be + * be available in the Windows Settings charm, as accessed from within the app. + * SDL provides code to add a URL-based link there, which can point to the app's + * privacy policy. + * + * To setup a URL to an app's privacy policy, set SDL_HINT_WINRT_PRIVACY_POLICY_URL + * before calling any SDL_Init functions. The contents of the hint should + * be a valid URL. For example, "http://www.example.com". + * + * The default value is "", which will prevent SDL from adding a privacy policy + * link to the Settings charm. This hint should only be set during app init. + * + * The label text of an app's "Privacy Policy" link may be customized via another + * hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL. + * + * Please note that on Windows Phone, Microsoft does not provide standard UI + * for displaying a privacy policy link, and as such, SDL_HINT_WINRT_PRIVACY_POLICY_URL + * will not get used on that platform. Network-enabled phone apps should display + * their privacy policy through some other, in-app means. + */ +#define SDL_HINT_WINRT_PRIVACY_POLICY_URL "SDL_WINRT_PRIVACY_POLICY_URL" + +/** \brief Label text for a WinRT app's privacy policy link + * + * Network-enabled WinRT apps must include a privacy policy. On Windows 8, 8.1, and RT, + * Microsoft mandates that this policy be available via the Windows Settings charm. + * SDL provides code to add a link there, with its label text being set via the + * optional hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL. + * + * Please note that a privacy policy's contents are not set via this hint. A separate + * hint, SDL_HINT_WINRT_PRIVACY_POLICY_URL, is used to link to the actual text of the + * policy. + * + * The contents of this hint should be encoded as a UTF8 string. + * + * The default value is "Privacy Policy". This hint should only be set during app + * initialization, preferably before any calls to SDL_Init. + * + * For additional information on linking to a privacy policy, see the documentation for + * SDL_HINT_WINRT_PRIVACY_POLICY_URL. + */ +#define SDL_HINT_WINRT_PRIVACY_POLICY_LABEL "SDL_WINRT_PRIVACY_POLICY_LABEL" + +/** \brief Allows back-button-press events on Windows Phone to be marked as handled + * + * Windows Phone devices typically feature a Back button. When pressed, + * the OS will emit back-button-press events, which apps are expected to + * handle in an appropriate manner. If apps do not explicitly mark these + * events as 'Handled', then the OS will invoke its default behavior for + * unhandled back-button-press events, which on Windows Phone 8 and 8.1 is to + * terminate the app (and attempt to switch to the previous app, or to the + * device's home screen). + * + * Setting the SDL_HINT_WINRT_HANDLE_BACK_BUTTON hint to "1" will cause SDL + * to mark back-button-press events as Handled, if and when one is sent to + * the app. + * + * Internally, Windows Phone sends back button events as parameters to + * special back-button-press callback functions. Apps that need to respond + * to back-button-press events are expected to register one or more + * callback functions for such, shortly after being launched (during the + * app's initialization phase). After the back button is pressed, the OS + * will invoke these callbacks. If the app's callback(s) do not explicitly + * mark the event as handled by the time they return, or if the app never + * registers one of these callback, the OS will consider the event + * un-handled, and it will apply its default back button behavior (terminate + * the app). + * + * SDL registers its own back-button-press callback with the Windows Phone + * OS. This callback will emit a pair of SDL key-press events (SDL_KEYDOWN + * and SDL_KEYUP), each with a scancode of SDL_SCANCODE_AC_BACK, after which + * it will check the contents of the hint, SDL_HINT_WINRT_HANDLE_BACK_BUTTON. + * If the hint's value is set to "1", the back button event's Handled + * property will get set to 'true'. If the hint's value is set to something + * else, or if it is unset, SDL will leave the event's Handled property + * alone. (By default, the OS sets this property to 'false', to note.) + * + * SDL apps can either set SDL_HINT_WINRT_HANDLE_BACK_BUTTON well before a + * back button is pressed, or can set it in direct-response to a back button + * being pressed. + * + * In order to get notified when a back button is pressed, SDL apps should + * register a callback function with SDL_AddEventWatch(), and have it listen + * for SDL_KEYDOWN events that have a scancode of SDL_SCANCODE_AC_BACK. + * (Alternatively, SDL_KEYUP events can be listened-for. Listening for + * either event type is suitable.) Any value of SDL_HINT_WINRT_HANDLE_BACK_BUTTON + * set by such a callback, will be applied to the OS' current + * back-button-press event. + * + * More details on back button behavior in Windows Phone apps can be found + * at the following page, on Microsoft's developer site: + * http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj247550(v=vs.105).aspx + */ +#define SDL_HINT_WINRT_HANDLE_BACK_BUTTON "SDL_WINRT_HANDLE_BACK_BUTTON" + +/** + * \brief A variable that dictates policy for fullscreen Spaces on Mac OS X. + * + * This hint only applies to Mac OS X. + * + * The variable can be set to the following values: + * "0" - Disable Spaces support (FULLSCREEN_DESKTOP won't use them and + * SDL_WINDOW_RESIZABLE windows won't offer the "fullscreen" + * button on their titlebars). + * "1" - Enable Spaces support (FULLSCREEN_DESKTOP will use them and + * SDL_WINDOW_RESIZABLE windows will offer the "fullscreen" + * button on their titlebars). + * + * The default value is "1". Spaces are disabled regardless of this hint if + * the OS isn't at least Mac OS X Lion (10.7). This hint must be set before + * any windows are created. + */ +#define SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES "SDL_VIDEO_MAC_FULLSCREEN_SPACES" + +/** +* \brief When set don't force the SDL app to become a foreground process +* +* This hint only applies to Mac OS X. +* +*/ +#define SDL_HINT_MAC_BACKGROUND_APP "SDL_MAC_BACKGROUND_APP" + +/** + * \brief Android APK expansion main file version. Should be a string number like "1", "2" etc. + * + * Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION. + * + * If both hints were set then SDL_RWFromFile() will look into expansion files + * after a given relative path was not found in the internal storage and assets. + * + * By default this hint is not set and the APK expansion files are not searched. + */ +#define SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION" + +/** + * \brief Android APK expansion patch file version. Should be a string number like "1", "2" etc. + * + * Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION. + * + * If both hints were set then SDL_RWFromFile() will look into expansion files + * after a given relative path was not found in the internal storage and assets. + * + * By default this hint is not set and the APK expansion files are not searched. + */ +#define SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION "SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION" + +/** + * \brief A variable to control whether certain IMEs should handle text editing internally instead of sending SDL_TEXTEDITING events. + * + * The variable can be set to the following values: + * "0" - SDL_TEXTEDITING events are sent, and it is the application's + * responsibility to render the text from these events and + * differentiate it somehow from committed text. (default) + * "1" - If supported by the IME then SDL_TEXTEDITING events are not sent, + * and text that is being composed will be rendered in its own UI. + */ +#define SDL_HINT_IME_INTERNAL_EDITING "SDL_IME_INTERNAL_EDITING" + + /** + * \brief A variable to control whether mouse and touch events are to be treated together or separately + * + * The variable can be set to the following values: + * "0" - Mouse events will be handled as touch events, and touch will raise fake mouse + * events. This is the behaviour of SDL <= 2.0.3. (default) + * "1" - Mouse events will be handled separately from pure touch events. + * + * The value of this hint is used at runtime, so it can be changed at any time. + */ +#define SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH "SDL_ANDROID_SEPARATE_MOUSE_AND_TOUCH" + +/** + * \brief override the binding element for keyboard inputs for Emscripten builds + * + * This hint only applies to the emscripten platform + * + * The variable can be one of + * "#window" - The javascript window object (this is the default) + * "#document" - The javascript document object + * "#screen" - the javascript window.screen object + * "#canvas" - the WebGL canvas element + * any other string without a leading # sign applies to the element on the page with that ID. + */ +#define SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT" + +/** + * \brief Tell SDL not to catch the SIGINT or SIGTERM signals. + * + * This hint only applies to Unix-like platforms. + * + * The variable can be set to the following values: + * "0" - SDL will install a SIGINT and SIGTERM handler, and when it + * catches a signal, convert it into an SDL_QUIT event. + * "1" - SDL will not install a signal handler at all. + */ +#define SDL_HINT_NO_SIGNAL_HANDLERS "SDL_NO_SIGNAL_HANDLERS" + +/** + * \brief Tell SDL not to generate window-close events for Alt+F4 on Windows. + * + * The variable can be set to the following values: + * "0" - SDL will generate a window-close event when it sees Alt+F4. + * "1" - SDL will only do normal key handling for Alt+F4. + */ +#define SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4" + +/** + * \brief An enumeration of hint priorities + */ +typedef enum +{ + SDL_HINT_DEFAULT, + SDL_HINT_NORMAL, + SDL_HINT_OVERRIDE +} SDL_HintPriority; + + +/** + * \brief Set a hint with a specific priority + * + * The priority controls the behavior when setting a hint that already + * has a value. Hints will replace existing hints of their priority and + * lower. Environment variables are considered to have override priority. + * + * \return SDL_TRUE if the hint was set, SDL_FALSE otherwise + */ +extern DECLSPEC SDL_bool SDLCALL SDL_SetHintWithPriority(const char *name, + const char *value, + SDL_HintPriority priority); + +/** + * \brief Set a hint with normal priority + * + * \return SDL_TRUE if the hint was set, SDL_FALSE otherwise + */ +extern DECLSPEC SDL_bool SDLCALL SDL_SetHint(const char *name, + const char *value); + +/** + * \brief Get a hint + * + * \return The string value of a hint variable. + */ +extern DECLSPEC const char * SDLCALL SDL_GetHint(const char *name); + +/** + * \brief Add a function to watch a particular hint + * + * \param name The hint to watch + * \param callback The function to call when the hint value changes + * \param userdata A pointer to pass to the callback function + */ +typedef void (*SDL_HintCallback)(void *userdata, const char *name, const char *oldValue, const char *newValue); +extern DECLSPEC void SDLCALL SDL_AddHintCallback(const char *name, + SDL_HintCallback callback, + void *userdata); + +/** + * \brief Remove a function watching a particular hint + * + * \param name The hint being watched + * \param callback The function being called when the hint value changes + * \param userdata A pointer being passed to the callback function + */ +extern DECLSPEC void SDLCALL SDL_DelHintCallback(const char *name, + SDL_HintCallback callback, + void *userdata); + +/** + * \brief Clear all hints + * + * This function is called during SDL_Quit() to free stored hints. + */ +extern DECLSPEC void SDLCALL SDL_ClearHints(void); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_hints_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_joystick.h b/Template/Game/Source/External/SDL/include/SDL_joystick.h new file mode 100644 index 0000000..266f3b3 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_joystick.h @@ -0,0 +1,273 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_joystick.h + * + * Include file for SDL joystick event handling + * + * The term "device_index" identifies currently plugged in joystick devices between 0 and SDL_NumJoysticks, with the exact joystick + * behind a device_index changing as joysticks are plugged and unplugged. + * + * The term "instance_id" is the current instantiation of a joystick device in the system, if the joystick is removed and then re-inserted + * then it will get a new instance_id, instance_id's are monotonically increasing identifiers of a joystick plugged in. + * + * The term JoystickGUID is a stable 128-bit identifier for a joystick device that does not change over time, it identifies class of + * the device (a X360 wired controller for example). This identifier is platform dependent. + * + * + */ + +#ifndef _SDL_joystick_h +#define _SDL_joystick_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \file SDL_joystick.h + * + * In order to use these functions, SDL_Init() must have been called + * with the ::SDL_INIT_JOYSTICK flag. This causes SDL to scan the system + * for joysticks, and load appropriate drivers. + * + * If you would like to receive joystick updates while the application + * is in the background, you should set the following hint before calling + * SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS + */ + +/* The joystick structure used to identify an SDL joystick */ +struct _SDL_Joystick; +typedef struct _SDL_Joystick SDL_Joystick; + +/* A structure that encodes the stable unique id for a joystick device */ +typedef struct { + Uint8 data[16]; +} SDL_JoystickGUID; + +typedef Sint32 SDL_JoystickID; + +typedef enum +{ + SDL_JOYSTICK_POWER_UNKNOWN = -1, + SDL_JOYSTICK_POWER_EMPTY, + SDL_JOYSTICK_POWER_LOW, + SDL_JOYSTICK_POWER_MEDIUM, + SDL_JOYSTICK_POWER_FULL, + SDL_JOYSTICK_POWER_WIRED, + SDL_JOYSTICK_POWER_MAX +} SDL_JoystickPowerLevel; + +/* Function prototypes */ +/** + * Count the number of joysticks attached to the system right now + */ +extern DECLSPEC int SDLCALL SDL_NumJoysticks(void); + +/** + * Get the implementation dependent name of a joystick. + * This can be called before any joysticks are opened. + * If no name can be found, this function returns NULL. + */ +extern DECLSPEC const char *SDLCALL SDL_JoystickNameForIndex(int device_index); + +/** + * Open a joystick for use. + * The index passed as an argument refers to the N'th joystick on the system. + * This index is not the value which will identify this joystick in future + * joystick events. The joystick's instance id (::SDL_JoystickID) will be used + * there instead. + * + * \return A joystick identifier, or NULL if an error occurred. + */ +extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickOpen(int device_index); + +/** + * Return the SDL_Joystick associated with an instance id. + */ +extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickFromInstanceID(SDL_JoystickID joyid); + +/** + * Return the name for this currently opened joystick. + * If no name can be found, this function returns NULL. + */ +extern DECLSPEC const char *SDLCALL SDL_JoystickName(SDL_Joystick * joystick); + +/** + * Return the GUID for the joystick at this index + */ +extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetDeviceGUID(int device_index); + +/** + * Return the GUID for this opened joystick + */ +extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUID(SDL_Joystick * joystick); + +/** + * Return a string representation for this guid. pszGUID must point to at least 33 bytes + * (32 for the string plus a NULL terminator). + */ +extern DECLSPEC void SDLCALL SDL_JoystickGetGUIDString(SDL_JoystickGUID guid, char *pszGUID, int cbGUID); + +/** + * convert a string into a joystick formatted guid + */ +extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUIDFromString(const char *pchGUID); + +/** + * Returns SDL_TRUE if the joystick has been opened and currently connected, or SDL_FALSE if it has not. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_JoystickGetAttached(SDL_Joystick * joystick); + +/** + * Get the instance ID of an opened joystick or -1 if the joystick is invalid. + */ +extern DECLSPEC SDL_JoystickID SDLCALL SDL_JoystickInstanceID(SDL_Joystick * joystick); + +/** + * Get the number of general axis controls on a joystick. + */ +extern DECLSPEC int SDLCALL SDL_JoystickNumAxes(SDL_Joystick * joystick); + +/** + * Get the number of trackballs on a joystick. + * + * Joystick trackballs have only relative motion events associated + * with them and their state cannot be polled. + */ +extern DECLSPEC int SDLCALL SDL_JoystickNumBalls(SDL_Joystick * joystick); + +/** + * Get the number of POV hats on a joystick. + */ +extern DECLSPEC int SDLCALL SDL_JoystickNumHats(SDL_Joystick * joystick); + +/** + * Get the number of buttons on a joystick. + */ +extern DECLSPEC int SDLCALL SDL_JoystickNumButtons(SDL_Joystick * joystick); + +/** + * Update the current state of the open joysticks. + * + * This is called automatically by the event loop if any joystick + * events are enabled. + */ +extern DECLSPEC void SDLCALL SDL_JoystickUpdate(void); + +/** + * Enable/disable joystick event polling. + * + * If joystick events are disabled, you must call SDL_JoystickUpdate() + * yourself and check the state of the joystick when you want joystick + * information. + * + * The state can be one of ::SDL_QUERY, ::SDL_ENABLE or ::SDL_IGNORE. + */ +extern DECLSPEC int SDLCALL SDL_JoystickEventState(int state); + +/** + * Get the current state of an axis control on a joystick. + * + * The state is a value ranging from -32768 to 32767. + * + * The axis indices start at index 0. + */ +extern DECLSPEC Sint16 SDLCALL SDL_JoystickGetAxis(SDL_Joystick * joystick, + int axis); + +/** + * \name Hat positions + */ +/* @{ */ +#define SDL_HAT_CENTERED 0x00 +#define SDL_HAT_UP 0x01 +#define SDL_HAT_RIGHT 0x02 +#define SDL_HAT_DOWN 0x04 +#define SDL_HAT_LEFT 0x08 +#define SDL_HAT_RIGHTUP (SDL_HAT_RIGHT|SDL_HAT_UP) +#define SDL_HAT_RIGHTDOWN (SDL_HAT_RIGHT|SDL_HAT_DOWN) +#define SDL_HAT_LEFTUP (SDL_HAT_LEFT|SDL_HAT_UP) +#define SDL_HAT_LEFTDOWN (SDL_HAT_LEFT|SDL_HAT_DOWN) +/* @} */ + +/** + * Get the current state of a POV hat on a joystick. + * + * The hat indices start at index 0. + * + * \return The return value is one of the following positions: + * - ::SDL_HAT_CENTERED + * - ::SDL_HAT_UP + * - ::SDL_HAT_RIGHT + * - ::SDL_HAT_DOWN + * - ::SDL_HAT_LEFT + * - ::SDL_HAT_RIGHTUP + * - ::SDL_HAT_RIGHTDOWN + * - ::SDL_HAT_LEFTUP + * - ::SDL_HAT_LEFTDOWN + */ +extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetHat(SDL_Joystick * joystick, + int hat); + +/** + * Get the ball axis change since the last poll. + * + * \return 0, or -1 if you passed it invalid parameters. + * + * The ball indices start at index 0. + */ +extern DECLSPEC int SDLCALL SDL_JoystickGetBall(SDL_Joystick * joystick, + int ball, int *dx, int *dy); + +/** + * Get the current state of a button on a joystick. + * + * The button indices start at index 0. + */ +extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetButton(SDL_Joystick * joystick, + int button); + +/** + * Close a joystick previously opened with SDL_JoystickOpen(). + */ +extern DECLSPEC void SDLCALL SDL_JoystickClose(SDL_Joystick * joystick); + +/** + * Return the battery level of this joystick + */ +extern DECLSPEC SDL_JoystickPowerLevel SDLCALL SDL_JoystickCurrentPowerLevel(SDL_Joystick * joystick); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_joystick_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_keyboard.h b/Template/Game/Source/External/SDL/include/SDL_keyboard.h new file mode 100644 index 0000000..bbba0f0 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_keyboard.h @@ -0,0 +1,217 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_keyboard.h + * + * Include file for SDL keyboard event handling + */ + +#ifndef _SDL_keyboard_h +#define _SDL_keyboard_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_keycode.h" +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief The SDL keysym structure, used in key events. + * + * \note If you are looking for translated character input, see the ::SDL_TEXTINPUT event. + */ +typedef struct SDL_Keysym +{ + SDL_Scancode scancode; /**< SDL physical key code - see ::SDL_Scancode for details */ + SDL_Keycode sym; /**< SDL virtual key code - see ::SDL_Keycode for details */ + Uint16 mod; /**< current key modifiers */ + Uint32 unused; +} SDL_Keysym; + +/* Function prototypes */ + +/** + * \brief Get the window which currently has keyboard focus. + */ +extern DECLSPEC SDL_Window * SDLCALL SDL_GetKeyboardFocus(void); + +/** + * \brief Get a snapshot of the current state of the keyboard. + * + * \param numkeys if non-NULL, receives the length of the returned array. + * + * \return An array of key states. Indexes into this array are obtained by using ::SDL_Scancode values. + * + * \b Example: + * \code + * const Uint8 *state = SDL_GetKeyboardState(NULL); + * if ( state[SDL_SCANCODE_RETURN] ) { + * printf(" is pressed.\n"); + * } + * \endcode + */ +extern DECLSPEC const Uint8 *SDLCALL SDL_GetKeyboardState(int *numkeys); + +/** + * \brief Get the current key modifier state for the keyboard. + */ +extern DECLSPEC SDL_Keymod SDLCALL SDL_GetModState(void); + +/** + * \brief Set the current key modifier state for the keyboard. + * + * \note This does not change the keyboard state, only the key modifier flags. + */ +extern DECLSPEC void SDLCALL SDL_SetModState(SDL_Keymod modstate); + +/** + * \brief Get the key code corresponding to the given scancode according + * to the current keyboard layout. + * + * See ::SDL_Keycode for details. + * + * \sa SDL_GetKeyName() + */ +extern DECLSPEC SDL_Keycode SDLCALL SDL_GetKeyFromScancode(SDL_Scancode scancode); + +/** + * \brief Get the scancode corresponding to the given key code according to the + * current keyboard layout. + * + * See ::SDL_Scancode for details. + * + * \sa SDL_GetScancodeName() + */ +extern DECLSPEC SDL_Scancode SDLCALL SDL_GetScancodeFromKey(SDL_Keycode key); + +/** + * \brief Get a human-readable name for a scancode. + * + * \return A pointer to the name for the scancode. + * If the scancode doesn't have a name, this function returns + * an empty string (""). + * + * \sa SDL_Scancode + */ +extern DECLSPEC const char *SDLCALL SDL_GetScancodeName(SDL_Scancode scancode); + +/** + * \brief Get a scancode from a human-readable name + * + * \return scancode, or SDL_SCANCODE_UNKNOWN if the name wasn't recognized + * + * \sa SDL_Scancode + */ +extern DECLSPEC SDL_Scancode SDLCALL SDL_GetScancodeFromName(const char *name); + +/** + * \brief Get a human-readable name for a key. + * + * \return A pointer to a UTF-8 string that stays valid at least until the next + * call to this function. If you need it around any longer, you must + * copy it. If the key doesn't have a name, this function returns an + * empty string (""). + * + * \sa SDL_Key + */ +extern DECLSPEC const char *SDLCALL SDL_GetKeyName(SDL_Keycode key); + +/** + * \brief Get a key code from a human-readable name + * + * \return key code, or SDLK_UNKNOWN if the name wasn't recognized + * + * \sa SDL_Keycode + */ +extern DECLSPEC SDL_Keycode SDLCALL SDL_GetKeyFromName(const char *name); + +/** + * \brief Start accepting Unicode text input events. + * This function will show the on-screen keyboard if supported. + * + * \sa SDL_StopTextInput() + * \sa SDL_SetTextInputRect() + * \sa SDL_HasScreenKeyboardSupport() + */ +extern DECLSPEC void SDLCALL SDL_StartTextInput(void); + +/** + * \brief Return whether or not Unicode text input events are enabled. + * + * \sa SDL_StartTextInput() + * \sa SDL_StopTextInput() + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsTextInputActive(void); + +/** + * \brief Stop receiving any text input events. + * This function will hide the on-screen keyboard if supported. + * + * \sa SDL_StartTextInput() + * \sa SDL_HasScreenKeyboardSupport() + */ +extern DECLSPEC void SDLCALL SDL_StopTextInput(void); + +/** + * \brief Set the rectangle used to type Unicode text inputs. + * This is used as a hint for IME and on-screen keyboard placement. + * + * \sa SDL_StartTextInput() + */ +extern DECLSPEC void SDLCALL SDL_SetTextInputRect(SDL_Rect *rect); + +/** + * \brief Returns whether the platform has some screen keyboard support. + * + * \return SDL_TRUE if some keyboard support is available else SDL_FALSE. + * + * \note Not all screen keyboard functions are supported on all platforms. + * + * \sa SDL_IsScreenKeyboardShown() + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasScreenKeyboardSupport(void); + +/** + * \brief Returns whether the screen keyboard is shown for given window. + * + * \param window The window for which screen keyboard should be queried. + * + * \return SDL_TRUE if screen keyboard is shown else SDL_FALSE. + * + * \sa SDL_HasScreenKeyboardSupport() + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsScreenKeyboardShown(SDL_Window *window); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_keyboard_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_keycode.h b/Template/Game/Source/External/SDL/include/SDL_keycode.h new file mode 100644 index 0000000..7be9635 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_keycode.h @@ -0,0 +1,341 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_keycode.h + * + * Defines constants which identify keyboard keys and modifiers. + */ + +#ifndef _SDL_keycode_h +#define _SDL_keycode_h + +#include "SDL_stdinc.h" +#include "SDL_scancode.h" + +/** + * \brief The SDL virtual key representation. + * + * Values of this type are used to represent keyboard keys using the current + * layout of the keyboard. These values include Unicode values representing + * the unmodified character that would be generated by pressing the key, or + * an SDLK_* constant for those keys that do not generate characters. + */ +typedef Sint32 SDL_Keycode; + +#define SDLK_SCANCODE_MASK (1<<30) +#define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK) + +enum +{ + SDLK_UNKNOWN = 0, + + SDLK_RETURN = '\r', + SDLK_ESCAPE = '\033', + SDLK_BACKSPACE = '\b', + SDLK_TAB = '\t', + SDLK_SPACE = ' ', + SDLK_EXCLAIM = '!', + SDLK_QUOTEDBL = '"', + SDLK_HASH = '#', + SDLK_PERCENT = '%', + SDLK_DOLLAR = '$', + SDLK_AMPERSAND = '&', + SDLK_QUOTE = '\'', + SDLK_LEFTPAREN = '(', + SDLK_RIGHTPAREN = ')', + SDLK_ASTERISK = '*', + SDLK_PLUS = '+', + SDLK_COMMA = ',', + SDLK_MINUS = '-', + SDLK_PERIOD = '.', + SDLK_SLASH = '/', + SDLK_0 = '0', + SDLK_1 = '1', + SDLK_2 = '2', + SDLK_3 = '3', + SDLK_4 = '4', + SDLK_5 = '5', + SDLK_6 = '6', + SDLK_7 = '7', + SDLK_8 = '8', + SDLK_9 = '9', + SDLK_COLON = ':', + SDLK_SEMICOLON = ';', + SDLK_LESS = '<', + SDLK_EQUALS = '=', + SDLK_GREATER = '>', + SDLK_QUESTION = '?', + SDLK_AT = '@', + /* + Skip uppercase letters + */ + SDLK_LEFTBRACKET = '[', + SDLK_BACKSLASH = '\\', + SDLK_RIGHTBRACKET = ']', + SDLK_CARET = '^', + SDLK_UNDERSCORE = '_', + SDLK_BACKQUOTE = '`', + SDLK_a = 'a', + SDLK_b = 'b', + SDLK_c = 'c', + SDLK_d = 'd', + SDLK_e = 'e', + SDLK_f = 'f', + SDLK_g = 'g', + SDLK_h = 'h', + SDLK_i = 'i', + SDLK_j = 'j', + SDLK_k = 'k', + SDLK_l = 'l', + SDLK_m = 'm', + SDLK_n = 'n', + SDLK_o = 'o', + SDLK_p = 'p', + SDLK_q = 'q', + SDLK_r = 'r', + SDLK_s = 's', + SDLK_t = 't', + SDLK_u = 'u', + SDLK_v = 'v', + SDLK_w = 'w', + SDLK_x = 'x', + SDLK_y = 'y', + SDLK_z = 'z', + + SDLK_CAPSLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CAPSLOCK), + + SDLK_F1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F1), + SDLK_F2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F2), + SDLK_F3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F3), + SDLK_F4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F4), + SDLK_F5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F5), + SDLK_F6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F6), + SDLK_F7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F7), + SDLK_F8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F8), + SDLK_F9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F9), + SDLK_F10 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F10), + SDLK_F11 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F11), + SDLK_F12 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F12), + + SDLK_PRINTSCREEN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRINTSCREEN), + SDLK_SCROLLLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SCROLLLOCK), + SDLK_PAUSE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAUSE), + SDLK_INSERT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_INSERT), + SDLK_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HOME), + SDLK_PAGEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEUP), + SDLK_DELETE = '\177', + SDLK_END = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_END), + SDLK_PAGEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEDOWN), + SDLK_RIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RIGHT), + SDLK_LEFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LEFT), + SDLK_DOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DOWN), + SDLK_UP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UP), + + SDLK_NUMLOCKCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_NUMLOCKCLEAR), + SDLK_KP_DIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DIVIDE), + SDLK_KP_MULTIPLY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MULTIPLY), + SDLK_KP_MINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MINUS), + SDLK_KP_PLUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUS), + SDLK_KP_ENTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_ENTER), + SDLK_KP_1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_1), + SDLK_KP_2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_2), + SDLK_KP_3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_3), + SDLK_KP_4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_4), + SDLK_KP_5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_5), + SDLK_KP_6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_6), + SDLK_KP_7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_7), + SDLK_KP_8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_8), + SDLK_KP_9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_9), + SDLK_KP_0 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_0), + SDLK_KP_PERIOD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERIOD), + + SDLK_APPLICATION = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APPLICATION), + SDLK_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_POWER), + SDLK_KP_EQUALS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALS), + SDLK_F13 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F13), + SDLK_F14 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F14), + SDLK_F15 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F15), + SDLK_F16 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F16), + SDLK_F17 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F17), + SDLK_F18 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F18), + SDLK_F19 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F19), + SDLK_F20 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F20), + SDLK_F21 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F21), + SDLK_F22 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F22), + SDLK_F23 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F23), + SDLK_F24 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F24), + SDLK_EXECUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXECUTE), + SDLK_HELP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HELP), + SDLK_MENU = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MENU), + SDLK_SELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SELECT), + SDLK_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_STOP), + SDLK_AGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AGAIN), + SDLK_UNDO = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UNDO), + SDLK_CUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CUT), + SDLK_COPY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COPY), + SDLK_PASTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PASTE), + SDLK_FIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_FIND), + SDLK_MUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MUTE), + SDLK_VOLUMEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEUP), + SDLK_VOLUMEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEDOWN), + SDLK_KP_COMMA = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COMMA), + SDLK_KP_EQUALSAS400 = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALSAS400), + + SDLK_ALTERASE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ALTERASE), + SDLK_SYSREQ = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SYSREQ), + SDLK_CANCEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CANCEL), + SDLK_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEAR), + SDLK_PRIOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRIOR), + SDLK_RETURN2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RETURN2), + SDLK_SEPARATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SEPARATOR), + SDLK_OUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OUT), + SDLK_OPER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OPER), + SDLK_CLEARAGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEARAGAIN), + SDLK_CRSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CRSEL), + SDLK_EXSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXSEL), + + SDLK_KP_00 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_00), + SDLK_KP_000 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_000), + SDLK_THOUSANDSSEPARATOR = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_THOUSANDSSEPARATOR), + SDLK_DECIMALSEPARATOR = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DECIMALSEPARATOR), + SDLK_CURRENCYUNIT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYUNIT), + SDLK_CURRENCYSUBUNIT = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYSUBUNIT), + SDLK_KP_LEFTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTPAREN), + SDLK_KP_RIGHTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTPAREN), + SDLK_KP_LEFTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTBRACE), + SDLK_KP_RIGHTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTBRACE), + SDLK_KP_TAB = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_TAB), + SDLK_KP_BACKSPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BACKSPACE), + SDLK_KP_A = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_A), + SDLK_KP_B = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_B), + SDLK_KP_C = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_C), + SDLK_KP_D = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_D), + SDLK_KP_E = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_E), + SDLK_KP_F = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_F), + SDLK_KP_XOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_XOR), + SDLK_KP_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_POWER), + SDLK_KP_PERCENT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERCENT), + SDLK_KP_LESS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LESS), + SDLK_KP_GREATER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_GREATER), + SDLK_KP_AMPERSAND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AMPERSAND), + SDLK_KP_DBLAMPERSAND = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLAMPERSAND), + SDLK_KP_VERTICALBAR = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_VERTICALBAR), + SDLK_KP_DBLVERTICALBAR = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLVERTICALBAR), + SDLK_KP_COLON = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COLON), + SDLK_KP_HASH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HASH), + SDLK_KP_SPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_SPACE), + SDLK_KP_AT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AT), + SDLK_KP_EXCLAM = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EXCLAM), + SDLK_KP_MEMSTORE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSTORE), + SDLK_KP_MEMRECALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMRECALL), + SDLK_KP_MEMCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMCLEAR), + SDLK_KP_MEMADD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMADD), + SDLK_KP_MEMSUBTRACT = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSUBTRACT), + SDLK_KP_MEMMULTIPLY = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMMULTIPLY), + SDLK_KP_MEMDIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMDIVIDE), + SDLK_KP_PLUSMINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUSMINUS), + SDLK_KP_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEAR), + SDLK_KP_CLEARENTRY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEARENTRY), + SDLK_KP_BINARY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BINARY), + SDLK_KP_OCTAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_OCTAL), + SDLK_KP_DECIMAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DECIMAL), + SDLK_KP_HEXADECIMAL = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HEXADECIMAL), + + SDLK_LCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LCTRL), + SDLK_LSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LSHIFT), + SDLK_LALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LALT), + SDLK_LGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LGUI), + SDLK_RCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RCTRL), + SDLK_RSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RSHIFT), + SDLK_RALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RALT), + SDLK_RGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RGUI), + + SDLK_MODE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MODE), + + SDLK_AUDIONEXT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIONEXT), + SDLK_AUDIOPREV = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPREV), + SDLK_AUDIOSTOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOSTOP), + SDLK_AUDIOPLAY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPLAY), + SDLK_AUDIOMUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOMUTE), + SDLK_MEDIASELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIASELECT), + SDLK_WWW = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_WWW), + SDLK_MAIL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MAIL), + SDLK_CALCULATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CALCULATOR), + SDLK_COMPUTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COMPUTER), + SDLK_AC_SEARCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_SEARCH), + SDLK_AC_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_HOME), + SDLK_AC_BACK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BACK), + SDLK_AC_FORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_FORWARD), + SDLK_AC_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_STOP), + SDLK_AC_REFRESH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_REFRESH), + SDLK_AC_BOOKMARKS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BOOKMARKS), + + SDLK_BRIGHTNESSDOWN = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSDOWN), + SDLK_BRIGHTNESSUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSUP), + SDLK_DISPLAYSWITCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DISPLAYSWITCH), + SDLK_KBDILLUMTOGGLE = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMTOGGLE), + SDLK_KBDILLUMDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMDOWN), + SDLK_KBDILLUMUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMUP), + SDLK_EJECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EJECT), + SDLK_SLEEP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SLEEP) +}; + +/** + * \brief Enumeration of valid key mods (possibly OR'd together). + */ +typedef enum +{ + KMOD_NONE = 0x0000, + KMOD_LSHIFT = 0x0001, + KMOD_RSHIFT = 0x0002, + KMOD_LCTRL = 0x0040, + KMOD_RCTRL = 0x0080, + KMOD_LALT = 0x0100, + KMOD_RALT = 0x0200, + KMOD_LGUI = 0x0400, + KMOD_RGUI = 0x0800, + KMOD_NUM = 0x1000, + KMOD_CAPS = 0x2000, + KMOD_MODE = 0x4000, + KMOD_RESERVED = 0x8000 +} SDL_Keymod; + +#define KMOD_CTRL (KMOD_LCTRL|KMOD_RCTRL) +#define KMOD_SHIFT (KMOD_LSHIFT|KMOD_RSHIFT) +#define KMOD_ALT (KMOD_LALT|KMOD_RALT) +#define KMOD_GUI (KMOD_LGUI|KMOD_RGUI) + +#endif /* _SDL_keycode_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_loadso.h b/Template/Game/Source/External/SDL/include/SDL_loadso.h new file mode 100644 index 0000000..3d540bd --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_loadso.h @@ -0,0 +1,81 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_loadso.h + * + * System dependent library loading routines + * + * Some things to keep in mind: + * \li These functions only work on C function names. Other languages may + * have name mangling and intrinsic language support that varies from + * compiler to compiler. + * \li Make sure you declare your function pointers with the same calling + * convention as the actual library function. Your code will crash + * mysteriously if you do not do this. + * \li Avoid namespace collisions. If you load a symbol from the library, + * it is not defined whether or not it goes into the global symbol + * namespace for the application. If it does and it conflicts with + * symbols in your code or other shared libraries, you will not get + * the results you expect. :) + */ + +#ifndef _SDL_loadso_h +#define _SDL_loadso_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * This function dynamically loads a shared object and returns a pointer + * to the object handle (or NULL if there was an error). + * The 'sofile' parameter is a system dependent name of the object file. + */ +extern DECLSPEC void *SDLCALL SDL_LoadObject(const char *sofile); + +/** + * Given an object handle, this function looks up the address of the + * named function in the shared object and returns it. This address + * is no longer valid after calling SDL_UnloadObject(). + */ +extern DECLSPEC void *SDLCALL SDL_LoadFunction(void *handle, + const char *name); + +/** + * Unload a shared object from memory. + */ +extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_loadso_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_log.h b/Template/Game/Source/External/SDL/include/SDL_log.h new file mode 100644 index 0000000..09be110 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_log.h @@ -0,0 +1,211 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_log.h + * + * Simple log messages with categories and priorities. + * + * By default logs are quiet, but if you're debugging SDL you might want: + * + * SDL_LogSetAllPriority(SDL_LOG_PRIORITY_WARN); + * + * Here's where the messages go on different platforms: + * Windows: debug output stream + * Android: log output + * Others: standard error output (stderr) + */ + +#ifndef _SDL_log_h +#define _SDL_log_h + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + + +/** + * \brief The maximum size of a log message + * + * Messages longer than the maximum size will be truncated + */ +#define SDL_MAX_LOG_MESSAGE 4096 + +/** + * \brief The predefined log categories + * + * By default the application category is enabled at the INFO level, + * the assert category is enabled at the WARN level, test is enabled + * at the VERBOSE level and all other categories are enabled at the + * CRITICAL level. + */ +enum +{ + SDL_LOG_CATEGORY_APPLICATION, + SDL_LOG_CATEGORY_ERROR, + SDL_LOG_CATEGORY_ASSERT, + SDL_LOG_CATEGORY_SYSTEM, + SDL_LOG_CATEGORY_AUDIO, + SDL_LOG_CATEGORY_VIDEO, + SDL_LOG_CATEGORY_RENDER, + SDL_LOG_CATEGORY_INPUT, + SDL_LOG_CATEGORY_TEST, + + /* Reserved for future SDL library use */ + SDL_LOG_CATEGORY_RESERVED1, + SDL_LOG_CATEGORY_RESERVED2, + SDL_LOG_CATEGORY_RESERVED3, + SDL_LOG_CATEGORY_RESERVED4, + SDL_LOG_CATEGORY_RESERVED5, + SDL_LOG_CATEGORY_RESERVED6, + SDL_LOG_CATEGORY_RESERVED7, + SDL_LOG_CATEGORY_RESERVED8, + SDL_LOG_CATEGORY_RESERVED9, + SDL_LOG_CATEGORY_RESERVED10, + + /* Beyond this point is reserved for application use, e.g. + enum { + MYAPP_CATEGORY_AWESOME1 = SDL_LOG_CATEGORY_CUSTOM, + MYAPP_CATEGORY_AWESOME2, + MYAPP_CATEGORY_AWESOME3, + ... + }; + */ + SDL_LOG_CATEGORY_CUSTOM +}; + +/** + * \brief The predefined log priorities + */ +typedef enum +{ + SDL_LOG_PRIORITY_VERBOSE = 1, + SDL_LOG_PRIORITY_DEBUG, + SDL_LOG_PRIORITY_INFO, + SDL_LOG_PRIORITY_WARN, + SDL_LOG_PRIORITY_ERROR, + SDL_LOG_PRIORITY_CRITICAL, + SDL_NUM_LOG_PRIORITIES +} SDL_LogPriority; + + +/** + * \brief Set the priority of all log categories + */ +extern DECLSPEC void SDLCALL SDL_LogSetAllPriority(SDL_LogPriority priority); + +/** + * \brief Set the priority of a particular log category + */ +extern DECLSPEC void SDLCALL SDL_LogSetPriority(int category, + SDL_LogPriority priority); + +/** + * \brief Get the priority of a particular log category + */ +extern DECLSPEC SDL_LogPriority SDLCALL SDL_LogGetPriority(int category); + +/** + * \brief Reset all priorities to default. + * + * \note This is called in SDL_Quit(). + */ +extern DECLSPEC void SDLCALL SDL_LogResetPriorities(void); + +/** + * \brief Log a message with SDL_LOG_CATEGORY_APPLICATION and SDL_LOG_PRIORITY_INFO + */ +extern DECLSPEC void SDLCALL SDL_Log(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); + +/** + * \brief Log a message with SDL_LOG_PRIORITY_VERBOSE + */ +extern DECLSPEC void SDLCALL SDL_LogVerbose(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); + +/** + * \brief Log a message with SDL_LOG_PRIORITY_DEBUG + */ +extern DECLSPEC void SDLCALL SDL_LogDebug(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); + +/** + * \brief Log a message with SDL_LOG_PRIORITY_INFO + */ +extern DECLSPEC void SDLCALL SDL_LogInfo(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); + +/** + * \brief Log a message with SDL_LOG_PRIORITY_WARN + */ +extern DECLSPEC void SDLCALL SDL_LogWarn(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); + +/** + * \brief Log a message with SDL_LOG_PRIORITY_ERROR + */ +extern DECLSPEC void SDLCALL SDL_LogError(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); + +/** + * \brief Log a message with SDL_LOG_PRIORITY_CRITICAL + */ +extern DECLSPEC void SDLCALL SDL_LogCritical(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); + +/** + * \brief Log a message with the specified category and priority. + */ +extern DECLSPEC void SDLCALL SDL_LogMessage(int category, + SDL_LogPriority priority, + SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(3); + +/** + * \brief Log a message with the specified category and priority. + */ +extern DECLSPEC void SDLCALL SDL_LogMessageV(int category, + SDL_LogPriority priority, + const char *fmt, va_list ap); + +/** + * \brief The prototype for the log output function + */ +typedef void (*SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message); + +/** + * \brief Get the current log output function. + */ +extern DECLSPEC void SDLCALL SDL_LogGetOutputFunction(SDL_LogOutputFunction *callback, void **userdata); + +/** + * \brief This function allows you to replace the default log output + * function with one of your own. + */ +extern DECLSPEC void SDLCALL SDL_LogSetOutputFunction(SDL_LogOutputFunction callback, void *userdata); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_log_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_main.h b/Template/Game/Source/External/SDL/include/SDL_main.h new file mode 100644 index 0000000..9ce3754 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_main.h @@ -0,0 +1,161 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_main_h +#define _SDL_main_h + +#include "SDL_stdinc.h" + +/** + * \file SDL_main.h + * + * Redefine main() on some platforms so that it is called by SDL. + */ + +#ifndef SDL_MAIN_HANDLED +#if defined(__WIN32__) +/* On Windows SDL provides WinMain(), which parses the command line and passes + the arguments to your main function. + + If you provide your own WinMain(), you may define SDL_MAIN_HANDLED + */ +#define SDL_MAIN_AVAILABLE + +#elif defined(__WINRT__) +/* On WinRT, SDL provides a main function that initializes CoreApplication, + creating an instance of IFrameworkView in the process. + + Please note that #include'ing SDL_main.h is not enough to get a main() + function working. In non-XAML apps, the file, + src/main/winrt/SDL_WinRT_main_NonXAML.cpp, or a copy of it, must be compiled + into the app itself. In XAML apps, the function, SDL_WinRTRunApp must be + called, with a pointer to the Direct3D-hosted XAML control passed in. +*/ +#define SDL_MAIN_NEEDED + +#elif defined(__IPHONEOS__) +/* On iOS SDL provides a main function that creates an application delegate + and starts the iOS application run loop. + + See src/video/uikit/SDL_uikitappdelegate.m for more details. + */ +#define SDL_MAIN_NEEDED + +#elif defined(__ANDROID__) +/* On Android SDL provides a Java class in SDLActivity.java that is the + main activity entry point. + + See README-android.txt for more details on extending that class. + */ +#define SDL_MAIN_NEEDED + +#elif defined(__NACL__) +/* On NACL we use ppapi_simple to set up the application helper code, + then wait for the first PSE_INSTANCE_DIDCHANGEVIEW event before + starting the user main function. + All user code is run in a separate thread by ppapi_simple, thus + allowing for blocking io to take place via nacl_io +*/ +#define SDL_MAIN_NEEDED + +#endif +#endif /* SDL_MAIN_HANDLED */ + +#ifdef __cplusplus +#define C_LINKAGE "C" +#else +#define C_LINKAGE +#endif /* __cplusplus */ + +/** + * \file SDL_main.h + * + * The application's main() function must be called with C linkage, + * and should be declared like this: + * \code + * #ifdef __cplusplus + * extern "C" + * #endif + * int main(int argc, char *argv[]) + * { + * } + * \endcode + */ + +#if defined(SDL_MAIN_NEEDED) || defined(SDL_MAIN_AVAILABLE) +#define main SDL_main +#endif + +/** + * The prototype for the application's main() function + */ +extern C_LINKAGE int SDL_main(int argc, char *argv[]); + + +#include "begin_code.h" +#ifdef __cplusplus +extern "C" { +#endif + +/** + * This is called by the real SDL main function to let the rest of the + * library know that initialization was done properly. + * + * Calling this yourself without knowing what you're doing can cause + * crashes and hard to diagnose problems with your application. + */ +extern DECLSPEC void SDLCALL SDL_SetMainReady(void); + +#ifdef __WIN32__ + +/** + * This can be called to set the application class at startup + */ +extern DECLSPEC int SDLCALL SDL_RegisterApp(char *name, Uint32 style, + void *hInst); +extern DECLSPEC void SDLCALL SDL_UnregisterApp(void); + +#endif /* __WIN32__ */ + + +#ifdef __WINRT__ + +/** + * \brief Initializes and launches an SDL/WinRT application. + * + * \param mainFunction The SDL app's C-style main(). + * \param reserved Reserved for future use; should be NULL + * \return 0 on success, -1 on failure. On failure, use SDL_GetError to retrieve more + * information on the failure. + */ +extern DECLSPEC int SDLCALL SDL_WinRTRunApp(int (*mainFunction)(int, char **), void * reserved); + +#endif /* __WINRT__ */ + + +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_main_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_messagebox.h b/Template/Game/Source/External/SDL/include/SDL_messagebox.h new file mode 100644 index 0000000..ec370db --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_messagebox.h @@ -0,0 +1,144 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_messagebox_h +#define _SDL_messagebox_h + +#include "SDL_stdinc.h" +#include "SDL_video.h" /* For SDL_Window */ + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief SDL_MessageBox flags. If supported will display warning icon, etc. + */ +typedef enum +{ + SDL_MESSAGEBOX_ERROR = 0x00000010, /**< error dialog */ + SDL_MESSAGEBOX_WARNING = 0x00000020, /**< warning dialog */ + SDL_MESSAGEBOX_INFORMATION = 0x00000040 /**< informational dialog */ +} SDL_MessageBoxFlags; + +/** + * \brief Flags for SDL_MessageBoxButtonData. + */ +typedef enum +{ + SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 0x00000001, /**< Marks the default button when return is hit */ + SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 0x00000002 /**< Marks the default button when escape is hit */ +} SDL_MessageBoxButtonFlags; + +/** + * \brief Individual button data. + */ +typedef struct +{ + Uint32 flags; /**< ::SDL_MessageBoxButtonFlags */ + int buttonid; /**< User defined button id (value returned via SDL_ShowMessageBox) */ + const char * text; /**< The UTF-8 button text */ +} SDL_MessageBoxButtonData; + +/** + * \brief RGB value used in a message box color scheme + */ +typedef struct +{ + Uint8 r, g, b; +} SDL_MessageBoxColor; + +typedef enum +{ + SDL_MESSAGEBOX_COLOR_BACKGROUND, + SDL_MESSAGEBOX_COLOR_TEXT, + SDL_MESSAGEBOX_COLOR_BUTTON_BORDER, + SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND, + SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED, + SDL_MESSAGEBOX_COLOR_MAX +} SDL_MessageBoxColorType; + +/** + * \brief A set of colors to use for message box dialogs + */ +typedef struct +{ + SDL_MessageBoxColor colors[SDL_MESSAGEBOX_COLOR_MAX]; +} SDL_MessageBoxColorScheme; + +/** + * \brief MessageBox structure containing title, text, window, etc. + */ +typedef struct +{ + Uint32 flags; /**< ::SDL_MessageBoxFlags */ + SDL_Window *window; /**< Parent window, can be NULL */ + const char *title; /**< UTF-8 title */ + const char *message; /**< UTF-8 message text */ + + int numbuttons; + const SDL_MessageBoxButtonData *buttons; + + const SDL_MessageBoxColorScheme *colorScheme; /**< ::SDL_MessageBoxColorScheme, can be NULL to use system settings */ +} SDL_MessageBoxData; + +/** + * \brief Create a modal message box. + * + * \param messageboxdata The SDL_MessageBoxData structure with title, text, etc. + * \param buttonid The pointer to which user id of hit button should be copied. + * + * \return -1 on error, otherwise 0 and buttonid contains user id of button + * hit or -1 if dialog was closed. + * + * \note This function should be called on the thread that created the parent + * window, or on the main thread if the messagebox has no parent. It will + * block execution of that thread until the user clicks a button or + * closes the messagebox. + */ +extern DECLSPEC int SDLCALL SDL_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid); + +/** + * \brief Create a simple modal message box + * + * \param flags ::SDL_MessageBoxFlags + * \param title UTF-8 title text + * \param message UTF-8 message text + * \param window The parent window, or NULL for no parent + * + * \return 0 on success, -1 on error + * + * \sa SDL_ShowMessageBox + */ +extern DECLSPEC int SDLCALL SDL_ShowSimpleMessageBox(Uint32 flags, const char *title, const char *message, SDL_Window *window); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_messagebox_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_mouse.h b/Template/Game/Source/External/SDL/include/SDL_mouse.h new file mode 100644 index 0000000..ea9622f --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_mouse.h @@ -0,0 +1,300 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_mouse.h + * + * Include file for SDL mouse event handling. + */ + +#ifndef _SDL_mouse_h +#define _SDL_mouse_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct SDL_Cursor SDL_Cursor; /* Implementation dependent */ + +/** + * \brief Cursor types for SDL_CreateSystemCursor. + */ +typedef enum +{ + SDL_SYSTEM_CURSOR_ARROW, /**< Arrow */ + SDL_SYSTEM_CURSOR_IBEAM, /**< I-beam */ + SDL_SYSTEM_CURSOR_WAIT, /**< Wait */ + SDL_SYSTEM_CURSOR_CROSSHAIR, /**< Crosshair */ + SDL_SYSTEM_CURSOR_WAITARROW, /**< Small wait cursor (or Wait if not available) */ + SDL_SYSTEM_CURSOR_SIZENWSE, /**< Double arrow pointing northwest and southeast */ + SDL_SYSTEM_CURSOR_SIZENESW, /**< Double arrow pointing northeast and southwest */ + SDL_SYSTEM_CURSOR_SIZEWE, /**< Double arrow pointing west and east */ + SDL_SYSTEM_CURSOR_SIZENS, /**< Double arrow pointing north and south */ + SDL_SYSTEM_CURSOR_SIZEALL, /**< Four pointed arrow pointing north, south, east, and west */ + SDL_SYSTEM_CURSOR_NO, /**< Slashed circle or crossbones */ + SDL_SYSTEM_CURSOR_HAND, /**< Hand */ + SDL_NUM_SYSTEM_CURSORS +} SDL_SystemCursor; + +/** + * \brief Scroll direction types for the Scroll event + */ +typedef enum +{ + SDL_MOUSEWHEEL_NORMAL, /**< The scroll direction is normal */ + SDL_MOUSEWHEEL_FLIPPED /**< The scroll direction is flipped / natural */ +} SDL_MouseWheelDirection; + +/* Function prototypes */ + +/** + * \brief Get the window which currently has mouse focus. + */ +extern DECLSPEC SDL_Window * SDLCALL SDL_GetMouseFocus(void); + +/** + * \brief Retrieve the current state of the mouse. + * + * The current button state is returned as a button bitmask, which can + * be tested using the SDL_BUTTON(X) macros, and x and y are set to the + * mouse cursor position relative to the focus window for the currently + * selected mouse. You can pass NULL for either x or y. + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetMouseState(int *x, int *y); + +/** + * \brief Get the current state of the mouse, in relation to the desktop + * + * This works just like SDL_GetMouseState(), but the coordinates will be + * reported relative to the top-left of the desktop. This can be useful if + * you need to track the mouse outside of a specific window and + * SDL_CaptureMouse() doesn't fit your needs. For example, it could be + * useful if you need to track the mouse while dragging a window, where + * coordinates relative to a window might not be in sync at all times. + * + * \note SDL_GetMouseState() returns the mouse position as SDL understands + * it from the last pump of the event queue. This function, however, + * queries the OS for the current mouse position, and as such, might + * be a slightly less efficient function. Unless you know what you're + * doing and have a good reason to use this function, you probably want + * SDL_GetMouseState() instead. + * + * \param x Returns the current X coord, relative to the desktop. Can be NULL. + * \param y Returns the current Y coord, relative to the desktop. Can be NULL. + * \return The current button state as a bitmask, which can be tested using the SDL_BUTTON(X) macros. + * + * \sa SDL_GetMouseState + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetGlobalMouseState(int *x, int *y); + +/** + * \brief Retrieve the relative state of the mouse. + * + * The current button state is returned as a button bitmask, which can + * be tested using the SDL_BUTTON(X) macros, and x and y are set to the + * mouse deltas since the last call to SDL_GetRelativeMouseState(). + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetRelativeMouseState(int *x, int *y); + +/** + * \brief Moves the mouse to the given position within the window. + * + * \param window The window to move the mouse into, or NULL for the current mouse focus + * \param x The x coordinate within the window + * \param y The y coordinate within the window + * + * \note This function generates a mouse motion event + */ +extern DECLSPEC void SDLCALL SDL_WarpMouseInWindow(SDL_Window * window, + int x, int y); + +/** + * \brief Moves the mouse to the given position in global screen space. + * + * \param x The x coordinate + * \param y The y coordinate + * \return 0 on success, -1 on error (usually: unsupported by a platform). + * + * \note This function generates a mouse motion event + */ +extern DECLSPEC int SDLCALL SDL_WarpMouseGlobal(int x, int y); + +/** + * \brief Set relative mouse mode. + * + * \param enabled Whether or not to enable relative mode + * + * \return 0 on success, or -1 if relative mode is not supported. + * + * While the mouse is in relative mode, the cursor is hidden, and the + * driver will try to report continuous motion in the current window. + * Only relative motion events will be delivered, the mouse position + * will not change. + * + * \note This function will flush any pending mouse motion. + * + * \sa SDL_GetRelativeMouseMode() + */ +extern DECLSPEC int SDLCALL SDL_SetRelativeMouseMode(SDL_bool enabled); + +/** + * \brief Capture the mouse, to track input outside an SDL window. + * + * \param enabled Whether or not to enable capturing + * + * Capturing enables your app to obtain mouse events globally, instead of + * just within your window. Not all video targets support this function. + * When capturing is enabled, the current window will get all mouse events, + * but unlike relative mode, no change is made to the cursor and it is + * not restrained to your window. + * + * This function may also deny mouse input to other windows--both those in + * your application and others on the system--so you should use this + * function sparingly, and in small bursts. For example, you might want to + * track the mouse while the user is dragging something, until the user + * releases a mouse button. It is not recommended that you capture the mouse + * for long periods of time, such as the entire time your app is running. + * + * While captured, mouse events still report coordinates relative to the + * current (foreground) window, but those coordinates may be outside the + * bounds of the window (including negative values). Capturing is only + * allowed for the foreground window. If the window loses focus while + * capturing, the capture will be disabled automatically. + * + * While capturing is enabled, the current window will have the + * SDL_WINDOW_MOUSE_CAPTURE flag set. + * + * \return 0 on success, or -1 if not supported. + */ +extern DECLSPEC int SDLCALL SDL_CaptureMouse(SDL_bool enabled); + +/** + * \brief Query whether relative mouse mode is enabled. + * + * \sa SDL_SetRelativeMouseMode() + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GetRelativeMouseMode(void); + +/** + * \brief Create a cursor, using the specified bitmap data and + * mask (in MSB format). + * + * The cursor width must be a multiple of 8 bits. + * + * The cursor is created in black and white according to the following: + * + * + * + * + * + * + *
data mask resulting pixel on screen
0 1 White
1 1 Black
0 0 Transparent
1 0 Inverted color if possible, black + * if not.
+ * + * \sa SDL_FreeCursor() + */ +extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateCursor(const Uint8 * data, + const Uint8 * mask, + int w, int h, int hot_x, + int hot_y); + +/** + * \brief Create a color cursor. + * + * \sa SDL_FreeCursor() + */ +extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateColorCursor(SDL_Surface *surface, + int hot_x, + int hot_y); + +/** + * \brief Create a system cursor. + * + * \sa SDL_FreeCursor() + */ +extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateSystemCursor(SDL_SystemCursor id); + +/** + * \brief Set the active cursor. + */ +extern DECLSPEC void SDLCALL SDL_SetCursor(SDL_Cursor * cursor); + +/** + * \brief Return the active cursor. + */ +extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetCursor(void); + +/** + * \brief Return the default cursor. + */ +extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetDefaultCursor(void); + +/** + * \brief Frees a cursor created with SDL_CreateCursor(). + * + * \sa SDL_CreateCursor() + */ +extern DECLSPEC void SDLCALL SDL_FreeCursor(SDL_Cursor * cursor); + +/** + * \brief Toggle whether or not the cursor is shown. + * + * \param toggle 1 to show the cursor, 0 to hide it, -1 to query the current + * state. + * + * \return 1 if the cursor is shown, or 0 if the cursor is hidden. + */ +extern DECLSPEC int SDLCALL SDL_ShowCursor(int toggle); + +/** + * Used as a mask when testing buttons in buttonstate. + * - Button 1: Left mouse button + * - Button 2: Middle mouse button + * - Button 3: Right mouse button + */ +#define SDL_BUTTON(X) (1 << ((X)-1)) +#define SDL_BUTTON_LEFT 1 +#define SDL_BUTTON_MIDDLE 2 +#define SDL_BUTTON_RIGHT 3 +#define SDL_BUTTON_X1 4 +#define SDL_BUTTON_X2 5 +#define SDL_BUTTON_LMASK SDL_BUTTON(SDL_BUTTON_LEFT) +#define SDL_BUTTON_MMASK SDL_BUTTON(SDL_BUTTON_MIDDLE) +#define SDL_BUTTON_RMASK SDL_BUTTON(SDL_BUTTON_RIGHT) +#define SDL_BUTTON_X1MASK SDL_BUTTON(SDL_BUTTON_X1) +#define SDL_BUTTON_X2MASK SDL_BUTTON(SDL_BUTTON_X2) + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_mouse_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_mutex.h b/Template/Game/Source/External/SDL/include/SDL_mutex.h new file mode 100644 index 0000000..b7e3973 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_mutex.h @@ -0,0 +1,251 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_mutex_h +#define _SDL_mutex_h + +/** + * \file SDL_mutex.h + * + * Functions to provide thread synchronization primitives. + */ + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Synchronization functions which can time out return this value + * if they time out. + */ +#define SDL_MUTEX_TIMEDOUT 1 + +/** + * This is the timeout value which corresponds to never time out. + */ +#define SDL_MUTEX_MAXWAIT (~(Uint32)0) + + +/** + * \name Mutex functions + */ +/* @{ */ + +/* The SDL mutex structure, defined in SDL_sysmutex.c */ +struct SDL_mutex; +typedef struct SDL_mutex SDL_mutex; + +/** + * Create a mutex, initialized unlocked. + */ +extern DECLSPEC SDL_mutex *SDLCALL SDL_CreateMutex(void); + +/** + * Lock the mutex. + * + * \return 0, or -1 on error. + */ +#define SDL_mutexP(m) SDL_LockMutex(m) +extern DECLSPEC int SDLCALL SDL_LockMutex(SDL_mutex * mutex); + +/** + * Try to lock the mutex + * + * \return 0, SDL_MUTEX_TIMEDOUT, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_TryLockMutex(SDL_mutex * mutex); + +/** + * Unlock the mutex. + * + * \return 0, or -1 on error. + * + * \warning It is an error to unlock a mutex that has not been locked by + * the current thread, and doing so results in undefined behavior. + */ +#define SDL_mutexV(m) SDL_UnlockMutex(m) +extern DECLSPEC int SDLCALL SDL_UnlockMutex(SDL_mutex * mutex); + +/** + * Destroy a mutex. + */ +extern DECLSPEC void SDLCALL SDL_DestroyMutex(SDL_mutex * mutex); + +/* @} *//* Mutex functions */ + + +/** + * \name Semaphore functions + */ +/* @{ */ + +/* The SDL semaphore structure, defined in SDL_syssem.c */ +struct SDL_semaphore; +typedef struct SDL_semaphore SDL_sem; + +/** + * Create a semaphore, initialized with value, returns NULL on failure. + */ +extern DECLSPEC SDL_sem *SDLCALL SDL_CreateSemaphore(Uint32 initial_value); + +/** + * Destroy a semaphore. + */ +extern DECLSPEC void SDLCALL SDL_DestroySemaphore(SDL_sem * sem); + +/** + * This function suspends the calling thread until the semaphore pointed + * to by \c sem has a positive count. It then atomically decreases the + * semaphore count. + */ +extern DECLSPEC int SDLCALL SDL_SemWait(SDL_sem * sem); + +/** + * Non-blocking variant of SDL_SemWait(). + * + * \return 0 if the wait succeeds, ::SDL_MUTEX_TIMEDOUT if the wait would + * block, and -1 on error. + */ +extern DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem * sem); + +/** + * Variant of SDL_SemWait() with a timeout in milliseconds. + * + * \return 0 if the wait succeeds, ::SDL_MUTEX_TIMEDOUT if the wait does not + * succeed in the allotted time, and -1 on error. + * + * \warning On some platforms this function is implemented by looping with a + * delay of 1 ms, and so should be avoided if possible. + */ +extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem * sem, Uint32 ms); + +/** + * Atomically increases the semaphore's count (not blocking). + * + * \return 0, or -1 on error. + */ +extern DECLSPEC int SDLCALL SDL_SemPost(SDL_sem * sem); + +/** + * Returns the current count of the semaphore. + */ +extern DECLSPEC Uint32 SDLCALL SDL_SemValue(SDL_sem * sem); + +/* @} *//* Semaphore functions */ + + +/** + * \name Condition variable functions + */ +/* @{ */ + +/* The SDL condition variable structure, defined in SDL_syscond.c */ +struct SDL_cond; +typedef struct SDL_cond SDL_cond; + +/** + * Create a condition variable. + * + * Typical use of condition variables: + * + * Thread A: + * SDL_LockMutex(lock); + * while ( ! condition ) { + * SDL_CondWait(cond, lock); + * } + * SDL_UnlockMutex(lock); + * + * Thread B: + * SDL_LockMutex(lock); + * ... + * condition = true; + * ... + * SDL_CondSignal(cond); + * SDL_UnlockMutex(lock); + * + * There is some discussion whether to signal the condition variable + * with the mutex locked or not. There is some potential performance + * benefit to unlocking first on some platforms, but there are some + * potential race conditions depending on how your code is structured. + * + * In general it's safer to signal the condition variable while the + * mutex is locked. + */ +extern DECLSPEC SDL_cond *SDLCALL SDL_CreateCond(void); + +/** + * Destroy a condition variable. + */ +extern DECLSPEC void SDLCALL SDL_DestroyCond(SDL_cond * cond); + +/** + * Restart one of the threads that are waiting on the condition variable. + * + * \return 0 or -1 on error. + */ +extern DECLSPEC int SDLCALL SDL_CondSignal(SDL_cond * cond); + +/** + * Restart all threads that are waiting on the condition variable. + * + * \return 0 or -1 on error. + */ +extern DECLSPEC int SDLCALL SDL_CondBroadcast(SDL_cond * cond); + +/** + * Wait on the condition variable, unlocking the provided mutex. + * + * \warning The mutex must be locked before entering this function! + * + * The mutex is re-locked once the condition variable is signaled. + * + * \return 0 when it is signaled, or -1 on error. + */ +extern DECLSPEC int SDLCALL SDL_CondWait(SDL_cond * cond, SDL_mutex * mutex); + +/** + * Waits for at most \c ms milliseconds, and returns 0 if the condition + * variable is signaled, ::SDL_MUTEX_TIMEDOUT if the condition is not + * signaled in the allotted time, and -1 on error. + * + * \warning On some platforms this function is implemented by looping with a + * delay of 1 ms, and so should be avoided if possible. + */ +extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond * cond, + SDL_mutex * mutex, Uint32 ms); + +/* @} *//* Condition variable functions */ + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_mutex_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_name.h b/Template/Game/Source/External/SDL/include/SDL_name.h new file mode 100644 index 0000000..06cd4a5 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_name.h @@ -0,0 +1,33 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDLname_h_ +#define _SDLname_h_ + +#if defined(__STDC__) || defined(__cplusplus) +#define NeedFunctionPrototypes 1 +#endif + +#define SDL_NAME(X) SDL_##X + +#endif /* _SDLname_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_opengl.h b/Template/Game/Source/External/SDL/include/SDL_opengl.h new file mode 100644 index 0000000..780919b --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_opengl.h @@ -0,0 +1,2176 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_opengl.h + * + * This is a simple file to encapsulate the OpenGL API headers. + */ + +/** + * \def NO_SDL_GLEXT + * + * Define this if you have your own version of glext.h and want to disable the + * version included in SDL_opengl.h. + */ + +#ifndef _SDL_opengl_h +#define _SDL_opengl_h + +#include "SDL_config.h" + +#ifndef __IPHONEOS__ /* No OpenGL on iOS. */ + +/* + * Mesa 3-D graphics library + * + * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. + * Copyright (C) 2009 VMware, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#ifndef __gl_h_ +#define __gl_h_ + +#if defined(USE_MGL_NAMESPACE) +#include "gl_mangle.h" +#endif + + +/********************************************************************** + * Begin system-specific stuff. + */ + +#if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__) +#define __WIN32__ +#endif + +#if defined(__WIN32__) && !defined(__CYGWIN__) +# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ +# define GLAPI __declspec(dllexport) +# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ +# define GLAPI __declspec(dllimport) +# else /* for use with static link lib build of Win32 edition only */ +# define GLAPI extern +# endif /* _STATIC_MESA support */ +# if defined(__MINGW32__) && defined(GL_NO_STDCALL) || defined(UNDER_CE) /* The generated DLLs by MingW with STDCALL are not compatible with the ones done by Microsoft's compilers */ +# define GLAPIENTRY +# else +# define GLAPIENTRY __stdcall +# endif +#elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */ +# define GLAPI extern +# define GLAPIENTRY __stdcall +#elif (defined(__GNUC__) && __GNUC__ >= 4) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) +# define GLAPI __attribute__((visibility("default"))) +# define GLAPIENTRY +#endif /* WIN32 && !CYGWIN */ + +/* + * WINDOWS: Include windows.h here to define APIENTRY. + * It is also useful when applications include this file by + * including only glut.h, since glut.h depends on windows.h. + * Applications needing to include windows.h with parms other + * than "WIN32_LEAN_AND_MEAN" may include windows.h before + * glut.h or gl.h. + */ +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN 1 +#endif +#ifndef NOMINMAX /* don't define min() and max(). */ +#define NOMINMAX +#endif +#include +#endif + +#ifndef GLAPI +#define GLAPI extern +#endif + +#ifndef GLAPIENTRY +#define GLAPIENTRY +#endif + +#ifndef APIENTRY +#define APIENTRY GLAPIENTRY +#endif + +/* "P" suffix to be used for a pointer to a function */ +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif + +#ifndef GLAPIENTRYP +#define GLAPIENTRYP GLAPIENTRY * +#endif + +#if defined(PRAGMA_EXPORT_SUPPORTED) +#pragma export on +#endif + +/* + * End system-specific stuff. + **********************************************************************/ + + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define GL_VERSION_1_1 1 +#define GL_VERSION_1_2 1 +#define GL_VERSION_1_3 1 +#define GL_ARB_imaging 1 + + +/* + * Datatypes + */ +typedef unsigned int GLenum; +typedef unsigned char GLboolean; +typedef unsigned int GLbitfield; +typedef void GLvoid; +typedef signed char GLbyte; /* 1-byte signed */ +typedef short GLshort; /* 2-byte signed */ +typedef int GLint; /* 4-byte signed */ +typedef unsigned char GLubyte; /* 1-byte unsigned */ +typedef unsigned short GLushort; /* 2-byte unsigned */ +typedef unsigned int GLuint; /* 4-byte unsigned */ +typedef int GLsizei; /* 4-byte signed */ +typedef float GLfloat; /* single precision float */ +typedef float GLclampf; /* single precision float in [0,1] */ +typedef double GLdouble; /* double precision float */ +typedef double GLclampd; /* double precision float in [0,1] */ + + + +/* + * Constants + */ + +/* Boolean values */ +#define GL_FALSE 0 +#define GL_TRUE 1 + +/* Data types */ +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_2_BYTES 0x1407 +#define GL_3_BYTES 0x1408 +#define GL_4_BYTES 0x1409 +#define GL_DOUBLE 0x140A + +/* Primitives */ +#define GL_POINTS 0x0000 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_STRIP 0x0003 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +#define GL_QUADS 0x0007 +#define GL_QUAD_STRIP 0x0008 +#define GL_POLYGON 0x0009 + +/* Vertex Arrays */ +#define GL_VERTEX_ARRAY 0x8074 +#define GL_NORMAL_ARRAY 0x8075 +#define GL_COLOR_ARRAY 0x8076 +#define GL_INDEX_ARRAY 0x8077 +#define GL_TEXTURE_COORD_ARRAY 0x8078 +#define GL_EDGE_FLAG_ARRAY 0x8079 +#define GL_VERTEX_ARRAY_SIZE 0x807A +#define GL_VERTEX_ARRAY_TYPE 0x807B +#define GL_VERTEX_ARRAY_STRIDE 0x807C +#define GL_NORMAL_ARRAY_TYPE 0x807E +#define GL_NORMAL_ARRAY_STRIDE 0x807F +#define GL_COLOR_ARRAY_SIZE 0x8081 +#define GL_COLOR_ARRAY_TYPE 0x8082 +#define GL_COLOR_ARRAY_STRIDE 0x8083 +#define GL_INDEX_ARRAY_TYPE 0x8085 +#define GL_INDEX_ARRAY_STRIDE 0x8086 +#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A +#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C +#define GL_VERTEX_ARRAY_POINTER 0x808E +#define GL_NORMAL_ARRAY_POINTER 0x808F +#define GL_COLOR_ARRAY_POINTER 0x8090 +#define GL_INDEX_ARRAY_POINTER 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 +#define GL_V2F 0x2A20 +#define GL_V3F 0x2A21 +#define GL_C4UB_V2F 0x2A22 +#define GL_C4UB_V3F 0x2A23 +#define GL_C3F_V3F 0x2A24 +#define GL_N3F_V3F 0x2A25 +#define GL_C4F_N3F_V3F 0x2A26 +#define GL_T2F_V3F 0x2A27 +#define GL_T4F_V4F 0x2A28 +#define GL_T2F_C4UB_V3F 0x2A29 +#define GL_T2F_C3F_V3F 0x2A2A +#define GL_T2F_N3F_V3F 0x2A2B +#define GL_T2F_C4F_N3F_V3F 0x2A2C +#define GL_T4F_C4F_N3F_V4F 0x2A2D + +/* Matrix Mode */ +#define GL_MATRIX_MODE 0x0BA0 +#define GL_MODELVIEW 0x1700 +#define GL_PROJECTION 0x1701 +#define GL_TEXTURE 0x1702 + +/* Points */ +#define GL_POINT_SMOOTH 0x0B10 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_POINT_SIZE_RANGE 0x0B12 + +/* Lines */ +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_STIPPLE 0x0B24 +#define GL_LINE_STIPPLE_PATTERN 0x0B25 +#define GL_LINE_STIPPLE_REPEAT 0x0B26 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_LINE_WIDTH_RANGE 0x0B22 + +/* Polygons */ +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 +#define GL_CW 0x0900 +#define GL_CCW 0x0901 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_POLYGON_STIPPLE 0x0B42 +#define GL_EDGE_FLAG 0x0B43 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_FILL 0x8037 + +/* Display Lists */ +#define GL_COMPILE 0x1300 +#define GL_COMPILE_AND_EXECUTE 0x1301 +#define GL_LIST_BASE 0x0B32 +#define GL_LIST_INDEX 0x0B33 +#define GL_LIST_MODE 0x0B30 + +/* Depth buffer */ +#define GL_NEVER 0x0200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_BITS 0x0D56 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_COMPONENT 0x1902 + +/* Lighting */ +#define GL_LIGHTING 0x0B50 +#define GL_LIGHT0 0x4000 +#define GL_LIGHT1 0x4001 +#define GL_LIGHT2 0x4002 +#define GL_LIGHT3 0x4003 +#define GL_LIGHT4 0x4004 +#define GL_LIGHT5 0x4005 +#define GL_LIGHT6 0x4006 +#define GL_LIGHT7 0x4007 +#define GL_SPOT_EXPONENT 0x1205 +#define GL_SPOT_CUTOFF 0x1206 +#define GL_CONSTANT_ATTENUATION 0x1207 +#define GL_LINEAR_ATTENUATION 0x1208 +#define GL_QUADRATIC_ATTENUATION 0x1209 +#define GL_AMBIENT 0x1200 +#define GL_DIFFUSE 0x1201 +#define GL_SPECULAR 0x1202 +#define GL_SHININESS 0x1601 +#define GL_EMISSION 0x1600 +#define GL_POSITION 0x1203 +#define GL_SPOT_DIRECTION 0x1204 +#define GL_AMBIENT_AND_DIFFUSE 0x1602 +#define GL_COLOR_INDEXES 0x1603 +#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 +#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 +#define GL_LIGHT_MODEL_AMBIENT 0x0B53 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_SHADE_MODEL 0x0B54 +#define GL_FLAT 0x1D00 +#define GL_SMOOTH 0x1D01 +#define GL_COLOR_MATERIAL 0x0B57 +#define GL_COLOR_MATERIAL_FACE 0x0B55 +#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 +#define GL_NORMALIZE 0x0BA1 + +/* User clipping planes */ +#define GL_CLIP_PLANE0 0x3000 +#define GL_CLIP_PLANE1 0x3001 +#define GL_CLIP_PLANE2 0x3002 +#define GL_CLIP_PLANE3 0x3003 +#define GL_CLIP_PLANE4 0x3004 +#define GL_CLIP_PLANE5 0x3005 + +/* Accumulation buffer */ +#define GL_ACCUM_RED_BITS 0x0D58 +#define GL_ACCUM_GREEN_BITS 0x0D59 +#define GL_ACCUM_BLUE_BITS 0x0D5A +#define GL_ACCUM_ALPHA_BITS 0x0D5B +#define GL_ACCUM_CLEAR_VALUE 0x0B80 +#define GL_ACCUM 0x0100 +#define GL_ADD 0x0104 +#define GL_LOAD 0x0101 +#define GL_MULT 0x0103 +#define GL_RETURN 0x0102 + +/* Alpha testing */ +#define GL_ALPHA_TEST 0x0BC0 +#define GL_ALPHA_TEST_REF 0x0BC2 +#define GL_ALPHA_TEST_FUNC 0x0BC1 + +/* Blending */ +#define GL_BLEND 0x0BE2 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND_DST 0x0BE0 +#define GL_ZERO 0 +#define GL_ONE 1 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 + +/* Render Mode */ +#define GL_FEEDBACK 0x1C01 +#define GL_RENDER 0x1C00 +#define GL_SELECT 0x1C02 + +/* Feedback */ +#define GL_2D 0x0600 +#define GL_3D 0x0601 +#define GL_3D_COLOR 0x0602 +#define GL_3D_COLOR_TEXTURE 0x0603 +#define GL_4D_COLOR_TEXTURE 0x0604 +#define GL_POINT_TOKEN 0x0701 +#define GL_LINE_TOKEN 0x0702 +#define GL_LINE_RESET_TOKEN 0x0707 +#define GL_POLYGON_TOKEN 0x0703 +#define GL_BITMAP_TOKEN 0x0704 +#define GL_DRAW_PIXEL_TOKEN 0x0705 +#define GL_COPY_PIXEL_TOKEN 0x0706 +#define GL_PASS_THROUGH_TOKEN 0x0700 +#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 +#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 +#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 + +/* Selection */ +#define GL_SELECTION_BUFFER_POINTER 0x0DF3 +#define GL_SELECTION_BUFFER_SIZE 0x0DF4 + +/* Fog */ +#define GL_FOG 0x0B60 +#define GL_FOG_MODE 0x0B65 +#define GL_FOG_DENSITY 0x0B62 +#define GL_FOG_COLOR 0x0B66 +#define GL_FOG_INDEX 0x0B61 +#define GL_FOG_START 0x0B63 +#define GL_FOG_END 0x0B64 +#define GL_LINEAR 0x2601 +#define GL_EXP 0x0800 +#define GL_EXP2 0x0801 + +/* Logic Ops */ +#define GL_LOGIC_OP 0x0BF1 +#define GL_INDEX_LOGIC_OP 0x0BF1 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_CLEAR 0x1500 +#define GL_SET 0x150F +#define GL_COPY 0x1503 +#define GL_COPY_INVERTED 0x150C +#define GL_NOOP 0x1505 +#define GL_INVERT 0x150A +#define GL_AND 0x1501 +#define GL_NAND 0x150E +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_XOR 0x1506 +#define GL_EQUIV 0x1509 +#define GL_AND_REVERSE 0x1502 +#define GL_AND_INVERTED 0x1504 +#define GL_OR_REVERSE 0x150B +#define GL_OR_INVERTED 0x150D + +/* Stencil */ +#define GL_STENCIL_BITS 0x0D57 +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_STENCIL_INDEX 0x1901 +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 + +/* Buffers, Pixel Drawing/Reading */ +#define GL_NONE 0 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 +/*GL_FRONT 0x0404 */ +/*GL_BACK 0x0405 */ +/*GL_FRONT_AND_BACK 0x0408 */ +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_AUX0 0x0409 +#define GL_AUX1 0x040A +#define GL_AUX2 0x040B +#define GL_AUX3 0x040C +#define GL_COLOR_INDEX 0x1900 +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +#define GL_ALPHA_BITS 0x0D55 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_INDEX_BITS 0x0D51 +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_AUX_BUFFERS 0x0C00 +#define GL_READ_BUFFER 0x0C02 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_BITMAP 0x1A00 +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 +#define GL_DITHER 0x0BD0 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 + +/* Implementation limits */ +#define GL_MAX_LIST_NESTING 0x0B31 +#define GL_MAX_EVAL_ORDER 0x0D30 +#define GL_MAX_LIGHTS 0x0D31 +#define GL_MAX_CLIP_PLANES 0x0D32 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 +#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 +#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 +#define GL_MAX_NAME_STACK_DEPTH 0x0D37 +#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 +#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B + +/* Gets */ +#define GL_ATTRIB_STACK_DEPTH 0x0BB0 +#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_CURRENT_INDEX 0x0B01 +#define GL_CURRENT_COLOR 0x0B00 +#define GL_CURRENT_NORMAL 0x0B02 +#define GL_CURRENT_RASTER_COLOR 0x0B04 +#define GL_CURRENT_RASTER_DISTANCE 0x0B09 +#define GL_CURRENT_RASTER_INDEX 0x0B05 +#define GL_CURRENT_RASTER_POSITION 0x0B07 +#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 +#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 +#define GL_CURRENT_TEXTURE_COORDS 0x0B03 +#define GL_INDEX_CLEAR_VALUE 0x0C20 +#define GL_INDEX_MODE 0x0C30 +#define GL_INDEX_WRITEMASK 0x0C21 +#define GL_MODELVIEW_MATRIX 0x0BA6 +#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 +#define GL_NAME_STACK_DEPTH 0x0D70 +#define GL_PROJECTION_MATRIX 0x0BA7 +#define GL_PROJECTION_STACK_DEPTH 0x0BA4 +#define GL_RENDER_MODE 0x0C40 +#define GL_RGBA_MODE 0x0C31 +#define GL_TEXTURE_MATRIX 0x0BA8 +#define GL_TEXTURE_STACK_DEPTH 0x0BA5 +#define GL_VIEWPORT 0x0BA2 + +/* Evaluators */ +#define GL_AUTO_NORMAL 0x0D80 +#define GL_MAP1_COLOR_4 0x0D90 +#define GL_MAP1_INDEX 0x0D91 +#define GL_MAP1_NORMAL 0x0D92 +#define GL_MAP1_TEXTURE_COORD_1 0x0D93 +#define GL_MAP1_TEXTURE_COORD_2 0x0D94 +#define GL_MAP1_TEXTURE_COORD_3 0x0D95 +#define GL_MAP1_TEXTURE_COORD_4 0x0D96 +#define GL_MAP1_VERTEX_3 0x0D97 +#define GL_MAP1_VERTEX_4 0x0D98 +#define GL_MAP2_COLOR_4 0x0DB0 +#define GL_MAP2_INDEX 0x0DB1 +#define GL_MAP2_NORMAL 0x0DB2 +#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 +#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 +#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 +#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 +#define GL_MAP2_VERTEX_3 0x0DB7 +#define GL_MAP2_VERTEX_4 0x0DB8 +#define GL_MAP1_GRID_DOMAIN 0x0DD0 +#define GL_MAP1_GRID_SEGMENTS 0x0DD1 +#define GL_MAP2_GRID_DOMAIN 0x0DD2 +#define GL_MAP2_GRID_SEGMENTS 0x0DD3 +#define GL_COEFF 0x0A00 +#define GL_ORDER 0x0A01 +#define GL_DOMAIN 0x0A02 + +/* Hints */ +#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 +#define GL_POINT_SMOOTH_HINT 0x0C51 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_FOG_HINT 0x0C54 +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 + +/* Scissor box */ +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 + +/* Pixel Mode / Transfer */ +#define GL_MAP_COLOR 0x0D10 +#define GL_MAP_STENCIL 0x0D11 +#define GL_INDEX_SHIFT 0x0D12 +#define GL_INDEX_OFFSET 0x0D13 +#define GL_RED_SCALE 0x0D14 +#define GL_RED_BIAS 0x0D15 +#define GL_GREEN_SCALE 0x0D18 +#define GL_GREEN_BIAS 0x0D19 +#define GL_BLUE_SCALE 0x0D1A +#define GL_BLUE_BIAS 0x0D1B +#define GL_ALPHA_SCALE 0x0D1C +#define GL_ALPHA_BIAS 0x0D1D +#define GL_DEPTH_SCALE 0x0D1E +#define GL_DEPTH_BIAS 0x0D1F +#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 +#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 +#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 +#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 +#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 +#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 +#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 +#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 +#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 +#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 +#define GL_PIXEL_MAP_S_TO_S 0x0C71 +#define GL_PIXEL_MAP_I_TO_I 0x0C70 +#define GL_PIXEL_MAP_I_TO_R 0x0C72 +#define GL_PIXEL_MAP_I_TO_G 0x0C73 +#define GL_PIXEL_MAP_I_TO_B 0x0C74 +#define GL_PIXEL_MAP_I_TO_A 0x0C75 +#define GL_PIXEL_MAP_R_TO_R 0x0C76 +#define GL_PIXEL_MAP_G_TO_G 0x0C77 +#define GL_PIXEL_MAP_B_TO_B 0x0C78 +#define GL_PIXEL_MAP_A_TO_A 0x0C79 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_ZOOM_X 0x0D16 +#define GL_ZOOM_Y 0x0D17 + +/* Texture mapping */ +#define GL_TEXTURE_ENV 0x2300 +#define GL_TEXTURE_ENV_MODE 0x2200 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_ENV_COLOR 0x2201 +#define GL_TEXTURE_GEN_S 0x0C60 +#define GL_TEXTURE_GEN_T 0x0C61 +#define GL_TEXTURE_GEN_R 0x0C62 +#define GL_TEXTURE_GEN_Q 0x0C63 +#define GL_TEXTURE_GEN_MODE 0x2500 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_BORDER 0x1005 +#define GL_TEXTURE_COMPONENTS 0x1003 +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE 0x8061 +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +#define GL_OBJECT_LINEAR 0x2401 +#define GL_OBJECT_PLANE 0x2501 +#define GL_EYE_LINEAR 0x2400 +#define GL_EYE_PLANE 0x2502 +#define GL_SPHERE_MAP 0x2402 +#define GL_DECAL 0x2101 +#define GL_MODULATE 0x2100 +#define GL_NEAREST 0x2600 +#define GL_REPEAT 0x2901 +#define GL_CLAMP 0x2900 +#define GL_S 0x2000 +#define GL_T 0x2001 +#define GL_R 0x2002 +#define GL_Q 0x2003 + +/* Utility */ +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 + +/* Errors */ +#define GL_NO_ERROR 0 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_OUT_OF_MEMORY 0x0505 + +/* glPush/PopAttrib bits */ +#define GL_CURRENT_BIT 0x00000001 +#define GL_POINT_BIT 0x00000002 +#define GL_LINE_BIT 0x00000004 +#define GL_POLYGON_BIT 0x00000008 +#define GL_POLYGON_STIPPLE_BIT 0x00000010 +#define GL_PIXEL_MODE_BIT 0x00000020 +#define GL_LIGHTING_BIT 0x00000040 +#define GL_FOG_BIT 0x00000080 +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_ACCUM_BUFFER_BIT 0x00000200 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_VIEWPORT_BIT 0x00000800 +#define GL_TRANSFORM_BIT 0x00001000 +#define GL_ENABLE_BIT 0x00002000 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_HINT_BIT 0x00008000 +#define GL_EVAL_BIT 0x00010000 +#define GL_LIST_BIT 0x00020000 +#define GL_TEXTURE_BIT 0x00040000 +#define GL_SCISSOR_BIT 0x00080000 +#define GL_ALL_ATTRIB_BITS 0x000FFFFF + + +/* OpenGL 1.1 */ +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +#define GL_TEXTURE_PRIORITY 0x8066 +#define GL_TEXTURE_RESIDENT 0x8067 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_ALPHA4 0x803B +#define GL_ALPHA8 0x803C +#define GL_ALPHA12 0x803D +#define GL_ALPHA16 0x803E +#define GL_LUMINANCE4 0x803F +#define GL_LUMINANCE8 0x8040 +#define GL_LUMINANCE12 0x8041 +#define GL_LUMINANCE16 0x8042 +#define GL_LUMINANCE4_ALPHA4 0x8043 +#define GL_LUMINANCE6_ALPHA2 0x8044 +#define GL_LUMINANCE8_ALPHA8 0x8045 +#define GL_LUMINANCE12_ALPHA4 0x8046 +#define GL_LUMINANCE12_ALPHA12 0x8047 +#define GL_LUMINANCE16_ALPHA16 0x8048 +#define GL_INTENSITY 0x8049 +#define GL_INTENSITY4 0x804A +#define GL_INTENSITY8 0x804B +#define GL_INTENSITY12 0x804C +#define GL_INTENSITY16 0x804D +#define GL_R3_G3_B2 0x2A10 +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB8 0x8051 +#define GL_RGB10 0x8052 +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGBA2 0x8055 +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGBA8 0x8058 +#define GL_RGB10_A2 0x8059 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 +#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 +#define GL_ALL_CLIENT_ATTRIB_BITS 0xFFFFFFFF +#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF + + + +/* + * Miscellaneous + */ + +GLAPI void GLAPIENTRY glClearIndex( GLfloat c ); + +GLAPI void GLAPIENTRY glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); + +GLAPI void GLAPIENTRY glClear( GLbitfield mask ); + +GLAPI void GLAPIENTRY glIndexMask( GLuint mask ); + +GLAPI void GLAPIENTRY glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ); + +GLAPI void GLAPIENTRY glAlphaFunc( GLenum func, GLclampf ref ); + +GLAPI void GLAPIENTRY glBlendFunc( GLenum sfactor, GLenum dfactor ); + +GLAPI void GLAPIENTRY glLogicOp( GLenum opcode ); + +GLAPI void GLAPIENTRY glCullFace( GLenum mode ); + +GLAPI void GLAPIENTRY glFrontFace( GLenum mode ); + +GLAPI void GLAPIENTRY glPointSize( GLfloat size ); + +GLAPI void GLAPIENTRY glLineWidth( GLfloat width ); + +GLAPI void GLAPIENTRY glLineStipple( GLint factor, GLushort pattern ); + +GLAPI void GLAPIENTRY glPolygonMode( GLenum face, GLenum mode ); + +GLAPI void GLAPIENTRY glPolygonOffset( GLfloat factor, GLfloat units ); + +GLAPI void GLAPIENTRY glPolygonStipple( const GLubyte *mask ); + +GLAPI void GLAPIENTRY glGetPolygonStipple( GLubyte *mask ); + +GLAPI void GLAPIENTRY glEdgeFlag( GLboolean flag ); + +GLAPI void GLAPIENTRY glEdgeFlagv( const GLboolean *flag ); + +GLAPI void GLAPIENTRY glScissor( GLint x, GLint y, GLsizei width, GLsizei height); + +GLAPI void GLAPIENTRY glClipPlane( GLenum plane, const GLdouble *equation ); + +GLAPI void GLAPIENTRY glGetClipPlane( GLenum plane, GLdouble *equation ); + +GLAPI void GLAPIENTRY glDrawBuffer( GLenum mode ); + +GLAPI void GLAPIENTRY glReadBuffer( GLenum mode ); + +GLAPI void GLAPIENTRY glEnable( GLenum cap ); + +GLAPI void GLAPIENTRY glDisable( GLenum cap ); + +GLAPI GLboolean GLAPIENTRY glIsEnabled( GLenum cap ); + + +GLAPI void GLAPIENTRY glEnableClientState( GLenum cap ); /* 1.1 */ + +GLAPI void GLAPIENTRY glDisableClientState( GLenum cap ); /* 1.1 */ + + +GLAPI void GLAPIENTRY glGetBooleanv( GLenum pname, GLboolean *params ); + +GLAPI void GLAPIENTRY glGetDoublev( GLenum pname, GLdouble *params ); + +GLAPI void GLAPIENTRY glGetFloatv( GLenum pname, GLfloat *params ); + +GLAPI void GLAPIENTRY glGetIntegerv( GLenum pname, GLint *params ); + + +GLAPI void GLAPIENTRY glPushAttrib( GLbitfield mask ); + +GLAPI void GLAPIENTRY glPopAttrib( void ); + + +GLAPI void GLAPIENTRY glPushClientAttrib( GLbitfield mask ); /* 1.1 */ + +GLAPI void GLAPIENTRY glPopClientAttrib( void ); /* 1.1 */ + + +GLAPI GLint GLAPIENTRY glRenderMode( GLenum mode ); + +GLAPI GLenum GLAPIENTRY glGetError( void ); + +GLAPI const GLubyte * GLAPIENTRY glGetString( GLenum name ); + +GLAPI void GLAPIENTRY glFinish( void ); + +GLAPI void GLAPIENTRY glFlush( void ); + +GLAPI void GLAPIENTRY glHint( GLenum target, GLenum mode ); + + +/* + * Depth Buffer + */ + +GLAPI void GLAPIENTRY glClearDepth( GLclampd depth ); + +GLAPI void GLAPIENTRY glDepthFunc( GLenum func ); + +GLAPI void GLAPIENTRY glDepthMask( GLboolean flag ); + +GLAPI void GLAPIENTRY glDepthRange( GLclampd near_val, GLclampd far_val ); + + +/* + * Accumulation Buffer + */ + +GLAPI void GLAPIENTRY glClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); + +GLAPI void GLAPIENTRY glAccum( GLenum op, GLfloat value ); + + +/* + * Transformation + */ + +GLAPI void GLAPIENTRY glMatrixMode( GLenum mode ); + +GLAPI void GLAPIENTRY glOrtho( GLdouble left, GLdouble right, + GLdouble bottom, GLdouble top, + GLdouble near_val, GLdouble far_val ); + +GLAPI void GLAPIENTRY glFrustum( GLdouble left, GLdouble right, + GLdouble bottom, GLdouble top, + GLdouble near_val, GLdouble far_val ); + +GLAPI void GLAPIENTRY glViewport( GLint x, GLint y, + GLsizei width, GLsizei height ); + +GLAPI void GLAPIENTRY glPushMatrix( void ); + +GLAPI void GLAPIENTRY glPopMatrix( void ); + +GLAPI void GLAPIENTRY glLoadIdentity( void ); + +GLAPI void GLAPIENTRY glLoadMatrixd( const GLdouble *m ); +GLAPI void GLAPIENTRY glLoadMatrixf( const GLfloat *m ); + +GLAPI void GLAPIENTRY glMultMatrixd( const GLdouble *m ); +GLAPI void GLAPIENTRY glMultMatrixf( const GLfloat *m ); + +GLAPI void GLAPIENTRY glRotated( GLdouble angle, + GLdouble x, GLdouble y, GLdouble z ); +GLAPI void GLAPIENTRY glRotatef( GLfloat angle, + GLfloat x, GLfloat y, GLfloat z ); + +GLAPI void GLAPIENTRY glScaled( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void GLAPIENTRY glScalef( GLfloat x, GLfloat y, GLfloat z ); + +GLAPI void GLAPIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void GLAPIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z ); + + +/* + * Display Lists + */ + +GLAPI GLboolean GLAPIENTRY glIsList( GLuint list ); + +GLAPI void GLAPIENTRY glDeleteLists( GLuint list, GLsizei range ); + +GLAPI GLuint GLAPIENTRY glGenLists( GLsizei range ); + +GLAPI void GLAPIENTRY glNewList( GLuint list, GLenum mode ); + +GLAPI void GLAPIENTRY glEndList( void ); + +GLAPI void GLAPIENTRY glCallList( GLuint list ); + +GLAPI void GLAPIENTRY glCallLists( GLsizei n, GLenum type, + const GLvoid *lists ); + +GLAPI void GLAPIENTRY glListBase( GLuint base ); + + +/* + * Drawing Functions + */ + +GLAPI void GLAPIENTRY glBegin( GLenum mode ); + +GLAPI void GLAPIENTRY glEnd( void ); + + +GLAPI void GLAPIENTRY glVertex2d( GLdouble x, GLdouble y ); +GLAPI void GLAPIENTRY glVertex2f( GLfloat x, GLfloat y ); +GLAPI void GLAPIENTRY glVertex2i( GLint x, GLint y ); +GLAPI void GLAPIENTRY glVertex2s( GLshort x, GLshort y ); + +GLAPI void GLAPIENTRY glVertex3d( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void GLAPIENTRY glVertex3f( GLfloat x, GLfloat y, GLfloat z ); +GLAPI void GLAPIENTRY glVertex3i( GLint x, GLint y, GLint z ); +GLAPI void GLAPIENTRY glVertex3s( GLshort x, GLshort y, GLshort z ); + +GLAPI void GLAPIENTRY glVertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); +GLAPI void GLAPIENTRY glVertex4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); +GLAPI void GLAPIENTRY glVertex4i( GLint x, GLint y, GLint z, GLint w ); +GLAPI void GLAPIENTRY glVertex4s( GLshort x, GLshort y, GLshort z, GLshort w ); + +GLAPI void GLAPIENTRY glVertex2dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glVertex2fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glVertex2iv( const GLint *v ); +GLAPI void GLAPIENTRY glVertex2sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glVertex3dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glVertex3fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glVertex3iv( const GLint *v ); +GLAPI void GLAPIENTRY glVertex3sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glVertex4dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glVertex4fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glVertex4iv( const GLint *v ); +GLAPI void GLAPIENTRY glVertex4sv( const GLshort *v ); + + +GLAPI void GLAPIENTRY glNormal3b( GLbyte nx, GLbyte ny, GLbyte nz ); +GLAPI void GLAPIENTRY glNormal3d( GLdouble nx, GLdouble ny, GLdouble nz ); +GLAPI void GLAPIENTRY glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz ); +GLAPI void GLAPIENTRY glNormal3i( GLint nx, GLint ny, GLint nz ); +GLAPI void GLAPIENTRY glNormal3s( GLshort nx, GLshort ny, GLshort nz ); + +GLAPI void GLAPIENTRY glNormal3bv( const GLbyte *v ); +GLAPI void GLAPIENTRY glNormal3dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glNormal3fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glNormal3iv( const GLint *v ); +GLAPI void GLAPIENTRY glNormal3sv( const GLshort *v ); + + +GLAPI void GLAPIENTRY glIndexd( GLdouble c ); +GLAPI void GLAPIENTRY glIndexf( GLfloat c ); +GLAPI void GLAPIENTRY glIndexi( GLint c ); +GLAPI void GLAPIENTRY glIndexs( GLshort c ); +GLAPI void GLAPIENTRY glIndexub( GLubyte c ); /* 1.1 */ + +GLAPI void GLAPIENTRY glIndexdv( const GLdouble *c ); +GLAPI void GLAPIENTRY glIndexfv( const GLfloat *c ); +GLAPI void GLAPIENTRY glIndexiv( const GLint *c ); +GLAPI void GLAPIENTRY glIndexsv( const GLshort *c ); +GLAPI void GLAPIENTRY glIndexubv( const GLubyte *c ); /* 1.1 */ + +GLAPI void GLAPIENTRY glColor3b( GLbyte red, GLbyte green, GLbyte blue ); +GLAPI void GLAPIENTRY glColor3d( GLdouble red, GLdouble green, GLdouble blue ); +GLAPI void GLAPIENTRY glColor3f( GLfloat red, GLfloat green, GLfloat blue ); +GLAPI void GLAPIENTRY glColor3i( GLint red, GLint green, GLint blue ); +GLAPI void GLAPIENTRY glColor3s( GLshort red, GLshort green, GLshort blue ); +GLAPI void GLAPIENTRY glColor3ub( GLubyte red, GLubyte green, GLubyte blue ); +GLAPI void GLAPIENTRY glColor3ui( GLuint red, GLuint green, GLuint blue ); +GLAPI void GLAPIENTRY glColor3us( GLushort red, GLushort green, GLushort blue ); + +GLAPI void GLAPIENTRY glColor4b( GLbyte red, GLbyte green, + GLbyte blue, GLbyte alpha ); +GLAPI void GLAPIENTRY glColor4d( GLdouble red, GLdouble green, + GLdouble blue, GLdouble alpha ); +GLAPI void GLAPIENTRY glColor4f( GLfloat red, GLfloat green, + GLfloat blue, GLfloat alpha ); +GLAPI void GLAPIENTRY glColor4i( GLint red, GLint green, + GLint blue, GLint alpha ); +GLAPI void GLAPIENTRY glColor4s( GLshort red, GLshort green, + GLshort blue, GLshort alpha ); +GLAPI void GLAPIENTRY glColor4ub( GLubyte red, GLubyte green, + GLubyte blue, GLubyte alpha ); +GLAPI void GLAPIENTRY glColor4ui( GLuint red, GLuint green, + GLuint blue, GLuint alpha ); +GLAPI void GLAPIENTRY glColor4us( GLushort red, GLushort green, + GLushort blue, GLushort alpha ); + + +GLAPI void GLAPIENTRY glColor3bv( const GLbyte *v ); +GLAPI void GLAPIENTRY glColor3dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glColor3fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glColor3iv( const GLint *v ); +GLAPI void GLAPIENTRY glColor3sv( const GLshort *v ); +GLAPI void GLAPIENTRY glColor3ubv( const GLubyte *v ); +GLAPI void GLAPIENTRY glColor3uiv( const GLuint *v ); +GLAPI void GLAPIENTRY glColor3usv( const GLushort *v ); + +GLAPI void GLAPIENTRY glColor4bv( const GLbyte *v ); +GLAPI void GLAPIENTRY glColor4dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glColor4fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glColor4iv( const GLint *v ); +GLAPI void GLAPIENTRY glColor4sv( const GLshort *v ); +GLAPI void GLAPIENTRY glColor4ubv( const GLubyte *v ); +GLAPI void GLAPIENTRY glColor4uiv( const GLuint *v ); +GLAPI void GLAPIENTRY glColor4usv( const GLushort *v ); + + +GLAPI void GLAPIENTRY glTexCoord1d( GLdouble s ); +GLAPI void GLAPIENTRY glTexCoord1f( GLfloat s ); +GLAPI void GLAPIENTRY glTexCoord1i( GLint s ); +GLAPI void GLAPIENTRY glTexCoord1s( GLshort s ); + +GLAPI void GLAPIENTRY glTexCoord2d( GLdouble s, GLdouble t ); +GLAPI void GLAPIENTRY glTexCoord2f( GLfloat s, GLfloat t ); +GLAPI void GLAPIENTRY glTexCoord2i( GLint s, GLint t ); +GLAPI void GLAPIENTRY glTexCoord2s( GLshort s, GLshort t ); + +GLAPI void GLAPIENTRY glTexCoord3d( GLdouble s, GLdouble t, GLdouble r ); +GLAPI void GLAPIENTRY glTexCoord3f( GLfloat s, GLfloat t, GLfloat r ); +GLAPI void GLAPIENTRY glTexCoord3i( GLint s, GLint t, GLint r ); +GLAPI void GLAPIENTRY glTexCoord3s( GLshort s, GLshort t, GLshort r ); + +GLAPI void GLAPIENTRY glTexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ); +GLAPI void GLAPIENTRY glTexCoord4f( GLfloat s, GLfloat t, GLfloat r, GLfloat q ); +GLAPI void GLAPIENTRY glTexCoord4i( GLint s, GLint t, GLint r, GLint q ); +GLAPI void GLAPIENTRY glTexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ); + +GLAPI void GLAPIENTRY glTexCoord1dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glTexCoord1fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glTexCoord1iv( const GLint *v ); +GLAPI void GLAPIENTRY glTexCoord1sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glTexCoord2dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glTexCoord2fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glTexCoord2iv( const GLint *v ); +GLAPI void GLAPIENTRY glTexCoord2sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glTexCoord3dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glTexCoord3fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glTexCoord3iv( const GLint *v ); +GLAPI void GLAPIENTRY glTexCoord3sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glTexCoord4dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glTexCoord4fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glTexCoord4iv( const GLint *v ); +GLAPI void GLAPIENTRY glTexCoord4sv( const GLshort *v ); + + +GLAPI void GLAPIENTRY glRasterPos2d( GLdouble x, GLdouble y ); +GLAPI void GLAPIENTRY glRasterPos2f( GLfloat x, GLfloat y ); +GLAPI void GLAPIENTRY glRasterPos2i( GLint x, GLint y ); +GLAPI void GLAPIENTRY glRasterPos2s( GLshort x, GLshort y ); + +GLAPI void GLAPIENTRY glRasterPos3d( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void GLAPIENTRY glRasterPos3f( GLfloat x, GLfloat y, GLfloat z ); +GLAPI void GLAPIENTRY glRasterPos3i( GLint x, GLint y, GLint z ); +GLAPI void GLAPIENTRY glRasterPos3s( GLshort x, GLshort y, GLshort z ); + +GLAPI void GLAPIENTRY glRasterPos4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); +GLAPI void GLAPIENTRY glRasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); +GLAPI void GLAPIENTRY glRasterPos4i( GLint x, GLint y, GLint z, GLint w ); +GLAPI void GLAPIENTRY glRasterPos4s( GLshort x, GLshort y, GLshort z, GLshort w ); + +GLAPI void GLAPIENTRY glRasterPos2dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glRasterPos2fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glRasterPos2iv( const GLint *v ); +GLAPI void GLAPIENTRY glRasterPos2sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glRasterPos3dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glRasterPos3fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glRasterPos3iv( const GLint *v ); +GLAPI void GLAPIENTRY glRasterPos3sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glRasterPos4dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glRasterPos4fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glRasterPos4iv( const GLint *v ); +GLAPI void GLAPIENTRY glRasterPos4sv( const GLshort *v ); + + +GLAPI void GLAPIENTRY glRectd( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 ); +GLAPI void GLAPIENTRY glRectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ); +GLAPI void GLAPIENTRY glRecti( GLint x1, GLint y1, GLint x2, GLint y2 ); +GLAPI void GLAPIENTRY glRects( GLshort x1, GLshort y1, GLshort x2, GLshort y2 ); + + +GLAPI void GLAPIENTRY glRectdv( const GLdouble *v1, const GLdouble *v2 ); +GLAPI void GLAPIENTRY glRectfv( const GLfloat *v1, const GLfloat *v2 ); +GLAPI void GLAPIENTRY glRectiv( const GLint *v1, const GLint *v2 ); +GLAPI void GLAPIENTRY glRectsv( const GLshort *v1, const GLshort *v2 ); + + +/* + * Vertex Arrays (1.1) + */ + +GLAPI void GLAPIENTRY glVertexPointer( GLint size, GLenum type, + GLsizei stride, const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glNormalPointer( GLenum type, GLsizei stride, + const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glColorPointer( GLint size, GLenum type, + GLsizei stride, const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glIndexPointer( GLenum type, GLsizei stride, + const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glTexCoordPointer( GLint size, GLenum type, + GLsizei stride, const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glEdgeFlagPointer( GLsizei stride, const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glGetPointerv( GLenum pname, GLvoid **params ); + +GLAPI void GLAPIENTRY glArrayElement( GLint i ); + +GLAPI void GLAPIENTRY glDrawArrays( GLenum mode, GLint first, GLsizei count ); + +GLAPI void GLAPIENTRY glDrawElements( GLenum mode, GLsizei count, + GLenum type, const GLvoid *indices ); + +GLAPI void GLAPIENTRY glInterleavedArrays( GLenum format, GLsizei stride, + const GLvoid *pointer ); + +/* + * Lighting + */ + +GLAPI void GLAPIENTRY glShadeModel( GLenum mode ); + +GLAPI void GLAPIENTRY glLightf( GLenum light, GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glLighti( GLenum light, GLenum pname, GLint param ); +GLAPI void GLAPIENTRY glLightfv( GLenum light, GLenum pname, + const GLfloat *params ); +GLAPI void GLAPIENTRY glLightiv( GLenum light, GLenum pname, + const GLint *params ); + +GLAPI void GLAPIENTRY glGetLightfv( GLenum light, GLenum pname, + GLfloat *params ); +GLAPI void GLAPIENTRY glGetLightiv( GLenum light, GLenum pname, + GLint *params ); + +GLAPI void GLAPIENTRY glLightModelf( GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glLightModeli( GLenum pname, GLint param ); +GLAPI void GLAPIENTRY glLightModelfv( GLenum pname, const GLfloat *params ); +GLAPI void GLAPIENTRY glLightModeliv( GLenum pname, const GLint *params ); + +GLAPI void GLAPIENTRY glMaterialf( GLenum face, GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glMateriali( GLenum face, GLenum pname, GLint param ); +GLAPI void GLAPIENTRY glMaterialfv( GLenum face, GLenum pname, const GLfloat *params ); +GLAPI void GLAPIENTRY glMaterialiv( GLenum face, GLenum pname, const GLint *params ); + +GLAPI void GLAPIENTRY glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params ); +GLAPI void GLAPIENTRY glGetMaterialiv( GLenum face, GLenum pname, GLint *params ); + +GLAPI void GLAPIENTRY glColorMaterial( GLenum face, GLenum mode ); + + +/* + * Raster functions + */ + +GLAPI void GLAPIENTRY glPixelZoom( GLfloat xfactor, GLfloat yfactor ); + +GLAPI void GLAPIENTRY glPixelStoref( GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glPixelStorei( GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glPixelTransferf( GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glPixelTransferi( GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glPixelMapfv( GLenum map, GLsizei mapsize, + const GLfloat *values ); +GLAPI void GLAPIENTRY glPixelMapuiv( GLenum map, GLsizei mapsize, + const GLuint *values ); +GLAPI void GLAPIENTRY glPixelMapusv( GLenum map, GLsizei mapsize, + const GLushort *values ); + +GLAPI void GLAPIENTRY glGetPixelMapfv( GLenum map, GLfloat *values ); +GLAPI void GLAPIENTRY glGetPixelMapuiv( GLenum map, GLuint *values ); +GLAPI void GLAPIENTRY glGetPixelMapusv( GLenum map, GLushort *values ); + +GLAPI void GLAPIENTRY glBitmap( GLsizei width, GLsizei height, + GLfloat xorig, GLfloat yorig, + GLfloat xmove, GLfloat ymove, + const GLubyte *bitmap ); + +GLAPI void GLAPIENTRY glReadPixels( GLint x, GLint y, + GLsizei width, GLsizei height, + GLenum format, GLenum type, + GLvoid *pixels ); + +GLAPI void GLAPIENTRY glDrawPixels( GLsizei width, GLsizei height, + GLenum format, GLenum type, + const GLvoid *pixels ); + +GLAPI void GLAPIENTRY glCopyPixels( GLint x, GLint y, + GLsizei width, GLsizei height, + GLenum type ); + +/* + * Stenciling + */ + +GLAPI void GLAPIENTRY glStencilFunc( GLenum func, GLint ref, GLuint mask ); + +GLAPI void GLAPIENTRY glStencilMask( GLuint mask ); + +GLAPI void GLAPIENTRY glStencilOp( GLenum fail, GLenum zfail, GLenum zpass ); + +GLAPI void GLAPIENTRY glClearStencil( GLint s ); + + + +/* + * Texture mapping + */ + +GLAPI void GLAPIENTRY glTexGend( GLenum coord, GLenum pname, GLdouble param ); +GLAPI void GLAPIENTRY glTexGenf( GLenum coord, GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glTexGeni( GLenum coord, GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glTexGendv( GLenum coord, GLenum pname, const GLdouble *params ); +GLAPI void GLAPIENTRY glTexGenfv( GLenum coord, GLenum pname, const GLfloat *params ); +GLAPI void GLAPIENTRY glTexGeniv( GLenum coord, GLenum pname, const GLint *params ); + +GLAPI void GLAPIENTRY glGetTexGendv( GLenum coord, GLenum pname, GLdouble *params ); +GLAPI void GLAPIENTRY glGetTexGenfv( GLenum coord, GLenum pname, GLfloat *params ); +GLAPI void GLAPIENTRY glGetTexGeniv( GLenum coord, GLenum pname, GLint *params ); + + +GLAPI void GLAPIENTRY glTexEnvf( GLenum target, GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glTexEnvi( GLenum target, GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params ); +GLAPI void GLAPIENTRY glTexEnviv( GLenum target, GLenum pname, const GLint *params ); + +GLAPI void GLAPIENTRY glGetTexEnvfv( GLenum target, GLenum pname, GLfloat *params ); +GLAPI void GLAPIENTRY glGetTexEnviv( GLenum target, GLenum pname, GLint *params ); + + +GLAPI void GLAPIENTRY glTexParameterf( GLenum target, GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glTexParameteri( GLenum target, GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glTexParameterfv( GLenum target, GLenum pname, + const GLfloat *params ); +GLAPI void GLAPIENTRY glTexParameteriv( GLenum target, GLenum pname, + const GLint *params ); + +GLAPI void GLAPIENTRY glGetTexParameterfv( GLenum target, + GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetTexParameteriv( GLenum target, + GLenum pname, GLint *params ); + +GLAPI void GLAPIENTRY glGetTexLevelParameterfv( GLenum target, GLint level, + GLenum pname, GLfloat *params ); +GLAPI void GLAPIENTRY glGetTexLevelParameteriv( GLenum target, GLint level, + GLenum pname, GLint *params ); + + +GLAPI void GLAPIENTRY glTexImage1D( GLenum target, GLint level, + GLint internalFormat, + GLsizei width, GLint border, + GLenum format, GLenum type, + const GLvoid *pixels ); + +GLAPI void GLAPIENTRY glTexImage2D( GLenum target, GLint level, + GLint internalFormat, + GLsizei width, GLsizei height, + GLint border, GLenum format, GLenum type, + const GLvoid *pixels ); + +GLAPI void GLAPIENTRY glGetTexImage( GLenum target, GLint level, + GLenum format, GLenum type, + GLvoid *pixels ); + + +/* 1.1 functions */ + +GLAPI void GLAPIENTRY glGenTextures( GLsizei n, GLuint *textures ); + +GLAPI void GLAPIENTRY glDeleteTextures( GLsizei n, const GLuint *textures); + +GLAPI void GLAPIENTRY glBindTexture( GLenum target, GLuint texture ); + +GLAPI void GLAPIENTRY glPrioritizeTextures( GLsizei n, + const GLuint *textures, + const GLclampf *priorities ); + +GLAPI GLboolean GLAPIENTRY glAreTexturesResident( GLsizei n, + const GLuint *textures, + GLboolean *residences ); + +GLAPI GLboolean GLAPIENTRY glIsTexture( GLuint texture ); + + +GLAPI void GLAPIENTRY glTexSubImage1D( GLenum target, GLint level, + GLint xoffset, + GLsizei width, GLenum format, + GLenum type, const GLvoid *pixels ); + + +GLAPI void GLAPIENTRY glTexSubImage2D( GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLsizei width, GLsizei height, + GLenum format, GLenum type, + const GLvoid *pixels ); + + +GLAPI void GLAPIENTRY glCopyTexImage1D( GLenum target, GLint level, + GLenum internalformat, + GLint x, GLint y, + GLsizei width, GLint border ); + + +GLAPI void GLAPIENTRY glCopyTexImage2D( GLenum target, GLint level, + GLenum internalformat, + GLint x, GLint y, + GLsizei width, GLsizei height, + GLint border ); + + +GLAPI void GLAPIENTRY glCopyTexSubImage1D( GLenum target, GLint level, + GLint xoffset, GLint x, GLint y, + GLsizei width ); + + +GLAPI void GLAPIENTRY glCopyTexSubImage2D( GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLint x, GLint y, + GLsizei width, GLsizei height ); + + +/* + * Evaluators + */ + +GLAPI void GLAPIENTRY glMap1d( GLenum target, GLdouble u1, GLdouble u2, + GLint stride, + GLint order, const GLdouble *points ); +GLAPI void GLAPIENTRY glMap1f( GLenum target, GLfloat u1, GLfloat u2, + GLint stride, + GLint order, const GLfloat *points ); + +GLAPI void GLAPIENTRY glMap2d( GLenum target, + GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, + GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, + const GLdouble *points ); +GLAPI void GLAPIENTRY glMap2f( GLenum target, + GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, + GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, + const GLfloat *points ); + +GLAPI void GLAPIENTRY glGetMapdv( GLenum target, GLenum query, GLdouble *v ); +GLAPI void GLAPIENTRY glGetMapfv( GLenum target, GLenum query, GLfloat *v ); +GLAPI void GLAPIENTRY glGetMapiv( GLenum target, GLenum query, GLint *v ); + +GLAPI void GLAPIENTRY glEvalCoord1d( GLdouble u ); +GLAPI void GLAPIENTRY glEvalCoord1f( GLfloat u ); + +GLAPI void GLAPIENTRY glEvalCoord1dv( const GLdouble *u ); +GLAPI void GLAPIENTRY glEvalCoord1fv( const GLfloat *u ); + +GLAPI void GLAPIENTRY glEvalCoord2d( GLdouble u, GLdouble v ); +GLAPI void GLAPIENTRY glEvalCoord2f( GLfloat u, GLfloat v ); + +GLAPI void GLAPIENTRY glEvalCoord2dv( const GLdouble *u ); +GLAPI void GLAPIENTRY glEvalCoord2fv( const GLfloat *u ); + +GLAPI void GLAPIENTRY glMapGrid1d( GLint un, GLdouble u1, GLdouble u2 ); +GLAPI void GLAPIENTRY glMapGrid1f( GLint un, GLfloat u1, GLfloat u2 ); + +GLAPI void GLAPIENTRY glMapGrid2d( GLint un, GLdouble u1, GLdouble u2, + GLint vn, GLdouble v1, GLdouble v2 ); +GLAPI void GLAPIENTRY glMapGrid2f( GLint un, GLfloat u1, GLfloat u2, + GLint vn, GLfloat v1, GLfloat v2 ); + +GLAPI void GLAPIENTRY glEvalPoint1( GLint i ); + +GLAPI void GLAPIENTRY glEvalPoint2( GLint i, GLint j ); + +GLAPI void GLAPIENTRY glEvalMesh1( GLenum mode, GLint i1, GLint i2 ); + +GLAPI void GLAPIENTRY glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 ); + + +/* + * Fog + */ + +GLAPI void GLAPIENTRY glFogf( GLenum pname, GLfloat param ); + +GLAPI void GLAPIENTRY glFogi( GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glFogfv( GLenum pname, const GLfloat *params ); + +GLAPI void GLAPIENTRY glFogiv( GLenum pname, const GLint *params ); + + +/* + * Selection and Feedback + */ + +GLAPI void GLAPIENTRY glFeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer ); + +GLAPI void GLAPIENTRY glPassThrough( GLfloat token ); + +GLAPI void GLAPIENTRY glSelectBuffer( GLsizei size, GLuint *buffer ); + +GLAPI void GLAPIENTRY glInitNames( void ); + +GLAPI void GLAPIENTRY glLoadName( GLuint name ); + +GLAPI void GLAPIENTRY glPushName( GLuint name ); + +GLAPI void GLAPIENTRY glPopName( void ); + + + +/* + * OpenGL 1.2 + */ + +#define GL_RESCALE_NORMAL 0x803A +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_TEXTURE_BINDING_3D 0x806A + +GLAPI void GLAPIENTRY glDrawRangeElements( GLenum mode, GLuint start, + GLuint end, GLsizei count, GLenum type, const GLvoid *indices ); + +GLAPI void GLAPIENTRY glTexImage3D( GLenum target, GLint level, + GLint internalFormat, + GLsizei width, GLsizei height, + GLsizei depth, GLint border, + GLenum format, GLenum type, + const GLvoid *pixels ); + +GLAPI void GLAPIENTRY glTexSubImage3D( GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLint zoffset, GLsizei width, + GLsizei height, GLsizei depth, + GLenum format, + GLenum type, const GLvoid *pixels); + +GLAPI void GLAPIENTRY glCopyTexSubImage3D( GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLint zoffset, GLint x, + GLint y, GLsizei width, + GLsizei height ); + +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); + + +/* + * GL_ARB_imaging + */ + +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_CONSTANT_BORDER 0x8151 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 +#define GL_BLEND_EQUATION 0x8009 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_FUNC_ADD 0x8006 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_BLEND_COLOR 0x8005 + + +GLAPI void GLAPIENTRY glColorTable( GLenum target, GLenum internalformat, + GLsizei width, GLenum format, + GLenum type, const GLvoid *table ); + +GLAPI void GLAPIENTRY glColorSubTable( GLenum target, + GLsizei start, GLsizei count, + GLenum format, GLenum type, + const GLvoid *data ); + +GLAPI void GLAPIENTRY glColorTableParameteriv(GLenum target, GLenum pname, + const GLint *params); + +GLAPI void GLAPIENTRY glColorTableParameterfv(GLenum target, GLenum pname, + const GLfloat *params); + +GLAPI void GLAPIENTRY glCopyColorSubTable( GLenum target, GLsizei start, + GLint x, GLint y, GLsizei width ); + +GLAPI void GLAPIENTRY glCopyColorTable( GLenum target, GLenum internalformat, + GLint x, GLint y, GLsizei width ); + +GLAPI void GLAPIENTRY glGetColorTable( GLenum target, GLenum format, + GLenum type, GLvoid *table ); + +GLAPI void GLAPIENTRY glGetColorTableParameterfv( GLenum target, GLenum pname, + GLfloat *params ); + +GLAPI void GLAPIENTRY glGetColorTableParameteriv( GLenum target, GLenum pname, + GLint *params ); + +GLAPI void GLAPIENTRY glBlendEquation( GLenum mode ); + +GLAPI void GLAPIENTRY glBlendColor( GLclampf red, GLclampf green, + GLclampf blue, GLclampf alpha ); + +GLAPI void GLAPIENTRY glHistogram( GLenum target, GLsizei width, + GLenum internalformat, GLboolean sink ); + +GLAPI void GLAPIENTRY glResetHistogram( GLenum target ); + +GLAPI void GLAPIENTRY glGetHistogram( GLenum target, GLboolean reset, + GLenum format, GLenum type, + GLvoid *values ); + +GLAPI void GLAPIENTRY glGetHistogramParameterfv( GLenum target, GLenum pname, + GLfloat *params ); + +GLAPI void GLAPIENTRY glGetHistogramParameteriv( GLenum target, GLenum pname, + GLint *params ); + +GLAPI void GLAPIENTRY glMinmax( GLenum target, GLenum internalformat, + GLboolean sink ); + +GLAPI void GLAPIENTRY glResetMinmax( GLenum target ); + +GLAPI void GLAPIENTRY glGetMinmax( GLenum target, GLboolean reset, + GLenum format, GLenum types, + GLvoid *values ); + +GLAPI void GLAPIENTRY glGetMinmaxParameterfv( GLenum target, GLenum pname, + GLfloat *params ); + +GLAPI void GLAPIENTRY glGetMinmaxParameteriv( GLenum target, GLenum pname, + GLint *params ); + +GLAPI void GLAPIENTRY glConvolutionFilter1D( GLenum target, + GLenum internalformat, GLsizei width, GLenum format, GLenum type, + const GLvoid *image ); + +GLAPI void GLAPIENTRY glConvolutionFilter2D( GLenum target, + GLenum internalformat, GLsizei width, GLsizei height, GLenum format, + GLenum type, const GLvoid *image ); + +GLAPI void GLAPIENTRY glConvolutionParameterf( GLenum target, GLenum pname, + GLfloat params ); + +GLAPI void GLAPIENTRY glConvolutionParameterfv( GLenum target, GLenum pname, + const GLfloat *params ); + +GLAPI void GLAPIENTRY glConvolutionParameteri( GLenum target, GLenum pname, + GLint params ); + +GLAPI void GLAPIENTRY glConvolutionParameteriv( GLenum target, GLenum pname, + const GLint *params ); + +GLAPI void GLAPIENTRY glCopyConvolutionFilter1D( GLenum target, + GLenum internalformat, GLint x, GLint y, GLsizei width ); + +GLAPI void GLAPIENTRY glCopyConvolutionFilter2D( GLenum target, + GLenum internalformat, GLint x, GLint y, GLsizei width, + GLsizei height); + +GLAPI void GLAPIENTRY glGetConvolutionFilter( GLenum target, GLenum format, + GLenum type, GLvoid *image ); + +GLAPI void GLAPIENTRY glGetConvolutionParameterfv( GLenum target, GLenum pname, + GLfloat *params ); + +GLAPI void GLAPIENTRY glGetConvolutionParameteriv( GLenum target, GLenum pname, + GLint *params ); + +GLAPI void GLAPIENTRY glSeparableFilter2D( GLenum target, + GLenum internalformat, GLsizei width, GLsizei height, GLenum format, + GLenum type, const GLvoid *row, const GLvoid *column ); + +GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format, + GLenum type, GLvoid *row, GLvoid *column, GLvoid *span ); + + + + +/* + * OpenGL 1.3 + */ + +/* multitexture */ +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 +/* texture_cube_map */ +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +/* texture_compression */ +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +/* multisample */ +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_MULTISAMPLE_BIT 0x20000000 +/* transpose_matrix */ +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 +/* texture_env_combine */ +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_SUBTRACT 0x84E7 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +/* texture_env_dot3 */ +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF +/* texture_border_clamp */ +#define GL_CLAMP_TO_BORDER 0x812D + +GLAPI void GLAPIENTRY glActiveTexture( GLenum texture ); + +GLAPI void GLAPIENTRY glClientActiveTexture( GLenum texture ); + +GLAPI void GLAPIENTRY glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glGetCompressedTexImage( GLenum target, GLint lod, GLvoid *img ); + +GLAPI void GLAPIENTRY glMultiTexCoord1d( GLenum target, GLdouble s ); + +GLAPI void GLAPIENTRY glMultiTexCoord1dv( GLenum target, const GLdouble *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord1f( GLenum target, GLfloat s ); + +GLAPI void GLAPIENTRY glMultiTexCoord1fv( GLenum target, const GLfloat *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord1i( GLenum target, GLint s ); + +GLAPI void GLAPIENTRY glMultiTexCoord1iv( GLenum target, const GLint *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord1s( GLenum target, GLshort s ); + +GLAPI void GLAPIENTRY glMultiTexCoord1sv( GLenum target, const GLshort *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord2d( GLenum target, GLdouble s, GLdouble t ); + +GLAPI void GLAPIENTRY glMultiTexCoord2dv( GLenum target, const GLdouble *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord2f( GLenum target, GLfloat s, GLfloat t ); + +GLAPI void GLAPIENTRY glMultiTexCoord2fv( GLenum target, const GLfloat *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord2i( GLenum target, GLint s, GLint t ); + +GLAPI void GLAPIENTRY glMultiTexCoord2iv( GLenum target, const GLint *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord2s( GLenum target, GLshort s, GLshort t ); + +GLAPI void GLAPIENTRY glMultiTexCoord2sv( GLenum target, const GLshort *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord3d( GLenum target, GLdouble s, GLdouble t, GLdouble r ); + +GLAPI void GLAPIENTRY glMultiTexCoord3dv( GLenum target, const GLdouble *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord3f( GLenum target, GLfloat s, GLfloat t, GLfloat r ); + +GLAPI void GLAPIENTRY glMultiTexCoord3fv( GLenum target, const GLfloat *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord3i( GLenum target, GLint s, GLint t, GLint r ); + +GLAPI void GLAPIENTRY glMultiTexCoord3iv( GLenum target, const GLint *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord3s( GLenum target, GLshort s, GLshort t, GLshort r ); + +GLAPI void GLAPIENTRY glMultiTexCoord3sv( GLenum target, const GLshort *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord4d( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q ); + +GLAPI void GLAPIENTRY glMultiTexCoord4dv( GLenum target, const GLdouble *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ); + +GLAPI void GLAPIENTRY glMultiTexCoord4fv( GLenum target, const GLfloat *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord4i( GLenum target, GLint s, GLint t, GLint r, GLint q ); + +GLAPI void GLAPIENTRY glMultiTexCoord4iv( GLenum target, const GLint *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord4s( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q ); + +GLAPI void GLAPIENTRY glMultiTexCoord4sv( GLenum target, const GLshort *v ); + + +GLAPI void GLAPIENTRY glLoadTransposeMatrixd( const GLdouble m[16] ); + +GLAPI void GLAPIENTRY glLoadTransposeMatrixf( const GLfloat m[16] ); + +GLAPI void GLAPIENTRY glMultTransposeMatrixd( const GLdouble m[16] ); + +GLAPI void GLAPIENTRY glMultTransposeMatrixf( const GLfloat m[16] ); + +GLAPI void GLAPIENTRY glSampleCoverage( GLclampf value, GLboolean invert ); + + +typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); + + + +/* + * GL_ARB_multitexture (ARB extension 1 and OpenGL 1.2.1) + */ +#ifndef GL_ARB_multitexture +#define GL_ARB_multitexture 1 + +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9_ARB 0x84C9 +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31_ARB 0x84DF +#define GL_ACTIVE_TEXTURE_ARB 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 +#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 + +GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture); +GLAPI void GLAPIENTRY glClientActiveTextureARB(GLenum texture); +GLAPI void GLAPIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s); +GLAPI void GLAPIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v); +GLAPI void GLAPIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s); +GLAPI void GLAPIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v); +GLAPI void GLAPIENTRY glMultiTexCoord1iARB(GLenum target, GLint s); +GLAPI void GLAPIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v); +GLAPI void GLAPIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s); +GLAPI void GLAPIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v); +GLAPI void GLAPIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); +GLAPI void GLAPIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v); +GLAPI void GLAPIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); +GLAPI void GLAPIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v); +GLAPI void GLAPIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t); +GLAPI void GLAPIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v); +GLAPI void GLAPIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); +GLAPI void GLAPIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v); +GLAPI void GLAPIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); +GLAPI void GLAPIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v); +GLAPI void GLAPIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); +GLAPI void GLAPIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v); +GLAPI void GLAPIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); +GLAPI void GLAPIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v); +GLAPI void GLAPIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); +GLAPI void GLAPIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v); +GLAPI void GLAPIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +GLAPI void GLAPIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v); +GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v); +GLAPI void GLAPIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); +GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v); +GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v); + +typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); + +#endif /* GL_ARB_multitexture */ + + + +/* + * Define this token if you want "old-style" header file behaviour (extensions + * defined in gl.h). Otherwise, extensions will be included from glext.h. + */ +#if !defined(NO_SDL_GLEXT) && !defined(GL_GLEXT_LEGACY) +#include "SDL_opengl_glext.h" +#endif /* GL_GLEXT_LEGACY */ + + + +/* + * ???. GL_MESA_packed_depth_stencil + * XXX obsolete + */ +#ifndef GL_MESA_packed_depth_stencil +#define GL_MESA_packed_depth_stencil 1 + +#define GL_DEPTH_STENCIL_MESA 0x8750 +#define GL_UNSIGNED_INT_24_8_MESA 0x8751 +#define GL_UNSIGNED_INT_8_24_REV_MESA 0x8752 +#define GL_UNSIGNED_SHORT_15_1_MESA 0x8753 +#define GL_UNSIGNED_SHORT_1_15_REV_MESA 0x8754 + +#endif /* GL_MESA_packed_depth_stencil */ + + +#ifndef GL_ATI_blend_equation_separate +#define GL_ATI_blend_equation_separate 1 + +#define GL_ALPHA_BLEND_EQUATION_ATI 0x883D + +GLAPI void GLAPIENTRY glBlendEquationSeparateATI( GLenum modeRGB, GLenum modeA ); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLenum modeA); + +#endif /* GL_ATI_blend_equation_separate */ + + +/* GL_OES_EGL_image */ +#ifndef GL_OES_EGL_image +typedef void* GLeglImageOES; +#endif + +#ifndef GL_OES_EGL_image +#define GL_OES_EGL_image 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); +GLAPI void APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); +#endif +typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); +typedef void (APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); +#endif + + +/** + ** NOTE!!!!! If you add new functions to this file, or update + ** glext.h be sure to regenerate the gl_mangle.h file. See comments + ** in that file for details. + **/ + + + +/********************************************************************** + * Begin system-specific stuff + */ +#if defined(PRAGMA_EXPORT_SUPPORTED) +#pragma export off +#endif + +/* + * End system-specific stuff + **********************************************************************/ + + +#ifdef __cplusplus +} +#endif + +#endif /* __gl_h_ */ + +#endif /* !__IPHONEOS__ */ + +#endif /* _SDL_opengl_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_opengl_glext.h b/Template/Game/Source/External/SDL/include/SDL_opengl_glext.h new file mode 100644 index 0000000..cd3869f --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_opengl_glext.h @@ -0,0 +1,11177 @@ +#ifndef __glext_h_ +#define __glext_h_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2013-2014 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ +/* +** This header is generated from the Khronos OpenGL / OpenGL ES XML +** API Registry. The current version of the Registry, generator scripts +** used to make the header, and the header can be found at +** http://www.opengl.org/registry/ +** +** Khronos $Revision: 26745 $ on $Date: 2014-05-21 03:12:26 -0700 (Wed, 21 May 2014) $ +*/ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN 1 +#endif +#include +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif +#ifndef GLAPI +#define GLAPI extern +#endif + +#define GL_GLEXT_VERSION 20140521 + +/* Generated C header for: + * API: gl + * Profile: compatibility + * Versions considered: .* + * Versions emitted: 1\.[2-9]|[234]\.[0-9] + * Default extensions included: gl + * Additional extensions included: _nomatch_^ + * Extensions removed: _nomatch_^ + */ + +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_TEXTURE_BINDING_3D 0x806A +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#define GL_RESCALE_NORMAL 0x803A +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); +typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); +GLAPI void APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif +#endif /* GL_VERSION_1_2 */ + +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_CLAMP_TO_BORDER 0x812D +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 +#define GL_MULTISAMPLE_BIT 0x20000000 +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_SUBTRACT 0x84E7 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF +typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, void *img); +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveTexture (GLenum texture); +GLAPI void APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); +GLAPI void APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glGetCompressedTexImage (GLenum target, GLint level, void *img); +GLAPI void APIENTRY glClientActiveTexture (GLenum texture); +GLAPI void APIENTRY glMultiTexCoord1d (GLenum target, GLdouble s); +GLAPI void APIENTRY glMultiTexCoord1dv (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord1f (GLenum target, GLfloat s); +GLAPI void APIENTRY glMultiTexCoord1fv (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord1i (GLenum target, GLint s); +GLAPI void APIENTRY glMultiTexCoord1iv (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord1s (GLenum target, GLshort s); +GLAPI void APIENTRY glMultiTexCoord1sv (GLenum target, const GLshort *v); +GLAPI void APIENTRY glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t); +GLAPI void APIENTRY glMultiTexCoord2dv (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t); +GLAPI void APIENTRY glMultiTexCoord2fv (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord2i (GLenum target, GLint s, GLint t); +GLAPI void APIENTRY glMultiTexCoord2iv (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord2s (GLenum target, GLshort s, GLshort t); +GLAPI void APIENTRY glMultiTexCoord2sv (GLenum target, const GLshort *v); +GLAPI void APIENTRY glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r); +GLAPI void APIENTRY glMultiTexCoord3dv (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r); +GLAPI void APIENTRY glMultiTexCoord3fv (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r); +GLAPI void APIENTRY glMultiTexCoord3iv (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r); +GLAPI void APIENTRY glMultiTexCoord3sv (GLenum target, const GLshort *v); +GLAPI void APIENTRY glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +GLAPI void APIENTRY glMultiTexCoord4dv (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI void APIENTRY glMultiTexCoord4fv (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q); +GLAPI void APIENTRY glMultiTexCoord4iv (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +GLAPI void APIENTRY glMultiTexCoord4sv (GLenum target, const GLshort *v); +GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *m); +GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *m); +GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *m); +GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *m); +#endif +#endif /* GL_VERSION_1_3 */ + +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_MIRRORED_REPEAT 0x8370 +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_LOD_BIAS 0x8501 +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#define GL_POINT_SIZE_MIN 0x8126 +#define GL_POINT_SIZE_MAX 0x8127 +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 +#define GL_GENERATE_MIPMAP 0x8191 +#define GL_GENERATE_MIPMAP_HINT 0x8192 +#define GL_FOG_COORDINATE_SOURCE 0x8450 +#define GL_FOG_COORDINATE 0x8451 +#define GL_FRAGMENT_DEPTH 0x8452 +#define GL_CURRENT_FOG_COORDINATE 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 +#define GL_FOG_COORDINATE_ARRAY 0x8457 +#define GL_COLOR_SUM 0x8458 +#define GL_CURRENT_SECONDARY_COLOR 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D +#define GL_SECONDARY_COLOR_ARRAY 0x845E +#define GL_TEXTURE_FILTER_CONTROL 0x8500 +#define GL_DEPTH_TEXTURE_MODE 0x884B +#define GL_COMPARE_R_TO_TEXTURE 0x884E +#define GL_FUNC_ADD 0x8006 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord); +typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord); +typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord); +typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord); +typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); +typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +GLAPI void APIENTRY glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); +GLAPI void APIENTRY glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount); +GLAPI void APIENTRY glPointParameterf (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glPointParameteri (GLenum pname, GLint param); +GLAPI void APIENTRY glPointParameteriv (GLenum pname, const GLint *params); +GLAPI void APIENTRY glFogCoordf (GLfloat coord); +GLAPI void APIENTRY glFogCoordfv (const GLfloat *coord); +GLAPI void APIENTRY glFogCoordd (GLdouble coord); +GLAPI void APIENTRY glFogCoorddv (const GLdouble *coord); +GLAPI void APIENTRY glFogCoordPointer (GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue); +GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *v); +GLAPI void APIENTRY glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue); +GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *v); +GLAPI void APIENTRY glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue); +GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *v); +GLAPI void APIENTRY glSecondaryColor3i (GLint red, GLint green, GLint blue); +GLAPI void APIENTRY glSecondaryColor3iv (const GLint *v); +GLAPI void APIENTRY glSecondaryColor3s (GLshort red, GLshort green, GLshort blue); +GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *v); +GLAPI void APIENTRY glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue); +GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *v); +GLAPI void APIENTRY glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue); +GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *v); +GLAPI void APIENTRY glSecondaryColor3us (GLushort red, GLushort green, GLushort blue); +GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *v); +GLAPI void APIENTRY glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glWindowPos2d (GLdouble x, GLdouble y); +GLAPI void APIENTRY glWindowPos2dv (const GLdouble *v); +GLAPI void APIENTRY glWindowPos2f (GLfloat x, GLfloat y); +GLAPI void APIENTRY glWindowPos2fv (const GLfloat *v); +GLAPI void APIENTRY glWindowPos2i (GLint x, GLint y); +GLAPI void APIENTRY glWindowPos2iv (const GLint *v); +GLAPI void APIENTRY glWindowPos2s (GLshort x, GLshort y); +GLAPI void APIENTRY glWindowPos2sv (const GLshort *v); +GLAPI void APIENTRY glWindowPos3d (GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glWindowPos3dv (const GLdouble *v); +GLAPI void APIENTRY glWindowPos3f (GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glWindowPos3fv (const GLfloat *v); +GLAPI void APIENTRY glWindowPos3i (GLint x, GLint y, GLint z); +GLAPI void APIENTRY glWindowPos3iv (const GLint *v); +GLAPI void APIENTRY glWindowPos3s (GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glWindowPos3sv (const GLshort *v); +GLAPI void APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void APIENTRY glBlendEquation (GLenum mode); +#endif +#endif /* GL_VERSION_1_4 */ + +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 +#include +#ifdef __MACOSX__ +typedef long GLsizeiptr; +typedef long GLintptr; +#else +typedef ptrdiff_t GLsizeiptr; +typedef ptrdiff_t GLintptr; +#endif +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_CURRENT_QUERY 0x8865 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_READ_ONLY 0x88B8 +#define GL_WRITE_ONLY 0x88B9 +#define GL_READ_WRITE 0x88BA +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_COPY 0x88E2 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_COPY 0x88E6 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_SAMPLES_PASSED 0x8914 +#define GL_SRC1_ALPHA 0x8589 +#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E +#define GL_FOG_COORD_SRC 0x8450 +#define GL_FOG_COORD 0x8451 +#define GL_CURRENT_FOG_COORD 0x8453 +#define GL_FOG_COORD_ARRAY_TYPE 0x8454 +#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORD_ARRAY_POINTER 0x8456 +#define GL_FOG_COORD_ARRAY 0x8457 +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D +#define GL_SRC0_RGB 0x8580 +#define GL_SRC1_RGB 0x8581 +#define GL_SRC2_RGB 0x8582 +#define GL_SRC0_ALPHA 0x8588 +#define GL_SRC2_ALPHA 0x858A +typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); +typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); +typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); +typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); +typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); +typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, void *data); +typedef void *(APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenQueries (GLsizei n, GLuint *ids); +GLAPI void APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); +GLAPI GLboolean APIENTRY glIsQuery (GLuint id); +GLAPI void APIENTRY glBeginQuery (GLenum target, GLuint id); +GLAPI void APIENTRY glEndQuery (GLenum target); +GLAPI void APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); +GLAPI void APIENTRY glBindBuffer (GLenum target, GLuint buffer); +GLAPI void APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); +GLAPI void APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); +GLAPI GLboolean APIENTRY glIsBuffer (GLuint buffer); +GLAPI void APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); +GLAPI void APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); +GLAPI void APIENTRY glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, void *data); +GLAPI void *APIENTRY glMapBuffer (GLenum target, GLenum access); +GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum target); +GLAPI void APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); +#endif +#endif /* GL_VERSION_1_5 */ + +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 +typedef char GLchar; +#define GL_BLEND_EQUATION_RGB 0x8009 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_BLEND_EQUATION_ALPHA 0x883D +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_SHADER_TYPE 0x8B4F +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 +#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 +#define GL_POINT_SPRITE 0x8861 +#define GL_COORD_REPLACE 0x8862 +#define GL_MAX_TEXTURE_COORDS 0x8871 +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); +typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); +typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); +typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); +typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); +typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); +typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); +typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); +typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); +typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); +typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); +GLAPI void APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); +GLAPI void APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +GLAPI void APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); +GLAPI void APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); +GLAPI void APIENTRY glAttachShader (GLuint program, GLuint shader); +GLAPI void APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); +GLAPI void APIENTRY glCompileShader (GLuint shader); +GLAPI GLuint APIENTRY glCreateProgram (void); +GLAPI GLuint APIENTRY glCreateShader (GLenum type); +GLAPI void APIENTRY glDeleteProgram (GLuint program); +GLAPI void APIENTRY glDeleteShader (GLuint shader); +GLAPI void APIENTRY glDetachShader (GLuint program, GLuint shader); +GLAPI void APIENTRY glDisableVertexAttribArray (GLuint index); +GLAPI void APIENTRY glEnableVertexAttribArray (GLuint index); +GLAPI void APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +GLAPI GLint APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); +GLAPI void APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI void APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI void APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +GLAPI GLint APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); +GLAPI void APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); +GLAPI void APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); +GLAPI void APIENTRY glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params); +GLAPI void APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); +GLAPI GLboolean APIENTRY glIsProgram (GLuint program); +GLAPI GLboolean APIENTRY glIsShader (GLuint shader); +GLAPI void APIENTRY glLinkProgram (GLuint program); +GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); +GLAPI void APIENTRY glUseProgram (GLuint program); +GLAPI void APIENTRY glUniform1f (GLint location, GLfloat v0); +GLAPI void APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); +GLAPI void APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI void APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI void APIENTRY glUniform1i (GLint location, GLint v0); +GLAPI void APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); +GLAPI void APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); +GLAPI void APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI void APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glValidateProgram (GLuint program); +GLAPI void APIENTRY glVertexAttrib1d (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttrib1dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); +GLAPI void APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib1s (GLuint index, GLshort x); +GLAPI void APIENTRY glVertexAttrib1sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttrib2dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); +GLAPI void APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib2s (GLuint index, GLshort x, GLshort y); +GLAPI void APIENTRY glVertexAttrib2sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttrib3dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glVertexAttrib3sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttrib4Niv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttrib4bv (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttrib4dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib4iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void APIENTRY glVertexAttrib4sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4ubv (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttrib4uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttrib4usv (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); +#endif +#endif /* GL_VERSION_2_0 */ + +#ifndef GL_VERSION_2_1 +#define GL_VERSION_2_1 1 +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB_ALPHA 0x8C42 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F +#define GL_SLUMINANCE_ALPHA 0x8C44 +#define GL_SLUMINANCE8_ALPHA8 0x8C45 +#define GL_SLUMINANCE 0x8C46 +#define GL_SLUMINANCE8 0x8C47 +#define GL_COMPRESSED_SLUMINANCE 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif +#endif /* GL_VERSION_2_1 */ + +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 +typedef unsigned short GLhalf; +#define GL_COMPARE_REF_TO_TEXTURE 0x884E +#define GL_CLIP_DISTANCE0 0x3000 +#define GL_CLIP_DISTANCE1 0x3001 +#define GL_CLIP_DISTANCE2 0x3002 +#define GL_CLIP_DISTANCE3 0x3003 +#define GL_CLIP_DISTANCE4 0x3004 +#define GL_CLIP_DISTANCE5 0x3005 +#define GL_CLIP_DISTANCE6 0x3006 +#define GL_CLIP_DISTANCE7 0x3007 +#define GL_MAX_CLIP_DISTANCES 0x0D32 +#define GL_MAJOR_VERSION 0x821B +#define GL_MINOR_VERSION 0x821C +#define GL_NUM_EXTENSIONS 0x821D +#define GL_CONTEXT_FLAGS 0x821E +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001 +#define GL_RGBA32F 0x8814 +#define GL_RGB32F 0x8815 +#define GL_RGBA16F 0x881A +#define GL_RGB16F 0x881B +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD +#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF +#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_FIXED_ONLY 0x891D +#define GL_MAX_VARYING_COMPONENTS 0x8B4B +#define GL_TEXTURE_1D_ARRAY 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D +#define GL_R11F_G11F_B10F 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B +#define GL_RGB9_E5 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E +#define GL_TEXTURE_SHARED_SIZE 0x8C3F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 +#define GL_PRIMITIVES_GENERATED 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 +#define GL_RASTERIZER_DISCARD 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B +#define GL_INTERLEAVED_ATTRIBS 0x8C8C +#define GL_SEPARATE_ATTRIBS 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F +#define GL_RGBA32UI 0x8D70 +#define GL_RGB32UI 0x8D71 +#define GL_RGBA16UI 0x8D76 +#define GL_RGB16UI 0x8D77 +#define GL_RGBA8UI 0x8D7C +#define GL_RGB8UI 0x8D7D +#define GL_RGBA32I 0x8D82 +#define GL_RGB32I 0x8D83 +#define GL_RGBA16I 0x8D88 +#define GL_RGB16I 0x8D89 +#define GL_RGBA8I 0x8D8E +#define GL_RGB8I 0x8D8F +#define GL_RED_INTEGER 0x8D94 +#define GL_GREEN_INTEGER 0x8D95 +#define GL_BLUE_INTEGER 0x8D96 +#define GL_RGB_INTEGER 0x8D98 +#define GL_RGBA_INTEGER 0x8D99 +#define GL_BGR_INTEGER 0x8D9A +#define GL_BGRA_INTEGER 0x8D9B +#define GL_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_2D_ARRAY 0x8DC1 +#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 +#define GL_UNSIGNED_INT_VEC2 0x8DC6 +#define GL_UNSIGNED_INT_VEC3 0x8DC7 +#define GL_UNSIGNED_INT_VEC4 0x8DC8 +#define GL_INT_SAMPLER_1D 0x8DC9 +#define GL_INT_SAMPLER_2D 0x8DCA +#define GL_INT_SAMPLER_3D 0x8DCB +#define GL_INT_SAMPLER_CUBE 0x8DCC +#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF +#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 +#define GL_QUERY_WAIT 0x8E13 +#define GL_QUERY_NO_WAIT 0x8E14 +#define GL_QUERY_BY_REGION_WAIT 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 +#define GL_BUFFER_ACCESS_FLAGS 0x911F +#define GL_BUFFER_MAP_LENGTH 0x9120 +#define GL_BUFFER_MAP_OFFSET 0x9121 +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_MAX_SAMPLES 0x8D57 +#define GL_INDEX 0x8222 +#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 +#define GL_FRAMEBUFFER_SRGB 0x8DB9 +#define GL_HALF_FLOAT 0x140B +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE +#define GL_RG 0x8227 +#define GL_RG_INTEGER 0x8228 +#define GL_R8 0x8229 +#define GL_R16 0x822A +#define GL_RG8 0x822B +#define GL_RG16 0x822C +#define GL_R16F 0x822D +#define GL_R32F 0x822E +#define GL_RG16F 0x822F +#define GL_RG32F 0x8230 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C +#define GL_VERTEX_ARRAY_BINDING 0x85B5 +#define GL_CLAMP_VERTEX_COLOR 0x891A +#define GL_CLAMP_FRAGMENT_COLOR 0x891B +#define GL_ALPHA_INTEGER 0x8D97 +typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); +typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); +typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); +typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); +typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); +typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +typedef const GLubyte *(APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); +typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); +typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); +typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); +typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); +typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); +typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); +typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void *(APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); +typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); +typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); +typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +GLAPI void APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); +GLAPI void APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); +GLAPI void APIENTRY glEnablei (GLenum target, GLuint index); +GLAPI void APIENTRY glDisablei (GLenum target, GLuint index); +GLAPI GLboolean APIENTRY glIsEnabledi (GLenum target, GLuint index); +GLAPI void APIENTRY glBeginTransformFeedback (GLenum primitiveMode); +GLAPI void APIENTRY glEndTransformFeedback (void); +GLAPI void APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI void APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); +GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); +GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glClampColor (GLenum target, GLenum clamp); +GLAPI void APIENTRY glBeginConditionalRender (GLuint id, GLenum mode); +GLAPI void APIENTRY glEndConditionalRender (void); +GLAPI void APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); +GLAPI void APIENTRY glVertexAttribI1i (GLuint index, GLint x); +GLAPI void APIENTRY glVertexAttribI2i (GLuint index, GLint x, GLint y); +GLAPI void APIENTRY glVertexAttribI3i (GLuint index, GLint x, GLint y, GLint z); +GLAPI void APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glVertexAttribI1ui (GLuint index, GLuint x); +GLAPI void APIENTRY glVertexAttribI2ui (GLuint index, GLuint x, GLuint y); +GLAPI void APIENTRY glVertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z); +GLAPI void APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +GLAPI void APIENTRY glVertexAttribI1iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI2iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI3iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI1uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI2uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI3uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI4bv (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttribI4sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttribI4ubv (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttribI4usv (GLuint index, const GLushort *v); +GLAPI void APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); +GLAPI void APIENTRY glBindFragDataLocation (GLuint program, GLuint color, const GLchar *name); +GLAPI GLint APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); +GLAPI void APIENTRY glUniform1ui (GLint location, GLuint v0); +GLAPI void APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); +GLAPI void APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI void APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI void APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params); +GLAPI void APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params); +GLAPI void APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); +GLAPI void APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); +GLAPI void APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); +GLAPI void APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +GLAPI const GLubyte *APIENTRY glGetStringi (GLenum name, GLuint index); +GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint renderbuffer); +GLAPI void APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); +GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); +GLAPI void APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); +GLAPI void APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint framebuffer); +GLAPI void APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); +GLAPI void APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); +GLAPI void APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); +GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum target); +GLAPI void APIENTRY glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); +GLAPI void APIENTRY glGenerateMipmap (GLenum target); +GLAPI void APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +GLAPI void *APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +GLAPI void APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); +GLAPI void APIENTRY glBindVertexArray (GLuint array); +GLAPI void APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); +GLAPI void APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); +GLAPI GLboolean APIENTRY glIsVertexArray (GLuint array); +#endif +#endif /* GL_VERSION_3_0 */ + +#ifndef GL_VERSION_3_1 +#define GL_VERSION_3_1 1 +#define GL_SAMPLER_2D_RECT 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 +#define GL_SAMPLER_BUFFER 0x8DC2 +#define GL_INT_SAMPLER_2D_RECT 0x8DCD +#define GL_INT_SAMPLER_BUFFER 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 +#define GL_TEXTURE_BUFFER 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D +#define GL_TEXTURE_RECTANGLE 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_R16_SNORM 0x8F98 +#define GL_RG16_SNORM 0x8F99 +#define GL_RGB16_SNORM 0x8F9A +#define GL_RGBA16_SNORM 0x8F9B +#define GL_SIGNED_NORMALIZED 0x8F9C +#define GL_PRIMITIVE_RESTART 0x8F9D +#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E +#define GL_COPY_READ_BUFFER 0x8F36 +#define GL_COPY_WRITE_BUFFER 0x8F37 +#define GL_UNIFORM_BUFFER 0x8A11 +#define GL_UNIFORM_BUFFER_BINDING 0x8A28 +#define GL_UNIFORM_BUFFER_START 0x8A29 +#define GL_UNIFORM_BUFFER_SIZE 0x8A2A +#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B +#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D +#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E +#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F +#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 +#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 +#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 +#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 +#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 +#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 +#define GL_UNIFORM_TYPE 0x8A37 +#define GL_UNIFORM_SIZE 0x8A38 +#define GL_UNIFORM_NAME_LENGTH 0x8A39 +#define GL_UNIFORM_BLOCK_INDEX 0x8A3A +#define GL_UNIFORM_OFFSET 0x8A3B +#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C +#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D +#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E +#define GL_UNIFORM_BLOCK_BINDING 0x8A3F +#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 +#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 +#define GL_INVALID_INDEX 0xFFFFFFFFu +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); +typedef void (APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index); +typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); +GLAPI void APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer); +GLAPI void APIENTRY glPrimitiveRestartIndex (GLuint index); +GLAPI void APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +GLAPI void APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); +GLAPI void APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +GLAPI GLuint APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); +GLAPI void APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +GLAPI void APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +#endif +#endif /* GL_VERSION_3_1 */ + +#ifndef GL_VERSION_3_2 +#define GL_VERSION_3_2 1 +typedef struct __GLsync *GLsync; +#ifndef GLEXT_64_TYPES_DEFINED +/* This code block is duplicated in glxext.h, so must be protected */ +#define GLEXT_64_TYPES_DEFINED +/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ +/* (as used in the GL_EXT_timer_query extension). */ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include +#elif defined(__sun__) || defined(__digital__) +#include +#if defined(__STDC__) +#if defined(__arch64__) || defined(_LP64) +typedef long int int64_t; +typedef unsigned long int uint64_t; +#else +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#endif /* __arch64__ */ +#endif /* __STDC__ */ +#elif defined( __VMS ) || defined(__sgi) +#include +#elif defined(__SCO__) || defined(__USLC__) +#include +#elif defined(__UNIXOS2__) || defined(__SOL64__) +typedef long int int32_t; +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#elif defined(_WIN32) && defined(__GNUC__) +#include +#elif defined(_WIN32) +typedef __int32 int32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#else +/* Fallback if nothing above works */ +#include +#endif +#endif +typedef uint64_t GLuint64; +typedef int64_t GLint64; +#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 +#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define GL_LINES_ADJACENCY 0x000A +#define GL_LINE_STRIP_ADJACENCY 0x000B +#define GL_TRIANGLES_ADJACENCY 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D +#define GL_PROGRAM_POINT_SIZE 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 +#define GL_GEOMETRY_SHADER 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT 0x8916 +#define GL_GEOMETRY_INPUT_TYPE 0x8917 +#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 +#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 +#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 +#define GL_CONTEXT_PROFILE_MASK 0x9126 +#define GL_DEPTH_CLAMP 0x864F +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F +#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 +#define GL_OBJECT_TYPE 0x9112 +#define GL_SYNC_CONDITION 0x9113 +#define GL_SYNC_STATUS 0x9114 +#define GL_SYNC_FLAGS 0x9115 +#define GL_SYNC_FENCE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GL_UNSIGNALED 0x9118 +#define GL_SIGNALED 0x9119 +#define GL_ALREADY_SIGNALED 0x911A +#define GL_TIMEOUT_EXPIRED 0x911B +#define GL_CONDITION_SATISFIED 0x911C +#define GL_WAIT_FAILED 0x911D +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#define GL_SAMPLE_POSITION 0x8E50 +#define GL_SAMPLE_MASK 0x8E51 +#define GL_SAMPLE_MASK_VALUE 0x8E52 +#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 +#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 +#define GL_TEXTURE_SAMPLES 0x9106 +#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 +#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 +#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D +#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E +#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F +#define GL_MAX_INTEGER_SAMPLES 0x9110 +typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); +typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC) (GLenum mode); +typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); +typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync); +typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); +typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); +typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); +typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +GLAPI void APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +GLAPI void APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +GLAPI void APIENTRY glMultiDrawElementsBaseVertex (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); +GLAPI void APIENTRY glProvokingVertex (GLenum mode); +GLAPI GLsync APIENTRY glFenceSync (GLenum condition, GLbitfield flags); +GLAPI GLboolean APIENTRY glIsSync (GLsync sync); +GLAPI void APIENTRY glDeleteSync (GLsync sync); +GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); +GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); +GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); +GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +GLAPI void APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); +GLAPI void APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); +GLAPI void APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); +GLAPI void APIENTRY glTexImage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glTexImage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); +GLAPI void APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); +#endif +#endif /* GL_VERSION_3_2 */ + +#ifndef GL_VERSION_3_3 +#define GL_VERSION_3_3 1 +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE +#define GL_SRC1_COLOR 0x88F9 +#define GL_ONE_MINUS_SRC1_COLOR 0x88FA +#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB +#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC +#define GL_ANY_SAMPLES_PASSED 0x8C2F +#define GL_SAMPLER_BINDING 0x8919 +#define GL_RGB10_A2UI 0x906F +#define GL_TEXTURE_SWIZZLE_R 0x8E42 +#define GL_TEXTURE_SWIZZLE_G 0x8E43 +#define GL_TEXTURE_SWIZZLE_B 0x8E44 +#define GL_TEXTURE_SWIZZLE_A 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 +#define GL_TIME_ELAPSED 0x88BF +#define GL_TIMESTAMP 0x8E28 +#define GL_INT_2_10_10_10_REV 0x8D9F +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); +typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); +typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); +typedef void (APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64 *params); +typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint *value); +typedef void (APIENTRYP PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLCOLORP3UIPROC) (GLenum type, GLuint color); +typedef void (APIENTRYP PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint *color); +typedef void (APIENTRYP PFNGLCOLORP4UIPROC) (GLenum type, GLuint color); +typedef void (APIENTRYP PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint *color); +typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color); +typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint *color); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +GLAPI GLint APIENTRY glGetFragDataIndex (GLuint program, const GLchar *name); +GLAPI void APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); +GLAPI void APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); +GLAPI GLboolean APIENTRY glIsSampler (GLuint sampler); +GLAPI void APIENTRY glBindSampler (GLuint unit, GLuint sampler); +GLAPI void APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); +GLAPI void APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); +GLAPI void APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); +GLAPI void APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); +GLAPI void APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param); +GLAPI void APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param); +GLAPI void APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params); +GLAPI void APIENTRY glQueryCounter (GLuint id, GLenum target); +GLAPI void APIENTRY glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64 *params); +GLAPI void APIENTRY glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64 *params); +GLAPI void APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); +GLAPI void APIENTRY glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexP2ui (GLenum type, GLuint value); +GLAPI void APIENTRY glVertexP2uiv (GLenum type, const GLuint *value); +GLAPI void APIENTRY glVertexP3ui (GLenum type, GLuint value); +GLAPI void APIENTRY glVertexP3uiv (GLenum type, const GLuint *value); +GLAPI void APIENTRY glVertexP4ui (GLenum type, GLuint value); +GLAPI void APIENTRY glVertexP4uiv (GLenum type, const GLuint *value); +GLAPI void APIENTRY glTexCoordP1ui (GLenum type, GLuint coords); +GLAPI void APIENTRY glTexCoordP1uiv (GLenum type, const GLuint *coords); +GLAPI void APIENTRY glTexCoordP2ui (GLenum type, GLuint coords); +GLAPI void APIENTRY glTexCoordP2uiv (GLenum type, const GLuint *coords); +GLAPI void APIENTRY glTexCoordP3ui (GLenum type, GLuint coords); +GLAPI void APIENTRY glTexCoordP3uiv (GLenum type, const GLuint *coords); +GLAPI void APIENTRY glTexCoordP4ui (GLenum type, GLuint coords); +GLAPI void APIENTRY glTexCoordP4uiv (GLenum type, const GLuint *coords); +GLAPI void APIENTRY glMultiTexCoordP1ui (GLenum texture, GLenum type, GLuint coords); +GLAPI void APIENTRY glMultiTexCoordP1uiv (GLenum texture, GLenum type, const GLuint *coords); +GLAPI void APIENTRY glMultiTexCoordP2ui (GLenum texture, GLenum type, GLuint coords); +GLAPI void APIENTRY glMultiTexCoordP2uiv (GLenum texture, GLenum type, const GLuint *coords); +GLAPI void APIENTRY glMultiTexCoordP3ui (GLenum texture, GLenum type, GLuint coords); +GLAPI void APIENTRY glMultiTexCoordP3uiv (GLenum texture, GLenum type, const GLuint *coords); +GLAPI void APIENTRY glMultiTexCoordP4ui (GLenum texture, GLenum type, GLuint coords); +GLAPI void APIENTRY glMultiTexCoordP4uiv (GLenum texture, GLenum type, const GLuint *coords); +GLAPI void APIENTRY glNormalP3ui (GLenum type, GLuint coords); +GLAPI void APIENTRY glNormalP3uiv (GLenum type, const GLuint *coords); +GLAPI void APIENTRY glColorP3ui (GLenum type, GLuint color); +GLAPI void APIENTRY glColorP3uiv (GLenum type, const GLuint *color); +GLAPI void APIENTRY glColorP4ui (GLenum type, GLuint color); +GLAPI void APIENTRY glColorP4uiv (GLenum type, const GLuint *color); +GLAPI void APIENTRY glSecondaryColorP3ui (GLenum type, GLuint color); +GLAPI void APIENTRY glSecondaryColorP3uiv (GLenum type, const GLuint *color); +#endif +#endif /* GL_VERSION_3_3 */ + +#ifndef GL_VERSION_4_0 +#define GL_VERSION_4_0 1 +#define GL_SAMPLE_SHADING 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F +#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F +#define GL_DRAW_INDIRECT_BUFFER 0x8F3F +#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D +#define GL_MAX_VERTEX_STREAMS 0x8E71 +#define GL_DOUBLE_VEC2 0x8FFC +#define GL_DOUBLE_VEC3 0x8FFD +#define GL_DOUBLE_VEC4 0x8FFE +#define GL_DOUBLE_MAT2 0x8F46 +#define GL_DOUBLE_MAT3 0x8F47 +#define GL_DOUBLE_MAT4 0x8F48 +#define GL_DOUBLE_MAT2x3 0x8F49 +#define GL_DOUBLE_MAT2x4 0x8F4A +#define GL_DOUBLE_MAT3x2 0x8F4B +#define GL_DOUBLE_MAT3x4 0x8F4C +#define GL_DOUBLE_MAT4x2 0x8F4D +#define GL_DOUBLE_MAT4x3 0x8F4E +#define GL_ACTIVE_SUBROUTINES 0x8DE5 +#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 +#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 +#define GL_MAX_SUBROUTINES 0x8DE7 +#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 +#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A +#define GL_COMPATIBLE_SUBROUTINES 0x8E4B +#define GL_PATCHES 0x000E +#define GL_PATCH_VERTICES 0x8E72 +#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 +#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 +#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 +#define GL_TESS_GEN_MODE 0x8E76 +#define GL_TESS_GEN_SPACING 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 +#define GL_TESS_GEN_POINT_MODE 0x8E79 +#define GL_ISOLINES 0x8E7A +#define GL_FRACTIONAL_ODD 0x8E7B +#define GL_FRACTIONAL_EVEN 0x8E7C +#define GL_MAX_PATCH_VERTICES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 +#define GL_TESS_EVALUATION_SHADER 0x8E87 +#define GL_TESS_CONTROL_SHADER 0x8E88 +#define GL_TRANSFORM_FEEDBACK 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 +#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 +typedef void (APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLfloat value); +typedef void (APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); +typedef void (APIENTRYP PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); +typedef void (APIENTRYP PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble *params); +typedef GLint (APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar *name); +typedef GLuint (APIENTRYP PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint *indices); +typedef void (APIENTRYP PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint *values); +typedef void (APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat *values); +typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); +typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); +typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); +typedef void (APIENTRYP PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMinSampleShading (GLfloat value); +GLAPI void APIENTRY glBlendEquationi (GLuint buf, GLenum mode); +GLAPI void APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +GLAPI void APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst); +GLAPI void APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +GLAPI void APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect); +GLAPI void APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect); +GLAPI void APIENTRY glUniform1d (GLint location, GLdouble x); +GLAPI void APIENTRY glUniform2d (GLint location, GLdouble x, GLdouble y); +GLAPI void APIENTRY glUniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glUniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glUniform1dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniform2dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniform3dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniform4dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glGetUniformdv (GLuint program, GLint location, GLdouble *params); +GLAPI GLint APIENTRY glGetSubroutineUniformLocation (GLuint program, GLenum shadertype, const GLchar *name); +GLAPI GLuint APIENTRY glGetSubroutineIndex (GLuint program, GLenum shadertype, const GLchar *name); +GLAPI void APIENTRY glGetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); +GLAPI void APIENTRY glGetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +GLAPI void APIENTRY glGetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +GLAPI void APIENTRY glUniformSubroutinesuiv (GLenum shadertype, GLsizei count, const GLuint *indices); +GLAPI void APIENTRY glGetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint *params); +GLAPI void APIENTRY glGetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint *values); +GLAPI void APIENTRY glPatchParameteri (GLenum pname, GLint value); +GLAPI void APIENTRY glPatchParameterfv (GLenum pname, const GLfloat *values); +GLAPI void APIENTRY glBindTransformFeedback (GLenum target, GLuint id); +GLAPI void APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); +GLAPI void APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); +GLAPI GLboolean APIENTRY glIsTransformFeedback (GLuint id); +GLAPI void APIENTRY glPauseTransformFeedback (void); +GLAPI void APIENTRY glResumeTransformFeedback (void); +GLAPI void APIENTRY glDrawTransformFeedback (GLenum mode, GLuint id); +GLAPI void APIENTRY glDrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream); +GLAPI void APIENTRY glBeginQueryIndexed (GLenum target, GLuint index, GLuint id); +GLAPI void APIENTRY glEndQueryIndexed (GLenum target, GLuint index); +GLAPI void APIENTRY glGetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint *params); +#endif +#endif /* GL_VERSION_4_0 */ + +#ifndef GL_VERSION_4_1 +#define GL_VERSION_4_1 1 +#define GL_FIXED 0x140C +#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B +#define GL_LOW_FLOAT 0x8DF0 +#define GL_MEDIUM_FLOAT 0x8DF1 +#define GL_HIGH_FLOAT 0x8DF2 +#define GL_LOW_INT 0x8DF3 +#define GL_MEDIUM_INT 0x8DF4 +#define GL_HIGH_INT 0x8DF5 +#define GL_SHADER_COMPILER 0x8DFA +#define GL_SHADER_BINARY_FORMATS 0x8DF8 +#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 +#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GL_MAX_VARYING_VECTORS 0x8DFC +#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD +#define GL_RGB565 0x8D62 +#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 +#define GL_PROGRAM_BINARY_LENGTH 0x8741 +#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE +#define GL_PROGRAM_BINARY_FORMATS 0x87FF +#define GL_VERTEX_SHADER_BIT 0x00000001 +#define GL_FRAGMENT_SHADER_BIT 0x00000002 +#define GL_GEOMETRY_SHADER_BIT 0x00000004 +#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 +#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 +#define GL_ALL_SHADER_BITS 0xFFFFFFFF +#define GL_PROGRAM_SEPARABLE 0x8258 +#define GL_ACTIVE_PROGRAM 0x8259 +#define GL_PROGRAM_PIPELINE_BINDING 0x825A +#define GL_MAX_VIEWPORTS 0x825B +#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C +#define GL_VIEWPORT_BOUNDS_RANGE 0x825D +#define GL_LAYER_PROVOKING_VERTEX 0x825E +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F +#define GL_UNDEFINED_VERTEX 0x8260 +typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); +typedef void (APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); +typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); +typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); +typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); +typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); +typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings); +typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); +typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v); +typedef void (APIENTRYP PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLdouble n, GLdouble f); +typedef void (APIENTRYP PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data); +typedef void (APIENTRYP PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glReleaseShaderCompiler (void); +GLAPI void APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); +GLAPI void APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +GLAPI void APIENTRY glDepthRangef (GLfloat n, GLfloat f); +GLAPI void APIENTRY glClearDepthf (GLfloat d); +GLAPI void APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); +GLAPI void APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); +GLAPI void APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); +GLAPI void APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); +GLAPI void APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); +GLAPI GLuint APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings); +GLAPI void APIENTRY glBindProgramPipeline (GLuint pipeline); +GLAPI void APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); +GLAPI void APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); +GLAPI GLboolean APIENTRY glIsProgramPipeline (GLuint pipeline); +GLAPI void APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); +GLAPI void APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); +GLAPI void APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); +GLAPI void APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform1d (GLuint program, GLint location, GLdouble v0); +GLAPI void APIENTRY glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); +GLAPI void APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); +GLAPI void APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); +GLAPI void APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform2d (GLuint program, GLint location, GLdouble v0, GLdouble v1); +GLAPI void APIENTRY glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); +GLAPI void APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +GLAPI void APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI void APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform3d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); +GLAPI void APIENTRY glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI void APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI void APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI void APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform4d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +GLAPI void APIENTRY glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI void APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glValidateProgramPipeline (GLuint pipeline); +GLAPI void APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI void APIENTRY glVertexAttribL1d (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttribL1dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL2dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL3dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL4dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble *params); +GLAPI void APIENTRY glViewportArrayv (GLuint first, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +GLAPI void APIENTRY glViewportIndexedfv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glScissorArrayv (GLuint first, GLsizei count, const GLint *v); +GLAPI void APIENTRY glScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +GLAPI void APIENTRY glScissorIndexedv (GLuint index, const GLint *v); +GLAPI void APIENTRY glDepthRangeArrayv (GLuint first, GLsizei count, const GLdouble *v); +GLAPI void APIENTRY glDepthRangeIndexed (GLuint index, GLdouble n, GLdouble f); +GLAPI void APIENTRY glGetFloati_v (GLenum target, GLuint index, GLfloat *data); +GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data); +#endif +#endif /* GL_VERSION_4_1 */ + +#ifndef GL_VERSION_4_2 +#define GL_VERSION_4_2 1 +#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127 +#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128 +#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129 +#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A +#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B +#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C +#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D +#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E +#define GL_NUM_SAMPLE_COUNTS 0x9380 +#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC +#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 +#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 +#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 +#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 +#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 +#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 +#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB +#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF +#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 +#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 +#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 +#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 +#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 +#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 +#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC +#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 +#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA +#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB +#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 +#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 +#define GL_UNIFORM_BARRIER_BIT 0x00000004 +#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 +#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 +#define GL_COMMAND_BARRIER_BIT 0x00000040 +#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 +#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 +#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 +#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 +#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 +#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 +#define GL_ALL_BARRIER_BITS 0xFFFFFFFF +#define GL_MAX_IMAGE_UNITS 0x8F38 +#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 +#define GL_IMAGE_BINDING_NAME 0x8F3A +#define GL_IMAGE_BINDING_LEVEL 0x8F3B +#define GL_IMAGE_BINDING_LAYERED 0x8F3C +#define GL_IMAGE_BINDING_LAYER 0x8F3D +#define GL_IMAGE_BINDING_ACCESS 0x8F3E +#define GL_IMAGE_1D 0x904C +#define GL_IMAGE_2D 0x904D +#define GL_IMAGE_3D 0x904E +#define GL_IMAGE_2D_RECT 0x904F +#define GL_IMAGE_CUBE 0x9050 +#define GL_IMAGE_BUFFER 0x9051 +#define GL_IMAGE_1D_ARRAY 0x9052 +#define GL_IMAGE_2D_ARRAY 0x9053 +#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 +#define GL_IMAGE_2D_MULTISAMPLE 0x9055 +#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 +#define GL_INT_IMAGE_1D 0x9057 +#define GL_INT_IMAGE_2D 0x9058 +#define GL_INT_IMAGE_3D 0x9059 +#define GL_INT_IMAGE_2D_RECT 0x905A +#define GL_INT_IMAGE_CUBE 0x905B +#define GL_INT_IMAGE_BUFFER 0x905C +#define GL_INT_IMAGE_1D_ARRAY 0x905D +#define GL_INT_IMAGE_2D_ARRAY 0x905E +#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F +#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 +#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 +#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 +#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 +#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 +#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 +#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 +#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 +#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 +#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C +#define GL_MAX_IMAGE_SAMPLES 0x906D +#define GL_IMAGE_BINDING_FORMAT 0x906E +#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 +#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 +#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 +#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD +#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE +#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF +#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C +#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F +#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); +typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); +typedef void (APIENTRYP PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); +typedef void (APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); +typedef void (APIENTRYP PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei instancecount); +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstancedBaseInstance (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); +GLAPI void APIENTRY glDrawElementsInstancedBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); +GLAPI void APIENTRY glDrawElementsInstancedBaseVertexBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); +GLAPI void APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); +GLAPI void APIENTRY glGetActiveAtomicCounterBufferiv (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); +GLAPI void APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); +GLAPI void APIENTRY glMemoryBarrier (GLbitfield barriers); +GLAPI void APIENTRY glTexStorage1D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +GLAPI void APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +GLAPI void APIENTRY glDrawTransformFeedbackInstanced (GLenum mode, GLuint id, GLsizei instancecount); +GLAPI void APIENTRY glDrawTransformFeedbackStreamInstanced (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount); +#endif +#endif /* GL_VERSION_4_2 */ + +#ifndef GL_VERSION_4_3 +#define GL_VERSION_4_3 1 +typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9 +#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E +#define GL_COMPRESSED_RGB8_ETC2 0x9274 +#define GL_COMPRESSED_SRGB8_ETC2 0x9275 +#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 +#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 +#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 +#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 +#define GL_COMPRESSED_R11_EAC 0x9270 +#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 +#define GL_COMPRESSED_RG11_EAC 0x9272 +#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 +#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 +#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A +#define GL_MAX_ELEMENT_INDEX 0x8D6B +#define GL_COMPUTE_SHADER 0x91B9 +#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB +#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC +#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD +#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 +#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 +#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 +#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 +#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 +#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB +#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE +#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF +#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED +#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE +#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF +#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 +#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 +#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 +#define GL_DEBUG_SOURCE_API 0x8246 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 +#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 +#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 +#define GL_DEBUG_SOURCE_APPLICATION 0x824A +#define GL_DEBUG_SOURCE_OTHER 0x824B +#define GL_DEBUG_TYPE_ERROR 0x824C +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E +#define GL_DEBUG_TYPE_PORTABILITY 0x824F +#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 +#define GL_DEBUG_TYPE_OTHER 0x8251 +#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES 0x9145 +#define GL_DEBUG_SEVERITY_HIGH 0x9146 +#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 +#define GL_DEBUG_SEVERITY_LOW 0x9148 +#define GL_DEBUG_TYPE_MARKER 0x8268 +#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 +#define GL_DEBUG_TYPE_POP_GROUP 0x826A +#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B +#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C +#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D +#define GL_BUFFER 0x82E0 +#define GL_SHADER 0x82E1 +#define GL_PROGRAM 0x82E2 +#define GL_QUERY 0x82E3 +#define GL_PROGRAM_PIPELINE 0x82E4 +#define GL_SAMPLER 0x82E6 +#define GL_MAX_LABEL_LENGTH 0x82E8 +#define GL_DEBUG_OUTPUT 0x92E0 +#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 +#define GL_MAX_UNIFORM_LOCATIONS 0x826E +#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 +#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 +#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 +#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 +#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 +#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 +#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 +#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 +#define GL_INTERNALFORMAT_SUPPORTED 0x826F +#define GL_INTERNALFORMAT_PREFERRED 0x8270 +#define GL_INTERNALFORMAT_RED_SIZE 0x8271 +#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272 +#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273 +#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274 +#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275 +#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276 +#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277 +#define GL_INTERNALFORMAT_RED_TYPE 0x8278 +#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279 +#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A +#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B +#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C +#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D +#define GL_MAX_WIDTH 0x827E +#define GL_MAX_HEIGHT 0x827F +#define GL_MAX_DEPTH 0x8280 +#define GL_MAX_LAYERS 0x8281 +#define GL_MAX_COMBINED_DIMENSIONS 0x8282 +#define GL_COLOR_COMPONENTS 0x8283 +#define GL_DEPTH_COMPONENTS 0x8284 +#define GL_STENCIL_COMPONENTS 0x8285 +#define GL_COLOR_RENDERABLE 0x8286 +#define GL_DEPTH_RENDERABLE 0x8287 +#define GL_STENCIL_RENDERABLE 0x8288 +#define GL_FRAMEBUFFER_RENDERABLE 0x8289 +#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A +#define GL_FRAMEBUFFER_BLEND 0x828B +#define GL_READ_PIXELS 0x828C +#define GL_READ_PIXELS_FORMAT 0x828D +#define GL_READ_PIXELS_TYPE 0x828E +#define GL_TEXTURE_IMAGE_FORMAT 0x828F +#define GL_TEXTURE_IMAGE_TYPE 0x8290 +#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291 +#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292 +#define GL_MIPMAP 0x8293 +#define GL_MANUAL_GENERATE_MIPMAP 0x8294 +#define GL_AUTO_GENERATE_MIPMAP 0x8295 +#define GL_COLOR_ENCODING 0x8296 +#define GL_SRGB_READ 0x8297 +#define GL_SRGB_WRITE 0x8298 +#define GL_FILTER 0x829A +#define GL_VERTEX_TEXTURE 0x829B +#define GL_TESS_CONTROL_TEXTURE 0x829C +#define GL_TESS_EVALUATION_TEXTURE 0x829D +#define GL_GEOMETRY_TEXTURE 0x829E +#define GL_FRAGMENT_TEXTURE 0x829F +#define GL_COMPUTE_TEXTURE 0x82A0 +#define GL_TEXTURE_SHADOW 0x82A1 +#define GL_TEXTURE_GATHER 0x82A2 +#define GL_TEXTURE_GATHER_SHADOW 0x82A3 +#define GL_SHADER_IMAGE_LOAD 0x82A4 +#define GL_SHADER_IMAGE_STORE 0x82A5 +#define GL_SHADER_IMAGE_ATOMIC 0x82A6 +#define GL_IMAGE_TEXEL_SIZE 0x82A7 +#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8 +#define GL_IMAGE_PIXEL_FORMAT 0x82A9 +#define GL_IMAGE_PIXEL_TYPE 0x82AA +#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC +#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD +#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE +#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF +#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1 +#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2 +#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3 +#define GL_CLEAR_BUFFER 0x82B4 +#define GL_TEXTURE_VIEW 0x82B5 +#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6 +#define GL_FULL_SUPPORT 0x82B7 +#define GL_CAVEAT_SUPPORT 0x82B8 +#define GL_IMAGE_CLASS_4_X_32 0x82B9 +#define GL_IMAGE_CLASS_2_X_32 0x82BA +#define GL_IMAGE_CLASS_1_X_32 0x82BB +#define GL_IMAGE_CLASS_4_X_16 0x82BC +#define GL_IMAGE_CLASS_2_X_16 0x82BD +#define GL_IMAGE_CLASS_1_X_16 0x82BE +#define GL_IMAGE_CLASS_4_X_8 0x82BF +#define GL_IMAGE_CLASS_2_X_8 0x82C0 +#define GL_IMAGE_CLASS_1_X_8 0x82C1 +#define GL_IMAGE_CLASS_11_11_10 0x82C2 +#define GL_IMAGE_CLASS_10_10_10_2 0x82C3 +#define GL_VIEW_CLASS_128_BITS 0x82C4 +#define GL_VIEW_CLASS_96_BITS 0x82C5 +#define GL_VIEW_CLASS_64_BITS 0x82C6 +#define GL_VIEW_CLASS_48_BITS 0x82C7 +#define GL_VIEW_CLASS_32_BITS 0x82C8 +#define GL_VIEW_CLASS_24_BITS 0x82C9 +#define GL_VIEW_CLASS_16_BITS 0x82CA +#define GL_VIEW_CLASS_8_BITS 0x82CB +#define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC +#define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD +#define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE +#define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF +#define GL_VIEW_CLASS_RGTC1_RED 0x82D0 +#define GL_VIEW_CLASS_RGTC2_RG 0x82D1 +#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2 +#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3 +#define GL_UNIFORM 0x92E1 +#define GL_UNIFORM_BLOCK 0x92E2 +#define GL_PROGRAM_INPUT 0x92E3 +#define GL_PROGRAM_OUTPUT 0x92E4 +#define GL_BUFFER_VARIABLE 0x92E5 +#define GL_SHADER_STORAGE_BLOCK 0x92E6 +#define GL_VERTEX_SUBROUTINE 0x92E8 +#define GL_TESS_CONTROL_SUBROUTINE 0x92E9 +#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA +#define GL_GEOMETRY_SUBROUTINE 0x92EB +#define GL_FRAGMENT_SUBROUTINE 0x92EC +#define GL_COMPUTE_SUBROUTINE 0x92ED +#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE +#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF +#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0 +#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1 +#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2 +#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3 +#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 +#define GL_ACTIVE_RESOURCES 0x92F5 +#define GL_MAX_NAME_LENGTH 0x92F6 +#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 +#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8 +#define GL_NAME_LENGTH 0x92F9 +#define GL_TYPE 0x92FA +#define GL_ARRAY_SIZE 0x92FB +#define GL_OFFSET 0x92FC +#define GL_BLOCK_INDEX 0x92FD +#define GL_ARRAY_STRIDE 0x92FE +#define GL_MATRIX_STRIDE 0x92FF +#define GL_IS_ROW_MAJOR 0x9300 +#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 +#define GL_BUFFER_BINDING 0x9302 +#define GL_BUFFER_DATA_SIZE 0x9303 +#define GL_NUM_ACTIVE_VARIABLES 0x9304 +#define GL_ACTIVE_VARIABLES 0x9305 +#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 +#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 +#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A +#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B +#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C +#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D +#define GL_LOCATION 0x930E +#define GL_LOCATION_INDEX 0x930F +#define GL_IS_PER_PATCH 0x92E7 +#define GL_SHADER_STORAGE_BUFFER 0x90D2 +#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 +#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 +#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 +#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 +#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA +#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB +#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC +#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD +#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE +#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF +#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 +#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 +#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA +#define GL_TEXTURE_BUFFER_OFFSET 0x919D +#define GL_TEXTURE_BUFFER_SIZE 0x919E +#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F +#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB +#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC +#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD +#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE +#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF +#define GL_VERTEX_ATTRIB_BINDING 0x82D4 +#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 +#define GL_VERTEX_BINDING_DIVISOR 0x82D6 +#define GL_VERTEX_BINDING_OFFSET 0x82D7 +#define GL_VERTEX_BINDING_STRIDE 0x82D8 +#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 +#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA +#define GL_VERTEX_BINDING_BUFFER 0x8F4F +#define GL_DISPLAY_LIST 0x82E7 +typedef void (APIENTRYP PFNGLCLEARBUFFERDATAPROC) (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP PFNGLCLEARBUFFERSUBDATAPROC) (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); +typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); +typedef void (APIENTRYP PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +typedef void (APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETINTERNALFORMATI64VPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params); +typedef void (APIENTRYP PFNGLINVALIDATETEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); +typedef void (APIENTRYP PFNGLINVALIDATETEXIMAGEPROC) (GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLINVALIDATEBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); +typedef void (APIENTRYP PFNGLINVALIDATEBUFFERDATAPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); +typedef void (APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); +typedef void (APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); +typedef GLuint (APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); +typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); +typedef GLint (APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); +typedef void (APIENTRYP PFNGLSHADERSTORAGEBLOCKBINDINGPROC) (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); +typedef void (APIENTRYP PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLTEXTUREVIEWPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); +typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); +typedef void (APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); +typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam); +typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +typedef void (APIENTRYP PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); +typedef void (APIENTRYP PFNGLPOPDEBUGGROUPPROC) (void); +typedef void (APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +typedef void (APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +typedef void (APIENTRYP PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label); +typedef void (APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glClearBufferData (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glClearBufferSubData (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); +GLAPI void APIENTRY glDispatchComputeIndirect (GLintptr indirect); +GLAPI void APIENTRY glCopyImageSubData (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +GLAPI void APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetInternalformati64v (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params); +GLAPI void APIENTRY glInvalidateTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); +GLAPI void APIENTRY glInvalidateTexImage (GLuint texture, GLint level); +GLAPI void APIENTRY glInvalidateBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr length); +GLAPI void APIENTRY glInvalidateBufferData (GLuint buffer); +GLAPI void APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); +GLAPI void APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glMultiDrawArraysIndirect (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); +GLAPI void APIENTRY glMultiDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); +GLAPI void APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params); +GLAPI GLuint APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name); +GLAPI void APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +GLAPI void APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); +GLAPI GLint APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name); +GLAPI GLint APIENTRY glGetProgramResourceLocationIndex (GLuint program, GLenum programInterface, const GLchar *name); +GLAPI void APIENTRY glShaderStorageBlockBinding (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); +GLAPI void APIENTRY glTexBufferRange (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI void APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glTexStorage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glTextureView (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); +GLAPI void APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +GLAPI void APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +GLAPI void APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +GLAPI void APIENTRY glVertexAttribLFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +GLAPI void APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex); +GLAPI void APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor); +GLAPI void APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +GLAPI void APIENTRY glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +GLAPI void APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam); +GLAPI GLuint APIENTRY glGetDebugMessageLog (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +GLAPI void APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message); +GLAPI void APIENTRY glPopDebugGroup (void); +GLAPI void APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +GLAPI void APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +GLAPI void APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label); +GLAPI void APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif +#endif /* GL_VERSION_4_3 */ + +#ifndef GL_VERSION_4_4 +#define GL_VERSION_4_4 1 +#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 +#define GL_TEXTURE_BUFFER_BINDING 0x8C2A +#define GL_MAP_PERSISTENT_BIT 0x0040 +#define GL_MAP_COHERENT_BIT 0x0080 +#define GL_DYNAMIC_STORAGE_BIT 0x0100 +#define GL_CLIENT_STORAGE_BIT 0x0200 +#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000 +#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F +#define GL_BUFFER_STORAGE_FLAGS 0x8220 +#define GL_CLEAR_TEXTURE 0x9365 +#define GL_LOCATION_COMPONENT 0x934A +#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B +#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C +#define GL_QUERY_BUFFER 0x9192 +#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000 +#define GL_QUERY_BUFFER_BINDING 0x9193 +#define GL_QUERY_RESULT_NO_WAIT 0x9194 +#define GL_MIRROR_CLAMP_TO_EDGE 0x8743 +typedef void (APIENTRYP PFNGLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); +typedef void (APIENTRYP PFNGLCLEARTEXIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP PFNGLCLEARTEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP PFNGLBINDBUFFERSBASEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers); +typedef void (APIENTRYP PFNGLBINDBUFFERSRANGEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes); +typedef void (APIENTRYP PFNGLBINDTEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures); +typedef void (APIENTRYP PFNGLBINDSAMPLERSPROC) (GLuint first, GLsizei count, const GLuint *samplers); +typedef void (APIENTRYP PFNGLBINDIMAGETEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures); +typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERSPROC) (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBufferStorage (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); +GLAPI void APIENTRY glClearTexImage (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glClearTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glBindBuffersBase (GLenum target, GLuint first, GLsizei count, const GLuint *buffers); +GLAPI void APIENTRY glBindBuffersRange (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes); +GLAPI void APIENTRY glBindTextures (GLuint first, GLsizei count, const GLuint *textures); +GLAPI void APIENTRY glBindSamplers (GLuint first, GLsizei count, const GLuint *samplers); +GLAPI void APIENTRY glBindImageTextures (GLuint first, GLsizei count, const GLuint *textures); +GLAPI void APIENTRY glBindVertexBuffers (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); +#endif +#endif /* GL_VERSION_4_4 */ + +#ifndef GL_ARB_ES2_compatibility +#define GL_ARB_ES2_compatibility 1 +#endif /* GL_ARB_ES2_compatibility */ + +#ifndef GL_ARB_ES3_compatibility +#define GL_ARB_ES3_compatibility 1 +#endif /* GL_ARB_ES3_compatibility */ + +#ifndef GL_ARB_arrays_of_arrays +#define GL_ARB_arrays_of_arrays 1 +#endif /* GL_ARB_arrays_of_arrays */ + +#ifndef GL_ARB_base_instance +#define GL_ARB_base_instance 1 +#endif /* GL_ARB_base_instance */ + +#ifndef GL_ARB_bindless_texture +#define GL_ARB_bindless_texture 1 +typedef uint64_t GLuint64EXT; +#define GL_UNSIGNED_INT64_ARB 0x140F +typedef GLuint64 (APIENTRYP PFNGLGETTEXTUREHANDLEARBPROC) (GLuint texture); +typedef GLuint64 (APIENTRYP PFNGLGETTEXTURESAMPLERHANDLEARBPROC) (GLuint texture, GLuint sampler); +typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); +typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC) (GLuint64 handle); +typedef GLuint64 (APIENTRYP PFNGLGETIMAGEHANDLEARBPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle, GLenum access); +typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC) (GLuint64 handle); +typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64ARBPROC) (GLint location, GLuint64 value); +typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC) (GLuint program, GLint location, GLuint64 value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +typedef GLboolean (APIENTRYP PFNGLISTEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); +typedef GLboolean (APIENTRYP PFNGLISIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64ARBPROC) (GLuint index, GLuint64EXT x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64VARBPROC) (GLuint index, const GLuint64EXT *v); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLUI64VARBPROC) (GLuint index, GLenum pname, GLuint64EXT *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint64 APIENTRY glGetTextureHandleARB (GLuint texture); +GLAPI GLuint64 APIENTRY glGetTextureSamplerHandleARB (GLuint texture, GLuint sampler); +GLAPI void APIENTRY glMakeTextureHandleResidentARB (GLuint64 handle); +GLAPI void APIENTRY glMakeTextureHandleNonResidentARB (GLuint64 handle); +GLAPI GLuint64 APIENTRY glGetImageHandleARB (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +GLAPI void APIENTRY glMakeImageHandleResidentARB (GLuint64 handle, GLenum access); +GLAPI void APIENTRY glMakeImageHandleNonResidentARB (GLuint64 handle); +GLAPI void APIENTRY glUniformHandleui64ARB (GLint location, GLuint64 value); +GLAPI void APIENTRY glUniformHandleui64vARB (GLint location, GLsizei count, const GLuint64 *value); +GLAPI void APIENTRY glProgramUniformHandleui64ARB (GLuint program, GLint location, GLuint64 value); +GLAPI void APIENTRY glProgramUniformHandleui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +GLAPI GLboolean APIENTRY glIsTextureHandleResidentARB (GLuint64 handle); +GLAPI GLboolean APIENTRY glIsImageHandleResidentARB (GLuint64 handle); +GLAPI void APIENTRY glVertexAttribL1ui64ARB (GLuint index, GLuint64EXT x); +GLAPI void APIENTRY glVertexAttribL1ui64vARB (GLuint index, const GLuint64EXT *v); +GLAPI void APIENTRY glGetVertexAttribLui64vARB (GLuint index, GLenum pname, GLuint64EXT *params); +#endif +#endif /* GL_ARB_bindless_texture */ + +#ifndef GL_ARB_blend_func_extended +#define GL_ARB_blend_func_extended 1 +#endif /* GL_ARB_blend_func_extended */ + +#ifndef GL_ARB_buffer_storage +#define GL_ARB_buffer_storage 1 +#endif /* GL_ARB_buffer_storage */ + +#ifndef GL_ARB_cl_event +#define GL_ARB_cl_event 1 +struct _cl_context; +struct _cl_event; +#define GL_SYNC_CL_EVENT_ARB 0x8240 +#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 +typedef GLsync (APIENTRYP PFNGLCREATESYNCFROMCLEVENTARBPROC) (struct _cl_context *context, struct _cl_event *event, GLbitfield flags); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLsync APIENTRY glCreateSyncFromCLeventARB (struct _cl_context *context, struct _cl_event *event, GLbitfield flags); +#endif +#endif /* GL_ARB_cl_event */ + +#ifndef GL_ARB_clear_buffer_object +#define GL_ARB_clear_buffer_object 1 +#endif /* GL_ARB_clear_buffer_object */ + +#ifndef GL_ARB_clear_texture +#define GL_ARB_clear_texture 1 +#endif /* GL_ARB_clear_texture */ + +#ifndef GL_ARB_color_buffer_float +#define GL_ARB_color_buffer_float 1 +#define GL_RGBA_FLOAT_MODE_ARB 0x8820 +#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A +#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B +#define GL_CLAMP_READ_COLOR_ARB 0x891C +#define GL_FIXED_ONLY_ARB 0x891D +typedef void (APIENTRYP PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glClampColorARB (GLenum target, GLenum clamp); +#endif +#endif /* GL_ARB_color_buffer_float */ + +#ifndef GL_ARB_compatibility +#define GL_ARB_compatibility 1 +#endif /* GL_ARB_compatibility */ + +#ifndef GL_ARB_compressed_texture_pixel_storage +#define GL_ARB_compressed_texture_pixel_storage 1 +#endif /* GL_ARB_compressed_texture_pixel_storage */ + +#ifndef GL_ARB_compute_shader +#define GL_ARB_compute_shader 1 +#define GL_COMPUTE_SHADER_BIT 0x00000020 +#endif /* GL_ARB_compute_shader */ + +#ifndef GL_ARB_compute_variable_group_size +#define GL_ARB_compute_variable_group_size 1 +#define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344 +#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB +#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345 +#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF +typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDispatchComputeGroupSizeARB (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z); +#endif +#endif /* GL_ARB_compute_variable_group_size */ + +#ifndef GL_ARB_conservative_depth +#define GL_ARB_conservative_depth 1 +#endif /* GL_ARB_conservative_depth */ + +#ifndef GL_ARB_copy_buffer +#define GL_ARB_copy_buffer 1 +#define GL_COPY_READ_BUFFER_BINDING 0x8F36 +#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 +#endif /* GL_ARB_copy_buffer */ + +#ifndef GL_ARB_copy_image +#define GL_ARB_copy_image 1 +#endif /* GL_ARB_copy_image */ + +#ifndef GL_ARB_debug_output +#define GL_ARB_debug_output 1 +typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 +#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 +#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245 +#define GL_DEBUG_SOURCE_API_ARB 0x8246 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247 +#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248 +#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249 +#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A +#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B +#define GL_DEBUG_TYPE_ERROR_ARB 0x824C +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E +#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F +#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250 +#define GL_DEBUG_TYPE_OTHER_ARB 0x8251 +#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 +#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 +#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 +#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 +typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const void *userParam); +typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDebugMessageControlARB (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +GLAPI void APIENTRY glDebugMessageInsertARB (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +GLAPI void APIENTRY glDebugMessageCallbackARB (GLDEBUGPROCARB callback, const void *userParam); +GLAPI GLuint APIENTRY glGetDebugMessageLogARB (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +#endif +#endif /* GL_ARB_debug_output */ + +#ifndef GL_ARB_depth_buffer_float +#define GL_ARB_depth_buffer_float 1 +#endif /* GL_ARB_depth_buffer_float */ + +#ifndef GL_ARB_depth_clamp +#define GL_ARB_depth_clamp 1 +#endif /* GL_ARB_depth_clamp */ + +#ifndef GL_ARB_depth_texture +#define GL_ARB_depth_texture 1 +#define GL_DEPTH_COMPONENT16_ARB 0x81A5 +#define GL_DEPTH_COMPONENT24_ARB 0x81A6 +#define GL_DEPTH_COMPONENT32_ARB 0x81A7 +#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A +#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B +#endif /* GL_ARB_depth_texture */ + +#ifndef GL_ARB_draw_buffers +#define GL_ARB_draw_buffers 1 +#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 +#define GL_DRAW_BUFFER0_ARB 0x8825 +#define GL_DRAW_BUFFER1_ARB 0x8826 +#define GL_DRAW_BUFFER2_ARB 0x8827 +#define GL_DRAW_BUFFER3_ARB 0x8828 +#define GL_DRAW_BUFFER4_ARB 0x8829 +#define GL_DRAW_BUFFER5_ARB 0x882A +#define GL_DRAW_BUFFER6_ARB 0x882B +#define GL_DRAW_BUFFER7_ARB 0x882C +#define GL_DRAW_BUFFER8_ARB 0x882D +#define GL_DRAW_BUFFER9_ARB 0x882E +#define GL_DRAW_BUFFER10_ARB 0x882F +#define GL_DRAW_BUFFER11_ARB 0x8830 +#define GL_DRAW_BUFFER12_ARB 0x8831 +#define GL_DRAW_BUFFER13_ARB 0x8832 +#define GL_DRAW_BUFFER14_ARB 0x8833 +#define GL_DRAW_BUFFER15_ARB 0x8834 +typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawBuffersARB (GLsizei n, const GLenum *bufs); +#endif +#endif /* GL_ARB_draw_buffers */ + +#ifndef GL_ARB_draw_buffers_blend +#define GL_ARB_draw_buffers_blend 1 +typedef void (APIENTRYP PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationiARB (GLuint buf, GLenum mode); +GLAPI void APIENTRY glBlendEquationSeparateiARB (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +GLAPI void APIENTRY glBlendFunciARB (GLuint buf, GLenum src, GLenum dst); +GLAPI void APIENTRY glBlendFuncSeparateiARB (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif +#endif /* GL_ARB_draw_buffers_blend */ + +#ifndef GL_ARB_draw_elements_base_vertex +#define GL_ARB_draw_elements_base_vertex 1 +#endif /* GL_ARB_draw_elements_base_vertex */ + +#ifndef GL_ARB_draw_indirect +#define GL_ARB_draw_indirect 1 +#endif /* GL_ARB_draw_indirect */ + +#ifndef GL_ARB_draw_instanced +#define GL_ARB_draw_instanced 1 +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstancedARB (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +GLAPI void APIENTRY glDrawElementsInstancedARB (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#endif +#endif /* GL_ARB_draw_instanced */ + +#ifndef GL_ARB_enhanced_layouts +#define GL_ARB_enhanced_layouts 1 +#endif /* GL_ARB_enhanced_layouts */ + +#ifndef GL_ARB_explicit_attrib_location +#define GL_ARB_explicit_attrib_location 1 +#endif /* GL_ARB_explicit_attrib_location */ + +#ifndef GL_ARB_explicit_uniform_location +#define GL_ARB_explicit_uniform_location 1 +#endif /* GL_ARB_explicit_uniform_location */ + +#ifndef GL_ARB_fragment_coord_conventions +#define GL_ARB_fragment_coord_conventions 1 +#endif /* GL_ARB_fragment_coord_conventions */ + +#ifndef GL_ARB_fragment_layer_viewport +#define GL_ARB_fragment_layer_viewport 1 +#endif /* GL_ARB_fragment_layer_viewport */ + +#ifndef GL_ARB_fragment_program +#define GL_ARB_fragment_program 1 +#define GL_FRAGMENT_PROGRAM_ARB 0x8804 +#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 +#define GL_PROGRAM_LENGTH_ARB 0x8627 +#define GL_PROGRAM_FORMAT_ARB 0x8876 +#define GL_PROGRAM_BINDING_ARB 0x8677 +#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 +#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 +#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 +#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 +#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 +#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 +#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 +#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 +#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 +#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 +#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA +#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB +#define GL_PROGRAM_ATTRIBS_ARB 0x88AC +#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD +#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE +#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF +#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 +#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 +#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 +#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 +#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 +#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 +#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 +#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 +#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A +#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B +#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C +#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D +#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E +#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F +#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 +#define GL_PROGRAM_STRING_ARB 0x8628 +#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B +#define GL_CURRENT_MATRIX_ARB 0x8641 +#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 +#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 +#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F +#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 +#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 +#define GL_MATRIX0_ARB 0x88C0 +#define GL_MATRIX1_ARB 0x88C1 +#define GL_MATRIX2_ARB 0x88C2 +#define GL_MATRIX3_ARB 0x88C3 +#define GL_MATRIX4_ARB 0x88C4 +#define GL_MATRIX5_ARB 0x88C5 +#define GL_MATRIX6_ARB 0x88C6 +#define GL_MATRIX7_ARB 0x88C7 +#define GL_MATRIX8_ARB 0x88C8 +#define GL_MATRIX9_ARB 0x88C9 +#define GL_MATRIX10_ARB 0x88CA +#define GL_MATRIX11_ARB 0x88CB +#define GL_MATRIX12_ARB 0x88CC +#define GL_MATRIX13_ARB 0x88CD +#define GL_MATRIX14_ARB 0x88CE +#define GL_MATRIX15_ARB 0x88CF +#define GL_MATRIX16_ARB 0x88D0 +#define GL_MATRIX17_ARB 0x88D1 +#define GL_MATRIX18_ARB 0x88D2 +#define GL_MATRIX19_ARB 0x88D3 +#define GL_MATRIX20_ARB 0x88D4 +#define GL_MATRIX21_ARB 0x88D5 +#define GL_MATRIX22_ARB 0x88D6 +#define GL_MATRIX23_ARB 0x88D7 +#define GL_MATRIX24_ARB 0x88D8 +#define GL_MATRIX25_ARB 0x88D9 +#define GL_MATRIX26_ARB 0x88DA +#define GL_MATRIX27_ARB 0x88DB +#define GL_MATRIX28_ARB 0x88DC +#define GL_MATRIX29_ARB 0x88DD +#define GL_MATRIX30_ARB 0x88DE +#define GL_MATRIX31_ARB 0x88DF +typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void *string); +typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); +typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void *string); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramStringARB (GLenum target, GLenum format, GLsizei len, const void *string); +GLAPI void APIENTRY glBindProgramARB (GLenum target, GLuint program); +GLAPI void APIENTRY glDeleteProgramsARB (GLsizei n, const GLuint *programs); +GLAPI void APIENTRY glGenProgramsARB (GLsizei n, GLuint *programs); +GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum target, GLuint index, const GLdouble *params); +GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum target, GLuint index, const GLfloat *params); +GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum target, GLuint index, const GLdouble *params); +GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum target, GLuint index, const GLfloat *params); +GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum target, GLuint index, GLdouble *params); +GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum target, GLuint index, GLfloat *params); +GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum target, GLuint index, GLdouble *params); +GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum target, GLuint index, GLfloat *params); +GLAPI void APIENTRY glGetProgramivARB (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetProgramStringARB (GLenum target, GLenum pname, void *string); +GLAPI GLboolean APIENTRY glIsProgramARB (GLuint program); +#endif +#endif /* GL_ARB_fragment_program */ + +#ifndef GL_ARB_fragment_program_shadow +#define GL_ARB_fragment_program_shadow 1 +#endif /* GL_ARB_fragment_program_shadow */ + +#ifndef GL_ARB_fragment_shader +#define GL_ARB_fragment_shader 1 +#define GL_FRAGMENT_SHADER_ARB 0x8B30 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B +#endif /* GL_ARB_fragment_shader */ + +#ifndef GL_ARB_framebuffer_no_attachments +#define GL_ARB_framebuffer_no_attachments 1 +#endif /* GL_ARB_framebuffer_no_attachments */ + +#ifndef GL_ARB_framebuffer_object +#define GL_ARB_framebuffer_object 1 +#endif /* GL_ARB_framebuffer_object */ + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_ARB_framebuffer_sRGB 1 +#endif /* GL_ARB_framebuffer_sRGB */ + +#ifndef GL_KHR_context_flush_control +#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB +#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC +#endif /* GL_KHR_context_flush_control */ + +#ifndef GL_ARB_geometry_shader4 +#define GL_ARB_geometry_shader4 1 +#define GL_LINES_ADJACENCY_ARB 0x000A +#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B +#define GL_TRIANGLES_ADJACENCY_ARB 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D +#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 +#define GL_GEOMETRY_SHADER_ARB 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramParameteriARB (GLuint program, GLenum pname, GLint value); +GLAPI void APIENTRY glFramebufferTextureARB (GLenum target, GLenum attachment, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTextureLayerARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +GLAPI void APIENTRY glFramebufferTextureFaceARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#endif +#endif /* GL_ARB_geometry_shader4 */ + +#ifndef GL_ARB_get_program_binary +#define GL_ARB_get_program_binary 1 +#endif /* GL_ARB_get_program_binary */ + +#ifndef GL_ARB_gpu_shader5 +#define GL_ARB_gpu_shader5 1 +#endif /* GL_ARB_gpu_shader5 */ + +#ifndef GL_ARB_gpu_shader_fp64 +#define GL_ARB_gpu_shader_fp64 1 +#endif /* GL_ARB_gpu_shader_fp64 */ + +#ifndef GL_ARB_half_float_pixel +#define GL_ARB_half_float_pixel 1 +typedef unsigned short GLhalfARB; +#define GL_HALF_FLOAT_ARB 0x140B +#endif /* GL_ARB_half_float_pixel */ + +#ifndef GL_ARB_half_float_vertex +#define GL_ARB_half_float_vertex 1 +#endif /* GL_ARB_half_float_vertex */ + +#ifndef GL_ARB_imaging +#define GL_ARB_imaging 1 +#define GL_BLEND_COLOR 0x8005 +#define GL_BLEND_EQUATION 0x8009 +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF +#define GL_CONSTANT_BORDER 0x8151 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 +typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, void *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, void *image); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); +typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target); +typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); +GLAPI void APIENTRY glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glGetColorTable (GLenum target, GLenum format, GLenum type, void *table); +GLAPI void APIENTRY glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); +GLAPI void APIENTRY glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); +GLAPI void APIENTRY glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params); +GLAPI void APIENTRY glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glConvolutionParameteri (GLenum target, GLenum pname, GLint params); +GLAPI void APIENTRY glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, void *image); +GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetSeparableFilter (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); +GLAPI void APIENTRY glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); +GLAPI void APIENTRY glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +GLAPI void APIENTRY glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +GLAPI void APIENTRY glMinmax (GLenum target, GLenum internalformat, GLboolean sink); +GLAPI void APIENTRY glResetHistogram (GLenum target); +GLAPI void APIENTRY glResetMinmax (GLenum target); +#endif +#endif /* GL_ARB_imaging */ + +#ifndef GL_ARB_indirect_parameters +#define GL_ARB_indirect_parameters 1 +#define GL_PARAMETER_BUFFER_ARB 0x80EE +#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC) (GLenum mode, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC) (GLenum mode, GLenum type, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiDrawArraysIndirectCountARB (GLenum mode, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +GLAPI void APIENTRY glMultiDrawElementsIndirectCountARB (GLenum mode, GLenum type, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +#endif +#endif /* GL_ARB_indirect_parameters */ + +#ifndef GL_ARB_instanced_arrays +#define GL_ARB_instanced_arrays 1 +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE +typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribDivisorARB (GLuint index, GLuint divisor); +#endif +#endif /* GL_ARB_instanced_arrays */ + +#ifndef GL_ARB_internalformat_query +#define GL_ARB_internalformat_query 1 +#endif /* GL_ARB_internalformat_query */ + +#ifndef GL_ARB_internalformat_query2 +#define GL_ARB_internalformat_query2 1 +#define GL_SRGB_DECODE_ARB 0x8299 +#endif /* GL_ARB_internalformat_query2 */ + +#ifndef GL_ARB_invalidate_subdata +#define GL_ARB_invalidate_subdata 1 +#endif /* GL_ARB_invalidate_subdata */ + +#ifndef GL_ARB_map_buffer_alignment +#define GL_ARB_map_buffer_alignment 1 +#endif /* GL_ARB_map_buffer_alignment */ + +#ifndef GL_ARB_map_buffer_range +#define GL_ARB_map_buffer_range 1 +#endif /* GL_ARB_map_buffer_range */ + +#ifndef GL_ARB_matrix_palette +#define GL_ARB_matrix_palette 1 +#define GL_MATRIX_PALETTE_ARB 0x8840 +#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 +#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 +#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 +#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 +#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 +#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 +#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 +#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 +#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 +typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); +typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices); +typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices); +typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices); +typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint index); +GLAPI void APIENTRY glMatrixIndexubvARB (GLint size, const GLubyte *indices); +GLAPI void APIENTRY glMatrixIndexusvARB (GLint size, const GLushort *indices); +GLAPI void APIENTRY glMatrixIndexuivARB (GLint size, const GLuint *indices); +GLAPI void APIENTRY glMatrixIndexPointerARB (GLint size, GLenum type, GLsizei stride, const void *pointer); +#endif +#endif /* GL_ARB_matrix_palette */ + +#ifndef GL_ARB_multi_bind +#define GL_ARB_multi_bind 1 +#endif /* GL_ARB_multi_bind */ + +#ifndef GL_ARB_multi_draw_indirect +#define GL_ARB_multi_draw_indirect 1 +#endif /* GL_ARB_multi_draw_indirect */ + +#ifndef GL_ARB_multisample +#define GL_ARB_multisample 1 +#define GL_MULTISAMPLE_ARB 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F +#define GL_SAMPLE_COVERAGE_ARB 0x80A0 +#define GL_SAMPLE_BUFFERS_ARB 0x80A8 +#define GL_SAMPLES_ARB 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB +#define GL_MULTISAMPLE_BIT_ARB 0x20000000 +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLfloat value, GLboolean invert); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleCoverageARB (GLfloat value, GLboolean invert); +#endif +#endif /* GL_ARB_multisample */ + +#ifndef GL_ARB_multitexture +#define GL_ARB_multitexture 1 +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9_ARB 0x84C9 +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31_ARB 0x84DF +#define GL_ACTIVE_TEXTURE_ARB 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 +#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 +typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveTextureARB (GLenum texture); +GLAPI void APIENTRY glClientActiveTextureARB (GLenum texture); +GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum target, GLdouble s); +GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum target, GLfloat s); +GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum target, GLint s); +GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum target, GLshort s); +GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum target, const GLshort *v); +GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum target, GLdouble s, GLdouble t); +GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum target, GLfloat s, GLfloat t); +GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum target, GLint s, GLint t); +GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum target, GLshort s, GLshort t); +GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum target, const GLshort *v); +GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r); +GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r); +GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum target, GLint s, GLint t, GLint r); +GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum target, GLshort s, GLshort t, GLshort r); +GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum target, const GLshort *v); +GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum target, GLint s, GLint t, GLint r, GLint q); +GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum target, const GLshort *v); +#endif +#endif /* GL_ARB_multitexture */ + +#ifndef GL_ARB_occlusion_query +#define GL_ARB_occlusion_query 1 +#define GL_QUERY_COUNTER_BITS_ARB 0x8864 +#define GL_CURRENT_QUERY_ARB 0x8865 +#define GL_QUERY_RESULT_ARB 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 +#define GL_SAMPLES_PASSED_ARB 0x8914 +typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenQueriesARB (GLsizei n, GLuint *ids); +GLAPI void APIENTRY glDeleteQueriesARB (GLsizei n, const GLuint *ids); +GLAPI GLboolean APIENTRY glIsQueryARB (GLuint id); +GLAPI void APIENTRY glBeginQueryARB (GLenum target, GLuint id); +GLAPI void APIENTRY glEndQueryARB (GLenum target); +GLAPI void APIENTRY glGetQueryivARB (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetQueryObjectivARB (GLuint id, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint id, GLenum pname, GLuint *params); +#endif +#endif /* GL_ARB_occlusion_query */ + +#ifndef GL_ARB_occlusion_query2 +#define GL_ARB_occlusion_query2 1 +#endif /* GL_ARB_occlusion_query2 */ + +#ifndef GL_ARB_pixel_buffer_object +#define GL_ARB_pixel_buffer_object 1 +#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF +#endif /* GL_ARB_pixel_buffer_object */ + +#ifndef GL_ARB_point_parameters +#define GL_ARB_point_parameters 1 +#define GL_POINT_SIZE_MIN_ARB 0x8126 +#define GL_POINT_SIZE_MAX_ARB 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 +typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfARB (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPointParameterfvARB (GLenum pname, const GLfloat *params); +#endif +#endif /* GL_ARB_point_parameters */ + +#ifndef GL_ARB_point_sprite +#define GL_ARB_point_sprite 1 +#define GL_POINT_SPRITE_ARB 0x8861 +#define GL_COORD_REPLACE_ARB 0x8862 +#endif /* GL_ARB_point_sprite */ + +#ifndef GL_ARB_program_interface_query +#define GL_ARB_program_interface_query 1 +#endif /* GL_ARB_program_interface_query */ + +#ifndef GL_ARB_provoking_vertex +#define GL_ARB_provoking_vertex 1 +#endif /* GL_ARB_provoking_vertex */ + +#ifndef GL_ARB_query_buffer_object +#define GL_ARB_query_buffer_object 1 +#endif /* GL_ARB_query_buffer_object */ + +#ifndef GL_ARB_robust_buffer_access_behavior +#define GL_ARB_robust_buffer_access_behavior 1 +#endif /* GL_ARB_robust_buffer_access_behavior */ + +#ifndef GL_ARB_robustness +#define GL_ARB_robustness 1 +#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 +#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 +#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 +#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 +#define GL_NO_RESET_NOTIFICATION_ARB 0x8261 +typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void); +typedef void (APIENTRYP PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img); +typedef void (APIENTRYP PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +typedef void (APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void *img); +typedef void (APIENTRYP PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +typedef void (APIENTRYP PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); +typedef void (APIENTRYP PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); +typedef void (APIENTRYP PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); +typedef void (APIENTRYP PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); +typedef void (APIENTRYP PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); +typedef void (APIENTRYP PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v); +typedef void (APIENTRYP PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat *values); +typedef void (APIENTRYP PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint *values); +typedef void (APIENTRYP PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort *values); +typedef void (APIENTRYP PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte *pattern); +typedef void (APIENTRYP PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); +typedef void (APIENTRYP PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); +typedef void (APIENTRYP PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); +typedef void (APIENTRYP PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +typedef void (APIENTRYP PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLenum APIENTRY glGetGraphicsResetStatusARB (void); +GLAPI void APIENTRY glGetnTexImageARB (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img); +GLAPI void APIENTRY glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +GLAPI void APIENTRY glGetnCompressedTexImageARB (GLenum target, GLint lod, GLsizei bufSize, void *img); +GLAPI void APIENTRY glGetnUniformfvARB (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +GLAPI void APIENTRY glGetnUniformivARB (GLuint program, GLint location, GLsizei bufSize, GLint *params); +GLAPI void APIENTRY glGetnUniformuivARB (GLuint program, GLint location, GLsizei bufSize, GLuint *params); +GLAPI void APIENTRY glGetnUniformdvARB (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); +GLAPI void APIENTRY glGetnMapdvARB (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); +GLAPI void APIENTRY glGetnMapfvARB (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); +GLAPI void APIENTRY glGetnMapivARB (GLenum target, GLenum query, GLsizei bufSize, GLint *v); +GLAPI void APIENTRY glGetnPixelMapfvARB (GLenum map, GLsizei bufSize, GLfloat *values); +GLAPI void APIENTRY glGetnPixelMapuivARB (GLenum map, GLsizei bufSize, GLuint *values); +GLAPI void APIENTRY glGetnPixelMapusvARB (GLenum map, GLsizei bufSize, GLushort *values); +GLAPI void APIENTRY glGetnPolygonStippleARB (GLsizei bufSize, GLubyte *pattern); +GLAPI void APIENTRY glGetnColorTableARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); +GLAPI void APIENTRY glGetnConvolutionFilterARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); +GLAPI void APIENTRY glGetnSeparableFilterARB (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); +GLAPI void APIENTRY glGetnHistogramARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +GLAPI void APIENTRY glGetnMinmaxARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +#endif +#endif /* GL_ARB_robustness */ + +#ifndef GL_ARB_robustness_isolation +#define GL_ARB_robustness_isolation 1 +#endif /* GL_ARB_robustness_isolation */ + +#ifndef GL_ARB_sample_shading +#define GL_ARB_sample_shading 1 +#define GL_SAMPLE_SHADING_ARB 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 +typedef void (APIENTRYP PFNGLMINSAMPLESHADINGARBPROC) (GLfloat value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMinSampleShadingARB (GLfloat value); +#endif +#endif /* GL_ARB_sample_shading */ + +#ifndef GL_ARB_sampler_objects +#define GL_ARB_sampler_objects 1 +#endif /* GL_ARB_sampler_objects */ + +#ifndef GL_ARB_seamless_cube_map +#define GL_ARB_seamless_cube_map 1 +#endif /* GL_ARB_seamless_cube_map */ + +#ifndef GL_ARB_seamless_cubemap_per_texture +#define GL_ARB_seamless_cubemap_per_texture 1 +#endif /* GL_ARB_seamless_cubemap_per_texture */ + +#ifndef GL_ARB_separate_shader_objects +#define GL_ARB_separate_shader_objects 1 +#endif /* GL_ARB_separate_shader_objects */ + +#ifndef GL_ARB_shader_atomic_counters +#define GL_ARB_shader_atomic_counters 1 +#endif /* GL_ARB_shader_atomic_counters */ + +#ifndef GL_ARB_shader_bit_encoding +#define GL_ARB_shader_bit_encoding 1 +#endif /* GL_ARB_shader_bit_encoding */ + +#ifndef GL_ARB_shader_draw_parameters +#define GL_ARB_shader_draw_parameters 1 +#endif /* GL_ARB_shader_draw_parameters */ + +#ifndef GL_ARB_shader_group_vote +#define GL_ARB_shader_group_vote 1 +#endif /* GL_ARB_shader_group_vote */ + +#ifndef GL_ARB_shader_image_load_store +#define GL_ARB_shader_image_load_store 1 +#endif /* GL_ARB_shader_image_load_store */ + +#ifndef GL_ARB_shader_image_size +#define GL_ARB_shader_image_size 1 +#endif /* GL_ARB_shader_image_size */ + +#ifndef GL_ARB_shader_objects +#define GL_ARB_shader_objects 1 +#ifdef __APPLE__ +typedef void *GLhandleARB; +#else +typedef unsigned int GLhandleARB; +#endif +typedef char GLcharARB; +#define GL_PROGRAM_OBJECT_ARB 0x8B40 +#define GL_SHADER_OBJECT_ARB 0x8B48 +#define GL_OBJECT_TYPE_ARB 0x8B4E +#define GL_OBJECT_SUBTYPE_ARB 0x8B4F +#define GL_FLOAT_VEC2_ARB 0x8B50 +#define GL_FLOAT_VEC3_ARB 0x8B51 +#define GL_FLOAT_VEC4_ARB 0x8B52 +#define GL_INT_VEC2_ARB 0x8B53 +#define GL_INT_VEC3_ARB 0x8B54 +#define GL_INT_VEC4_ARB 0x8B55 +#define GL_BOOL_ARB 0x8B56 +#define GL_BOOL_VEC2_ARB 0x8B57 +#define GL_BOOL_VEC3_ARB 0x8B58 +#define GL_BOOL_VEC4_ARB 0x8B59 +#define GL_FLOAT_MAT2_ARB 0x8B5A +#define GL_FLOAT_MAT3_ARB 0x8B5B +#define GL_FLOAT_MAT4_ARB 0x8B5C +#define GL_SAMPLER_1D_ARB 0x8B5D +#define GL_SAMPLER_2D_ARB 0x8B5E +#define GL_SAMPLER_3D_ARB 0x8B5F +#define GL_SAMPLER_CUBE_ARB 0x8B60 +#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 +#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 +#define GL_SAMPLER_2D_RECT_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 +#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 +#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 +#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 +#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 +#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 +#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 +#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 +#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 +#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 +typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); +typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname); +typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); +typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); +typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length); +typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); +typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void); +typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); +typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); +typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); +typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); +typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); +typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); +typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params); +typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params); +typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB obj); +GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum pname); +GLAPI void APIENTRY glDetachObjectARB (GLhandleARB containerObj, GLhandleARB attachedObj); +GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum shaderType); +GLAPI void APIENTRY glShaderSourceARB (GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length); +GLAPI void APIENTRY glCompileShaderARB (GLhandleARB shaderObj); +GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void); +GLAPI void APIENTRY glAttachObjectARB (GLhandleARB containerObj, GLhandleARB obj); +GLAPI void APIENTRY glLinkProgramARB (GLhandleARB programObj); +GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB programObj); +GLAPI void APIENTRY glValidateProgramARB (GLhandleARB programObj); +GLAPI void APIENTRY glUniform1fARB (GLint location, GLfloat v0); +GLAPI void APIENTRY glUniform2fARB (GLint location, GLfloat v0, GLfloat v1); +GLAPI void APIENTRY glUniform3fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI void APIENTRY glUniform4fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI void APIENTRY glUniform1iARB (GLint location, GLint v0); +GLAPI void APIENTRY glUniform2iARB (GLint location, GLint v0, GLint v1); +GLAPI void APIENTRY glUniform3iARB (GLint location, GLint v0, GLint v1, GLint v2); +GLAPI void APIENTRY glUniform4iARB (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI void APIENTRY glUniform1fvARB (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform2fvARB (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform3fvARB (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform4fvARB (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform1ivARB (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform2ivARB (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform3ivARB (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform4ivARB (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniformMatrix2fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB obj, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB obj, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); +GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); +GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB programObj, const GLcharARB *name); +GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB programObj, GLint location, GLfloat *params); +GLAPI void APIENTRY glGetUniformivARB (GLhandleARB programObj, GLint location, GLint *params); +GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); +#endif +#endif /* GL_ARB_shader_objects */ + +#ifndef GL_ARB_shader_precision +#define GL_ARB_shader_precision 1 +#endif /* GL_ARB_shader_precision */ + +#ifndef GL_ARB_shader_stencil_export +#define GL_ARB_shader_stencil_export 1 +#endif /* GL_ARB_shader_stencil_export */ + +#ifndef GL_ARB_shader_storage_buffer_object +#define GL_ARB_shader_storage_buffer_object 1 +#endif /* GL_ARB_shader_storage_buffer_object */ + +#ifndef GL_ARB_shader_subroutine +#define GL_ARB_shader_subroutine 1 +#endif /* GL_ARB_shader_subroutine */ + +#ifndef GL_ARB_shader_texture_lod +#define GL_ARB_shader_texture_lod 1 +#endif /* GL_ARB_shader_texture_lod */ + +#ifndef GL_ARB_shading_language_100 +#define GL_ARB_shading_language_100 1 +#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C +#endif /* GL_ARB_shading_language_100 */ + +#ifndef GL_ARB_shading_language_420pack +#define GL_ARB_shading_language_420pack 1 +#endif /* GL_ARB_shading_language_420pack */ + +#ifndef GL_ARB_shading_language_include +#define GL_ARB_shading_language_include 1 +#define GL_SHADER_INCLUDE_ARB 0x8DAE +#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 +#define GL_NAMED_STRING_TYPE_ARB 0x8DEA +typedef void (APIENTRYP PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); +typedef void (APIENTRYP PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); +typedef void (APIENTRYP PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length); +typedef GLboolean (APIENTRYP PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); +typedef void (APIENTRYP PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); +typedef void (APIENTRYP PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar *name, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glNamedStringARB (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); +GLAPI void APIENTRY glDeleteNamedStringARB (GLint namelen, const GLchar *name); +GLAPI void APIENTRY glCompileShaderIncludeARB (GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length); +GLAPI GLboolean APIENTRY glIsNamedStringARB (GLint namelen, const GLchar *name); +GLAPI void APIENTRY glGetNamedStringARB (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); +GLAPI void APIENTRY glGetNamedStringivARB (GLint namelen, const GLchar *name, GLenum pname, GLint *params); +#endif +#endif /* GL_ARB_shading_language_include */ + +#ifndef GL_ARB_shading_language_packing +#define GL_ARB_shading_language_packing 1 +#endif /* GL_ARB_shading_language_packing */ + +#ifndef GL_ARB_shadow +#define GL_ARB_shadow 1 +#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C +#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D +#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E +#endif /* GL_ARB_shadow */ + +#ifndef GL_ARB_shadow_ambient +#define GL_ARB_shadow_ambient 1 +#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF +#endif /* GL_ARB_shadow_ambient */ + +#ifndef GL_ARB_sparse_texture +#define GL_ARB_sparse_texture 1 +#define GL_TEXTURE_SPARSE_ARB 0x91A6 +#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7 +#define GL_MIN_SPARSE_LEVEL_ARB 0x919B +#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8 +#define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195 +#define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196 +#define GL_VIRTUAL_PAGE_SIZE_Z_ARB 0x9197 +#define GL_MAX_SPARSE_TEXTURE_SIZE_ARB 0x9198 +#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199 +#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A +#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9 +typedef void (APIENTRYP PFNGLTEXPAGECOMMITMENTARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident); +#endif +#endif /* GL_ARB_sparse_texture */ + +#ifndef GL_ARB_stencil_texturing +#define GL_ARB_stencil_texturing 1 +#endif /* GL_ARB_stencil_texturing */ + +#ifndef GL_ARB_sync +#define GL_ARB_sync 1 +#endif /* GL_ARB_sync */ + +#ifndef GL_ARB_tessellation_shader +#define GL_ARB_tessellation_shader 1 +#endif /* GL_ARB_tessellation_shader */ + +#ifndef GL_ARB_texture_border_clamp +#define GL_ARB_texture_border_clamp 1 +#define GL_CLAMP_TO_BORDER_ARB 0x812D +#endif /* GL_ARB_texture_border_clamp */ + +#ifndef GL_ARB_texture_buffer_object +#define GL_ARB_texture_buffer_object 1 +#define GL_TEXTURE_BUFFER_ARB 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E +typedef void (APIENTRYP PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexBufferARB (GLenum target, GLenum internalformat, GLuint buffer); +#endif +#endif /* GL_ARB_texture_buffer_object */ + +#ifndef GL_ARB_texture_buffer_object_rgb32 +#define GL_ARB_texture_buffer_object_rgb32 1 +#endif /* GL_ARB_texture_buffer_object_rgb32 */ + +#ifndef GL_ARB_texture_buffer_range +#define GL_ARB_texture_buffer_range 1 +#endif /* GL_ARB_texture_buffer_range */ + +#ifndef GL_ARB_texture_compression +#define GL_ARB_texture_compression 1 +#define GL_COMPRESSED_ALPHA_ARB 0x84E9 +#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB +#define GL_COMPRESSED_INTENSITY_ARB 0x84EC +#define GL_COMPRESSED_RGB_ARB 0x84ED +#define GL_COMPRESSED_RGBA_ARB 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 +#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, void *img); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum target, GLint level, void *img); +#endif +#endif /* GL_ARB_texture_compression */ + +#ifndef GL_ARB_texture_compression_bptc +#define GL_ARB_texture_compression_bptc 1 +#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C +#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F +#endif /* GL_ARB_texture_compression_bptc */ + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_ARB_texture_compression_rgtc 1 +#endif /* GL_ARB_texture_compression_rgtc */ + +#ifndef GL_ARB_texture_cube_map +#define GL_ARB_texture_cube_map 1 +#define GL_NORMAL_MAP_ARB 0x8511 +#define GL_REFLECTION_MAP_ARB 0x8512 +#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C +#endif /* GL_ARB_texture_cube_map */ + +#ifndef GL_ARB_texture_cube_map_array +#define GL_ARB_texture_cube_map_array 1 +#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F +#endif /* GL_ARB_texture_cube_map_array */ + +#ifndef GL_ARB_texture_env_add +#define GL_ARB_texture_env_add 1 +#endif /* GL_ARB_texture_env_add */ + +#ifndef GL_ARB_texture_env_combine +#define GL_ARB_texture_env_combine 1 +#define GL_COMBINE_ARB 0x8570 +#define GL_COMBINE_RGB_ARB 0x8571 +#define GL_COMBINE_ALPHA_ARB 0x8572 +#define GL_SOURCE0_RGB_ARB 0x8580 +#define GL_SOURCE1_RGB_ARB 0x8581 +#define GL_SOURCE2_RGB_ARB 0x8582 +#define GL_SOURCE0_ALPHA_ARB 0x8588 +#define GL_SOURCE1_ALPHA_ARB 0x8589 +#define GL_SOURCE2_ALPHA_ARB 0x858A +#define GL_OPERAND0_RGB_ARB 0x8590 +#define GL_OPERAND1_RGB_ARB 0x8591 +#define GL_OPERAND2_RGB_ARB 0x8592 +#define GL_OPERAND0_ALPHA_ARB 0x8598 +#define GL_OPERAND1_ALPHA_ARB 0x8599 +#define GL_OPERAND2_ALPHA_ARB 0x859A +#define GL_RGB_SCALE_ARB 0x8573 +#define GL_ADD_SIGNED_ARB 0x8574 +#define GL_INTERPOLATE_ARB 0x8575 +#define GL_SUBTRACT_ARB 0x84E7 +#define GL_CONSTANT_ARB 0x8576 +#define GL_PRIMARY_COLOR_ARB 0x8577 +#define GL_PREVIOUS_ARB 0x8578 +#endif /* GL_ARB_texture_env_combine */ + +#ifndef GL_ARB_texture_env_crossbar +#define GL_ARB_texture_env_crossbar 1 +#endif /* GL_ARB_texture_env_crossbar */ + +#ifndef GL_ARB_texture_env_dot3 +#define GL_ARB_texture_env_dot3 1 +#define GL_DOT3_RGB_ARB 0x86AE +#define GL_DOT3_RGBA_ARB 0x86AF +#endif /* GL_ARB_texture_env_dot3 */ + +#ifndef GL_ARB_texture_float +#define GL_ARB_texture_float 1 +#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 +#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 +#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 +#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 +#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 +#define GL_RGBA32F_ARB 0x8814 +#define GL_RGB32F_ARB 0x8815 +#define GL_ALPHA32F_ARB 0x8816 +#define GL_INTENSITY32F_ARB 0x8817 +#define GL_LUMINANCE32F_ARB 0x8818 +#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 +#define GL_RGBA16F_ARB 0x881A +#define GL_RGB16F_ARB 0x881B +#define GL_ALPHA16F_ARB 0x881C +#define GL_INTENSITY16F_ARB 0x881D +#define GL_LUMINANCE16F_ARB 0x881E +#define GL_LUMINANCE_ALPHA16F_ARB 0x881F +#endif /* GL_ARB_texture_float */ + +#ifndef GL_ARB_texture_gather +#define GL_ARB_texture_gather 1 +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F +#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F +#endif /* GL_ARB_texture_gather */ + +#ifndef GL_ARB_texture_mirror_clamp_to_edge +#define GL_ARB_texture_mirror_clamp_to_edge 1 +#endif /* GL_ARB_texture_mirror_clamp_to_edge */ + +#ifndef GL_ARB_texture_mirrored_repeat +#define GL_ARB_texture_mirrored_repeat 1 +#define GL_MIRRORED_REPEAT_ARB 0x8370 +#endif /* GL_ARB_texture_mirrored_repeat */ + +#ifndef GL_ARB_texture_multisample +#define GL_ARB_texture_multisample 1 +#endif /* GL_ARB_texture_multisample */ + +#ifndef GL_ARB_texture_non_power_of_two +#define GL_ARB_texture_non_power_of_two 1 +#endif /* GL_ARB_texture_non_power_of_two */ + +#ifndef GL_ARB_texture_query_levels +#define GL_ARB_texture_query_levels 1 +#endif /* GL_ARB_texture_query_levels */ + +#ifndef GL_ARB_texture_query_lod +#define GL_ARB_texture_query_lod 1 +#endif /* GL_ARB_texture_query_lod */ + +#ifndef GL_ARB_texture_rectangle +#define GL_ARB_texture_rectangle 1 +#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 +#endif /* GL_ARB_texture_rectangle */ + +#ifndef GL_ARB_texture_rg +#define GL_ARB_texture_rg 1 +#endif /* GL_ARB_texture_rg */ + +#ifndef GL_ARB_texture_rgb10_a2ui +#define GL_ARB_texture_rgb10_a2ui 1 +#endif /* GL_ARB_texture_rgb10_a2ui */ + +#ifndef GL_ARB_texture_stencil8 +#define GL_ARB_texture_stencil8 1 +#endif /* GL_ARB_texture_stencil8 */ + +#ifndef GL_ARB_texture_storage +#define GL_ARB_texture_storage 1 +#endif /* GL_ARB_texture_storage */ + +#ifndef GL_ARB_texture_storage_multisample +#define GL_ARB_texture_storage_multisample 1 +#endif /* GL_ARB_texture_storage_multisample */ + +#ifndef GL_ARB_texture_swizzle +#define GL_ARB_texture_swizzle 1 +#endif /* GL_ARB_texture_swizzle */ + +#ifndef GL_ARB_texture_view +#define GL_ARB_texture_view 1 +#endif /* GL_ARB_texture_view */ + +#ifndef GL_ARB_timer_query +#define GL_ARB_timer_query 1 +#endif /* GL_ARB_timer_query */ + +#ifndef GL_ARB_transform_feedback2 +#define GL_ARB_transform_feedback2 1 +#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 +#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 +#endif /* GL_ARB_transform_feedback2 */ + +#ifndef GL_ARB_transform_feedback3 +#define GL_ARB_transform_feedback3 1 +#endif /* GL_ARB_transform_feedback3 */ + +#ifndef GL_ARB_transform_feedback_instanced +#define GL_ARB_transform_feedback_instanced 1 +#endif /* GL_ARB_transform_feedback_instanced */ + +#ifndef GL_ARB_transpose_matrix +#define GL_ARB_transpose_matrix 1 +#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *m); +GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *m); +GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *m); +GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *m); +#endif +#endif /* GL_ARB_transpose_matrix */ + +#ifndef GL_ARB_uniform_buffer_object +#define GL_ARB_uniform_buffer_object 1 +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 +#endif /* GL_ARB_uniform_buffer_object */ + +#ifndef GL_ARB_vertex_array_bgra +#define GL_ARB_vertex_array_bgra 1 +#endif /* GL_ARB_vertex_array_bgra */ + +#ifndef GL_ARB_vertex_array_object +#define GL_ARB_vertex_array_object 1 +#endif /* GL_ARB_vertex_array_object */ + +#ifndef GL_ARB_vertex_attrib_64bit +#define GL_ARB_vertex_attrib_64bit 1 +#endif /* GL_ARB_vertex_attrib_64bit */ + +#ifndef GL_ARB_vertex_attrib_binding +#define GL_ARB_vertex_attrib_binding 1 +#endif /* GL_ARB_vertex_attrib_binding */ + +#ifndef GL_ARB_vertex_blend +#define GL_ARB_vertex_blend 1 +#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 +#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 +#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 +#define GL_VERTEX_BLEND_ARB 0x86A7 +#define GL_CURRENT_WEIGHT_ARB 0x86A8 +#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC +#define GL_WEIGHT_ARRAY_ARB 0x86AD +#define GL_MODELVIEW0_ARB 0x1700 +#define GL_MODELVIEW1_ARB 0x850A +#define GL_MODELVIEW2_ARB 0x8722 +#define GL_MODELVIEW3_ARB 0x8723 +#define GL_MODELVIEW4_ARB 0x8724 +#define GL_MODELVIEW5_ARB 0x8725 +#define GL_MODELVIEW6_ARB 0x8726 +#define GL_MODELVIEW7_ARB 0x8727 +#define GL_MODELVIEW8_ARB 0x8728 +#define GL_MODELVIEW9_ARB 0x8729 +#define GL_MODELVIEW10_ARB 0x872A +#define GL_MODELVIEW11_ARB 0x872B +#define GL_MODELVIEW12_ARB 0x872C +#define GL_MODELVIEW13_ARB 0x872D +#define GL_MODELVIEW14_ARB 0x872E +#define GL_MODELVIEW15_ARB 0x872F +#define GL_MODELVIEW16_ARB 0x8730 +#define GL_MODELVIEW17_ARB 0x8731 +#define GL_MODELVIEW18_ARB 0x8732 +#define GL_MODELVIEW19_ARB 0x8733 +#define GL_MODELVIEW20_ARB 0x8734 +#define GL_MODELVIEW21_ARB 0x8735 +#define GL_MODELVIEW22_ARB 0x8736 +#define GL_MODELVIEW23_ARB 0x8737 +#define GL_MODELVIEW24_ARB 0x8738 +#define GL_MODELVIEW25_ARB 0x8739 +#define GL_MODELVIEW26_ARB 0x873A +#define GL_MODELVIEW27_ARB 0x873B +#define GL_MODELVIEW28_ARB 0x873C +#define GL_MODELVIEW29_ARB 0x873D +#define GL_MODELVIEW30_ARB 0x873E +#define GL_MODELVIEW31_ARB 0x873F +typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights); +typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights); +typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights); +typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); +typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); +typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights); +typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights); +typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights); +typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWeightbvARB (GLint size, const GLbyte *weights); +GLAPI void APIENTRY glWeightsvARB (GLint size, const GLshort *weights); +GLAPI void APIENTRY glWeightivARB (GLint size, const GLint *weights); +GLAPI void APIENTRY glWeightfvARB (GLint size, const GLfloat *weights); +GLAPI void APIENTRY glWeightdvARB (GLint size, const GLdouble *weights); +GLAPI void APIENTRY glWeightubvARB (GLint size, const GLubyte *weights); +GLAPI void APIENTRY glWeightusvARB (GLint size, const GLushort *weights); +GLAPI void APIENTRY glWeightuivARB (GLint size, const GLuint *weights); +GLAPI void APIENTRY glWeightPointerARB (GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glVertexBlendARB (GLint count); +#endif +#endif /* GL_ARB_vertex_blend */ + +#ifndef GL_ARB_vertex_buffer_object +#define GL_ARB_vertex_buffer_object 1 +#ifdef __MACOSX__ /* The OS X headers haven't caught up with Khronos yet */ +typedef long GLsizeiptrARB; +typedef long GLintptrARB; +#else +typedef ptrdiff_t GLsizeiptrARB; +typedef ptrdiff_t GLintptrARB; +#endif +#define GL_BUFFER_SIZE_ARB 0x8764 +#define GL_BUFFER_USAGE_ARB 0x8765 +#define GL_ARRAY_BUFFER_ARB 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 +#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F +#define GL_READ_ONLY_ARB 0x88B8 +#define GL_WRITE_ONLY_ARB 0x88B9 +#define GL_READ_WRITE_ARB 0x88BA +#define GL_BUFFER_ACCESS_ARB 0x88BB +#define GL_BUFFER_MAPPED_ARB 0x88BC +#define GL_BUFFER_MAP_POINTER_ARB 0x88BD +#define GL_STREAM_DRAW_ARB 0x88E0 +#define GL_STREAM_READ_ARB 0x88E1 +#define GL_STREAM_COPY_ARB 0x88E2 +#define GL_STATIC_DRAW_ARB 0x88E4 +#define GL_STATIC_READ_ARB 0x88E5 +#define GL_STATIC_COPY_ARB 0x88E6 +#define GL_DYNAMIC_DRAW_ARB 0x88E8 +#define GL_DYNAMIC_READ_ARB 0x88E9 +#define GL_DYNAMIC_COPY_ARB 0x88EA +typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); +typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers); +typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers); +typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage); +typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data); +typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data); +typedef void *(APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, void **params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindBufferARB (GLenum target, GLuint buffer); +GLAPI void APIENTRY glDeleteBuffersARB (GLsizei n, const GLuint *buffers); +GLAPI void APIENTRY glGenBuffersARB (GLsizei n, GLuint *buffers); +GLAPI GLboolean APIENTRY glIsBufferARB (GLuint buffer); +GLAPI void APIENTRY glBufferDataARB (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage); +GLAPI void APIENTRY glBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data); +GLAPI void APIENTRY glGetBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data); +GLAPI void *APIENTRY glMapBufferARB (GLenum target, GLenum access); +GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum target); +GLAPI void APIENTRY glGetBufferParameterivARB (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetBufferPointervARB (GLenum target, GLenum pname, void **params); +#endif +#endif /* GL_ARB_vertex_buffer_object */ + +#ifndef GL_ARB_vertex_program +#define GL_ARB_vertex_program 1 +#define GL_COLOR_SUM_ARB 0x8458 +#define GL_VERTEX_PROGRAM_ARB 0x8620 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 +#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 +#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A +#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 +#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 +#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 +#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, void **pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttrib1dARB (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib1fARB (GLuint index, GLfloat x); +GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib1sARB (GLuint index, GLshort x); +GLAPI void APIENTRY glVertexAttrib1svARB (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib2dARB (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib2fARB (GLuint index, GLfloat x, GLfloat y); +GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib2sARB (GLuint index, GLshort x, GLshort y); +GLAPI void APIENTRY glVertexAttrib2svARB (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib3dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib3fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib3sARB (GLuint index, GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glVertexAttrib3svARB (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttrib4dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib4fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttrib4sARB (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void APIENTRY glVertexAttrib4svARB (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttribPointerARB (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint index); +GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint index); +GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint index, GLenum pname, GLdouble *params); +GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint index, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetVertexAttribivARB (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint index, GLenum pname, void **pointer); +#endif +#endif /* GL_ARB_vertex_program */ + +#ifndef GL_ARB_vertex_shader +#define GL_ARB_vertex_shader 1 +#define GL_VERTEX_SHADER_ARB 0x8B31 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A +#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D +#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 +#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A +typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name); +typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB programObj, GLuint index, const GLcharARB *name); +GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB programObj, const GLcharARB *name); +#endif +#endif /* GL_ARB_vertex_shader */ + +#ifndef GL_ARB_vertex_type_10f_11f_11f_rev +#define GL_ARB_vertex_type_10f_11f_11f_rev 1 +#endif /* GL_ARB_vertex_type_10f_11f_11f_rev */ + +#ifndef GL_ARB_vertex_type_2_10_10_10_rev +#define GL_ARB_vertex_type_2_10_10_10_rev 1 +#endif /* GL_ARB_vertex_type_2_10_10_10_rev */ + +#ifndef GL_ARB_viewport_array +#define GL_ARB_viewport_array 1 +#endif /* GL_ARB_viewport_array */ + +#ifndef GL_ARB_window_pos +#define GL_ARB_window_pos 1 +typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); +typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWindowPos2dARB (GLdouble x, GLdouble y); +GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *v); +GLAPI void APIENTRY glWindowPos2fARB (GLfloat x, GLfloat y); +GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *v); +GLAPI void APIENTRY glWindowPos2iARB (GLint x, GLint y); +GLAPI void APIENTRY glWindowPos2ivARB (const GLint *v); +GLAPI void APIENTRY glWindowPos2sARB (GLshort x, GLshort y); +GLAPI void APIENTRY glWindowPos2svARB (const GLshort *v); +GLAPI void APIENTRY glWindowPos3dARB (GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *v); +GLAPI void APIENTRY glWindowPos3fARB (GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *v); +GLAPI void APIENTRY glWindowPos3iARB (GLint x, GLint y, GLint z); +GLAPI void APIENTRY glWindowPos3ivARB (const GLint *v); +GLAPI void APIENTRY glWindowPos3sARB (GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glWindowPos3svARB (const GLshort *v); +#endif +#endif /* GL_ARB_window_pos */ + +#ifndef GL_KHR_debug +#define GL_KHR_debug 1 +#endif /* GL_KHR_debug */ + +#ifndef GL_KHR_texture_compression_astc_hdr +#define GL_KHR_texture_compression_astc_hdr 1 +#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 +#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 +#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 +#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 +#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 +#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 +#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 +#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 +#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 +#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 +#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA +#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB +#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC +#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD +#endif /* GL_KHR_texture_compression_astc_hdr */ + +#ifndef GL_KHR_texture_compression_astc_ldr +#define GL_KHR_texture_compression_astc_ldr 1 +#endif /* GL_KHR_texture_compression_astc_ldr */ + +#ifndef GL_OES_byte_coordinates +#define GL_OES_byte_coordinates 1 +typedef void (APIENTRYP PFNGLMULTITEXCOORD1BOESPROC) (GLenum texture, GLbyte s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1BVOESPROC) (GLenum texture, const GLbyte *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2BOESPROC) (GLenum texture, GLbyte s, GLbyte t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2BVOESPROC) (GLenum texture, const GLbyte *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3BOESPROC) (GLenum texture, GLbyte s, GLbyte t, GLbyte r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3BVOESPROC) (GLenum texture, const GLbyte *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4BOESPROC) (GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4BVOESPROC) (GLenum texture, const GLbyte *coords); +typedef void (APIENTRYP PFNGLTEXCOORD1BOESPROC) (GLbyte s); +typedef void (APIENTRYP PFNGLTEXCOORD1BVOESPROC) (const GLbyte *coords); +typedef void (APIENTRYP PFNGLTEXCOORD2BOESPROC) (GLbyte s, GLbyte t); +typedef void (APIENTRYP PFNGLTEXCOORD2BVOESPROC) (const GLbyte *coords); +typedef void (APIENTRYP PFNGLTEXCOORD3BOESPROC) (GLbyte s, GLbyte t, GLbyte r); +typedef void (APIENTRYP PFNGLTEXCOORD3BVOESPROC) (const GLbyte *coords); +typedef void (APIENTRYP PFNGLTEXCOORD4BOESPROC) (GLbyte s, GLbyte t, GLbyte r, GLbyte q); +typedef void (APIENTRYP PFNGLTEXCOORD4BVOESPROC) (const GLbyte *coords); +typedef void (APIENTRYP PFNGLVERTEX2BOESPROC) (GLbyte x); +typedef void (APIENTRYP PFNGLVERTEX2BVOESPROC) (const GLbyte *coords); +typedef void (APIENTRYP PFNGLVERTEX3BOESPROC) (GLbyte x, GLbyte y); +typedef void (APIENTRYP PFNGLVERTEX3BVOESPROC) (const GLbyte *coords); +typedef void (APIENTRYP PFNGLVERTEX4BOESPROC) (GLbyte x, GLbyte y, GLbyte z); +typedef void (APIENTRYP PFNGLVERTEX4BVOESPROC) (const GLbyte *coords); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiTexCoord1bOES (GLenum texture, GLbyte s); +GLAPI void APIENTRY glMultiTexCoord1bvOES (GLenum texture, const GLbyte *coords); +GLAPI void APIENTRY glMultiTexCoord2bOES (GLenum texture, GLbyte s, GLbyte t); +GLAPI void APIENTRY glMultiTexCoord2bvOES (GLenum texture, const GLbyte *coords); +GLAPI void APIENTRY glMultiTexCoord3bOES (GLenum texture, GLbyte s, GLbyte t, GLbyte r); +GLAPI void APIENTRY glMultiTexCoord3bvOES (GLenum texture, const GLbyte *coords); +GLAPI void APIENTRY glMultiTexCoord4bOES (GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q); +GLAPI void APIENTRY glMultiTexCoord4bvOES (GLenum texture, const GLbyte *coords); +GLAPI void APIENTRY glTexCoord1bOES (GLbyte s); +GLAPI void APIENTRY glTexCoord1bvOES (const GLbyte *coords); +GLAPI void APIENTRY glTexCoord2bOES (GLbyte s, GLbyte t); +GLAPI void APIENTRY glTexCoord2bvOES (const GLbyte *coords); +GLAPI void APIENTRY glTexCoord3bOES (GLbyte s, GLbyte t, GLbyte r); +GLAPI void APIENTRY glTexCoord3bvOES (const GLbyte *coords); +GLAPI void APIENTRY glTexCoord4bOES (GLbyte s, GLbyte t, GLbyte r, GLbyte q); +GLAPI void APIENTRY glTexCoord4bvOES (const GLbyte *coords); +GLAPI void APIENTRY glVertex2bOES (GLbyte x); +GLAPI void APIENTRY glVertex2bvOES (const GLbyte *coords); +GLAPI void APIENTRY glVertex3bOES (GLbyte x, GLbyte y); +GLAPI void APIENTRY glVertex3bvOES (const GLbyte *coords); +GLAPI void APIENTRY glVertex4bOES (GLbyte x, GLbyte y, GLbyte z); +GLAPI void APIENTRY glVertex4bvOES (const GLbyte *coords); +#endif +#endif /* GL_OES_byte_coordinates */ + +#ifndef GL_OES_compressed_paletted_texture +#define GL_OES_compressed_paletted_texture 1 +#define GL_PALETTE4_RGB8_OES 0x8B90 +#define GL_PALETTE4_RGBA8_OES 0x8B91 +#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 +#define GL_PALETTE4_RGBA4_OES 0x8B93 +#define GL_PALETTE4_RGB5_A1_OES 0x8B94 +#define GL_PALETTE8_RGB8_OES 0x8B95 +#define GL_PALETTE8_RGBA8_OES 0x8B96 +#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 +#define GL_PALETTE8_RGBA4_OES 0x8B98 +#define GL_PALETTE8_RGB5_A1_OES 0x8B99 +#endif /* GL_OES_compressed_paletted_texture */ + +#ifndef GL_OES_fixed_point +#define GL_OES_fixed_point 1 +typedef GLint GLfixed; +#define GL_FIXED_OES 0x140C +typedef void (APIENTRYP PFNGLALPHAFUNCXOESPROC) (GLenum func, GLfixed ref); +typedef void (APIENTRYP PFNGLCLEARCOLORXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +typedef void (APIENTRYP PFNGLCLEARDEPTHXOESPROC) (GLfixed depth); +typedef void (APIENTRYP PFNGLCLIPPLANEXOESPROC) (GLenum plane, const GLfixed *equation); +typedef void (APIENTRYP PFNGLCOLOR4XOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +typedef void (APIENTRYP PFNGLDEPTHRANGEXOESPROC) (GLfixed n, GLfixed f); +typedef void (APIENTRYP PFNGLFOGXOESPROC) (GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLFOGXVOESPROC) (GLenum pname, const GLfixed *param); +typedef void (APIENTRYP PFNGLFRUSTUMXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); +typedef void (APIENTRYP PFNGLGETCLIPPLANEXOESPROC) (GLenum plane, GLfixed *equation); +typedef void (APIENTRYP PFNGLGETFIXEDVOESPROC) (GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLGETTEXENVXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLLIGHTMODELXOESPROC) (GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLLIGHTMODELXVOESPROC) (GLenum pname, const GLfixed *param); +typedef void (APIENTRYP PFNGLLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLLIGHTXVOESPROC) (GLenum light, GLenum pname, const GLfixed *params); +typedef void (APIENTRYP PFNGLLINEWIDTHXOESPROC) (GLfixed width); +typedef void (APIENTRYP PFNGLLOADMATRIXXOESPROC) (const GLfixed *m); +typedef void (APIENTRYP PFNGLMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLMATERIALXVOESPROC) (GLenum face, GLenum pname, const GLfixed *param); +typedef void (APIENTRYP PFNGLMULTMATRIXXOESPROC) (const GLfixed *m); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4XOESPROC) (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); +typedef void (APIENTRYP PFNGLNORMAL3XOESPROC) (GLfixed nx, GLfixed ny, GLfixed nz); +typedef void (APIENTRYP PFNGLORTHOXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); +typedef void (APIENTRYP PFNGLPOINTPARAMETERXVOESPROC) (GLenum pname, const GLfixed *params); +typedef void (APIENTRYP PFNGLPOINTSIZEXOESPROC) (GLfixed size); +typedef void (APIENTRYP PFNGLPOLYGONOFFSETXOESPROC) (GLfixed factor, GLfixed units); +typedef void (APIENTRYP PFNGLROTATEXOESPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEOESPROC) (GLfixed value, GLboolean invert); +typedef void (APIENTRYP PFNGLSCALEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); +typedef void (APIENTRYP PFNGLTEXENVXOESPROC) (GLenum target, GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLTEXENVXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); +typedef void (APIENTRYP PFNGLTRANSLATEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); +typedef void (APIENTRYP PFNGLACCUMXOESPROC) (GLenum op, GLfixed value); +typedef void (APIENTRYP PFNGLBITMAPXOESPROC) (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap); +typedef void (APIENTRYP PFNGLBLENDCOLORXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +typedef void (APIENTRYP PFNGLCLEARACCUMXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +typedef void (APIENTRYP PFNGLCOLOR3XOESPROC) (GLfixed red, GLfixed green, GLfixed blue); +typedef void (APIENTRYP PFNGLCOLOR3XVOESPROC) (const GLfixed *components); +typedef void (APIENTRYP PFNGLCOLOR4XVOESPROC) (const GLfixed *components); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); +typedef void (APIENTRYP PFNGLEVALCOORD1XOESPROC) (GLfixed u); +typedef void (APIENTRYP PFNGLEVALCOORD1XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLEVALCOORD2XOESPROC) (GLfixed u, GLfixed v); +typedef void (APIENTRYP PFNGLEVALCOORD2XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLFEEDBACKBUFFERXOESPROC) (GLsizei n, GLenum type, const GLfixed *buffer); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLGETLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLGETMAPXVOESPROC) (GLenum target, GLenum query, GLfixed *v); +typedef void (APIENTRYP PFNGLGETMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLGETPIXELMAPXVPROC) (GLenum map, GLint size, GLfixed *values); +typedef void (APIENTRYP PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERXVOESPROC) (GLenum target, GLint level, GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLINDEXXOESPROC) (GLfixed component); +typedef void (APIENTRYP PFNGLINDEXXVOESPROC) (const GLfixed *component); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXXOESPROC) (const GLfixed *m); +typedef void (APIENTRYP PFNGLMAP1XOESPROC) (GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points); +typedef void (APIENTRYP PFNGLMAP2XOESPROC) (GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points); +typedef void (APIENTRYP PFNGLMAPGRID1XOESPROC) (GLint n, GLfixed u1, GLfixed u2); +typedef void (APIENTRYP PFNGLMAPGRID2XOESPROC) (GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXXOESPROC) (const GLfixed *m); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1XOESPROC) (GLenum texture, GLfixed s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1XVOESPROC) (GLenum texture, const GLfixed *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2XOESPROC) (GLenum texture, GLfixed s, GLfixed t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2XVOESPROC) (GLenum texture, const GLfixed *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3XOESPROC) (GLenum texture, GLfixed s, GLfixed t, GLfixed r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3XVOESPROC) (GLenum texture, const GLfixed *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4XVOESPROC) (GLenum texture, const GLfixed *coords); +typedef void (APIENTRYP PFNGLNORMAL3XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLPASSTHROUGHXOESPROC) (GLfixed token); +typedef void (APIENTRYP PFNGLPIXELMAPXPROC) (GLenum map, GLint size, const GLfixed *values); +typedef void (APIENTRYP PFNGLPIXELSTOREXPROC) (GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLPIXELTRANSFERXOESPROC) (GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLPIXELZOOMXOESPROC) (GLfixed xfactor, GLfixed yfactor); +typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESXOESPROC) (GLsizei n, const GLuint *textures, const GLfixed *priorities); +typedef void (APIENTRYP PFNGLRASTERPOS2XOESPROC) (GLfixed x, GLfixed y); +typedef void (APIENTRYP PFNGLRASTERPOS2XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLRASTERPOS3XOESPROC) (GLfixed x, GLfixed y, GLfixed z); +typedef void (APIENTRYP PFNGLRASTERPOS3XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLRASTERPOS4XOESPROC) (GLfixed x, GLfixed y, GLfixed z, GLfixed w); +typedef void (APIENTRYP PFNGLRASTERPOS4XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLRECTXOESPROC) (GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2); +typedef void (APIENTRYP PFNGLRECTXVOESPROC) (const GLfixed *v1, const GLfixed *v2); +typedef void (APIENTRYP PFNGLTEXCOORD1XOESPROC) (GLfixed s); +typedef void (APIENTRYP PFNGLTEXCOORD1XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLTEXCOORD2XOESPROC) (GLfixed s, GLfixed t); +typedef void (APIENTRYP PFNGLTEXCOORD2XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLTEXCOORD3XOESPROC) (GLfixed s, GLfixed t, GLfixed r); +typedef void (APIENTRYP PFNGLTEXCOORD3XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLTEXCOORD4XOESPROC) (GLfixed s, GLfixed t, GLfixed r, GLfixed q); +typedef void (APIENTRYP PFNGLTEXCOORD4XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed *params); +typedef void (APIENTRYP PFNGLVERTEX2XOESPROC) (GLfixed x); +typedef void (APIENTRYP PFNGLVERTEX2XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLVERTEX3XOESPROC) (GLfixed x, GLfixed y); +typedef void (APIENTRYP PFNGLVERTEX3XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLVERTEX4XOESPROC) (GLfixed x, GLfixed y, GLfixed z); +typedef void (APIENTRYP PFNGLVERTEX4XVOESPROC) (const GLfixed *coords); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glAlphaFuncxOES (GLenum func, GLfixed ref); +GLAPI void APIENTRY glClearColorxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +GLAPI void APIENTRY glClearDepthxOES (GLfixed depth); +GLAPI void APIENTRY glClipPlanexOES (GLenum plane, const GLfixed *equation); +GLAPI void APIENTRY glColor4xOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +GLAPI void APIENTRY glDepthRangexOES (GLfixed n, GLfixed f); +GLAPI void APIENTRY glFogxOES (GLenum pname, GLfixed param); +GLAPI void APIENTRY glFogxvOES (GLenum pname, const GLfixed *param); +GLAPI void APIENTRY glFrustumxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); +GLAPI void APIENTRY glGetClipPlanexOES (GLenum plane, GLfixed *equation); +GLAPI void APIENTRY glGetFixedvOES (GLenum pname, GLfixed *params); +GLAPI void APIENTRY glGetTexEnvxvOES (GLenum target, GLenum pname, GLfixed *params); +GLAPI void APIENTRY glGetTexParameterxvOES (GLenum target, GLenum pname, GLfixed *params); +GLAPI void APIENTRY glLightModelxOES (GLenum pname, GLfixed param); +GLAPI void APIENTRY glLightModelxvOES (GLenum pname, const GLfixed *param); +GLAPI void APIENTRY glLightxOES (GLenum light, GLenum pname, GLfixed param); +GLAPI void APIENTRY glLightxvOES (GLenum light, GLenum pname, const GLfixed *params); +GLAPI void APIENTRY glLineWidthxOES (GLfixed width); +GLAPI void APIENTRY glLoadMatrixxOES (const GLfixed *m); +GLAPI void APIENTRY glMaterialxOES (GLenum face, GLenum pname, GLfixed param); +GLAPI void APIENTRY glMaterialxvOES (GLenum face, GLenum pname, const GLfixed *param); +GLAPI void APIENTRY glMultMatrixxOES (const GLfixed *m); +GLAPI void APIENTRY glMultiTexCoord4xOES (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); +GLAPI void APIENTRY glNormal3xOES (GLfixed nx, GLfixed ny, GLfixed nz); +GLAPI void APIENTRY glOrthoxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); +GLAPI void APIENTRY glPointParameterxvOES (GLenum pname, const GLfixed *params); +GLAPI void APIENTRY glPointSizexOES (GLfixed size); +GLAPI void APIENTRY glPolygonOffsetxOES (GLfixed factor, GLfixed units); +GLAPI void APIENTRY glRotatexOES (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); +GLAPI void APIENTRY glSampleCoverageOES (GLfixed value, GLboolean invert); +GLAPI void APIENTRY glScalexOES (GLfixed x, GLfixed y, GLfixed z); +GLAPI void APIENTRY glTexEnvxOES (GLenum target, GLenum pname, GLfixed param); +GLAPI void APIENTRY glTexEnvxvOES (GLenum target, GLenum pname, const GLfixed *params); +GLAPI void APIENTRY glTexParameterxOES (GLenum target, GLenum pname, GLfixed param); +GLAPI void APIENTRY glTexParameterxvOES (GLenum target, GLenum pname, const GLfixed *params); +GLAPI void APIENTRY glTranslatexOES (GLfixed x, GLfixed y, GLfixed z); +GLAPI void APIENTRY glAccumxOES (GLenum op, GLfixed value); +GLAPI void APIENTRY glBitmapxOES (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap); +GLAPI void APIENTRY glBlendColorxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +GLAPI void APIENTRY glClearAccumxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +GLAPI void APIENTRY glColor3xOES (GLfixed red, GLfixed green, GLfixed blue); +GLAPI void APIENTRY glColor3xvOES (const GLfixed *components); +GLAPI void APIENTRY glColor4xvOES (const GLfixed *components); +GLAPI void APIENTRY glConvolutionParameterxOES (GLenum target, GLenum pname, GLfixed param); +GLAPI void APIENTRY glConvolutionParameterxvOES (GLenum target, GLenum pname, const GLfixed *params); +GLAPI void APIENTRY glEvalCoord1xOES (GLfixed u); +GLAPI void APIENTRY glEvalCoord1xvOES (const GLfixed *coords); +GLAPI void APIENTRY glEvalCoord2xOES (GLfixed u, GLfixed v); +GLAPI void APIENTRY glEvalCoord2xvOES (const GLfixed *coords); +GLAPI void APIENTRY glFeedbackBufferxOES (GLsizei n, GLenum type, const GLfixed *buffer); +GLAPI void APIENTRY glGetConvolutionParameterxvOES (GLenum target, GLenum pname, GLfixed *params); +GLAPI void APIENTRY glGetHistogramParameterxvOES (GLenum target, GLenum pname, GLfixed *params); +GLAPI void APIENTRY glGetLightxOES (GLenum light, GLenum pname, GLfixed *params); +GLAPI void APIENTRY glGetMapxvOES (GLenum target, GLenum query, GLfixed *v); +GLAPI void APIENTRY glGetMaterialxOES (GLenum face, GLenum pname, GLfixed param); +GLAPI void APIENTRY glGetPixelMapxv (GLenum map, GLint size, GLfixed *values); +GLAPI void APIENTRY glGetTexGenxvOES (GLenum coord, GLenum pname, GLfixed *params); +GLAPI void APIENTRY glGetTexLevelParameterxvOES (GLenum target, GLint level, GLenum pname, GLfixed *params); +GLAPI void APIENTRY glIndexxOES (GLfixed component); +GLAPI void APIENTRY glIndexxvOES (const GLfixed *component); +GLAPI void APIENTRY glLoadTransposeMatrixxOES (const GLfixed *m); +GLAPI void APIENTRY glMap1xOES (GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points); +GLAPI void APIENTRY glMap2xOES (GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points); +GLAPI void APIENTRY glMapGrid1xOES (GLint n, GLfixed u1, GLfixed u2); +GLAPI void APIENTRY glMapGrid2xOES (GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2); +GLAPI void APIENTRY glMultTransposeMatrixxOES (const GLfixed *m); +GLAPI void APIENTRY glMultiTexCoord1xOES (GLenum texture, GLfixed s); +GLAPI void APIENTRY glMultiTexCoord1xvOES (GLenum texture, const GLfixed *coords); +GLAPI void APIENTRY glMultiTexCoord2xOES (GLenum texture, GLfixed s, GLfixed t); +GLAPI void APIENTRY glMultiTexCoord2xvOES (GLenum texture, const GLfixed *coords); +GLAPI void APIENTRY glMultiTexCoord3xOES (GLenum texture, GLfixed s, GLfixed t, GLfixed r); +GLAPI void APIENTRY glMultiTexCoord3xvOES (GLenum texture, const GLfixed *coords); +GLAPI void APIENTRY glMultiTexCoord4xvOES (GLenum texture, const GLfixed *coords); +GLAPI void APIENTRY glNormal3xvOES (const GLfixed *coords); +GLAPI void APIENTRY glPassThroughxOES (GLfixed token); +GLAPI void APIENTRY glPixelMapx (GLenum map, GLint size, const GLfixed *values); +GLAPI void APIENTRY glPixelStorex (GLenum pname, GLfixed param); +GLAPI void APIENTRY glPixelTransferxOES (GLenum pname, GLfixed param); +GLAPI void APIENTRY glPixelZoomxOES (GLfixed xfactor, GLfixed yfactor); +GLAPI void APIENTRY glPrioritizeTexturesxOES (GLsizei n, const GLuint *textures, const GLfixed *priorities); +GLAPI void APIENTRY glRasterPos2xOES (GLfixed x, GLfixed y); +GLAPI void APIENTRY glRasterPos2xvOES (const GLfixed *coords); +GLAPI void APIENTRY glRasterPos3xOES (GLfixed x, GLfixed y, GLfixed z); +GLAPI void APIENTRY glRasterPos3xvOES (const GLfixed *coords); +GLAPI void APIENTRY glRasterPos4xOES (GLfixed x, GLfixed y, GLfixed z, GLfixed w); +GLAPI void APIENTRY glRasterPos4xvOES (const GLfixed *coords); +GLAPI void APIENTRY glRectxOES (GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2); +GLAPI void APIENTRY glRectxvOES (const GLfixed *v1, const GLfixed *v2); +GLAPI void APIENTRY glTexCoord1xOES (GLfixed s); +GLAPI void APIENTRY glTexCoord1xvOES (const GLfixed *coords); +GLAPI void APIENTRY glTexCoord2xOES (GLfixed s, GLfixed t); +GLAPI void APIENTRY glTexCoord2xvOES (const GLfixed *coords); +GLAPI void APIENTRY glTexCoord3xOES (GLfixed s, GLfixed t, GLfixed r); +GLAPI void APIENTRY glTexCoord3xvOES (const GLfixed *coords); +GLAPI void APIENTRY glTexCoord4xOES (GLfixed s, GLfixed t, GLfixed r, GLfixed q); +GLAPI void APIENTRY glTexCoord4xvOES (const GLfixed *coords); +GLAPI void APIENTRY glTexGenxOES (GLenum coord, GLenum pname, GLfixed param); +GLAPI void APIENTRY glTexGenxvOES (GLenum coord, GLenum pname, const GLfixed *params); +GLAPI void APIENTRY glVertex2xOES (GLfixed x); +GLAPI void APIENTRY glVertex2xvOES (const GLfixed *coords); +GLAPI void APIENTRY glVertex3xOES (GLfixed x, GLfixed y); +GLAPI void APIENTRY glVertex3xvOES (const GLfixed *coords); +GLAPI void APIENTRY glVertex4xOES (GLfixed x, GLfixed y, GLfixed z); +GLAPI void APIENTRY glVertex4xvOES (const GLfixed *coords); +#endif +#endif /* GL_OES_fixed_point */ + +#ifndef GL_OES_query_matrix +#define GL_OES_query_matrix 1 +typedef GLbitfield (APIENTRYP PFNGLQUERYMATRIXXOESPROC) (GLfixed *mantissa, GLint *exponent); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLbitfield APIENTRY glQueryMatrixxOES (GLfixed *mantissa, GLint *exponent); +#endif +#endif /* GL_OES_query_matrix */ + +#ifndef GL_OES_read_format +#define GL_OES_read_format 1 +#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B +#endif /* GL_OES_read_format */ + +#ifndef GL_OES_single_precision +#define GL_OES_single_precision 1 +typedef void (APIENTRYP PFNGLCLEARDEPTHFOESPROC) (GLclampf depth); +typedef void (APIENTRYP PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat *equation); +typedef void (APIENTRYP PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f); +typedef void (APIENTRYP PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +typedef void (APIENTRYP PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat *equation); +typedef void (APIENTRYP PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glClearDepthfOES (GLclampf depth); +GLAPI void APIENTRY glClipPlanefOES (GLenum plane, const GLfloat *equation); +GLAPI void APIENTRY glDepthRangefOES (GLclampf n, GLclampf f); +GLAPI void APIENTRY glFrustumfOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +GLAPI void APIENTRY glGetClipPlanefOES (GLenum plane, GLfloat *equation); +GLAPI void APIENTRY glOrthofOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +#endif +#endif /* GL_OES_single_precision */ + +#ifndef GL_3DFX_multisample +#define GL_3DFX_multisample 1 +#define GL_MULTISAMPLE_3DFX 0x86B2 +#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 +#define GL_SAMPLES_3DFX 0x86B4 +#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 +#endif /* GL_3DFX_multisample */ + +#ifndef GL_3DFX_tbuffer +#define GL_3DFX_tbuffer 1 +typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTbufferMask3DFX (GLuint mask); +#endif +#endif /* GL_3DFX_tbuffer */ + +#ifndef GL_3DFX_texture_compression_FXT1 +#define GL_3DFX_texture_compression_FXT1 1 +#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 +#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 +#endif /* GL_3DFX_texture_compression_FXT1 */ + +#ifndef GL_AMD_blend_minmax_factor +#define GL_AMD_blend_minmax_factor 1 +#define GL_FACTOR_MIN_AMD 0x901C +#define GL_FACTOR_MAX_AMD 0x901D +#endif /* GL_AMD_blend_minmax_factor */ + +#ifndef GL_AMD_conservative_depth +#define GL_AMD_conservative_depth 1 +#endif /* GL_AMD_conservative_depth */ + +#ifndef GL_AMD_debug_output +#define GL_AMD_debug_output 1 +typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); +#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145 +#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146 +#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147 +#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148 +#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149 +#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A +#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B +#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C +#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D +#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E +#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F +#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150 +typedef void (APIENTRYP PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); +typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void *userParam); +typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDebugMessageEnableAMD (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +GLAPI void APIENTRY glDebugMessageInsertAMD (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); +GLAPI void APIENTRY glDebugMessageCallbackAMD (GLDEBUGPROCAMD callback, void *userParam); +GLAPI GLuint APIENTRY glGetDebugMessageLogAMD (GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message); +#endif +#endif /* GL_AMD_debug_output */ + +#ifndef GL_AMD_depth_clamp_separate +#define GL_AMD_depth_clamp_separate 1 +#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E +#define GL_DEPTH_CLAMP_FAR_AMD 0x901F +#endif /* GL_AMD_depth_clamp_separate */ + +#ifndef GL_AMD_draw_buffers_blend +#define GL_AMD_draw_buffers_blend 1 +typedef void (APIENTRYP PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (APIENTRYP PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncIndexedAMD (GLuint buf, GLenum src, GLenum dst); +GLAPI void APIENTRY glBlendFuncSeparateIndexedAMD (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +GLAPI void APIENTRY glBlendEquationIndexedAMD (GLuint buf, GLenum mode); +GLAPI void APIENTRY glBlendEquationSeparateIndexedAMD (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +#endif +#endif /* GL_AMD_draw_buffers_blend */ + +#ifndef GL_AMD_gcn_shader +#define GL_AMD_gcn_shader 1 +#endif /* GL_AMD_gcn_shader */ + +#ifndef GL_AMD_gpu_shader_int64 +#define GL_AMD_gpu_shader_int64 1 +typedef int64_t GLint64EXT; +#define GL_INT64_NV 0x140E +#define GL_UNSIGNED_INT64_NV 0x140F +#define GL_INT8_NV 0x8FE0 +#define GL_INT8_VEC2_NV 0x8FE1 +#define GL_INT8_VEC3_NV 0x8FE2 +#define GL_INT8_VEC4_NV 0x8FE3 +#define GL_INT16_NV 0x8FE4 +#define GL_INT16_VEC2_NV 0x8FE5 +#define GL_INT16_VEC3_NV 0x8FE6 +#define GL_INT16_VEC4_NV 0x8FE7 +#define GL_INT64_VEC2_NV 0x8FE9 +#define GL_INT64_VEC3_NV 0x8FEA +#define GL_INT64_VEC4_NV 0x8FEB +#define GL_UNSIGNED_INT8_NV 0x8FEC +#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED +#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE +#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF +#define GL_UNSIGNED_INT16_NV 0x8FF0 +#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 +#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 +#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 +#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 +#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 +#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 +#define GL_FLOAT16_NV 0x8FF8 +#define GL_FLOAT16_VEC2_NV 0x8FF9 +#define GL_FLOAT16_VEC3_NV 0x8FFA +#define GL_FLOAT16_VEC4_NV 0x8FFB +typedef void (APIENTRYP PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); +typedef void (APIENTRYP PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); +typedef void (APIENTRYP PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (APIENTRYP PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (APIENTRYP PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); +typedef void (APIENTRYP PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); +typedef void (APIENTRYP PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (APIENTRYP PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (APIENTRYP PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params); +typedef void (APIENTRYP PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT *params); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUniform1i64NV (GLint location, GLint64EXT x); +GLAPI void APIENTRY glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y); +GLAPI void APIENTRY glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +GLAPI void APIENTRY glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +GLAPI void APIENTRY glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glUniform1ui64NV (GLint location, GLuint64EXT x); +GLAPI void APIENTRY glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y); +GLAPI void APIENTRY glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +GLAPI void APIENTRY glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +GLAPI void APIENTRY glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params); +GLAPI void APIENTRY glGetUniformui64vNV (GLuint program, GLint location, GLuint64EXT *params); +GLAPI void APIENTRY glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x); +GLAPI void APIENTRY glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); +GLAPI void APIENTRY glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +GLAPI void APIENTRY glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +GLAPI void APIENTRY glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x); +GLAPI void APIENTRY glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); +GLAPI void APIENTRY glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +GLAPI void APIENTRY glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +GLAPI void APIENTRY glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +#endif +#endif /* GL_AMD_gpu_shader_int64 */ + +#ifndef GL_AMD_interleaved_elements +#define GL_AMD_interleaved_elements 1 +#define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4 +#define GL_VERTEX_ID_SWIZZLE_AMD 0x91A5 +typedef void (APIENTRYP PFNGLVERTEXATTRIBPARAMETERIAMDPROC) (GLuint index, GLenum pname, GLint param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribParameteriAMD (GLuint index, GLenum pname, GLint param); +#endif +#endif /* GL_AMD_interleaved_elements */ + +#ifndef GL_AMD_multi_draw_indirect +#define GL_AMD_multi_draw_indirect 1 +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiDrawArraysIndirectAMD (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride); +GLAPI void APIENTRY glMultiDrawElementsIndirectAMD (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride); +#endif +#endif /* GL_AMD_multi_draw_indirect */ + +#ifndef GL_AMD_name_gen_delete +#define GL_AMD_name_gen_delete 1 +#define GL_DATA_BUFFER_AMD 0x9151 +#define GL_PERFORMANCE_MONITOR_AMD 0x9152 +#define GL_QUERY_OBJECT_AMD 0x9153 +#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154 +#define GL_SAMPLER_OBJECT_AMD 0x9155 +typedef void (APIENTRYP PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint *names); +typedef void (APIENTRYP PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint *names); +typedef GLboolean (APIENTRYP PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenNamesAMD (GLenum identifier, GLuint num, GLuint *names); +GLAPI void APIENTRY glDeleteNamesAMD (GLenum identifier, GLuint num, const GLuint *names); +GLAPI GLboolean APIENTRY glIsNameAMD (GLenum identifier, GLuint name); +#endif +#endif /* GL_AMD_name_gen_delete */ + +#ifndef GL_AMD_occlusion_query_event +#define GL_AMD_occlusion_query_event 1 +#define GL_OCCLUSION_QUERY_EVENT_MASK_AMD 0x874F +#define GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD 0x00000001 +#define GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD 0x00000002 +#define GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD 0x00000004 +#define GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD 0x00000008 +#define GL_QUERY_ALL_EVENT_BITS_AMD 0xFFFFFFFF +typedef void (APIENTRYP PFNGLQUERYOBJECTPARAMETERUIAMDPROC) (GLenum target, GLuint id, GLenum pname, GLuint param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glQueryObjectParameteruiAMD (GLenum target, GLuint id, GLenum pname, GLuint param); +#endif +#endif /* GL_AMD_occlusion_query_event */ + +#ifndef GL_AMD_performance_monitor +#define GL_AMD_performance_monitor 1 +#define GL_COUNTER_TYPE_AMD 0x8BC0 +#define GL_COUNTER_RANGE_AMD 0x8BC1 +#define GL_UNSIGNED_INT64_AMD 0x8BC2 +#define GL_PERCENTAGE_AMD 0x8BC3 +#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 +#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 +#define GL_PERFMON_RESULT_AMD 0x8BC6 +typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); +typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); +typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); +typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); +typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data); +typedef void (APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); +typedef void (APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); +typedef void (APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); +typedef void (APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); +typedef void (APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); +typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); +GLAPI void APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); +GLAPI void APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); +GLAPI void APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); +GLAPI void APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, void *data); +GLAPI void APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); +GLAPI void APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); +GLAPI void APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); +GLAPI void APIENTRY glBeginPerfMonitorAMD (GLuint monitor); +GLAPI void APIENTRY glEndPerfMonitorAMD (GLuint monitor); +GLAPI void APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); +#endif +#endif /* GL_AMD_performance_monitor */ + +#ifndef GL_AMD_pinned_memory +#define GL_AMD_pinned_memory 1 +#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160 +#endif /* GL_AMD_pinned_memory */ + +#ifndef GL_AMD_query_buffer_object +#define GL_AMD_query_buffer_object 1 +#define GL_QUERY_BUFFER_AMD 0x9192 +#define GL_QUERY_BUFFER_BINDING_AMD 0x9193 +#define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194 +#endif /* GL_AMD_query_buffer_object */ + +#ifndef GL_AMD_sample_positions +#define GL_AMD_sample_positions 1 +#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F +typedef void (APIENTRYP PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat *val); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSetMultisamplefvAMD (GLenum pname, GLuint index, const GLfloat *val); +#endif +#endif /* GL_AMD_sample_positions */ + +#ifndef GL_AMD_seamless_cubemap_per_texture +#define GL_AMD_seamless_cubemap_per_texture 1 +#endif /* GL_AMD_seamless_cubemap_per_texture */ + +#ifndef GL_AMD_shader_atomic_counter_ops +#define GL_AMD_shader_atomic_counter_ops 1 +#endif /* GL_AMD_shader_atomic_counter_ops */ + +#ifndef GL_AMD_shader_stencil_export +#define GL_AMD_shader_stencil_export 1 +#endif /* GL_AMD_shader_stencil_export */ + +#ifndef GL_AMD_shader_trinary_minmax +#define GL_AMD_shader_trinary_minmax 1 +#endif /* GL_AMD_shader_trinary_minmax */ + +#ifndef GL_AMD_sparse_texture +#define GL_AMD_sparse_texture 1 +#define GL_VIRTUAL_PAGE_SIZE_X_AMD 0x9195 +#define GL_VIRTUAL_PAGE_SIZE_Y_AMD 0x9196 +#define GL_VIRTUAL_PAGE_SIZE_Z_AMD 0x9197 +#define GL_MAX_SPARSE_TEXTURE_SIZE_AMD 0x9198 +#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD 0x9199 +#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919A +#define GL_MIN_SPARSE_LEVEL_AMD 0x919B +#define GL_MIN_LOD_WARNING_AMD 0x919C +#define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD 0x00000001 +typedef void (APIENTRYP PFNGLTEXSTORAGESPARSEAMDPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); +typedef void (APIENTRYP PFNGLTEXTURESTORAGESPARSEAMDPROC) (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexStorageSparseAMD (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); +GLAPI void APIENTRY glTextureStorageSparseAMD (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); +#endif +#endif /* GL_AMD_sparse_texture */ + +#ifndef GL_AMD_stencil_operation_extended +#define GL_AMD_stencil_operation_extended 1 +#define GL_SET_AMD 0x874A +#define GL_REPLACE_VALUE_AMD 0x874B +#define GL_STENCIL_OP_VALUE_AMD 0x874C +#define GL_STENCIL_BACK_OP_VALUE_AMD 0x874D +typedef void (APIENTRYP PFNGLSTENCILOPVALUEAMDPROC) (GLenum face, GLuint value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStencilOpValueAMD (GLenum face, GLuint value); +#endif +#endif /* GL_AMD_stencil_operation_extended */ + +#ifndef GL_AMD_texture_texture4 +#define GL_AMD_texture_texture4 1 +#endif /* GL_AMD_texture_texture4 */ + +#ifndef GL_AMD_transform_feedback3_lines_triangles +#define GL_AMD_transform_feedback3_lines_triangles 1 +#endif /* GL_AMD_transform_feedback3_lines_triangles */ + +#ifndef GL_AMD_transform_feedback4 +#define GL_AMD_transform_feedback4 1 +#define GL_STREAM_RASTERIZATION_AMD 0x91A0 +#endif /* GL_AMD_transform_feedback4 */ + +#ifndef GL_AMD_vertex_shader_layer +#define GL_AMD_vertex_shader_layer 1 +#endif /* GL_AMD_vertex_shader_layer */ + +#ifndef GL_AMD_vertex_shader_tessellator +#define GL_AMD_vertex_shader_tessellator 1 +#define GL_SAMPLER_BUFFER_AMD 0x9001 +#define GL_INT_SAMPLER_BUFFER_AMD 0x9002 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 +#define GL_TESSELLATION_MODE_AMD 0x9004 +#define GL_TESSELLATION_FACTOR_AMD 0x9005 +#define GL_DISCRETE_AMD 0x9006 +#define GL_CONTINUOUS_AMD 0x9007 +typedef void (APIENTRYP PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); +typedef void (APIENTRYP PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTessellationFactorAMD (GLfloat factor); +GLAPI void APIENTRY glTessellationModeAMD (GLenum mode); +#endif +#endif /* GL_AMD_vertex_shader_tessellator */ + +#ifndef GL_AMD_vertex_shader_viewport_index +#define GL_AMD_vertex_shader_viewport_index 1 +#endif /* GL_AMD_vertex_shader_viewport_index */ + +#ifndef GL_APPLE_aux_depth_stencil +#define GL_APPLE_aux_depth_stencil 1 +#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 +#endif /* GL_APPLE_aux_depth_stencil */ + +#ifndef GL_APPLE_client_storage +#define GL_APPLE_client_storage 1 +#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 +#endif /* GL_APPLE_client_storage */ + +#ifndef GL_APPLE_element_array +#define GL_APPLE_element_array 1 +#define GL_ELEMENT_ARRAY_APPLE 0x8A0C +#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D +#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E +typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void *pointer); +typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glElementPointerAPPLE (GLenum type, const void *pointer); +GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum mode, GLint first, GLsizei count); +GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); +#endif +#endif /* GL_APPLE_element_array */ + +#ifndef GL_APPLE_fence +#define GL_APPLE_fence 1 +#define GL_DRAW_PIXELS_APPLE 0x8A0A +#define GL_FENCE_APPLE 0x8A0B +typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences); +typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences); +typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence); +typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); +typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenFencesAPPLE (GLsizei n, GLuint *fences); +GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei n, const GLuint *fences); +GLAPI void APIENTRY glSetFenceAPPLE (GLuint fence); +GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint fence); +GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint fence); +GLAPI void APIENTRY glFinishFenceAPPLE (GLuint fence); +GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum object, GLuint name); +GLAPI void APIENTRY glFinishObjectAPPLE (GLenum object, GLint name); +#endif +#endif /* GL_APPLE_fence */ + +#ifndef GL_APPLE_float_pixels +#define GL_APPLE_float_pixels 1 +#define GL_HALF_APPLE 0x140B +#define GL_RGBA_FLOAT32_APPLE 0x8814 +#define GL_RGB_FLOAT32_APPLE 0x8815 +#define GL_ALPHA_FLOAT32_APPLE 0x8816 +#define GL_INTENSITY_FLOAT32_APPLE 0x8817 +#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 +#define GL_RGBA_FLOAT16_APPLE 0x881A +#define GL_RGB_FLOAT16_APPLE 0x881B +#define GL_ALPHA_FLOAT16_APPLE 0x881C +#define GL_INTENSITY_FLOAT16_APPLE 0x881D +#define GL_LUMINANCE_FLOAT16_APPLE 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F +#define GL_COLOR_FLOAT_APPLE 0x8A0F +#endif /* GL_APPLE_float_pixels */ + +#ifndef GL_APPLE_flush_buffer_range +#define GL_APPLE_flush_buffer_range 1 +#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 +#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 +typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum target, GLintptr offset, GLsizeiptr size); +#endif +#endif /* GL_APPLE_flush_buffer_range */ + +#ifndef GL_APPLE_object_purgeable +#define GL_APPLE_object_purgeable 1 +#define GL_BUFFER_OBJECT_APPLE 0x85B3 +#define GL_RELEASED_APPLE 0x8A19 +#define GL_VOLATILE_APPLE 0x8A1A +#define GL_RETAINED_APPLE 0x8A1B +#define GL_UNDEFINED_APPLE 0x8A1C +#define GL_PURGEABLE_APPLE 0x8A1D +typedef GLenum (APIENTRYP PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef GLenum (APIENTRYP PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLenum APIENTRY glObjectPurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); +GLAPI GLenum APIENTRY glObjectUnpurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); +GLAPI void APIENTRY glGetObjectParameterivAPPLE (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#endif +#endif /* GL_APPLE_object_purgeable */ + +#ifndef GL_APPLE_rgb_422 +#define GL_APPLE_rgb_422 1 +#define GL_RGB_422_APPLE 0x8A1F +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#define GL_RGB_RAW_422_APPLE 0x8A51 +#endif /* GL_APPLE_rgb_422 */ + +#ifndef GL_APPLE_row_bytes +#define GL_APPLE_row_bytes 1 +#define GL_PACK_ROW_BYTES_APPLE 0x8A15 +#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 +#endif /* GL_APPLE_row_bytes */ + +#ifndef GL_APPLE_specular_vector +#define GL_APPLE_specular_vector 1 +#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 +#endif /* GL_APPLE_specular_vector */ + +#ifndef GL_APPLE_texture_range +#define GL_APPLE_texture_range 1 +#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 +#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 +#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF +typedef void (APIENTRYP PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const void *pointer); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, void **params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureRangeAPPLE (GLenum target, GLsizei length, const void *pointer); +GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, void **params); +#endif +#endif /* GL_APPLE_texture_range */ + +#ifndef GL_APPLE_transform_hint +#define GL_APPLE_transform_hint 1 +#define GL_TRANSFORM_HINT_APPLE 0x85B1 +#endif /* GL_APPLE_transform_hint */ + +#ifndef GL_APPLE_vertex_array_object +#define GL_APPLE_vertex_array_object 1 +#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 +typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); +typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays); +typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays); +typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint array); +GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei n, const GLuint *arrays); +GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei n, GLuint *arrays); +GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint array); +#endif +#endif /* GL_APPLE_vertex_array_object */ + +#ifndef GL_APPLE_vertex_array_range +#define GL_APPLE_vertex_array_range 1 +#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E +#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F +#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 +#define GL_STORAGE_CLIENT_APPLE 0x85B4 +typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer); +typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer); +typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei length, void *pointer); +GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei length, void *pointer); +GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum pname, GLint param); +#endif +#endif /* GL_APPLE_vertex_array_range */ + +#ifndef GL_APPLE_vertex_program_evaluators +#define GL_APPLE_vertex_program_evaluators 1 +#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 +#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 +#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 +#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 +#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 +#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 +#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 +#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 +#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 +#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); +typedef GLboolean (APIENTRYP PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glEnableVertexAttribAPPLE (GLuint index, GLenum pname); +GLAPI void APIENTRY glDisableVertexAttribAPPLE (GLuint index, GLenum pname); +GLAPI GLboolean APIENTRY glIsVertexAttribEnabledAPPLE (GLuint index, GLenum pname); +GLAPI void APIENTRY glMapVertexAttrib1dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +GLAPI void APIENTRY glMapVertexAttrib1fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +GLAPI void APIENTRY glMapVertexAttrib2dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +GLAPI void APIENTRY glMapVertexAttrib2fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +#endif +#endif /* GL_APPLE_vertex_program_evaluators */ + +#ifndef GL_APPLE_ycbcr_422 +#define GL_APPLE_ycbcr_422 1 +#define GL_YCBCR_422_APPLE 0x85B9 +#endif /* GL_APPLE_ycbcr_422 */ + +#ifndef GL_ATI_draw_buffers +#define GL_ATI_draw_buffers 1 +#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 +#define GL_DRAW_BUFFER0_ATI 0x8825 +#define GL_DRAW_BUFFER1_ATI 0x8826 +#define GL_DRAW_BUFFER2_ATI 0x8827 +#define GL_DRAW_BUFFER3_ATI 0x8828 +#define GL_DRAW_BUFFER4_ATI 0x8829 +#define GL_DRAW_BUFFER5_ATI 0x882A +#define GL_DRAW_BUFFER6_ATI 0x882B +#define GL_DRAW_BUFFER7_ATI 0x882C +#define GL_DRAW_BUFFER8_ATI 0x882D +#define GL_DRAW_BUFFER9_ATI 0x882E +#define GL_DRAW_BUFFER10_ATI 0x882F +#define GL_DRAW_BUFFER11_ATI 0x8830 +#define GL_DRAW_BUFFER12_ATI 0x8831 +#define GL_DRAW_BUFFER13_ATI 0x8832 +#define GL_DRAW_BUFFER14_ATI 0x8833 +#define GL_DRAW_BUFFER15_ATI 0x8834 +typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawBuffersATI (GLsizei n, const GLenum *bufs); +#endif +#endif /* GL_ATI_draw_buffers */ + +#ifndef GL_ATI_element_array +#define GL_ATI_element_array 1 +#define GL_ELEMENT_ARRAY_ATI 0x8768 +#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 +#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A +typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const void *pointer); +typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glElementPointerATI (GLenum type, const void *pointer); +GLAPI void APIENTRY glDrawElementArrayATI (GLenum mode, GLsizei count); +GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum mode, GLuint start, GLuint end, GLsizei count); +#endif +#endif /* GL_ATI_element_array */ + +#ifndef GL_ATI_envmap_bumpmap +#define GL_ATI_envmap_bumpmap 1 +#define GL_BUMP_ROT_MATRIX_ATI 0x8775 +#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 +#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 +#define GL_BUMP_TEX_UNITS_ATI 0x8778 +#define GL_DUDV_ATI 0x8779 +#define GL_DU8DV8_ATI 0x877A +#define GL_BUMP_ENVMAP_ATI 0x877B +#define GL_BUMP_TARGET_ATI 0x877C +typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param); +typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); +typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexBumpParameterivATI (GLenum pname, const GLint *param); +GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum pname, const GLfloat *param); +GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum pname, GLint *param); +GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum pname, GLfloat *param); +#endif +#endif /* GL_ATI_envmap_bumpmap */ + +#ifndef GL_ATI_fragment_shader +#define GL_ATI_fragment_shader 1 +#define GL_FRAGMENT_SHADER_ATI 0x8920 +#define GL_REG_0_ATI 0x8921 +#define GL_REG_1_ATI 0x8922 +#define GL_REG_2_ATI 0x8923 +#define GL_REG_3_ATI 0x8924 +#define GL_REG_4_ATI 0x8925 +#define GL_REG_5_ATI 0x8926 +#define GL_REG_6_ATI 0x8927 +#define GL_REG_7_ATI 0x8928 +#define GL_REG_8_ATI 0x8929 +#define GL_REG_9_ATI 0x892A +#define GL_REG_10_ATI 0x892B +#define GL_REG_11_ATI 0x892C +#define GL_REG_12_ATI 0x892D +#define GL_REG_13_ATI 0x892E +#define GL_REG_14_ATI 0x892F +#define GL_REG_15_ATI 0x8930 +#define GL_REG_16_ATI 0x8931 +#define GL_REG_17_ATI 0x8932 +#define GL_REG_18_ATI 0x8933 +#define GL_REG_19_ATI 0x8934 +#define GL_REG_20_ATI 0x8935 +#define GL_REG_21_ATI 0x8936 +#define GL_REG_22_ATI 0x8937 +#define GL_REG_23_ATI 0x8938 +#define GL_REG_24_ATI 0x8939 +#define GL_REG_25_ATI 0x893A +#define GL_REG_26_ATI 0x893B +#define GL_REG_27_ATI 0x893C +#define GL_REG_28_ATI 0x893D +#define GL_REG_29_ATI 0x893E +#define GL_REG_30_ATI 0x893F +#define GL_REG_31_ATI 0x8940 +#define GL_CON_0_ATI 0x8941 +#define GL_CON_1_ATI 0x8942 +#define GL_CON_2_ATI 0x8943 +#define GL_CON_3_ATI 0x8944 +#define GL_CON_4_ATI 0x8945 +#define GL_CON_5_ATI 0x8946 +#define GL_CON_6_ATI 0x8947 +#define GL_CON_7_ATI 0x8948 +#define GL_CON_8_ATI 0x8949 +#define GL_CON_9_ATI 0x894A +#define GL_CON_10_ATI 0x894B +#define GL_CON_11_ATI 0x894C +#define GL_CON_12_ATI 0x894D +#define GL_CON_13_ATI 0x894E +#define GL_CON_14_ATI 0x894F +#define GL_CON_15_ATI 0x8950 +#define GL_CON_16_ATI 0x8951 +#define GL_CON_17_ATI 0x8952 +#define GL_CON_18_ATI 0x8953 +#define GL_CON_19_ATI 0x8954 +#define GL_CON_20_ATI 0x8955 +#define GL_CON_21_ATI 0x8956 +#define GL_CON_22_ATI 0x8957 +#define GL_CON_23_ATI 0x8958 +#define GL_CON_24_ATI 0x8959 +#define GL_CON_25_ATI 0x895A +#define GL_CON_26_ATI 0x895B +#define GL_CON_27_ATI 0x895C +#define GL_CON_28_ATI 0x895D +#define GL_CON_29_ATI 0x895E +#define GL_CON_30_ATI 0x895F +#define GL_CON_31_ATI 0x8960 +#define GL_MOV_ATI 0x8961 +#define GL_ADD_ATI 0x8963 +#define GL_MUL_ATI 0x8964 +#define GL_SUB_ATI 0x8965 +#define GL_DOT3_ATI 0x8966 +#define GL_DOT4_ATI 0x8967 +#define GL_MAD_ATI 0x8968 +#define GL_LERP_ATI 0x8969 +#define GL_CND_ATI 0x896A +#define GL_CND0_ATI 0x896B +#define GL_DOT2_ADD_ATI 0x896C +#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D +#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E +#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F +#define GL_NUM_PASSES_ATI 0x8970 +#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 +#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 +#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 +#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 +#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 +#define GL_SWIZZLE_STR_ATI 0x8976 +#define GL_SWIZZLE_STQ_ATI 0x8977 +#define GL_SWIZZLE_STR_DR_ATI 0x8978 +#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 +#define GL_SWIZZLE_STRQ_ATI 0x897A +#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B +#define GL_RED_BIT_ATI 0x00000001 +#define GL_GREEN_BIT_ATI 0x00000002 +#define GL_BLUE_BIT_ATI 0x00000004 +#define GL_2X_BIT_ATI 0x00000001 +#define GL_4X_BIT_ATI 0x00000002 +#define GL_8X_BIT_ATI 0x00000004 +#define GL_HALF_BIT_ATI 0x00000008 +#define GL_QUARTER_BIT_ATI 0x00000010 +#define GL_EIGHTH_BIT_ATI 0x00000020 +#define GL_SATURATE_BIT_ATI 0x00000040 +#define GL_COMP_BIT_ATI 0x00000002 +#define GL_NEGATE_BIT_ATI 0x00000004 +#define GL_BIAS_BIT_ATI 0x00000008 +typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); +typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void); +typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void); +typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); +typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); +typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint range); +GLAPI void APIENTRY glBindFragmentShaderATI (GLuint id); +GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint id); +GLAPI void APIENTRY glBeginFragmentShaderATI (void); +GLAPI void APIENTRY glEndFragmentShaderATI (void); +GLAPI void APIENTRY glPassTexCoordATI (GLuint dst, GLuint coord, GLenum swizzle); +GLAPI void APIENTRY glSampleMapATI (GLuint dst, GLuint interp, GLenum swizzle); +GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint dst, const GLfloat *value); +#endif +#endif /* GL_ATI_fragment_shader */ + +#ifndef GL_ATI_map_object_buffer +#define GL_ATI_map_object_buffer 1 +typedef void *(APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void *APIENTRY glMapObjectBufferATI (GLuint buffer); +GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint buffer); +#endif +#endif /* GL_ATI_map_object_buffer */ + +#ifndef GL_ATI_meminfo +#define GL_ATI_meminfo 1 +#define GL_VBO_FREE_MEMORY_ATI 0x87FB +#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC +#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD +#endif /* GL_ATI_meminfo */ + +#ifndef GL_ATI_pixel_format_float +#define GL_ATI_pixel_format_float 1 +#define GL_RGBA_FLOAT_MODE_ATI 0x8820 +#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 +#endif /* GL_ATI_pixel_format_float */ + +#ifndef GL_ATI_pn_triangles +#define GL_ATI_pn_triangles 1 +#define GL_PN_TRIANGLES_ATI 0x87F0 +#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 +#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 +#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 +#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 +#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 +#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 +#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 +#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 +typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPNTrianglesiATI (GLenum pname, GLint param); +GLAPI void APIENTRY glPNTrianglesfATI (GLenum pname, GLfloat param); +#endif +#endif /* GL_ATI_pn_triangles */ + +#ifndef GL_ATI_separate_stencil +#define GL_ATI_separate_stencil 1 +#define GL_STENCIL_BACK_FUNC_ATI 0x8800 +#define GL_STENCIL_BACK_FAIL_ATI 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 +typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStencilOpSeparateATI (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +#endif +#endif /* GL_ATI_separate_stencil */ + +#ifndef GL_ATI_text_fragment_shader +#define GL_ATI_text_fragment_shader 1 +#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 +#endif /* GL_ATI_text_fragment_shader */ + +#ifndef GL_ATI_texture_env_combine3 +#define GL_ATI_texture_env_combine3 1 +#define GL_MODULATE_ADD_ATI 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 +#define GL_MODULATE_SUBTRACT_ATI 0x8746 +#endif /* GL_ATI_texture_env_combine3 */ + +#ifndef GL_ATI_texture_float +#define GL_ATI_texture_float 1 +#define GL_RGBA_FLOAT32_ATI 0x8814 +#define GL_RGB_FLOAT32_ATI 0x8815 +#define GL_ALPHA_FLOAT32_ATI 0x8816 +#define GL_INTENSITY_FLOAT32_ATI 0x8817 +#define GL_LUMINANCE_FLOAT32_ATI 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 +#define GL_RGBA_FLOAT16_ATI 0x881A +#define GL_RGB_FLOAT16_ATI 0x881B +#define GL_ALPHA_FLOAT16_ATI 0x881C +#define GL_INTENSITY_FLOAT16_ATI 0x881D +#define GL_LUMINANCE_FLOAT16_ATI 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F +#endif /* GL_ATI_texture_float */ + +#ifndef GL_ATI_texture_mirror_once +#define GL_ATI_texture_mirror_once 1 +#define GL_MIRROR_CLAMP_ATI 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 +#endif /* GL_ATI_texture_mirror_once */ + +#ifndef GL_ATI_vertex_array_object +#define GL_ATI_vertex_array_object 1 +#define GL_STATIC_ATI 0x8760 +#define GL_DYNAMIC_ATI 0x8761 +#define GL_PRESERVE_ATI 0x8762 +#define GL_DISCARD_ATI 0x8763 +#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 +#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 +#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 +#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 +typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const void *pointer, GLenum usage); +typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve); +typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei size, const void *pointer, GLenum usage); +GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint buffer); +GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve); +GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint buffer, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetObjectBufferivATI (GLuint buffer, GLenum pname, GLint *params); +GLAPI void APIENTRY glFreeObjectBufferATI (GLuint buffer); +GLAPI void APIENTRY glArrayObjectATI (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum array, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetArrayObjectivATI (GLenum array, GLenum pname, GLint *params); +GLAPI void APIENTRY glVariantArrayObjectATI (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint id, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint id, GLenum pname, GLint *params); +#endif +#endif /* GL_ATI_vertex_array_object */ + +#ifndef GL_ATI_vertex_attrib_array_object +#define GL_ATI_vertex_attrib_array_object 1 +typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); +GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint index, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint index, GLenum pname, GLint *params); +#endif +#endif /* GL_ATI_vertex_attrib_array_object */ + +#ifndef GL_ATI_vertex_streams +#define GL_ATI_vertex_streams 1 +#define GL_MAX_VERTEX_STREAMS_ATI 0x876B +#define GL_VERTEX_STREAM0_ATI 0x876C +#define GL_VERTEX_STREAM1_ATI 0x876D +#define GL_VERTEX_STREAM2_ATI 0x876E +#define GL_VERTEX_STREAM3_ATI 0x876F +#define GL_VERTEX_STREAM4_ATI 0x8770 +#define GL_VERTEX_STREAM5_ATI 0x8771 +#define GL_VERTEX_STREAM6_ATI 0x8772 +#define GL_VERTEX_STREAM7_ATI 0x8773 +#define GL_VERTEX_SOURCE_ATI 0x8774 +typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); +typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexStream1sATI (GLenum stream, GLshort x); +GLAPI void APIENTRY glVertexStream1svATI (GLenum stream, const GLshort *coords); +GLAPI void APIENTRY glVertexStream1iATI (GLenum stream, GLint x); +GLAPI void APIENTRY glVertexStream1ivATI (GLenum stream, const GLint *coords); +GLAPI void APIENTRY glVertexStream1fATI (GLenum stream, GLfloat x); +GLAPI void APIENTRY glVertexStream1fvATI (GLenum stream, const GLfloat *coords); +GLAPI void APIENTRY glVertexStream1dATI (GLenum stream, GLdouble x); +GLAPI void APIENTRY glVertexStream1dvATI (GLenum stream, const GLdouble *coords); +GLAPI void APIENTRY glVertexStream2sATI (GLenum stream, GLshort x, GLshort y); +GLAPI void APIENTRY glVertexStream2svATI (GLenum stream, const GLshort *coords); +GLAPI void APIENTRY glVertexStream2iATI (GLenum stream, GLint x, GLint y); +GLAPI void APIENTRY glVertexStream2ivATI (GLenum stream, const GLint *coords); +GLAPI void APIENTRY glVertexStream2fATI (GLenum stream, GLfloat x, GLfloat y); +GLAPI void APIENTRY glVertexStream2fvATI (GLenum stream, const GLfloat *coords); +GLAPI void APIENTRY glVertexStream2dATI (GLenum stream, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexStream2dvATI (GLenum stream, const GLdouble *coords); +GLAPI void APIENTRY glVertexStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glVertexStream3svATI (GLenum stream, const GLshort *coords); +GLAPI void APIENTRY glVertexStream3iATI (GLenum stream, GLint x, GLint y, GLint z); +GLAPI void APIENTRY glVertexStream3ivATI (GLenum stream, const GLint *coords); +GLAPI void APIENTRY glVertexStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glVertexStream3fvATI (GLenum stream, const GLfloat *coords); +GLAPI void APIENTRY glVertexStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexStream3dvATI (GLenum stream, const GLdouble *coords); +GLAPI void APIENTRY glVertexStream4sATI (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void APIENTRY glVertexStream4svATI (GLenum stream, const GLshort *coords); +GLAPI void APIENTRY glVertexStream4iATI (GLenum stream, GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glVertexStream4ivATI (GLenum stream, const GLint *coords); +GLAPI void APIENTRY glVertexStream4fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glVertexStream4fvATI (GLenum stream, const GLfloat *coords); +GLAPI void APIENTRY glVertexStream4dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexStream4dvATI (GLenum stream, const GLdouble *coords); +GLAPI void APIENTRY glNormalStream3bATI (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); +GLAPI void APIENTRY glNormalStream3bvATI (GLenum stream, const GLbyte *coords); +GLAPI void APIENTRY glNormalStream3sATI (GLenum stream, GLshort nx, GLshort ny, GLshort nz); +GLAPI void APIENTRY glNormalStream3svATI (GLenum stream, const GLshort *coords); +GLAPI void APIENTRY glNormalStream3iATI (GLenum stream, GLint nx, GLint ny, GLint nz); +GLAPI void APIENTRY glNormalStream3ivATI (GLenum stream, const GLint *coords); +GLAPI void APIENTRY glNormalStream3fATI (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); +GLAPI void APIENTRY glNormalStream3fvATI (GLenum stream, const GLfloat *coords); +GLAPI void APIENTRY glNormalStream3dATI (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); +GLAPI void APIENTRY glNormalStream3dvATI (GLenum stream, const GLdouble *coords); +GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum stream); +GLAPI void APIENTRY glVertexBlendEnviATI (GLenum pname, GLint param); +GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum pname, GLfloat param); +#endif +#endif /* GL_ATI_vertex_streams */ + +#ifndef GL_EXT_422_pixels +#define GL_EXT_422_pixels 1 +#define GL_422_EXT 0x80CC +#define GL_422_REV_EXT 0x80CD +#define GL_422_AVERAGE_EXT 0x80CE +#define GL_422_REV_AVERAGE_EXT 0x80CF +#endif /* GL_EXT_422_pixels */ + +#ifndef GL_EXT_abgr +#define GL_EXT_abgr 1 +#define GL_ABGR_EXT 0x8000 +#endif /* GL_EXT_abgr */ + +#ifndef GL_EXT_bgra +#define GL_EXT_bgra 1 +#define GL_BGR_EXT 0x80E0 +#define GL_BGRA_EXT 0x80E1 +#endif /* GL_EXT_bgra */ + +#ifndef GL_EXT_bindable_uniform +#define GL_EXT_bindable_uniform 1 +#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 +#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 +#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 +#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED +#define GL_UNIFORM_BUFFER_EXT 0x8DEE +#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF +typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); +typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); +typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUniformBufferEXT (GLuint program, GLint location, GLuint buffer); +GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint program, GLint location); +GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint program, GLint location); +#endif +#endif /* GL_EXT_bindable_uniform */ + +#ifndef GL_EXT_blend_color +#define GL_EXT_blend_color 1 +#define GL_CONSTANT_COLOR_EXT 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 +#define GL_CONSTANT_ALPHA_EXT 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 +#define GL_BLEND_COLOR_EXT 0x8005 +typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendColorEXT (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +#endif +#endif /* GL_EXT_blend_color */ + +#ifndef GL_EXT_blend_equation_separate +#define GL_EXT_blend_equation_separate 1 +#define GL_BLEND_EQUATION_RGB_EXT 0x8009 +#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum modeRGB, GLenum modeAlpha); +#endif +#endif /* GL_EXT_blend_equation_separate */ + +#ifndef GL_EXT_blend_func_separate +#define GL_EXT_blend_func_separate 1 +#define GL_BLEND_DST_RGB_EXT 0x80C8 +#define GL_BLEND_SRC_RGB_EXT 0x80C9 +#define GL_BLEND_DST_ALPHA_EXT 0x80CA +#define GL_BLEND_SRC_ALPHA_EXT 0x80CB +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif +#endif /* GL_EXT_blend_func_separate */ + +#ifndef GL_EXT_blend_logic_op +#define GL_EXT_blend_logic_op 1 +#endif /* GL_EXT_blend_logic_op */ + +#ifndef GL_EXT_blend_minmax +#define GL_EXT_blend_minmax 1 +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#define GL_FUNC_ADD_EXT 0x8006 +#define GL_BLEND_EQUATION_EXT 0x8009 +typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationEXT (GLenum mode); +#endif +#endif /* GL_EXT_blend_minmax */ + +#ifndef GL_EXT_blend_subtract +#define GL_EXT_blend_subtract 1 +#define GL_FUNC_SUBTRACT_EXT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B +#endif /* GL_EXT_blend_subtract */ + +#ifndef GL_EXT_clip_volume_hint +#define GL_EXT_clip_volume_hint 1 +#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 +#endif /* GL_EXT_clip_volume_hint */ + +#ifndef GL_EXT_cmyka +#define GL_EXT_cmyka 1 +#define GL_CMYK_EXT 0x800C +#define GL_CMYKA_EXT 0x800D +#define GL_PACK_CMYK_HINT_EXT 0x800E +#define GL_UNPACK_CMYK_HINT_EXT 0x800F +#endif /* GL_EXT_cmyka */ + +#ifndef GL_EXT_color_subtable +#define GL_EXT_color_subtable 1 +typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorSubTableEXT (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +#endif +#endif /* GL_EXT_color_subtable */ + +#ifndef GL_EXT_compiled_vertex_array +#define GL_EXT_compiled_vertex_array 1 +#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 +#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 +typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glLockArraysEXT (GLint first, GLsizei count); +GLAPI void APIENTRY glUnlockArraysEXT (void); +#endif +#endif /* GL_EXT_compiled_vertex_array */ + +#ifndef GL_EXT_convolution +#define GL_EXT_convolution 1 +#define GL_CONVOLUTION_1D_EXT 0x8010 +#define GL_CONVOLUTION_2D_EXT 0x8011 +#define GL_SEPARABLE_2D_EXT 0x8012 +#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 +#define GL_REDUCE_EXT 0x8016 +#define GL_CONVOLUTION_FORMAT_EXT 0x8017 +#define GL_CONVOLUTION_WIDTH_EXT 0x8018 +#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *image); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); +typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); +GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); +GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum target, GLenum pname, GLfloat params); +GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum target, GLenum pname, GLint params); +GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum target, GLenum format, GLenum type, void *image); +GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); +GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); +#endif +#endif /* GL_EXT_convolution */ + +#ifndef GL_EXT_coordinate_frame +#define GL_EXT_coordinate_frame 1 +#define GL_TANGENT_ARRAY_EXT 0x8439 +#define GL_BINORMAL_ARRAY_EXT 0x843A +#define GL_CURRENT_TANGENT_EXT 0x843B +#define GL_CURRENT_BINORMAL_EXT 0x843C +#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E +#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F +#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 +#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 +#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 +#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 +#define GL_MAP1_TANGENT_EXT 0x8444 +#define GL_MAP2_TANGENT_EXT 0x8445 +#define GL_MAP1_BINORMAL_EXT 0x8446 +#define GL_MAP2_BINORMAL_EXT 0x8447 +typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz); +typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz); +typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz); +typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz); +typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz); +typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz); +typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz); +typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz); +typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz); +typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz); +typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTangent3bEXT (GLbyte tx, GLbyte ty, GLbyte tz); +GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *v); +GLAPI void APIENTRY glTangent3dEXT (GLdouble tx, GLdouble ty, GLdouble tz); +GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *v); +GLAPI void APIENTRY glTangent3fEXT (GLfloat tx, GLfloat ty, GLfloat tz); +GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *v); +GLAPI void APIENTRY glTangent3iEXT (GLint tx, GLint ty, GLint tz); +GLAPI void APIENTRY glTangent3ivEXT (const GLint *v); +GLAPI void APIENTRY glTangent3sEXT (GLshort tx, GLshort ty, GLshort tz); +GLAPI void APIENTRY glTangent3svEXT (const GLshort *v); +GLAPI void APIENTRY glBinormal3bEXT (GLbyte bx, GLbyte by, GLbyte bz); +GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *v); +GLAPI void APIENTRY glBinormal3dEXT (GLdouble bx, GLdouble by, GLdouble bz); +GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *v); +GLAPI void APIENTRY glBinormal3fEXT (GLfloat bx, GLfloat by, GLfloat bz); +GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *v); +GLAPI void APIENTRY glBinormal3iEXT (GLint bx, GLint by, GLint bz); +GLAPI void APIENTRY glBinormal3ivEXT (const GLint *v); +GLAPI void APIENTRY glBinormal3sEXT (GLshort bx, GLshort by, GLshort bz); +GLAPI void APIENTRY glBinormal3svEXT (const GLshort *v); +GLAPI void APIENTRY glTangentPointerEXT (GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glBinormalPointerEXT (GLenum type, GLsizei stride, const void *pointer); +#endif +#endif /* GL_EXT_coordinate_frame */ + +#ifndef GL_EXT_copy_texture +#define GL_EXT_copy_texture 1 +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif +#endif /* GL_EXT_copy_texture */ + +#ifndef GL_EXT_cull_vertex +#define GL_EXT_cull_vertex 1 +#define GL_CULL_VERTEX_EXT 0x81AA +#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB +#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC +typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCullParameterdvEXT (GLenum pname, GLdouble *params); +GLAPI void APIENTRY glCullParameterfvEXT (GLenum pname, GLfloat *params); +#endif +#endif /* GL_EXT_cull_vertex */ + +#ifndef GL_EXT_debug_label +#define GL_EXT_debug_label 1 +#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F +#define GL_PROGRAM_OBJECT_EXT 0x8B40 +#define GL_SHADER_OBJECT_EXT 0x8B48 +#define GL_BUFFER_OBJECT_EXT 0x9151 +#define GL_QUERY_OBJECT_EXT 0x9153 +#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 +typedef void (APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); +typedef void (APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); +GLAPI void APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif +#endif /* GL_EXT_debug_label */ + +#ifndef GL_EXT_debug_marker +#define GL_EXT_debug_marker 1 +typedef void (APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); +typedef void (APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); +typedef void (APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); +GLAPI void APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); +GLAPI void APIENTRY glPopGroupMarkerEXT (void); +#endif +#endif /* GL_EXT_debug_marker */ + +#ifndef GL_EXT_depth_bounds_test +#define GL_EXT_depth_bounds_test 1 +#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 +#define GL_DEPTH_BOUNDS_EXT 0x8891 +typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDepthBoundsEXT (GLclampd zmin, GLclampd zmax); +#endif +#endif /* GL_EXT_depth_bounds_test */ + +#ifndef GL_EXT_direct_state_access +#define GL_EXT_direct_state_access 1 +#define GL_PROGRAM_MATRIX_EXT 0x8E2D +#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E +#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F +typedef void (APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef void (APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef void (APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); +typedef void (APIENTRYP PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); +typedef void (APIENTRYP PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); +typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); +typedef void (APIENTRYP PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat *data); +typedef void (APIENTRYP PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble *data); +typedef void (APIENTRYP PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, void **data); +typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data); +typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint lod, void *img); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint lod, void *img); +typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); +typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void **params); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); +typedef void (APIENTRYP PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint *params); +typedef void (APIENTRYP PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); +typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); +typedef void (APIENTRYP PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, void **params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void *string); +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); +typedef void (APIENTRYP PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); +typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs); +typedef void (APIENTRYP PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void (APIENTRYP PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); +typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); +typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); +typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); +typedef void (APIENTRYP PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint *param); +typedef void (APIENTRYP PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, void **param); +typedef void (APIENTRYP PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint *param); +typedef void (APIENTRYP PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, void **param); +typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); +typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); +typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC) (GLuint framebuffer, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLTEXTUREBUFFERRANGEEXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC) (GLuint vaobj, GLuint index, GLuint divisor); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMatrixLoadfEXT (GLenum mode, const GLfloat *m); +GLAPI void APIENTRY glMatrixLoaddEXT (GLenum mode, const GLdouble *m); +GLAPI void APIENTRY glMatrixMultfEXT (GLenum mode, const GLfloat *m); +GLAPI void APIENTRY glMatrixMultdEXT (GLenum mode, const GLdouble *m); +GLAPI void APIENTRY glMatrixLoadIdentityEXT (GLenum mode); +GLAPI void APIENTRY glMatrixRotatefEXT (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glMatrixRotatedEXT (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glMatrixScalefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glMatrixScaledEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glMatrixTranslatefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glMatrixTranslatedEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glMatrixFrustumEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI void APIENTRY glMatrixOrthoEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI void APIENTRY glMatrixPopEXT (GLenum mode); +GLAPI void APIENTRY glMatrixPushEXT (GLenum mode); +GLAPI void APIENTRY glClientAttribDefaultEXT (GLbitfield mask); +GLAPI void APIENTRY glPushClientAttribDefaultEXT (GLbitfield mask); +GLAPI void APIENTRY glTextureParameterfEXT (GLuint texture, GLenum target, GLenum pname, GLfloat param); +GLAPI void APIENTRY glTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glTextureParameteriEXT (GLuint texture, GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glCopyTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +GLAPI void APIENTRY glCopyTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI void APIENTRY glCopyTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glCopyTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetTextureImageEXT (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +GLAPI void APIENTRY glGetTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTextureLevelParameterfvEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetTextureLevelParameterivEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); +GLAPI void APIENTRY glTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glCopyTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glBindMultiTextureEXT (GLenum texunit, GLenum target, GLuint texture); +GLAPI void APIENTRY glMultiTexCoordPointerEXT (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glMultiTexEnvfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +GLAPI void APIENTRY glMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glMultiTexEnviEXT (GLenum texunit, GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glMultiTexGendEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); +GLAPI void APIENTRY glMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); +GLAPI void APIENTRY glMultiTexGenfEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); +GLAPI void APIENTRY glMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glMultiTexGeniEXT (GLenum texunit, GLenum coord, GLenum pname, GLint param); +GLAPI void APIENTRY glMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); +GLAPI void APIENTRY glGetMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); +GLAPI void APIENTRY glGetMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, GLint *params); +GLAPI void APIENTRY glMultiTexParameteriEXT (GLenum texunit, GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glMultiTexParameterfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +GLAPI void APIENTRY glMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glCopyMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +GLAPI void APIENTRY glCopyMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI void APIENTRY glCopyMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glCopyMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetMultiTexImageEXT (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +GLAPI void APIENTRY glGetMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetMultiTexLevelParameterfvEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetMultiTexLevelParameterivEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); +GLAPI void APIENTRY glMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glCopyMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glEnableClientStateIndexedEXT (GLenum array, GLuint index); +GLAPI void APIENTRY glDisableClientStateIndexedEXT (GLenum array, GLuint index); +GLAPI void APIENTRY glGetFloatIndexedvEXT (GLenum target, GLuint index, GLfloat *data); +GLAPI void APIENTRY glGetDoubleIndexedvEXT (GLenum target, GLuint index, GLdouble *data); +GLAPI void APIENTRY glGetPointerIndexedvEXT (GLenum target, GLuint index, void **data); +GLAPI void APIENTRY glEnableIndexedEXT (GLenum target, GLuint index); +GLAPI void APIENTRY glDisableIndexedEXT (GLenum target, GLuint index); +GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum target, GLuint index); +GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum target, GLuint index, GLint *data); +GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum target, GLuint index, GLboolean *data); +GLAPI void APIENTRY glCompressedTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glGetCompressedTextureImageEXT (GLuint texture, GLenum target, GLint lod, void *img); +GLAPI void APIENTRY glCompressedMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glGetCompressedMultiTexImageEXT (GLenum texunit, GLenum target, GLint lod, void *img); +GLAPI void APIENTRY glMatrixLoadTransposefEXT (GLenum mode, const GLfloat *m); +GLAPI void APIENTRY glMatrixLoadTransposedEXT (GLenum mode, const GLdouble *m); +GLAPI void APIENTRY glMatrixMultTransposefEXT (GLenum mode, const GLfloat *m); +GLAPI void APIENTRY glMatrixMultTransposedEXT (GLenum mode, const GLdouble *m); +GLAPI void APIENTRY glNamedBufferDataEXT (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); +GLAPI void APIENTRY glNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +GLAPI void *APIENTRY glMapNamedBufferEXT (GLuint buffer, GLenum access); +GLAPI GLboolean APIENTRY glUnmapNamedBufferEXT (GLuint buffer); +GLAPI void APIENTRY glGetNamedBufferParameterivEXT (GLuint buffer, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetNamedBufferPointervEXT (GLuint buffer, GLenum pname, void **params); +GLAPI void APIENTRY glGetNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); +GLAPI void APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat v0); +GLAPI void APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1); +GLAPI void APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI void APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI void APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint v0); +GLAPI void APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint v0, GLint v1); +GLAPI void APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +GLAPI void APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI void APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glTextureBufferEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); +GLAPI void APIENTRY glMultiTexBufferEXT (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); +GLAPI void APIENTRY glTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, const GLuint *params); +GLAPI void APIENTRY glGetTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, GLuint *params); +GLAPI void APIENTRY glMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); +GLAPI void APIENTRY glGetMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, GLuint *params); +GLAPI void APIENTRY glProgramUniform1uiEXT (GLuint program, GLint location, GLuint v0); +GLAPI void APIENTRY glProgramUniform2uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1); +GLAPI void APIENTRY glProgramUniform3uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI void APIENTRY glProgramUniform4uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI void APIENTRY glProgramUniform1uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform2uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform3uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform4uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glNamedProgramLocalParameters4fvEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); +GLAPI void APIENTRY glNamedProgramLocalParameterI4iEXT (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glNamedProgramLocalParameterI4ivEXT (GLuint program, GLenum target, GLuint index, const GLint *params); +GLAPI void APIENTRY glNamedProgramLocalParametersI4ivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); +GLAPI void APIENTRY glNamedProgramLocalParameterI4uiEXT (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +GLAPI void APIENTRY glNamedProgramLocalParameterI4uivEXT (GLuint program, GLenum target, GLuint index, const GLuint *params); +GLAPI void APIENTRY glNamedProgramLocalParametersI4uivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); +GLAPI void APIENTRY glGetNamedProgramLocalParameterIivEXT (GLuint program, GLenum target, GLuint index, GLint *params); +GLAPI void APIENTRY glGetNamedProgramLocalParameterIuivEXT (GLuint program, GLenum target, GLuint index, GLuint *params); +GLAPI void APIENTRY glEnableClientStateiEXT (GLenum array, GLuint index); +GLAPI void APIENTRY glDisableClientStateiEXT (GLenum array, GLuint index); +GLAPI void APIENTRY glGetFloati_vEXT (GLenum pname, GLuint index, GLfloat *params); +GLAPI void APIENTRY glGetDoublei_vEXT (GLenum pname, GLuint index, GLdouble *params); +GLAPI void APIENTRY glGetPointeri_vEXT (GLenum pname, GLuint index, void **params); +GLAPI void APIENTRY glNamedProgramStringEXT (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string); +GLAPI void APIENTRY glNamedProgramLocalParameter4dEXT (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glNamedProgramLocalParameter4dvEXT (GLuint program, GLenum target, GLuint index, const GLdouble *params); +GLAPI void APIENTRY glNamedProgramLocalParameter4fEXT (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glNamedProgramLocalParameter4fvEXT (GLuint program, GLenum target, GLuint index, const GLfloat *params); +GLAPI void APIENTRY glGetNamedProgramLocalParameterdvEXT (GLuint program, GLenum target, GLuint index, GLdouble *params); +GLAPI void APIENTRY glGetNamedProgramLocalParameterfvEXT (GLuint program, GLenum target, GLuint index, GLfloat *params); +GLAPI void APIENTRY glGetNamedProgramivEXT (GLuint program, GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetNamedProgramStringEXT (GLuint program, GLenum target, GLenum pname, void *string); +GLAPI void APIENTRY glNamedRenderbufferStorageEXT (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetNamedRenderbufferParameterivEXT (GLuint renderbuffer, GLenum pname, GLint *params); +GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleEXT (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleCoverageEXT (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI GLenum APIENTRY glCheckNamedFramebufferStatusEXT (GLuint framebuffer, GLenum target); +GLAPI void APIENTRY glNamedFramebufferTexture1DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glNamedFramebufferTexture2DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glNamedFramebufferTexture3DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +GLAPI void APIENTRY glNamedFramebufferRenderbufferEXT (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameterivEXT (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); +GLAPI void APIENTRY glGenerateTextureMipmapEXT (GLuint texture, GLenum target); +GLAPI void APIENTRY glGenerateMultiTexMipmapEXT (GLenum texunit, GLenum target); +GLAPI void APIENTRY glFramebufferDrawBufferEXT (GLuint framebuffer, GLenum mode); +GLAPI void APIENTRY glFramebufferDrawBuffersEXT (GLuint framebuffer, GLsizei n, const GLenum *bufs); +GLAPI void APIENTRY glFramebufferReadBufferEXT (GLuint framebuffer, GLenum mode); +GLAPI void APIENTRY glGetFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params); +GLAPI void APIENTRY glNamedCopyBufferSubDataEXT (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +GLAPI void APIENTRY glNamedFramebufferTextureEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +GLAPI void APIENTRY glNamedFramebufferTextureLayerEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +GLAPI void APIENTRY glNamedFramebufferTextureFaceEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); +GLAPI void APIENTRY glTextureRenderbufferEXT (GLuint texture, GLenum target, GLuint renderbuffer); +GLAPI void APIENTRY glMultiTexRenderbufferEXT (GLenum texunit, GLenum target, GLuint renderbuffer); +GLAPI void APIENTRY glVertexArrayVertexOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayColorOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayEdgeFlagOffsetEXT (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayIndexOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayNormalOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayTexCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayMultiTexCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayFogCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArraySecondaryColorOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayVertexAttribOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayVertexAttribIOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glEnableVertexArrayEXT (GLuint vaobj, GLenum array); +GLAPI void APIENTRY glDisableVertexArrayEXT (GLuint vaobj, GLenum array); +GLAPI void APIENTRY glEnableVertexArrayAttribEXT (GLuint vaobj, GLuint index); +GLAPI void APIENTRY glDisableVertexArrayAttribEXT (GLuint vaobj, GLuint index); +GLAPI void APIENTRY glGetVertexArrayIntegervEXT (GLuint vaobj, GLenum pname, GLint *param); +GLAPI void APIENTRY glGetVertexArrayPointervEXT (GLuint vaobj, GLenum pname, void **param); +GLAPI void APIENTRY glGetVertexArrayIntegeri_vEXT (GLuint vaobj, GLuint index, GLenum pname, GLint *param); +GLAPI void APIENTRY glGetVertexArrayPointeri_vEXT (GLuint vaobj, GLuint index, GLenum pname, void **param); +GLAPI void *APIENTRY glMapNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); +GLAPI void APIENTRY glFlushMappedNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length); +GLAPI void APIENTRY glNamedBufferStorageEXT (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); +GLAPI void APIENTRY glClearNamedBufferDataEXT (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glClearNamedBufferSubDataEXT (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glNamedFramebufferParameteriEXT (GLuint framebuffer, GLenum pname, GLint param); +GLAPI void APIENTRY glGetNamedFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params); +GLAPI void APIENTRY glProgramUniform1dEXT (GLuint program, GLint location, GLdouble x); +GLAPI void APIENTRY glProgramUniform2dEXT (GLuint program, GLint location, GLdouble x, GLdouble y); +GLAPI void APIENTRY glProgramUniform3dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glProgramUniform4dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glProgramUniform1dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform2dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform3dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform4dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glTextureBufferRangeEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI void APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +GLAPI void APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +GLAPI void APIENTRY glTextureStorage2DMultisampleEXT (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glTextureStorage3DMultisampleEXT (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glVertexArrayBindVertexBufferEXT (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +GLAPI void APIENTRY glVertexArrayVertexAttribFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +GLAPI void APIENTRY glVertexArrayVertexAttribIFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +GLAPI void APIENTRY glVertexArrayVertexAttribLFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +GLAPI void APIENTRY glVertexArrayVertexAttribBindingEXT (GLuint vaobj, GLuint attribindex, GLuint bindingindex); +GLAPI void APIENTRY glVertexArrayVertexBindingDivisorEXT (GLuint vaobj, GLuint bindingindex, GLuint divisor); +GLAPI void APIENTRY glVertexArrayVertexAttribLOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glTexturePageCommitmentEXT (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident); +GLAPI void APIENTRY glVertexArrayVertexAttribDivisorEXT (GLuint vaobj, GLuint index, GLuint divisor); +#endif +#endif /* GL_EXT_direct_state_access */ + +#ifndef GL_EXT_draw_buffers2 +#define GL_EXT_draw_buffers2 1 +typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +#endif +#endif /* GL_EXT_draw_buffers2 */ + +#ifndef GL_EXT_draw_instanced +#define GL_EXT_draw_instanced 1 +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount); +GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#endif +#endif /* GL_EXT_draw_instanced */ + +#ifndef GL_EXT_draw_range_elements +#define GL_EXT_draw_range_elements 1 +#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 +#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); +#endif +#endif /* GL_EXT_draw_range_elements */ + +#ifndef GL_EXT_fog_coord +#define GL_EXT_fog_coord 1 +#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 +#define GL_FOG_COORDINATE_EXT 0x8451 +#define GL_FRAGMENT_DEPTH_EXT 0x8452 +#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 +#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 +typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord); +typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); +typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord); +typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); +typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFogCoordfEXT (GLfloat coord); +GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *coord); +GLAPI void APIENTRY glFogCoorddEXT (GLdouble coord); +GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *coord); +GLAPI void APIENTRY glFogCoordPointerEXT (GLenum type, GLsizei stride, const void *pointer); +#endif +#endif /* GL_EXT_fog_coord */ + +#ifndef GL_EXT_framebuffer_blit +#define GL_EXT_framebuffer_blit 1 +#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA +typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlitFramebufferEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif +#endif /* GL_EXT_framebuffer_blit */ + +#ifndef GL_EXT_framebuffer_multisample +#define GL_EXT_framebuffer_multisample 1 +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif +#endif /* GL_EXT_framebuffer_multisample */ + +#ifndef GL_EXT_framebuffer_multisample_blit_scaled +#define GL_EXT_framebuffer_multisample_blit_scaled 1 +#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA +#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB +#endif /* GL_EXT_framebuffer_multisample_blit_scaled */ + +#ifndef GL_EXT_framebuffer_object +#define GL_EXT_framebuffer_object 1 +#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 +#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 +#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF +#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 +#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 +#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 +#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 +#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 +#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 +#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 +#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 +#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 +#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 +#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA +#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB +#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC +#define GL_COLOR_ATTACHMENT13_EXT 0x8CED +#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE +#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF +#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 +#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 +#define GL_FRAMEBUFFER_EXT 0x8D40 +#define GL_RENDERBUFFER_EXT 0x8D41 +#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 +#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 +#define GL_STENCIL_INDEX1_EXT 0x8D46 +#define GL_STENCIL_INDEX4_EXT 0x8D47 +#define GL_STENCIL_INDEX8_EXT 0x8D48 +#define GL_STENCIL_INDEX16_EXT 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 +typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); +typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); +typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); +typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers); +typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers); +typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint renderbuffer); +GLAPI void APIENTRY glBindRenderbufferEXT (GLenum target, GLuint renderbuffer); +GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei n, const GLuint *renderbuffers); +GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei n, GLuint *renderbuffers); +GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum target, GLenum pname, GLint *params); +GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint framebuffer); +GLAPI void APIENTRY glBindFramebufferEXT (GLenum target, GLuint framebuffer); +GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei n, const GLuint *framebuffers); +GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei n, GLuint *framebuffers); +GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum target); +GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum target, GLenum attachment, GLenum pname, GLint *params); +GLAPI void APIENTRY glGenerateMipmapEXT (GLenum target); +#endif +#endif /* GL_EXT_framebuffer_object */ + +#ifndef GL_EXT_framebuffer_sRGB +#define GL_EXT_framebuffer_sRGB 1 +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA +#endif /* GL_EXT_framebuffer_sRGB */ + +#ifndef GL_EXT_geometry_shader4 +#define GL_EXT_geometry_shader4 1 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE +#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 +#define GL_LINES_ADJACENCY_EXT 0x000A +#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B +#define GL_TRIANGLES_ADJACENCY_EXT 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 +#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); +#endif +#endif /* GL_EXT_geometry_shader4 */ + +#ifndef GL_EXT_gpu_program_parameters +#define GL_EXT_gpu_program_parameters 1 +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramEnvParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +GLAPI void APIENTRY glProgramLocalParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +#endif +#endif /* GL_EXT_gpu_program_parameters */ + +#ifndef GL_EXT_gpu_shader4 +#define GL_EXT_gpu_shader4 1 +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD +#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 +#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 +#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 +#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 +#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 +#define GL_INT_SAMPLER_1D_EXT 0x8DC9 +#define GL_INT_SAMPLER_2D_EXT 0x8DCA +#define GL_INT_SAMPLER_3D_EXT 0x8DCB +#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC +#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD +#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 +#define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT 0x8905 +typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetUniformuivEXT (GLuint program, GLint location, GLuint *params); +GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name); +GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint program, const GLchar *name); +GLAPI void APIENTRY glUniform1uiEXT (GLint location, GLuint v0); +GLAPI void APIENTRY glUniform2uiEXT (GLint location, GLuint v0, GLuint v1); +GLAPI void APIENTRY glUniform3uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI void APIENTRY glUniform4uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI void APIENTRY glUniform1uivEXT (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform2uivEXT (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform3uivEXT (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform4uivEXT (GLint location, GLsizei count, const GLuint *value); +#endif +#endif /* GL_EXT_gpu_shader4 */ + +#ifndef GL_EXT_histogram +#define GL_EXT_histogram 1 +#define GL_HISTOGRAM_EXT 0x8024 +#define GL_PROXY_HISTOGRAM_EXT 0x8025 +#define GL_HISTOGRAM_WIDTH_EXT 0x8026 +#define GL_HISTOGRAM_FORMAT_EXT 0x8027 +#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C +#define GL_HISTOGRAM_SINK_EXT 0x802D +#define GL_MINMAX_EXT 0x802E +#define GL_MINMAX_FORMAT_EXT 0x802F +#define GL_MINMAX_SINK_EXT 0x8030 +#define GL_TABLE_TOO_LARGE_EXT 0x8031 +typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); +typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetHistogramEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetMinmaxEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glHistogramEXT (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +GLAPI void APIENTRY glMinmaxEXT (GLenum target, GLenum internalformat, GLboolean sink); +GLAPI void APIENTRY glResetHistogramEXT (GLenum target); +GLAPI void APIENTRY glResetMinmaxEXT (GLenum target); +#endif +#endif /* GL_EXT_histogram */ + +#ifndef GL_EXT_index_array_formats +#define GL_EXT_index_array_formats 1 +#define GL_IUI_V2F_EXT 0x81AD +#define GL_IUI_V3F_EXT 0x81AE +#define GL_IUI_N3F_V2F_EXT 0x81AF +#define GL_IUI_N3F_V3F_EXT 0x81B0 +#define GL_T2F_IUI_V2F_EXT 0x81B1 +#define GL_T2F_IUI_V3F_EXT 0x81B2 +#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 +#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 +#endif /* GL_EXT_index_array_formats */ + +#ifndef GL_EXT_index_func +#define GL_EXT_index_func 1 +#define GL_INDEX_TEST_EXT 0x81B5 +#define GL_INDEX_TEST_FUNC_EXT 0x81B6 +#define GL_INDEX_TEST_REF_EXT 0x81B7 +typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIndexFuncEXT (GLenum func, GLclampf ref); +#endif +#endif /* GL_EXT_index_func */ + +#ifndef GL_EXT_index_material +#define GL_EXT_index_material 1 +#define GL_INDEX_MATERIAL_EXT 0x81B8 +#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 +#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA +typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIndexMaterialEXT (GLenum face, GLenum mode); +#endif +#endif /* GL_EXT_index_material */ + +#ifndef GL_EXT_index_texture +#define GL_EXT_index_texture 1 +#endif /* GL_EXT_index_texture */ + +#ifndef GL_EXT_light_texture +#define GL_EXT_light_texture 1 +#define GL_FRAGMENT_MATERIAL_EXT 0x8349 +#define GL_FRAGMENT_NORMAL_EXT 0x834A +#define GL_FRAGMENT_COLOR_EXT 0x834C +#define GL_ATTENUATION_EXT 0x834D +#define GL_SHADOW_ATTENUATION_EXT 0x834E +#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F +#define GL_TEXTURE_LIGHT_EXT 0x8350 +#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 +#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 +typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); +typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glApplyTextureEXT (GLenum mode); +GLAPI void APIENTRY glTextureLightEXT (GLenum pname); +GLAPI void APIENTRY glTextureMaterialEXT (GLenum face, GLenum mode); +#endif +#endif /* GL_EXT_light_texture */ + +#ifndef GL_EXT_misc_attribute +#define GL_EXT_misc_attribute 1 +#endif /* GL_EXT_misc_attribute */ + +#ifndef GL_EXT_multi_draw_arrays +#define GL_EXT_multi_draw_arrays 1 +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); +#endif +#endif /* GL_EXT_multi_draw_arrays */ + +#ifndef GL_EXT_multisample +#define GL_EXT_multisample 1 +#define GL_MULTISAMPLE_EXT 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F +#define GL_SAMPLE_MASK_EXT 0x80A0 +#define GL_1PASS_EXT 0x80A1 +#define GL_2PASS_0_EXT 0x80A2 +#define GL_2PASS_1_EXT 0x80A3 +#define GL_4PASS_0_EXT 0x80A4 +#define GL_4PASS_1_EXT 0x80A5 +#define GL_4PASS_2_EXT 0x80A6 +#define GL_4PASS_3_EXT 0x80A7 +#define GL_SAMPLE_BUFFERS_EXT 0x80A8 +#define GL_SAMPLES_EXT 0x80A9 +#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA +#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB +#define GL_SAMPLE_PATTERN_EXT 0x80AC +#define GL_MULTISAMPLE_BIT_EXT 0x20000000 +typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleMaskEXT (GLclampf value, GLboolean invert); +GLAPI void APIENTRY glSamplePatternEXT (GLenum pattern); +#endif +#endif /* GL_EXT_multisample */ + +#ifndef GL_EXT_packed_depth_stencil +#define GL_EXT_packed_depth_stencil 1 +#define GL_DEPTH_STENCIL_EXT 0x84F9 +#define GL_UNSIGNED_INT_24_8_EXT 0x84FA +#define GL_DEPTH24_STENCIL8_EXT 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 +#endif /* GL_EXT_packed_depth_stencil */ + +#ifndef GL_EXT_packed_float +#define GL_EXT_packed_float 1 +#define GL_R11F_G11F_B10F_EXT 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B +#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C +#endif /* GL_EXT_packed_float */ + +#ifndef GL_EXT_packed_pixels +#define GL_EXT_packed_pixels 1 +#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 +#endif /* GL_EXT_packed_pixels */ + +#ifndef GL_EXT_paletted_texture +#define GL_EXT_paletted_texture 1 +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED +typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, void *data); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorTableEXT (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table); +GLAPI void APIENTRY glGetColorTableEXT (GLenum target, GLenum format, GLenum type, void *data); +GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); +#endif +#endif /* GL_EXT_paletted_texture */ + +#ifndef GL_EXT_pixel_buffer_object +#define GL_EXT_pixel_buffer_object 1 +#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF +#endif /* GL_EXT_pixel_buffer_object */ + +#ifndef GL_EXT_pixel_transform +#define GL_EXT_pixel_transform 1 +#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 +#define GL_PIXEL_MAG_FILTER_EXT 0x8331 +#define GL_PIXEL_MIN_FILTER_EXT 0x8332 +#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 +#define GL_CUBIC_EXT 0x8334 +#define GL_AVERAGE_EXT 0x8335 +#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 +#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 +#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum target, GLenum pname, GLfloat param); +GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glGetPixelTransformParameterivEXT (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetPixelTransformParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); +#endif +#endif /* GL_EXT_pixel_transform */ + +#ifndef GL_EXT_pixel_transform_color_table +#define GL_EXT_pixel_transform_color_table 1 +#endif /* GL_EXT_pixel_transform_color_table */ + +#ifndef GL_EXT_point_parameters +#define GL_EXT_point_parameters 1 +#define GL_POINT_SIZE_MIN_EXT 0x8126 +#define GL_POINT_SIZE_MAX_EXT 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 +#define GL_DISTANCE_ATTENUATION_EXT 0x8129 +typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfEXT (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPointParameterfvEXT (GLenum pname, const GLfloat *params); +#endif +#endif /* GL_EXT_point_parameters */ + +#ifndef GL_EXT_polygon_offset +#define GL_EXT_polygon_offset 1 +#define GL_POLYGON_OFFSET_EXT 0x8037 +#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 +#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 +typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat factor, GLfloat bias); +#endif +#endif /* GL_EXT_polygon_offset */ + +#ifndef GL_EXT_provoking_vertex +#define GL_EXT_provoking_vertex 1 +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_PROVOKING_VERTEX_EXT 0x8E4F +typedef void (APIENTRYP PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProvokingVertexEXT (GLenum mode); +#endif +#endif /* GL_EXT_provoking_vertex */ + +#ifndef GL_EXT_rescale_normal +#define GL_EXT_rescale_normal 1 +#define GL_RESCALE_NORMAL_EXT 0x803A +#endif /* GL_EXT_rescale_normal */ + +#ifndef GL_EXT_secondary_color +#define GL_EXT_secondary_color 1 +#define GL_COLOR_SUM_EXT 0x8458 +#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D +#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte red, GLbyte green, GLbyte blue); +GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *v); +GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble red, GLdouble green, GLdouble blue); +GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *v); +GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat red, GLfloat green, GLfloat blue); +GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *v); +GLAPI void APIENTRY glSecondaryColor3iEXT (GLint red, GLint green, GLint blue); +GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *v); +GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort red, GLshort green, GLshort blue); +GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *v); +GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte red, GLubyte green, GLubyte blue); +GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *v); +GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint red, GLuint green, GLuint blue); +GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *v); +GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort red, GLushort green, GLushort blue); +GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *v); +GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint size, GLenum type, GLsizei stride, const void *pointer); +#endif +#endif /* GL_EXT_secondary_color */ + +#ifndef GL_EXT_separate_shader_objects +#define GL_EXT_separate_shader_objects 1 +#define GL_ACTIVE_PROGRAM_EXT 0x8B8D +typedef void (APIENTRYP PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program); +typedef void (APIENTRYP PFNGLACTIVEPROGRAMEXTPROC) (GLuint program); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const GLchar *string); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUseShaderProgramEXT (GLenum type, GLuint program); +GLAPI void APIENTRY glActiveProgramEXT (GLuint program); +GLAPI GLuint APIENTRY glCreateShaderProgramEXT (GLenum type, const GLchar *string); +#endif +#endif /* GL_EXT_separate_shader_objects */ + +#ifndef GL_EXT_separate_specular_color +#define GL_EXT_separate_specular_color 1 +#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 +#define GL_SINGLE_COLOR_EXT 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA +#endif /* GL_EXT_separate_specular_color */ + +#ifndef GL_EXT_shader_image_load_formatted +#define GL_EXT_shader_image_load_formatted 1 +#endif /* GL_EXT_shader_image_load_formatted */ + +#ifndef GL_EXT_shader_image_load_store +#define GL_EXT_shader_image_load_store 1 +#define GL_MAX_IMAGE_UNITS_EXT 0x8F38 +#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 +#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A +#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B +#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C +#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D +#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E +#define GL_IMAGE_1D_EXT 0x904C +#define GL_IMAGE_2D_EXT 0x904D +#define GL_IMAGE_3D_EXT 0x904E +#define GL_IMAGE_2D_RECT_EXT 0x904F +#define GL_IMAGE_CUBE_EXT 0x9050 +#define GL_IMAGE_BUFFER_EXT 0x9051 +#define GL_IMAGE_1D_ARRAY_EXT 0x9052 +#define GL_IMAGE_2D_ARRAY_EXT 0x9053 +#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 +#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055 +#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056 +#define GL_INT_IMAGE_1D_EXT 0x9057 +#define GL_INT_IMAGE_2D_EXT 0x9058 +#define GL_INT_IMAGE_3D_EXT 0x9059 +#define GL_INT_IMAGE_2D_RECT_EXT 0x905A +#define GL_INT_IMAGE_CUBE_EXT 0x905B +#define GL_INT_IMAGE_BUFFER_EXT 0x905C +#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D +#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E +#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F +#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060 +#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061 +#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062 +#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063 +#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064 +#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065 +#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066 +#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 +#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068 +#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069 +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C +#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D +#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E +#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001 +#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002 +#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004 +#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008 +#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020 +#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040 +#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080 +#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100 +#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200 +#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400 +#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800 +#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000 +#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF +typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); +typedef void (APIENTRYP PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindImageTextureEXT (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); +GLAPI void APIENTRY glMemoryBarrierEXT (GLbitfield barriers); +#endif +#endif /* GL_EXT_shader_image_load_store */ + +#ifndef GL_EXT_shader_integer_mix +#define GL_EXT_shader_integer_mix 1 +#endif /* GL_EXT_shader_integer_mix */ + +#ifndef GL_EXT_shadow_funcs +#define GL_EXT_shadow_funcs 1 +#endif /* GL_EXT_shadow_funcs */ + +#ifndef GL_EXT_shared_texture_palette +#define GL_EXT_shared_texture_palette 1 +#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB +#endif /* GL_EXT_shared_texture_palette */ + +#ifndef GL_EXT_stencil_clear_tag +#define GL_EXT_stencil_clear_tag 1 +#define GL_STENCIL_TAG_BITS_EXT 0x88F2 +#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 +typedef void (APIENTRYP PFNGLSTENCILCLEARTAGEXTPROC) (GLsizei stencilTagBits, GLuint stencilClearTag); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStencilClearTagEXT (GLsizei stencilTagBits, GLuint stencilClearTag); +#endif +#endif /* GL_EXT_stencil_clear_tag */ + +#ifndef GL_EXT_stencil_two_side +#define GL_EXT_stencil_two_side 1 +#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 +#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 +typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum face); +#endif +#endif /* GL_EXT_stencil_two_side */ + +#ifndef GL_EXT_stencil_wrap +#define GL_EXT_stencil_wrap 1 +#define GL_INCR_WRAP_EXT 0x8507 +#define GL_DECR_WRAP_EXT 0x8508 +#endif /* GL_EXT_stencil_wrap */ + +#ifndef GL_EXT_subtexture +#define GL_EXT_subtexture 1 +typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +#endif +#endif /* GL_EXT_subtexture */ + +#ifndef GL_EXT_texture +#define GL_EXT_texture 1 +#define GL_ALPHA4_EXT 0x803B +#define GL_ALPHA8_EXT 0x803C +#define GL_ALPHA12_EXT 0x803D +#define GL_ALPHA16_EXT 0x803E +#define GL_LUMINANCE4_EXT 0x803F +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE12_EXT 0x8041 +#define GL_LUMINANCE16_EXT 0x8042 +#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 +#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 +#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 +#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 +#define GL_INTENSITY_EXT 0x8049 +#define GL_INTENSITY4_EXT 0x804A +#define GL_INTENSITY8_EXT 0x804B +#define GL_INTENSITY12_EXT 0x804C +#define GL_INTENSITY16_EXT 0x804D +#define GL_RGB2_EXT 0x804E +#define GL_RGB4_EXT 0x804F +#define GL_RGB5_EXT 0x8050 +#define GL_RGB8_EXT 0x8051 +#define GL_RGB10_EXT 0x8052 +#define GL_RGB12_EXT 0x8053 +#define GL_RGB16_EXT 0x8054 +#define GL_RGBA2_EXT 0x8055 +#define GL_RGBA4_EXT 0x8056 +#define GL_RGB5_A1_EXT 0x8057 +#define GL_RGBA8_EXT 0x8058 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_RGBA12_EXT 0x805A +#define GL_RGBA16_EXT 0x805B +#define GL_TEXTURE_RED_SIZE_EXT 0x805C +#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D +#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E +#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 +#define GL_REPLACE_EXT 0x8062 +#define GL_PROXY_TEXTURE_1D_EXT 0x8063 +#define GL_PROXY_TEXTURE_2D_EXT 0x8064 +#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 +#endif /* GL_EXT_texture */ + +#ifndef GL_EXT_texture3D +#define GL_EXT_texture3D 1 +#define GL_PACK_SKIP_IMAGES_EXT 0x806B +#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C +#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D +#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E +#define GL_TEXTURE_3D_EXT 0x806F +#define GL_PROXY_TEXTURE_3D_EXT 0x8070 +#define GL_TEXTURE_DEPTH_EXT 0x8071 +#define GL_TEXTURE_WRAP_R_EXT 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 +typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexImage3DEXT (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +#endif +#endif /* GL_EXT_texture3D */ + +#ifndef GL_EXT_texture_array +#define GL_EXT_texture_array 1 +#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 +#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D +#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF +#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E +#endif /* GL_EXT_texture_array */ + +#ifndef GL_EXT_texture_buffer_object +#define GL_EXT_texture_buffer_object 1 +#define GL_TEXTURE_BUFFER_EXT 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E +typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer); +#endif +#endif /* GL_EXT_texture_buffer_object */ + +#ifndef GL_EXT_texture_compression_latc +#define GL_EXT_texture_compression_latc 1 +#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 +#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 +#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 +#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 +#endif /* GL_EXT_texture_compression_latc */ + +#ifndef GL_EXT_texture_compression_rgtc +#define GL_EXT_texture_compression_rgtc 1 +#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC +#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD +#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE +#endif /* GL_EXT_texture_compression_rgtc */ + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_EXT_texture_compression_s3tc 1 +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#endif /* GL_EXT_texture_compression_s3tc */ + +#ifndef GL_EXT_texture_cube_map +#define GL_EXT_texture_cube_map 1 +#define GL_NORMAL_MAP_EXT 0x8511 +#define GL_REFLECTION_MAP_EXT 0x8512 +#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C +#endif /* GL_EXT_texture_cube_map */ + +#ifndef GL_EXT_texture_env_add +#define GL_EXT_texture_env_add 1 +#endif /* GL_EXT_texture_env_add */ + +#ifndef GL_EXT_texture_env_combine +#define GL_EXT_texture_env_combine 1 +#define GL_COMBINE_EXT 0x8570 +#define GL_COMBINE_RGB_EXT 0x8571 +#define GL_COMBINE_ALPHA_EXT 0x8572 +#define GL_RGB_SCALE_EXT 0x8573 +#define GL_ADD_SIGNED_EXT 0x8574 +#define GL_INTERPOLATE_EXT 0x8575 +#define GL_CONSTANT_EXT 0x8576 +#define GL_PRIMARY_COLOR_EXT 0x8577 +#define GL_PREVIOUS_EXT 0x8578 +#define GL_SOURCE0_RGB_EXT 0x8580 +#define GL_SOURCE1_RGB_EXT 0x8581 +#define GL_SOURCE2_RGB_EXT 0x8582 +#define GL_SOURCE0_ALPHA_EXT 0x8588 +#define GL_SOURCE1_ALPHA_EXT 0x8589 +#define GL_SOURCE2_ALPHA_EXT 0x858A +#define GL_OPERAND0_RGB_EXT 0x8590 +#define GL_OPERAND1_RGB_EXT 0x8591 +#define GL_OPERAND2_RGB_EXT 0x8592 +#define GL_OPERAND0_ALPHA_EXT 0x8598 +#define GL_OPERAND1_ALPHA_EXT 0x8599 +#define GL_OPERAND2_ALPHA_EXT 0x859A +#endif /* GL_EXT_texture_env_combine */ + +#ifndef GL_EXT_texture_env_dot3 +#define GL_EXT_texture_env_dot3 1 +#define GL_DOT3_RGB_EXT 0x8740 +#define GL_DOT3_RGBA_EXT 0x8741 +#endif /* GL_EXT_texture_env_dot3 */ + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif /* GL_EXT_texture_filter_anisotropic */ + +#ifndef GL_EXT_texture_integer +#define GL_EXT_texture_integer 1 +#define GL_RGBA32UI_EXT 0x8D70 +#define GL_RGB32UI_EXT 0x8D71 +#define GL_ALPHA32UI_EXT 0x8D72 +#define GL_INTENSITY32UI_EXT 0x8D73 +#define GL_LUMINANCE32UI_EXT 0x8D74 +#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 +#define GL_RGBA16UI_EXT 0x8D76 +#define GL_RGB16UI_EXT 0x8D77 +#define GL_ALPHA16UI_EXT 0x8D78 +#define GL_INTENSITY16UI_EXT 0x8D79 +#define GL_LUMINANCE16UI_EXT 0x8D7A +#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B +#define GL_RGBA8UI_EXT 0x8D7C +#define GL_RGB8UI_EXT 0x8D7D +#define GL_ALPHA8UI_EXT 0x8D7E +#define GL_INTENSITY8UI_EXT 0x8D7F +#define GL_LUMINANCE8UI_EXT 0x8D80 +#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 +#define GL_RGBA32I_EXT 0x8D82 +#define GL_RGB32I_EXT 0x8D83 +#define GL_ALPHA32I_EXT 0x8D84 +#define GL_INTENSITY32I_EXT 0x8D85 +#define GL_LUMINANCE32I_EXT 0x8D86 +#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 +#define GL_RGBA16I_EXT 0x8D88 +#define GL_RGB16I_EXT 0x8D89 +#define GL_ALPHA16I_EXT 0x8D8A +#define GL_INTENSITY16I_EXT 0x8D8B +#define GL_LUMINANCE16I_EXT 0x8D8C +#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D +#define GL_RGBA8I_EXT 0x8D8E +#define GL_RGB8I_EXT 0x8D8F +#define GL_ALPHA8I_EXT 0x8D90 +#define GL_INTENSITY8I_EXT 0x8D91 +#define GL_LUMINANCE8I_EXT 0x8D92 +#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 +#define GL_RED_INTEGER_EXT 0x8D94 +#define GL_GREEN_INTEGER_EXT 0x8D95 +#define GL_BLUE_INTEGER_EXT 0x8D96 +#define GL_ALPHA_INTEGER_EXT 0x8D97 +#define GL_RGB_INTEGER_EXT 0x8D98 +#define GL_RGBA_INTEGER_EXT 0x8D99 +#define GL_BGR_INTEGER_EXT 0x8D9A +#define GL_BGRA_INTEGER_EXT 0x8D9B +#define GL_LUMINANCE_INTEGER_EXT 0x8D9C +#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D +#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E +typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); +typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params); +GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params); +GLAPI void APIENTRY glClearColorIiEXT (GLint red, GLint green, GLint blue, GLint alpha); +GLAPI void APIENTRY glClearColorIuiEXT (GLuint red, GLuint green, GLuint blue, GLuint alpha); +#endif +#endif /* GL_EXT_texture_integer */ + +#ifndef GL_EXT_texture_lod_bias +#define GL_EXT_texture_lod_bias 1 +#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD +#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 +#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 +#endif /* GL_EXT_texture_lod_bias */ + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_EXT_texture_mirror_clamp 1 +#define GL_MIRROR_CLAMP_EXT 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 +#endif /* GL_EXT_texture_mirror_clamp */ + +#ifndef GL_EXT_texture_object +#define GL_EXT_texture_object 1 +#define GL_TEXTURE_PRIORITY_EXT 0x8066 +#define GL_TEXTURE_RESIDENT_EXT 0x8067 +#define GL_TEXTURE_1D_BINDING_EXT 0x8068 +#define GL_TEXTURE_2D_BINDING_EXT 0x8069 +#define GL_TEXTURE_3D_BINDING_EXT 0x806A +typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); +typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); +typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); +typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); +typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture); +typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei n, const GLuint *textures, GLboolean *residences); +GLAPI void APIENTRY glBindTextureEXT (GLenum target, GLuint texture); +GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei n, const GLuint *textures); +GLAPI void APIENTRY glGenTexturesEXT (GLsizei n, GLuint *textures); +GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint texture); +GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei n, const GLuint *textures, const GLclampf *priorities); +#endif +#endif /* GL_EXT_texture_object */ + +#ifndef GL_EXT_texture_perturb_normal +#define GL_EXT_texture_perturb_normal 1 +#define GL_PERTURB_EXT 0x85AE +#define GL_TEXTURE_NORMAL_EXT 0x85AF +typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureNormalEXT (GLenum mode); +#endif +#endif /* GL_EXT_texture_perturb_normal */ + +#ifndef GL_EXT_texture_sRGB +#define GL_EXT_texture_sRGB 1 +#define GL_SRGB_EXT 0x8C40 +#define GL_SRGB8_EXT 0x8C41 +#define GL_SRGB_ALPHA_EXT 0x8C42 +#define GL_SRGB8_ALPHA8_EXT 0x8C43 +#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 +#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 +#define GL_SLUMINANCE_EXT 0x8C46 +#define GL_SLUMINANCE8_EXT 0x8C47 +#define GL_COMPRESSED_SRGB_EXT 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 +#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B +#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F +#endif /* GL_EXT_texture_sRGB */ + +#ifndef GL_EXT_texture_sRGB_decode +#define GL_EXT_texture_sRGB_decode 1 +#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 +#define GL_DECODE_EXT 0x8A49 +#define GL_SKIP_DECODE_EXT 0x8A4A +#endif /* GL_EXT_texture_sRGB_decode */ + +#ifndef GL_EXT_texture_shared_exponent +#define GL_EXT_texture_shared_exponent 1 +#define GL_RGB9_E5_EXT 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E +#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F +#endif /* GL_EXT_texture_shared_exponent */ + +#ifndef GL_EXT_texture_snorm +#define GL_EXT_texture_snorm 1 +#define GL_ALPHA_SNORM 0x9010 +#define GL_LUMINANCE_SNORM 0x9011 +#define GL_LUMINANCE_ALPHA_SNORM 0x9012 +#define GL_INTENSITY_SNORM 0x9013 +#define GL_ALPHA8_SNORM 0x9014 +#define GL_LUMINANCE8_SNORM 0x9015 +#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 +#define GL_INTENSITY8_SNORM 0x9017 +#define GL_ALPHA16_SNORM 0x9018 +#define GL_LUMINANCE16_SNORM 0x9019 +#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A +#define GL_INTENSITY16_SNORM 0x901B +#define GL_RED_SNORM 0x8F90 +#define GL_RG_SNORM 0x8F91 +#define GL_RGB_SNORM 0x8F92 +#define GL_RGBA_SNORM 0x8F93 +#endif /* GL_EXT_texture_snorm */ + +#ifndef GL_EXT_texture_swizzle +#define GL_EXT_texture_swizzle 1 +#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 +#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 +#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 +#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 +#endif /* GL_EXT_texture_swizzle */ + +#ifndef GL_EXT_timer_query +#define GL_EXT_timer_query 1 +#define GL_TIME_ELAPSED_EXT 0x88BF +typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64 *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64 *params); +GLAPI void APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64 *params); +#endif +#endif /* GL_EXT_timer_query */ + +#ifndef GL_EXT_transform_feedback +#define GL_EXT_transform_feedback 1 +#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F +#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C +#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 +#define GL_RASTERIZER_DISCARD_EXT 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (APIENTRYP PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginTransformFeedbackEXT (GLenum primitiveMode); +GLAPI void APIENTRY glEndTransformFeedbackEXT (void); +GLAPI void APIENTRY glBindBufferRangeEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI void APIENTRY glBindBufferOffsetEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +GLAPI void APIENTRY glBindBufferBaseEXT (GLenum target, GLuint index, GLuint buffer); +GLAPI void APIENTRY glTransformFeedbackVaryingsEXT (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); +GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +#endif +#endif /* GL_EXT_transform_feedback */ + +#ifndef GL_EXT_vertex_array +#define GL_EXT_vertex_array 1 +#define GL_VERTEX_ARRAY_EXT 0x8074 +#define GL_NORMAL_ARRAY_EXT 0x8075 +#define GL_COLOR_ARRAY_EXT 0x8076 +#define GL_INDEX_ARRAY_EXT 0x8077 +#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 +#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 +#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A +#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B +#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C +#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D +#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E +#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F +#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 +#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 +#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 +#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 +#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 +#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 +#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 +#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 +#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A +#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B +#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C +#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D +#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E +#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F +#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 +#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 +typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i); +typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); +typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, void **params); +typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); +typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); +typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glArrayElementEXT (GLint i); +GLAPI void APIENTRY glColorPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +GLAPI void APIENTRY glDrawArraysEXT (GLenum mode, GLint first, GLsizei count); +GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei stride, GLsizei count, const GLboolean *pointer); +GLAPI void APIENTRY glGetPointervEXT (GLenum pname, void **params); +GLAPI void APIENTRY glIndexPointerEXT (GLenum type, GLsizei stride, GLsizei count, const void *pointer); +GLAPI void APIENTRY glNormalPointerEXT (GLenum type, GLsizei stride, GLsizei count, const void *pointer); +GLAPI void APIENTRY glTexCoordPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +GLAPI void APIENTRY glVertexPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +#endif +#endif /* GL_EXT_vertex_array */ + +#ifndef GL_EXT_vertex_array_bgra +#define GL_EXT_vertex_array_bgra 1 +#endif /* GL_EXT_vertex_array_bgra */ + +#ifndef GL_EXT_vertex_attrib_64bit +#define GL_EXT_vertex_attrib_64bit 1 +#define GL_DOUBLE_VEC2_EXT 0x8FFC +#define GL_DOUBLE_VEC3_EXT 0x8FFD +#define GL_DOUBLE_VEC4_EXT 0x8FFE +#define GL_DOUBLE_MAT2_EXT 0x8F46 +#define GL_DOUBLE_MAT3_EXT 0x8F47 +#define GL_DOUBLE_MAT4_EXT 0x8F48 +#define GL_DOUBLE_MAT2x3_EXT 0x8F49 +#define GL_DOUBLE_MAT2x4_EXT 0x8F4A +#define GL_DOUBLE_MAT3x2_EXT 0x8F4B +#define GL_DOUBLE_MAT3x4_EXT 0x8F4C +#define GL_DOUBLE_MAT4x2_EXT 0x8F4D +#define GL_DOUBLE_MAT4x3_EXT 0x8F4E +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribL1dEXT (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttribL2dEXT (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttribL3dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttribL4dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttribL1dvEXT (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL2dvEXT (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL3dvEXT (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL4dvEXT (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribLPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glGetVertexAttribLdvEXT (GLuint index, GLenum pname, GLdouble *params); +#endif +#endif /* GL_EXT_vertex_attrib_64bit */ + +#ifndef GL_EXT_vertex_shader +#define GL_EXT_vertex_shader 1 +#define GL_VERTEX_SHADER_EXT 0x8780 +#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 +#define GL_OP_INDEX_EXT 0x8782 +#define GL_OP_NEGATE_EXT 0x8783 +#define GL_OP_DOT3_EXT 0x8784 +#define GL_OP_DOT4_EXT 0x8785 +#define GL_OP_MUL_EXT 0x8786 +#define GL_OP_ADD_EXT 0x8787 +#define GL_OP_MADD_EXT 0x8788 +#define GL_OP_FRAC_EXT 0x8789 +#define GL_OP_MAX_EXT 0x878A +#define GL_OP_MIN_EXT 0x878B +#define GL_OP_SET_GE_EXT 0x878C +#define GL_OP_SET_LT_EXT 0x878D +#define GL_OP_CLAMP_EXT 0x878E +#define GL_OP_FLOOR_EXT 0x878F +#define GL_OP_ROUND_EXT 0x8790 +#define GL_OP_EXP_BASE_2_EXT 0x8791 +#define GL_OP_LOG_BASE_2_EXT 0x8792 +#define GL_OP_POWER_EXT 0x8793 +#define GL_OP_RECIP_EXT 0x8794 +#define GL_OP_RECIP_SQRT_EXT 0x8795 +#define GL_OP_SUB_EXT 0x8796 +#define GL_OP_CROSS_PRODUCT_EXT 0x8797 +#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 +#define GL_OP_MOV_EXT 0x8799 +#define GL_OUTPUT_VERTEX_EXT 0x879A +#define GL_OUTPUT_COLOR0_EXT 0x879B +#define GL_OUTPUT_COLOR1_EXT 0x879C +#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D +#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E +#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F +#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 +#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 +#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 +#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 +#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 +#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 +#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 +#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 +#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 +#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 +#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA +#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB +#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC +#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD +#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE +#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF +#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 +#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 +#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 +#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 +#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 +#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 +#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 +#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 +#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 +#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 +#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA +#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB +#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC +#define GL_OUTPUT_FOG_EXT 0x87BD +#define GL_SCALAR_EXT 0x87BE +#define GL_VECTOR_EXT 0x87BF +#define GL_MATRIX_EXT 0x87C0 +#define GL_VARIANT_EXT 0x87C1 +#define GL_INVARIANT_EXT 0x87C2 +#define GL_LOCAL_CONSTANT_EXT 0x87C3 +#define GL_LOCAL_EXT 0x87C4 +#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 +#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 +#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 +#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 +#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE +#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF +#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 +#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 +#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 +#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 +#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 +#define GL_X_EXT 0x87D5 +#define GL_Y_EXT 0x87D6 +#define GL_Z_EXT 0x87D7 +#define GL_W_EXT 0x87D8 +#define GL_NEGATIVE_X_EXT 0x87D9 +#define GL_NEGATIVE_Y_EXT 0x87DA +#define GL_NEGATIVE_Z_EXT 0x87DB +#define GL_NEGATIVE_W_EXT 0x87DC +#define GL_ZERO_EXT 0x87DD +#define GL_ONE_EXT 0x87DE +#define GL_NEGATIVE_ONE_EXT 0x87DF +#define GL_NORMALIZED_RANGE_EXT 0x87E0 +#define GL_FULL_RANGE_EXT 0x87E1 +#define GL_CURRENT_VERTEX_EXT 0x87E2 +#define GL_MVP_MATRIX_EXT 0x87E3 +#define GL_VARIANT_VALUE_EXT 0x87E4 +#define GL_VARIANT_DATATYPE_EXT 0x87E5 +#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 +#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 +#define GL_VARIANT_ARRAY_EXT 0x87E8 +#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 +#define GL_INVARIANT_VALUE_EXT 0x87EA +#define GL_INVARIANT_DATATYPE_EXT 0x87EB +#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC +#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED +typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void); +typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void); +typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); +typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); +typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); +typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); +typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); +typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); +typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); +typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const void *addr); +typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const void *addr); +typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr); +typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr); +typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr); +typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr); +typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr); +typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr); +typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr); +typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr); +typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const void *addr); +typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value); +typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); +typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, void **data); +typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginVertexShaderEXT (void); +GLAPI void APIENTRY glEndVertexShaderEXT (void); +GLAPI void APIENTRY glBindVertexShaderEXT (GLuint id); +GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint range); +GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint id); +GLAPI void APIENTRY glShaderOp1EXT (GLenum op, GLuint res, GLuint arg1); +GLAPI void APIENTRY glShaderOp2EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2); +GLAPI void APIENTRY glShaderOp3EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); +GLAPI void APIENTRY glSwizzleEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +GLAPI void APIENTRY glWriteMaskEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +GLAPI void APIENTRY glInsertComponentEXT (GLuint res, GLuint src, GLuint num); +GLAPI void APIENTRY glExtractComponentEXT (GLuint res, GLuint src, GLuint num); +GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); +GLAPI void APIENTRY glSetInvariantEXT (GLuint id, GLenum type, const void *addr); +GLAPI void APIENTRY glSetLocalConstantEXT (GLuint id, GLenum type, const void *addr); +GLAPI void APIENTRY glVariantbvEXT (GLuint id, const GLbyte *addr); +GLAPI void APIENTRY glVariantsvEXT (GLuint id, const GLshort *addr); +GLAPI void APIENTRY glVariantivEXT (GLuint id, const GLint *addr); +GLAPI void APIENTRY glVariantfvEXT (GLuint id, const GLfloat *addr); +GLAPI void APIENTRY glVariantdvEXT (GLuint id, const GLdouble *addr); +GLAPI void APIENTRY glVariantubvEXT (GLuint id, const GLubyte *addr); +GLAPI void APIENTRY glVariantusvEXT (GLuint id, const GLushort *addr); +GLAPI void APIENTRY glVariantuivEXT (GLuint id, const GLuint *addr); +GLAPI void APIENTRY glVariantPointerEXT (GLuint id, GLenum type, GLuint stride, const void *addr); +GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint id); +GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint id); +GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum light, GLenum value); +GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum face, GLenum value); +GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum unit, GLenum coord, GLenum value); +GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum unit, GLenum value); +GLAPI GLuint APIENTRY glBindParameterEXT (GLenum value); +GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint id, GLenum cap); +GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); +GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint id, GLenum value, GLint *data); +GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint id, GLenum value, GLfloat *data); +GLAPI void APIENTRY glGetVariantPointervEXT (GLuint id, GLenum value, void **data); +GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); +GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint id, GLenum value, GLint *data); +GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint id, GLenum value, GLfloat *data); +GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); +GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint id, GLenum value, GLint *data); +GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint id, GLenum value, GLfloat *data); +#endif +#endif /* GL_EXT_vertex_shader */ + +#ifndef GL_EXT_vertex_weighting +#define GL_EXT_vertex_weighting 1 +#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3 +#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 +#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6 +#define GL_MODELVIEW1_MATRIX_EXT 0x8506 +#define GL_VERTEX_WEIGHTING_EXT 0x8509 +#define GL_MODELVIEW0_EXT 0x1700 +#define GL_MODELVIEW1_EXT 0x850A +#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B +#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C +#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D +#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E +#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F +#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 +typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexWeightfEXT (GLfloat weight); +GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *weight); +GLAPI void APIENTRY glVertexWeightPointerEXT (GLint size, GLenum type, GLsizei stride, const void *pointer); +#endif +#endif /* GL_EXT_vertex_weighting */ + +#ifndef GL_EXT_x11_sync_object +#define GL_EXT_x11_sync_object 1 +#define GL_SYNC_X11_FENCE_EXT 0x90E1 +typedef GLsync (APIENTRYP PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLsync APIENTRY glImportSyncEXT (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); +#endif +#endif /* GL_EXT_x11_sync_object */ + +#ifndef GL_GREMEDY_frame_terminator +#define GL_GREMEDY_frame_terminator 1 +typedef void (APIENTRYP PFNGLFRAMETERMINATORGREMEDYPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFrameTerminatorGREMEDY (void); +#endif +#endif /* GL_GREMEDY_frame_terminator */ + +#ifndef GL_GREMEDY_string_marker +#define GL_GREMEDY_string_marker 1 +typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const void *string); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei len, const void *string); +#endif +#endif /* GL_GREMEDY_string_marker */ + +#ifndef GL_HP_convolution_border_modes +#define GL_HP_convolution_border_modes 1 +#define GL_IGNORE_BORDER_HP 0x8150 +#define GL_CONSTANT_BORDER_HP 0x8151 +#define GL_REPLICATE_BORDER_HP 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 +#endif /* GL_HP_convolution_border_modes */ + +#ifndef GL_HP_image_transform +#define GL_HP_image_transform 1 +#define GL_IMAGE_SCALE_X_HP 0x8155 +#define GL_IMAGE_SCALE_Y_HP 0x8156 +#define GL_IMAGE_TRANSLATE_X_HP 0x8157 +#define GL_IMAGE_TRANSLATE_Y_HP 0x8158 +#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 +#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A +#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B +#define GL_IMAGE_MAG_FILTER_HP 0x815C +#define GL_IMAGE_MIN_FILTER_HP 0x815D +#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E +#define GL_CUBIC_HP 0x815F +#define GL_AVERAGE_HP 0x8160 +#define GL_IMAGE_TRANSFORM_2D_HP 0x8161 +#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 +#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glImageTransformParameteriHP (GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glImageTransformParameterfHP (GLenum target, GLenum pname, GLfloat param); +GLAPI void APIENTRY glImageTransformParameterivHP (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum target, GLenum pname, GLfloat *params); +#endif +#endif /* GL_HP_image_transform */ + +#ifndef GL_HP_occlusion_test +#define GL_HP_occlusion_test 1 +#define GL_OCCLUSION_TEST_HP 0x8165 +#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 +#endif /* GL_HP_occlusion_test */ + +#ifndef GL_HP_texture_lighting +#define GL_HP_texture_lighting 1 +#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 +#define GL_TEXTURE_POST_SPECULAR_HP 0x8168 +#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 +#endif /* GL_HP_texture_lighting */ + +#ifndef GL_IBM_cull_vertex +#define GL_IBM_cull_vertex 1 +#define GL_CULL_VERTEX_IBM 103050 +#endif /* GL_IBM_cull_vertex */ + +#ifndef GL_IBM_multimode_draw_arrays +#define GL_IBM_multimode_draw_arrays 1 +typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); +typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); +GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride); +#endif +#endif /* GL_IBM_multimode_draw_arrays */ + +#ifndef GL_IBM_rasterpos_clip +#define GL_IBM_rasterpos_clip 1 +#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 +#endif /* GL_IBM_rasterpos_clip */ + +#ifndef GL_IBM_static_data +#define GL_IBM_static_data 1 +#define GL_ALL_STATIC_DATA_IBM 103060 +#define GL_STATIC_VERTEX_ARRAY_IBM 103061 +typedef void (APIENTRYP PFNGLFLUSHSTATICDATAIBMPROC) (GLenum target); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFlushStaticDataIBM (GLenum target); +#endif +#endif /* GL_IBM_static_data */ + +#ifndef GL_IBM_texture_mirrored_repeat +#define GL_IBM_texture_mirrored_repeat 1 +#define GL_MIRRORED_REPEAT_IBM 0x8370 +#endif /* GL_IBM_texture_mirrored_repeat */ + +#ifndef GL_IBM_vertex_array_lists +#define GL_IBM_vertex_array_lists 1 +#define GL_VERTEX_ARRAY_LIST_IBM 103070 +#define GL_NORMAL_ARRAY_LIST_IBM 103071 +#define GL_COLOR_ARRAY_LIST_IBM 103072 +#define GL_INDEX_ARRAY_LIST_IBM 103073 +#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 +#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 +#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 +#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 +#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 +#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 +#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 +#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 +#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 +#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 +#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 +#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 +typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean **pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint stride, const GLboolean **pointer, GLint ptrstride); +GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride); +GLAPI void APIENTRY glIndexPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride); +GLAPI void APIENTRY glNormalPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride); +GLAPI void APIENTRY glTexCoordPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +GLAPI void APIENTRY glVertexPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +#endif +#endif /* GL_IBM_vertex_array_lists */ + +#ifndef GL_INGR_blend_func_separate +#define GL_INGR_blend_func_separate 1 +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif +#endif /* GL_INGR_blend_func_separate */ + +#ifndef GL_INGR_color_clamp +#define GL_INGR_color_clamp 1 +#define GL_RED_MIN_CLAMP_INGR 0x8560 +#define GL_GREEN_MIN_CLAMP_INGR 0x8561 +#define GL_BLUE_MIN_CLAMP_INGR 0x8562 +#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 +#define GL_RED_MAX_CLAMP_INGR 0x8564 +#define GL_GREEN_MAX_CLAMP_INGR 0x8565 +#define GL_BLUE_MAX_CLAMP_INGR 0x8566 +#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 +#endif /* GL_INGR_color_clamp */ + +#ifndef GL_INGR_interlace_read +#define GL_INGR_interlace_read 1 +#define GL_INTERLACE_READ_INGR 0x8568 +#endif /* GL_INGR_interlace_read */ + +#ifndef GL_INTEL_fragment_shader_ordering +#define GL_INTEL_fragment_shader_ordering 1 +#endif /* GL_INTEL_fragment_shader_ordering */ + +#ifndef GL_INTEL_map_texture +#define GL_INTEL_map_texture 1 +#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF +#define GL_LAYOUT_DEFAULT_INTEL 0 +#define GL_LAYOUT_LINEAR_INTEL 1 +#define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 2 +typedef void (APIENTRYP PFNGLSYNCTEXTUREINTELPROC) (GLuint texture); +typedef void (APIENTRYP PFNGLUNMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level); +typedef void *(APIENTRYP PFNGLMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSyncTextureINTEL (GLuint texture); +GLAPI void APIENTRY glUnmapTexture2DINTEL (GLuint texture, GLint level); +GLAPI void *APIENTRY glMapTexture2DINTEL (GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout); +#endif +#endif /* GL_INTEL_map_texture */ + +#ifndef GL_INTEL_parallel_arrays +#define GL_INTEL_parallel_arrays 1 +#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 +#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 +#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 +#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 +#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 +typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer); +typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const void **pointer); +typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer); +typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexPointervINTEL (GLint size, GLenum type, const void **pointer); +GLAPI void APIENTRY glNormalPointervINTEL (GLenum type, const void **pointer); +GLAPI void APIENTRY glColorPointervINTEL (GLint size, GLenum type, const void **pointer); +GLAPI void APIENTRY glTexCoordPointervINTEL (GLint size, GLenum type, const void **pointer); +#endif +#endif /* GL_INTEL_parallel_arrays */ + +#ifndef GL_INTEL_performance_query +#define GL_INTEL_performance_query 1 +#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000 +#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001 +#define GL_PERFQUERY_WAIT_INTEL 0x83FB +#define GL_PERFQUERY_FLUSH_INTEL 0x83FA +#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9 +#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0 +#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1 +#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2 +#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3 +#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4 +#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5 +#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8 +#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9 +#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA +#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB +#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC +#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD +#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE +#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF +#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500 +typedef void (APIENTRYP PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle); +typedef void (APIENTRYP PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint *queryHandle); +typedef void (APIENTRYP PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle); +typedef void (APIENTRYP PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle); +typedef void (APIENTRYP PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint *queryId); +typedef void (APIENTRYP PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint *nextQueryId); +typedef void (APIENTRYP PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); +typedef void (APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten); +typedef void (APIENTRYP PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar *queryName, GLuint *queryId); +typedef void (APIENTRYP PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginPerfQueryINTEL (GLuint queryHandle); +GLAPI void APIENTRY glCreatePerfQueryINTEL (GLuint queryId, GLuint *queryHandle); +GLAPI void APIENTRY glDeletePerfQueryINTEL (GLuint queryHandle); +GLAPI void APIENTRY glEndPerfQueryINTEL (GLuint queryHandle); +GLAPI void APIENTRY glGetFirstPerfQueryIdINTEL (GLuint *queryId); +GLAPI void APIENTRY glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint *nextQueryId); +GLAPI void APIENTRY glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); +GLAPI void APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten); +GLAPI void APIENTRY glGetPerfQueryIdByNameINTEL (GLchar *queryName, GLuint *queryId); +GLAPI void APIENTRY glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); +#endif +#endif /* GL_INTEL_performance_query */ + +#ifndef GL_MESAX_texture_stack +#define GL_MESAX_texture_stack 1 +#define GL_TEXTURE_1D_STACK_MESAX 0x8759 +#define GL_TEXTURE_2D_STACK_MESAX 0x875A +#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B +#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C +#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D +#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E +#endif /* GL_MESAX_texture_stack */ + +#ifndef GL_MESA_pack_invert +#define GL_MESA_pack_invert 1 +#define GL_PACK_INVERT_MESA 0x8758 +#endif /* GL_MESA_pack_invert */ + +#ifndef GL_MESA_resize_buffers +#define GL_MESA_resize_buffers 1 +typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glResizeBuffersMESA (void); +#endif +#endif /* GL_MESA_resize_buffers */ + +#ifndef GL_MESA_window_pos +#define GL_MESA_window_pos 1 +typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); +typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWindowPos2dMESA (GLdouble x, GLdouble y); +GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *v); +GLAPI void APIENTRY glWindowPos2fMESA (GLfloat x, GLfloat y); +GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *v); +GLAPI void APIENTRY glWindowPos2iMESA (GLint x, GLint y); +GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *v); +GLAPI void APIENTRY glWindowPos2sMESA (GLshort x, GLshort y); +GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *v); +GLAPI void APIENTRY glWindowPos3dMESA (GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *v); +GLAPI void APIENTRY glWindowPos3fMESA (GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *v); +GLAPI void APIENTRY glWindowPos3iMESA (GLint x, GLint y, GLint z); +GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *v); +GLAPI void APIENTRY glWindowPos3sMESA (GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *v); +GLAPI void APIENTRY glWindowPos4dMESA (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *v); +GLAPI void APIENTRY glWindowPos4fMESA (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *v); +GLAPI void APIENTRY glWindowPos4iMESA (GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *v); +GLAPI void APIENTRY glWindowPos4sMESA (GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *v); +#endif +#endif /* GL_MESA_window_pos */ + +#ifndef GL_MESA_ycbcr_texture +#define GL_MESA_ycbcr_texture 1 +#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB +#define GL_YCBCR_MESA 0x8757 +#endif /* GL_MESA_ycbcr_texture */ + +#ifndef GL_NVX_conditional_render +#define GL_NVX_conditional_render 1 +typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVXPROC) (GLuint id); +typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVXPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginConditionalRenderNVX (GLuint id); +GLAPI void APIENTRY glEndConditionalRenderNVX (void); +#endif +#endif /* GL_NVX_conditional_render */ + +#ifndef GL_NVX_gpu_memory_info +#define GL_NVX_gpu_memory_info 1 +#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 +#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048 +#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 +#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A +#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B +#endif /* GL_NVX_gpu_memory_info */ + +#ifndef GL_NV_bindless_multi_draw_indirect +#define GL_NV_bindless_multi_draw_indirect 1 +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiDrawArraysIndirectBindlessNV (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); +GLAPI void APIENTRY glMultiDrawElementsIndirectBindlessNV (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); +#endif +#endif /* GL_NV_bindless_multi_draw_indirect */ + +#ifndef GL_NV_bindless_texture +#define GL_NV_bindless_texture 1 +typedef GLuint64 (APIENTRYP PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture); +typedef GLuint64 (APIENTRYP PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler); +typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); +typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle); +typedef GLuint64 (APIENTRYP PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access); +typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle); +typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value); +typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64 *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +typedef GLboolean (APIENTRYP PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); +typedef GLboolean (APIENTRYP PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint64 APIENTRY glGetTextureHandleNV (GLuint texture); +GLAPI GLuint64 APIENTRY glGetTextureSamplerHandleNV (GLuint texture, GLuint sampler); +GLAPI void APIENTRY glMakeTextureHandleResidentNV (GLuint64 handle); +GLAPI void APIENTRY glMakeTextureHandleNonResidentNV (GLuint64 handle); +GLAPI GLuint64 APIENTRY glGetImageHandleNV (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +GLAPI void APIENTRY glMakeImageHandleResidentNV (GLuint64 handle, GLenum access); +GLAPI void APIENTRY glMakeImageHandleNonResidentNV (GLuint64 handle); +GLAPI void APIENTRY glUniformHandleui64NV (GLint location, GLuint64 value); +GLAPI void APIENTRY glUniformHandleui64vNV (GLint location, GLsizei count, const GLuint64 *value); +GLAPI void APIENTRY glProgramUniformHandleui64NV (GLuint program, GLint location, GLuint64 value); +GLAPI void APIENTRY glProgramUniformHandleui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +GLAPI GLboolean APIENTRY glIsTextureHandleResidentNV (GLuint64 handle); +GLAPI GLboolean APIENTRY glIsImageHandleResidentNV (GLuint64 handle); +#endif +#endif /* GL_NV_bindless_texture */ + +#ifndef GL_NV_blend_equation_advanced +#define GL_NV_blend_equation_advanced 1 +#define GL_BLEND_OVERLAP_NV 0x9281 +#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280 +#define GL_BLUE_NV 0x1905 +#define GL_COLORBURN_NV 0x929A +#define GL_COLORDODGE_NV 0x9299 +#define GL_CONJOINT_NV 0x9284 +#define GL_CONTRAST_NV 0x92A1 +#define GL_DARKEN_NV 0x9297 +#define GL_DIFFERENCE_NV 0x929E +#define GL_DISJOINT_NV 0x9283 +#define GL_DST_ATOP_NV 0x928F +#define GL_DST_IN_NV 0x928B +#define GL_DST_NV 0x9287 +#define GL_DST_OUT_NV 0x928D +#define GL_DST_OVER_NV 0x9289 +#define GL_EXCLUSION_NV 0x92A0 +#define GL_GREEN_NV 0x1904 +#define GL_HARDLIGHT_NV 0x929B +#define GL_HARDMIX_NV 0x92A9 +#define GL_HSL_COLOR_NV 0x92AF +#define GL_HSL_HUE_NV 0x92AD +#define GL_HSL_LUMINOSITY_NV 0x92B0 +#define GL_HSL_SATURATION_NV 0x92AE +#define GL_INVERT_OVG_NV 0x92B4 +#define GL_INVERT_RGB_NV 0x92A3 +#define GL_LIGHTEN_NV 0x9298 +#define GL_LINEARBURN_NV 0x92A5 +#define GL_LINEARDODGE_NV 0x92A4 +#define GL_LINEARLIGHT_NV 0x92A7 +#define GL_MINUS_CLAMPED_NV 0x92B3 +#define GL_MINUS_NV 0x929F +#define GL_MULTIPLY_NV 0x9294 +#define GL_OVERLAY_NV 0x9296 +#define GL_PINLIGHT_NV 0x92A8 +#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2 +#define GL_PLUS_CLAMPED_NV 0x92B1 +#define GL_PLUS_DARKER_NV 0x9292 +#define GL_PLUS_NV 0x9291 +#define GL_RED_NV 0x1903 +#define GL_SCREEN_NV 0x9295 +#define GL_SOFTLIGHT_NV 0x929C +#define GL_SRC_ATOP_NV 0x928E +#define GL_SRC_IN_NV 0x928A +#define GL_SRC_NV 0x9286 +#define GL_SRC_OUT_NV 0x928C +#define GL_SRC_OVER_NV 0x9288 +#define GL_UNCORRELATED_NV 0x9282 +#define GL_VIVIDLIGHT_NV 0x92A6 +#define GL_XOR_NV 0x1506 +typedef void (APIENTRYP PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLBLENDBARRIERNVPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendParameteriNV (GLenum pname, GLint value); +GLAPI void APIENTRY glBlendBarrierNV (void); +#endif +#endif /* GL_NV_blend_equation_advanced */ + +#ifndef GL_NV_blend_equation_advanced_coherent +#define GL_NV_blend_equation_advanced_coherent 1 +#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285 +#endif /* GL_NV_blend_equation_advanced_coherent */ + +#ifndef GL_NV_blend_square +#define GL_NV_blend_square 1 +#endif /* GL_NV_blend_square */ + +#ifndef GL_NV_compute_program5 +#define GL_NV_compute_program5 1 +#define GL_COMPUTE_PROGRAM_NV 0x90FB +#define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90FC +#endif /* GL_NV_compute_program5 */ + +#ifndef GL_NV_conditional_render +#define GL_NV_conditional_render 1 +#define GL_QUERY_WAIT_NV 0x8E13 +#define GL_QUERY_NO_WAIT_NV 0x8E14 +#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 +typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); +typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginConditionalRenderNV (GLuint id, GLenum mode); +GLAPI void APIENTRY glEndConditionalRenderNV (void); +#endif +#endif /* GL_NV_conditional_render */ + +#ifndef GL_NV_copy_depth_to_color +#define GL_NV_copy_depth_to_color 1 +#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E +#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F +#endif /* GL_NV_copy_depth_to_color */ + +#ifndef GL_NV_copy_image +#define GL_NV_copy_image 1 +typedef void (APIENTRYP PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCopyImageSubDataNV (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +#endif +#endif /* GL_NV_copy_image */ + +#ifndef GL_NV_deep_texture3D +#define GL_NV_deep_texture3D 1 +#define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0 +#define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1 +#endif /* GL_NV_deep_texture3D */ + +#ifndef GL_NV_depth_buffer_float +#define GL_NV_depth_buffer_float 1 +#define GL_DEPTH_COMPONENT32F_NV 0x8DAB +#define GL_DEPTH32F_STENCIL8_NV 0x8DAC +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD +#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF +typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); +typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); +typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDepthRangedNV (GLdouble zNear, GLdouble zFar); +GLAPI void APIENTRY glClearDepthdNV (GLdouble depth); +GLAPI void APIENTRY glDepthBoundsdNV (GLdouble zmin, GLdouble zmax); +#endif +#endif /* GL_NV_depth_buffer_float */ + +#ifndef GL_NV_depth_clamp +#define GL_NV_depth_clamp 1 +#define GL_DEPTH_CLAMP_NV 0x864F +#endif /* GL_NV_depth_clamp */ + +#ifndef GL_NV_draw_texture +#define GL_NV_draw_texture 1 +typedef void (APIENTRYP PFNGLDRAWTEXTURENVPROC) (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawTextureNV (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); +#endif +#endif /* GL_NV_draw_texture */ + +#ifndef GL_NV_evaluators +#define GL_NV_evaluators 1 +#define GL_EVAL_2D_NV 0x86C0 +#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 +#define GL_MAP_TESSELLATION_NV 0x86C2 +#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 +#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 +#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 +#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 +#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 +#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 +#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 +#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA +#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB +#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC +#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD +#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE +#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF +#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 +#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 +#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 +#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 +#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 +#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 +#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 +#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 +typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points); +typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points); +typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points); +GLAPI void APIENTRY glMapParameterivNV (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glMapParameterfvNV (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glGetMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points); +GLAPI void APIENTRY glGetMapParameterivNV (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetMapParameterfvNV (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum target, GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glEvalMapsNV (GLenum target, GLenum mode); +#endif +#endif /* GL_NV_evaluators */ + +#ifndef GL_NV_explicit_multisample +#define GL_NV_explicit_multisample 1 +#define GL_SAMPLE_POSITION_NV 0x8E50 +#define GL_SAMPLE_MASK_NV 0x8E51 +#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 +#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 +#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 +#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 +#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 +#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 +#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 +#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 +typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat *val); +typedef void (APIENTRYP PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); +typedef void (APIENTRYP PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetMultisamplefvNV (GLenum pname, GLuint index, GLfloat *val); +GLAPI void APIENTRY glSampleMaskIndexedNV (GLuint index, GLbitfield mask); +GLAPI void APIENTRY glTexRenderbufferNV (GLenum target, GLuint renderbuffer); +#endif +#endif /* GL_NV_explicit_multisample */ + +#ifndef GL_NV_fence +#define GL_NV_fence 1 +#define GL_ALL_COMPLETED_NV 0x84F2 +#define GL_FENCE_STATUS_NV 0x84F3 +#define GL_FENCE_CONDITION_NV 0x84F4 +typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); +typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); +typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); +typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); +typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); +GLAPI void APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); +GLAPI GLboolean APIENTRY glIsFenceNV (GLuint fence); +GLAPI GLboolean APIENTRY glTestFenceNV (GLuint fence); +GLAPI void APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); +GLAPI void APIENTRY glFinishFenceNV (GLuint fence); +GLAPI void APIENTRY glSetFenceNV (GLuint fence, GLenum condition); +#endif +#endif /* GL_NV_fence */ + +#ifndef GL_NV_float_buffer +#define GL_NV_float_buffer 1 +#define GL_FLOAT_R_NV 0x8880 +#define GL_FLOAT_RG_NV 0x8881 +#define GL_FLOAT_RGB_NV 0x8882 +#define GL_FLOAT_RGBA_NV 0x8883 +#define GL_FLOAT_R16_NV 0x8884 +#define GL_FLOAT_R32_NV 0x8885 +#define GL_FLOAT_RG16_NV 0x8886 +#define GL_FLOAT_RG32_NV 0x8887 +#define GL_FLOAT_RGB16_NV 0x8888 +#define GL_FLOAT_RGB32_NV 0x8889 +#define GL_FLOAT_RGBA16_NV 0x888A +#define GL_FLOAT_RGBA32_NV 0x888B +#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C +#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D +#define GL_FLOAT_RGBA_MODE_NV 0x888E +#endif /* GL_NV_float_buffer */ + +#ifndef GL_NV_fog_distance +#define GL_NV_fog_distance 1 +#define GL_FOG_DISTANCE_MODE_NV 0x855A +#define GL_EYE_RADIAL_NV 0x855B +#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C +#endif /* GL_NV_fog_distance */ + +#ifndef GL_NV_fragment_program +#define GL_NV_fragment_program 1 +#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 +#define GL_FRAGMENT_PROGRAM_NV 0x8870 +#define GL_MAX_TEXTURE_COORDS_NV 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 +#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 +#define GL_PROGRAM_ERROR_STRING_NV 0x8874 +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); +typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); +GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); +GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); +GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); +#endif +#endif /* GL_NV_fragment_program */ + +#ifndef GL_NV_fragment_program2 +#define GL_NV_fragment_program2 1 +#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 +#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 +#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 +#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 +#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 +#endif /* GL_NV_fragment_program2 */ + +#ifndef GL_NV_fragment_program4 +#define GL_NV_fragment_program4 1 +#endif /* GL_NV_fragment_program4 */ + +#ifndef GL_NV_fragment_program_option +#define GL_NV_fragment_program_option 1 +#endif /* GL_NV_fragment_program_option */ + +#ifndef GL_NV_framebuffer_multisample_coverage +#define GL_NV_framebuffer_multisample_coverage 1 +#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB +#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 +#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 +#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +#endif +#endif /* GL_NV_framebuffer_multisample_coverage */ + +#ifndef GL_NV_geometry_program4 +#define GL_NV_geometry_program4 1 +#define GL_GEOMETRY_PROGRAM_NV 0x8C26 +#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 +#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 +typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramVertexLimitNV (GLenum target, GLint limit); +GLAPI void APIENTRY glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#endif +#endif /* GL_NV_geometry_program4 */ + +#ifndef GL_NV_geometry_shader4 +#define GL_NV_geometry_shader4 1 +#endif /* GL_NV_geometry_shader4 */ + +#ifndef GL_NV_gpu_program4 +#define GL_NV_gpu_program4 1 +#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 +#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 +#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 +#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 +#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 +#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 +#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum target, GLuint index, const GLint *params); +GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params); +GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum target, GLuint index, const GLuint *params); +GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params); +GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum target, GLuint index, const GLint *params); +GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params); +GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum target, GLuint index, const GLuint *params); +GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params); +GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum target, GLuint index, GLint *params); +GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum target, GLuint index, GLuint *params); +GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum target, GLuint index, GLint *params); +GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum target, GLuint index, GLuint *params); +#endif +#endif /* GL_NV_gpu_program4 */ + +#ifndef GL_NV_gpu_program5 +#define GL_NV_gpu_program5 1 +#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C +#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F +#define GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV 0x8F44 +#define GL_MAX_PROGRAM_SUBROUTINE_NUM_NV 0x8F45 +typedef void (APIENTRYP PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC) (GLenum target, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC) (GLenum target, GLuint index, GLuint *param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramSubroutineParametersuivNV (GLenum target, GLsizei count, const GLuint *params); +GLAPI void APIENTRY glGetProgramSubroutineParameteruivNV (GLenum target, GLuint index, GLuint *param); +#endif +#endif /* GL_NV_gpu_program5 */ + +#ifndef GL_NV_gpu_program5_mem_extended +#define GL_NV_gpu_program5_mem_extended 1 +#endif /* GL_NV_gpu_program5_mem_extended */ + +#ifndef GL_NV_gpu_shader5 +#define GL_NV_gpu_shader5 1 +#endif /* GL_NV_gpu_shader5 */ + +#ifndef GL_NV_half_float +#define GL_NV_half_float 1 +typedef unsigned short GLhalfNV; +#define GL_HALF_FLOAT_NV 0x140B +typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y); +typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z); +typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); +typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); +typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s); +typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t); +typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r); +typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog); +typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertex2hNV (GLhalfNV x, GLhalfNV y); +GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glVertex3hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z); +GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glVertex4hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glNormal3hNV (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); +GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glColor4hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); +GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV s); +GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV s, GLhalfNV t); +GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r); +GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum target, GLhalfNV s); +GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum target, const GLhalfNV *v); +GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum target, GLhalfNV s, GLhalfNV t); +GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum target, const GLhalfNV *v); +GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); +GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum target, const GLhalfNV *v); +GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum target, const GLhalfNV *v); +GLAPI void APIENTRY glFogCoordhNV (GLhalfNV fog); +GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *fog); +GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV weight); +GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *weight); +GLAPI void APIENTRY glVertexAttrib1hNV (GLuint index, GLhalfNV x); +GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint index, const GLhalfNV *v); +GLAPI void APIENTRY glVertexAttrib2hNV (GLuint index, GLhalfNV x, GLhalfNV y); +GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint index, const GLhalfNV *v); +GLAPI void APIENTRY glVertexAttrib3hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); +GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint index, const GLhalfNV *v); +GLAPI void APIENTRY glVertexAttrib4hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint index, const GLhalfNV *v); +GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint index, GLsizei n, const GLhalfNV *v); +GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint index, GLsizei n, const GLhalfNV *v); +GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint index, GLsizei n, const GLhalfNV *v); +GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint index, GLsizei n, const GLhalfNV *v); +#endif +#endif /* GL_NV_half_float */ + +#ifndef GL_NV_light_max_exponent +#define GL_NV_light_max_exponent 1 +#define GL_MAX_SHININESS_NV 0x8504 +#define GL_MAX_SPOT_EXPONENT_NV 0x8505 +#endif /* GL_NV_light_max_exponent */ + +#ifndef GL_NV_multisample_coverage +#define GL_NV_multisample_coverage 1 +#define GL_COLOR_SAMPLES_NV 0x8E20 +#endif /* GL_NV_multisample_coverage */ + +#ifndef GL_NV_multisample_filter_hint +#define GL_NV_multisample_filter_hint 1 +#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 +#endif /* GL_NV_multisample_filter_hint */ + +#ifndef GL_NV_occlusion_query +#define GL_NV_occlusion_query 1 +#define GL_PIXEL_COUNTER_BITS_NV 0x8864 +#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 +#define GL_PIXEL_COUNT_NV 0x8866 +#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 +typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void); +typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei n, GLuint *ids); +GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei n, const GLuint *ids); +GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint id); +GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint id); +GLAPI void APIENTRY glEndOcclusionQueryNV (void); +GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint id, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint id, GLenum pname, GLuint *params); +#endif +#endif /* GL_NV_occlusion_query */ + +#ifndef GL_NV_packed_depth_stencil +#define GL_NV_packed_depth_stencil 1 +#define GL_DEPTH_STENCIL_NV 0x84F9 +#define GL_UNSIGNED_INT_24_8_NV 0x84FA +#endif /* GL_NV_packed_depth_stencil */ + +#ifndef GL_NV_parameter_buffer_object +#define GL_NV_parameter_buffer_object 1 +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 +#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 +#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 +#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 +typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params); +typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params); +GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params); +GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params); +#endif +#endif /* GL_NV_parameter_buffer_object */ + +#ifndef GL_NV_parameter_buffer_object2 +#define GL_NV_parameter_buffer_object2 1 +#endif /* GL_NV_parameter_buffer_object2 */ + +#ifndef GL_NV_path_rendering +#define GL_NV_path_rendering 1 +#define GL_PATH_FORMAT_SVG_NV 0x9070 +#define GL_PATH_FORMAT_PS_NV 0x9071 +#define GL_STANDARD_FONT_NAME_NV 0x9072 +#define GL_SYSTEM_FONT_NAME_NV 0x9073 +#define GL_FILE_NAME_NV 0x9074 +#define GL_PATH_STROKE_WIDTH_NV 0x9075 +#define GL_PATH_END_CAPS_NV 0x9076 +#define GL_PATH_INITIAL_END_CAP_NV 0x9077 +#define GL_PATH_TERMINAL_END_CAP_NV 0x9078 +#define GL_PATH_JOIN_STYLE_NV 0x9079 +#define GL_PATH_MITER_LIMIT_NV 0x907A +#define GL_PATH_DASH_CAPS_NV 0x907B +#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C +#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D +#define GL_PATH_DASH_OFFSET_NV 0x907E +#define GL_PATH_CLIENT_LENGTH_NV 0x907F +#define GL_PATH_FILL_MODE_NV 0x9080 +#define GL_PATH_FILL_MASK_NV 0x9081 +#define GL_PATH_FILL_COVER_MODE_NV 0x9082 +#define GL_PATH_STROKE_COVER_MODE_NV 0x9083 +#define GL_PATH_STROKE_MASK_NV 0x9084 +#define GL_COUNT_UP_NV 0x9088 +#define GL_COUNT_DOWN_NV 0x9089 +#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A +#define GL_CONVEX_HULL_NV 0x908B +#define GL_BOUNDING_BOX_NV 0x908D +#define GL_TRANSLATE_X_NV 0x908E +#define GL_TRANSLATE_Y_NV 0x908F +#define GL_TRANSLATE_2D_NV 0x9090 +#define GL_TRANSLATE_3D_NV 0x9091 +#define GL_AFFINE_2D_NV 0x9092 +#define GL_AFFINE_3D_NV 0x9094 +#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 +#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 +#define GL_UTF8_NV 0x909A +#define GL_UTF16_NV 0x909B +#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C +#define GL_PATH_COMMAND_COUNT_NV 0x909D +#define GL_PATH_COORD_COUNT_NV 0x909E +#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F +#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 +#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 +#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 +#define GL_SQUARE_NV 0x90A3 +#define GL_ROUND_NV 0x90A4 +#define GL_TRIANGULAR_NV 0x90A5 +#define GL_BEVEL_NV 0x90A6 +#define GL_MITER_REVERT_NV 0x90A7 +#define GL_MITER_TRUNCATE_NV 0x90A8 +#define GL_SKIP_MISSING_GLYPH_NV 0x90A9 +#define GL_USE_MISSING_GLYPH_NV 0x90AA +#define GL_PATH_ERROR_POSITION_NV 0x90AB +#define GL_PATH_FOG_GEN_MODE_NV 0x90AC +#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD +#define GL_ADJACENT_PAIRS_NV 0x90AE +#define GL_FIRST_TO_REST_NV 0x90AF +#define GL_PATH_GEN_MODE_NV 0x90B0 +#define GL_PATH_GEN_COEFF_NV 0x90B1 +#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2 +#define GL_PATH_GEN_COMPONENTS_NV 0x90B3 +#define GL_PATH_STENCIL_FUNC_NV 0x90B7 +#define GL_PATH_STENCIL_REF_NV 0x90B8 +#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 +#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD +#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE +#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF +#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 +#define GL_MOVE_TO_RESETS_NV 0x90B5 +#define GL_MOVE_TO_CONTINUES_NV 0x90B6 +#define GL_CLOSE_PATH_NV 0x00 +#define GL_MOVE_TO_NV 0x02 +#define GL_RELATIVE_MOVE_TO_NV 0x03 +#define GL_LINE_TO_NV 0x04 +#define GL_RELATIVE_LINE_TO_NV 0x05 +#define GL_HORIZONTAL_LINE_TO_NV 0x06 +#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 +#define GL_VERTICAL_LINE_TO_NV 0x08 +#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 +#define GL_QUADRATIC_CURVE_TO_NV 0x0A +#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B +#define GL_CUBIC_CURVE_TO_NV 0x0C +#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D +#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E +#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F +#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 +#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 +#define GL_SMALL_CCW_ARC_TO_NV 0x12 +#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 +#define GL_SMALL_CW_ARC_TO_NV 0x14 +#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 +#define GL_LARGE_CCW_ARC_TO_NV 0x16 +#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 +#define GL_LARGE_CW_ARC_TO_NV 0x18 +#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 +#define GL_RESTART_PATH_NV 0xF0 +#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2 +#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4 +#define GL_RECT_NV 0xF6 +#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 +#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA +#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC +#define GL_ARC_TO_NV 0xFE +#define GL_RELATIVE_ARC_TO_NV 0xFF +#define GL_BOLD_BIT_NV 0x01 +#define GL_ITALIC_BIT_NV 0x02 +#define GL_GLYPH_WIDTH_BIT_NV 0x01 +#define GL_GLYPH_HEIGHT_BIT_NV 0x02 +#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 +#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 +#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 +#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 +#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 +#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 +#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100 +#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000 +#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000 +#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000 +#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000 +#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000 +#define GL_FONT_ASCENDER_BIT_NV 0x00200000 +#define GL_FONT_DESCENDER_BIT_NV 0x00400000 +#define GL_FONT_HEIGHT_BIT_NV 0x00800000 +#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000 +#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000 +#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000 +#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000 +#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000 +#define GL_PRIMARY_COLOR_NV 0x852C +#define GL_SECONDARY_COLOR_NV 0x852D +typedef GLuint (APIENTRYP PFNGLGENPATHSNVPROC) (GLsizei range); +typedef void (APIENTRYP PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); +typedef GLboolean (APIENTRYP PFNGLISPATHNVPROC) (GLuint path); +typedef void (APIENTRYP PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +typedef void (APIENTRYP PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); +typedef void (APIENTRYP PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +typedef void (APIENTRYP PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); +typedef void (APIENTRYP PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString); +typedef void (APIENTRYP PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef void (APIENTRYP PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef void (APIENTRYP PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); +typedef void (APIENTRYP PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); +typedef void (APIENTRYP PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); +typedef void (APIENTRYP PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); +typedef void (APIENTRYP PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint *value); +typedef void (APIENTRYP PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat *value); +typedef void (APIENTRYP PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); +typedef void (APIENTRYP PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat *dashArray); +typedef void (APIENTRYP PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); +typedef void (APIENTRYP PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units); +typedef void (APIENTRYP PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); +typedef void (APIENTRYP PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); +typedef void (APIENTRYP PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); +typedef void (APIENTRYP PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); +typedef void (APIENTRYP PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum func); +typedef void (APIENTRYP PFNGLPATHCOLORGENNVPROC) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs); +typedef void (APIENTRYP PFNGLPATHTEXGENNVPROC) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs); +typedef void (APIENTRYP PFNGLPATHFOGGENNVPROC) (GLenum genMode); +typedef void (APIENTRYP PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); +typedef void (APIENTRYP PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode); +typedef void (APIENTRYP PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +typedef void (APIENTRYP PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +typedef void (APIENTRYP PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint *value); +typedef void (APIENTRYP PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat *value); +typedef void (APIENTRYP PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte *commands); +typedef void (APIENTRYP PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat *coords); +typedef void (APIENTRYP PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat *dashArray); +typedef void (APIENTRYP PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); +typedef void (APIENTRYP PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); +typedef void (APIENTRYP PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); +typedef void (APIENTRYP PFNGLGETPATHCOLORGENIVNVPROC) (GLenum color, GLenum pname, GLint *value); +typedef void (APIENTRYP PFNGLGETPATHCOLORGENFVNVPROC) (GLenum color, GLenum pname, GLfloat *value); +typedef void (APIENTRYP PFNGLGETPATHTEXGENIVNVPROC) (GLenum texCoordSet, GLenum pname, GLint *value); +typedef void (APIENTRYP PFNGLGETPATHTEXGENFVNVPROC) (GLenum texCoordSet, GLenum pname, GLfloat *value); +typedef GLboolean (APIENTRYP PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); +typedef GLboolean (APIENTRYP PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); +typedef GLfloat (APIENTRYP PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); +typedef GLboolean (APIENTRYP PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint APIENTRY glGenPathsNV (GLsizei range); +GLAPI void APIENTRY glDeletePathsNV (GLuint path, GLsizei range); +GLAPI GLboolean APIENTRY glIsPathNV (GLuint path); +GLAPI void APIENTRY glPathCommandsNV (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +GLAPI void APIENTRY glPathCoordsNV (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); +GLAPI void APIENTRY glPathSubCommandsNV (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +GLAPI void APIENTRY glPathSubCoordsNV (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); +GLAPI void APIENTRY glPathStringNV (GLuint path, GLenum format, GLsizei length, const void *pathString); +GLAPI void APIENTRY glPathGlyphsNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +GLAPI void APIENTRY glPathGlyphRangeNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +GLAPI void APIENTRY glWeightPathsNV (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); +GLAPI void APIENTRY glCopyPathNV (GLuint resultPath, GLuint srcPath); +GLAPI void APIENTRY glInterpolatePathsNV (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); +GLAPI void APIENTRY glTransformPathNV (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); +GLAPI void APIENTRY glPathParameterivNV (GLuint path, GLenum pname, const GLint *value); +GLAPI void APIENTRY glPathParameteriNV (GLuint path, GLenum pname, GLint value); +GLAPI void APIENTRY glPathParameterfvNV (GLuint path, GLenum pname, const GLfloat *value); +GLAPI void APIENTRY glPathParameterfNV (GLuint path, GLenum pname, GLfloat value); +GLAPI void APIENTRY glPathDashArrayNV (GLuint path, GLsizei dashCount, const GLfloat *dashArray); +GLAPI void APIENTRY glPathStencilFuncNV (GLenum func, GLint ref, GLuint mask); +GLAPI void APIENTRY glPathStencilDepthOffsetNV (GLfloat factor, GLfloat units); +GLAPI void APIENTRY glStencilFillPathNV (GLuint path, GLenum fillMode, GLuint mask); +GLAPI void APIENTRY glStencilStrokePathNV (GLuint path, GLint reference, GLuint mask); +GLAPI void APIENTRY glStencilFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); +GLAPI void APIENTRY glStencilStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); +GLAPI void APIENTRY glPathCoverDepthFuncNV (GLenum func); +GLAPI void APIENTRY glPathColorGenNV (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs); +GLAPI void APIENTRY glPathTexGenNV (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs); +GLAPI void APIENTRY glPathFogGenNV (GLenum genMode); +GLAPI void APIENTRY glCoverFillPathNV (GLuint path, GLenum coverMode); +GLAPI void APIENTRY glCoverStrokePathNV (GLuint path, GLenum coverMode); +GLAPI void APIENTRY glCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +GLAPI void APIENTRY glCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +GLAPI void APIENTRY glGetPathParameterivNV (GLuint path, GLenum pname, GLint *value); +GLAPI void APIENTRY glGetPathParameterfvNV (GLuint path, GLenum pname, GLfloat *value); +GLAPI void APIENTRY glGetPathCommandsNV (GLuint path, GLubyte *commands); +GLAPI void APIENTRY glGetPathCoordsNV (GLuint path, GLfloat *coords); +GLAPI void APIENTRY glGetPathDashArrayNV (GLuint path, GLfloat *dashArray); +GLAPI void APIENTRY glGetPathMetricsNV (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); +GLAPI void APIENTRY glGetPathMetricRangeNV (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); +GLAPI void APIENTRY glGetPathSpacingNV (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); +GLAPI void APIENTRY glGetPathColorGenivNV (GLenum color, GLenum pname, GLint *value); +GLAPI void APIENTRY glGetPathColorGenfvNV (GLenum color, GLenum pname, GLfloat *value); +GLAPI void APIENTRY glGetPathTexGenivNV (GLenum texCoordSet, GLenum pname, GLint *value); +GLAPI void APIENTRY glGetPathTexGenfvNV (GLenum texCoordSet, GLenum pname, GLfloat *value); +GLAPI GLboolean APIENTRY glIsPointInFillPathNV (GLuint path, GLuint mask, GLfloat x, GLfloat y); +GLAPI GLboolean APIENTRY glIsPointInStrokePathNV (GLuint path, GLfloat x, GLfloat y); +GLAPI GLfloat APIENTRY glGetPathLengthNV (GLuint path, GLsizei startSegment, GLsizei numSegments); +GLAPI GLboolean APIENTRY glPointAlongPathNV (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); +#endif +#endif /* GL_NV_path_rendering */ + +#ifndef GL_NV_pixel_data_range +#define GL_NV_pixel_data_range 1 +#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 +#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 +#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A +#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B +#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C +#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D +typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, const void *pointer); +typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelDataRangeNV (GLenum target, GLsizei length, const void *pointer); +GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum target); +#endif +#endif /* GL_NV_pixel_data_range */ + +#ifndef GL_NV_point_sprite +#define GL_NV_point_sprite 1 +#define GL_POINT_SPRITE_NV 0x8861 +#define GL_COORD_REPLACE_NV 0x8862 +#define GL_POINT_SPRITE_R_MODE_NV 0x8863 +typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameteriNV (GLenum pname, GLint param); +GLAPI void APIENTRY glPointParameterivNV (GLenum pname, const GLint *params); +#endif +#endif /* GL_NV_point_sprite */ + +#ifndef GL_NV_present_video +#define GL_NV_present_video 1 +#define GL_FRAME_NV 0x8E26 +#define GL_FIELDS_NV 0x8E27 +#define GL_CURRENT_TIME_NV 0x8E28 +#define GL_NUM_FILL_STREAMS_NV 0x8E29 +#define GL_PRESENT_TIME_NV 0x8E2A +#define GL_PRESENT_DURATION_NV 0x8E2B +typedef void (APIENTRYP PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); +typedef void (APIENTRYP PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); +typedef void (APIENTRYP PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT *params); +typedef void (APIENTRYP PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPresentFrameKeyedNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); +GLAPI void APIENTRY glPresentFrameDualFillNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); +GLAPI void APIENTRY glGetVideoivNV (GLuint video_slot, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVideouivNV (GLuint video_slot, GLenum pname, GLuint *params); +GLAPI void APIENTRY glGetVideoi64vNV (GLuint video_slot, GLenum pname, GLint64EXT *params); +GLAPI void APIENTRY glGetVideoui64vNV (GLuint video_slot, GLenum pname, GLuint64EXT *params); +#endif +#endif /* GL_NV_present_video */ + +#ifndef GL_NV_primitive_restart +#define GL_NV_primitive_restart 1 +#define GL_PRIMITIVE_RESTART_NV 0x8558 +#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void); +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPrimitiveRestartNV (void); +GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint index); +#endif +#endif /* GL_NV_primitive_restart */ + +#ifndef GL_NV_register_combiners +#define GL_NV_register_combiners 1 +#define GL_REGISTER_COMBINERS_NV 0x8522 +#define GL_VARIABLE_A_NV 0x8523 +#define GL_VARIABLE_B_NV 0x8524 +#define GL_VARIABLE_C_NV 0x8525 +#define GL_VARIABLE_D_NV 0x8526 +#define GL_VARIABLE_E_NV 0x8527 +#define GL_VARIABLE_F_NV 0x8528 +#define GL_VARIABLE_G_NV 0x8529 +#define GL_CONSTANT_COLOR0_NV 0x852A +#define GL_CONSTANT_COLOR1_NV 0x852B +#define GL_SPARE0_NV 0x852E +#define GL_SPARE1_NV 0x852F +#define GL_DISCARD_NV 0x8530 +#define GL_E_TIMES_F_NV 0x8531 +#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 +#define GL_UNSIGNED_IDENTITY_NV 0x8536 +#define GL_UNSIGNED_INVERT_NV 0x8537 +#define GL_EXPAND_NORMAL_NV 0x8538 +#define GL_EXPAND_NEGATE_NV 0x8539 +#define GL_HALF_BIAS_NORMAL_NV 0x853A +#define GL_HALF_BIAS_NEGATE_NV 0x853B +#define GL_SIGNED_IDENTITY_NV 0x853C +#define GL_SIGNED_NEGATE_NV 0x853D +#define GL_SCALE_BY_TWO_NV 0x853E +#define GL_SCALE_BY_FOUR_NV 0x853F +#define GL_SCALE_BY_ONE_HALF_NV 0x8540 +#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 +#define GL_COMBINER_INPUT_NV 0x8542 +#define GL_COMBINER_MAPPING_NV 0x8543 +#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 +#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 +#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 +#define GL_COMBINER_MUX_SUM_NV 0x8547 +#define GL_COMBINER_SCALE_NV 0x8548 +#define GL_COMBINER_BIAS_NV 0x8549 +#define GL_COMBINER_AB_OUTPUT_NV 0x854A +#define GL_COMBINER_CD_OUTPUT_NV 0x854B +#define GL_COMBINER_SUM_OUTPUT_NV 0x854C +#define GL_MAX_GENERAL_COMBINERS_NV 0x854D +#define GL_NUM_GENERAL_COMBINERS_NV 0x854E +#define GL_COLOR_SUM_CLAMP_NV 0x854F +#define GL_COMBINER0_NV 0x8550 +#define GL_COMBINER1_NV 0x8551 +#define GL_COMBINER2_NV 0x8552 +#define GL_COMBINER3_NV 0x8553 +#define GL_COMBINER4_NV 0x8554 +#define GL_COMBINER5_NV 0x8555 +#define GL_COMBINER6_NV 0x8556 +#define GL_COMBINER7_NV 0x8557 +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); +typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCombinerParameterfvNV (GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glCombinerParameterfNV (GLenum pname, GLfloat param); +GLAPI void APIENTRY glCombinerParameterivNV (GLenum pname, const GLint *params); +GLAPI void APIENTRY glCombinerParameteriNV (GLenum pname, GLint param); +GLAPI void APIENTRY glCombinerInputNV (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +GLAPI void APIENTRY glCombinerOutputNV (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); +GLAPI void APIENTRY glFinalCombinerInputNV (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum stage, GLenum portion, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum variable, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum variable, GLenum pname, GLint *params); +#endif +#endif /* GL_NV_register_combiners */ + +#ifndef GL_NV_register_combiners2 +#define GL_NV_register_combiners2 1 +#define GL_PER_STAGE_CONSTANTS_NV 0x8535 +typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum stage, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum stage, GLenum pname, GLfloat *params); +#endif +#endif /* GL_NV_register_combiners2 */ + +#ifndef GL_NV_shader_atomic_counters +#define GL_NV_shader_atomic_counters 1 +#endif /* GL_NV_shader_atomic_counters */ + +#ifndef GL_NV_shader_atomic_float +#define GL_NV_shader_atomic_float 1 +#endif /* GL_NV_shader_atomic_float */ + +#ifndef GL_NV_shader_buffer_load +#define GL_NV_shader_buffer_load 1 +#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D +#define GL_GPU_ADDRESS_NV 0x8F34 +#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35 +typedef void (APIENTRYP PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access); +typedef void (APIENTRYP PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target); +typedef GLboolean (APIENTRYP PFNGLISBUFFERRESIDENTNVPROC) (GLenum target); +typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access); +typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer); +typedef GLboolean (APIENTRYP PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT *params); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT *params); +typedef void (APIENTRYP PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT *result); +typedef void (APIENTRYP PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value); +typedef void (APIENTRYP PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMakeBufferResidentNV (GLenum target, GLenum access); +GLAPI void APIENTRY glMakeBufferNonResidentNV (GLenum target); +GLAPI GLboolean APIENTRY glIsBufferResidentNV (GLenum target); +GLAPI void APIENTRY glMakeNamedBufferResidentNV (GLuint buffer, GLenum access); +GLAPI void APIENTRY glMakeNamedBufferNonResidentNV (GLuint buffer); +GLAPI GLboolean APIENTRY glIsNamedBufferResidentNV (GLuint buffer); +GLAPI void APIENTRY glGetBufferParameterui64vNV (GLenum target, GLenum pname, GLuint64EXT *params); +GLAPI void APIENTRY glGetNamedBufferParameterui64vNV (GLuint buffer, GLenum pname, GLuint64EXT *params); +GLAPI void APIENTRY glGetIntegerui64vNV (GLenum value, GLuint64EXT *result); +GLAPI void APIENTRY glUniformui64NV (GLint location, GLuint64EXT value); +GLAPI void APIENTRY glUniformui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glProgramUniformui64NV (GLuint program, GLint location, GLuint64EXT value); +GLAPI void APIENTRY glProgramUniformui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +#endif +#endif /* GL_NV_shader_buffer_load */ + +#ifndef GL_NV_shader_buffer_store +#define GL_NV_shader_buffer_store 1 +#define GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV 0x00000010 +#endif /* GL_NV_shader_buffer_store */ + +#ifndef GL_NV_shader_storage_buffer_object +#define GL_NV_shader_storage_buffer_object 1 +#endif /* GL_NV_shader_storage_buffer_object */ + +#ifndef GL_NV_shader_thread_group +#define GL_NV_shader_thread_group 1 +#define GL_WARP_SIZE_NV 0x9339 +#define GL_WARPS_PER_SM_NV 0x933A +#define GL_SM_COUNT_NV 0x933B +#endif /* GL_NV_shader_thread_group */ + +#ifndef GL_NV_shader_thread_shuffle +#define GL_NV_shader_thread_shuffle 1 +#endif /* GL_NV_shader_thread_shuffle */ + +#ifndef GL_NV_tessellation_program5 +#define GL_NV_tessellation_program5 1 +#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 +#define GL_TESS_CONTROL_PROGRAM_NV 0x891E +#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F +#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 +#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 +#endif /* GL_NV_tessellation_program5 */ + +#ifndef GL_NV_texgen_emboss +#define GL_NV_texgen_emboss 1 +#define GL_EMBOSS_LIGHT_NV 0x855D +#define GL_EMBOSS_CONSTANT_NV 0x855E +#define GL_EMBOSS_MAP_NV 0x855F +#endif /* GL_NV_texgen_emboss */ + +#ifndef GL_NV_texgen_reflection +#define GL_NV_texgen_reflection 1 +#define GL_NORMAL_MAP_NV 0x8511 +#define GL_REFLECTION_MAP_NV 0x8512 +#endif /* GL_NV_texgen_reflection */ + +#ifndef GL_NV_texture_barrier +#define GL_NV_texture_barrier 1 +typedef void (APIENTRYP PFNGLTEXTUREBARRIERNVPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureBarrierNV (void); +#endif +#endif /* GL_NV_texture_barrier */ + +#ifndef GL_NV_texture_compression_vtc +#define GL_NV_texture_compression_vtc 1 +#endif /* GL_NV_texture_compression_vtc */ + +#ifndef GL_NV_texture_env_combine4 +#define GL_NV_texture_env_combine4 1 +#define GL_COMBINE4_NV 0x8503 +#define GL_SOURCE3_RGB_NV 0x8583 +#define GL_SOURCE3_ALPHA_NV 0x858B +#define GL_OPERAND3_RGB_NV 0x8593 +#define GL_OPERAND3_ALPHA_NV 0x859B +#endif /* GL_NV_texture_env_combine4 */ + +#ifndef GL_NV_texture_expand_normal +#define GL_NV_texture_expand_normal 1 +#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F +#endif /* GL_NV_texture_expand_normal */ + +#ifndef GL_NV_texture_multisample +#define GL_NV_texture_multisample 1 +#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045 +#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046 +typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexImage2DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +GLAPI void APIENTRY glTexImage3DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +GLAPI void APIENTRY glTextureImage2DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +GLAPI void APIENTRY glTextureImage3DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +GLAPI void APIENTRY glTextureImage2DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +GLAPI void APIENTRY glTextureImage3DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +#endif +#endif /* GL_NV_texture_multisample */ + +#ifndef GL_NV_texture_rectangle +#define GL_NV_texture_rectangle 1 +#define GL_TEXTURE_RECTANGLE_NV 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 +#endif /* GL_NV_texture_rectangle */ + +#ifndef GL_NV_texture_shader +#define GL_NV_texture_shader 1 +#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C +#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D +#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E +#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 +#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA +#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB +#define GL_DSDT_MAG_INTENSITY_NV 0x86DC +#define GL_SHADER_CONSISTENT_NV 0x86DD +#define GL_TEXTURE_SHADER_NV 0x86DE +#define GL_SHADER_OPERATION_NV 0x86DF +#define GL_CULL_MODES_NV 0x86E0 +#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 +#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3 +#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 +#define GL_CONST_EYE_NV 0x86E5 +#define GL_PASS_THROUGH_NV 0x86E6 +#define GL_CULL_FRAGMENT_NV 0x86E7 +#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 +#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 +#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA +#define GL_DOT_PRODUCT_NV 0x86EC +#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED +#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE +#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 +#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 +#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 +#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 +#define GL_HILO_NV 0x86F4 +#define GL_DSDT_NV 0x86F5 +#define GL_DSDT_MAG_NV 0x86F6 +#define GL_DSDT_MAG_VIB_NV 0x86F7 +#define GL_HILO16_NV 0x86F8 +#define GL_SIGNED_HILO_NV 0x86F9 +#define GL_SIGNED_HILO16_NV 0x86FA +#define GL_SIGNED_RGBA_NV 0x86FB +#define GL_SIGNED_RGBA8_NV 0x86FC +#define GL_SIGNED_RGB_NV 0x86FE +#define GL_SIGNED_RGB8_NV 0x86FF +#define GL_SIGNED_LUMINANCE_NV 0x8701 +#define GL_SIGNED_LUMINANCE8_NV 0x8702 +#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 +#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 +#define GL_SIGNED_ALPHA_NV 0x8705 +#define GL_SIGNED_ALPHA8_NV 0x8706 +#define GL_SIGNED_INTENSITY_NV 0x8707 +#define GL_SIGNED_INTENSITY8_NV 0x8708 +#define GL_DSDT8_NV 0x8709 +#define GL_DSDT8_MAG8_NV 0x870A +#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B +#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C +#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D +#define GL_HI_SCALE_NV 0x870E +#define GL_LO_SCALE_NV 0x870F +#define GL_DS_SCALE_NV 0x8710 +#define GL_DT_SCALE_NV 0x8711 +#define GL_MAGNITUDE_SCALE_NV 0x8712 +#define GL_VIBRANCE_SCALE_NV 0x8713 +#define GL_HI_BIAS_NV 0x8714 +#define GL_LO_BIAS_NV 0x8715 +#define GL_DS_BIAS_NV 0x8716 +#define GL_DT_BIAS_NV 0x8717 +#define GL_MAGNITUDE_BIAS_NV 0x8718 +#define GL_VIBRANCE_BIAS_NV 0x8719 +#define GL_TEXTURE_BORDER_VALUES_NV 0x871A +#define GL_TEXTURE_HI_SIZE_NV 0x871B +#define GL_TEXTURE_LO_SIZE_NV 0x871C +#define GL_TEXTURE_DS_SIZE_NV 0x871D +#define GL_TEXTURE_DT_SIZE_NV 0x871E +#define GL_TEXTURE_MAG_SIZE_NV 0x871F +#endif /* GL_NV_texture_shader */ + +#ifndef GL_NV_texture_shader2 +#define GL_NV_texture_shader2 1 +#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF +#endif /* GL_NV_texture_shader2 */ + +#ifndef GL_NV_texture_shader3 +#define GL_NV_texture_shader3 1 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 +#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 +#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 +#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 +#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 +#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A +#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B +#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C +#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D +#define GL_HILO8_NV 0x885E +#define GL_SIGNED_HILO8_NV 0x885F +#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 +#endif /* GL_NV_texture_shader3 */ + +#ifndef GL_NV_transform_feedback +#define GL_NV_transform_feedback 1 +#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 +#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 +#define GL_TEXTURE_COORD_NV 0x8C79 +#define GL_CLIP_DISTANCE_NV 0x8C7A +#define GL_VERTEX_ID_NV 0x8C7B +#define GL_PRIMITIVE_ID_NV 0x8C7C +#define GL_GENERIC_ATTRIB_NV 0x8C7D +#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 +#define GL_ACTIVE_VARYINGS_NV 0x8C81 +#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 +#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 +#define GL_PRIMITIVES_GENERATED_NV 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 +#define GL_RASTERIZER_DISCARD_NV 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B +#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C +#define GL_SEPARATE_ATTRIBS_NV 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F +#define GL_LAYER_NV 0x8DAA +#define GL_NEXT_BUFFER_NV -2 +#define GL_SKIP_COMPONENTS4_NV -3 +#define GL_SKIP_COMPONENTS3_NV -4 +#define GL_SKIP_COMPONENTS2_NV -5 +#define GL_SKIP_COMPONENTS1_NV -6 +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); +typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC) (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum primitiveMode); +GLAPI void APIENTRY glEndTransformFeedbackNV (void); +GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLuint count, const GLint *attribs, GLenum bufferMode); +GLAPI void APIENTRY glBindBufferRangeNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI void APIENTRY glBindBufferOffsetNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +GLAPI void APIENTRY glBindBufferBaseNV (GLenum target, GLuint index, GLuint buffer); +GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); +GLAPI void APIENTRY glActiveVaryingNV (GLuint program, const GLchar *name); +GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint program, const GLchar *name); +GLAPI void APIENTRY glGetActiveVaryingNV (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint program, GLuint index, GLint *location); +GLAPI void APIENTRY glTransformFeedbackStreamAttribsNV (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); +#endif +#endif /* GL_NV_transform_feedback */ + +#ifndef GL_NV_transform_feedback2 +#define GL_NV_transform_feedback2 1 +#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 +typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint *ids); +typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); +typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindTransformFeedbackNV (GLenum target, GLuint id); +GLAPI void APIENTRY glDeleteTransformFeedbacksNV (GLsizei n, const GLuint *ids); +GLAPI void APIENTRY glGenTransformFeedbacksNV (GLsizei n, GLuint *ids); +GLAPI GLboolean APIENTRY glIsTransformFeedbackNV (GLuint id); +GLAPI void APIENTRY glPauseTransformFeedbackNV (void); +GLAPI void APIENTRY glResumeTransformFeedbackNV (void); +GLAPI void APIENTRY glDrawTransformFeedbackNV (GLenum mode, GLuint id); +#endif +#endif /* GL_NV_transform_feedback2 */ + +#ifndef GL_NV_vdpau_interop +#define GL_NV_vdpau_interop 1 +typedef GLintptr GLvdpauSurfaceNV; +#define GL_SURFACE_STATE_NV 0x86EB +#define GL_SURFACE_REGISTERED_NV 0x86FD +#define GL_SURFACE_MAPPED_NV 0x8700 +#define GL_WRITE_DISCARD_NV 0x88BE +typedef void (APIENTRYP PFNGLVDPAUINITNVPROC) (const void *vdpDevice, const void *getProcAddress); +typedef void (APIENTRYP PFNGLVDPAUFININVPROC) (void); +typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +typedef GLboolean (APIENTRYP PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); +typedef void (APIENTRYP PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); +typedef void (APIENTRYP PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +typedef void (APIENTRYP PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); +typedef void (APIENTRYP PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); +typedef void (APIENTRYP PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVDPAUInitNV (const void *vdpDevice, const void *getProcAddress); +GLAPI void APIENTRY glVDPAUFiniNV (void); +GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterOutputSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +GLAPI GLboolean APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface); +GLAPI void APIENTRY glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface); +GLAPI void APIENTRY glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +GLAPI void APIENTRY glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access); +GLAPI void APIENTRY glVDPAUMapSurfacesNV (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); +GLAPI void APIENTRY glVDPAUUnmapSurfacesNV (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); +#endif +#endif /* GL_NV_vdpau_interop */ + +#ifndef GL_NV_vertex_array_range +#define GL_NV_vertex_array_range 1 +#define GL_VERTEX_ARRAY_RANGE_NV 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E +#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 +typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); +typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFlushVertexArrayRangeNV (void); +GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei length, const void *pointer); +#endif +#endif /* GL_NV_vertex_array_range */ + +#ifndef GL_NV_vertex_array_range2 +#define GL_NV_vertex_array_range2 1 +#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 +#endif /* GL_NV_vertex_array_range2 */ + +#ifndef GL_NV_vertex_attrib_integer_64bit +#define GL_NV_vertex_attrib_integer_64bit 1 +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT *v); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT *params); +typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribL1i64NV (GLuint index, GLint64EXT x); +GLAPI void APIENTRY glVertexAttribL2i64NV (GLuint index, GLint64EXT x, GLint64EXT y); +GLAPI void APIENTRY glVertexAttribL3i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); +GLAPI void APIENTRY glVertexAttribL4i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +GLAPI void APIENTRY glVertexAttribL1i64vNV (GLuint index, const GLint64EXT *v); +GLAPI void APIENTRY glVertexAttribL2i64vNV (GLuint index, const GLint64EXT *v); +GLAPI void APIENTRY glVertexAttribL3i64vNV (GLuint index, const GLint64EXT *v); +GLAPI void APIENTRY glVertexAttribL4i64vNV (GLuint index, const GLint64EXT *v); +GLAPI void APIENTRY glVertexAttribL1ui64NV (GLuint index, GLuint64EXT x); +GLAPI void APIENTRY glVertexAttribL2ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y); +GLAPI void APIENTRY glVertexAttribL3ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +GLAPI void APIENTRY glVertexAttribL4ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +GLAPI void APIENTRY glVertexAttribL1ui64vNV (GLuint index, const GLuint64EXT *v); +GLAPI void APIENTRY glVertexAttribL2ui64vNV (GLuint index, const GLuint64EXT *v); +GLAPI void APIENTRY glVertexAttribL3ui64vNV (GLuint index, const GLuint64EXT *v); +GLAPI void APIENTRY glVertexAttribL4ui64vNV (GLuint index, const GLuint64EXT *v); +GLAPI void APIENTRY glGetVertexAttribLi64vNV (GLuint index, GLenum pname, GLint64EXT *params); +GLAPI void APIENTRY glGetVertexAttribLui64vNV (GLuint index, GLenum pname, GLuint64EXT *params); +GLAPI void APIENTRY glVertexAttribLFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride); +#endif +#endif /* GL_NV_vertex_attrib_integer_64bit */ + +#ifndef GL_NV_vertex_buffer_unified_memory +#define GL_NV_vertex_buffer_unified_memory 1 +#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E +#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F +#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20 +#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21 +#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22 +#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23 +#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24 +#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25 +#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26 +#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27 +#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28 +#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29 +#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A +#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B +#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C +#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D +#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E +#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F +#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30 +#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31 +#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32 +#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33 +#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40 +#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41 +#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42 +typedef void (APIENTRYP PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); +typedef void (APIENTRYP PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride); +typedef void (APIENTRYP PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT *result); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBufferAddressRangeNV (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); +GLAPI void APIENTRY glVertexFormatNV (GLint size, GLenum type, GLsizei stride); +GLAPI void APIENTRY glNormalFormatNV (GLenum type, GLsizei stride); +GLAPI void APIENTRY glColorFormatNV (GLint size, GLenum type, GLsizei stride); +GLAPI void APIENTRY glIndexFormatNV (GLenum type, GLsizei stride); +GLAPI void APIENTRY glTexCoordFormatNV (GLint size, GLenum type, GLsizei stride); +GLAPI void APIENTRY glEdgeFlagFormatNV (GLsizei stride); +GLAPI void APIENTRY glSecondaryColorFormatNV (GLint size, GLenum type, GLsizei stride); +GLAPI void APIENTRY glFogCoordFormatNV (GLenum type, GLsizei stride); +GLAPI void APIENTRY glVertexAttribFormatNV (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); +GLAPI void APIENTRY glVertexAttribIFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride); +GLAPI void APIENTRY glGetIntegerui64i_vNV (GLenum value, GLuint index, GLuint64EXT *result); +#endif +#endif /* GL_NV_vertex_buffer_unified_memory */ + +#ifndef GL_NV_vertex_program +#define GL_NV_vertex_program 1 +#define GL_VERTEX_PROGRAM_NV 0x8620 +#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 +#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 +#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 +#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 +#define GL_CURRENT_ATTRIB_NV 0x8626 +#define GL_PROGRAM_LENGTH_NV 0x8627 +#define GL_PROGRAM_STRING_NV 0x8628 +#define GL_MODELVIEW_PROJECTION_NV 0x8629 +#define GL_IDENTITY_NV 0x862A +#define GL_INVERSE_NV 0x862B +#define GL_TRANSPOSE_NV 0x862C +#define GL_INVERSE_TRANSPOSE_NV 0x862D +#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E +#define GL_MAX_TRACK_MATRICES_NV 0x862F +#define GL_MATRIX0_NV 0x8630 +#define GL_MATRIX1_NV 0x8631 +#define GL_MATRIX2_NV 0x8632 +#define GL_MATRIX3_NV 0x8633 +#define GL_MATRIX4_NV 0x8634 +#define GL_MATRIX5_NV 0x8635 +#define GL_MATRIX6_NV 0x8636 +#define GL_MATRIX7_NV 0x8637 +#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 +#define GL_CURRENT_MATRIX_NV 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 +#define GL_PROGRAM_PARAMETER_NV 0x8644 +#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 +#define GL_PROGRAM_TARGET_NV 0x8646 +#define GL_PROGRAM_RESIDENT_NV 0x8647 +#define GL_TRACK_MATRIX_NV 0x8648 +#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 +#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A +#define GL_PROGRAM_ERROR_POSITION_NV 0x864B +#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 +#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 +#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 +#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 +#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 +#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 +#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 +#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 +#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 +#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 +#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A +#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B +#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C +#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D +#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E +#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F +#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 +#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 +#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 +#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 +#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 +#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 +#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 +#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 +#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 +#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 +#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A +#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B +#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C +#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D +#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E +#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F +#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 +#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 +#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 +#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 +#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 +#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 +#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 +#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 +#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 +#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 +#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A +#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B +#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C +#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D +#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E +#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F +typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences); +typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params); +typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs); +typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program); +typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, void **pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei n, const GLuint *programs, GLboolean *residences); +GLAPI void APIENTRY glBindProgramNV (GLenum target, GLuint id); +GLAPI void APIENTRY glDeleteProgramsNV (GLsizei n, const GLuint *programs); +GLAPI void APIENTRY glExecuteProgramNV (GLenum target, GLuint id, const GLfloat *params); +GLAPI void APIENTRY glGenProgramsNV (GLsizei n, GLuint *programs); +GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum target, GLuint index, GLenum pname, GLdouble *params); +GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetProgramivNV (GLuint id, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetProgramStringNV (GLuint id, GLenum pname, GLubyte *program); +GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum target, GLuint address, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint index, GLenum pname, GLdouble *params); +GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint index, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetVertexAttribivNV (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint index, GLenum pname, void **pointer); +GLAPI GLboolean APIENTRY glIsProgramNV (GLuint id); +GLAPI void APIENTRY glLoadProgramNV (GLenum target, GLuint id, GLsizei len, const GLubyte *program); +GLAPI void APIENTRY glProgramParameter4dNV (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glProgramParameter4dvNV (GLenum target, GLuint index, const GLdouble *v); +GLAPI void APIENTRY glProgramParameter4fNV (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glProgramParameter4fvNV (GLenum target, GLuint index, const GLfloat *v); +GLAPI void APIENTRY glProgramParameters4dvNV (GLenum target, GLuint index, GLsizei count, const GLdouble *v); +GLAPI void APIENTRY glProgramParameters4fvNV (GLenum target, GLuint index, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei n, const GLuint *programs); +GLAPI void APIENTRY glTrackMatrixNV (GLenum target, GLuint address, GLenum matrix, GLenum transform); +GLAPI void APIENTRY glVertexAttribPointerNV (GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glVertexAttrib1dNV (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib1fNV (GLuint index, GLfloat x); +GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib1sNV (GLuint index, GLshort x); +GLAPI void APIENTRY glVertexAttrib1svNV (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib2dNV (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib2fNV (GLuint index, GLfloat x, GLfloat y); +GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib2sNV (GLuint index, GLshort x, GLshort y); +GLAPI void APIENTRY glVertexAttrib2svNV (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib3dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib3fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib3sNV (GLuint index, GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glVertexAttrib3svNV (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib4fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib4sNV (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void APIENTRY glVertexAttrib4svNV (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint index, GLsizei count, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint index, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glVertexAttribs1svNV (GLuint index, GLsizei count, const GLshort *v); +GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint index, GLsizei count, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint index, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glVertexAttribs2svNV (GLuint index, GLsizei count, const GLshort *v); +GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint index, GLsizei count, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint index, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glVertexAttribs3svNV (GLuint index, GLsizei count, const GLshort *v); +GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint index, GLsizei count, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint index, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glVertexAttribs4svNV (GLuint index, GLsizei count, const GLshort *v); +GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint index, GLsizei count, const GLubyte *v); +#endif +#endif /* GL_NV_vertex_program */ + +#ifndef GL_NV_vertex_program1_1 +#define GL_NV_vertex_program1_1 1 +#endif /* GL_NV_vertex_program1_1 */ + +#ifndef GL_NV_vertex_program2 +#define GL_NV_vertex_program2 1 +#endif /* GL_NV_vertex_program2 */ + +#ifndef GL_NV_vertex_program2_option +#define GL_NV_vertex_program2_option 1 +#endif /* GL_NV_vertex_program2_option */ + +#ifndef GL_NV_vertex_program3 +#define GL_NV_vertex_program3 1 +#endif /* GL_NV_vertex_program3 */ + +#ifndef GL_NV_vertex_program4 +#define GL_NV_vertex_program4 1 +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint index, GLint x); +GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint index, GLint x, GLint y); +GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint index, GLint x, GLint y, GLint z); +GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint index, GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint index, GLuint x); +GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint index, GLuint x, GLuint y); +GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint index, GLuint x, GLuint y, GLuint z); +GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint index, GLenum pname, GLuint *params); +#endif +#endif /* GL_NV_vertex_program4 */ + +#ifndef GL_NV_video_capture +#define GL_NV_video_capture 1 +#define GL_VIDEO_BUFFER_NV 0x9020 +#define GL_VIDEO_BUFFER_BINDING_NV 0x9021 +#define GL_FIELD_UPPER_NV 0x9022 +#define GL_FIELD_LOWER_NV 0x9023 +#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024 +#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025 +#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026 +#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027 +#define GL_VIDEO_BUFFER_PITCH_NV 0x9028 +#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029 +#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A +#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B +#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C +#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D +#define GL_PARTIAL_SUCCESS_NV 0x902E +#define GL_SUCCESS_NV 0x902F +#define GL_FAILURE_NV 0x9030 +#define GL_YCBYCR8_422_NV 0x9031 +#define GL_YCBAYCR8A_4224_NV 0x9032 +#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033 +#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034 +#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035 +#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036 +#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037 +#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038 +#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039 +#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A +#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B +#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C +typedef void (APIENTRYP PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot); +typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); +typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); +typedef void (APIENTRYP PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot); +typedef void (APIENTRYP PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); +typedef GLenum (APIENTRYP PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); +typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginVideoCaptureNV (GLuint video_capture_slot); +GLAPI void APIENTRY glBindVideoCaptureStreamBufferNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); +GLAPI void APIENTRY glBindVideoCaptureStreamTextureNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); +GLAPI void APIENTRY glEndVideoCaptureNV (GLuint video_capture_slot); +GLAPI void APIENTRY glGetVideoCaptureivNV (GLuint video_capture_slot, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVideoCaptureStreamivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVideoCaptureStreamfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetVideoCaptureStreamdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); +GLAPI GLenum APIENTRY glVideoCaptureNV (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); +GLAPI void APIENTRY glVideoCaptureStreamParameterivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); +GLAPI void APIENTRY glVideoCaptureStreamParameterfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); +#endif +#endif /* GL_NV_video_capture */ + +#ifndef GL_OML_interlace +#define GL_OML_interlace 1 +#define GL_INTERLACE_OML 0x8980 +#define GL_INTERLACE_READ_OML 0x8981 +#endif /* GL_OML_interlace */ + +#ifndef GL_OML_resample +#define GL_OML_resample 1 +#define GL_PACK_RESAMPLE_OML 0x8984 +#define GL_UNPACK_RESAMPLE_OML 0x8985 +#define GL_RESAMPLE_REPLICATE_OML 0x8986 +#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 +#define GL_RESAMPLE_AVERAGE_OML 0x8988 +#define GL_RESAMPLE_DECIMATE_OML 0x8989 +#endif /* GL_OML_resample */ + +#ifndef GL_OML_subsample +#define GL_OML_subsample 1 +#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 +#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 +#endif /* GL_OML_subsample */ + +#ifndef GL_PGI_misc_hints +#define GL_PGI_misc_hints 1 +#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 +#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD +#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE +#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 +#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 +#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 +#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C +#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D +#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E +#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F +#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 +#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 +#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 +#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 +#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 +#define GL_FULL_STIPPLE_HINT_PGI 0x1A219 +#define GL_CLIP_NEAR_HINT_PGI 0x1A220 +#define GL_CLIP_FAR_HINT_PGI 0x1A221 +#define GL_WIDE_LINE_HINT_PGI 0x1A222 +#define GL_BACK_NORMALS_HINT_PGI 0x1A223 +typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glHintPGI (GLenum target, GLint mode); +#endif +#endif /* GL_PGI_misc_hints */ + +#ifndef GL_PGI_vertex_hints +#define GL_PGI_vertex_hints 1 +#define GL_VERTEX_DATA_HINT_PGI 0x1A22A +#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B +#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C +#define GL_MAX_VERTEX_HINT_PGI 0x1A22D +#define GL_COLOR3_BIT_PGI 0x00010000 +#define GL_COLOR4_BIT_PGI 0x00020000 +#define GL_EDGEFLAG_BIT_PGI 0x00040000 +#define GL_INDEX_BIT_PGI 0x00080000 +#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 +#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 +#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 +#define GL_MAT_EMISSION_BIT_PGI 0x00800000 +#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 +#define GL_MAT_SHININESS_BIT_PGI 0x02000000 +#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 +#define GL_NORMAL_BIT_PGI 0x08000000 +#define GL_TEXCOORD1_BIT_PGI 0x10000000 +#define GL_TEXCOORD2_BIT_PGI 0x20000000 +#define GL_TEXCOORD3_BIT_PGI 0x40000000 +#define GL_TEXCOORD4_BIT_PGI 0x80000000 +#define GL_VERTEX23_BIT_PGI 0x00000004 +#define GL_VERTEX4_BIT_PGI 0x00000008 +#endif /* GL_PGI_vertex_hints */ + +#ifndef GL_REND_screen_coordinates +#define GL_REND_screen_coordinates 1 +#define GL_SCREEN_COORDINATES_REND 0x8490 +#define GL_INVERTED_SCREEN_W_REND 0x8491 +#endif /* GL_REND_screen_coordinates */ + +#ifndef GL_S3_s3tc +#define GL_S3_s3tc 1 +#define GL_RGB_S3TC 0x83A0 +#define GL_RGB4_S3TC 0x83A1 +#define GL_RGBA_S3TC 0x83A2 +#define GL_RGBA4_S3TC 0x83A3 +#define GL_RGBA_DXT5_S3TC 0x83A4 +#define GL_RGBA4_DXT5_S3TC 0x83A5 +#endif /* GL_S3_s3tc */ + +#ifndef GL_SGIS_detail_texture +#define GL_SGIS_detail_texture 1 +#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 +#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 +#define GL_LINEAR_DETAIL_SGIS 0x8097 +#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 +#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 +#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A +#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B +#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C +typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); +typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points); +GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum target, GLfloat *points); +#endif +#endif /* GL_SGIS_detail_texture */ + +#ifndef GL_SGIS_fog_function +#define GL_SGIS_fog_function 1 +#define GL_FOG_FUNC_SGIS 0x812A +#define GL_FOG_FUNC_POINTS_SGIS 0x812B +#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C +typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); +typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFogFuncSGIS (GLsizei n, const GLfloat *points); +GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *points); +#endif +#endif /* GL_SGIS_fog_function */ + +#ifndef GL_SGIS_generate_mipmap +#define GL_SGIS_generate_mipmap 1 +#define GL_GENERATE_MIPMAP_SGIS 0x8191 +#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 +#endif /* GL_SGIS_generate_mipmap */ + +#ifndef GL_SGIS_multisample +#define GL_SGIS_multisample 1 +#define GL_MULTISAMPLE_SGIS 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F +#define GL_SAMPLE_MASK_SGIS 0x80A0 +#define GL_1PASS_SGIS 0x80A1 +#define GL_2PASS_0_SGIS 0x80A2 +#define GL_2PASS_1_SGIS 0x80A3 +#define GL_4PASS_0_SGIS 0x80A4 +#define GL_4PASS_1_SGIS 0x80A5 +#define GL_4PASS_2_SGIS 0x80A6 +#define GL_4PASS_3_SGIS 0x80A7 +#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 +#define GL_SAMPLES_SGIS 0x80A9 +#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA +#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB +#define GL_SAMPLE_PATTERN_SGIS 0x80AC +typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleMaskSGIS (GLclampf value, GLboolean invert); +GLAPI void APIENTRY glSamplePatternSGIS (GLenum pattern); +#endif +#endif /* GL_SGIS_multisample */ + +#ifndef GL_SGIS_pixel_texture +#define GL_SGIS_pixel_texture 1 +#define GL_PIXEL_TEXTURE_SGIS 0x8353 +#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 +#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 +#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum pname, GLint param); +GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum pname, const GLint *params); +GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum pname, GLint *params); +GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum pname, GLfloat *params); +#endif +#endif /* GL_SGIS_pixel_texture */ + +#ifndef GL_SGIS_point_line_texgen +#define GL_SGIS_point_line_texgen 1 +#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 +#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 +#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 +#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 +#define GL_EYE_POINT_SGIS 0x81F4 +#define GL_OBJECT_POINT_SGIS 0x81F5 +#define GL_EYE_LINE_SGIS 0x81F6 +#define GL_OBJECT_LINE_SGIS 0x81F7 +#endif /* GL_SGIS_point_line_texgen */ + +#ifndef GL_SGIS_point_parameters +#define GL_SGIS_point_parameters 1 +#define GL_POINT_SIZE_MIN_SGIS 0x8126 +#define GL_POINT_SIZE_MAX_SGIS 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 +#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 +typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfSGIS (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPointParameterfvSGIS (GLenum pname, const GLfloat *params); +#endif +#endif /* GL_SGIS_point_parameters */ + +#ifndef GL_SGIS_sharpen_texture +#define GL_SGIS_sharpen_texture 1 +#define GL_LINEAR_SHARPEN_SGIS 0x80AD +#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE +#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF +#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 +typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); +typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points); +GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum target, GLfloat *points); +#endif +#endif /* GL_SGIS_sharpen_texture */ + +#ifndef GL_SGIS_texture4D +#define GL_SGIS_texture4D 1 +#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 +#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 +#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 +#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 +#define GL_TEXTURE_4D_SGIS 0x8134 +#define GL_PROXY_TEXTURE_4D_SGIS 0x8135 +#define GL_TEXTURE_4DSIZE_SGIS 0x8136 +#define GL_TEXTURE_WRAP_Q_SGIS 0x8137 +#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 +#define GL_TEXTURE_4D_BINDING_SGIS 0x814F +typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexImage4DSGIS (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels); +#endif +#endif /* GL_SGIS_texture4D */ + +#ifndef GL_SGIS_texture_border_clamp +#define GL_SGIS_texture_border_clamp 1 +#define GL_CLAMP_TO_BORDER_SGIS 0x812D +#endif /* GL_SGIS_texture_border_clamp */ + +#ifndef GL_SGIS_texture_color_mask +#define GL_SGIS_texture_color_mask 1 +#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF +typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +#endif +#endif /* GL_SGIS_texture_color_mask */ + +#ifndef GL_SGIS_texture_edge_clamp +#define GL_SGIS_texture_edge_clamp 1 +#define GL_CLAMP_TO_EDGE_SGIS 0x812F +#endif /* GL_SGIS_texture_edge_clamp */ + +#ifndef GL_SGIS_texture_filter4 +#define GL_SGIS_texture_filter4 1 +#define GL_FILTER4_SGIS 0x8146 +#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 +typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); +typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum target, GLenum filter, GLfloat *weights); +GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); +#endif +#endif /* GL_SGIS_texture_filter4 */ + +#ifndef GL_SGIS_texture_lod +#define GL_SGIS_texture_lod 1 +#define GL_TEXTURE_MIN_LOD_SGIS 0x813A +#define GL_TEXTURE_MAX_LOD_SGIS 0x813B +#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C +#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D +#endif /* GL_SGIS_texture_lod */ + +#ifndef GL_SGIS_texture_select +#define GL_SGIS_texture_select 1 +#define GL_DUAL_ALPHA4_SGIS 0x8110 +#define GL_DUAL_ALPHA8_SGIS 0x8111 +#define GL_DUAL_ALPHA12_SGIS 0x8112 +#define GL_DUAL_ALPHA16_SGIS 0x8113 +#define GL_DUAL_LUMINANCE4_SGIS 0x8114 +#define GL_DUAL_LUMINANCE8_SGIS 0x8115 +#define GL_DUAL_LUMINANCE12_SGIS 0x8116 +#define GL_DUAL_LUMINANCE16_SGIS 0x8117 +#define GL_DUAL_INTENSITY4_SGIS 0x8118 +#define GL_DUAL_INTENSITY8_SGIS 0x8119 +#define GL_DUAL_INTENSITY12_SGIS 0x811A +#define GL_DUAL_INTENSITY16_SGIS 0x811B +#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C +#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D +#define GL_QUAD_ALPHA4_SGIS 0x811E +#define GL_QUAD_ALPHA8_SGIS 0x811F +#define GL_QUAD_LUMINANCE4_SGIS 0x8120 +#define GL_QUAD_LUMINANCE8_SGIS 0x8121 +#define GL_QUAD_INTENSITY4_SGIS 0x8122 +#define GL_QUAD_INTENSITY8_SGIS 0x8123 +#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 +#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 +#endif /* GL_SGIS_texture_select */ + +#ifndef GL_SGIX_async +#define GL_SGIX_async 1 +#define GL_ASYNC_MARKER_SGIX 0x8329 +typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker); +typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp); +typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp); +typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); +typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); +typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint marker); +GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *markerp); +GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *markerp); +GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei range); +GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint marker, GLsizei range); +GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint marker); +#endif +#endif /* GL_SGIX_async */ + +#ifndef GL_SGIX_async_histogram +#define GL_SGIX_async_histogram 1 +#define GL_ASYNC_HISTOGRAM_SGIX 0x832C +#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D +#endif /* GL_SGIX_async_histogram */ + +#ifndef GL_SGIX_async_pixel +#define GL_SGIX_async_pixel 1 +#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C +#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D +#define GL_ASYNC_READ_PIXELS_SGIX 0x835E +#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F +#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 +#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 +#endif /* GL_SGIX_async_pixel */ + +#ifndef GL_SGIX_blend_alpha_minmax +#define GL_SGIX_blend_alpha_minmax 1 +#define GL_ALPHA_MIN_SGIX 0x8320 +#define GL_ALPHA_MAX_SGIX 0x8321 +#endif /* GL_SGIX_blend_alpha_minmax */ + +#ifndef GL_SGIX_calligraphic_fragment +#define GL_SGIX_calligraphic_fragment 1 +#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 +#endif /* GL_SGIX_calligraphic_fragment */ + +#ifndef GL_SGIX_clipmap +#define GL_SGIX_clipmap 1 +#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 +#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 +#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 +#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 +#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 +#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 +#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 +#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 +#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 +#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D +#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E +#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F +#endif /* GL_SGIX_clipmap */ + +#ifndef GL_SGIX_convolution_accuracy +#define GL_SGIX_convolution_accuracy 1 +#define GL_CONVOLUTION_HINT_SGIX 0x8316 +#endif /* GL_SGIX_convolution_accuracy */ + +#ifndef GL_SGIX_depth_pass_instrument +#define GL_SGIX_depth_pass_instrument 1 +#endif /* GL_SGIX_depth_pass_instrument */ + +#ifndef GL_SGIX_depth_texture +#define GL_SGIX_depth_texture 1 +#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 +#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 +#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 +#endif /* GL_SGIX_depth_texture */ + +#ifndef GL_SGIX_flush_raster +#define GL_SGIX_flush_raster 1 +typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFlushRasterSGIX (void); +#endif +#endif /* GL_SGIX_flush_raster */ + +#ifndef GL_SGIX_fog_offset +#define GL_SGIX_fog_offset 1 +#define GL_FOG_OFFSET_SGIX 0x8198 +#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 +#endif /* GL_SGIX_fog_offset */ + +#ifndef GL_SGIX_fragment_lighting +#define GL_SGIX_fragment_lighting 1 +#define GL_FRAGMENT_LIGHTING_SGIX 0x8400 +#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 +#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 +#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 +#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 +#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 +#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 +#define GL_LIGHT_ENV_MODE_SGIX 0x8407 +#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 +#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 +#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A +#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B +#define GL_FRAGMENT_LIGHT0_SGIX 0x840C +#define GL_FRAGMENT_LIGHT1_SGIX 0x840D +#define GL_FRAGMENT_LIGHT2_SGIX 0x840E +#define GL_FRAGMENT_LIGHT3_SGIX 0x840F +#define GL_FRAGMENT_LIGHT4_SGIX 0x8410 +#define GL_FRAGMENT_LIGHT5_SGIX 0x8411 +#define GL_FRAGMENT_LIGHT6_SGIX 0x8412 +#define GL_FRAGMENT_LIGHT7_SGIX 0x8413 +typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum face, GLenum mode); +GLAPI void APIENTRY glFragmentLightfSGIX (GLenum light, GLenum pname, GLfloat param); +GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum light, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glFragmentLightiSGIX (GLenum light, GLenum pname, GLint param); +GLAPI void APIENTRY glFragmentLightivSGIX (GLenum light, GLenum pname, const GLint *params); +GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum pname, GLfloat param); +GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum pname, GLint param); +GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum pname, const GLint *params); +GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum face, GLenum pname, GLfloat param); +GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum face, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum face, GLenum pname, GLint param); +GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum face, GLenum pname, const GLint *params); +GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum light, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum light, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum face, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum face, GLenum pname, GLint *params); +GLAPI void APIENTRY glLightEnviSGIX (GLenum pname, GLint param); +#endif +#endif /* GL_SGIX_fragment_lighting */ + +#ifndef GL_SGIX_framezoom +#define GL_SGIX_framezoom 1 +#define GL_FRAMEZOOM_SGIX 0x818B +#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C +#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D +typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFrameZoomSGIX (GLint factor); +#endif +#endif /* GL_SGIX_framezoom */ + +#ifndef GL_SGIX_igloo_interface +#define GL_SGIX_igloo_interface 1 +typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const void *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum pname, const void *params); +#endif +#endif /* GL_SGIX_igloo_interface */ + +#ifndef GL_SGIX_instruments +#define GL_SGIX_instruments 1 +#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 +#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 +typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void); +typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); +typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); +typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); +typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void); +typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLint APIENTRY glGetInstrumentsSGIX (void); +GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei size, GLint *buffer); +GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *marker_p); +GLAPI void APIENTRY glReadInstrumentsSGIX (GLint marker); +GLAPI void APIENTRY glStartInstrumentsSGIX (void); +GLAPI void APIENTRY glStopInstrumentsSGIX (GLint marker); +#endif +#endif /* GL_SGIX_instruments */ + +#ifndef GL_SGIX_interlace +#define GL_SGIX_interlace 1 +#define GL_INTERLACE_SGIX 0x8094 +#endif /* GL_SGIX_interlace */ + +#ifndef GL_SGIX_ir_instrument1 +#define GL_SGIX_ir_instrument1 1 +#define GL_IR_INSTRUMENT1_SGIX 0x817F +#endif /* GL_SGIX_ir_instrument1 */ + +#ifndef GL_SGIX_list_priority +#define GL_SGIX_list_priority 1 +#define GL_LIST_PRIORITY_SGIX 0x8182 +typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint list, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetListParameterivSGIX (GLuint list, GLenum pname, GLint *params); +GLAPI void APIENTRY glListParameterfSGIX (GLuint list, GLenum pname, GLfloat param); +GLAPI void APIENTRY glListParameterfvSGIX (GLuint list, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glListParameteriSGIX (GLuint list, GLenum pname, GLint param); +GLAPI void APIENTRY glListParameterivSGIX (GLuint list, GLenum pname, const GLint *params); +#endif +#endif /* GL_SGIX_list_priority */ + +#ifndef GL_SGIX_pixel_texture +#define GL_SGIX_pixel_texture 1 +#define GL_PIXEL_TEX_GEN_SGIX 0x8139 +#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B +typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTexGenSGIX (GLenum mode); +#endif +#endif /* GL_SGIX_pixel_texture */ + +#ifndef GL_SGIX_pixel_tiles +#define GL_SGIX_pixel_tiles 1 +#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E +#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F +#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 +#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 +#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 +#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 +#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 +#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 +#endif /* GL_SGIX_pixel_tiles */ + +#ifndef GL_SGIX_polynomial_ffd +#define GL_SGIX_polynomial_ffd 1 +#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001 +#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002 +#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194 +#define GL_TEXTURE_DEFORMATION_SGIX 0x8195 +#define GL_DEFORMATIONS_MASK_SGIX 0x8196 +#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197 +typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); +typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); +typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); +GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); +GLAPI void APIENTRY glDeformSGIX (GLbitfield mask); +GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield mask); +#endif +#endif /* GL_SGIX_polynomial_ffd */ + +#ifndef GL_SGIX_reference_plane +#define GL_SGIX_reference_plane 1 +#define GL_REFERENCE_PLANE_SGIX 0x817D +#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E +typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *equation); +#endif +#endif /* GL_SGIX_reference_plane */ + +#ifndef GL_SGIX_resample +#define GL_SGIX_resample 1 +#define GL_PACK_RESAMPLE_SGIX 0x842C +#define GL_UNPACK_RESAMPLE_SGIX 0x842D +#define GL_RESAMPLE_REPLICATE_SGIX 0x842E +#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F +#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 +#endif /* GL_SGIX_resample */ + +#ifndef GL_SGIX_scalebias_hint +#define GL_SGIX_scalebias_hint 1 +#define GL_SCALEBIAS_HINT_SGIX 0x8322 +#endif /* GL_SGIX_scalebias_hint */ + +#ifndef GL_SGIX_shadow +#define GL_SGIX_shadow 1 +#define GL_TEXTURE_COMPARE_SGIX 0x819A +#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B +#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C +#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D +#endif /* GL_SGIX_shadow */ + +#ifndef GL_SGIX_shadow_ambient +#define GL_SGIX_shadow_ambient 1 +#define GL_SHADOW_AMBIENT_SGIX 0x80BF +#endif /* GL_SGIX_shadow_ambient */ + +#ifndef GL_SGIX_sprite +#define GL_SGIX_sprite 1 +#define GL_SPRITE_SGIX 0x8148 +#define GL_SPRITE_MODE_SGIX 0x8149 +#define GL_SPRITE_AXIS_SGIX 0x814A +#define GL_SPRITE_TRANSLATION_SGIX 0x814B +#define GL_SPRITE_AXIAL_SGIX 0x814C +#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D +#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E +typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum pname, GLfloat param); +GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum pname, GLint param); +GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum pname, const GLint *params); +#endif +#endif /* GL_SGIX_sprite */ + +#ifndef GL_SGIX_subsample +#define GL_SGIX_subsample 1 +#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 +#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 +#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 +#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 +#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 +#endif /* GL_SGIX_subsample */ + +#ifndef GL_SGIX_tag_sample_buffer +#define GL_SGIX_tag_sample_buffer 1 +typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTagSampleBufferSGIX (void); +#endif +#endif /* GL_SGIX_tag_sample_buffer */ + +#ifndef GL_SGIX_texture_add_env +#define GL_SGIX_texture_add_env 1 +#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE +#endif /* GL_SGIX_texture_add_env */ + +#ifndef GL_SGIX_texture_coordinate_clamp +#define GL_SGIX_texture_coordinate_clamp 1 +#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 +#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A +#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B +#endif /* GL_SGIX_texture_coordinate_clamp */ + +#ifndef GL_SGIX_texture_lod_bias +#define GL_SGIX_texture_lod_bias 1 +#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E +#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F +#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 +#endif /* GL_SGIX_texture_lod_bias */ + +#ifndef GL_SGIX_texture_multi_buffer +#define GL_SGIX_texture_multi_buffer 1 +#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E +#endif /* GL_SGIX_texture_multi_buffer */ + +#ifndef GL_SGIX_texture_scale_bias +#define GL_SGIX_texture_scale_bias 1 +#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 +#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A +#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B +#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C +#endif /* GL_SGIX_texture_scale_bias */ + +#ifndef GL_SGIX_vertex_preclip +#define GL_SGIX_vertex_preclip 1 +#define GL_VERTEX_PRECLIP_SGIX 0x83EE +#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF +#endif /* GL_SGIX_vertex_preclip */ + +#ifndef GL_SGIX_ycrcb +#define GL_SGIX_ycrcb 1 +#define GL_YCRCB_422_SGIX 0x81BB +#define GL_YCRCB_444_SGIX 0x81BC +#endif /* GL_SGIX_ycrcb */ + +#ifndef GL_SGIX_ycrcb_subsample +#define GL_SGIX_ycrcb_subsample 1 +#endif /* GL_SGIX_ycrcb_subsample */ + +#ifndef GL_SGIX_ycrcba +#define GL_SGIX_ycrcba 1 +#define GL_YCRCB_SGIX 0x8318 +#define GL_YCRCBA_SGIX 0x8319 +#endif /* GL_SGIX_ycrcba */ + +#ifndef GL_SGI_color_matrix +#define GL_SGI_color_matrix 1 +#define GL_COLOR_MATRIX_SGI 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB +#endif /* GL_SGI_color_matrix */ + +#ifndef GL_SGI_color_table +#define GL_SGI_color_table 1 +#define GL_COLOR_TABLE_SGI 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 +#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 +#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 +#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 +#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 +#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF +typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, void *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorTableSGI (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); +GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glColorTableParameterivSGI (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glCopyColorTableSGI (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glGetColorTableSGI (GLenum target, GLenum format, GLenum type, void *table); +GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum target, GLenum pname, GLint *params); +#endif +#endif /* GL_SGI_color_table */ + +#ifndef GL_SGI_texture_color_table +#define GL_SGI_texture_color_table 1 +#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC +#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD +#endif /* GL_SGI_texture_color_table */ + +#ifndef GL_SUNX_constant_data +#define GL_SUNX_constant_data 1 +#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 +#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 +typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFinishTextureSUNX (void); +#endif +#endif /* GL_SUNX_constant_data */ + +#ifndef GL_SUN_convolution_border_modes +#define GL_SUN_convolution_border_modes 1 +#define GL_WRAP_BORDER_SUN 0x81D4 +#endif /* GL_SUN_convolution_border_modes */ + +#ifndef GL_SUN_global_alpha +#define GL_SUN_global_alpha 1 +#define GL_GLOBAL_ALPHA_SUN 0x81D9 +#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte factor); +GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort factor); +GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint factor); +GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat factor); +GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble factor); +GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte factor); +GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort factor); +GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint factor); +#endif +#endif /* GL_SUN_global_alpha */ + +#ifndef GL_SUN_mesh_array +#define GL_SUN_mesh_array 1 +#define GL_QUAD_MESH_SUN 0x8614 +#define GL_TRIANGLE_MESH_SUN 0x8615 +typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum mode, GLint first, GLsizei count, GLsizei width); +#endif +#endif /* GL_SUN_mesh_array */ + +#ifndef GL_SUN_slice_accum +#define GL_SUN_slice_accum 1 +#define GL_SLICE_ACCUM_SUN 0x85CC +#endif /* GL_SUN_slice_accum */ + +#ifndef GL_SUN_triangle_list +#define GL_SUN_triangle_list 1 +#define GL_RESTART_SUN 0x0001 +#define GL_REPLACE_MIDDLE_SUN 0x0002 +#define GL_REPLACE_OLDEST_SUN 0x0003 +#define GL_TRIANGLE_LIST_SUN 0x81D7 +#define GL_REPLACEMENT_CODE_SUN 0x81D8 +#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 +#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 +#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 +#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 +#define GL_R1UI_V3F_SUN 0x85C4 +#define GL_R1UI_C4UB_V3F_SUN 0x85C5 +#define GL_R1UI_C3F_V3F_SUN 0x85C6 +#define GL_R1UI_N3F_V3F_SUN 0x85C7 +#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 +#define GL_R1UI_T2F_V3F_SUN 0x85C9 +#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA +#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const void **pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint code); +GLAPI void APIENTRY glReplacementCodeusSUN (GLushort code); +GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte code); +GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *code); +GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *code); +GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *code); +GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum type, GLsizei stride, const void **pointer); +#endif +#endif /* GL_SUN_triangle_list */ + +#ifndef GL_SUN_vertex +#define GL_SUN_vertex 1 +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); +GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *c, const GLfloat *v); +GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *c, const GLfloat *v); +GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *c, const GLfloat *v); +GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *c, const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *tc, const GLfloat *v); +GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *tc, const GLfloat *v); +GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *tc, const GLubyte *c, const GLfloat *v); +GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *v); +GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint rc, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *rc, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *rc, const GLubyte *c, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +#endif +#endif /* GL_SUN_vertex */ + +#ifndef GL_WIN_phong_shading +#define GL_WIN_phong_shading 1 +#define GL_PHONG_WIN 0x80EA +#define GL_PHONG_HINT_WIN 0x80EB +#endif /* GL_WIN_phong_shading */ + +#ifndef GL_WIN_specular_fog +#define GL_WIN_specular_fog 1 +#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC +#endif /* GL_WIN_specular_fog */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Template/Game/Source/External/SDL/include/SDL_opengles.h b/Template/Game/Source/External/SDL/include/SDL_opengles.h new file mode 100644 index 0000000..bcc1277 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_opengles.h @@ -0,0 +1,38 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_opengles.h + * + * This is a simple file to encapsulate the OpenGL ES 1.X API headers. + */ + +#ifdef __IPHONEOS__ +#include +#include +#else +#include +#include +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif diff --git a/Template/Game/Source/External/SDL/include/SDL_opengles2.h b/Template/Game/Source/External/SDL/include/SDL_opengles2.h new file mode 100644 index 0000000..edcd1a2 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_opengles2.h @@ -0,0 +1,50 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_opengles2.h + * + * This is a simple file to encapsulate the OpenGL ES 2.0 API headers. + */ +#ifndef _MSC_VER + +#ifdef __IPHONEOS__ +#include +#include +#else +#include +#include +#include +#endif + +#else /* _MSC_VER */ + +/* OpenGL ES2 headers for Visual Studio */ +#include "SDL_opengles2_khrplatform.h" +#include "SDL_opengles2_gl2platform.h" +#include "SDL_opengles2_gl2.h" +#include "SDL_opengles2_gl2ext.h" + +#endif /* _MSC_VER */ + +#ifndef APIENTRY +#define APIENTRY GL_APIENTRY +#endif diff --git a/Template/Game/Source/External/SDL/include/SDL_opengles2_gl2.h b/Template/Game/Source/External/SDL/include/SDL_opengles2_gl2.h new file mode 100644 index 0000000..c62fb0a --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_opengles2_gl2.h @@ -0,0 +1,621 @@ +#ifndef __gl2_h_ +#define __gl2_h_ + +/* $Revision: 20555 $ on $Date:: 2013-02-12 14:32:47 -0800 #$ */ + +/*#include */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * This document is licensed under the SGI Free Software B License Version + * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . + */ + +/*------------------------------------------------------------------------- + * Data type definitions + *-----------------------------------------------------------------------*/ + +typedef void GLvoid; +typedef char GLchar; +typedef unsigned int GLenum; +typedef unsigned char GLboolean; +typedef unsigned int GLbitfield; +typedef khronos_int8_t GLbyte; +typedef short GLshort; +typedef int GLint; +typedef int GLsizei; +typedef khronos_uint8_t GLubyte; +typedef unsigned short GLushort; +typedef unsigned int GLuint; +typedef khronos_float_t GLfloat; +typedef khronos_float_t GLclampf; +typedef khronos_int32_t GLfixed; + +/* GL types for handling large vertex buffer objects */ +typedef khronos_intptr_t GLintptr; +typedef khronos_ssize_t GLsizeiptr; + +/* OpenGL ES core versions */ +#define GL_ES_VERSION_2_0 1 + +/* ClearBufferMask */ +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_COLOR_BUFFER_BIT 0x00004000 + +/* Boolean */ +#define GL_FALSE 0 +#define GL_TRUE 1 + +/* BeginMode */ +#define GL_POINTS 0x0000 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_STRIP 0x0003 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 + +/* AlphaFunction (not supported in ES20) */ +/* GL_NEVER */ +/* GL_LESS */ +/* GL_EQUAL */ +/* GL_LEQUAL */ +/* GL_GREATER */ +/* GL_NOTEQUAL */ +/* GL_GEQUAL */ +/* GL_ALWAYS */ + +/* BlendingFactorDest */ +#define GL_ZERO 0 +#define GL_ONE 1 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 + +/* BlendingFactorSrc */ +/* GL_ZERO */ +/* GL_ONE */ +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 +/* GL_SRC_ALPHA */ +/* GL_ONE_MINUS_SRC_ALPHA */ +/* GL_DST_ALPHA */ +/* GL_ONE_MINUS_DST_ALPHA */ + +/* BlendEquationSeparate */ +#define GL_FUNC_ADD 0x8006 +#define GL_BLEND_EQUATION 0x8009 +#define GL_BLEND_EQUATION_RGB 0x8009 /* same as BLEND_EQUATION */ +#define GL_BLEND_EQUATION_ALPHA 0x883D + +/* BlendSubtract */ +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B + +/* Separate Blend Functions */ +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 + +/* Buffer Objects */ +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 + +#define GL_STREAM_DRAW 0x88E0 +#define GL_STATIC_DRAW 0x88E4 +#define GL_DYNAMIC_DRAW 0x88E8 + +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 + +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 + +/* CullFaceMode */ +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_FRONT_AND_BACK 0x0408 + +/* DepthFunction */ +/* GL_NEVER */ +/* GL_LESS */ +/* GL_EQUAL */ +/* GL_LEQUAL */ +/* GL_GREATER */ +/* GL_NOTEQUAL */ +/* GL_GEQUAL */ +/* GL_ALWAYS */ + +/* EnableCap */ +#define GL_TEXTURE_2D 0x0DE1 +#define GL_CULL_FACE 0x0B44 +#define GL_BLEND 0x0BE2 +#define GL_DITHER 0x0BD0 +#define GL_STENCIL_TEST 0x0B90 +#define GL_DEPTH_TEST 0x0B71 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_COVERAGE 0x80A0 + +/* ErrorCode */ +#define GL_NO_ERROR 0 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_OUT_OF_MEMORY 0x0505 + +/* FrontFaceDirection */ +#define GL_CW 0x0900 +#define GL_CCW 0x0901 + +/* GetPName */ +#define GL_LINE_WIDTH 0x0B21 +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 +#define GL_VIEWPORT 0x0BA2 +#define GL_SCISSOR_BOX 0x0C10 +/* GL_SCISSOR_TEST */ +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_ALPHA_BITS 0x0D55 +#define GL_DEPTH_BITS 0x0D56 +#define GL_STENCIL_BITS 0x0D57 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +/* GL_POLYGON_OFFSET_FILL */ +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB + +/* GetTextureParameter */ +/* GL_TEXTURE_MAG_FILTER */ +/* GL_TEXTURE_MIN_FILTER */ +/* GL_TEXTURE_WRAP_S */ +/* GL_TEXTURE_WRAP_T */ + +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 + +/* HintMode */ +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 + +/* HintTarget */ +#define GL_GENERATE_MIPMAP_HINT 0x8192 + +/* DataType */ +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_FIXED 0x140C + +/* PixelFormat */ +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_ALPHA 0x1906 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A + +/* PixelType */ +/* GL_UNSIGNED_BYTE */ +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 + +/* Shaders */ +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GL_MAX_VARYING_VECTORS 0x8DFC +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD +#define GL_SHADER_TYPE 0x8B4F +#define GL_DELETE_STATUS 0x8B80 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D + +/* StencilFunction */ +#define GL_NEVER 0x0200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 + +/* StencilOp */ +/* GL_ZERO */ +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 +#define GL_INVERT 0x150A +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 + +/* StringName */ +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 + +/* TextureMagFilter */ +#define GL_NEAREST 0x2600 +#define GL_LINEAR 0x2601 + +/* TextureMinFilter */ +/* GL_NEAREST */ +/* GL_LINEAR */ +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 + +/* TextureParameterName */ +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 + +/* TextureTarget */ +/* GL_TEXTURE_2D */ +#define GL_TEXTURE 0x1702 + +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C + +/* TextureUnit */ +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 + +/* TextureWrapMode */ +#define GL_REPEAT 0x2901 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_MIRRORED_REPEAT 0x8370 + +/* Uniform Types */ +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_CUBE 0x8B60 + +/* Vertex Arrays */ +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F + +/* Read Format */ +#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B + +/* Shader Source */ +#define GL_COMPILE_STATUS 0x8B81 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_SHADER_COMPILER 0x8DFA + +/* Shader Binary */ +#define GL_SHADER_BINARY_FORMATS 0x8DF8 +#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 + +/* Shader Precision-Specified Types */ +#define GL_LOW_FLOAT 0x8DF0 +#define GL_MEDIUM_FLOAT 0x8DF1 +#define GL_HIGH_FLOAT 0x8DF2 +#define GL_LOW_INT 0x8DF3 +#define GL_MEDIUM_INT 0x8DF4 +#define GL_HIGH_INT 0x8DF5 + +/* Framebuffer Object. */ +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 + +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGB565 0x8D62 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_STENCIL_INDEX8 0x8D48 + +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 + +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 + +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 + +#define GL_NONE 0 + +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD + +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 + +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 + +/*------------------------------------------------------------------------- + * GL core functions. + *-----------------------------------------------------------------------*/ + +GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); +GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); +GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name); +GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); +GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); +GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); +GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); +GL_APICALL void GL_APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +GL_APICALL void GL_APIENTRY glBlendEquation ( GLenum mode ); +GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); +GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); +GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); +GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); +GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); +GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); +GL_APICALL void GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +GL_APICALL void GL_APIENTRY glClearDepthf (GLclampf depth); +GL_APICALL void GL_APIENTRY glClearStencil (GLint s); +GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); +GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data); +GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data); +GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); +GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); +GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); +GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint* buffers); +GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers); +GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); +GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers); +GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); +GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint* textures); +GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); +GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); +GL_APICALL void GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar); +GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); +GL_APICALL void GL_APIENTRY glDisable (GLenum cap); +GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); +GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); +GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices); +GL_APICALL void GL_APIENTRY glEnable (GLenum cap); +GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); +GL_APICALL void GL_APIENTRY glFinish (void); +GL_APICALL void GL_APIENTRY glFlush (void); +GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); +GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint* buffers); +GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); +GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint* framebuffers); +GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint* renderbuffers); +GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures); +GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); +GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); +GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders); +GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name); +GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params); +GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params); +GL_APICALL GLenum GL_APIENTRY glGetError (void); +GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat* params); +GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params); +GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint* params); +GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint* params); +GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog); +GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params); +GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint* params); +GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog); +GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); +GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source); +GL_APICALL const GLubyte* GL_APIENTRY glGetString (GLenum name); +GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params); +GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params); +GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params); +GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params); +GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name); +GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params); +GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params); +GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer); +GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); +GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); +GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); +GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); +GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); +GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); +GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); +GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); +GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); +GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); +GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); +GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); +GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); +GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); +GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert); +GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length); +GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length); +GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); +GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); +GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); +GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); +GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); +GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass); +GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels); +GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); +GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params); +GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); +GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint* params); +GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels); +GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat x); +GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat* v); +GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint x); +GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint* v); +GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat x, GLfloat y); +GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat* v); +GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint x, GLint y); +GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint* v); +GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z); +GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat* v); +GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint x, GLint y, GLint z); +GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint* v); +GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat* v); +GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w); +GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint* v); +GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); +GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); +GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint indx, GLfloat x); +GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint indx, const GLfloat* values); +GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y); +GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint indx, const GLfloat* values); +GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z); +GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint indx, const GLfloat* values); +GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values); +GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr); +GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); + +#ifdef __cplusplus +} +#endif + +#endif /* __gl2_h_ */ + diff --git a/Template/Game/Source/External/SDL/include/SDL_opengles2_gl2ext.h b/Template/Game/Source/External/SDL/include/SDL_opengles2_gl2ext.h new file mode 100644 index 0000000..e8ca8b1 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_opengles2_gl2ext.h @@ -0,0 +1,2050 @@ +#ifndef __gl2ext_h_ +#define __gl2ext_h_ + +/* $Revision: 22801 $ on $Date:: 2013-08-21 03:20:48 -0700 #$ */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * This document is licensed under the SGI Free Software B License Version + * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . + */ + +#ifndef GL_APIENTRYP +# define GL_APIENTRYP GL_APIENTRY* +#endif + +/* New types shared by several extensions */ + +#ifndef __gl3_h_ +/* These are defined with respect to in the + * Apple extension spec, but they are also used by non-APPLE + * extensions, and in the Khronos header we use the Khronos + * portable types in khrplatform.h, which must be defined. + */ +typedef khronos_int64_t GLint64; +typedef khronos_uint64_t GLuint64; +typedef struct __GLsync *GLsync; +#endif + + +/*------------------------------------------------------------------------* + * OES extension tokens + *------------------------------------------------------------------------*/ + +/* GL_OES_compressed_ETC1_RGB8_texture */ +#ifndef GL_OES_compressed_ETC1_RGB8_texture +#define GL_ETC1_RGB8_OES 0x8D64 +#endif + +/* GL_OES_compressed_paletted_texture */ +#ifndef GL_OES_compressed_paletted_texture +#define GL_PALETTE4_RGB8_OES 0x8B90 +#define GL_PALETTE4_RGBA8_OES 0x8B91 +#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 +#define GL_PALETTE4_RGBA4_OES 0x8B93 +#define GL_PALETTE4_RGB5_A1_OES 0x8B94 +#define GL_PALETTE8_RGB8_OES 0x8B95 +#define GL_PALETTE8_RGBA8_OES 0x8B96 +#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 +#define GL_PALETTE8_RGBA4_OES 0x8B98 +#define GL_PALETTE8_RGB5_A1_OES 0x8B99 +#endif + +/* GL_OES_depth24 */ +#ifndef GL_OES_depth24 +#define GL_DEPTH_COMPONENT24_OES 0x81A6 +#endif + +/* GL_OES_depth32 */ +#ifndef GL_OES_depth32 +#define GL_DEPTH_COMPONENT32_OES 0x81A7 +#endif + +/* GL_OES_depth_texture */ +/* No new tokens introduced by this extension. */ + +/* GL_OES_EGL_image */ +#ifndef GL_OES_EGL_image +typedef void* GLeglImageOES; +#endif + +/* GL_OES_EGL_image_external */ +#ifndef GL_OES_EGL_image_external +/* GLeglImageOES defined in GL_OES_EGL_image already. */ +#define GL_TEXTURE_EXTERNAL_OES 0x8D65 +#define GL_SAMPLER_EXTERNAL_OES 0x8D66 +#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 +#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 +#endif + +/* GL_OES_element_index_uint */ +#ifndef GL_OES_element_index_uint +#define GL_UNSIGNED_INT 0x1405 +#endif + +/* GL_OES_get_program_binary */ +#ifndef GL_OES_get_program_binary +#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 +#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE +#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF +#endif + +/* GL_OES_mapbuffer */ +#ifndef GL_OES_mapbuffer +#define GL_WRITE_ONLY_OES 0x88B9 +#define GL_BUFFER_ACCESS_OES 0x88BB +#define GL_BUFFER_MAPPED_OES 0x88BC +#define GL_BUFFER_MAP_POINTER_OES 0x88BD +#endif + +/* GL_OES_packed_depth_stencil */ +#ifndef GL_OES_packed_depth_stencil +#define GL_DEPTH_STENCIL_OES 0x84F9 +#define GL_UNSIGNED_INT_24_8_OES 0x84FA +#define GL_DEPTH24_STENCIL8_OES 0x88F0 +#endif + +/* GL_OES_required_internalformat */ +#ifndef GL_OES_required_internalformat +#define GL_ALPHA8_OES 0x803C +#define GL_DEPTH_COMPONENT16_OES 0x81A5 +/* reuse GL_DEPTH_COMPONENT24_OES */ +/* reuse GL_DEPTH24_STENCIL8_OES */ +/* reuse GL_DEPTH_COMPONENT32_OES */ +#define GL_LUMINANCE4_ALPHA4_OES 0x8043 +#define GL_LUMINANCE8_ALPHA8_OES 0x8045 +#define GL_LUMINANCE8_OES 0x8040 +#define GL_RGBA4_OES 0x8056 +#define GL_RGB5_A1_OES 0x8057 +#define GL_RGB565_OES 0x8D62 +/* reuse GL_RGB8_OES */ +/* reuse GL_RGBA8_OES */ +/* reuse GL_RGB10_EXT */ +/* reuse GL_RGB10_A2_EXT */ +#endif + +/* GL_OES_rgb8_rgba8 */ +#ifndef GL_OES_rgb8_rgba8 +#define GL_RGB8_OES 0x8051 +#define GL_RGBA8_OES 0x8058 +#endif + +/* GL_OES_standard_derivatives */ +#ifndef GL_OES_standard_derivatives +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B +#endif + +/* GL_OES_stencil1 */ +#ifndef GL_OES_stencil1 +#define GL_STENCIL_INDEX1_OES 0x8D46 +#endif + +/* GL_OES_stencil4 */ +#ifndef GL_OES_stencil4 +#define GL_STENCIL_INDEX4_OES 0x8D47 +#endif + +#ifndef GL_OES_surfaceless_context +#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 +#endif + +/* GL_OES_texture_3D */ +#ifndef GL_OES_texture_3D +#define GL_TEXTURE_WRAP_R_OES 0x8072 +#define GL_TEXTURE_3D_OES 0x806F +#define GL_TEXTURE_BINDING_3D_OES 0x806A +#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073 +#define GL_SAMPLER_3D_OES 0x8B5F +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4 +#endif + +/* GL_OES_texture_float */ +/* No new tokens introduced by this extension. */ + +/* GL_OES_texture_float_linear */ +/* No new tokens introduced by this extension. */ + +/* GL_OES_texture_half_float */ +#ifndef GL_OES_texture_half_float +#define GL_HALF_FLOAT_OES 0x8D61 +#endif + +/* GL_OES_texture_half_float_linear */ +/* No new tokens introduced by this extension. */ + +/* GL_OES_texture_npot */ +/* No new tokens introduced by this extension. */ + +/* GL_OES_vertex_array_object */ +#ifndef GL_OES_vertex_array_object +#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 +#endif + +/* GL_OES_vertex_half_float */ +/* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */ + +/* GL_OES_vertex_type_10_10_10_2 */ +#ifndef GL_OES_vertex_type_10_10_10_2 +#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6 +#define GL_INT_10_10_10_2_OES 0x8DF7 +#endif + +/*------------------------------------------------------------------------* + * KHR extension tokens + *------------------------------------------------------------------------*/ + +#ifndef GL_KHR_debug +typedef void (GL_APIENTRYP GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +#define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR 0x8242 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR 0x8243 +#define GL_DEBUG_CALLBACK_FUNCTION_KHR 0x8244 +#define GL_DEBUG_CALLBACK_USER_PARAM_KHR 0x8245 +#define GL_DEBUG_SOURCE_API_KHR 0x8246 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR 0x8247 +#define GL_DEBUG_SOURCE_SHADER_COMPILER_KHR 0x8248 +#define GL_DEBUG_SOURCE_THIRD_PARTY_KHR 0x8249 +#define GL_DEBUG_SOURCE_APPLICATION_KHR 0x824A +#define GL_DEBUG_SOURCE_OTHER_KHR 0x824B +#define GL_DEBUG_TYPE_ERROR_KHR 0x824C +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR 0x824D +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR 0x824E +#define GL_DEBUG_TYPE_PORTABILITY_KHR 0x824F +#define GL_DEBUG_TYPE_PERFORMANCE_KHR 0x8250 +#define GL_DEBUG_TYPE_OTHER_KHR 0x8251 +#define GL_DEBUG_TYPE_MARKER_KHR 0x8268 +#define GL_DEBUG_TYPE_PUSH_GROUP_KHR 0x8269 +#define GL_DEBUG_TYPE_POP_GROUP_KHR 0x826A +#define GL_DEBUG_SEVERITY_NOTIFICATION_KHR 0x826B +#define GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR 0x826C +#define GL_DEBUG_GROUP_STACK_DEPTH_KHR 0x826D +#define GL_BUFFER_KHR 0x82E0 +#define GL_SHADER_KHR 0x82E1 +#define GL_PROGRAM_KHR 0x82E2 +#define GL_QUERY_KHR 0x82E3 +/* PROGRAM_PIPELINE only in GL */ +#define GL_SAMPLER_KHR 0x82E6 +/* DISPLAY_LIST only in GL */ +#define GL_MAX_LABEL_LENGTH_KHR 0x82E8 +#define GL_MAX_DEBUG_MESSAGE_LENGTH_KHR 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES_KHR 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES_KHR 0x9145 +#define GL_DEBUG_SEVERITY_HIGH_KHR 0x9146 +#define GL_DEBUG_SEVERITY_MEDIUM_KHR 0x9147 +#define GL_DEBUG_SEVERITY_LOW_KHR 0x9148 +#define GL_DEBUG_OUTPUT_KHR 0x92E0 +#define GL_CONTEXT_FLAG_DEBUG_BIT_KHR 0x00000002 +#define GL_STACK_OVERFLOW_KHR 0x0503 +#define GL_STACK_UNDERFLOW_KHR 0x0504 +#endif + +#ifndef GL_KHR_texture_compression_astc_ldr +#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 +#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 +#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 +#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 +#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 +#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 +#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 +#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 +#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 +#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 +#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA +#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB +#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC +#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD +#endif + +/*------------------------------------------------------------------------* + * AMD extension tokens + *------------------------------------------------------------------------*/ + +/* GL_AMD_compressed_3DC_texture */ +#ifndef GL_AMD_compressed_3DC_texture +#define GL_3DC_X_AMD 0x87F9 +#define GL_3DC_XY_AMD 0x87FA +#endif + +/* GL_AMD_compressed_ATC_texture */ +#ifndef GL_AMD_compressed_ATC_texture +#define GL_ATC_RGB_AMD 0x8C92 +#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 +#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE +#endif + +/* GL_AMD_performance_monitor */ +#ifndef GL_AMD_performance_monitor +#define GL_COUNTER_TYPE_AMD 0x8BC0 +#define GL_COUNTER_RANGE_AMD 0x8BC1 +#define GL_UNSIGNED_INT64_AMD 0x8BC2 +#define GL_PERCENTAGE_AMD 0x8BC3 +#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 +#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 +#define GL_PERFMON_RESULT_AMD 0x8BC6 +#endif + +/* GL_AMD_program_binary_Z400 */ +#ifndef GL_AMD_program_binary_Z400 +#define GL_Z400_BINARY_AMD 0x8740 +#endif + +/*------------------------------------------------------------------------* + * ANGLE extension tokens + *------------------------------------------------------------------------*/ + +/* GL_ANGLE_depth_texture */ +#ifndef GL_ANGLE_depth_texture +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_DEPTH_STENCIL_OES 0x84F9 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_UNSIGNED_INT 0x1405 +#define GL_UNSIGNED_INT_24_8_OES 0x84FA +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT32_OES 0x81A7 +#define GL_DEPTH24_STENCIL8_OES 0x88F0 +#endif + +/* GL_ANGLE_framebuffer_blit */ +#ifndef GL_ANGLE_framebuffer_blit +#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6 +#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA +#endif + +/* GL_ANGLE_framebuffer_multisample */ +#ifndef GL_ANGLE_framebuffer_multisample +#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56 +#define GL_MAX_SAMPLES_ANGLE 0x8D57 +#endif + +/* GL_ANGLE_instanced_arrays */ +#ifndef GL_ANGLE_instanced_arrays +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE +#endif + +/* GL_ANGLE_pack_reverse_row_order */ +#ifndef GL_ANGLE_pack_reverse_row_order +#define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4 +#endif + +/* GL_ANGLE_program_binary */ +#ifndef GL_ANGLE_program_binary +#define GL_PROGRAM_BINARY_ANGLE 0x93A6 +#endif + +/* GL_ANGLE_texture_compression_dxt3 */ +#ifndef GL_ANGLE_texture_compression_dxt3 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 +#endif + +/* GL_ANGLE_texture_compression_dxt5 */ +#ifndef GL_ANGLE_texture_compression_dxt5 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 +#endif + +/* GL_ANGLE_texture_usage */ +#ifndef GL_ANGLE_texture_usage +#define GL_TEXTURE_USAGE_ANGLE 0x93A2 +#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3 +#endif + +/* GL_ANGLE_translated_shader_source */ +#ifndef GL_ANGLE_translated_shader_source +#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0 +#endif + +/*------------------------------------------------------------------------* + * APPLE extension tokens + *------------------------------------------------------------------------*/ + +/* GL_APPLE_copy_texture_levels */ +/* No new tokens introduced by this extension. */ + +/* GL_APPLE_framebuffer_multisample */ +#ifndef GL_APPLE_framebuffer_multisample +#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 +#define GL_MAX_SAMPLES_APPLE 0x8D57 +#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 +#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA +#endif + +/* GL_APPLE_rgb_422 */ +#ifndef GL_APPLE_rgb_422 +#define GL_RGB_422_APPLE 0x8A1F +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#endif + +/* GL_APPLE_sync */ +#ifndef GL_APPLE_sync + +#define GL_SYNC_OBJECT_APPLE 0x8A53 +#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 +#define GL_OBJECT_TYPE_APPLE 0x9112 +#define GL_SYNC_CONDITION_APPLE 0x9113 +#define GL_SYNC_STATUS_APPLE 0x9114 +#define GL_SYNC_FLAGS_APPLE 0x9115 +#define GL_SYNC_FENCE_APPLE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 +#define GL_UNSIGNALED_APPLE 0x9118 +#define GL_SIGNALED_APPLE 0x9119 +#define GL_ALREADY_SIGNALED_APPLE 0x911A +#define GL_TIMEOUT_EXPIRED_APPLE 0x911B +#define GL_CONDITION_SATISFIED_APPLE 0x911C +#define GL_WAIT_FAILED_APPLE 0x911D +#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 +#define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull +#endif + +/* GL_APPLE_texture_format_BGRA8888 */ +#ifndef GL_APPLE_texture_format_BGRA8888 +#define GL_BGRA_EXT 0x80E1 +#endif + +/* GL_APPLE_texture_max_level */ +#ifndef GL_APPLE_texture_max_level +#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D +#endif + +/*------------------------------------------------------------------------* + * ARM extension tokens + *------------------------------------------------------------------------*/ + +/* GL_ARM_mali_program_binary */ +#ifndef GL_ARM_mali_program_binary +#define GL_MALI_PROGRAM_BINARY_ARM 0x8F61 +#endif + +/* GL_ARM_mali_shader_binary */ +#ifndef GL_ARM_mali_shader_binary +#define GL_MALI_SHADER_BINARY_ARM 0x8F60 +#endif + +/* GL_ARM_rgba8 */ +/* No new tokens introduced by this extension. */ + +/*------------------------------------------------------------------------* + * EXT extension tokens + *------------------------------------------------------------------------*/ + +/* GL_EXT_blend_minmax */ +#ifndef GL_EXT_blend_minmax +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#endif + +/* GL_EXT_color_buffer_half_float */ +#ifndef GL_EXT_color_buffer_half_float +#define GL_RGBA16F_EXT 0x881A +#define GL_RGB16F_EXT 0x881B +#define GL_RG16F_EXT 0x822F +#define GL_R16F_EXT 0x822D +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211 +#define GL_UNSIGNED_NORMALIZED_EXT 0x8C17 +#endif + +/* GL_EXT_debug_label */ +#ifndef GL_EXT_debug_label +#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F +#define GL_PROGRAM_OBJECT_EXT 0x8B40 +#define GL_SHADER_OBJECT_EXT 0x8B48 +#define GL_BUFFER_OBJECT_EXT 0x9151 +#define GL_QUERY_OBJECT_EXT 0x9153 +#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 +#endif + +/* GL_EXT_debug_marker */ +/* No new tokens introduced by this extension. */ + +/* GL_EXT_discard_framebuffer */ +#ifndef GL_EXT_discard_framebuffer +#define GL_COLOR_EXT 0x1800 +#define GL_DEPTH_EXT 0x1801 +#define GL_STENCIL_EXT 0x1802 +#endif + +#ifndef GL_EXT_disjoint_timer_query +#define GL_QUERY_COUNTER_BITS_EXT 0x8864 +#define GL_CURRENT_QUERY_EXT 0x8865 +#define GL_QUERY_RESULT_EXT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 +#define GL_TIME_ELAPSED_EXT 0x88BF +#define GL_TIMESTAMP_EXT 0x8E28 +#define GL_GPU_DISJOINT_EXT 0x8FBB +#endif + +#ifndef GL_EXT_draw_buffers +#define GL_EXT_draw_buffers 1 +#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF +#define GL_MAX_DRAW_BUFFERS_EXT 0x8824 +#define GL_DRAW_BUFFER0_EXT 0x8825 +#define GL_DRAW_BUFFER1_EXT 0x8826 +#define GL_DRAW_BUFFER2_EXT 0x8827 +#define GL_DRAW_BUFFER3_EXT 0x8828 +#define GL_DRAW_BUFFER4_EXT 0x8829 +#define GL_DRAW_BUFFER5_EXT 0x882A +#define GL_DRAW_BUFFER6_EXT 0x882B +#define GL_DRAW_BUFFER7_EXT 0x882C +#define GL_DRAW_BUFFER8_EXT 0x882D +#define GL_DRAW_BUFFER9_EXT 0x882E +#define GL_DRAW_BUFFER10_EXT 0x882F +#define GL_DRAW_BUFFER11_EXT 0x8830 +#define GL_DRAW_BUFFER12_EXT 0x8831 +#define GL_DRAW_BUFFER13_EXT 0x8832 +#define GL_DRAW_BUFFER14_EXT 0x8833 +#define GL_DRAW_BUFFER15_EXT 0x8834 +#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 +#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 +#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 +#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 +#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 +#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 +#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 +#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 +#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 +#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 +#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA +#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB +#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC +#define GL_COLOR_ATTACHMENT13_EXT 0x8CED +#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE +#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF +#endif + +/* GL_EXT_map_buffer_range */ +#ifndef GL_EXT_map_buffer_range +#define GL_MAP_READ_BIT_EXT 0x0001 +#define GL_MAP_WRITE_BIT_EXT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 +#endif + +/* GL_EXT_multisampled_render_to_texture */ +#ifndef GL_EXT_multisampled_render_to_texture +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C +/* reuse values from GL_EXT_framebuffer_multisample (desktop extension) */ +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 +#endif + +/* GL_EXT_multiview_draw_buffers */ +#ifndef GL_EXT_multiview_draw_buffers +#define GL_COLOR_ATTACHMENT_EXT 0x90F0 +#define GL_MULTIVIEW_EXT 0x90F1 +#define GL_DRAW_BUFFER_EXT 0x0C01 +#define GL_READ_BUFFER_EXT 0x0C02 +#define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2 +#endif + +/* GL_EXT_multi_draw_arrays */ +/* No new tokens introduced by this extension. */ + +/* GL_EXT_occlusion_query_boolean */ +#ifndef GL_EXT_occlusion_query_boolean +#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F +#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A +#define GL_CURRENT_QUERY_EXT 0x8865 +#define GL_QUERY_RESULT_EXT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 +#endif + +/* GL_EXT_read_format_bgra */ +#ifndef GL_EXT_read_format_bgra +#define GL_BGRA_EXT 0x80E1 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 +#endif + +/* GL_EXT_robustness */ +#ifndef GL_EXT_robustness +/* reuse GL_NO_ERROR */ +#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 +#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 +#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 +#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 +#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 +#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 +#define GL_NO_RESET_NOTIFICATION_EXT 0x8261 +#endif + +/* GL_EXT_separate_shader_objects */ +#ifndef GL_EXT_separate_shader_objects +#define GL_VERTEX_SHADER_BIT_EXT 0x00000001 +#define GL_FRAGMENT_SHADER_BIT_EXT 0x00000002 +#define GL_ALL_SHADER_BITS_EXT 0xFFFFFFFF +#define GL_PROGRAM_SEPARABLE_EXT 0x8258 +#define GL_ACTIVE_PROGRAM_EXT 0x8259 +#define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A +#endif + +/* GL_EXT_shader_framebuffer_fetch */ +#ifndef GL_EXT_shader_framebuffer_fetch +#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 +#endif + +/* GL_EXT_shader_texture_lod */ +/* No new tokens introduced by this extension. */ + +/* GL_EXT_shadow_samplers */ +#ifndef GL_EXT_shadow_samplers +#define GL_TEXTURE_COMPARE_MODE_EXT 0x884C +#define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D +#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E +#define GL_SAMPLER_2D_SHADOW_EXT 0x8B62 +#endif + +/* GL_EXT_sRGB */ +#ifndef GL_EXT_sRGB +#define GL_SRGB_EXT 0x8C40 +#define GL_SRGB_ALPHA_EXT 0x8C42 +#define GL_SRGB8_ALPHA8_EXT 0x8C43 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 +#endif + +/* GL_EXT_sRGB_write_control */ +#ifndef GL_EXT_sRGB_write_control +#define GL_EXT_sRGB_write_control 1 +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +#endif + +/* GL_EXT_texture_compression_dxt1 */ +#ifndef GL_EXT_texture_compression_dxt1 +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#endif + +/* GL_EXT_texture_filter_anisotropic */ +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif + +/* GL_EXT_texture_format_BGRA8888 */ +#ifndef GL_EXT_texture_format_BGRA8888 +#define GL_BGRA_EXT 0x80E1 +#endif + +/* GL_EXT_texture_rg */ +#ifndef GL_EXT_texture_rg +#define GL_RED_EXT 0x1903 +#define GL_RG_EXT 0x8227 +#define GL_R8_EXT 0x8229 +#define GL_RG8_EXT 0x822B +#endif + +/* GL_EXT_texture_sRGB_decode */ +#ifndef GL_EXT_texture_sRGB_decode +#define GL_EXT_texture_sRGB_decode 1 +#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 +#define GL_DECODE_EXT 0x8A49 +#define GL_SKIP_DECODE_EXT 0x8A4A +#endif + +/* GL_EXT_texture_storage */ +#ifndef GL_EXT_texture_storage +#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F +#define GL_ALPHA8_EXT 0x803C +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_RGBA32F_EXT 0x8814 +#define GL_RGB32F_EXT 0x8815 +#define GL_ALPHA32F_EXT 0x8816 +#define GL_LUMINANCE32F_EXT 0x8818 +#define GL_LUMINANCE_ALPHA32F_EXT 0x8819 +/* reuse GL_RGBA16F_EXT */ +/* reuse GL_RGB16F_EXT */ +#define GL_ALPHA16F_EXT 0x881C +#define GL_LUMINANCE16F_EXT 0x881E +#define GL_LUMINANCE_ALPHA16F_EXT 0x881F +#define GL_RGB10_A2_EXT 0x8059 +#define GL_RGB10_EXT 0x8052 +#define GL_BGRA8_EXT 0x93A1 +#define GL_R8_EXT 0x8229 +#define GL_RG8_EXT 0x822B +#define GL_R32F_EXT 0x822E +#define GL_RG32F_EXT 0x8230 +#define GL_R16F_EXT 0x822D +#define GL_RG16F_EXT 0x822F +#endif + +/* GL_EXT_texture_type_2_10_10_10_REV */ +#ifndef GL_EXT_texture_type_2_10_10_10_REV +#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 +#endif + +/* GL_EXT_unpack_subimage */ +#ifndef GL_EXT_unpack_subimage +#define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2 +#define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4 +#endif + +/*------------------------------------------------------------------------* + * DMP extension tokens + *------------------------------------------------------------------------*/ + +/* GL_DMP_shader_binary */ +#ifndef GL_DMP_shader_binary +#define GL_SHADER_BINARY_DMP 0x9250 +#endif + +/*------------------------------------------------------------------------* + * FJ extension tokens + *------------------------------------------------------------------------*/ + +/* GL_FJ_shader_binary_GCCSO */ +#ifndef GL_FJ_shader_binary_GCCSO +#define GL_GCCSO_SHADER_BINARY_FJ 0x9260 +#endif + +/*------------------------------------------------------------------------* + * IMG extension tokens + *------------------------------------------------------------------------*/ + +/* GL_IMG_program_binary */ +#ifndef GL_IMG_program_binary +#define GL_SGX_PROGRAM_BINARY_IMG 0x9130 +#endif + +/* GL_IMG_read_format */ +#ifndef GL_IMG_read_format +#define GL_BGRA_IMG 0x80E1 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 +#endif + +/* GL_IMG_shader_binary */ +#ifndef GL_IMG_shader_binary +#define GL_SGX_BINARY_IMG 0x8C0A +#endif + +/* GL_IMG_texture_compression_pvrtc */ +#ifndef GL_IMG_texture_compression_pvrtc +#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 +#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 +#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 +#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 +#endif + +/* GL_IMG_texture_compression_pvrtc2 */ +#ifndef GL_IMG_texture_compression_pvrtc2 +#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137 +#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138 +#endif + +/* GL_IMG_multisampled_render_to_texture */ +#ifndef GL_IMG_multisampled_render_to_texture +#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 +#define GL_MAX_SAMPLES_IMG 0x9135 +#define GL_TEXTURE_SAMPLES_IMG 0x9136 +#endif + +/*------------------------------------------------------------------------* + * NV extension tokens + *------------------------------------------------------------------------*/ + +/* GL_NV_coverage_sample */ +#ifndef GL_NV_coverage_sample +#define GL_COVERAGE_COMPONENT_NV 0x8ED0 +#define GL_COVERAGE_COMPONENT4_NV 0x8ED1 +#define GL_COVERAGE_ATTACHMENT_NV 0x8ED2 +#define GL_COVERAGE_BUFFERS_NV 0x8ED3 +#define GL_COVERAGE_SAMPLES_NV 0x8ED4 +#define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5 +#define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6 +#define GL_COVERAGE_AUTOMATIC_NV 0x8ED7 +#define GL_COVERAGE_BUFFER_BIT_NV 0x00008000 +#endif + +/* GL_NV_depth_nonlinear */ +#ifndef GL_NV_depth_nonlinear +#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C +#endif + +/* GL_NV_draw_buffers */ +#ifndef GL_NV_draw_buffers +#define GL_MAX_DRAW_BUFFERS_NV 0x8824 +#define GL_DRAW_BUFFER0_NV 0x8825 +#define GL_DRAW_BUFFER1_NV 0x8826 +#define GL_DRAW_BUFFER2_NV 0x8827 +#define GL_DRAW_BUFFER3_NV 0x8828 +#define GL_DRAW_BUFFER4_NV 0x8829 +#define GL_DRAW_BUFFER5_NV 0x882A +#define GL_DRAW_BUFFER6_NV 0x882B +#define GL_DRAW_BUFFER7_NV 0x882C +#define GL_DRAW_BUFFER8_NV 0x882D +#define GL_DRAW_BUFFER9_NV 0x882E +#define GL_DRAW_BUFFER10_NV 0x882F +#define GL_DRAW_BUFFER11_NV 0x8830 +#define GL_DRAW_BUFFER12_NV 0x8831 +#define GL_DRAW_BUFFER13_NV 0x8832 +#define GL_DRAW_BUFFER14_NV 0x8833 +#define GL_DRAW_BUFFER15_NV 0x8834 +#define GL_COLOR_ATTACHMENT0_NV 0x8CE0 +#define GL_COLOR_ATTACHMENT1_NV 0x8CE1 +#define GL_COLOR_ATTACHMENT2_NV 0x8CE2 +#define GL_COLOR_ATTACHMENT3_NV 0x8CE3 +#define GL_COLOR_ATTACHMENT4_NV 0x8CE4 +#define GL_COLOR_ATTACHMENT5_NV 0x8CE5 +#define GL_COLOR_ATTACHMENT6_NV 0x8CE6 +#define GL_COLOR_ATTACHMENT7_NV 0x8CE7 +#define GL_COLOR_ATTACHMENT8_NV 0x8CE8 +#define GL_COLOR_ATTACHMENT9_NV 0x8CE9 +#define GL_COLOR_ATTACHMENT10_NV 0x8CEA +#define GL_COLOR_ATTACHMENT11_NV 0x8CEB +#define GL_COLOR_ATTACHMENT12_NV 0x8CEC +#define GL_COLOR_ATTACHMENT13_NV 0x8CED +#define GL_COLOR_ATTACHMENT14_NV 0x8CEE +#define GL_COLOR_ATTACHMENT15_NV 0x8CEF +#endif + +/* GL_NV_draw_instanced */ +/* No new tokens introduced by this extension. */ + +/* GL_NV_fbo_color_attachments */ +#ifndef GL_NV_fbo_color_attachments +#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF +/* GL_COLOR_ATTACHMENT{0-15}_NV defined in GL_NV_draw_buffers already. */ +#endif + +/* GL_NV_fence */ +#ifndef GL_NV_fence +#define GL_ALL_COMPLETED_NV 0x84F2 +#define GL_FENCE_STATUS_NV 0x84F3 +#define GL_FENCE_CONDITION_NV 0x84F4 +#endif + +/* GL_NV_framebuffer_blit */ +#ifndef GL_NV_framebuffer_blit +#define GL_READ_FRAMEBUFFER_NV 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_NV 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6 +#define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA +#endif + +/* GL_NV_framebuffer_multisample */ +#ifndef GL_NV_framebuffer_multisample +#define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56 +#define GL_MAX_SAMPLES_NV 0x8D57 +#endif + +/* GL_NV_generate_mipmap_sRGB */ +/* No new tokens introduced by this extension. */ + +/* GL_NV_instanced_arrays */ +#ifndef GL_NV_instanced_arrays +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE +#endif + +/* GL_NV_read_buffer */ +#ifndef GL_NV_read_buffer +#define GL_READ_BUFFER_NV 0x0C02 +#endif + +/* GL_NV_read_buffer_front */ +/* No new tokens introduced by this extension. */ + +/* GL_NV_read_depth */ +/* No new tokens introduced by this extension. */ + +/* GL_NV_read_depth_stencil */ +/* No new tokens introduced by this extension. */ + +/* GL_NV_read_stencil */ +/* No new tokens introduced by this extension. */ + +/* GL_NV_shadow_samplers_array */ +#ifndef GL_NV_shadow_samplers_array +#define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4 +#endif + +/* GL_NV_shadow_samplers_cube */ +#ifndef GL_NV_shadow_samplers_cube +#define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5 +#endif + +/* GL_NV_sRGB_formats */ +#ifndef GL_NV_sRGB_formats +#define GL_SLUMINANCE_NV 0x8C46 +#define GL_SLUMINANCE_ALPHA_NV 0x8C44 +#define GL_SRGB8_NV 0x8C41 +#define GL_SLUMINANCE8_NV 0x8C47 +#define GL_SLUMINANCE8_ALPHA8_NV 0x8C45 +#define GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F +#define GL_ETC1_SRGB8_NV 0x88EE +#endif + +/* GL_NV_texture_border_clamp */ +#ifndef GL_NV_texture_border_clamp +#define GL_TEXTURE_BORDER_COLOR_NV 0x1004 +#define GL_CLAMP_TO_BORDER_NV 0x812D +#endif + +/* GL_NV_texture_compression_s3tc_update */ +/* No new tokens introduced by this extension. */ + +/* GL_NV_texture_npot_2D_mipmap */ +/* No new tokens introduced by this extension. */ + +/*------------------------------------------------------------------------* + * QCOM extension tokens + *------------------------------------------------------------------------*/ + +/* GL_QCOM_alpha_test */ +#ifndef GL_QCOM_alpha_test +#define GL_ALPHA_TEST_QCOM 0x0BC0 +#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1 +#define GL_ALPHA_TEST_REF_QCOM 0x0BC2 +#endif + +/* GL_QCOM_binning_control */ +#ifndef GL_QCOM_binning_control +#define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0 +#define GL_CPU_OPTIMIZED_QCOM 0x8FB1 +#define GL_GPU_OPTIMIZED_QCOM 0x8FB2 +#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3 +#endif + +/* GL_QCOM_driver_control */ +/* No new tokens introduced by this extension. */ + +/* GL_QCOM_extended_get */ +#ifndef GL_QCOM_extended_get +#define GL_TEXTURE_WIDTH_QCOM 0x8BD2 +#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 +#define GL_TEXTURE_DEPTH_QCOM 0x8BD4 +#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 +#define GL_TEXTURE_FORMAT_QCOM 0x8BD6 +#define GL_TEXTURE_TYPE_QCOM 0x8BD7 +#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 +#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 +#define GL_TEXTURE_TARGET_QCOM 0x8BDA +#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB +#define GL_STATE_RESTORE 0x8BDC +#endif + +/* GL_QCOM_extended_get2 */ +/* No new tokens introduced by this extension. */ + +/* GL_QCOM_perfmon_global_mode */ +#ifndef GL_QCOM_perfmon_global_mode +#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 +#endif + +/* GL_QCOM_writeonly_rendering */ +#ifndef GL_QCOM_writeonly_rendering +#define GL_WRITEONLY_RENDERING_QCOM 0x8823 +#endif + +/* GL_QCOM_tiled_rendering */ +#ifndef GL_QCOM_tiled_rendering +#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 +#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 +#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 +#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 +#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 +#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 +#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 +#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 +#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 +#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 +#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 +#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 +#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 +#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 +#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 +#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 +#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 +#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 +#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 +#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 +#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 +#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 +#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 +#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 +#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 +#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 +#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 +#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 +#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 +#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 +#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 +#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 +#endif + +/*------------------------------------------------------------------------* + * VIV extension tokens + *------------------------------------------------------------------------*/ + +/* GL_VIV_shader_binary */ +#ifndef GL_VIV_shader_binary +#define GL_SHADER_BINARY_VIV 0x8FC4 +#endif + +/*------------------------------------------------------------------------* + * End of extension tokens, start of corresponding extension functions + *------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------* + * OES extension functions + *------------------------------------------------------------------------*/ + +/* GL_OES_compressed_ETC1_RGB8_texture */ +#ifndef GL_OES_compressed_ETC1_RGB8_texture +#define GL_OES_compressed_ETC1_RGB8_texture 1 +#endif + +/* GL_OES_compressed_paletted_texture */ +#ifndef GL_OES_compressed_paletted_texture +#define GL_OES_compressed_paletted_texture 1 +#endif + +/* GL_OES_depth24 */ +#ifndef GL_OES_depth24 +#define GL_OES_depth24 1 +#endif + +/* GL_OES_depth32 */ +#ifndef GL_OES_depth32 +#define GL_OES_depth32 1 +#endif + +/* GL_OES_depth_texture */ +#ifndef GL_OES_depth_texture +#define GL_OES_depth_texture 1 +#endif + +/* GL_OES_EGL_image */ +#ifndef GL_OES_EGL_image +#define GL_OES_EGL_image 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); +GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); +#endif +typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); +typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); +#endif + +/* GL_OES_EGL_image_external */ +#ifndef GL_OES_EGL_image_external +#define GL_OES_EGL_image_external 1 +/* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */ +#endif + +/* GL_OES_element_index_uint */ +#ifndef GL_OES_element_index_uint +#define GL_OES_element_index_uint 1 +#endif + +/* GL_OES_fbo_render_mipmap */ +#ifndef GL_OES_fbo_render_mipmap +#define GL_OES_fbo_render_mipmap 1 +#endif + +/* GL_OES_fragment_precision_high */ +#ifndef GL_OES_fragment_precision_high +#define GL_OES_fragment_precision_high 1 +#endif + +/* GL_OES_get_program_binary */ +#ifndef GL_OES_get_program_binary +#define GL_OES_get_program_binary 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); +GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length); +#endif +typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); +typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length); +#endif + +/* GL_OES_mapbuffer */ +#ifndef GL_OES_mapbuffer +#define GL_OES_mapbuffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access); +GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target); +GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid **params); +#endif +typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); +typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target); +typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid **params); +#endif + +/* GL_OES_packed_depth_stencil */ +#ifndef GL_OES_packed_depth_stencil +#define GL_OES_packed_depth_stencil 1 +#endif + +/* GL_OES_required_internalformat */ +#ifndef GL_OES_required_internalformat +#define GL_OES_required_internalformat 1 +#endif + +/* GL_OES_rgb8_rgba8 */ +#ifndef GL_OES_rgb8_rgba8 +#define GL_OES_rgb8_rgba8 1 +#endif + +/* GL_OES_standard_derivatives */ +#ifndef GL_OES_standard_derivatives +#define GL_OES_standard_derivatives 1 +#endif + +/* GL_OES_stencil1 */ +#ifndef GL_OES_stencil1 +#define GL_OES_stencil1 1 +#endif + +/* GL_OES_stencil4 */ +#ifndef GL_OES_stencil4 +#define GL_OES_stencil4 1 +#endif + +#ifndef GL_OES_surfaceless_context +#define GL_OES_surfaceless_context 1 +#endif + +/* GL_OES_texture_3D */ +#ifndef GL_OES_texture_3D +#define GL_OES_texture_3D 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels); +GL_APICALL void GL_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels); +GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); +GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data); +GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +#endif +typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels); +typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels); +typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); +typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data); +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +#endif + +/* GL_OES_texture_float */ +#ifndef GL_OES_texture_float +#define GL_OES_texture_float 1 +#endif + +/* GL_OES_texture_float_linear */ +#ifndef GL_OES_texture_float_linear +#define GL_OES_texture_float_linear 1 +#endif + +/* GL_OES_texture_half_float */ +#ifndef GL_OES_texture_half_float +#define GL_OES_texture_half_float 1 +#endif + +/* GL_OES_texture_half_float_linear */ +#ifndef GL_OES_texture_half_float_linear +#define GL_OES_texture_half_float_linear 1 +#endif + +/* GL_OES_texture_npot */ +#ifndef GL_OES_texture_npot +#define GL_OES_texture_npot 1 +#endif + +/* GL_OES_vertex_array_object */ +#ifndef GL_OES_vertex_array_object +#define GL_OES_vertex_array_object 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array); +GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays); +GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays); +GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array); +#endif +typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); +typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays); +typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays); +typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array); +#endif + +/* GL_OES_vertex_half_float */ +#ifndef GL_OES_vertex_half_float +#define GL_OES_vertex_half_float 1 +#endif + +/* GL_OES_vertex_type_10_10_10_2 */ +#ifndef GL_OES_vertex_type_10_10_10_2 +#define GL_OES_vertex_type_10_10_10_2 1 +#endif + +/*------------------------------------------------------------------------* + * KHR extension functions + *------------------------------------------------------------------------*/ + +#ifndef GL_KHR_debug +#define GL_KHR_debug 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDebugMessageControlKHR (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +GL_APICALL void GL_APIENTRY glDebugMessageInsertKHR (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +GL_APICALL void GL_APIENTRY glDebugMessageCallbackKHR (GLDEBUGPROCKHR callback, const void *userParam); +GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLogKHR (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +GL_APICALL void GL_APIENTRY glPushDebugGroupKHR (GLenum source, GLuint id, GLsizei length, const GLchar *message); +GL_APICALL void GL_APIENTRY glPopDebugGroupKHR (void); +GL_APICALL void GL_APIENTRY glObjectLabelKHR (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +GL_APICALL void GL_APIENTRY glGetObjectLabelKHR (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +GL_APICALL void GL_APIENTRY glObjectPtrLabelKHR (const void *ptr, GLsizei length, const GLchar *label); +GL_APICALL void GL_APIENTRY glGetObjectPtrLabelKHR (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +GL_APICALL void GL_APIENTRY glGetPointervKHR (GLenum pname, GLvoid **params); +#endif +typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLKHRPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTKHRPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKKHRPROC) (GLDEBUGPROCKHR callback, const void *userParam); +typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGKHRPROC) (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPKHRPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); +typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPKHRPROC) (void); +typedef void (GL_APIENTRYP PFNGLOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei length, const GLchar *label); +typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +typedef void (GL_APIENTRYP PFNGLGETPOINTERVKHRPROC) (GLenum pname, GLvoid **params); +#endif + +#ifndef GL_KHR_texture_compression_astc_ldr +#define GL_KHR_texture_compression_astc_ldr 1 +#endif + + +/*------------------------------------------------------------------------* + * AMD extension functions + *------------------------------------------------------------------------*/ + +/* GL_AMD_compressed_3DC_texture */ +#ifndef GL_AMD_compressed_3DC_texture +#define GL_AMD_compressed_3DC_texture 1 +#endif + +/* GL_AMD_compressed_ATC_texture */ +#ifndef GL_AMD_compressed_ATC_texture +#define GL_AMD_compressed_ATC_texture 1 +#endif + +/* AMD_performance_monitor */ +#ifndef GL_AMD_performance_monitor +#define GL_AMD_performance_monitor 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); +GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); +GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); +GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); +GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data); +GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); +GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); +GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList); +GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor); +GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor); +GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); +#endif +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data); +typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); +typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); +typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList); +typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); +typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); +#endif + +/* GL_AMD_program_binary_Z400 */ +#ifndef GL_AMD_program_binary_Z400 +#define GL_AMD_program_binary_Z400 1 +#endif + +/*------------------------------------------------------------------------* + * ANGLE extension functions + *------------------------------------------------------------------------*/ + +/* GL_ANGLE_depth_texture */ +#ifndef GL_ANGLE_depth_texture +#define GL_ANGLE_depth_texture 1 +#endif + +/* GL_ANGLE_framebuffer_blit */ +#ifndef GL_ANGLE_framebuffer_blit +#define GL_ANGLE_framebuffer_blit 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif +typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif + +/* GL_ANGLE_framebuffer_multisample */ +#ifndef GL_ANGLE_framebuffer_multisample +#define GL_ANGLE_framebuffer_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif + +#ifndef GL_ANGLE_instanced_arrays +#define GL_ANGLE_instanced_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE (GLuint index, GLuint divisor); +#endif +typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor); +#endif + +/* GL_ANGLE_pack_reverse_row_order */ +#ifndef GL_ANGLE_pack_reverse_row_order +#define GL_ANGLE_pack_reverse_row_order 1 +#endif + +/* GL_ANGLE_program_binary */ +#ifndef GL_ANGLE_program_binary +#define GL_ANGLE_program_binary 1 +#endif + +/* GL_ANGLE_texture_compression_dxt3 */ +#ifndef GL_ANGLE_texture_compression_dxt3 +#define GL_ANGLE_texture_compression_dxt3 1 +#endif + +/* GL_ANGLE_texture_compression_dxt5 */ +#ifndef GL_ANGLE_texture_compression_dxt5 +#define GL_ANGLE_texture_compression_dxt5 1 +#endif + +/* GL_ANGLE_texture_usage */ +#ifndef GL_ANGLE_texture_usage +#define GL_ANGLE_texture_usage 1 +#endif + +#ifndef GL_ANGLE_translated_shader_source +#define GL_ANGLE_translated_shader_source 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source); +#endif +typedef void (GL_APIENTRYP PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source); +#endif + +/*------------------------------------------------------------------------* + * APPLE extension functions + *------------------------------------------------------------------------*/ + +/* GL_APPLE_copy_texture_levels */ +#ifndef GL_APPLE_copy_texture_levels +#define GL_APPLE_copy_texture_levels 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); +#endif +typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); +#endif + +/* GL_APPLE_framebuffer_multisample */ +#ifndef GL_APPLE_framebuffer_multisample +#define GL_APPLE_framebuffer_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void); +#endif + +/* GL_APPLE_rgb_422 */ +#ifndef GL_APPLE_rgb_422 +#define GL_APPLE_rgb_422 1 +#endif + +/* GL_APPLE_sync */ +#ifndef GL_APPLE_sync +#define GL_APPLE_sync 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags); +GL_APICALL GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync); +GL_APICALL void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync); +GL_APICALL GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); +GL_APICALL void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); +GL_APICALL void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params); +GL_APICALL void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#endif +typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags); +typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync); +typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync); +typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params); +typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#endif + +/* GL_APPLE_texture_format_BGRA8888 */ +#ifndef GL_APPLE_texture_format_BGRA8888 +#define GL_APPLE_texture_format_BGRA8888 1 +#endif + +/* GL_APPLE_texture_max_level */ +#ifndef GL_APPLE_texture_max_level +#define GL_APPLE_texture_max_level 1 +#endif + +/*------------------------------------------------------------------------* + * ARM extension functions + *------------------------------------------------------------------------*/ + +/* GL_ARM_mali_program_binary */ +#ifndef GL_ARM_mali_program_binary +#define GL_ARM_mali_program_binary 1 +#endif + +/* GL_ARM_mali_shader_binary */ +#ifndef GL_ARM_mali_shader_binary +#define GL_ARM_mali_shader_binary 1 +#endif + +/* GL_ARM_rgba8 */ +#ifndef GL_ARM_rgba8 +#define GL_ARM_rgba8 1 +#endif + +/*------------------------------------------------------------------------* + * EXT extension functions + *------------------------------------------------------------------------*/ + +/* GL_EXT_blend_minmax */ +#ifndef GL_EXT_blend_minmax +#define GL_EXT_blend_minmax 1 +#endif + +/* GL_EXT_color_buffer_half_float */ +#ifndef GL_EXT_color_buffer_half_float +#define GL_EXT_color_buffer_half_float 1 +#endif + +/* GL_EXT_debug_label */ +#ifndef GL_EXT_debug_label +#define GL_EXT_debug_label 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); +GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif +typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); +typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif + +/* GL_EXT_debug_marker */ +#ifndef GL_EXT_debug_marker +#define GL_EXT_debug_marker 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); +GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); +GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void); +#endif +typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); +typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); +typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); +#endif + +/* GL_EXT_discard_framebuffer */ +#ifndef GL_EXT_discard_framebuffer +#define GL_EXT_discard_framebuffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments); +#endif +typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); +#endif + +#ifndef GL_EXT_disjoint_timer_query +#define GL_EXT_disjoint_timer_query 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids); +GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids); +GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id); +GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id); +GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target); +GL_APICALL void GL_APIENTRY glQueryCounterEXT (GLuint id, GLenum target); +GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glGetQueryObjectivEXT (GLuint id, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params); +GL_APICALL void GL_APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64 *params); +GL_APICALL void GL_APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64 *params); +#endif +typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids); +typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id); +typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id); +typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target); +typedef void (GL_APIENTRYP PFNGLQUERYCOUNTEREXTPROC) (GLuint id, GLenum target); +typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTIVEXTPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params); +typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64 *params); +typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64 *params); +#endif /* GL_EXT_disjoint_timer_query */ + +#ifndef GL_EXT_draw_buffers +#define GL_EXT_draw_buffers 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawBuffersEXT (GLsizei n, const GLenum *bufs); +#endif +typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSEXTPROC) (GLsizei n, const GLenum *bufs); +#endif /* GL_EXT_draw_buffers */ + +/* GL_EXT_map_buffer_range */ +#ifndef GL_EXT_map_buffer_range +#define GL_EXT_map_buffer_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void* GL_APIENTRY glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +GL_APICALL void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length); +#endif +typedef void* (GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +#endif + +/* GL_EXT_multisampled_render_to_texture */ +#ifndef GL_EXT_multisampled_render_to_texture +#define GL_EXT_multisampled_render_to_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +#endif +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +#endif + +/* GL_EXT_multiview_draw_buffers */ +#ifndef GL_EXT_multiview_draw_buffers +#define GL_EXT_multiview_draw_buffers 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glReadBufferIndexedEXT (GLenum src, GLint index); +GL_APICALL void GL_APIENTRY glDrawBuffersIndexedEXT (GLint n, const GLenum *location, const GLint *indices); +GL_APICALL void GL_APIENTRY glGetIntegeri_vEXT (GLenum target, GLuint index, GLint *data); +#endif +typedef void (GL_APIENTRYP PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index); +typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum *location, const GLint *indices); +typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint *data); +#endif + +#ifndef GL_EXT_multi_draw_arrays +#define GL_EXT_multi_draw_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); +#endif + +/* GL_EXT_occlusion_query_boolean */ +#ifndef GL_EXT_occlusion_query_boolean +#define GL_EXT_occlusion_query_boolean 1 +/* All entry points also exist in GL_EXT_disjoint_timer_query */ +#endif + +/* GL_EXT_read_format_bgra */ +#ifndef GL_EXT_read_format_bgra +#define GL_EXT_read_format_bgra 1 +#endif + +/* GL_EXT_robustness */ +#ifndef GL_EXT_robustness +#define GL_EXT_robustness 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void); +GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data); +GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params); +#endif +typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void); +typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data); +typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); +#endif + +/* GL_EXT_separate_shader_objects */ +#ifndef GL_EXT_separate_shader_objects +#define GL_EXT_separate_shader_objects 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program); +GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program); +GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar **strings); +GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline); +GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines); +GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines); +GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline); +GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); +GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint x); +GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint x, GLint y); +GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z); +GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); +GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat x); +GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat x, GLfloat y); +GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); +GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline); +GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +#endif +typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program); +typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program); +typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings); +typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline); +typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines); +typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines); +typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline); +typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); +typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint x); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint x, GLint y); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat x); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline); +typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +#endif + +/* GL_EXT_shader_framebuffer_fetch */ +#ifndef GL_EXT_shader_framebuffer_fetch +#define GL_EXT_shader_framebuffer_fetch 1 +#endif + +/* GL_EXT_shader_texture_lod */ +#ifndef GL_EXT_shader_texture_lod +#define GL_EXT_shader_texture_lod 1 +#endif + +/* GL_EXT_shadow_samplers */ +#ifndef GL_EXT_shadow_samplers +#define GL_EXT_shadow_samplers 1 +#endif + +/* GL_EXT_sRGB */ +#ifndef GL_EXT_sRGB +#define GL_EXT_sRGB 1 +#endif + +/* GL_EXT_texture_compression_dxt1 */ +#ifndef GL_EXT_texture_compression_dxt1 +#define GL_EXT_texture_compression_dxt1 1 +#endif + +/* GL_EXT_texture_filter_anisotropic */ +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 +#endif + +/* GL_EXT_texture_format_BGRA8888 */ +#ifndef GL_EXT_texture_format_BGRA8888 +#define GL_EXT_texture_format_BGRA8888 1 +#endif + +/* GL_EXT_texture_rg */ +#ifndef GL_EXT_texture_rg +#define GL_EXT_texture_rg 1 +#endif + +/* GL_EXT_texture_storage */ +#ifndef GL_EXT_texture_storage +#define GL_EXT_texture_storage 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#endif +typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#endif + +/* GL_EXT_texture_type_2_10_10_10_REV */ +#ifndef GL_EXT_texture_type_2_10_10_10_REV +#define GL_EXT_texture_type_2_10_10_10_REV 1 +#endif + +/* GL_EXT_unpack_subimage */ +#ifndef GL_EXT_unpack_subimage +#define GL_EXT_unpack_subimage 1 +#endif + +/*------------------------------------------------------------------------* + * DMP extension functions + *------------------------------------------------------------------------*/ + +/* GL_DMP_shader_binary */ +#ifndef GL_DMP_shader_binary +#define GL_DMP_shader_binary 1 +#endif + +/*------------------------------------------------------------------------* + * FJ extension functions + *------------------------------------------------------------------------*/ + +/* GL_FJ_shader_binary_GCCSO */ +#ifndef GL_FJ_shader_binary_GCCSO +#define GL_FJ_shader_binary_GCCSO 1 +#endif + +/*------------------------------------------------------------------------* + * IMG extension functions + *------------------------------------------------------------------------*/ + +/* GL_IMG_program_binary */ +#ifndef GL_IMG_program_binary +#define GL_IMG_program_binary 1 +#endif + +/* GL_IMG_read_format */ +#ifndef GL_IMG_read_format +#define GL_IMG_read_format 1 +#endif + +/* GL_IMG_shader_binary */ +#ifndef GL_IMG_shader_binary +#define GL_IMG_shader_binary 1 +#endif + +/* GL_IMG_texture_compression_pvrtc */ +#ifndef GL_IMG_texture_compression_pvrtc +#define GL_IMG_texture_compression_pvrtc 1 +#endif + +/* GL_IMG_texture_compression_pvrtc2 */ +#ifndef GL_IMG_texture_compression_pvrtc2 +#define GL_IMG_texture_compression_pvrtc2 1 +#endif + +/* GL_IMG_multisampled_render_to_texture */ +#ifndef GL_IMG_multisampled_render_to_texture +#define GL_IMG_multisampled_render_to_texture 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +#endif +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +#endif + +/*------------------------------------------------------------------------* + * NV extension functions + *------------------------------------------------------------------------*/ + +/* GL_NV_coverage_sample */ +#ifndef GL_NV_coverage_sample +#define GL_NV_coverage_sample 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask); +GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation); +#endif +typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask); +typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation); +#endif + +/* GL_NV_depth_nonlinear */ +#ifndef GL_NV_depth_nonlinear +#define GL_NV_depth_nonlinear 1 +#endif + +/* GL_NV_draw_buffers */ +#ifndef GL_NV_draw_buffers +#define GL_NV_draw_buffers 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs); +#endif +typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs); +#endif + +/* GL_NV_draw_instanced */ +#ifndef GL_NV_draw_instanced +#define GL_NV_draw_instanced 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawArraysInstancedNV (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +GL_APICALL void GL_APIENTRY glDrawElementsInstancedNV (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +#endif +typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDNVPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDNVPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +#endif + +/* GL_NV_fbo_color_attachments */ +#ifndef GL_NV_fbo_color_attachments +#define GL_NV_fbo_color_attachments 1 +#endif + +/* GL_NV_fence */ +#ifndef GL_NV_fence +#define GL_NV_fence 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); +GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); +GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint fence); +GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint fence); +GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint fence); +GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint fence, GLenum condition); +#endif +typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); +typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); +typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); +typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); +typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); +typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); +#endif + +/* GL_NV_framebuffer_blit */ +#ifndef GL_NV_framebuffer_blit +#define GL_NV_framebuffer_blit 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBlitFramebufferNV (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif +typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERNVPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif + +/* GL_NV_framebuffer_multisample */ +#ifndef GL_NV_framebuffer_multisample +#define GL_NV_framebuffer_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleNV ( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC) ( GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif + +/* GL_NV_generate_mipmap_sRGB */ +#ifndef GL_NV_generate_mipmap_sRGB +#define GL_NV_generate_mipmap_sRGB 1 +#endif + +/* GL_NV_instanced_arrays */ +#ifndef GL_NV_instanced_arrays +#define GL_NV_instanced_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glVertexAttribDivisorNV (GLuint index, GLuint divisor); +#endif +typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORNVPROC) (GLuint index, GLuint divisor); +#endif + +/* GL_NV_read_buffer */ +#ifndef GL_NV_read_buffer +#define GL_NV_read_buffer 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode); +#endif +typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode); +#endif + +/* GL_NV_read_buffer_front */ +#ifndef GL_NV_read_buffer_front +#define GL_NV_read_buffer_front 1 +#endif + +/* GL_NV_read_depth */ +#ifndef GL_NV_read_depth +#define GL_NV_read_depth 1 +#endif + +/* GL_NV_read_depth_stencil */ +#ifndef GL_NV_read_depth_stencil +#define GL_NV_read_depth_stencil 1 +#endif + +/* GL_NV_read_stencil */ +#ifndef GL_NV_read_stencil +#define GL_NV_read_stencil 1 +#endif + +/* GL_NV_shadow_samplers_array */ +#ifndef GL_NV_shadow_samplers_array +#define GL_NV_shadow_samplers_array 1 +#endif + +/* GL_NV_shadow_samplers_cube */ +#ifndef GL_NV_shadow_samplers_cube +#define GL_NV_shadow_samplers_cube 1 +#endif + +/* GL_NV_sRGB_formats */ +#ifndef GL_NV_sRGB_formats +#define GL_NV_sRGB_formats 1 +#endif + +/* GL_NV_texture_border_clamp */ +#ifndef GL_NV_texture_border_clamp +#define GL_NV_texture_border_clamp 1 +#endif + +/* GL_NV_texture_compression_s3tc_update */ +#ifndef GL_NV_texture_compression_s3tc_update +#define GL_NV_texture_compression_s3tc_update 1 +#endif + +/* GL_NV_texture_npot_2D_mipmap */ +#ifndef GL_NV_texture_npot_2D_mipmap +#define GL_NV_texture_npot_2D_mipmap 1 +#endif + +/*------------------------------------------------------------------------* + * QCOM extension functions + *------------------------------------------------------------------------*/ + +/* GL_QCOM_alpha_test */ +#ifndef GL_QCOM_alpha_test +#define GL_QCOM_alpha_test 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref); +#endif +typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref); +#endif + +/* GL_QCOM_binning_control */ +#ifndef GL_QCOM_binning_control +#define GL_QCOM_binning_control 1 +#endif + +/* GL_QCOM_driver_control */ +#ifndef GL_QCOM_driver_control +#define GL_QCOM_driver_control 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls); +GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); +GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl); +GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl); +#endif +typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls); +typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); +typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); +typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); +#endif + +/* GL_QCOM_extended_get */ +#ifndef GL_QCOM_extended_get +#define GL_QCOM_extended_get 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures); +GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); +GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); +GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); +GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param); +GL_APICALL void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels); +GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params); +#endif +typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures); +typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); +typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); +typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); +typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels); +typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params); +#endif + +/* GL_QCOM_extended_get2 */ +#ifndef GL_QCOM_extended_get2 +#define GL_QCOM_extended_get2 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders); +GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms); +GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program); +GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length); +#endif +typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders); +typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms); +typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); +typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length); +#endif + +/* GL_QCOM_perfmon_global_mode */ +#ifndef GL_QCOM_perfmon_global_mode +#define GL_QCOM_perfmon_global_mode 1 +#endif + +/* GL_QCOM_writeonly_rendering */ +#ifndef GL_QCOM_writeonly_rendering +#define GL_QCOM_writeonly_rendering 1 +#endif + +/* GL_QCOM_tiled_rendering */ +#ifndef GL_QCOM_tiled_rendering +#define GL_QCOM_tiled_rendering 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); +GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask); +#endif +typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); +typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); +#endif + +/*------------------------------------------------------------------------* + * VIV extension tokens + *------------------------------------------------------------------------*/ + +/* GL_VIV_shader_binary */ +#ifndef GL_VIV_shader_binary +#define GL_VIV_shader_binary 1 +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __gl2ext_h_ */ diff --git a/Template/Game/Source/External/SDL/include/SDL_opengles2_gl2platform.h b/Template/Game/Source/External/SDL/include/SDL_opengles2_gl2platform.h new file mode 100644 index 0000000..c325686 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_opengles2_gl2platform.h @@ -0,0 +1,30 @@ +#ifndef __gl2platform_h_ +#define __gl2platform_h_ + +/* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */ + +/* + * This document is licensed under the SGI Free Software B License Version + * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . + */ + +/* Platform-specific types and definitions for OpenGL ES 2.X gl2.h + * + * Adopters may modify khrplatform.h and this file to suit their platform. + * You are encouraged to submit all modifications to the Khronos group so that + * they can be included in future versions of this file. Please submit changes + * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) + * by filing a bug against product "OpenGL-ES" component "Registry". + */ + +/*#include */ + +#ifndef GL_APICALL +#define GL_APICALL KHRONOS_APICALL +#endif + +#ifndef GL_APIENTRY +#define GL_APIENTRY KHRONOS_APIENTRY +#endif + +#endif /* __gl2platform_h_ */ diff --git a/Template/Game/Source/External/SDL/include/SDL_opengles2_khrplatform.h b/Template/Game/Source/External/SDL/include/SDL_opengles2_khrplatform.h new file mode 100644 index 0000000..c9e6f17 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_opengles2_khrplatform.h @@ -0,0 +1,282 @@ +#ifndef __khrplatform_h_ +#define __khrplatform_h_ + +/* +** Copyright (c) 2008-2009 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Khronos platform-specific types and definitions. + * + * $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $ + * + * Adopters may modify this file to suit their platform. Adopters are + * encouraged to submit platform specific modifications to the Khronos + * group so that they can be included in future versions of this file. + * Please submit changes by sending them to the public Khronos Bugzilla + * (http://khronos.org/bugzilla) by filing a bug against product + * "Khronos (general)" component "Registry". + * + * A predefined template which fills in some of the bug fields can be + * reached using http://tinyurl.com/khrplatform-h-bugreport, but you + * must create a Bugzilla login first. + * + * + * See the Implementer's Guidelines for information about where this file + * should be located on your system and for more details of its use: + * http://www.khronos.org/registry/implementers_guide.pdf + * + * This file should be included as + * #include + * by Khronos client API header files that use its types and defines. + * + * The types in khrplatform.h should only be used to define API-specific types. + * + * Types defined in khrplatform.h: + * khronos_int8_t signed 8 bit + * khronos_uint8_t unsigned 8 bit + * khronos_int16_t signed 16 bit + * khronos_uint16_t unsigned 16 bit + * khronos_int32_t signed 32 bit + * khronos_uint32_t unsigned 32 bit + * khronos_int64_t signed 64 bit + * khronos_uint64_t unsigned 64 bit + * khronos_intptr_t signed same number of bits as a pointer + * khronos_uintptr_t unsigned same number of bits as a pointer + * khronos_ssize_t signed size + * khronos_usize_t unsigned size + * khronos_float_t signed 32 bit floating point + * khronos_time_ns_t unsigned 64 bit time in nanoseconds + * khronos_utime_nanoseconds_t unsigned time interval or absolute time in + * nanoseconds + * khronos_stime_nanoseconds_t signed time interval in nanoseconds + * khronos_boolean_enum_t enumerated boolean type. This should + * only be used as a base type when a client API's boolean type is + * an enum. Client APIs which use an integer or other type for + * booleans cannot use this as the base type for their boolean. + * + * Tokens defined in khrplatform.h: + * + * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. + * + * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. + * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. + * + * Calling convention macros defined in this file: + * KHRONOS_APICALL + * KHRONOS_APIENTRY + * KHRONOS_APIATTRIBUTES + * + * These may be used in function prototypes as: + * + * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( + * int arg1, + * int arg2) KHRONOS_APIATTRIBUTES; + */ + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APICALL + *------------------------------------------------------------------------- + * This precedes the return type of the function in the function prototype. + */ +#if defined(_WIN32) && !defined(__SCITECH_SNAP__) +# define KHRONOS_APICALL __declspec(dllimport) +#elif defined (__SYMBIAN32__) +# define KHRONOS_APICALL IMPORT_C +#else +# define KHRONOS_APICALL +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIENTRY + *------------------------------------------------------------------------- + * This follows the return type of the function and precedes the function + * name in the function prototype. + */ +#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) + /* Win32 but not WinCE */ +# define KHRONOS_APIENTRY __stdcall +#else +# define KHRONOS_APIENTRY +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIATTRIBUTES + *------------------------------------------------------------------------- + * This follows the closing parenthesis of the function prototype arguments. + */ +#if defined (__ARMCC_2__) +#define KHRONOS_APIATTRIBUTES __softfp +#else +#define KHRONOS_APIATTRIBUTES +#endif + +/*------------------------------------------------------------------------- + * basic type definitions + *-----------------------------------------------------------------------*/ +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) + + +/* + * Using + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__VMS ) || defined(__sgi) + +/* + * Using + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) + +/* + * Win32 + */ +typedef __int32 khronos_int32_t; +typedef unsigned __int32 khronos_uint32_t; +typedef __int64 khronos_int64_t; +typedef unsigned __int64 khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__sun__) || defined(__digital__) + +/* + * Sun or Digital + */ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#if defined(__arch64__) || defined(_LP64) +typedef long int khronos_int64_t; +typedef unsigned long int khronos_uint64_t; +#else +typedef long long int khronos_int64_t; +typedef unsigned long long int khronos_uint64_t; +#endif /* __arch64__ */ +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif 0 + +/* + * Hypothetical platform with no float or int64 support + */ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#define KHRONOS_SUPPORT_INT64 0 +#define KHRONOS_SUPPORT_FLOAT 0 + +#else + +/* + * Generic fallback + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#endif + + +/* + * Types that are (so far) the same on all platforms + */ +typedef signed char khronos_int8_t; +typedef unsigned char khronos_uint8_t; +typedef signed short int khronos_int16_t; +typedef unsigned short int khronos_uint16_t; + +/* + * Types that differ between LLP64 and LP64 architectures - in LLP64, + * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears + * to be the only LLP64 architecture in current use. + */ +#ifdef _WIN64 +typedef signed long long int khronos_intptr_t; +typedef unsigned long long int khronos_uintptr_t; +typedef signed long long int khronos_ssize_t; +typedef unsigned long long int khronos_usize_t; +#else +typedef signed long int khronos_intptr_t; +typedef unsigned long int khronos_uintptr_t; +typedef signed long int khronos_ssize_t; +typedef unsigned long int khronos_usize_t; +#endif + +#if KHRONOS_SUPPORT_FLOAT +/* + * Float type + */ +typedef float khronos_float_t; +#endif + +#if KHRONOS_SUPPORT_INT64 +/* Time types + * + * These types can be used to represent a time interval in nanoseconds or + * an absolute Unadjusted System Time. Unadjusted System Time is the number + * of nanoseconds since some arbitrary system event (e.g. since the last + * time the system booted). The Unadjusted System Time is an unsigned + * 64 bit value that wraps back to 0 every 584 years. Time intervals + * may be either signed or unsigned. + */ +typedef khronos_uint64_t khronos_utime_nanoseconds_t; +typedef khronos_int64_t khronos_stime_nanoseconds_t; +#endif + +/* + * Dummy value used to pad enum types to 32 bits. + */ +#ifndef KHRONOS_MAX_ENUM +#define KHRONOS_MAX_ENUM 0x7FFFFFFF +#endif + +/* + * Enumerated boolean type + * + * Values other than zero should be considered to be true. Therefore + * comparisons should not be made against KHRONOS_TRUE. + */ +typedef enum { + KHRONOS_FALSE = 0, + KHRONOS_TRUE = 1, + KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM +} khronos_boolean_enum_t; + +#endif /* __khrplatform_h_ */ diff --git a/Template/Game/Source/External/SDL/include/SDL_pixels.h b/Template/Game/Source/External/SDL/include/SDL_pixels.h new file mode 100644 index 0000000..8499c32 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_pixels.h @@ -0,0 +1,454 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_pixels.h + * + * Header for the enumerated pixel format definitions. + */ + +#ifndef _SDL_pixels_h +#define _SDL_pixels_h + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \name Transparency definitions + * + * These define alpha as the opacity of a surface. + */ +/* @{ */ +#define SDL_ALPHA_OPAQUE 255 +#define SDL_ALPHA_TRANSPARENT 0 +/* @} */ + +/** Pixel type. */ +enum +{ + SDL_PIXELTYPE_UNKNOWN, + SDL_PIXELTYPE_INDEX1, + SDL_PIXELTYPE_INDEX4, + SDL_PIXELTYPE_INDEX8, + SDL_PIXELTYPE_PACKED8, + SDL_PIXELTYPE_PACKED16, + SDL_PIXELTYPE_PACKED32, + SDL_PIXELTYPE_ARRAYU8, + SDL_PIXELTYPE_ARRAYU16, + SDL_PIXELTYPE_ARRAYU32, + SDL_PIXELTYPE_ARRAYF16, + SDL_PIXELTYPE_ARRAYF32 +}; + +/** Bitmap pixel order, high bit -> low bit. */ +enum +{ + SDL_BITMAPORDER_NONE, + SDL_BITMAPORDER_4321, + SDL_BITMAPORDER_1234 +}; + +/** Packed component order, high bit -> low bit. */ +enum +{ + SDL_PACKEDORDER_NONE, + SDL_PACKEDORDER_XRGB, + SDL_PACKEDORDER_RGBX, + SDL_PACKEDORDER_ARGB, + SDL_PACKEDORDER_RGBA, + SDL_PACKEDORDER_XBGR, + SDL_PACKEDORDER_BGRX, + SDL_PACKEDORDER_ABGR, + SDL_PACKEDORDER_BGRA +}; + +/** Array component order, low byte -> high byte. */ +/* !!! FIXME: in 2.1, make these not overlap differently with + !!! FIXME: SDL_PACKEDORDER_*, so we can simplify SDL_ISPIXELFORMAT_ALPHA */ +enum +{ + SDL_ARRAYORDER_NONE, + SDL_ARRAYORDER_RGB, + SDL_ARRAYORDER_RGBA, + SDL_ARRAYORDER_ARGB, + SDL_ARRAYORDER_BGR, + SDL_ARRAYORDER_BGRA, + SDL_ARRAYORDER_ABGR +}; + +/** Packed component layout. */ +enum +{ + SDL_PACKEDLAYOUT_NONE, + SDL_PACKEDLAYOUT_332, + SDL_PACKEDLAYOUT_4444, + SDL_PACKEDLAYOUT_1555, + SDL_PACKEDLAYOUT_5551, + SDL_PACKEDLAYOUT_565, + SDL_PACKEDLAYOUT_8888, + SDL_PACKEDLAYOUT_2101010, + SDL_PACKEDLAYOUT_1010102 +}; + +#define SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D) + +#define SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes) \ + ((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | \ + ((bits) << 8) | ((bytes) << 0)) + +#define SDL_PIXELFLAG(X) (((X) >> 28) & 0x0F) +#define SDL_PIXELTYPE(X) (((X) >> 24) & 0x0F) +#define SDL_PIXELORDER(X) (((X) >> 20) & 0x0F) +#define SDL_PIXELLAYOUT(X) (((X) >> 16) & 0x0F) +#define SDL_BITSPERPIXEL(X) (((X) >> 8) & 0xFF) +#define SDL_BYTESPERPIXEL(X) \ + (SDL_ISPIXELFORMAT_FOURCC(X) ? \ + ((((X) == SDL_PIXELFORMAT_YUY2) || \ + ((X) == SDL_PIXELFORMAT_UYVY) || \ + ((X) == SDL_PIXELFORMAT_YVYU)) ? 2 : 1) : (((X) >> 0) & 0xFF)) + +#define SDL_ISPIXELFORMAT_INDEXED(format) \ + (!SDL_ISPIXELFORMAT_FOURCC(format) && \ + ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX1) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX4) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX8))) + +#define SDL_ISPIXELFORMAT_PACKED(format) \ + (!SDL_ISPIXELFORMAT_FOURCC(format) && \ + ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED8) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED16) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED32))) + +#define SDL_ISPIXELFORMAT_ARRAY(format) \ + (!SDL_ISPIXELFORMAT_FOURCC(format) && \ + ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU8) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU16) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU32) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF16) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF32))) + +#define SDL_ISPIXELFORMAT_ALPHA(format) \ + ((SDL_ISPIXELFORMAT_PACKED(format) && \ + ((SDL_PIXELORDER(format) == SDL_PACKEDORDER_ARGB) || \ + (SDL_PIXELORDER(format) == SDL_PACKEDORDER_RGBA) || \ + (SDL_PIXELORDER(format) == SDL_PACKEDORDER_ABGR) || \ + (SDL_PIXELORDER(format) == SDL_PACKEDORDER_BGRA))) || \ + (SDL_ISPIXELFORMAT_ARRAY(format) && \ + ((SDL_PIXELORDER(format) == SDL_ARRAYORDER_ARGB) || \ + (SDL_PIXELORDER(format) == SDL_ARRAYORDER_RGBA) || \ + (SDL_PIXELORDER(format) == SDL_ARRAYORDER_ABGR) || \ + (SDL_PIXELORDER(format) == SDL_ARRAYORDER_BGRA)))) + +/* The flag is set to 1 because 0x1? is not in the printable ASCII range */ +#define SDL_ISPIXELFORMAT_FOURCC(format) \ + ((format) && (SDL_PIXELFLAG(format) != 1)) + +/* Note: If you modify this list, update SDL_GetPixelFormatName() */ +enum +{ + SDL_PIXELFORMAT_UNKNOWN, + SDL_PIXELFORMAT_INDEX1LSB = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_4321, 0, + 1, 0), + SDL_PIXELFORMAT_INDEX1MSB = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_1234, 0, + 1, 0), + SDL_PIXELFORMAT_INDEX4LSB = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_4321, 0, + 4, 0), + SDL_PIXELFORMAT_INDEX4MSB = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_1234, 0, + 4, 0), + SDL_PIXELFORMAT_INDEX8 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX8, 0, 0, 8, 1), + SDL_PIXELFORMAT_RGB332 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED8, SDL_PACKEDORDER_XRGB, + SDL_PACKEDLAYOUT_332, 8, 1), + SDL_PIXELFORMAT_RGB444 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, + SDL_PACKEDLAYOUT_4444, 12, 2), + SDL_PIXELFORMAT_RGB555 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, + SDL_PACKEDLAYOUT_1555, 15, 2), + SDL_PIXELFORMAT_BGR555 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, + SDL_PACKEDLAYOUT_1555, 15, 2), + SDL_PIXELFORMAT_ARGB4444 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, + SDL_PACKEDLAYOUT_4444, 16, 2), + SDL_PIXELFORMAT_RGBA4444 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, + SDL_PACKEDLAYOUT_4444, 16, 2), + SDL_PIXELFORMAT_ABGR4444 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, + SDL_PACKEDLAYOUT_4444, 16, 2), + SDL_PIXELFORMAT_BGRA4444 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, + SDL_PACKEDLAYOUT_4444, 16, 2), + SDL_PIXELFORMAT_ARGB1555 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, + SDL_PACKEDLAYOUT_1555, 16, 2), + SDL_PIXELFORMAT_RGBA5551 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, + SDL_PACKEDLAYOUT_5551, 16, 2), + SDL_PIXELFORMAT_ABGR1555 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, + SDL_PACKEDLAYOUT_1555, 16, 2), + SDL_PIXELFORMAT_BGRA5551 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, + SDL_PACKEDLAYOUT_5551, 16, 2), + SDL_PIXELFORMAT_RGB565 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, + SDL_PACKEDLAYOUT_565, 16, 2), + SDL_PIXELFORMAT_BGR565 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, + SDL_PACKEDLAYOUT_565, 16, 2), + SDL_PIXELFORMAT_RGB24 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_RGB, 0, + 24, 3), + SDL_PIXELFORMAT_BGR24 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_BGR, 0, + 24, 3), + SDL_PIXELFORMAT_RGB888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XRGB, + SDL_PACKEDLAYOUT_8888, 24, 4), + SDL_PIXELFORMAT_RGBX8888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBX, + SDL_PACKEDLAYOUT_8888, 24, 4), + SDL_PIXELFORMAT_BGR888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XBGR, + SDL_PACKEDLAYOUT_8888, 24, 4), + SDL_PIXELFORMAT_BGRX8888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRX, + SDL_PACKEDLAYOUT_8888, 24, 4), + SDL_PIXELFORMAT_ARGB8888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, + SDL_PACKEDLAYOUT_8888, 32, 4), + SDL_PIXELFORMAT_RGBA8888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBA, + SDL_PACKEDLAYOUT_8888, 32, 4), + SDL_PIXELFORMAT_ABGR8888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ABGR, + SDL_PACKEDLAYOUT_8888, 32, 4), + SDL_PIXELFORMAT_BGRA8888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRA, + SDL_PACKEDLAYOUT_8888, 32, 4), + SDL_PIXELFORMAT_ARGB2101010 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, + SDL_PACKEDLAYOUT_2101010, 32, 4), + + SDL_PIXELFORMAT_YV12 = /**< Planar mode: Y + V + U (3 planes) */ + SDL_DEFINE_PIXELFOURCC('Y', 'V', '1', '2'), + SDL_PIXELFORMAT_IYUV = /**< Planar mode: Y + U + V (3 planes) */ + SDL_DEFINE_PIXELFOURCC('I', 'Y', 'U', 'V'), + SDL_PIXELFORMAT_YUY2 = /**< Packed mode: Y0+U0+Y1+V0 (1 plane) */ + SDL_DEFINE_PIXELFOURCC('Y', 'U', 'Y', '2'), + SDL_PIXELFORMAT_UYVY = /**< Packed mode: U0+Y0+V0+Y1 (1 plane) */ + SDL_DEFINE_PIXELFOURCC('U', 'Y', 'V', 'Y'), + SDL_PIXELFORMAT_YVYU = /**< Packed mode: Y0+V0+Y1+U0 (1 plane) */ + SDL_DEFINE_PIXELFOURCC('Y', 'V', 'Y', 'U'), + SDL_PIXELFORMAT_NV12 = /**< Planar mode: Y + U/V interleaved (2 planes) */ + SDL_DEFINE_PIXELFOURCC('N', 'V', '1', '2'), + SDL_PIXELFORMAT_NV21 = /**< Planar mode: Y + V/U interleaved (2 planes) */ + SDL_DEFINE_PIXELFOURCC('N', 'V', '2', '1') +}; + +typedef struct SDL_Color +{ + Uint8 r; + Uint8 g; + Uint8 b; + Uint8 a; +} SDL_Color; +#define SDL_Colour SDL_Color + +typedef struct SDL_Palette +{ + int ncolors; + SDL_Color *colors; + Uint32 version; + int refcount; +} SDL_Palette; + +/** + * \note Everything in the pixel format structure is read-only. + */ +typedef struct SDL_PixelFormat +{ + Uint32 format; + SDL_Palette *palette; + Uint8 BitsPerPixel; + Uint8 BytesPerPixel; + Uint8 padding[2]; + Uint32 Rmask; + Uint32 Gmask; + Uint32 Bmask; + Uint32 Amask; + Uint8 Rloss; + Uint8 Gloss; + Uint8 Bloss; + Uint8 Aloss; + Uint8 Rshift; + Uint8 Gshift; + Uint8 Bshift; + Uint8 Ashift; + int refcount; + struct SDL_PixelFormat *next; +} SDL_PixelFormat; + +/** + * \brief Get the human readable name of a pixel format + */ +extern DECLSPEC const char* SDLCALL SDL_GetPixelFormatName(Uint32 format); + +/** + * \brief Convert one of the enumerated pixel formats to a bpp and RGBA masks. + * + * \return SDL_TRUE, or SDL_FALSE if the conversion wasn't possible. + * + * \sa SDL_MasksToPixelFormatEnum() + */ +extern DECLSPEC SDL_bool SDLCALL SDL_PixelFormatEnumToMasks(Uint32 format, + int *bpp, + Uint32 * Rmask, + Uint32 * Gmask, + Uint32 * Bmask, + Uint32 * Amask); + +/** + * \brief Convert a bpp and RGBA masks to an enumerated pixel format. + * + * \return The pixel format, or ::SDL_PIXELFORMAT_UNKNOWN if the conversion + * wasn't possible. + * + * \sa SDL_PixelFormatEnumToMasks() + */ +extern DECLSPEC Uint32 SDLCALL SDL_MasksToPixelFormatEnum(int bpp, + Uint32 Rmask, + Uint32 Gmask, + Uint32 Bmask, + Uint32 Amask); + +/** + * \brief Create an SDL_PixelFormat structure from a pixel format enum. + */ +extern DECLSPEC SDL_PixelFormat * SDLCALL SDL_AllocFormat(Uint32 pixel_format); + +/** + * \brief Free an SDL_PixelFormat structure. + */ +extern DECLSPEC void SDLCALL SDL_FreeFormat(SDL_PixelFormat *format); + +/** + * \brief Create a palette structure with the specified number of color + * entries. + * + * \return A new palette, or NULL if there wasn't enough memory. + * + * \note The palette entries are initialized to white. + * + * \sa SDL_FreePalette() + */ +extern DECLSPEC SDL_Palette *SDLCALL SDL_AllocPalette(int ncolors); + +/** + * \brief Set the palette for a pixel format structure. + */ +extern DECLSPEC int SDLCALL SDL_SetPixelFormatPalette(SDL_PixelFormat * format, + SDL_Palette *palette); + +/** + * \brief Set a range of colors in a palette. + * + * \param palette The palette to modify. + * \param colors An array of colors to copy into the palette. + * \param firstcolor The index of the first palette entry to modify. + * \param ncolors The number of entries to modify. + * + * \return 0 on success, or -1 if not all of the colors could be set. + */ +extern DECLSPEC int SDLCALL SDL_SetPaletteColors(SDL_Palette * palette, + const SDL_Color * colors, + int firstcolor, int ncolors); + +/** + * \brief Free a palette created with SDL_AllocPalette(). + * + * \sa SDL_AllocPalette() + */ +extern DECLSPEC void SDLCALL SDL_FreePalette(SDL_Palette * palette); + +/** + * \brief Maps an RGB triple to an opaque pixel value for a given pixel format. + * + * \sa SDL_MapRGBA + */ +extern DECLSPEC Uint32 SDLCALL SDL_MapRGB(const SDL_PixelFormat * format, + Uint8 r, Uint8 g, Uint8 b); + +/** + * \brief Maps an RGBA quadruple to a pixel value for a given pixel format. + * + * \sa SDL_MapRGB + */ +extern DECLSPEC Uint32 SDLCALL SDL_MapRGBA(const SDL_PixelFormat * format, + Uint8 r, Uint8 g, Uint8 b, + Uint8 a); + +/** + * \brief Get the RGB components from a pixel of the specified format. + * + * \sa SDL_GetRGBA + */ +extern DECLSPEC void SDLCALL SDL_GetRGB(Uint32 pixel, + const SDL_PixelFormat * format, + Uint8 * r, Uint8 * g, Uint8 * b); + +/** + * \brief Get the RGBA components from a pixel of the specified format. + * + * \sa SDL_GetRGB + */ +extern DECLSPEC void SDLCALL SDL_GetRGBA(Uint32 pixel, + const SDL_PixelFormat * format, + Uint8 * r, Uint8 * g, Uint8 * b, + Uint8 * a); + +/** + * \brief Calculate a 256 entry gamma ramp for a gamma value. + */ +extern DECLSPEC void SDLCALL SDL_CalculateGammaRamp(float gamma, Uint16 * ramp); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_pixels_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_platform.h b/Template/Game/Source/External/SDL/include/SDL_platform.h new file mode 100644 index 0000000..c6c2139 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_platform.h @@ -0,0 +1,181 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_platform.h + * + * Try to get a standard set of platform defines. + */ + +#ifndef _SDL_platform_h +#define _SDL_platform_h + +#if defined(_AIX) +#undef __AIX__ +#define __AIX__ 1 +#endif +#if defined(__HAIKU__) +#undef __HAIKU__ +#define __HAIKU__ 1 +#endif +#if defined(bsdi) || defined(__bsdi) || defined(__bsdi__) +#undef __BSDI__ +#define __BSDI__ 1 +#endif +#if defined(_arch_dreamcast) +#undef __DREAMCAST__ +#define __DREAMCAST__ 1 +#endif +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) +#undef __FREEBSD__ +#define __FREEBSD__ 1 +#endif +#if defined(hpux) || defined(__hpux) || defined(__hpux__) +#undef __HPUX__ +#define __HPUX__ 1 +#endif +#if defined(sgi) || defined(__sgi) || defined(__sgi__) || defined(_SGI_SOURCE) +#undef __IRIX__ +#define __IRIX__ 1 +#endif +#if (defined(linux) || defined(__linux) || defined(__linux__)) +#undef __LINUX__ +#define __LINUX__ 1 +#endif +#if defined(ANDROID) || defined(__ANDROID__) +#undef __ANDROID__ +#undef __LINUX__ /* do we need to do this? */ +#define __ANDROID__ 1 +#endif + +#if defined(__APPLE__) +/* lets us know what version of Mac OS X we're compiling on */ +#include "AvailabilityMacros.h" +#include "TargetConditionals.h" +#if TARGET_OS_IPHONE +/* if compiling for iPhone */ +#undef __IPHONEOS__ +#define __IPHONEOS__ 1 +#undef __MACOSX__ +#else +/* if not compiling for iPhone */ +#undef __MACOSX__ +#define __MACOSX__ 1 +#if MAC_OS_X_VERSION_MIN_REQUIRED < 1050 +# error SDL for Mac OS X only supports deploying on 10.5 and above. +#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1050 */ +#endif /* TARGET_OS_IPHONE */ +#endif /* defined(__APPLE__) */ + +#if defined(__NetBSD__) +#undef __NETBSD__ +#define __NETBSD__ 1 +#endif +#if defined(__OpenBSD__) +#undef __OPENBSD__ +#define __OPENBSD__ 1 +#endif +#if defined(__OS2__) +#undef __OS2__ +#define __OS2__ 1 +#endif +#if defined(osf) || defined(__osf) || defined(__osf__) || defined(_OSF_SOURCE) +#undef __OSF__ +#define __OSF__ 1 +#endif +#if defined(__QNXNTO__) +#undef __QNXNTO__ +#define __QNXNTO__ 1 +#endif +#if defined(riscos) || defined(__riscos) || defined(__riscos__) +#undef __RISCOS__ +#define __RISCOS__ 1 +#endif +#if defined(__sun) && defined(__SVR4) +#undef __SOLARIS__ +#define __SOLARIS__ 1 +#endif + +#if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__) +/* Try to find out if we're compiling for WinRT or non-WinRT */ +/* If _USING_V110_SDK71_ is defined it means we are using the v110_xp or v120_xp toolset. */ +#if (defined(_MSC_VER) && (_MSC_VER >= 1700) && !_USING_V110_SDK71_) /* _MSC_VER==1700 for MSVC 2012 */ +#include +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +#undef __WINDOWS__ +#define __WINDOWS__ 1 +/* See if we're compiling for WinRT: */ +#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) +#undef __WINRT__ +#define __WINRT__ 1 +#endif +#else +#undef __WINDOWS__ +#define __WINDOWS__ 1 +#endif /* _MSC_VER < 1700 */ +#endif /* defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) */ + +#if defined(__WINDOWS__) +#undef __WIN32__ +#define __WIN32__ 1 +#endif +#if defined(__PSP__) +#undef __PSP__ +#define __PSP__ 1 +#endif + +/* The NACL compiler defines __native_client__ and __pnacl__ + * Ref: http://www.chromium.org/nativeclient/pnacl/stability-of-the-pnacl-bitcode-abi + */ +#if defined(__native_client__) +#undef __LINUX__ +#undef __NACL__ +#define __NACL__ 1 +#endif +#if defined(__pnacl__) +#undef __LINUX__ +#undef __PNACL__ +#define __PNACL__ 1 +/* PNACL with newlib supports static linking only */ +#define __SDL_NOGETPROCADDR__ +#endif + + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief Gets the name of the platform. + */ +extern DECLSPEC const char * SDLCALL SDL_GetPlatform (void); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_platform_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_power.h b/Template/Game/Source/External/SDL/include/SDL_power.h new file mode 100644 index 0000000..24c0501 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_power.h @@ -0,0 +1,75 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_power_h +#define _SDL_power_h + +/** + * \file SDL_power.h + * + * Header for the SDL power management routines. + */ + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief The basic state for the system's power supply. + */ +typedef enum +{ + SDL_POWERSTATE_UNKNOWN, /**< cannot determine power status */ + SDL_POWERSTATE_ON_BATTERY, /**< Not plugged in, running on the battery */ + SDL_POWERSTATE_NO_BATTERY, /**< Plugged in, no battery available */ + SDL_POWERSTATE_CHARGING, /**< Plugged in, charging battery */ + SDL_POWERSTATE_CHARGED /**< Plugged in, battery charged */ +} SDL_PowerState; + + +/** + * \brief Get the current power supply details. + * + * \param secs Seconds of battery life left. You can pass a NULL here if + * you don't care. Will return -1 if we can't determine a + * value, or we're not running on a battery. + * + * \param pct Percentage of battery life left, between 0 and 100. You can + * pass a NULL here if you don't care. Will return -1 if we + * can't determine a value, or we're not running on a battery. + * + * \return The state of the battery (if any). + */ +extern DECLSPEC SDL_PowerState SDLCALL SDL_GetPowerInfo(int *secs, int *pct); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_power_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_quit.h b/Template/Game/Source/External/SDL/include/SDL_quit.h new file mode 100644 index 0000000..cc06f28 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_quit.h @@ -0,0 +1,58 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_quit.h + * + * Include file for SDL quit event handling. + */ + +#ifndef _SDL_quit_h +#define _SDL_quit_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +/** + * \file SDL_quit.h + * + * An ::SDL_QUIT event is generated when the user tries to close the application + * window. If it is ignored or filtered out, the window will remain open. + * If it is not ignored or filtered, it is queued normally and the window + * is allowed to close. When the window is closed, screen updates will + * complete, but have no effect. + * + * SDL_Init() installs signal handlers for SIGINT (keyboard interrupt) + * and SIGTERM (system termination request), if handlers do not already + * exist, that generate ::SDL_QUIT events as well. There is no way + * to determine the cause of an ::SDL_QUIT event, but setting a signal + * handler in your application will override the default generation of + * quit events for that signal. + * + * \sa SDL_Quit() + */ + +/* There are no functions directly affecting the quit event */ + +#define SDL_QuitRequested() \ + (SDL_PumpEvents(), (SDL_PeepEvents(NULL,0,SDL_PEEKEVENT,SDL_QUIT,SDL_QUIT) > 0)) + +#endif /* _SDL_quit_h */ diff --git a/Template/Game/Source/External/SDL/include/SDL_rect.h b/Template/Game/Source/External/SDL/include/SDL_rect.h new file mode 100644 index 0000000..bbcb9a3 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_rect.h @@ -0,0 +1,148 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_rect.h + * + * Header file for SDL_rect definition and management functions. + */ + +#ifndef _SDL_rect_h +#define _SDL_rect_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_pixels.h" +#include "SDL_rwops.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief The structure that defines a point + * + * \sa SDL_EnclosePoints + * \sa SDL_PointInRect + */ +typedef struct SDL_Point +{ + int x; + int y; +} SDL_Point; + +/** + * \brief A rectangle, with the origin at the upper left. + * + * \sa SDL_RectEmpty + * \sa SDL_RectEquals + * \sa SDL_HasIntersection + * \sa SDL_IntersectRect + * \sa SDL_UnionRect + * \sa SDL_EnclosePoints + */ +typedef struct SDL_Rect +{ + int x, y; + int w, h; +} SDL_Rect; + +/** + * \brief Returns true if point resides inside a rectangle. + */ +SDL_FORCE_INLINE SDL_bool SDL_PointInRect(const SDL_Point *p, const SDL_Rect *r) +{ + return ( (p->x >= r->x) && (p->x < (r->x + r->w)) && + (p->y >= r->y) && (p->y < (r->y + r->h)) ) ? SDL_TRUE : SDL_FALSE; +} + +/** + * \brief Returns true if the rectangle has no area. + */ +SDL_FORCE_INLINE SDL_bool SDL_RectEmpty(const SDL_Rect *r) +{ + return ((!r) || (r->w <= 0) || (r->h <= 0)) ? SDL_TRUE : SDL_FALSE; +} + +/** + * \brief Returns true if the two rectangles are equal. + */ +SDL_FORCE_INLINE SDL_bool SDL_RectEquals(const SDL_Rect *a, const SDL_Rect *b) +{ + return (a && b && (a->x == b->x) && (a->y == b->y) && + (a->w == b->w) && (a->h == b->h)) ? SDL_TRUE : SDL_FALSE; +} + +/** + * \brief Determine whether two rectangles intersect. + * + * \return SDL_TRUE if there is an intersection, SDL_FALSE otherwise. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasIntersection(const SDL_Rect * A, + const SDL_Rect * B); + +/** + * \brief Calculate the intersection of two rectangles. + * + * \return SDL_TRUE if there is an intersection, SDL_FALSE otherwise. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRect(const SDL_Rect * A, + const SDL_Rect * B, + SDL_Rect * result); + +/** + * \brief Calculate the union of two rectangles. + */ +extern DECLSPEC void SDLCALL SDL_UnionRect(const SDL_Rect * A, + const SDL_Rect * B, + SDL_Rect * result); + +/** + * \brief Calculate a minimal rectangle enclosing a set of points + * + * \return SDL_TRUE if any points were within the clipping rect + */ +extern DECLSPEC SDL_bool SDLCALL SDL_EnclosePoints(const SDL_Point * points, + int count, + const SDL_Rect * clip, + SDL_Rect * result); + +/** + * \brief Calculate the intersection of a rectangle and line segment. + * + * \return SDL_TRUE if there is an intersection, SDL_FALSE otherwise. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRectAndLine(const SDL_Rect * + rect, int *X1, + int *Y1, int *X2, + int *Y2); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_rect_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_render.h b/Template/Game/Source/External/SDL/include/SDL_render.h new file mode 100644 index 0000000..e4ed2af --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_render.h @@ -0,0 +1,880 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_render.h + * + * Header file for SDL 2D rendering functions. + * + * This API supports the following features: + * * single pixel points + * * single pixel lines + * * filled rectangles + * * texture images + * + * The primitives may be drawn in opaque, blended, or additive modes. + * + * The texture images may be drawn in opaque, blended, or additive modes. + * They can have an additional color tint or alpha modulation applied to + * them, and may also be stretched with linear interpolation. + * + * This API is designed to accelerate simple 2D operations. You may + * want more functionality such as polygons and particle effects and + * in that case you should use SDL's OpenGL/Direct3D support or one + * of the many good 3D engines. + * + * These functions must be called from the main thread. + * See this bug for details: http://bugzilla.libsdl.org/show_bug.cgi?id=1995 + */ + +#ifndef _SDL_render_h +#define _SDL_render_h + +#include "SDL_stdinc.h" +#include "SDL_rect.h" +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief Flags used when creating a rendering context + */ +typedef enum +{ + SDL_RENDERER_SOFTWARE = 0x00000001, /**< The renderer is a software fallback */ + SDL_RENDERER_ACCELERATED = 0x00000002, /**< The renderer uses hardware + acceleration */ + SDL_RENDERER_PRESENTVSYNC = 0x00000004, /**< Present is synchronized + with the refresh rate */ + SDL_RENDERER_TARGETTEXTURE = 0x00000008 /**< The renderer supports + rendering to texture */ +} SDL_RendererFlags; + +/** + * \brief Information on the capabilities of a render driver or context. + */ +typedef struct SDL_RendererInfo +{ + const char *name; /**< The name of the renderer */ + Uint32 flags; /**< Supported ::SDL_RendererFlags */ + Uint32 num_texture_formats; /**< The number of available texture formats */ + Uint32 texture_formats[16]; /**< The available texture formats */ + int max_texture_width; /**< The maximum texture width */ + int max_texture_height; /**< The maximum texture height */ +} SDL_RendererInfo; + +/** + * \brief The access pattern allowed for a texture. + */ +typedef enum +{ + SDL_TEXTUREACCESS_STATIC, /**< Changes rarely, not lockable */ + SDL_TEXTUREACCESS_STREAMING, /**< Changes frequently, lockable */ + SDL_TEXTUREACCESS_TARGET /**< Texture can be used as a render target */ +} SDL_TextureAccess; + +/** + * \brief The texture channel modulation used in SDL_RenderCopy(). + */ +typedef enum +{ + SDL_TEXTUREMODULATE_NONE = 0x00000000, /**< No modulation */ + SDL_TEXTUREMODULATE_COLOR = 0x00000001, /**< srcC = srcC * color */ + SDL_TEXTUREMODULATE_ALPHA = 0x00000002 /**< srcA = srcA * alpha */ +} SDL_TextureModulate; + +/** + * \brief Flip constants for SDL_RenderCopyEx + */ +typedef enum +{ + SDL_FLIP_NONE = 0x00000000, /**< Do not flip */ + SDL_FLIP_HORIZONTAL = 0x00000001, /**< flip horizontally */ + SDL_FLIP_VERTICAL = 0x00000002 /**< flip vertically */ +} SDL_RendererFlip; + +/** + * \brief A structure representing rendering state + */ +struct SDL_Renderer; +typedef struct SDL_Renderer SDL_Renderer; + +/** + * \brief An efficient driver-specific representation of pixel data + */ +struct SDL_Texture; +typedef struct SDL_Texture SDL_Texture; + + +/* Function prototypes */ + +/** + * \brief Get the number of 2D rendering drivers available for the current + * display. + * + * A render driver is a set of code that handles rendering and texture + * management on a particular display. Normally there is only one, but + * some drivers may have several available with different capabilities. + * + * \sa SDL_GetRenderDriverInfo() + * \sa SDL_CreateRenderer() + */ +extern DECLSPEC int SDLCALL SDL_GetNumRenderDrivers(void); + +/** + * \brief Get information about a specific 2D rendering driver for the current + * display. + * + * \param index The index of the driver to query information about. + * \param info A pointer to an SDL_RendererInfo struct to be filled with + * information on the rendering driver. + * + * \return 0 on success, -1 if the index was out of range. + * + * \sa SDL_CreateRenderer() + */ +extern DECLSPEC int SDLCALL SDL_GetRenderDriverInfo(int index, + SDL_RendererInfo * info); + +/** + * \brief Create a window and default renderer + * + * \param width The width of the window + * \param height The height of the window + * \param window_flags The flags used to create the window + * \param window A pointer filled with the window, or NULL on error + * \param renderer A pointer filled with the renderer, or NULL on error + * + * \return 0 on success, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_CreateWindowAndRenderer( + int width, int height, Uint32 window_flags, + SDL_Window **window, SDL_Renderer **renderer); + + +/** + * \brief Create a 2D rendering context for a window. + * + * \param window The window where rendering is displayed. + * \param index The index of the rendering driver to initialize, or -1 to + * initialize the first one supporting the requested flags. + * \param flags ::SDL_RendererFlags. + * + * \return A valid rendering context or NULL if there was an error. + * + * \sa SDL_CreateSoftwareRenderer() + * \sa SDL_GetRendererInfo() + * \sa SDL_DestroyRenderer() + */ +extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window * window, + int index, Uint32 flags); + +/** + * \brief Create a 2D software rendering context for a surface. + * + * \param surface The surface where rendering is done. + * + * \return A valid rendering context or NULL if there was an error. + * + * \sa SDL_CreateRenderer() + * \sa SDL_DestroyRenderer() + */ +extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateSoftwareRenderer(SDL_Surface * surface); + +/** + * \brief Get the renderer associated with a window. + */ +extern DECLSPEC SDL_Renderer * SDLCALL SDL_GetRenderer(SDL_Window * window); + +/** + * \brief Get information about a rendering context. + */ +extern DECLSPEC int SDLCALL SDL_GetRendererInfo(SDL_Renderer * renderer, + SDL_RendererInfo * info); + +/** + * \brief Get the output size in pixels of a rendering context. + */ +extern DECLSPEC int SDLCALL SDL_GetRendererOutputSize(SDL_Renderer * renderer, + int *w, int *h); + +/** + * \brief Create a texture for a rendering context. + * + * \param renderer The renderer. + * \param format The format of the texture. + * \param access One of the enumerated values in ::SDL_TextureAccess. + * \param w The width of the texture in pixels. + * \param h The height of the texture in pixels. + * + * \return The created texture is returned, or NULL if no rendering context was + * active, the format was unsupported, or the width or height were out + * of range. + * + * \sa SDL_QueryTexture() + * \sa SDL_UpdateTexture() + * \sa SDL_DestroyTexture() + */ +extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTexture(SDL_Renderer * renderer, + Uint32 format, + int access, int w, + int h); + +/** + * \brief Create a texture from an existing surface. + * + * \param renderer The renderer. + * \param surface The surface containing pixel data used to fill the texture. + * + * \return The created texture is returned, or NULL on error. + * + * \note The surface is not modified or freed by this function. + * + * \sa SDL_QueryTexture() + * \sa SDL_DestroyTexture() + */ +extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTextureFromSurface(SDL_Renderer * renderer, SDL_Surface * surface); + +/** + * \brief Query the attributes of a texture + * + * \param texture A texture to be queried. + * \param format A pointer filled in with the raw format of the texture. The + * actual format may differ, but pixel transfers will use this + * format. + * \param access A pointer filled in with the actual access to the texture. + * \param w A pointer filled in with the width of the texture in pixels. + * \param h A pointer filled in with the height of the texture in pixels. + * + * \return 0 on success, or -1 if the texture is not valid. + */ +extern DECLSPEC int SDLCALL SDL_QueryTexture(SDL_Texture * texture, + Uint32 * format, int *access, + int *w, int *h); + +/** + * \brief Set an additional color value used in render copy operations. + * + * \param texture The texture to update. + * \param r The red color value multiplied into copy operations. + * \param g The green color value multiplied into copy operations. + * \param b The blue color value multiplied into copy operations. + * + * \return 0 on success, or -1 if the texture is not valid or color modulation + * is not supported. + * + * \sa SDL_GetTextureColorMod() + */ +extern DECLSPEC int SDLCALL SDL_SetTextureColorMod(SDL_Texture * texture, + Uint8 r, Uint8 g, Uint8 b); + + +/** + * \brief Get the additional color value used in render copy operations. + * + * \param texture The texture to query. + * \param r A pointer filled in with the current red color value. + * \param g A pointer filled in with the current green color value. + * \param b A pointer filled in with the current blue color value. + * + * \return 0 on success, or -1 if the texture is not valid. + * + * \sa SDL_SetTextureColorMod() + */ +extern DECLSPEC int SDLCALL SDL_GetTextureColorMod(SDL_Texture * texture, + Uint8 * r, Uint8 * g, + Uint8 * b); + +/** + * \brief Set an additional alpha value used in render copy operations. + * + * \param texture The texture to update. + * \param alpha The alpha value multiplied into copy operations. + * + * \return 0 on success, or -1 if the texture is not valid or alpha modulation + * is not supported. + * + * \sa SDL_GetTextureAlphaMod() + */ +extern DECLSPEC int SDLCALL SDL_SetTextureAlphaMod(SDL_Texture * texture, + Uint8 alpha); + +/** + * \brief Get the additional alpha value used in render copy operations. + * + * \param texture The texture to query. + * \param alpha A pointer filled in with the current alpha value. + * + * \return 0 on success, or -1 if the texture is not valid. + * + * \sa SDL_SetTextureAlphaMod() + */ +extern DECLSPEC int SDLCALL SDL_GetTextureAlphaMod(SDL_Texture * texture, + Uint8 * alpha); + +/** + * \brief Set the blend mode used for texture copy operations. + * + * \param texture The texture to update. + * \param blendMode ::SDL_BlendMode to use for texture blending. + * + * \return 0 on success, or -1 if the texture is not valid or the blend mode is + * not supported. + * + * \note If the blend mode is not supported, the closest supported mode is + * chosen. + * + * \sa SDL_GetTextureBlendMode() + */ +extern DECLSPEC int SDLCALL SDL_SetTextureBlendMode(SDL_Texture * texture, + SDL_BlendMode blendMode); + +/** + * \brief Get the blend mode used for texture copy operations. + * + * \param texture The texture to query. + * \param blendMode A pointer filled in with the current blend mode. + * + * \return 0 on success, or -1 if the texture is not valid. + * + * \sa SDL_SetTextureBlendMode() + */ +extern DECLSPEC int SDLCALL SDL_GetTextureBlendMode(SDL_Texture * texture, + SDL_BlendMode *blendMode); + +/** + * \brief Update the given texture rectangle with new pixel data. + * + * \param texture The texture to update + * \param rect A pointer to the rectangle of pixels to update, or NULL to + * update the entire texture. + * \param pixels The raw pixel data. + * \param pitch The number of bytes in a row of pixel data, including padding between lines. + * + * \return 0 on success, or -1 if the texture is not valid. + * + * \note This is a fairly slow function. + */ +extern DECLSPEC int SDLCALL SDL_UpdateTexture(SDL_Texture * texture, + const SDL_Rect * rect, + const void *pixels, int pitch); + +/** + * \brief Update a rectangle within a planar YV12 or IYUV texture with new pixel data. + * + * \param texture The texture to update + * \param rect A pointer to the rectangle of pixels to update, or NULL to + * update the entire texture. + * \param Yplane The raw pixel data for the Y plane. + * \param Ypitch The number of bytes between rows of pixel data for the Y plane. + * \param Uplane The raw pixel data for the U plane. + * \param Upitch The number of bytes between rows of pixel data for the U plane. + * \param Vplane The raw pixel data for the V plane. + * \param Vpitch The number of bytes between rows of pixel data for the V plane. + * + * \return 0 on success, or -1 if the texture is not valid. + * + * \note You can use SDL_UpdateTexture() as long as your pixel data is + * a contiguous block of Y and U/V planes in the proper order, but + * this function is available if your pixel data is not contiguous. + */ +extern DECLSPEC int SDLCALL SDL_UpdateYUVTexture(SDL_Texture * texture, + const SDL_Rect * rect, + const Uint8 *Yplane, int Ypitch, + const Uint8 *Uplane, int Upitch, + const Uint8 *Vplane, int Vpitch); + +/** + * \brief Lock a portion of the texture for write-only pixel access. + * + * \param texture The texture to lock for access, which was created with + * ::SDL_TEXTUREACCESS_STREAMING. + * \param rect A pointer to the rectangle to lock for access. If the rect + * is NULL, the entire texture will be locked. + * \param pixels This is filled in with a pointer to the locked pixels, + * appropriately offset by the locked area. + * \param pitch This is filled in with the pitch of the locked pixels. + * + * \return 0 on success, or -1 if the texture is not valid or was not created with ::SDL_TEXTUREACCESS_STREAMING. + * + * \sa SDL_UnlockTexture() + */ +extern DECLSPEC int SDLCALL SDL_LockTexture(SDL_Texture * texture, + const SDL_Rect * rect, + void **pixels, int *pitch); + +/** + * \brief Unlock a texture, uploading the changes to video memory, if needed. + * + * \sa SDL_LockTexture() + */ +extern DECLSPEC void SDLCALL SDL_UnlockTexture(SDL_Texture * texture); + +/** + * \brief Determines whether a window supports the use of render targets + * + * \param renderer The renderer that will be checked + * + * \return SDL_TRUE if supported, SDL_FALSE if not. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_RenderTargetSupported(SDL_Renderer *renderer); + +/** + * \brief Set a texture as the current rendering target. + * + * \param renderer The renderer. + * \param texture The targeted texture, which must be created with the SDL_TEXTUREACCESS_TARGET flag, or NULL for the default render target + * + * \return 0 on success, or -1 on error + * + * \sa SDL_GetRenderTarget() + */ +extern DECLSPEC int SDLCALL SDL_SetRenderTarget(SDL_Renderer *renderer, + SDL_Texture *texture); + +/** + * \brief Get the current render target or NULL for the default render target. + * + * \return The current render target + * + * \sa SDL_SetRenderTarget() + */ +extern DECLSPEC SDL_Texture * SDLCALL SDL_GetRenderTarget(SDL_Renderer *renderer); + +/** + * \brief Set device independent resolution for rendering + * + * \param renderer The renderer for which resolution should be set. + * \param w The width of the logical resolution + * \param h The height of the logical resolution + * + * This function uses the viewport and scaling functionality to allow a fixed logical + * resolution for rendering, regardless of the actual output resolution. If the actual + * output resolution doesn't have the same aspect ratio the output rendering will be + * centered within the output display. + * + * If the output display is a window, mouse events in the window will be filtered + * and scaled so they seem to arrive within the logical resolution. + * + * \note If this function results in scaling or subpixel drawing by the + * rendering backend, it will be handled using the appropriate + * quality hints. + * + * \sa SDL_RenderGetLogicalSize() + * \sa SDL_RenderSetScale() + * \sa SDL_RenderSetViewport() + */ +extern DECLSPEC int SDLCALL SDL_RenderSetLogicalSize(SDL_Renderer * renderer, int w, int h); + +/** + * \brief Get device independent resolution for rendering + * + * \param renderer The renderer from which resolution should be queried. + * \param w A pointer filled with the width of the logical resolution + * \param h A pointer filled with the height of the logical resolution + * + * \sa SDL_RenderSetLogicalSize() + */ +extern DECLSPEC void SDLCALL SDL_RenderGetLogicalSize(SDL_Renderer * renderer, int *w, int *h); + +/** + * \brief Set the drawing area for rendering on the current target. + * + * \param renderer The renderer for which the drawing area should be set. + * \param rect The rectangle representing the drawing area, or NULL to set the viewport to the entire target. + * + * The x,y of the viewport rect represents the origin for rendering. + * + * \return 0 on success, or -1 on error + * + * \note If the window associated with the renderer is resized, the viewport is automatically reset. + * + * \sa SDL_RenderGetViewport() + * \sa SDL_RenderSetLogicalSize() + */ +extern DECLSPEC int SDLCALL SDL_RenderSetViewport(SDL_Renderer * renderer, + const SDL_Rect * rect); + +/** + * \brief Get the drawing area for the current target. + * + * \sa SDL_RenderSetViewport() + */ +extern DECLSPEC void SDLCALL SDL_RenderGetViewport(SDL_Renderer * renderer, + SDL_Rect * rect); + +/** + * \brief Set the clip rectangle for the current target. + * + * \param renderer The renderer for which clip rectangle should be set. + * \param rect A pointer to the rectangle to set as the clip rectangle, or + * NULL to disable clipping. + * + * \return 0 on success, or -1 on error + * + * \sa SDL_RenderGetClipRect() + */ +extern DECLSPEC int SDLCALL SDL_RenderSetClipRect(SDL_Renderer * renderer, + const SDL_Rect * rect); + +/** + * \brief Get the clip rectangle for the current target. + * + * \param renderer The renderer from which clip rectangle should be queried. + * \param rect A pointer filled in with the current clip rectangle, or + * an empty rectangle if clipping is disabled. + * + * \sa SDL_RenderSetClipRect() + */ +extern DECLSPEC void SDLCALL SDL_RenderGetClipRect(SDL_Renderer * renderer, + SDL_Rect * rect); + +/** + * \brief Get whether clipping is enabled on the given renderer. + * + * \param renderer The renderer from which clip state should be queried. + * + * \sa SDL_RenderGetClipRect() + */ +extern DECLSPEC SDL_bool SDLCALL SDL_RenderIsClipEnabled(SDL_Renderer * renderer); + + +/** + * \brief Set the drawing scale for rendering on the current target. + * + * \param renderer The renderer for which the drawing scale should be set. + * \param scaleX The horizontal scaling factor + * \param scaleY The vertical scaling factor + * + * The drawing coordinates are scaled by the x/y scaling factors + * before they are used by the renderer. This allows resolution + * independent drawing with a single coordinate system. + * + * \note If this results in scaling or subpixel drawing by the + * rendering backend, it will be handled using the appropriate + * quality hints. For best results use integer scaling factors. + * + * \sa SDL_RenderGetScale() + * \sa SDL_RenderSetLogicalSize() + */ +extern DECLSPEC int SDLCALL SDL_RenderSetScale(SDL_Renderer * renderer, + float scaleX, float scaleY); + +/** + * \brief Get the drawing scale for the current target. + * + * \param renderer The renderer from which drawing scale should be queried. + * \param scaleX A pointer filled in with the horizontal scaling factor + * \param scaleY A pointer filled in with the vertical scaling factor + * + * \sa SDL_RenderSetScale() + */ +extern DECLSPEC void SDLCALL SDL_RenderGetScale(SDL_Renderer * renderer, + float *scaleX, float *scaleY); + +/** + * \brief Set the color used for drawing operations (Rect, Line and Clear). + * + * \param renderer The renderer for which drawing color should be set. + * \param r The red value used to draw on the rendering target. + * \param g The green value used to draw on the rendering target. + * \param b The blue value used to draw on the rendering target. + * \param a The alpha value used to draw on the rendering target, usually + * ::SDL_ALPHA_OPAQUE (255). + * + * \return 0 on success, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_SetRenderDrawColor(SDL_Renderer * renderer, + Uint8 r, Uint8 g, Uint8 b, + Uint8 a); + +/** + * \brief Get the color used for drawing operations (Rect, Line and Clear). + * + * \param renderer The renderer from which drawing color should be queried. + * \param r A pointer to the red value used to draw on the rendering target. + * \param g A pointer to the green value used to draw on the rendering target. + * \param b A pointer to the blue value used to draw on the rendering target. + * \param a A pointer to the alpha value used to draw on the rendering target, + * usually ::SDL_ALPHA_OPAQUE (255). + * + * \return 0 on success, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_GetRenderDrawColor(SDL_Renderer * renderer, + Uint8 * r, Uint8 * g, Uint8 * b, + Uint8 * a); + +/** + * \brief Set the blend mode used for drawing operations (Fill and Line). + * + * \param renderer The renderer for which blend mode should be set. + * \param blendMode ::SDL_BlendMode to use for blending. + * + * \return 0 on success, or -1 on error + * + * \note If the blend mode is not supported, the closest supported mode is + * chosen. + * + * \sa SDL_GetRenderDrawBlendMode() + */ +extern DECLSPEC int SDLCALL SDL_SetRenderDrawBlendMode(SDL_Renderer * renderer, + SDL_BlendMode blendMode); + +/** + * \brief Get the blend mode used for drawing operations. + * + * \param renderer The renderer from which blend mode should be queried. + * \param blendMode A pointer filled in with the current blend mode. + * + * \return 0 on success, or -1 on error + * + * \sa SDL_SetRenderDrawBlendMode() + */ +extern DECLSPEC int SDLCALL SDL_GetRenderDrawBlendMode(SDL_Renderer * renderer, + SDL_BlendMode *blendMode); + +/** + * \brief Clear the current rendering target with the drawing color + * + * This function clears the entire rendering target, ignoring the viewport. + * + * \return 0 on success, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_RenderClear(SDL_Renderer * renderer); + +/** + * \brief Draw a point on the current rendering target. + * + * \param renderer The renderer which should draw a point. + * \param x The x coordinate of the point. + * \param y The y coordinate of the point. + * + * \return 0 on success, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawPoint(SDL_Renderer * renderer, + int x, int y); + +/** + * \brief Draw multiple points on the current rendering target. + * + * \param renderer The renderer which should draw multiple points. + * \param points The points to draw + * \param count The number of points to draw + * + * \return 0 on success, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawPoints(SDL_Renderer * renderer, + const SDL_Point * points, + int count); + +/** + * \brief Draw a line on the current rendering target. + * + * \param renderer The renderer which should draw a line. + * \param x1 The x coordinate of the start point. + * \param y1 The y coordinate of the start point. + * \param x2 The x coordinate of the end point. + * \param y2 The y coordinate of the end point. + * + * \return 0 on success, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawLine(SDL_Renderer * renderer, + int x1, int y1, int x2, int y2); + +/** + * \brief Draw a series of connected lines on the current rendering target. + * + * \param renderer The renderer which should draw multiple lines. + * \param points The points along the lines + * \param count The number of points, drawing count-1 lines + * + * \return 0 on success, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawLines(SDL_Renderer * renderer, + const SDL_Point * points, + int count); + +/** + * \brief Draw a rectangle on the current rendering target. + * + * \param renderer The renderer which should draw a rectangle. + * \param rect A pointer to the destination rectangle, or NULL to outline the entire rendering target. + * + * \return 0 on success, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawRect(SDL_Renderer * renderer, + const SDL_Rect * rect); + +/** + * \brief Draw some number of rectangles on the current rendering target. + * + * \param renderer The renderer which should draw multiple rectangles. + * \param rects A pointer to an array of destination rectangles. + * \param count The number of rectangles. + * + * \return 0 on success, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawRects(SDL_Renderer * renderer, + const SDL_Rect * rects, + int count); + +/** + * \brief Fill a rectangle on the current rendering target with the drawing color. + * + * \param renderer The renderer which should fill a rectangle. + * \param rect A pointer to the destination rectangle, or NULL for the entire + * rendering target. + * + * \return 0 on success, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_RenderFillRect(SDL_Renderer * renderer, + const SDL_Rect * rect); + +/** + * \brief Fill some number of rectangles on the current rendering target with the drawing color. + * + * \param renderer The renderer which should fill multiple rectangles. + * \param rects A pointer to an array of destination rectangles. + * \param count The number of rectangles. + * + * \return 0 on success, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_RenderFillRects(SDL_Renderer * renderer, + const SDL_Rect * rects, + int count); + +/** + * \brief Copy a portion of the texture to the current rendering target. + * + * \param renderer The renderer which should copy parts of a texture. + * \param texture The source texture. + * \param srcrect A pointer to the source rectangle, or NULL for the entire + * texture. + * \param dstrect A pointer to the destination rectangle, or NULL for the + * entire rendering target. + * + * \return 0 on success, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_RenderCopy(SDL_Renderer * renderer, + SDL_Texture * texture, + const SDL_Rect * srcrect, + const SDL_Rect * dstrect); + +/** + * \brief Copy a portion of the source texture to the current rendering target, rotating it by angle around the given center + * + * \param renderer The renderer which should copy parts of a texture. + * \param texture The source texture. + * \param srcrect A pointer to the source rectangle, or NULL for the entire + * texture. + * \param dstrect A pointer to the destination rectangle, or NULL for the + * entire rendering target. + * \param angle An angle in degrees that indicates the rotation that will be applied to dstrect + * \param center A pointer to a point indicating the point around which dstrect will be rotated (if NULL, rotation will be done around dstrect.w/2, dstrect.h/2). + * \param flip An SDL_RendererFlip value stating which flipping actions should be performed on the texture + * + * \return 0 on success, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_RenderCopyEx(SDL_Renderer * renderer, + SDL_Texture * texture, + const SDL_Rect * srcrect, + const SDL_Rect * dstrect, + const double angle, + const SDL_Point *center, + const SDL_RendererFlip flip); + +/** + * \brief Read pixels from the current rendering target. + * + * \param renderer The renderer from which pixels should be read. + * \param rect A pointer to the rectangle to read, or NULL for the entire + * render target. + * \param format The desired format of the pixel data, or 0 to use the format + * of the rendering target + * \param pixels A pointer to be filled in with the pixel data + * \param pitch The pitch of the pixels parameter. + * + * \return 0 on success, or -1 if pixel reading is not supported. + * + * \warning This is a very slow operation, and should not be used frequently. + */ +extern DECLSPEC int SDLCALL SDL_RenderReadPixels(SDL_Renderer * renderer, + const SDL_Rect * rect, + Uint32 format, + void *pixels, int pitch); + +/** + * \brief Update the screen with rendering performed. + */ +extern DECLSPEC void SDLCALL SDL_RenderPresent(SDL_Renderer * renderer); + +/** + * \brief Destroy the specified texture. + * + * \sa SDL_CreateTexture() + * \sa SDL_CreateTextureFromSurface() + */ +extern DECLSPEC void SDLCALL SDL_DestroyTexture(SDL_Texture * texture); + +/** + * \brief Destroy the rendering context for a window and free associated + * textures. + * + * \sa SDL_CreateRenderer() + */ +extern DECLSPEC void SDLCALL SDL_DestroyRenderer(SDL_Renderer * renderer); + + +/** + * \brief Bind the texture to the current OpenGL/ES/ES2 context for use with + * OpenGL instructions. + * + * \param texture The SDL texture to bind + * \param texw A pointer to a float that will be filled with the texture width + * \param texh A pointer to a float that will be filled with the texture height + * + * \return 0 on success, or -1 if the operation is not supported + */ +extern DECLSPEC int SDLCALL SDL_GL_BindTexture(SDL_Texture *texture, float *texw, float *texh); + +/** + * \brief Unbind a texture from the current OpenGL/ES/ES2 context. + * + * \param texture The SDL texture to unbind + * + * \return 0 on success, or -1 if the operation is not supported + */ +extern DECLSPEC int SDLCALL SDL_GL_UnbindTexture(SDL_Texture *texture); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_render_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_revision.h b/Template/Game/Source/External/SDL/include/SDL_revision.h new file mode 100644 index 0000000..6d7163d --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_revision.h @@ -0,0 +1,2 @@ +#define SDL_REVISION "hg-10001:e12c38730512" +#define SDL_REVISION_NUMBER 10001 diff --git a/Template/Game/Source/External/SDL/include/SDL_rwops.h b/Template/Game/Source/External/SDL/include/SDL_rwops.h new file mode 100644 index 0000000..f460ae7 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_rwops.h @@ -0,0 +1,231 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_rwops.h + * + * This file provides a general interface for SDL to read and write + * data streams. It can easily be extended to files, memory, etc. + */ + +#ifndef _SDL_rwops_h +#define _SDL_rwops_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* RWops Types */ +#define SDL_RWOPS_UNKNOWN 0 /* Unknown stream type */ +#define SDL_RWOPS_WINFILE 1 /* Win32 file */ +#define SDL_RWOPS_STDFILE 2 /* Stdio file */ +#define SDL_RWOPS_JNIFILE 3 /* Android asset */ +#define SDL_RWOPS_MEMORY 4 /* Memory stream */ +#define SDL_RWOPS_MEMORY_RO 5 /* Read-Only memory stream */ + +/** + * This is the read/write operation structure -- very basic. + */ +typedef struct SDL_RWops +{ + /** + * Return the size of the file in this rwops, or -1 if unknown + */ + Sint64 (SDLCALL * size) (struct SDL_RWops * context); + + /** + * Seek to \c offset relative to \c whence, one of stdio's whence values: + * RW_SEEK_SET, RW_SEEK_CUR, RW_SEEK_END + * + * \return the final offset in the data stream, or -1 on error. + */ + Sint64 (SDLCALL * seek) (struct SDL_RWops * context, Sint64 offset, + int whence); + + /** + * Read up to \c maxnum objects each of size \c size from the data + * stream to the area pointed at by \c ptr. + * + * \return the number of objects read, or 0 at error or end of file. + */ + size_t (SDLCALL * read) (struct SDL_RWops * context, void *ptr, + size_t size, size_t maxnum); + + /** + * Write exactly \c num objects each of size \c size from the area + * pointed at by \c ptr to data stream. + * + * \return the number of objects written, or 0 at error or end of file. + */ + size_t (SDLCALL * write) (struct SDL_RWops * context, const void *ptr, + size_t size, size_t num); + + /** + * Close and free an allocated SDL_RWops structure. + * + * \return 0 if successful or -1 on write error when flushing data. + */ + int (SDLCALL * close) (struct SDL_RWops * context); + + Uint32 type; + union + { +#if defined(__ANDROID__) + struct + { + void *fileNameRef; + void *inputStreamRef; + void *readableByteChannelRef; + void *readMethod; + void *assetFileDescriptorRef; + long position; + long size; + long offset; + int fd; + } androidio; +#elif defined(__WIN32__) + struct + { + SDL_bool append; + void *h; + struct + { + void *data; + size_t size; + size_t left; + } buffer; + } windowsio; +#endif + +#ifdef HAVE_STDIO_H + struct + { + SDL_bool autoclose; + FILE *fp; + } stdio; +#endif + struct + { + Uint8 *base; + Uint8 *here; + Uint8 *stop; + } mem; + struct + { + void *data1; + void *data2; + } unknown; + } hidden; + +} SDL_RWops; + + +/** + * \name RWFrom functions + * + * Functions to create SDL_RWops structures from various data streams. + */ +/* @{ */ + +extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFile(const char *file, + const char *mode); + +#ifdef HAVE_STDIO_H +extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFP(FILE * fp, + SDL_bool autoclose); +#else +extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFP(void * fp, + SDL_bool autoclose); +#endif + +extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromMem(void *mem, int size); +extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromConstMem(const void *mem, + int size); + +/* @} *//* RWFrom functions */ + + +extern DECLSPEC SDL_RWops *SDLCALL SDL_AllocRW(void); +extern DECLSPEC void SDLCALL SDL_FreeRW(SDL_RWops * area); + +#define RW_SEEK_SET 0 /**< Seek from the beginning of data */ +#define RW_SEEK_CUR 1 /**< Seek relative to current read point */ +#define RW_SEEK_END 2 /**< Seek relative to the end of data */ + +/** + * \name Read/write macros + * + * Macros to easily read and write from an SDL_RWops structure. + */ +/* @{ */ +#define SDL_RWsize(ctx) (ctx)->size(ctx) +#define SDL_RWseek(ctx, offset, whence) (ctx)->seek(ctx, offset, whence) +#define SDL_RWtell(ctx) (ctx)->seek(ctx, 0, RW_SEEK_CUR) +#define SDL_RWread(ctx, ptr, size, n) (ctx)->read(ctx, ptr, size, n) +#define SDL_RWwrite(ctx, ptr, size, n) (ctx)->write(ctx, ptr, size, n) +#define SDL_RWclose(ctx) (ctx)->close(ctx) +/* @} *//* Read/write macros */ + + +/** + * \name Read endian functions + * + * Read an item of the specified endianness and return in native format. + */ +/* @{ */ +extern DECLSPEC Uint8 SDLCALL SDL_ReadU8(SDL_RWops * src); +extern DECLSPEC Uint16 SDLCALL SDL_ReadLE16(SDL_RWops * src); +extern DECLSPEC Uint16 SDLCALL SDL_ReadBE16(SDL_RWops * src); +extern DECLSPEC Uint32 SDLCALL SDL_ReadLE32(SDL_RWops * src); +extern DECLSPEC Uint32 SDLCALL SDL_ReadBE32(SDL_RWops * src); +extern DECLSPEC Uint64 SDLCALL SDL_ReadLE64(SDL_RWops * src); +extern DECLSPEC Uint64 SDLCALL SDL_ReadBE64(SDL_RWops * src); +/* @} *//* Read endian functions */ + +/** + * \name Write endian functions + * + * Write an item of native format to the specified endianness. + */ +/* @{ */ +extern DECLSPEC size_t SDLCALL SDL_WriteU8(SDL_RWops * dst, Uint8 value); +extern DECLSPEC size_t SDLCALL SDL_WriteLE16(SDL_RWops * dst, Uint16 value); +extern DECLSPEC size_t SDLCALL SDL_WriteBE16(SDL_RWops * dst, Uint16 value); +extern DECLSPEC size_t SDLCALL SDL_WriteLE32(SDL_RWops * dst, Uint32 value); +extern DECLSPEC size_t SDLCALL SDL_WriteBE32(SDL_RWops * dst, Uint32 value); +extern DECLSPEC size_t SDLCALL SDL_WriteLE64(SDL_RWops * dst, Uint64 value); +extern DECLSPEC size_t SDLCALL SDL_WriteBE64(SDL_RWops * dst, Uint64 value); +/* @} *//* Write endian functions */ + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_rwops_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_scancode.h b/Template/Game/Source/External/SDL/include/SDL_scancode.h new file mode 100644 index 0000000..0af1dd5 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_scancode.h @@ -0,0 +1,401 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_scancode.h + * + * Defines keyboard scancodes. + */ + +#ifndef _SDL_scancode_h +#define _SDL_scancode_h + +#include "SDL_stdinc.h" + +/** + * \brief The SDL keyboard scancode representation. + * + * Values of this type are used to represent keyboard keys, among other places + * in the \link SDL_Keysym::scancode key.keysym.scancode \endlink field of the + * SDL_Event structure. + * + * The values in this enumeration are based on the USB usage page standard: + * http://www.usb.org/developers/devclass_docs/Hut1_12v2.pdf + */ +typedef enum +{ + SDL_SCANCODE_UNKNOWN = 0, + + /** + * \name Usage page 0x07 + * + * These values are from usage page 0x07 (USB keyboard page). + */ + /* @{ */ + + SDL_SCANCODE_A = 4, + SDL_SCANCODE_B = 5, + SDL_SCANCODE_C = 6, + SDL_SCANCODE_D = 7, + SDL_SCANCODE_E = 8, + SDL_SCANCODE_F = 9, + SDL_SCANCODE_G = 10, + SDL_SCANCODE_H = 11, + SDL_SCANCODE_I = 12, + SDL_SCANCODE_J = 13, + SDL_SCANCODE_K = 14, + SDL_SCANCODE_L = 15, + SDL_SCANCODE_M = 16, + SDL_SCANCODE_N = 17, + SDL_SCANCODE_O = 18, + SDL_SCANCODE_P = 19, + SDL_SCANCODE_Q = 20, + SDL_SCANCODE_R = 21, + SDL_SCANCODE_S = 22, + SDL_SCANCODE_T = 23, + SDL_SCANCODE_U = 24, + SDL_SCANCODE_V = 25, + SDL_SCANCODE_W = 26, + SDL_SCANCODE_X = 27, + SDL_SCANCODE_Y = 28, + SDL_SCANCODE_Z = 29, + + SDL_SCANCODE_1 = 30, + SDL_SCANCODE_2 = 31, + SDL_SCANCODE_3 = 32, + SDL_SCANCODE_4 = 33, + SDL_SCANCODE_5 = 34, + SDL_SCANCODE_6 = 35, + SDL_SCANCODE_7 = 36, + SDL_SCANCODE_8 = 37, + SDL_SCANCODE_9 = 38, + SDL_SCANCODE_0 = 39, + + SDL_SCANCODE_RETURN = 40, + SDL_SCANCODE_ESCAPE = 41, + SDL_SCANCODE_BACKSPACE = 42, + SDL_SCANCODE_TAB = 43, + SDL_SCANCODE_SPACE = 44, + + SDL_SCANCODE_MINUS = 45, + SDL_SCANCODE_EQUALS = 46, + SDL_SCANCODE_LEFTBRACKET = 47, + SDL_SCANCODE_RIGHTBRACKET = 48, + SDL_SCANCODE_BACKSLASH = 49, /**< Located at the lower left of the return + * key on ISO keyboards and at the right end + * of the QWERTY row on ANSI keyboards. + * Produces REVERSE SOLIDUS (backslash) and + * VERTICAL LINE in a US layout, REVERSE + * SOLIDUS and VERTICAL LINE in a UK Mac + * layout, NUMBER SIGN and TILDE in a UK + * Windows layout, DOLLAR SIGN and POUND SIGN + * in a Swiss German layout, NUMBER SIGN and + * APOSTROPHE in a German layout, GRAVE + * ACCENT and POUND SIGN in a French Mac + * layout, and ASTERISK and MICRO SIGN in a + * French Windows layout. + */ + SDL_SCANCODE_NONUSHASH = 50, /**< ISO USB keyboards actually use this code + * instead of 49 for the same key, but all + * OSes I've seen treat the two codes + * identically. So, as an implementor, unless + * your keyboard generates both of those + * codes and your OS treats them differently, + * you should generate SDL_SCANCODE_BACKSLASH + * instead of this code. As a user, you + * should not rely on this code because SDL + * will never generate it with most (all?) + * keyboards. + */ + SDL_SCANCODE_SEMICOLON = 51, + SDL_SCANCODE_APOSTROPHE = 52, + SDL_SCANCODE_GRAVE = 53, /**< Located in the top left corner (on both ANSI + * and ISO keyboards). Produces GRAVE ACCENT and + * TILDE in a US Windows layout and in US and UK + * Mac layouts on ANSI keyboards, GRAVE ACCENT + * and NOT SIGN in a UK Windows layout, SECTION + * SIGN and PLUS-MINUS SIGN in US and UK Mac + * layouts on ISO keyboards, SECTION SIGN and + * DEGREE SIGN in a Swiss German layout (Mac: + * only on ISO keyboards), CIRCUMFLEX ACCENT and + * DEGREE SIGN in a German layout (Mac: only on + * ISO keyboards), SUPERSCRIPT TWO and TILDE in a + * French Windows layout, COMMERCIAL AT and + * NUMBER SIGN in a French Mac layout on ISO + * keyboards, and LESS-THAN SIGN and GREATER-THAN + * SIGN in a Swiss German, German, or French Mac + * layout on ANSI keyboards. + */ + SDL_SCANCODE_COMMA = 54, + SDL_SCANCODE_PERIOD = 55, + SDL_SCANCODE_SLASH = 56, + + SDL_SCANCODE_CAPSLOCK = 57, + + SDL_SCANCODE_F1 = 58, + SDL_SCANCODE_F2 = 59, + SDL_SCANCODE_F3 = 60, + SDL_SCANCODE_F4 = 61, + SDL_SCANCODE_F5 = 62, + SDL_SCANCODE_F6 = 63, + SDL_SCANCODE_F7 = 64, + SDL_SCANCODE_F8 = 65, + SDL_SCANCODE_F9 = 66, + SDL_SCANCODE_F10 = 67, + SDL_SCANCODE_F11 = 68, + SDL_SCANCODE_F12 = 69, + + SDL_SCANCODE_PRINTSCREEN = 70, + SDL_SCANCODE_SCROLLLOCK = 71, + SDL_SCANCODE_PAUSE = 72, + SDL_SCANCODE_INSERT = 73, /**< insert on PC, help on some Mac keyboards (but + does send code 73, not 117) */ + SDL_SCANCODE_HOME = 74, + SDL_SCANCODE_PAGEUP = 75, + SDL_SCANCODE_DELETE = 76, + SDL_SCANCODE_END = 77, + SDL_SCANCODE_PAGEDOWN = 78, + SDL_SCANCODE_RIGHT = 79, + SDL_SCANCODE_LEFT = 80, + SDL_SCANCODE_DOWN = 81, + SDL_SCANCODE_UP = 82, + + SDL_SCANCODE_NUMLOCKCLEAR = 83, /**< num lock on PC, clear on Mac keyboards + */ + SDL_SCANCODE_KP_DIVIDE = 84, + SDL_SCANCODE_KP_MULTIPLY = 85, + SDL_SCANCODE_KP_MINUS = 86, + SDL_SCANCODE_KP_PLUS = 87, + SDL_SCANCODE_KP_ENTER = 88, + SDL_SCANCODE_KP_1 = 89, + SDL_SCANCODE_KP_2 = 90, + SDL_SCANCODE_KP_3 = 91, + SDL_SCANCODE_KP_4 = 92, + SDL_SCANCODE_KP_5 = 93, + SDL_SCANCODE_KP_6 = 94, + SDL_SCANCODE_KP_7 = 95, + SDL_SCANCODE_KP_8 = 96, + SDL_SCANCODE_KP_9 = 97, + SDL_SCANCODE_KP_0 = 98, + SDL_SCANCODE_KP_PERIOD = 99, + + SDL_SCANCODE_NONUSBACKSLASH = 100, /**< This is the additional key that ISO + * keyboards have over ANSI ones, + * located between left shift and Y. + * Produces GRAVE ACCENT and TILDE in a + * US or UK Mac layout, REVERSE SOLIDUS + * (backslash) and VERTICAL LINE in a + * US or UK Windows layout, and + * LESS-THAN SIGN and GREATER-THAN SIGN + * in a Swiss German, German, or French + * layout. */ + SDL_SCANCODE_APPLICATION = 101, /**< windows contextual menu, compose */ + SDL_SCANCODE_POWER = 102, /**< The USB document says this is a status flag, + * not a physical key - but some Mac keyboards + * do have a power key. */ + SDL_SCANCODE_KP_EQUALS = 103, + SDL_SCANCODE_F13 = 104, + SDL_SCANCODE_F14 = 105, + SDL_SCANCODE_F15 = 106, + SDL_SCANCODE_F16 = 107, + SDL_SCANCODE_F17 = 108, + SDL_SCANCODE_F18 = 109, + SDL_SCANCODE_F19 = 110, + SDL_SCANCODE_F20 = 111, + SDL_SCANCODE_F21 = 112, + SDL_SCANCODE_F22 = 113, + SDL_SCANCODE_F23 = 114, + SDL_SCANCODE_F24 = 115, + SDL_SCANCODE_EXECUTE = 116, + SDL_SCANCODE_HELP = 117, + SDL_SCANCODE_MENU = 118, + SDL_SCANCODE_SELECT = 119, + SDL_SCANCODE_STOP = 120, + SDL_SCANCODE_AGAIN = 121, /**< redo */ + SDL_SCANCODE_UNDO = 122, + SDL_SCANCODE_CUT = 123, + SDL_SCANCODE_COPY = 124, + SDL_SCANCODE_PASTE = 125, + SDL_SCANCODE_FIND = 126, + SDL_SCANCODE_MUTE = 127, + SDL_SCANCODE_VOLUMEUP = 128, + SDL_SCANCODE_VOLUMEDOWN = 129, +/* not sure whether there's a reason to enable these */ +/* SDL_SCANCODE_LOCKINGCAPSLOCK = 130, */ +/* SDL_SCANCODE_LOCKINGNUMLOCK = 131, */ +/* SDL_SCANCODE_LOCKINGSCROLLLOCK = 132, */ + SDL_SCANCODE_KP_COMMA = 133, + SDL_SCANCODE_KP_EQUALSAS400 = 134, + + SDL_SCANCODE_INTERNATIONAL1 = 135, /**< used on Asian keyboards, see + footnotes in USB doc */ + SDL_SCANCODE_INTERNATIONAL2 = 136, + SDL_SCANCODE_INTERNATIONAL3 = 137, /**< Yen */ + SDL_SCANCODE_INTERNATIONAL4 = 138, + SDL_SCANCODE_INTERNATIONAL5 = 139, + SDL_SCANCODE_INTERNATIONAL6 = 140, + SDL_SCANCODE_INTERNATIONAL7 = 141, + SDL_SCANCODE_INTERNATIONAL8 = 142, + SDL_SCANCODE_INTERNATIONAL9 = 143, + SDL_SCANCODE_LANG1 = 144, /**< Hangul/English toggle */ + SDL_SCANCODE_LANG2 = 145, /**< Hanja conversion */ + SDL_SCANCODE_LANG3 = 146, /**< Katakana */ + SDL_SCANCODE_LANG4 = 147, /**< Hiragana */ + SDL_SCANCODE_LANG5 = 148, /**< Zenkaku/Hankaku */ + SDL_SCANCODE_LANG6 = 149, /**< reserved */ + SDL_SCANCODE_LANG7 = 150, /**< reserved */ + SDL_SCANCODE_LANG8 = 151, /**< reserved */ + SDL_SCANCODE_LANG9 = 152, /**< reserved */ + + SDL_SCANCODE_ALTERASE = 153, /**< Erase-Eaze */ + SDL_SCANCODE_SYSREQ = 154, + SDL_SCANCODE_CANCEL = 155, + SDL_SCANCODE_CLEAR = 156, + SDL_SCANCODE_PRIOR = 157, + SDL_SCANCODE_RETURN2 = 158, + SDL_SCANCODE_SEPARATOR = 159, + SDL_SCANCODE_OUT = 160, + SDL_SCANCODE_OPER = 161, + SDL_SCANCODE_CLEARAGAIN = 162, + SDL_SCANCODE_CRSEL = 163, + SDL_SCANCODE_EXSEL = 164, + + SDL_SCANCODE_KP_00 = 176, + SDL_SCANCODE_KP_000 = 177, + SDL_SCANCODE_THOUSANDSSEPARATOR = 178, + SDL_SCANCODE_DECIMALSEPARATOR = 179, + SDL_SCANCODE_CURRENCYUNIT = 180, + SDL_SCANCODE_CURRENCYSUBUNIT = 181, + SDL_SCANCODE_KP_LEFTPAREN = 182, + SDL_SCANCODE_KP_RIGHTPAREN = 183, + SDL_SCANCODE_KP_LEFTBRACE = 184, + SDL_SCANCODE_KP_RIGHTBRACE = 185, + SDL_SCANCODE_KP_TAB = 186, + SDL_SCANCODE_KP_BACKSPACE = 187, + SDL_SCANCODE_KP_A = 188, + SDL_SCANCODE_KP_B = 189, + SDL_SCANCODE_KP_C = 190, + SDL_SCANCODE_KP_D = 191, + SDL_SCANCODE_KP_E = 192, + SDL_SCANCODE_KP_F = 193, + SDL_SCANCODE_KP_XOR = 194, + SDL_SCANCODE_KP_POWER = 195, + SDL_SCANCODE_KP_PERCENT = 196, + SDL_SCANCODE_KP_LESS = 197, + SDL_SCANCODE_KP_GREATER = 198, + SDL_SCANCODE_KP_AMPERSAND = 199, + SDL_SCANCODE_KP_DBLAMPERSAND = 200, + SDL_SCANCODE_KP_VERTICALBAR = 201, + SDL_SCANCODE_KP_DBLVERTICALBAR = 202, + SDL_SCANCODE_KP_COLON = 203, + SDL_SCANCODE_KP_HASH = 204, + SDL_SCANCODE_KP_SPACE = 205, + SDL_SCANCODE_KP_AT = 206, + SDL_SCANCODE_KP_EXCLAM = 207, + SDL_SCANCODE_KP_MEMSTORE = 208, + SDL_SCANCODE_KP_MEMRECALL = 209, + SDL_SCANCODE_KP_MEMCLEAR = 210, + SDL_SCANCODE_KP_MEMADD = 211, + SDL_SCANCODE_KP_MEMSUBTRACT = 212, + SDL_SCANCODE_KP_MEMMULTIPLY = 213, + SDL_SCANCODE_KP_MEMDIVIDE = 214, + SDL_SCANCODE_KP_PLUSMINUS = 215, + SDL_SCANCODE_KP_CLEAR = 216, + SDL_SCANCODE_KP_CLEARENTRY = 217, + SDL_SCANCODE_KP_BINARY = 218, + SDL_SCANCODE_KP_OCTAL = 219, + SDL_SCANCODE_KP_DECIMAL = 220, + SDL_SCANCODE_KP_HEXADECIMAL = 221, + + SDL_SCANCODE_LCTRL = 224, + SDL_SCANCODE_LSHIFT = 225, + SDL_SCANCODE_LALT = 226, /**< alt, option */ + SDL_SCANCODE_LGUI = 227, /**< windows, command (apple), meta */ + SDL_SCANCODE_RCTRL = 228, + SDL_SCANCODE_RSHIFT = 229, + SDL_SCANCODE_RALT = 230, /**< alt gr, option */ + SDL_SCANCODE_RGUI = 231, /**< windows, command (apple), meta */ + + SDL_SCANCODE_MODE = 257, /**< I'm not sure if this is really not covered + * by any of the above, but since there's a + * special KMOD_MODE for it I'm adding it here + */ + + /* @} *//* Usage page 0x07 */ + + /** + * \name Usage page 0x0C + * + * These values are mapped from usage page 0x0C (USB consumer page). + */ + /* @{ */ + + SDL_SCANCODE_AUDIONEXT = 258, + SDL_SCANCODE_AUDIOPREV = 259, + SDL_SCANCODE_AUDIOSTOP = 260, + SDL_SCANCODE_AUDIOPLAY = 261, + SDL_SCANCODE_AUDIOMUTE = 262, + SDL_SCANCODE_MEDIASELECT = 263, + SDL_SCANCODE_WWW = 264, + SDL_SCANCODE_MAIL = 265, + SDL_SCANCODE_CALCULATOR = 266, + SDL_SCANCODE_COMPUTER = 267, + SDL_SCANCODE_AC_SEARCH = 268, + SDL_SCANCODE_AC_HOME = 269, + SDL_SCANCODE_AC_BACK = 270, + SDL_SCANCODE_AC_FORWARD = 271, + SDL_SCANCODE_AC_STOP = 272, + SDL_SCANCODE_AC_REFRESH = 273, + SDL_SCANCODE_AC_BOOKMARKS = 274, + + /* @} *//* Usage page 0x0C */ + + /** + * \name Walther keys + * + * These are values that Christian Walther added (for mac keyboard?). + */ + /* @{ */ + + SDL_SCANCODE_BRIGHTNESSDOWN = 275, + SDL_SCANCODE_BRIGHTNESSUP = 276, + SDL_SCANCODE_DISPLAYSWITCH = 277, /**< display mirroring/dual display + switch, video mode switch */ + SDL_SCANCODE_KBDILLUMTOGGLE = 278, + SDL_SCANCODE_KBDILLUMDOWN = 279, + SDL_SCANCODE_KBDILLUMUP = 280, + SDL_SCANCODE_EJECT = 281, + SDL_SCANCODE_SLEEP = 282, + + SDL_SCANCODE_APP1 = 283, + SDL_SCANCODE_APP2 = 284, + + /* @} *//* Walther keys */ + + /* Add any other keys here. */ + + SDL_NUM_SCANCODES = 512 /**< not a key, just marks the number of scancodes + for array bounds */ +} SDL_Scancode; + +#endif /* _SDL_scancode_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_shape.h b/Template/Game/Source/External/SDL/include/SDL_shape.h new file mode 100644 index 0000000..db10a8f --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_shape.h @@ -0,0 +1,143 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_shape_h +#define _SDL_shape_h + +#include "SDL_stdinc.h" +#include "SDL_pixels.h" +#include "SDL_rect.h" +#include "SDL_surface.h" +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** \file SDL_shape.h + * + * Header file for the shaped window API. + */ + +#define SDL_NONSHAPEABLE_WINDOW -1 +#define SDL_INVALID_SHAPE_ARGUMENT -2 +#define SDL_WINDOW_LACKS_SHAPE -3 + +/** + * \brief Create a window that can be shaped with the specified position, dimensions, and flags. + * + * \param title The title of the window, in UTF-8 encoding. + * \param x The x position of the window, ::SDL_WINDOWPOS_CENTERED, or + * ::SDL_WINDOWPOS_UNDEFINED. + * \param y The y position of the window, ::SDL_WINDOWPOS_CENTERED, or + * ::SDL_WINDOWPOS_UNDEFINED. + * \param w The width of the window. + * \param h The height of the window. + * \param flags The flags for the window, a mask of SDL_WINDOW_BORDERLESS with any of the following: + * ::SDL_WINDOW_OPENGL, ::SDL_WINDOW_INPUT_GRABBED, + * ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_RESIZABLE, + * ::SDL_WINDOW_MAXIMIZED, ::SDL_WINDOW_MINIMIZED, + * ::SDL_WINDOW_BORDERLESS is always set, and ::SDL_WINDOW_FULLSCREEN is always unset. + * + * \return The window created, or NULL if window creation failed. + * + * \sa SDL_DestroyWindow() + */ +extern DECLSPEC SDL_Window * SDLCALL SDL_CreateShapedWindow(const char *title,unsigned int x,unsigned int y,unsigned int w,unsigned int h,Uint32 flags); + +/** + * \brief Return whether the given window is a shaped window. + * + * \param window The window to query for being shaped. + * + * \return SDL_TRUE if the window is a window that can be shaped, SDL_FALSE if the window is unshaped or NULL. + * \sa SDL_CreateShapedWindow + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsShapedWindow(const SDL_Window *window); + +/** \brief An enum denoting the specific type of contents present in an SDL_WindowShapeParams union. */ +typedef enum { + /** \brief The default mode, a binarized alpha cutoff of 1. */ + ShapeModeDefault, + /** \brief A binarized alpha cutoff with a given integer value. */ + ShapeModeBinarizeAlpha, + /** \brief A binarized alpha cutoff with a given integer value, but with the opposite comparison. */ + ShapeModeReverseBinarizeAlpha, + /** \brief A color key is applied. */ + ShapeModeColorKey +} WindowShapeMode; + +#define SDL_SHAPEMODEALPHA(mode) (mode == ShapeModeDefault || mode == ShapeModeBinarizeAlpha || mode == ShapeModeReverseBinarizeAlpha) + +/** \brief A union containing parameters for shaped windows. */ +typedef union { + /** \brief a cutoff alpha value for binarization of the window shape's alpha channel. */ + Uint8 binarizationCutoff; + SDL_Color colorKey; +} SDL_WindowShapeParams; + +/** \brief A struct that tags the SDL_WindowShapeParams union with an enum describing the type of its contents. */ +typedef struct SDL_WindowShapeMode { + /** \brief The mode of these window-shape parameters. */ + WindowShapeMode mode; + /** \brief Window-shape parameters. */ + SDL_WindowShapeParams parameters; +} SDL_WindowShapeMode; + +/** + * \brief Set the shape and parameters of a shaped window. + * + * \param window The shaped window whose parameters should be set. + * \param shape A surface encoding the desired shape for the window. + * \param shape_mode The parameters to set for the shaped window. + * + * \return 0 on success, SDL_INVALID_SHAPE_ARGUMENT on invalid an invalid shape argument, or SDL_NONSHAPEABLE_WINDOW + * if the SDL_Window* given does not reference a valid shaped window. + * + * \sa SDL_WindowShapeMode + * \sa SDL_GetShapedWindowMode. + */ +extern DECLSPEC int SDLCALL SDL_SetWindowShape(SDL_Window *window,SDL_Surface *shape,SDL_WindowShapeMode *shape_mode); + +/** + * \brief Get the shape parameters of a shaped window. + * + * \param window The shaped window whose parameters should be retrieved. + * \param shape_mode An empty shape-mode structure to fill, or NULL to check whether the window has a shape. + * + * \return 0 if the window has a shape and, provided shape_mode was not NULL, shape_mode has been filled with the mode + * data, SDL_NONSHAPEABLE_WINDOW if the SDL_Window given is not a shaped window, or SDL_WINDOW_LACKS_SHAPE if + * the SDL_Window* given is a shapeable window currently lacking a shape. + * + * \sa SDL_WindowShapeMode + * \sa SDL_SetWindowShape + */ +extern DECLSPEC int SDLCALL SDL_GetShapedWindowMode(SDL_Window *window,SDL_WindowShapeMode *shape_mode); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_shape_h */ diff --git a/Template/Game/Source/External/SDL/include/SDL_stdinc.h b/Template/Game/Source/External/SDL/include/SDL_stdinc.h new file mode 100644 index 0000000..887bcd2 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_stdinc.h @@ -0,0 +1,527 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_stdinc.h + * + * This is a general header that includes C language support. + */ + +#ifndef _SDL_stdinc_h +#define _SDL_stdinc_h + +#include "SDL_config.h" + +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_STDIO_H +#include +#endif +#if defined(STDC_HEADERS) +# include +# include +# include +#else +# if defined(HAVE_STDLIB_H) +# include +# elif defined(HAVE_MALLOC_H) +# include +# endif +# if defined(HAVE_STDDEF_H) +# include +# endif +# if defined(HAVE_STDARG_H) +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H) +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#if defined(HAVE_INTTYPES_H) +# include +#elif defined(HAVE_STDINT_H) +# include +#endif +#ifdef HAVE_CTYPE_H +# include +#endif +#ifdef HAVE_MATH_H +# if defined(__WINRT__) +/* Defining _USE_MATH_DEFINES is required to get M_PI to be defined on + WinRT. See http://msdn.microsoft.com/en-us/library/4hwaceh6.aspx + for more information. +*/ +# define _USE_MATH_DEFINES +# endif +# include +#endif +#ifdef HAVE_FLOAT_H +# include +#endif +#if defined(HAVE_ICONV) && defined(HAVE_ICONV_H) +# include +#endif + +/** + * The number of elements in an array. + */ +#define SDL_arraysize(array) (sizeof(array)/sizeof(array[0])) +#define SDL_TABLESIZE(table) SDL_arraysize(table) + +/** + * \name Cast operators + * + * Use proper C++ casts when compiled as C++ to be compatible with the option + * -Wold-style-cast of GCC (and -Werror=old-style-cast in GCC 4.2 and above). + */ +/* @{ */ +#ifdef __cplusplus +#define SDL_reinterpret_cast(type, expression) reinterpret_cast(expression) +#define SDL_static_cast(type, expression) static_cast(expression) +#define SDL_const_cast(type, expression) const_cast(expression) +#else +#define SDL_reinterpret_cast(type, expression) ((type)(expression)) +#define SDL_static_cast(type, expression) ((type)(expression)) +#define SDL_const_cast(type, expression) ((type)(expression)) +#endif +/* @} *//* Cast operators */ + +/* Define a four character code as a Uint32 */ +#define SDL_FOURCC(A, B, C, D) \ + ((SDL_static_cast(Uint32, SDL_static_cast(Uint8, (A))) << 0) | \ + (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (B))) << 8) | \ + (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (C))) << 16) | \ + (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (D))) << 24)) + +/** + * \name Basic data types + */ +/* @{ */ + +typedef enum +{ + SDL_FALSE = 0, + SDL_TRUE = 1 +} SDL_bool; + +/** + * \brief A signed 8-bit integer type. + */ +typedef int8_t Sint8; +/** + * \brief An unsigned 8-bit integer type. + */ +typedef uint8_t Uint8; +/** + * \brief A signed 16-bit integer type. + */ +typedef int16_t Sint16; +/** + * \brief An unsigned 16-bit integer type. + */ +typedef uint16_t Uint16; +/** + * \brief A signed 32-bit integer type. + */ +typedef int32_t Sint32; +/** + * \brief An unsigned 32-bit integer type. + */ +typedef uint32_t Uint32; + +/** + * \brief A signed 64-bit integer type. + */ +typedef int64_t Sint64; +/** + * \brief An unsigned 64-bit integer type. + */ +typedef uint64_t Uint64; + +/* @} *//* Basic data types */ + +/* Make sure we have macros for printing 64 bit values. + * should define these but this is not true all platforms. + * (for example win32) */ +#ifndef SDL_PRIs64 +#ifdef PRIs64 +#define SDL_PRIs64 PRIs64 +#elif defined(__WIN32__) +#define SDL_PRIs64 "I64d" +#elif defined(__LINUX__) && defined(__LP64__) +#define SDL_PRIs64 "ld" +#else +#define SDL_PRIs64 "lld" +#endif +#endif +#ifndef SDL_PRIu64 +#ifdef PRIu64 +#define SDL_PRIu64 PRIu64 +#elif defined(__WIN32__) +#define SDL_PRIu64 "I64u" +#elif defined(__LINUX__) && defined(__LP64__) +#define SDL_PRIu64 "lu" +#else +#define SDL_PRIu64 "llu" +#endif +#endif +#ifndef SDL_PRIx64 +#ifdef PRIx64 +#define SDL_PRIx64 PRIx64 +#elif defined(__WIN32__) +#define SDL_PRIx64 "I64x" +#elif defined(__LINUX__) && defined(__LP64__) +#define SDL_PRIx64 "lx" +#else +#define SDL_PRIx64 "llx" +#endif +#endif +#ifndef SDL_PRIX64 +#ifdef PRIX64 +#define SDL_PRIX64 PRIX64 +#elif defined(__WIN32__) +#define SDL_PRIX64 "I64X" +#elif defined(__LINUX__) && defined(__LP64__) +#define SDL_PRIX64 "lX" +#else +#define SDL_PRIX64 "llX" +#endif +#endif + +/* Annotations to help code analysis tools */ +#ifdef SDL_DISABLE_ANALYZE_MACROS +#define SDL_IN_BYTECAP(x) +#define SDL_INOUT_Z_CAP(x) +#define SDL_OUT_Z_CAP(x) +#define SDL_OUT_CAP(x) +#define SDL_OUT_BYTECAP(x) +#define SDL_OUT_Z_BYTECAP(x) +#define SDL_PRINTF_FORMAT_STRING +#define SDL_SCANF_FORMAT_STRING +#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) +#define SDL_SCANF_VARARG_FUNC( fmtargnumber ) +#else +#if defined(_MSC_VER) && (_MSC_VER >= 1600) /* VS 2010 and above */ +#include + +#define SDL_IN_BYTECAP(x) _In_bytecount_(x) +#define SDL_INOUT_Z_CAP(x) _Inout_z_cap_(x) +#define SDL_OUT_Z_CAP(x) _Out_z_cap_(x) +#define SDL_OUT_CAP(x) _Out_cap_(x) +#define SDL_OUT_BYTECAP(x) _Out_bytecap_(x) +#define SDL_OUT_Z_BYTECAP(x) _Out_z_bytecap_(x) + +#define SDL_PRINTF_FORMAT_STRING _Printf_format_string_ +#define SDL_SCANF_FORMAT_STRING _Scanf_format_string_impl_ +#else +#define SDL_IN_BYTECAP(x) +#define SDL_INOUT_Z_CAP(x) +#define SDL_OUT_Z_CAP(x) +#define SDL_OUT_CAP(x) +#define SDL_OUT_BYTECAP(x) +#define SDL_OUT_Z_BYTECAP(x) +#define SDL_PRINTF_FORMAT_STRING +#define SDL_SCANF_FORMAT_STRING +#endif +#if defined(__GNUC__) +#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) __attribute__ (( format( __printf__, fmtargnumber, fmtargnumber+1 ))) +#define SDL_SCANF_VARARG_FUNC( fmtargnumber ) __attribute__ (( format( __scanf__, fmtargnumber, fmtargnumber+1 ))) +#else +#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) +#define SDL_SCANF_VARARG_FUNC( fmtargnumber ) +#endif +#endif /* SDL_DISABLE_ANALYZE_MACROS */ + +#define SDL_COMPILE_TIME_ASSERT(name, x) \ + typedef int SDL_dummy_ ## name[(x) * 2 - 1] +/** \cond */ +#ifndef DOXYGEN_SHOULD_IGNORE_THIS +SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1); +SDL_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1); +SDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2); +SDL_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2); +SDL_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4); +SDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4); +SDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8); +SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8); +#endif /* DOXYGEN_SHOULD_IGNORE_THIS */ +/** \endcond */ + +/* Check to make sure enums are the size of ints, for structure packing. + For both Watcom C/C++ and Borland C/C++ the compiler option that makes + enums having the size of an int must be enabled. + This is "-b" for Borland C/C++ and "-ei" for Watcom C/C++ (v11). +*/ + +/** \cond */ +#ifndef DOXYGEN_SHOULD_IGNORE_THIS +#if !defined(__ANDROID__) + /* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */ +typedef enum +{ + DUMMY_ENUM_VALUE +} SDL_DUMMY_ENUM; + +SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int)); +#endif +#endif /* DOXYGEN_SHOULD_IGNORE_THIS */ +/** \endcond */ + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(HAVE_ALLOCA) && !defined(alloca) +# if defined(HAVE_ALLOCA_H) +# include +# elif defined(__GNUC__) +# define alloca __builtin_alloca +# elif defined(_MSC_VER) +# include +# define alloca _alloca +# elif defined(__WATCOMC__) +# include +# elif defined(__BORLANDC__) +# include +# elif defined(__DMC__) +# include +# elif defined(__AIX__) +#pragma alloca +# elif defined(__MRC__) +void *alloca(unsigned); +# else +char *alloca(); +# endif +#endif +#ifdef HAVE_ALLOCA +#define SDL_stack_alloc(type, count) (type*)alloca(sizeof(type)*(count)) +#define SDL_stack_free(data) +#else +#define SDL_stack_alloc(type, count) (type*)SDL_malloc(sizeof(type)*(count)) +#define SDL_stack_free(data) SDL_free(data) +#endif + +extern DECLSPEC void *SDLCALL SDL_malloc(size_t size); +extern DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size); +extern DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size); +extern DECLSPEC void SDLCALL SDL_free(void *mem); + +extern DECLSPEC char *SDLCALL SDL_getenv(const char *name); +extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite); + +extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int (*compare) (const void *, const void *)); + +extern DECLSPEC int SDLCALL SDL_abs(int x); + +/* !!! FIXME: these have side effects. You probably shouldn't use them. */ +/* !!! FIXME: Maybe we do forceinline functions of SDL_mini, SDL_minf, etc? */ +#define SDL_min(x, y) (((x) < (y)) ? (x) : (y)) +#define SDL_max(x, y) (((x) > (y)) ? (x) : (y)) + +extern DECLSPEC int SDLCALL SDL_isdigit(int x); +extern DECLSPEC int SDLCALL SDL_isspace(int x); +extern DECLSPEC int SDLCALL SDL_toupper(int x); +extern DECLSPEC int SDLCALL SDL_tolower(int x); + +extern DECLSPEC void *SDLCALL SDL_memset(SDL_OUT_BYTECAP(len) void *dst, int c, size_t len); + +#define SDL_zero(x) SDL_memset(&(x), 0, sizeof((x))) +#define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x))) + +/* Note that memset() is a byte assignment and this is a 32-bit assignment, so they're not directly equivalent. */ +SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords) +{ +#if defined(__GNUC__) && defined(i386) + int u0, u1, u2; + __asm__ __volatile__ ( + "cld \n\t" + "rep ; stosl \n\t" + : "=&D" (u0), "=&a" (u1), "=&c" (u2) + : "0" (dst), "1" (val), "2" (SDL_static_cast(Uint32, dwords)) + : "memory" + ); +#else + size_t _n = (dwords + 3) / 4; + Uint32 *_p = SDL_static_cast(Uint32 *, dst); + Uint32 _val = (val); + if (dwords == 0) + return; + switch (dwords % 4) + { + case 0: do { *_p++ = _val; + case 3: *_p++ = _val; + case 2: *_p++ = _val; + case 1: *_p++ = _val; + } while ( --_n ); + } +#endif +} + + +extern DECLSPEC void *SDLCALL SDL_memcpy(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len); + +extern DECLSPEC void *SDLCALL SDL_memmove(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len); +extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len); + +extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t *wstr); +extern DECLSPEC size_t SDLCALL SDL_wcslcpy(SDL_OUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen); +extern DECLSPEC size_t SDLCALL SDL_wcslcat(SDL_INOUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen); + +extern DECLSPEC size_t SDLCALL SDL_strlen(const char *str); +extern DECLSPEC size_t SDLCALL SDL_strlcpy(SDL_OUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen); +extern DECLSPEC size_t SDLCALL SDL_utf8strlcpy(SDL_OUT_Z_CAP(dst_bytes) char *dst, const char *src, size_t dst_bytes); +extern DECLSPEC size_t SDLCALL SDL_strlcat(SDL_INOUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen); +extern DECLSPEC char *SDLCALL SDL_strdup(const char *str); +extern DECLSPEC char *SDLCALL SDL_strrev(char *str); +extern DECLSPEC char *SDLCALL SDL_strupr(char *str); +extern DECLSPEC char *SDLCALL SDL_strlwr(char *str); +extern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c); +extern DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c); +extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle); + +extern DECLSPEC char *SDLCALL SDL_itoa(int value, char *str, int radix); +extern DECLSPEC char *SDLCALL SDL_uitoa(unsigned int value, char *str, int radix); +extern DECLSPEC char *SDLCALL SDL_ltoa(long value, char *str, int radix); +extern DECLSPEC char *SDLCALL SDL_ultoa(unsigned long value, char *str, int radix); +extern DECLSPEC char *SDLCALL SDL_lltoa(Sint64 value, char *str, int radix); +extern DECLSPEC char *SDLCALL SDL_ulltoa(Uint64 value, char *str, int radix); + +extern DECLSPEC int SDLCALL SDL_atoi(const char *str); +extern DECLSPEC double SDLCALL SDL_atof(const char *str); +extern DECLSPEC long SDLCALL SDL_strtol(const char *str, char **endp, int base); +extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *str, char **endp, int base); +extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *str, char **endp, int base); +extern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *str, char **endp, int base); +extern DECLSPEC double SDLCALL SDL_strtod(const char *str, char **endp); + +extern DECLSPEC int SDLCALL SDL_strcmp(const char *str1, const char *str2); +extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2, size_t maxlen); +extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, const char *str2); +extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, const char *str2, size_t len); + +extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, SDL_SCANF_FORMAT_STRING const char *fmt, ...) SDL_SCANF_VARARG_FUNC(2); +extern DECLSPEC int SDLCALL SDL_vsscanf(const char *text, const char *fmt, va_list ap); +extern DECLSPEC int SDLCALL SDL_snprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, SDL_PRINTF_FORMAT_STRING const char *fmt, ... ) SDL_PRINTF_VARARG_FUNC(3); +extern DECLSPEC int SDLCALL SDL_vsnprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, const char *fmt, va_list ap); + +#ifndef HAVE_M_PI +#ifndef M_PI +#define M_PI 3.14159265358979323846264338327950288 /* pi */ +#endif +#endif + +extern DECLSPEC double SDLCALL SDL_acos(double x); +extern DECLSPEC double SDLCALL SDL_asin(double x); +extern DECLSPEC double SDLCALL SDL_atan(double x); +extern DECLSPEC double SDLCALL SDL_atan2(double x, double y); +extern DECLSPEC double SDLCALL SDL_ceil(double x); +extern DECLSPEC double SDLCALL SDL_copysign(double x, double y); +extern DECLSPEC double SDLCALL SDL_cos(double x); +extern DECLSPEC float SDLCALL SDL_cosf(float x); +extern DECLSPEC double SDLCALL SDL_fabs(double x); +extern DECLSPEC double SDLCALL SDL_floor(double x); +extern DECLSPEC double SDLCALL SDL_log(double x); +extern DECLSPEC double SDLCALL SDL_pow(double x, double y); +extern DECLSPEC double SDLCALL SDL_scalbn(double x, int n); +extern DECLSPEC double SDLCALL SDL_sin(double x); +extern DECLSPEC float SDLCALL SDL_sinf(float x); +extern DECLSPEC double SDLCALL SDL_sqrt(double x); +extern DECLSPEC float SDLCALL SDL_sqrtf(float x); +extern DECLSPEC double SDLCALL SDL_tan(double x); +extern DECLSPEC float SDLCALL SDL_tanf(float x); + +/* The SDL implementation of iconv() returns these error codes */ +#define SDL_ICONV_ERROR (size_t)-1 +#define SDL_ICONV_E2BIG (size_t)-2 +#define SDL_ICONV_EILSEQ (size_t)-3 +#define SDL_ICONV_EINVAL (size_t)-4 + +/* SDL_iconv_* are now always real symbols/types, not macros or inlined. */ +typedef struct _SDL_iconv_t *SDL_iconv_t; +extern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode, + const char *fromcode); +extern DECLSPEC int SDLCALL SDL_iconv_close(SDL_iconv_t cd); +extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, + size_t * inbytesleft, char **outbuf, + size_t * outbytesleft); +/** + * This function converts a string between encodings in one pass, returning a + * string that must be freed with SDL_free() or NULL on error. + */ +extern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode, + const char *fromcode, + const char *inbuf, + size_t inbytesleft); +#define SDL_iconv_utf8_locale(S) SDL_iconv_string("", "UTF-8", S, SDL_strlen(S)+1) +#define SDL_iconv_utf8_ucs2(S) (Uint16 *)SDL_iconv_string("UCS-2-INTERNAL", "UTF-8", S, SDL_strlen(S)+1) +#define SDL_iconv_utf8_ucs4(S) (Uint32 *)SDL_iconv_string("UCS-4-INTERNAL", "UTF-8", S, SDL_strlen(S)+1) + +/* force builds using Clang's static analysis tools to use literal C runtime + here, since there are possibly tests that are ineffective otherwise. */ +#if defined(__clang_analyzer__) && !defined(SDL_DISABLE_ANALYZE_MACROS) +#define SDL_malloc malloc +#define SDL_calloc calloc +#define SDL_realloc realloc +#define SDL_free free +#define SDL_memset memset +#define SDL_memcpy memcpy +#define SDL_memmove memmove +#define SDL_memcmp memcmp +#define SDL_strlen strlen +#define SDL_strlcpy strlcpy +#define SDL_strlcat strlcat +#define SDL_strdup strdup +#define SDL_strchr strchr +#define SDL_strrchr strrchr +#define SDL_strstr strstr +#define SDL_strcmp strcmp +#define SDL_strncmp strncmp +#define SDL_strcasecmp strcasecmp +#define SDL_strncasecmp strncasecmp +#define SDL_sscanf sscanf +#define SDL_vsscanf vsscanf +#define SDL_snprintf snprintf +#define SDL_vsnprintf vsnprintf +#endif + +SDL_FORCE_INLINE void *SDL_memcpy4(SDL_OUT_BYTECAP(dwords*4) void *dst, SDL_IN_BYTECAP(dwords*4) const void *src, size_t dwords) +{ + return SDL_memcpy(dst, src, dwords * 4); +} + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_stdinc_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_surface.h b/Template/Game/Source/External/SDL/include/SDL_surface.h new file mode 100644 index 0000000..e63ca89 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_surface.h @@ -0,0 +1,503 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_surface.h + * + * Header file for ::SDL_Surface definition and management functions. + */ + +#ifndef _SDL_surface_h +#define _SDL_surface_h + +#include "SDL_stdinc.h" +#include "SDL_pixels.h" +#include "SDL_rect.h" +#include "SDL_blendmode.h" +#include "SDL_rwops.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \name Surface flags + * + * These are the currently supported flags for the ::SDL_Surface. + * + * \internal + * Used internally (read-only). + */ +/* @{ */ +#define SDL_SWSURFACE 0 /**< Just here for compatibility */ +#define SDL_PREALLOC 0x00000001 /**< Surface uses preallocated memory */ +#define SDL_RLEACCEL 0x00000002 /**< Surface is RLE encoded */ +#define SDL_DONTFREE 0x00000004 /**< Surface is referenced internally */ +/* @} *//* Surface flags */ + +/** + * Evaluates to true if the surface needs to be locked before access. + */ +#define SDL_MUSTLOCK(S) (((S)->flags & SDL_RLEACCEL) != 0) + +/** + * \brief A collection of pixels used in software blitting. + * + * \note This structure should be treated as read-only, except for \c pixels, + * which, if not NULL, contains the raw pixel data for the surface. + */ +typedef struct SDL_Surface +{ + Uint32 flags; /**< Read-only */ + SDL_PixelFormat *format; /**< Read-only */ + int w, h; /**< Read-only */ + int pitch; /**< Read-only */ + void *pixels; /**< Read-write */ + + /** Application data associated with the surface */ + void *userdata; /**< Read-write */ + + /** information needed for surfaces requiring locks */ + int locked; /**< Read-only */ + void *lock_data; /**< Read-only */ + + /** clipping information */ + SDL_Rect clip_rect; /**< Read-only */ + + /** info for fast blit mapping to other surfaces */ + struct SDL_BlitMap *map; /**< Private */ + + /** Reference count -- used when freeing surface */ + int refcount; /**< Read-mostly */ +} SDL_Surface; + +/** + * \brief The type of function used for surface blitting functions. + */ +typedef int (*SDL_blit) (struct SDL_Surface * src, SDL_Rect * srcrect, + struct SDL_Surface * dst, SDL_Rect * dstrect); + +/** + * Allocate and free an RGB surface. + * + * If the depth is 4 or 8 bits, an empty palette is allocated for the surface. + * If the depth is greater than 8 bits, the pixel format is set using the + * flags '[RGB]mask'. + * + * If the function runs out of memory, it will return NULL. + * + * \param flags The \c flags are obsolete and should be set to 0. + * \param width The width in pixels of the surface to create. + * \param height The height in pixels of the surface to create. + * \param depth The depth in bits of the surface to create. + * \param Rmask The red mask of the surface to create. + * \param Gmask The green mask of the surface to create. + * \param Bmask The blue mask of the surface to create. + * \param Amask The alpha mask of the surface to create. + */ +extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurface + (Uint32 flags, int width, int height, int depth, + Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask); +extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceFrom(void *pixels, + int width, + int height, + int depth, + int pitch, + Uint32 Rmask, + Uint32 Gmask, + Uint32 Bmask, + Uint32 Amask); +extern DECLSPEC void SDLCALL SDL_FreeSurface(SDL_Surface * surface); + +/** + * \brief Set the palette used by a surface. + * + * \return 0, or -1 if the surface format doesn't use a palette. + * + * \note A single palette can be shared with many surfaces. + */ +extern DECLSPEC int SDLCALL SDL_SetSurfacePalette(SDL_Surface * surface, + SDL_Palette * palette); + +/** + * \brief Sets up a surface for directly accessing the pixels. + * + * Between calls to SDL_LockSurface() / SDL_UnlockSurface(), you can write + * to and read from \c surface->pixels, using the pixel format stored in + * \c surface->format. Once you are done accessing the surface, you should + * use SDL_UnlockSurface() to release it. + * + * Not all surfaces require locking. If SDL_MUSTLOCK(surface) evaluates + * to 0, then you can read and write to the surface at any time, and the + * pixel format of the surface will not change. + * + * No operating system or library calls should be made between lock/unlock + * pairs, as critical system locks may be held during this time. + * + * SDL_LockSurface() returns 0, or -1 if the surface couldn't be locked. + * + * \sa SDL_UnlockSurface() + */ +extern DECLSPEC int SDLCALL SDL_LockSurface(SDL_Surface * surface); +/** \sa SDL_LockSurface() */ +extern DECLSPEC void SDLCALL SDL_UnlockSurface(SDL_Surface * surface); + +/** + * Load a surface from a seekable SDL data stream (memory or file). + * + * If \c freesrc is non-zero, the stream will be closed after being read. + * + * The new surface should be freed with SDL_FreeSurface(). + * + * \return the new surface, or NULL if there was an error. + */ +extern DECLSPEC SDL_Surface *SDLCALL SDL_LoadBMP_RW(SDL_RWops * src, + int freesrc); + +/** + * Load a surface from a file. + * + * Convenience macro. + */ +#define SDL_LoadBMP(file) SDL_LoadBMP_RW(SDL_RWFromFile(file, "rb"), 1) + +/** + * Save a surface to a seekable SDL data stream (memory or file). + * + * If \c freedst is non-zero, the stream will be closed after being written. + * + * \return 0 if successful or -1 if there was an error. + */ +extern DECLSPEC int SDLCALL SDL_SaveBMP_RW + (SDL_Surface * surface, SDL_RWops * dst, int freedst); + +/** + * Save a surface to a file. + * + * Convenience macro. + */ +#define SDL_SaveBMP(surface, file) \ + SDL_SaveBMP_RW(surface, SDL_RWFromFile(file, "wb"), 1) + +/** + * \brief Sets the RLE acceleration hint for a surface. + * + * \return 0 on success, or -1 if the surface is not valid + * + * \note If RLE is enabled, colorkey and alpha blending blits are much faster, + * but the surface must be locked before directly accessing the pixels. + */ +extern DECLSPEC int SDLCALL SDL_SetSurfaceRLE(SDL_Surface * surface, + int flag); + +/** + * \brief Sets the color key (transparent pixel) in a blittable surface. + * + * \param surface The surface to update + * \param flag Non-zero to enable colorkey and 0 to disable colorkey + * \param key The transparent pixel in the native surface format + * + * \return 0 on success, or -1 if the surface is not valid + * + * You can pass SDL_RLEACCEL to enable RLE accelerated blits. + */ +extern DECLSPEC int SDLCALL SDL_SetColorKey(SDL_Surface * surface, + int flag, Uint32 key); + +/** + * \brief Gets the color key (transparent pixel) in a blittable surface. + * + * \param surface The surface to update + * \param key A pointer filled in with the transparent pixel in the native + * surface format + * + * \return 0 on success, or -1 if the surface is not valid or colorkey is not + * enabled. + */ +extern DECLSPEC int SDLCALL SDL_GetColorKey(SDL_Surface * surface, + Uint32 * key); + +/** + * \brief Set an additional color value used in blit operations. + * + * \param surface The surface to update. + * \param r The red color value multiplied into blit operations. + * \param g The green color value multiplied into blit operations. + * \param b The blue color value multiplied into blit operations. + * + * \return 0 on success, or -1 if the surface is not valid. + * + * \sa SDL_GetSurfaceColorMod() + */ +extern DECLSPEC int SDLCALL SDL_SetSurfaceColorMod(SDL_Surface * surface, + Uint8 r, Uint8 g, Uint8 b); + + +/** + * \brief Get the additional color value used in blit operations. + * + * \param surface The surface to query. + * \param r A pointer filled in with the current red color value. + * \param g A pointer filled in with the current green color value. + * \param b A pointer filled in with the current blue color value. + * + * \return 0 on success, or -1 if the surface is not valid. + * + * \sa SDL_SetSurfaceColorMod() + */ +extern DECLSPEC int SDLCALL SDL_GetSurfaceColorMod(SDL_Surface * surface, + Uint8 * r, Uint8 * g, + Uint8 * b); + +/** + * \brief Set an additional alpha value used in blit operations. + * + * \param surface The surface to update. + * \param alpha The alpha value multiplied into blit operations. + * + * \return 0 on success, or -1 if the surface is not valid. + * + * \sa SDL_GetSurfaceAlphaMod() + */ +extern DECLSPEC int SDLCALL SDL_SetSurfaceAlphaMod(SDL_Surface * surface, + Uint8 alpha); + +/** + * \brief Get the additional alpha value used in blit operations. + * + * \param surface The surface to query. + * \param alpha A pointer filled in with the current alpha value. + * + * \return 0 on success, or -1 if the surface is not valid. + * + * \sa SDL_SetSurfaceAlphaMod() + */ +extern DECLSPEC int SDLCALL SDL_GetSurfaceAlphaMod(SDL_Surface * surface, + Uint8 * alpha); + +/** + * \brief Set the blend mode used for blit operations. + * + * \param surface The surface to update. + * \param blendMode ::SDL_BlendMode to use for blit blending. + * + * \return 0 on success, or -1 if the parameters are not valid. + * + * \sa SDL_GetSurfaceBlendMode() + */ +extern DECLSPEC int SDLCALL SDL_SetSurfaceBlendMode(SDL_Surface * surface, + SDL_BlendMode blendMode); + +/** + * \brief Get the blend mode used for blit operations. + * + * \param surface The surface to query. + * \param blendMode A pointer filled in with the current blend mode. + * + * \return 0 on success, or -1 if the surface is not valid. + * + * \sa SDL_SetSurfaceBlendMode() + */ +extern DECLSPEC int SDLCALL SDL_GetSurfaceBlendMode(SDL_Surface * surface, + SDL_BlendMode *blendMode); + +/** + * Sets the clipping rectangle for the destination surface in a blit. + * + * If the clip rectangle is NULL, clipping will be disabled. + * + * If the clip rectangle doesn't intersect the surface, the function will + * return SDL_FALSE and blits will be completely clipped. Otherwise the + * function returns SDL_TRUE and blits to the surface will be clipped to + * the intersection of the surface area and the clipping rectangle. + * + * Note that blits are automatically clipped to the edges of the source + * and destination surfaces. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_SetClipRect(SDL_Surface * surface, + const SDL_Rect * rect); + +/** + * Gets the clipping rectangle for the destination surface in a blit. + * + * \c rect must be a pointer to a valid rectangle which will be filled + * with the correct values. + */ +extern DECLSPEC void SDLCALL SDL_GetClipRect(SDL_Surface * surface, + SDL_Rect * rect); + +/** + * Creates a new surface of the specified format, and then copies and maps + * the given surface to it so the blit of the converted surface will be as + * fast as possible. If this function fails, it returns NULL. + * + * The \c flags parameter is passed to SDL_CreateRGBSurface() and has those + * semantics. You can also pass ::SDL_RLEACCEL in the flags parameter and + * SDL will try to RLE accelerate colorkey and alpha blits in the resulting + * surface. + */ +extern DECLSPEC SDL_Surface *SDLCALL SDL_ConvertSurface + (SDL_Surface * src, const SDL_PixelFormat * fmt, Uint32 flags); +extern DECLSPEC SDL_Surface *SDLCALL SDL_ConvertSurfaceFormat + (SDL_Surface * src, Uint32 pixel_format, Uint32 flags); + +/** + * \brief Copy a block of pixels of one format to another format + * + * \return 0 on success, or -1 if there was an error + */ +extern DECLSPEC int SDLCALL SDL_ConvertPixels(int width, int height, + Uint32 src_format, + const void * src, int src_pitch, + Uint32 dst_format, + void * dst, int dst_pitch); + +/** + * Performs a fast fill of the given rectangle with \c color. + * + * If \c rect is NULL, the whole surface will be filled with \c color. + * + * The color should be a pixel of the format used by the surface, and + * can be generated by the SDL_MapRGB() function. + * + * \return 0 on success, or -1 on error. + */ +extern DECLSPEC int SDLCALL SDL_FillRect + (SDL_Surface * dst, const SDL_Rect * rect, Uint32 color); +extern DECLSPEC int SDLCALL SDL_FillRects + (SDL_Surface * dst, const SDL_Rect * rects, int count, Uint32 color); + +/** + * Performs a fast blit from the source surface to the destination surface. + * + * This assumes that the source and destination rectangles are + * the same size. If either \c srcrect or \c dstrect are NULL, the entire + * surface (\c src or \c dst) is copied. The final blit rectangles are saved + * in \c srcrect and \c dstrect after all clipping is performed. + * + * \return If the blit is successful, it returns 0, otherwise it returns -1. + * + * The blit function should not be called on a locked surface. + * + * The blit semantics for surfaces with and without blending and colorkey + * are defined as follows: + * \verbatim + RGBA->RGB: + Source surface blend mode set to SDL_BLENDMODE_BLEND: + alpha-blend (using the source alpha-channel and per-surface alpha) + SDL_SRCCOLORKEY ignored. + Source surface blend mode set to SDL_BLENDMODE_NONE: + copy RGB. + if SDL_SRCCOLORKEY set, only copy the pixels matching the + RGB values of the source color key, ignoring alpha in the + comparison. + + RGB->RGBA: + Source surface blend mode set to SDL_BLENDMODE_BLEND: + alpha-blend (using the source per-surface alpha) + Source surface blend mode set to SDL_BLENDMODE_NONE: + copy RGB, set destination alpha to source per-surface alpha value. + both: + if SDL_SRCCOLORKEY set, only copy the pixels matching the + source color key. + + RGBA->RGBA: + Source surface blend mode set to SDL_BLENDMODE_BLEND: + alpha-blend (using the source alpha-channel and per-surface alpha) + SDL_SRCCOLORKEY ignored. + Source surface blend mode set to SDL_BLENDMODE_NONE: + copy all of RGBA to the destination. + if SDL_SRCCOLORKEY set, only copy the pixels matching the + RGB values of the source color key, ignoring alpha in the + comparison. + + RGB->RGB: + Source surface blend mode set to SDL_BLENDMODE_BLEND: + alpha-blend (using the source per-surface alpha) + Source surface blend mode set to SDL_BLENDMODE_NONE: + copy RGB. + both: + if SDL_SRCCOLORKEY set, only copy the pixels matching the + source color key. + \endverbatim + * + * You should call SDL_BlitSurface() unless you know exactly how SDL + * blitting works internally and how to use the other blit functions. + */ +#define SDL_BlitSurface SDL_UpperBlit + +/** + * This is the public blit function, SDL_BlitSurface(), and it performs + * rectangle validation and clipping before passing it to SDL_LowerBlit() + */ +extern DECLSPEC int SDLCALL SDL_UpperBlit + (SDL_Surface * src, const SDL_Rect * srcrect, + SDL_Surface * dst, SDL_Rect * dstrect); + +/** + * This is a semi-private blit function and it performs low-level surface + * blitting only. + */ +extern DECLSPEC int SDLCALL SDL_LowerBlit + (SDL_Surface * src, SDL_Rect * srcrect, + SDL_Surface * dst, SDL_Rect * dstrect); + +/** + * \brief Perform a fast, low quality, stretch blit between two surfaces of the + * same pixel format. + * + * \note This function uses a static buffer, and is not thread-safe. + */ +extern DECLSPEC int SDLCALL SDL_SoftStretch(SDL_Surface * src, + const SDL_Rect * srcrect, + SDL_Surface * dst, + const SDL_Rect * dstrect); + +#define SDL_BlitScaled SDL_UpperBlitScaled + +/** + * This is the public scaled blit function, SDL_BlitScaled(), and it performs + * rectangle validation and clipping before passing it to SDL_LowerBlitScaled() + */ +extern DECLSPEC int SDLCALL SDL_UpperBlitScaled + (SDL_Surface * src, const SDL_Rect * srcrect, + SDL_Surface * dst, SDL_Rect * dstrect); + +/** + * This is a semi-private blit function and it performs low-level surface + * scaled blitting only. + */ +extern DECLSPEC int SDLCALL SDL_LowerBlitScaled + (SDL_Surface * src, SDL_Rect * srcrect, + SDL_Surface * dst, SDL_Rect * dstrect); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_surface_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_system.h b/Template/Game/Source/External/SDL/include/SDL_system.h new file mode 100644 index 0000000..5da9adb --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_system.h @@ -0,0 +1,216 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_system.h + * + * Include file for platform specific SDL API functions + */ + +#ifndef _SDL_system_h +#define _SDL_system_h + +#include "SDL_stdinc.h" +#include "SDL_keyboard.h" +#include "SDL_render.h" +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + + +/* Platform specific functions for Windows */ +#ifdef __WIN32__ + +/** + \brief Set a function that is called for every windows message, before TranslateMessage() +*/ +typedef void (SDLCALL * SDL_WindowsMessageHook)(void *userdata, void *hWnd, unsigned int message, Uint64 wParam, Sint64 lParam); +extern DECLSPEC void SDLCALL SDL_SetWindowsMessageHook(SDL_WindowsMessageHook callback, void *userdata); + +/** + \brief Returns the D3D9 adapter index that matches the specified display index. + + This adapter index can be passed to IDirect3D9::CreateDevice and controls + on which monitor a full screen application will appear. +*/ +extern DECLSPEC int SDLCALL SDL_Direct3D9GetAdapterIndex( int displayIndex ); + +typedef struct IDirect3DDevice9 IDirect3DDevice9; +/** + \brief Returns the D3D device associated with a renderer, or NULL if it's not a D3D renderer. + + Once you are done using the device, you should release it to avoid a resource leak. + */ +extern DECLSPEC IDirect3DDevice9* SDLCALL SDL_RenderGetD3D9Device(SDL_Renderer * renderer); + +/** + \brief Returns the DXGI Adapter and Output indices for the specified display index. + + These can be passed to EnumAdapters and EnumOutputs respectively to get the objects + required to create a DX10 or DX11 device and swap chain. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_DXGIGetOutputInfo( int displayIndex, int *adapterIndex, int *outputIndex ); + +#endif /* __WIN32__ */ + + +/* Platform specific functions for iOS */ +#if defined(__IPHONEOS__) && __IPHONEOS__ + +#define SDL_iOSSetAnimationCallback(window, interval, callback, callbackParam) SDL_iPhoneSetAnimationCallback(window, interval, callback, callbackParam) +extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (*callback)(void*), void *callbackParam); + +#define SDL_iOSSetEventPump(enabled) SDL_iPhoneSetEventPump(enabled) +extern DECLSPEC void SDLCALL SDL_iPhoneSetEventPump(SDL_bool enabled); + +#endif /* __IPHONEOS__ */ + + +/* Platform specific functions for Android */ +#if defined(__ANDROID__) && __ANDROID__ + +/** + \brief Get the JNI environment for the current thread + + This returns JNIEnv*, but the prototype is void* so we don't need jni.h + */ +extern DECLSPEC void * SDLCALL SDL_AndroidGetJNIEnv(); + +/** + \brief Get the SDL Activity object for the application + + This returns jobject, but the prototype is void* so we don't need jni.h + The jobject returned by SDL_AndroidGetActivity is a local reference. + It is the caller's responsibility to properly release it + (using env->Push/PopLocalFrame or manually with env->DeleteLocalRef) + */ +extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity(); + +/** + See the official Android developer guide for more information: + http://developer.android.com/guide/topics/data/data-storage.html +*/ +#define SDL_ANDROID_EXTERNAL_STORAGE_READ 0x01 +#define SDL_ANDROID_EXTERNAL_STORAGE_WRITE 0x02 + +/** + \brief Get the path used for internal storage for this application. + + This path is unique to your application and cannot be written to + by other applications. + */ +extern DECLSPEC const char * SDLCALL SDL_AndroidGetInternalStoragePath(); + +/** + \brief Get the current state of external storage, a bitmask of these values: + SDL_ANDROID_EXTERNAL_STORAGE_READ + SDL_ANDROID_EXTERNAL_STORAGE_WRITE + + If external storage is currently unavailable, this will return 0. +*/ +extern DECLSPEC int SDLCALL SDL_AndroidGetExternalStorageState(); + +/** + \brief Get the path used for external storage for this application. + + This path is unique to your application, but is public and can be + written to by other applications. + */ +extern DECLSPEC const char * SDLCALL SDL_AndroidGetExternalStoragePath(); + +#endif /* __ANDROID__ */ + +/* Platform specific functions for WinRT */ +#if defined(__WINRT__) && __WINRT__ + +/** + * \brief WinRT / Windows Phone path types + */ +typedef enum +{ + /** \brief The installed app's root directory. + Files here are likely to be read-only. */ + SDL_WINRT_PATH_INSTALLED_LOCATION, + + /** \brief The app's local data store. Files may be written here */ + SDL_WINRT_PATH_LOCAL_FOLDER, + + /** \brief The app's roaming data store. Unsupported on Windows Phone. + Files written here may be copied to other machines via a network + connection. + */ + SDL_WINRT_PATH_ROAMING_FOLDER, + + /** \brief The app's temporary data store. Unsupported on Windows Phone. + Files written here may be deleted at any time. */ + SDL_WINRT_PATH_TEMP_FOLDER +} SDL_WinRT_Path; + + +/** + * \brief Retrieves a WinRT defined path on the local file system + * + * \note Documentation on most app-specific path types on WinRT + * can be found on MSDN, at the URL: + * http://msdn.microsoft.com/en-us/library/windows/apps/hh464917.aspx + * + * \param pathType The type of path to retrieve. + * \return A UCS-2 string (16-bit, wide-char) containing the path, or NULL + * if the path is not available for any reason. Not all paths are + * available on all versions of Windows. This is especially true on + * Windows Phone. Check the documentation for the given + * SDL_WinRT_Path for more information on which path types are + * supported where. + */ +extern DECLSPEC const wchar_t * SDLCALL SDL_WinRTGetFSPathUNICODE(SDL_WinRT_Path pathType); + +/** + * \brief Retrieves a WinRT defined path on the local file system + * + * \note Documentation on most app-specific path types on WinRT + * can be found on MSDN, at the URL: + * http://msdn.microsoft.com/en-us/library/windows/apps/hh464917.aspx + * + * \param pathType The type of path to retrieve. + * \return A UTF-8 string (8-bit, multi-byte) containing the path, or NULL + * if the path is not available for any reason. Not all paths are + * available on all versions of Windows. This is especially true on + * Windows Phone. Check the documentation for the given + * SDL_WinRT_Path for more information on which path types are + * supported where. + */ +extern DECLSPEC const char * SDLCALL SDL_WinRTGetFSPathUTF8(SDL_WinRT_Path pathType); + +#endif /* __WINRT__ */ + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_system_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_syswm.h b/Template/Game/Source/External/SDL/include/SDL_syswm.h new file mode 100644 index 0000000..1056e52 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_syswm.h @@ -0,0 +1,301 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_syswm.h + * + * Include file for SDL custom system window manager hooks. + */ + +#ifndef _SDL_syswm_h +#define _SDL_syswm_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_video.h" +#include "SDL_version.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \file SDL_syswm.h + * + * Your application has access to a special type of event ::SDL_SYSWMEVENT, + * which contains window-manager specific information and arrives whenever + * an unhandled window event occurs. This event is ignored by default, but + * you can enable it with SDL_EventState(). + */ +#ifdef SDL_PROTOTYPES_ONLY +struct SDL_SysWMinfo; +#else + +#if defined(SDL_VIDEO_DRIVER_WINDOWS) +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#endif + +#if defined(SDL_VIDEO_DRIVER_WINRT) +#include +#endif + +/* This is the structure for custom window manager events */ +#if defined(SDL_VIDEO_DRIVER_X11) +#if defined(__APPLE__) && defined(__MACH__) +/* conflicts with Quickdraw.h */ +#define Cursor X11Cursor +#endif + +#include +#include + +#if defined(__APPLE__) && defined(__MACH__) +/* matches the re-define above */ +#undef Cursor +#endif + +#endif /* defined(SDL_VIDEO_DRIVER_X11) */ + +#if defined(SDL_VIDEO_DRIVER_DIRECTFB) +#include +#endif + +#if defined(SDL_VIDEO_DRIVER_COCOA) +#ifdef __OBJC__ +@class NSWindow; +#else +typedef struct _NSWindow NSWindow; +#endif +#endif + +#if defined(SDL_VIDEO_DRIVER_UIKIT) +#ifdef __OBJC__ +#include +#else +typedef struct _UIWindow UIWindow; +typedef struct _UIViewController UIViewController; +#endif +typedef Uint32 GLuint; +#endif + +#if defined(SDL_VIDEO_DRIVER_ANDROID) +typedef struct ANativeWindow ANativeWindow; +typedef void *EGLSurface; +#endif + +/** + * These are the various supported windowing subsystems + */ +typedef enum +{ + SDL_SYSWM_UNKNOWN, + SDL_SYSWM_WINDOWS, + SDL_SYSWM_X11, + SDL_SYSWM_DIRECTFB, + SDL_SYSWM_COCOA, + SDL_SYSWM_UIKIT, + SDL_SYSWM_WAYLAND, + SDL_SYSWM_MIR, + SDL_SYSWM_WINRT, + SDL_SYSWM_ANDROID +} SDL_SYSWM_TYPE; + +/** + * The custom event structure. + */ +struct SDL_SysWMmsg +{ + SDL_version version; + SDL_SYSWM_TYPE subsystem; + union + { +#if defined(SDL_VIDEO_DRIVER_WINDOWS) + struct { + HWND hwnd; /**< The window for the message */ + UINT msg; /**< The type of message */ + WPARAM wParam; /**< WORD message parameter */ + LPARAM lParam; /**< LONG message parameter */ + } win; +#endif +#if defined(SDL_VIDEO_DRIVER_X11) + struct { + XEvent event; + } x11; +#endif +#if defined(SDL_VIDEO_DRIVER_DIRECTFB) + struct { + DFBEvent event; + } dfb; +#endif +#if defined(SDL_VIDEO_DRIVER_COCOA) + struct + { + /* Latest version of Xcode clang complains about empty structs in C v. C++: + error: empty struct has size 0 in C, size 1 in C++ + */ + int dummy; + /* No Cocoa window events yet */ + } cocoa; +#endif +#if defined(SDL_VIDEO_DRIVER_UIKIT) + struct + { + int dummy; + /* No UIKit window events yet */ + } uikit; +#endif + /* Can't have an empty union */ + int dummy; + } msg; +}; + +/** + * The custom window manager information structure. + * + * When this structure is returned, it holds information about which + * low level system it is using, and will be one of SDL_SYSWM_TYPE. + */ +struct SDL_SysWMinfo +{ + SDL_version version; + SDL_SYSWM_TYPE subsystem; + union + { +#if defined(SDL_VIDEO_DRIVER_WINDOWS) + struct + { + HWND window; /**< The window handle */ + HDC hdc; /**< The window device context */ + } win; +#endif +#if defined(SDL_VIDEO_DRIVER_WINRT) + struct + { + IInspectable * window; /**< The WinRT CoreWindow */ + } winrt; +#endif +#if defined(SDL_VIDEO_DRIVER_X11) + struct + { + Display *display; /**< The X11 display */ + Window window; /**< The X11 window */ + } x11; +#endif +#if defined(SDL_VIDEO_DRIVER_DIRECTFB) + struct + { + IDirectFB *dfb; /**< The directfb main interface */ + IDirectFBWindow *window; /**< The directfb window handle */ + IDirectFBSurface *surface; /**< The directfb client surface */ + } dfb; +#endif +#if defined(SDL_VIDEO_DRIVER_COCOA) + struct + { +#if defined(__OBJC__) && defined(__has_feature) && __has_feature(objc_arc) + NSWindow __unsafe_unretained *window; /* The Cocoa window */ +#else + NSWindow *window; /* The Cocoa window */ +#endif + } cocoa; +#endif +#if defined(SDL_VIDEO_DRIVER_UIKIT) + struct + { +#if defined(__OBJC__) && defined(__has_feature) && __has_feature(objc_arc) + UIWindow __unsafe_unretained *window; /* The UIKit window */ +#else + UIWindow *window; /* The UIKit window */ +#endif + GLuint framebuffer; /* The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. */ + GLuint colorbuffer; /* The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. */ + GLuint resolveFramebuffer; /* The Framebuffer Object which holds the resolve color Renderbuffer, when MSAA is used. */ + } uikit; +#endif +#if defined(SDL_VIDEO_DRIVER_WAYLAND) + struct + { + struct wl_display *display; /**< Wayland display */ + struct wl_surface *surface; /**< Wayland surface */ + struct wl_shell_surface *shell_surface; /**< Wayland shell_surface (window manager handle) */ + } wl; +#endif +#if defined(SDL_VIDEO_DRIVER_MIR) + struct + { + struct MirConnection *connection; /**< Mir display server connection */ + struct MirSurface *surface; /**< Mir surface */ + } mir; +#endif + +#if defined(SDL_VIDEO_DRIVER_ANDROID) + struct + { + ANativeWindow *window; + EGLSurface surface; + } android; +#endif + + /* Can't have an empty union */ + int dummy; + } info; +}; + +#endif /* SDL_PROTOTYPES_ONLY */ + +typedef struct SDL_SysWMinfo SDL_SysWMinfo; + +/* Function prototypes */ +/** + * \brief This function allows access to driver-dependent window information. + * + * \param window The window about which information is being requested + * \param info This structure must be initialized with the SDL version, and is + * then filled in with information about the given window. + * + * \return SDL_TRUE if the function is implemented and the version member of + * the \c info struct is valid, SDL_FALSE otherwise. + * + * You typically use this function like this: + * \code + * SDL_SysWMinfo info; + * SDL_VERSION(&info.version); + * if ( SDL_GetWindowWMInfo(window, &info) ) { ... } + * \endcode + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_Window * window, + SDL_SysWMinfo * info); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_syswm_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_test.h b/Template/Game/Source/External/SDL/include/SDL_test.h new file mode 100644 index 0000000..217847b --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_test.h @@ -0,0 +1,68 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_test.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +#ifndef _SDL_test_h +#define _SDL_test_h + +#include "SDL.h" +#include "SDL_test_common.h" +#include "SDL_test_font.h" +#include "SDL_test_random.h" +#include "SDL_test_fuzzer.h" +#include "SDL_test_crc32.h" +#include "SDL_test_md5.h" +#include "SDL_test_log.h" +#include "SDL_test_assert.h" +#include "SDL_test_harness.h" +#include "SDL_test_images.h" +#include "SDL_test_compare.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Global definitions */ + +/* + * Note: Maximum size of SDLTest log message is less than SDL's limit + * to ensure we can fit additional information such as the timestamp. + */ +#define SDLTEST_MAX_LOGMESSAGE_LENGTH 3584 + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_test_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_test_assert.h b/Template/Game/Source/External/SDL/include/SDL_test_assert.h new file mode 100644 index 0000000..29277e1 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_test_assert.h @@ -0,0 +1,105 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_test_assert.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + * + * Assert API for test code and test cases + * + */ + +#ifndef _SDL_test_assert_h +#define _SDL_test_assert_h + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief Fails the assert. + */ +#define ASSERT_FAIL 0 + +/** + * \brief Passes the assert. + */ +#define ASSERT_PASS 1 + +/** + * \brief Assert that logs and break execution flow on failures. + * + * \param assertCondition Evaluated condition or variable to assert; fail (==0) or pass (!=0). + * \param assertDescription Message to log with the assert describing it. + */ +void SDLTest_Assert(int assertCondition, SDL_PRINTF_FORMAT_STRING const char *assertDescription, ...) SDL_PRINTF_VARARG_FUNC(2); + +/** + * \brief Assert for test cases that logs but does not break execution flow on failures. Updates assertion counters. + * + * \param assertCondition Evaluated condition or variable to assert; fail (==0) or pass (!=0). + * \param assertDescription Message to log with the assert describing it. + * + * \returns Returns the assertCondition so it can be used to externally to break execution flow if desired. + */ +int SDLTest_AssertCheck(int assertCondition, SDL_PRINTF_FORMAT_STRING const char *assertDescription, ...) SDL_PRINTF_VARARG_FUNC(2); + +/** + * \brief Explicitly pass without checking an assertion condition. Updates assertion counter. + * + * \param assertDescription Message to log with the assert describing it. + */ +void SDLTest_AssertPass(SDL_PRINTF_FORMAT_STRING const char *assertDescription, ...) SDL_PRINTF_VARARG_FUNC(1); + +/** + * \brief Resets the assert summary counters to zero. + */ +void SDLTest_ResetAssertSummary(); + +/** + * \brief Logs summary of all assertions (total, pass, fail) since last reset as INFO or ERROR. + */ +void SDLTest_LogAssertSummary(); + + +/** + * \brief Converts the current assert summary state to a test result. + * + * \returns TEST_RESULT_PASSED, TEST_RESULT_FAILED, or TEST_RESULT_NO_ASSERT + */ +int SDLTest_AssertSummaryToTestResult(); + +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_test_assert_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_test_common.h b/Template/Game/Source/External/SDL/include/SDL_test_common.h new file mode 100644 index 0000000..0ebf31c --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_test_common.h @@ -0,0 +1,188 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_test_common.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* Ported from original test\common.h file. */ + +#ifndef _SDL_test_common_h +#define _SDL_test_common_h + +#include "SDL.h" + +#if defined(__PSP__) +#define DEFAULT_WINDOW_WIDTH 480 +#define DEFAULT_WINDOW_HEIGHT 272 +#else +#define DEFAULT_WINDOW_WIDTH 640 +#define DEFAULT_WINDOW_HEIGHT 480 +#endif + +#define VERBOSE_VIDEO 0x00000001 +#define VERBOSE_MODES 0x00000002 +#define VERBOSE_RENDER 0x00000004 +#define VERBOSE_EVENT 0x00000008 +#define VERBOSE_AUDIO 0x00000010 + +typedef struct +{ + /* SDL init flags */ + char **argv; + Uint32 flags; + Uint32 verbose; + + /* Video info */ + const char *videodriver; + int display; + const char *window_title; + const char *window_icon; + Uint32 window_flags; + int window_x; + int window_y; + int window_w; + int window_h; + int window_minW; + int window_minH; + int window_maxW; + int window_maxH; + int logical_w; + int logical_h; + float scale; + int depth; + int refresh_rate; + int num_windows; + SDL_Window **windows; + + /* Renderer info */ + const char *renderdriver; + Uint32 render_flags; + SDL_bool skip_renderer; + SDL_Renderer **renderers; + SDL_Texture **targets; + + /* Audio info */ + const char *audiodriver; + SDL_AudioSpec audiospec; + + /* GL settings */ + int gl_red_size; + int gl_green_size; + int gl_blue_size; + int gl_alpha_size; + int gl_buffer_size; + int gl_depth_size; + int gl_stencil_size; + int gl_double_buffer; + int gl_accum_red_size; + int gl_accum_green_size; + int gl_accum_blue_size; + int gl_accum_alpha_size; + int gl_stereo; + int gl_multisamplebuffers; + int gl_multisamplesamples; + int gl_retained_backing; + int gl_accelerated; + int gl_major_version; + int gl_minor_version; + int gl_debug; + int gl_profile_mask; +} SDLTest_CommonState; + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Function prototypes */ + +/** + * \brief Parse command line parameters and create common state. + * + * \param argv Array of command line parameters + * \param flags Flags indicating which subsystem to initialize (i.e. SDL_INIT_VIDEO | SDL_INIT_AUDIO) + * + * \returns Returns a newly allocated common state object. + */ +SDLTest_CommonState *SDLTest_CommonCreateState(char **argv, Uint32 flags); + +/** + * \brief Process one common argument. + * + * \param state The common state describing the test window to create. + * \param index The index of the argument to process in argv[]. + * + * \returns The number of arguments processed (i.e. 1 for --fullscreen, 2 for --video [videodriver], or -1 on error. + */ +int SDLTest_CommonArg(SDLTest_CommonState * state, int index); + +/** + * \brief Returns common usage information + * + * \param state The common state describing the test window to create. + * + * \returns String with usage information + */ +const char *SDLTest_CommonUsage(SDLTest_CommonState * state); + +/** + * \brief Open test window. + * + * \param state The common state describing the test window to create. + * + * \returns True if initialization succeeded, false otherwise + */ +SDL_bool SDLTest_CommonInit(SDLTest_CommonState * state); + +/** + * \brief Common event handler for test windows. + * + * \param state The common state used to create test window. + * \param event The event to handle. + * \param done Flag indicating we are done. + * + */ +void SDLTest_CommonEvent(SDLTest_CommonState * state, SDL_Event * event, int *done); + +/** + * \brief Close test window. + * + * \param state The common state used to create test window. + * + */ +void SDLTest_CommonQuit(SDLTest_CommonState * state); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_test_common_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_test_compare.h b/Template/Game/Source/External/SDL/include/SDL_test_compare.h new file mode 100644 index 0000000..772cf9f --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_test_compare.h @@ -0,0 +1,69 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_test_compare.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + + Defines comparison functions (i.e. for surfaces). + +*/ + +#ifndef _SDL_test_compare_h +#define _SDL_test_compare_h + +#include "SDL.h" + +#include "SDL_test_images.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief Compares a surface and with reference image data for equality + * + * \param surface Surface used in comparison + * \param referenceSurface Test Surface used in comparison + * \param allowable_error Allowable difference (=sum of squared difference for each RGB component) in blending accuracy. + * + * \returns 0 if comparison succeeded, >0 (=number of pixels for which the comparison failed) if comparison failed, -1 if any of the surfaces were NULL, -2 if the surface sizes differ. + */ +int SDLTest_CompareSurfaces(SDL_Surface *surface, SDL_Surface *referenceSurface, int allowable_error); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_test_compare_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_test_crc32.h b/Template/Game/Source/External/SDL/include/SDL_test_crc32.h new file mode 100644 index 0000000..572a3d9 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_test_crc32.h @@ -0,0 +1,124 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_test_crc32.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + + Implements CRC32 calculations (default output is Perl String::CRC32 compatible). + +*/ + +#ifndef _SDL_test_crc32_h +#define _SDL_test_crc32_h + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + + +/* ------------ Definitions --------- */ + +/* Definition shared by all CRC routines */ + +#ifndef CrcUint32 + #define CrcUint32 unsigned int +#endif +#ifndef CrcUint8 + #define CrcUint8 unsigned char +#endif + +#ifdef ORIGINAL_METHOD + #define CRC32_POLY 0x04c11db7 /* AUTODIN II, Ethernet, & FDDI */ +#else + #define CRC32_POLY 0xEDB88320 /* Perl String::CRC32 compatible */ +#endif + +/** + * Data structure for CRC32 (checksum) computation + */ + typedef struct { + CrcUint32 crc32_table[256]; /* CRC table */ + } SDLTest_Crc32Context; + +/* ---------- Function Prototypes ------------- */ + +/** + * \brief Initialize the CRC context + * + * Note: The function initializes the crc table required for all crc calculations. + * + * \param crcContext pointer to context variable + * + * \returns 0 for OK, -1 on error + * + */ + int SDLTest_Crc32Init(SDLTest_Crc32Context * crcContext); + + +/** + * \brief calculate a crc32 from a data block + * + * \param crcContext pointer to context variable + * \param inBuf input buffer to checksum + * \param inLen length of input buffer + * \param crc32 pointer to Uint32 to store the final CRC into + * + * \returns 0 for OK, -1 on error + * + */ +int SDLTest_crc32Calc(SDLTest_Crc32Context * crcContext, CrcUint8 *inBuf, CrcUint32 inLen, CrcUint32 *crc32); + +/* Same routine broken down into three steps */ +int SDLTest_Crc32CalcStart(SDLTest_Crc32Context * crcContext, CrcUint32 *crc32); +int SDLTest_Crc32CalcEnd(SDLTest_Crc32Context * crcContext, CrcUint32 *crc32); +int SDLTest_Crc32CalcBuffer(SDLTest_Crc32Context * crcContext, CrcUint8 *inBuf, CrcUint32 inLen, CrcUint32 *crc32); + + +/** + * \brief clean up CRC context + * + * \param crcContext pointer to context variable + * + * \returns 0 for OK, -1 on error + * +*/ + +int SDLTest_Crc32Done(SDLTest_Crc32Context * crcContext); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_test_crc32_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_test_font.h b/Template/Game/Source/External/SDL/include/SDL_test_font.h new file mode 100644 index 0000000..3378ea8 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_test_font.h @@ -0,0 +1,76 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_test_font.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +#ifndef _SDL_test_font_h +#define _SDL_test_font_h + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Function prototypes */ + +#define FONT_CHARACTER_SIZE 8 + +/** + * \brief Draw a string in the currently set font. + * + * \param renderer The renderer to draw on. + * \param x The X coordinate of the upper left corner of the character. + * \param y The Y coordinate of the upper left corner of the character. + * \param c The character to draw. + * + * \returns Returns 0 on success, -1 on failure. + */ +int SDLTest_DrawCharacter( SDL_Renderer *renderer, int x, int y, char c ); + +/** + * \brief Draw a string in the currently set font. + * + * \param renderer The renderer to draw on. + * \param x The X coordinate of the upper left corner of the string. + * \param y The Y coordinate of the upper left corner of the string. + * \param s The string to draw. + * + * \returns Returns 0 on success, -1 on failure. + */ +int SDLTest_DrawString( SDL_Renderer * renderer, int x, int y, const char *s ); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_test_font_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_test_fuzzer.h b/Template/Game/Source/External/SDL/include/SDL_test_fuzzer.h new file mode 100644 index 0000000..9603652 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_test_fuzzer.h @@ -0,0 +1,384 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_test_fuzzer.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + + Data generators for fuzzing test data in a reproducible way. + +*/ + +#ifndef _SDL_test_fuzzer_h +#define _SDL_test_fuzzer_h + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + + +/* + Based on GSOC code by Markus Kauppila +*/ + + +/** + * \file + * Note: The fuzzer implementation uses a static instance of random context + * internally which makes it thread-UNsafe. + */ + +/** + * Initializes the fuzzer for a test + * + * \param execKey Execution "Key" that initializes the random number generator uniquely for the test. + * + */ +void SDLTest_FuzzerInit(Uint64 execKey); + + +/** + * Returns a random Uint8 + * + * \returns Generated integer + */ +Uint8 SDLTest_RandomUint8(); + +/** + * Returns a random Sint8 + * + * \returns Generated signed integer + */ +Sint8 SDLTest_RandomSint8(); + + +/** + * Returns a random Uint16 + * + * \returns Generated integer + */ +Uint16 SDLTest_RandomUint16(); + +/** + * Returns a random Sint16 + * + * \returns Generated signed integer + */ +Sint16 SDLTest_RandomSint16(); + + +/** + * Returns a random integer + * + * \returns Generated integer + */ +Sint32 SDLTest_RandomSint32(); + + +/** + * Returns a random positive integer + * + * \returns Generated integer + */ +Uint32 SDLTest_RandomUint32(); + +/** + * Returns random Uint64. + * + * \returns Generated integer + */ +Uint64 SDLTest_RandomUint64(); + + +/** + * Returns random Sint64. + * + * \returns Generated signed integer + */ +Sint64 SDLTest_RandomSint64(); + +/** + * \returns random float in range [0.0 - 1.0[ + */ +float SDLTest_RandomUnitFloat(); + +/** + * \returns random double in range [0.0 - 1.0[ + */ +double SDLTest_RandomUnitDouble(); + +/** + * \returns random float. + * + */ +float SDLTest_RandomFloat(); + +/** + * \returns random double. + * + */ +double SDLTest_RandomDouble(); + +/** + * Returns a random boundary value for Uint8 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomUint8BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 + * RandomUint8BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21 + * RandomUint8BoundaryValue(0, 99, SDL_FALSE) returns 100 + * RandomUint8BoundaryValue(0, 255, SDL_FALSE) returns 0 (error set) + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns Random boundary value for the given range and domain or 0 with error set + */ +Uint8 SDLTest_RandomUint8BoundaryValue(Uint8 boundary1, Uint8 boundary2, SDL_bool validDomain); + +/** + * Returns a random boundary value for Uint16 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomUint16BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 + * RandomUint16BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21 + * RandomUint16BoundaryValue(0, 99, SDL_FALSE) returns 100 + * RandomUint16BoundaryValue(0, 0xFFFF, SDL_FALSE) returns 0 (error set) + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns Random boundary value for the given range and domain or 0 with error set + */ +Uint16 SDLTest_RandomUint16BoundaryValue(Uint16 boundary1, Uint16 boundary2, SDL_bool validDomain); + +/** + * Returns a random boundary value for Uint32 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomUint32BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 + * RandomUint32BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21 + * RandomUint32BoundaryValue(0, 99, SDL_FALSE) returns 100 + * RandomUint32BoundaryValue(0, 0xFFFFFFFF, SDL_FALSE) returns 0 (with error set) + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns Random boundary value for the given range and domain or 0 with error set + */ +Uint32 SDLTest_RandomUint32BoundaryValue(Uint32 boundary1, Uint32 boundary2, SDL_bool validDomain); + +/** + * Returns a random boundary value for Uint64 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomUint64BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 + * RandomUint64BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21 + * RandomUint64BoundaryValue(0, 99, SDL_FALSE) returns 100 + * RandomUint64BoundaryValue(0, 0xFFFFFFFFFFFFFFFF, SDL_FALSE) returns 0 (with error set) + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns Random boundary value for the given range and domain or 0 with error set + */ +Uint64 SDLTest_RandomUint64BoundaryValue(Uint64 boundary1, Uint64 boundary2, SDL_bool validDomain); + +/** + * Returns a random boundary value for Sint8 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomSint8BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20 + * RandomSint8BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9 + * RandomSint8BoundaryValue(SINT8_MIN, 99, SDL_FALSE) returns 100 + * RandomSint8BoundaryValue(SINT8_MIN, SINT8_MAX, SDL_FALSE) returns SINT8_MIN (== error value) with error set + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns Random boundary value for the given range and domain or SINT8_MIN with error set + */ +Sint8 SDLTest_RandomSint8BoundaryValue(Sint8 boundary1, Sint8 boundary2, SDL_bool validDomain); + + +/** + * Returns a random boundary value for Sint16 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomSint16BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20 + * RandomSint16BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9 + * RandomSint16BoundaryValue(SINT16_MIN, 99, SDL_FALSE) returns 100 + * RandomSint16BoundaryValue(SINT16_MIN, SINT16_MAX, SDL_FALSE) returns SINT16_MIN (== error value) with error set + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns Random boundary value for the given range and domain or SINT16_MIN with error set + */ +Sint16 SDLTest_RandomSint16BoundaryValue(Sint16 boundary1, Sint16 boundary2, SDL_bool validDomain); + +/** + * Returns a random boundary value for Sint32 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomSint32BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20 + * RandomSint32BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9 + * RandomSint32BoundaryValue(SINT32_MIN, 99, SDL_FALSE) returns 100 + * RandomSint32BoundaryValue(SINT32_MIN, SINT32_MAX, SDL_FALSE) returns SINT32_MIN (== error value) + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns Random boundary value for the given range and domain or SINT32_MIN with error set + */ +Sint32 SDLTest_RandomSint32BoundaryValue(Sint32 boundary1, Sint32 boundary2, SDL_bool validDomain); + +/** + * Returns a random boundary value for Sint64 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomSint64BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20 + * RandomSint64BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9 + * RandomSint64BoundaryValue(SINT64_MIN, 99, SDL_FALSE) returns 100 + * RandomSint64BoundaryValue(SINT64_MIN, SINT64_MAX, SDL_FALSE) returns SINT64_MIN (== error value) and error set + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns Random boundary value for the given range and domain or SINT64_MIN with error set + */ +Sint64 SDLTest_RandomSint64BoundaryValue(Sint64 boundary1, Sint64 boundary2, SDL_bool validDomain); + + +/** + * Returns integer in range [min, max] (inclusive). + * Min and max values can be negative values. + * If Max in smaller than min, then the values are swapped. + * Min and max are the same value, that value will be returned. + * + * \param min Minimum inclusive value of returned random number + * \param max Maximum inclusive value of returned random number + * + * \returns Generated random integer in range + */ +Sint32 SDLTest_RandomIntegerInRange(Sint32 min, Sint32 max); + + +/** + * Generates random null-terminated string. The minimum length for + * the string is 1 character, maximum length for the string is 255 + * characters and it can contain ASCII characters from 32 to 126. + * + * Note: Returned string needs to be deallocated. + * + * \returns Newly allocated random string; or NULL if length was invalid or string could not be allocated. + */ +char * SDLTest_RandomAsciiString(); + + +/** + * Generates random null-terminated string. The maximum length for + * the string is defined by the maxLength parameter. + * String can contain ASCII characters from 32 to 126. + * + * Note: Returned string needs to be deallocated. + * + * \param maxLength The maximum length of the generated string. + * + * \returns Newly allocated random string; or NULL if maxLength was invalid or string could not be allocated. + */ +char * SDLTest_RandomAsciiStringWithMaximumLength(int maxLength); + + +/** + * Generates random null-terminated string. The length for + * the string is defined by the size parameter. + * String can contain ASCII characters from 32 to 126. + * + * Note: Returned string needs to be deallocated. + * + * \param size The length of the generated string + * + * \returns Newly allocated random string; or NULL if size was invalid or string could not be allocated. + */ +char * SDLTest_RandomAsciiStringOfSize(int size); + +/** + * Returns the invocation count for the fuzzer since last ...FuzzerInit. + */ +int SDLTest_GetFuzzerInvocationCount(); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_test_fuzzer_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_test_harness.h b/Template/Game/Source/External/SDL/include/SDL_test_harness.h new file mode 100644 index 0000000..74c0950 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_test_harness.h @@ -0,0 +1,123 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_test_harness.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + Defines types for test case definitions and the test execution harness API. + + Based on original GSOC code by Markus Kauppila +*/ + +#ifndef _SDL_test_harness_h +#define _SDL_test_harness_h + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + + +/* ! Definitions for test case structures */ +#define TEST_ENABLED 1 +#define TEST_DISABLED 0 + +/* ! Definition of all the possible test return values of the test case method */ +#define TEST_ABORTED -1 +#define TEST_STARTED 0 +#define TEST_COMPLETED 1 +#define TEST_SKIPPED 2 + +/* ! Definition of all the possible test results for the harness */ +#define TEST_RESULT_PASSED 0 +#define TEST_RESULT_FAILED 1 +#define TEST_RESULT_NO_ASSERT 2 +#define TEST_RESULT_SKIPPED 3 +#define TEST_RESULT_SETUP_FAILURE 4 + +/* !< Function pointer to a test case setup function (run before every test) */ +typedef void (*SDLTest_TestCaseSetUpFp)(void *arg); + +/* !< Function pointer to a test case function */ +typedef int (*SDLTest_TestCaseFp)(void *arg); + +/* !< Function pointer to a test case teardown function (run after every test) */ +typedef void (*SDLTest_TestCaseTearDownFp)(void *arg); + +/** + * Holds information about a single test case. + */ +typedef struct SDLTest_TestCaseReference { + /* !< Func2Stress */ + SDLTest_TestCaseFp testCase; + /* !< Short name (or function name) "Func2Stress" */ + char *name; + /* !< Long name or full description "This test pushes func2() to the limit." */ + char *description; + /* !< Set to TEST_ENABLED or TEST_DISABLED (test won't be run) */ + int enabled; +} SDLTest_TestCaseReference; + +/** + * Holds information about a test suite (multiple test cases). + */ +typedef struct SDLTest_TestSuiteReference { + /* !< "PlatformSuite" */ + char *name; + /* !< The function that is run before each test. NULL skips. */ + SDLTest_TestCaseSetUpFp testSetUp; + /* !< The test cases that are run as part of the suite. Last item should be NULL. */ + const SDLTest_TestCaseReference **testCases; + /* !< The function that is run after each test. NULL skips. */ + SDLTest_TestCaseTearDownFp testTearDown; +} SDLTest_TestSuiteReference; + + +/** + * \brief Execute a test suite using the given run seed and execution key. + * + * \param testSuites Suites containing the test case. + * \param userRunSeed Custom run seed provided by user, or NULL to autogenerate one. + * \param userExecKey Custom execution key provided by user, or 0 to autogenerate one. + * \param filter Filter specification. NULL disables. Case sensitive. + * \param testIterations Number of iterations to run each test case. + * + * \returns Test run result; 0 when all tests passed, 1 if any tests failed. + */ +int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *userRunSeed, Uint64 userExecKey, const char *filter, int testIterations); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_test_harness_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_test_images.h b/Template/Game/Source/External/SDL/include/SDL_test_images.h new file mode 100644 index 0000000..8c64b4f --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_test_images.h @@ -0,0 +1,78 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_test_images.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + + Defines some images for tests. + +*/ + +#ifndef _SDL_test_images_h +#define _SDL_test_images_h + +#include "SDL.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + *Type for test images. + */ +typedef struct SDLTest_SurfaceImage_s { + int width; + int height; + unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */ + const char *pixel_data; +} SDLTest_SurfaceImage_t; + +/* Test images */ +SDL_Surface *SDLTest_ImageBlit(); +SDL_Surface *SDLTest_ImageBlitColor(); +SDL_Surface *SDLTest_ImageBlitAlpha(); +SDL_Surface *SDLTest_ImageBlitBlendAdd(); +SDL_Surface *SDLTest_ImageBlitBlend(); +SDL_Surface *SDLTest_ImageBlitBlendMod(); +SDL_Surface *SDLTest_ImageBlitBlendNone(); +SDL_Surface *SDLTest_ImageBlitBlendAll(); +SDL_Surface *SDLTest_ImageFace(); +SDL_Surface *SDLTest_ImagePrimitives(); +SDL_Surface *SDLTest_ImagePrimitivesBlend(); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_test_images_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_test_log.h b/Template/Game/Source/External/SDL/include/SDL_test_log.h new file mode 100644 index 0000000..73a5c01 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_test_log.h @@ -0,0 +1,67 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_test_log.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + * + * Wrapper to log in the TEST category + * + */ + +#ifndef _SDL_test_log_h +#define _SDL_test_log_h + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief Prints given message with a timestamp in the TEST category and INFO priority. + * + * \param fmt Message to be logged + */ +void SDLTest_Log(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); + +/** + * \brief Prints given message with a timestamp in the TEST category and the ERROR priority. + * + * \param fmt Message to be logged + */ +void SDLTest_LogError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_test_log_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_test_md5.h b/Template/Game/Source/External/SDL/include/SDL_test_md5.h new file mode 100644 index 0000000..f2d9a7d --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_test_md5.h @@ -0,0 +1,129 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_test_md5.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + *********************************************************************** + ** Header file for implementation of MD5 ** + ** RSA Data Security, Inc. MD5 Message-Digest Algorithm ** + ** Created: 2/17/90 RLR ** + ** Revised: 12/27/90 SRD,AJ,BSK,JT Reference C version ** + ** Revised (for MD5): RLR 4/27/91 ** + ** -- G modified to have y&~z instead of y&z ** + ** -- FF, GG, HH modified to add in last register done ** + ** -- Access pattern: round 2 works mod 5, round 3 works mod 3 ** + ** -- distinct additive constant for each step ** + ** -- round 4 added, working mod 7 ** + *********************************************************************** +*/ + +/* + *********************************************************************** + ** Message-digest routines: ** + ** To form the message digest for a message M ** + ** (1) Initialize a context buffer mdContext using MD5Init ** + ** (2) Call MD5Update on mdContext and M ** + ** (3) Call MD5Final on mdContext ** + ** The message digest is now in mdContext->digest[0...15] ** + *********************************************************************** +*/ + +#ifndef _SDL_test_md5_h +#define _SDL_test_md5_h + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* ------------ Definitions --------- */ + +/* typedef a 32-bit type */ + typedef unsigned long int MD5UINT4; + +/* Data structure for MD5 (Message-Digest) computation */ + typedef struct { + MD5UINT4 i[2]; /* number of _bits_ handled mod 2^64 */ + MD5UINT4 buf[4]; /* scratch buffer */ + unsigned char in[64]; /* input buffer */ + unsigned char digest[16]; /* actual digest after Md5Final call */ + } SDLTest_Md5Context; + +/* ---------- Function Prototypes ------------- */ + +/** + * \brief initialize the context + * + * \param mdContext pointer to context variable + * + * Note: The function initializes the message-digest context + * mdContext. Call before each new use of the context - + * all fields are set to zero. + */ + void SDLTest_Md5Init(SDLTest_Md5Context * mdContext); + + +/** + * \brief update digest from variable length data + * + * \param mdContext pointer to context variable + * \param inBuf pointer to data array/string + * \param inLen length of data array/string + * + * Note: The function updates the message-digest context to account + * for the presence of each of the characters inBuf[0..inLen-1] + * in the message whose digest is being computed. +*/ + + void SDLTest_Md5Update(SDLTest_Md5Context * mdContext, unsigned char *inBuf, + unsigned int inLen); + + +/** + * \brief complete digest computation + * + * \param mdContext pointer to context variable + * + * Note: The function terminates the message-digest computation and + * ends with the desired message digest in mdContext.digest[0..15]. + * Always call before using the digest[] variable. +*/ + + void SDLTest_Md5Final(SDLTest_Md5Context * mdContext); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_test_md5_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_test_random.h b/Template/Game/Source/External/SDL/include/SDL_test_random.h new file mode 100644 index 0000000..91c3652 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_test_random.h @@ -0,0 +1,115 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_test_random.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + + A "32-bit Multiply with carry random number generator. Very fast. + Includes a list of recommended multipliers. + + multiply-with-carry generator: x(n) = a*x(n-1) + carry mod 2^32. + period: (a*2^31)-1 + +*/ + +#ifndef _SDL_test_random_h +#define _SDL_test_random_h + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* --- Definitions */ + +/* + * Macros that return a random number in a specific format. + */ +#define SDLTest_RandomInt(c) ((int)SDLTest_Random(c)) + +/* + * Context structure for the random number generator state. + */ + typedef struct { + unsigned int a; + unsigned int x; + unsigned int c; + unsigned int ah; + unsigned int al; + } SDLTest_RandomContext; + + +/* --- Function prototypes */ + +/** + * \brief Initialize random number generator with two integers. + * + * Note: The random sequence of numbers returned by ...Random() is the + * same for the same two integers and has a period of 2^31. + * + * \param rndContext pointer to context structure + * \param xi integer that defines the random sequence + * \param ci integer that defines the random sequence + * + */ + void SDLTest_RandomInit(SDLTest_RandomContext * rndContext, unsigned int xi, + unsigned int ci); + +/** + * \brief Initialize random number generator based on current system time. + * + * \param rndContext pointer to context structure + * + */ + void SDLTest_RandomInitTime(SDLTest_RandomContext *rndContext); + + +/** + * \brief Initialize random number generator based on current system time. + * + * Note: ...RandomInit() or ...RandomInitTime() must have been called + * before using this function. + * + * \param rndContext pointer to context structure + * + * \returns A random number (32bit unsigned integer) + * + */ + unsigned int SDLTest_Random(SDLTest_RandomContext *rndContext); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_test_random_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_thread.h b/Template/Game/Source/External/SDL/include/SDL_thread.h new file mode 100644 index 0000000..377e6c7 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_thread.h @@ -0,0 +1,287 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_thread_h +#define _SDL_thread_h + +/** + * \file SDL_thread.h + * + * Header for the SDL thread management routines. + */ + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +/* Thread synchronization primitives */ +#include "SDL_atomic.h" +#include "SDL_mutex.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* The SDL thread structure, defined in SDL_thread.c */ +struct SDL_Thread; +typedef struct SDL_Thread SDL_Thread; + +/* The SDL thread ID */ +typedef unsigned long SDL_threadID; + +/* Thread local storage ID, 0 is the invalid ID */ +typedef unsigned int SDL_TLSID; + +/** + * The SDL thread priority. + * + * \note On many systems you require special privileges to set high priority. + */ +typedef enum { + SDL_THREAD_PRIORITY_LOW, + SDL_THREAD_PRIORITY_NORMAL, + SDL_THREAD_PRIORITY_HIGH +} SDL_ThreadPriority; + +/** + * The function passed to SDL_CreateThread(). + * It is passed a void* user context parameter and returns an int. + */ +typedef int (SDLCALL * SDL_ThreadFunction) (void *data); + +#if defined(__WIN32__) && !defined(HAVE_LIBC) +/** + * \file SDL_thread.h + * + * We compile SDL into a DLL. This means, that it's the DLL which + * creates a new thread for the calling process with the SDL_CreateThread() + * API. There is a problem with this, that only the RTL of the SDL.DLL will + * be initialized for those threads, and not the RTL of the calling + * application! + * + * To solve this, we make a little hack here. + * + * We'll always use the caller's _beginthread() and _endthread() APIs to + * start a new thread. This way, if it's the SDL.DLL which uses this API, + * then the RTL of SDL.DLL will be used to create the new thread, and if it's + * the application, then the RTL of the application will be used. + * + * So, in short: + * Always use the _beginthread() and _endthread() of the calling runtime + * library! + */ +#define SDL_PASSED_BEGINTHREAD_ENDTHREAD +#include /* This has _beginthread() and _endthread() defined! */ + +typedef uintptr_t(__cdecl * pfnSDL_CurrentBeginThread) (void *, unsigned, + unsigned (__stdcall * + func) (void + *), + void *arg, unsigned, + unsigned *threadID); +typedef void (__cdecl * pfnSDL_CurrentEndThread) (unsigned code); + +/** + * Create a thread. + */ +extern DECLSPEC SDL_Thread *SDLCALL +SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data, + pfnSDL_CurrentBeginThread pfnBeginThread, + pfnSDL_CurrentEndThread pfnEndThread); + +/** + * Create a thread. + */ +#if defined(SDL_CreateThread) && SDL_DYNAMIC_API +#undef SDL_CreateThread +#define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)_beginthreadex, (pfnSDL_CurrentEndThread)_endthreadex) +#else +#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)_beginthreadex, (pfnSDL_CurrentEndThread)_endthreadex) +#endif + +#else + +/** + * Create a thread. + * + * Thread naming is a little complicated: Most systems have very small + * limits for the string length (Haiku has 32 bytes, Linux currently has 16, + * Visual C++ 6.0 has nine!), and possibly other arbitrary rules. You'll + * have to see what happens with your system's debugger. The name should be + * UTF-8 (but using the naming limits of C identifiers is a better bet). + * There are no requirements for thread naming conventions, so long as the + * string is null-terminated UTF-8, but these guidelines are helpful in + * choosing a name: + * + * http://stackoverflow.com/questions/149932/naming-conventions-for-threads + * + * If a system imposes requirements, SDL will try to munge the string for + * it (truncate, etc), but the original string contents will be available + * from SDL_GetThreadName(). + */ +extern DECLSPEC SDL_Thread *SDLCALL +SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data); + +#endif + +/** + * Get the thread name, as it was specified in SDL_CreateThread(). + * This function returns a pointer to a UTF-8 string that names the + * specified thread, or NULL if it doesn't have a name. This is internal + * memory, not to be free()'d by the caller, and remains valid until the + * specified thread is cleaned up by SDL_WaitThread(). + */ +extern DECLSPEC const char *SDLCALL SDL_GetThreadName(SDL_Thread *thread); + +/** + * Get the thread identifier for the current thread. + */ +extern DECLSPEC SDL_threadID SDLCALL SDL_ThreadID(void); + +/** + * Get the thread identifier for the specified thread. + * + * Equivalent to SDL_ThreadID() if the specified thread is NULL. + */ +extern DECLSPEC SDL_threadID SDLCALL SDL_GetThreadID(SDL_Thread * thread); + +/** + * Set the priority for the current thread + */ +extern DECLSPEC int SDLCALL SDL_SetThreadPriority(SDL_ThreadPriority priority); + +/** + * Wait for a thread to finish. Threads that haven't been detached will + * remain (as a "zombie") until this function cleans them up. Not doing so + * is a resource leak. + * + * Once a thread has been cleaned up through this function, the SDL_Thread + * that references it becomes invalid and should not be referenced again. + * As such, only one thread may call SDL_WaitThread() on another. + * + * The return code for the thread function is placed in the area + * pointed to by \c status, if \c status is not NULL. + * + * You may not wait on a thread that has been used in a call to + * SDL_DetachThread(). Use either that function or this one, but not + * both, or behavior is undefined. + * + * It is safe to pass NULL to this function; it is a no-op. + */ +extern DECLSPEC void SDLCALL SDL_WaitThread(SDL_Thread * thread, int *status); + +/** + * A thread may be "detached" to signify that it should not remain until + * another thread has called SDL_WaitThread() on it. Detaching a thread + * is useful for long-running threads that nothing needs to synchronize + * with or further manage. When a detached thread is done, it simply + * goes away. + * + * There is no way to recover the return code of a detached thread. If you + * need this, don't detach the thread and instead use SDL_WaitThread(). + * + * Once a thread is detached, you should usually assume the SDL_Thread isn't + * safe to reference again, as it will become invalid immediately upon + * the detached thread's exit, instead of remaining until someone has called + * SDL_WaitThread() to finally clean it up. As such, don't detach the same + * thread more than once. + * + * If a thread has already exited when passed to SDL_DetachThread(), it will + * stop waiting for a call to SDL_WaitThread() and clean up immediately. + * It is not safe to detach a thread that might be used with SDL_WaitThread(). + * + * You may not call SDL_WaitThread() on a thread that has been detached. + * Use either that function or this one, but not both, or behavior is + * undefined. + * + * It is safe to pass NULL to this function; it is a no-op. + */ +extern DECLSPEC void SDLCALL SDL_DetachThread(SDL_Thread * thread); + +/** + * \brief Create an identifier that is globally visible to all threads but refers to data that is thread-specific. + * + * \return The newly created thread local storage identifier, or 0 on error + * + * \code + * static SDL_SpinLock tls_lock; + * static SDL_TLSID thread_local_storage; + * + * void SetMyThreadData(void *value) + * { + * if (!thread_local_storage) { + * SDL_AtomicLock(&tls_lock); + * if (!thread_local_storage) { + * thread_local_storage = SDL_TLSCreate(); + * } + * SDL_AtomicUnlock(&tls_lock); + * } + * SDL_TLSSet(thread_local_storage, value, 0); + * } + * + * void *GetMyThreadData(void) + * { + * return SDL_TLSGet(thread_local_storage); + * } + * \endcode + * + * \sa SDL_TLSGet() + * \sa SDL_TLSSet() + */ +extern DECLSPEC SDL_TLSID SDLCALL SDL_TLSCreate(void); + +/** + * \brief Get the value associated with a thread local storage ID for the current thread. + * + * \param id The thread local storage ID + * + * \return The value associated with the ID for the current thread, or NULL if no value has been set. + * + * \sa SDL_TLSCreate() + * \sa SDL_TLSSet() + */ +extern DECLSPEC void * SDLCALL SDL_TLSGet(SDL_TLSID id); + +/** + * \brief Set the value associated with a thread local storage ID for the current thread. + * + * \param id The thread local storage ID + * \param value The value to associate with the ID for the current thread + * \param destructor A function called when the thread exits, to free the value. + * + * \return 0 on success, -1 on error + * + * \sa SDL_TLSCreate() + * \sa SDL_TLSGet() + */ +extern DECLSPEC int SDLCALL SDL_TLSSet(SDL_TLSID id, const void *value, void (*destructor)(void*)); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_thread_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_timer.h b/Template/Game/Source/External/SDL/include/SDL_timer.h new file mode 100644 index 0000000..e0d3785 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_timer.h @@ -0,0 +1,115 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_timer_h +#define _SDL_timer_h + +/** + * \file SDL_timer.h + * + * Header for the SDL time management routines. + */ + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief Get the number of milliseconds since the SDL library initialization. + * + * \note This value wraps if the program runs for more than ~49 days. + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetTicks(void); + +/** + * \brief Compare SDL ticks values, and return true if A has passed B + * + * e.g. if you want to wait 100 ms, you could do this: + * Uint32 timeout = SDL_GetTicks() + 100; + * while (!SDL_TICKS_PASSED(SDL_GetTicks(), timeout)) { + * ... do work until timeout has elapsed + * } + */ +#define SDL_TICKS_PASSED(A, B) ((Sint32)((B) - (A)) <= 0) + +/** + * \brief Get the current value of the high resolution counter + */ +extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceCounter(void); + +/** + * \brief Get the count per second of the high resolution counter + */ +extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceFrequency(void); + +/** + * \brief Wait a specified number of milliseconds before returning. + */ +extern DECLSPEC void SDLCALL SDL_Delay(Uint32 ms); + +/** + * Function prototype for the timer callback function. + * + * The callback function is passed the current timer interval and returns + * the next timer interval. If the returned value is the same as the one + * passed in, the periodic alarm continues, otherwise a new alarm is + * scheduled. If the callback returns 0, the periodic alarm is cancelled. + */ +typedef Uint32 (SDLCALL * SDL_TimerCallback) (Uint32 interval, void *param); + +/** + * Definition of the timer ID type. + */ +typedef int SDL_TimerID; + +/** + * \brief Add a new timer to the pool of timers already running. + * + * \return A timer ID, or 0 when an error occurs. + */ +extern DECLSPEC SDL_TimerID SDLCALL SDL_AddTimer(Uint32 interval, + SDL_TimerCallback callback, + void *param); + +/** + * \brief Remove a timer knowing its ID. + * + * \return A boolean value indicating success or failure. + * + * \warning It is not safe to remove a timer multiple times. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_RemoveTimer(SDL_TimerID id); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_timer_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_touch.h b/Template/Game/Source/External/SDL/include/SDL_touch.h new file mode 100644 index 0000000..2643e36 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_touch.h @@ -0,0 +1,86 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_touch.h + * + * Include file for SDL touch event handling. + */ + +#ifndef _SDL_touch_h +#define _SDL_touch_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +typedef Sint64 SDL_TouchID; +typedef Sint64 SDL_FingerID; + +typedef struct SDL_Finger +{ + SDL_FingerID id; + float x; + float y; + float pressure; +} SDL_Finger; + +/* Used as the device ID for mouse events simulated with touch input */ +#define SDL_TOUCH_MOUSEID ((Uint32)-1) + + +/* Function prototypes */ + +/** + * \brief Get the number of registered touch devices. + */ +extern DECLSPEC int SDLCALL SDL_GetNumTouchDevices(void); + +/** + * \brief Get the touch ID with the given index, or 0 if the index is invalid. + */ +extern DECLSPEC SDL_TouchID SDLCALL SDL_GetTouchDevice(int index); + +/** + * \brief Get the number of active fingers for a given touch device. + */ +extern DECLSPEC int SDLCALL SDL_GetNumTouchFingers(SDL_TouchID touchID); + +/** + * \brief Get the finger object of the given touch, with the given index. + */ +extern DECLSPEC SDL_Finger * SDLCALL SDL_GetTouchFinger(SDL_TouchID touchID, int index); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_touch_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_types.h b/Template/Game/Source/External/SDL/include/SDL_types.h new file mode 100644 index 0000000..5118af2 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_types.h @@ -0,0 +1,29 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_types.h + * + * \deprecated + */ + +/* DEPRECATED */ +#include "SDL_stdinc.h" diff --git a/Template/Game/Source/External/SDL/include/SDL_version.h b/Template/Game/Source/External/SDL/include/SDL_version.h new file mode 100644 index 0000000..de1f160 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_version.h @@ -0,0 +1,162 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_version.h + * + * This header defines the current SDL version. + */ + +#ifndef _SDL_version_h +#define _SDL_version_h + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief Information the version of SDL in use. + * + * Represents the library's version as three levels: major revision + * (increments with massive changes, additions, and enhancements), + * minor revision (increments with backwards-compatible changes to the + * major revision), and patchlevel (increments with fixes to the minor + * revision). + * + * \sa SDL_VERSION + * \sa SDL_GetVersion + */ +typedef struct SDL_version +{ + Uint8 major; /**< major version */ + Uint8 minor; /**< minor version */ + Uint8 patch; /**< update version */ +} SDL_version; + +/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL +*/ +#define SDL_MAJOR_VERSION 2 +#define SDL_MINOR_VERSION 0 +#define SDL_PATCHLEVEL 4 + +/** + * \brief Macro to determine SDL version program was compiled against. + * + * This macro fills in a SDL_version structure with the version of the + * library you compiled against. This is determined by what header the + * compiler uses. Note that if you dynamically linked the library, you might + * have a slightly newer or older version at runtime. That version can be + * determined with SDL_GetVersion(), which, unlike SDL_VERSION(), + * is not a macro. + * + * \param x A pointer to a SDL_version struct to initialize. + * + * \sa SDL_version + * \sa SDL_GetVersion + */ +#define SDL_VERSION(x) \ +{ \ + (x)->major = SDL_MAJOR_VERSION; \ + (x)->minor = SDL_MINOR_VERSION; \ + (x)->patch = SDL_PATCHLEVEL; \ +} + +/** + * This macro turns the version numbers into a numeric value: + * \verbatim + (1,2,3) -> (1203) + \endverbatim + * + * This assumes that there will never be more than 100 patchlevels. + */ +#define SDL_VERSIONNUM(X, Y, Z) \ + ((X)*1000 + (Y)*100 + (Z)) + +/** + * This is the version number macro for the current SDL version. + */ +#define SDL_COMPILEDVERSION \ + SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL) + +/** + * This macro will evaluate to true if compiled with SDL at least X.Y.Z. + */ +#define SDL_VERSION_ATLEAST(X, Y, Z) \ + (SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z)) + +/** + * \brief Get the version of SDL that is linked against your program. + * + * If you are linking to SDL dynamically, then it is possible that the + * current version will be different than the version you compiled against. + * This function returns the current version, while SDL_VERSION() is a + * macro that tells you what version you compiled with. + * + * \code + * SDL_version compiled; + * SDL_version linked; + * + * SDL_VERSION(&compiled); + * SDL_GetVersion(&linked); + * printf("We compiled against SDL version %d.%d.%d ...\n", + * compiled.major, compiled.minor, compiled.patch); + * printf("But we linked against SDL version %d.%d.%d.\n", + * linked.major, linked.minor, linked.patch); + * \endcode + * + * This function may be called safely at any time, even before SDL_Init(). + * + * \sa SDL_VERSION + */ +extern DECLSPEC void SDLCALL SDL_GetVersion(SDL_version * ver); + +/** + * \brief Get the code revision of SDL that is linked against your program. + * + * Returns an arbitrary string (a hash value) uniquely identifying the + * exact revision of the SDL library in use, and is only useful in comparing + * against other revisions. It is NOT an incrementing number. + */ +extern DECLSPEC const char *SDLCALL SDL_GetRevision(void); + +/** + * \brief Get the revision number of SDL that is linked against your program. + * + * Returns a number uniquely identifying the exact revision of the SDL + * library in use. It is an incrementing number based on commits to + * hg.libsdl.org. + */ +extern DECLSPEC int SDLCALL SDL_GetRevisionNumber(void); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_version_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/SDL_video.h b/Template/Game/Source/External/SDL/include/SDL_video.h new file mode 100644 index 0000000..52dbbc7 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/SDL_video.h @@ -0,0 +1,1103 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file SDL_video.h + * + * Header file for SDL video functions. + */ + +#ifndef _SDL_video_h +#define _SDL_video_h + +#include "SDL_stdinc.h" +#include "SDL_pixels.h" +#include "SDL_rect.h" +#include "SDL_surface.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief The structure that defines a display mode + * + * \sa SDL_GetNumDisplayModes() + * \sa SDL_GetDisplayMode() + * \sa SDL_GetDesktopDisplayMode() + * \sa SDL_GetCurrentDisplayMode() + * \sa SDL_GetClosestDisplayMode() + * \sa SDL_SetWindowDisplayMode() + * \sa SDL_GetWindowDisplayMode() + */ +typedef struct +{ + Uint32 format; /**< pixel format */ + int w; /**< width, in screen coordinates */ + int h; /**< height, in screen coordinates */ + int refresh_rate; /**< refresh rate (or zero for unspecified) */ + void *driverdata; /**< driver-specific data, initialize to 0 */ +} SDL_DisplayMode; + +/** + * \brief The type used to identify a window + * + * \sa SDL_CreateWindow() + * \sa SDL_CreateWindowFrom() + * \sa SDL_DestroyWindow() + * \sa SDL_GetWindowData() + * \sa SDL_GetWindowFlags() + * \sa SDL_GetWindowGrab() + * \sa SDL_GetWindowPosition() + * \sa SDL_GetWindowSize() + * \sa SDL_GetWindowTitle() + * \sa SDL_HideWindow() + * \sa SDL_MaximizeWindow() + * \sa SDL_MinimizeWindow() + * \sa SDL_RaiseWindow() + * \sa SDL_RestoreWindow() + * \sa SDL_SetWindowData() + * \sa SDL_SetWindowFullscreen() + * \sa SDL_SetWindowGrab() + * \sa SDL_SetWindowIcon() + * \sa SDL_SetWindowPosition() + * \sa SDL_SetWindowSize() + * \sa SDL_SetWindowBordered() + * \sa SDL_SetWindowTitle() + * \sa SDL_ShowWindow() + */ +typedef struct SDL_Window SDL_Window; + +/** + * \brief The flags on a window + * + * \sa SDL_GetWindowFlags() + */ +typedef enum +{ + SDL_WINDOW_FULLSCREEN = 0x00000001, /**< fullscreen window */ + SDL_WINDOW_OPENGL = 0x00000002, /**< window usable with OpenGL context */ + SDL_WINDOW_SHOWN = 0x00000004, /**< window is visible */ + SDL_WINDOW_HIDDEN = 0x00000008, /**< window is not visible */ + SDL_WINDOW_BORDERLESS = 0x00000010, /**< no window decoration */ + SDL_WINDOW_RESIZABLE = 0x00000020, /**< window can be resized */ + SDL_WINDOW_MINIMIZED = 0x00000040, /**< window is minimized */ + SDL_WINDOW_MAXIMIZED = 0x00000080, /**< window is maximized */ + SDL_WINDOW_INPUT_GRABBED = 0x00000100, /**< window has grabbed input focus */ + SDL_WINDOW_INPUT_FOCUS = 0x00000200, /**< window has input focus */ + SDL_WINDOW_MOUSE_FOCUS = 0x00000400, /**< window has mouse focus */ + SDL_WINDOW_FULLSCREEN_DESKTOP = ( SDL_WINDOW_FULLSCREEN | 0x00001000 ), + SDL_WINDOW_FOREIGN = 0x00000800, /**< window not created by SDL */ + SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, /**< window should be created in high-DPI mode if supported */ + SDL_WINDOW_MOUSE_CAPTURE = 0x00004000 /**< window has mouse captured (unrelated to INPUT_GRABBED) */ +} SDL_WindowFlags; + +/** + * \brief Used to indicate that you don't care what the window position is. + */ +#define SDL_WINDOWPOS_UNDEFINED_MASK 0x1FFF0000 +#define SDL_WINDOWPOS_UNDEFINED_DISPLAY(X) (SDL_WINDOWPOS_UNDEFINED_MASK|(X)) +#define SDL_WINDOWPOS_UNDEFINED SDL_WINDOWPOS_UNDEFINED_DISPLAY(0) +#define SDL_WINDOWPOS_ISUNDEFINED(X) \ + (((X)&0xFFFF0000) == SDL_WINDOWPOS_UNDEFINED_MASK) + +/** + * \brief Used to indicate that the window position should be centered. + */ +#define SDL_WINDOWPOS_CENTERED_MASK 0x2FFF0000 +#define SDL_WINDOWPOS_CENTERED_DISPLAY(X) (SDL_WINDOWPOS_CENTERED_MASK|(X)) +#define SDL_WINDOWPOS_CENTERED SDL_WINDOWPOS_CENTERED_DISPLAY(0) +#define SDL_WINDOWPOS_ISCENTERED(X) \ + (((X)&0xFFFF0000) == SDL_WINDOWPOS_CENTERED_MASK) + +/** + * \brief Event subtype for window events + */ +typedef enum +{ + SDL_WINDOWEVENT_NONE, /**< Never used */ + SDL_WINDOWEVENT_SHOWN, /**< Window has been shown */ + SDL_WINDOWEVENT_HIDDEN, /**< Window has been hidden */ + SDL_WINDOWEVENT_EXPOSED, /**< Window has been exposed and should be + redrawn */ + SDL_WINDOWEVENT_MOVED, /**< Window has been moved to data1, data2 + */ + SDL_WINDOWEVENT_RESIZED, /**< Window has been resized to data1xdata2 */ + SDL_WINDOWEVENT_SIZE_CHANGED, /**< The window size has changed, either as + a result of an API call or through the + system or user changing the window size. */ + SDL_WINDOWEVENT_MINIMIZED, /**< Window has been minimized */ + SDL_WINDOWEVENT_MAXIMIZED, /**< Window has been maximized */ + SDL_WINDOWEVENT_RESTORED, /**< Window has been restored to normal size + and position */ + SDL_WINDOWEVENT_ENTER, /**< Window has gained mouse focus */ + SDL_WINDOWEVENT_LEAVE, /**< Window has lost mouse focus */ + SDL_WINDOWEVENT_FOCUS_GAINED, /**< Window has gained keyboard focus */ + SDL_WINDOWEVENT_FOCUS_LOST, /**< Window has lost keyboard focus */ + SDL_WINDOWEVENT_CLOSE /**< The window manager requests that the + window be closed */ +} SDL_WindowEventID; + +/** + * \brief An opaque handle to an OpenGL context. + */ +typedef void *SDL_GLContext; + +/** + * \brief OpenGL configuration attributes + */ +typedef enum +{ + SDL_GL_RED_SIZE, + SDL_GL_GREEN_SIZE, + SDL_GL_BLUE_SIZE, + SDL_GL_ALPHA_SIZE, + SDL_GL_BUFFER_SIZE, + SDL_GL_DOUBLEBUFFER, + SDL_GL_DEPTH_SIZE, + SDL_GL_STENCIL_SIZE, + SDL_GL_ACCUM_RED_SIZE, + SDL_GL_ACCUM_GREEN_SIZE, + SDL_GL_ACCUM_BLUE_SIZE, + SDL_GL_ACCUM_ALPHA_SIZE, + SDL_GL_STEREO, + SDL_GL_MULTISAMPLEBUFFERS, + SDL_GL_MULTISAMPLESAMPLES, + SDL_GL_ACCELERATED_VISUAL, + SDL_GL_RETAINED_BACKING, + SDL_GL_CONTEXT_MAJOR_VERSION, + SDL_GL_CONTEXT_MINOR_VERSION, + SDL_GL_CONTEXT_EGL, + SDL_GL_CONTEXT_FLAGS, + SDL_GL_CONTEXT_PROFILE_MASK, + SDL_GL_SHARE_WITH_CURRENT_CONTEXT, + SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, + SDL_GL_CONTEXT_RELEASE_BEHAVIOR +} SDL_GLattr; + +typedef enum +{ + SDL_GL_CONTEXT_PROFILE_CORE = 0x0001, + SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002, + SDL_GL_CONTEXT_PROFILE_ES = 0x0004 /* GLX_CONTEXT_ES2_PROFILE_BIT_EXT */ +} SDL_GLprofile; + +typedef enum +{ + SDL_GL_CONTEXT_DEBUG_FLAG = 0x0001, + SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 0x0002, + SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = 0x0004, + SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = 0x0008 +} SDL_GLcontextFlag; + +typedef enum +{ + SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE = 0x0000, + SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x0001 +} SDL_GLcontextReleaseFlag; + + +/* Function prototypes */ + +/** + * \brief Get the number of video drivers compiled into SDL + * + * \sa SDL_GetVideoDriver() + */ +extern DECLSPEC int SDLCALL SDL_GetNumVideoDrivers(void); + +/** + * \brief Get the name of a built in video driver. + * + * \note The video drivers are presented in the order in which they are + * normally checked during initialization. + * + * \sa SDL_GetNumVideoDrivers() + */ +extern DECLSPEC const char *SDLCALL SDL_GetVideoDriver(int index); + +/** + * \brief Initialize the video subsystem, optionally specifying a video driver. + * + * \param driver_name Initialize a specific driver by name, or NULL for the + * default video driver. + * + * \return 0 on success, -1 on error + * + * This function initializes the video subsystem; setting up a connection + * to the window manager, etc, and determines the available display modes + * and pixel formats, but does not initialize a window or graphics mode. + * + * \sa SDL_VideoQuit() + */ +extern DECLSPEC int SDLCALL SDL_VideoInit(const char *driver_name); + +/** + * \brief Shuts down the video subsystem. + * + * This function closes all windows, and restores the original video mode. + * + * \sa SDL_VideoInit() + */ +extern DECLSPEC void SDLCALL SDL_VideoQuit(void); + +/** + * \brief Returns the name of the currently initialized video driver. + * + * \return The name of the current video driver or NULL if no driver + * has been initialized + * + * \sa SDL_GetNumVideoDrivers() + * \sa SDL_GetVideoDriver() + */ +extern DECLSPEC const char *SDLCALL SDL_GetCurrentVideoDriver(void); + +/** + * \brief Returns the number of available video displays. + * + * \sa SDL_GetDisplayBounds() + */ +extern DECLSPEC int SDLCALL SDL_GetNumVideoDisplays(void); + +/** + * \brief Get the name of a display in UTF-8 encoding + * + * \return The name of a display, or NULL for an invalid display index. + * + * \sa SDL_GetNumVideoDisplays() + */ +extern DECLSPEC const char * SDLCALL SDL_GetDisplayName(int displayIndex); + +/** + * \brief Get the desktop area represented by a display, with the primary + * display located at 0,0 + * + * \return 0 on success, or -1 if the index is out of range. + * + * \sa SDL_GetNumVideoDisplays() + */ +extern DECLSPEC int SDLCALL SDL_GetDisplayBounds(int displayIndex, SDL_Rect * rect); + +/** + * \brief Get the dots/pixels-per-inch for a display + * + * \note Diagonal, horizontal and vertical DPI can all be optionally + * returned if the parameter is non-NULL. + * + * \return 0 on success, or -1 if no DPI information is available or the index is out of range. + * + * \sa SDL_GetNumVideoDisplays() + */ +extern DECLSPEC int SDLCALL SDL_GetDisplayDPI(int displayIndex, float * ddpi, float * hdpi, float * vdpi); + +/** + * \brief Returns the number of available display modes. + * + * \sa SDL_GetDisplayMode() + */ +extern DECLSPEC int SDLCALL SDL_GetNumDisplayModes(int displayIndex); + +/** + * \brief Fill in information about a specific display mode. + * + * \note The display modes are sorted in this priority: + * \li bits per pixel -> more colors to fewer colors + * \li width -> largest to smallest + * \li height -> largest to smallest + * \li refresh rate -> highest to lowest + * + * \sa SDL_GetNumDisplayModes() + */ +extern DECLSPEC int SDLCALL SDL_GetDisplayMode(int displayIndex, int modeIndex, + SDL_DisplayMode * mode); + +/** + * \brief Fill in information about the desktop display mode. + */ +extern DECLSPEC int SDLCALL SDL_GetDesktopDisplayMode(int displayIndex, SDL_DisplayMode * mode); + +/** + * \brief Fill in information about the current display mode. + */ +extern DECLSPEC int SDLCALL SDL_GetCurrentDisplayMode(int displayIndex, SDL_DisplayMode * mode); + + +/** + * \brief Get the closest match to the requested display mode. + * + * \param displayIndex The index of display from which mode should be queried. + * \param mode The desired display mode + * \param closest A pointer to a display mode to be filled in with the closest + * match of the available display modes. + * + * \return The passed in value \c closest, or NULL if no matching video mode + * was available. + * + * The available display modes are scanned, and \c closest is filled in with the + * closest mode matching the requested mode and returned. The mode format and + * refresh_rate default to the desktop mode if they are 0. The modes are + * scanned with size being first priority, format being second priority, and + * finally checking the refresh_rate. If all the available modes are too + * small, then NULL is returned. + * + * \sa SDL_GetNumDisplayModes() + * \sa SDL_GetDisplayMode() + */ +extern DECLSPEC SDL_DisplayMode * SDLCALL SDL_GetClosestDisplayMode(int displayIndex, const SDL_DisplayMode * mode, SDL_DisplayMode * closest); + +/** + * \brief Get the display index associated with a window. + * + * \return the display index of the display containing the center of the + * window, or -1 on error. + */ +extern DECLSPEC int SDLCALL SDL_GetWindowDisplayIndex(SDL_Window * window); + +/** + * \brief Set the display mode used when a fullscreen window is visible. + * + * By default the window's dimensions and the desktop format and refresh rate + * are used. + * + * \param window The window for which the display mode should be set. + * \param mode The mode to use, or NULL for the default mode. + * + * \return 0 on success, or -1 if setting the display mode failed. + * + * \sa SDL_GetWindowDisplayMode() + * \sa SDL_SetWindowFullscreen() + */ +extern DECLSPEC int SDLCALL SDL_SetWindowDisplayMode(SDL_Window * window, + const SDL_DisplayMode + * mode); + +/** + * \brief Fill in information about the display mode used when a fullscreen + * window is visible. + * + * \sa SDL_SetWindowDisplayMode() + * \sa SDL_SetWindowFullscreen() + */ +extern DECLSPEC int SDLCALL SDL_GetWindowDisplayMode(SDL_Window * window, + SDL_DisplayMode * mode); + +/** + * \brief Get the pixel format associated with the window. + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetWindowPixelFormat(SDL_Window * window); + +/** + * \brief Create a window with the specified position, dimensions, and flags. + * + * \param title The title of the window, in UTF-8 encoding. + * \param x The x position of the window, ::SDL_WINDOWPOS_CENTERED, or + * ::SDL_WINDOWPOS_UNDEFINED. + * \param y The y position of the window, ::SDL_WINDOWPOS_CENTERED, or + * ::SDL_WINDOWPOS_UNDEFINED. + * \param w The width of the window, in screen coordinates. + * \param h The height of the window, in screen coordinates. + * \param flags The flags for the window, a mask of any of the following: + * ::SDL_WINDOW_FULLSCREEN, ::SDL_WINDOW_OPENGL, + * ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_BORDERLESS, + * ::SDL_WINDOW_RESIZABLE, ::SDL_WINDOW_MAXIMIZED, + * ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_INPUT_GRABBED, + * ::SDL_WINDOW_ALLOW_HIGHDPI. + * + * \return The id of the window created, or zero if window creation failed. + * + * If the window is created with the SDL_WINDOW_ALLOW_HIGHDPI flag, its size + * in pixels may differ from its size in screen coordinates on platforms with + * high-DPI support (e.g. iOS and Mac OS X). Use SDL_GetWindowSize() to query + * the client area's size in screen coordinates, and SDL_GL_GetDrawableSize() + * or SDL_GetRendererOutputSize() to query the drawable size in pixels. + * + * \sa SDL_DestroyWindow() + */ +extern DECLSPEC SDL_Window * SDLCALL SDL_CreateWindow(const char *title, + int x, int y, int w, + int h, Uint32 flags); + +/** + * \brief Create an SDL window from an existing native window. + * + * \param data A pointer to driver-dependent window creation data + * + * \return The id of the window created, or zero if window creation failed. + * + * \sa SDL_DestroyWindow() + */ +extern DECLSPEC SDL_Window * SDLCALL SDL_CreateWindowFrom(const void *data); + +/** + * \brief Get the numeric ID of a window, for logging purposes. + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetWindowID(SDL_Window * window); + +/** + * \brief Get a window from a stored ID, or NULL if it doesn't exist. + */ +extern DECLSPEC SDL_Window * SDLCALL SDL_GetWindowFromID(Uint32 id); + +/** + * \brief Get the window flags. + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetWindowFlags(SDL_Window * window); + +/** + * \brief Set the title of a window, in UTF-8 format. + * + * \sa SDL_GetWindowTitle() + */ +extern DECLSPEC void SDLCALL SDL_SetWindowTitle(SDL_Window * window, + const char *title); + +/** + * \brief Get the title of a window, in UTF-8 format. + * + * \sa SDL_SetWindowTitle() + */ +extern DECLSPEC const char *SDLCALL SDL_GetWindowTitle(SDL_Window * window); + +/** + * \brief Set the icon for a window. + * + * \param window The window for which the icon should be set. + * \param icon The icon for the window. + */ +extern DECLSPEC void SDLCALL SDL_SetWindowIcon(SDL_Window * window, + SDL_Surface * icon); + +/** + * \brief Associate an arbitrary named pointer with a window. + * + * \param window The window to associate with the pointer. + * \param name The name of the pointer. + * \param userdata The associated pointer. + * + * \return The previous value associated with 'name' + * + * \note The name is case-sensitive. + * + * \sa SDL_GetWindowData() + */ +extern DECLSPEC void* SDLCALL SDL_SetWindowData(SDL_Window * window, + const char *name, + void *userdata); + +/** + * \brief Retrieve the data pointer associated with a window. + * + * \param window The window to query. + * \param name The name of the pointer. + * + * \return The value associated with 'name' + * + * \sa SDL_SetWindowData() + */ +extern DECLSPEC void *SDLCALL SDL_GetWindowData(SDL_Window * window, + const char *name); + +/** + * \brief Set the position of a window. + * + * \param window The window to reposition. + * \param x The x coordinate of the window in screen coordinates, or + * ::SDL_WINDOWPOS_CENTERED or ::SDL_WINDOWPOS_UNDEFINED. + * \param y The y coordinate of the window in screen coordinates, or + * ::SDL_WINDOWPOS_CENTERED or ::SDL_WINDOWPOS_UNDEFINED. + * + * \note The window coordinate origin is the upper left of the display. + * + * \sa SDL_GetWindowPosition() + */ +extern DECLSPEC void SDLCALL SDL_SetWindowPosition(SDL_Window * window, + int x, int y); + +/** + * \brief Get the position of a window. + * + * \param window The window to query. + * \param x Pointer to variable for storing the x position, in screen + * coordinates. May be NULL. + * \param y Pointer to variable for storing the y position, in screen + * coordinates. May be NULL. + * + * \sa SDL_SetWindowPosition() + */ +extern DECLSPEC void SDLCALL SDL_GetWindowPosition(SDL_Window * window, + int *x, int *y); + +/** + * \brief Set the size of a window's client area. + * + * \param window The window to resize. + * \param w The width of the window, in screen coordinates. Must be >0. + * \param h The height of the window, in screen coordinates. Must be >0. + * + * \note You can't change the size of a fullscreen window, it automatically + * matches the size of the display mode. + * + * The window size in screen coordinates may differ from the size in pixels, if + * the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a platform with + * high-dpi support (e.g. iOS or OS X). Use SDL_GL_GetDrawableSize() or + * SDL_GetRendererOutputSize() to get the real client area size in pixels. + * + * \sa SDL_GetWindowSize() + */ +extern DECLSPEC void SDLCALL SDL_SetWindowSize(SDL_Window * window, int w, + int h); + +/** + * \brief Get the size of a window's client area. + * + * \param window The window to query. + * \param w Pointer to variable for storing the width, in screen + * coordinates. May be NULL. + * \param h Pointer to variable for storing the height, in screen + * coordinates. May be NULL. + * + * The window size in screen coordinates may differ from the size in pixels, if + * the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a platform with + * high-dpi support (e.g. iOS or OS X). Use SDL_GL_GetDrawableSize() or + * SDL_GetRendererOutputSize() to get the real client area size in pixels. + * + * \sa SDL_SetWindowSize() + */ +extern DECLSPEC void SDLCALL SDL_GetWindowSize(SDL_Window * window, int *w, + int *h); + +/** + * \brief Set the minimum size of a window's client area. + * + * \param window The window to set a new minimum size. + * \param min_w The minimum width of the window, must be >0 + * \param min_h The minimum height of the window, must be >0 + * + * \note You can't change the minimum size of a fullscreen window, it + * automatically matches the size of the display mode. + * + * \sa SDL_GetWindowMinimumSize() + * \sa SDL_SetWindowMaximumSize() + */ +extern DECLSPEC void SDLCALL SDL_SetWindowMinimumSize(SDL_Window * window, + int min_w, int min_h); + +/** + * \brief Get the minimum size of a window's client area. + * + * \param window The window to query. + * \param w Pointer to variable for storing the minimum width, may be NULL + * \param h Pointer to variable for storing the minimum height, may be NULL + * + * \sa SDL_GetWindowMaximumSize() + * \sa SDL_SetWindowMinimumSize() + */ +extern DECLSPEC void SDLCALL SDL_GetWindowMinimumSize(SDL_Window * window, + int *w, int *h); + +/** + * \brief Set the maximum size of a window's client area. + * + * \param window The window to set a new maximum size. + * \param max_w The maximum width of the window, must be >0 + * \param max_h The maximum height of the window, must be >0 + * + * \note You can't change the maximum size of a fullscreen window, it + * automatically matches the size of the display mode. + * + * \sa SDL_GetWindowMaximumSize() + * \sa SDL_SetWindowMinimumSize() + */ +extern DECLSPEC void SDLCALL SDL_SetWindowMaximumSize(SDL_Window * window, + int max_w, int max_h); + +/** + * \brief Get the maximum size of a window's client area. + * + * \param window The window to query. + * \param w Pointer to variable for storing the maximum width, may be NULL + * \param h Pointer to variable for storing the maximum height, may be NULL + * + * \sa SDL_GetWindowMinimumSize() + * \sa SDL_SetWindowMaximumSize() + */ +extern DECLSPEC void SDLCALL SDL_GetWindowMaximumSize(SDL_Window * window, + int *w, int *h); + +/** + * \brief Set the border state of a window. + * + * This will add or remove the window's SDL_WINDOW_BORDERLESS flag and + * add or remove the border from the actual window. This is a no-op if the + * window's border already matches the requested state. + * + * \param window The window of which to change the border state. + * \param bordered SDL_FALSE to remove border, SDL_TRUE to add border. + * + * \note You can't change the border state of a fullscreen window. + * + * \sa SDL_GetWindowFlags() + */ +extern DECLSPEC void SDLCALL SDL_SetWindowBordered(SDL_Window * window, + SDL_bool bordered); + +/** + * \brief Show a window. + * + * \sa SDL_HideWindow() + */ +extern DECLSPEC void SDLCALL SDL_ShowWindow(SDL_Window * window); + +/** + * \brief Hide a window. + * + * \sa SDL_ShowWindow() + */ +extern DECLSPEC void SDLCALL SDL_HideWindow(SDL_Window * window); + +/** + * \brief Raise a window above other windows and set the input focus. + */ +extern DECLSPEC void SDLCALL SDL_RaiseWindow(SDL_Window * window); + +/** + * \brief Make a window as large as possible. + * + * \sa SDL_RestoreWindow() + */ +extern DECLSPEC void SDLCALL SDL_MaximizeWindow(SDL_Window * window); + +/** + * \brief Minimize a window to an iconic representation. + * + * \sa SDL_RestoreWindow() + */ +extern DECLSPEC void SDLCALL SDL_MinimizeWindow(SDL_Window * window); + +/** + * \brief Restore the size and position of a minimized or maximized window. + * + * \sa SDL_MaximizeWindow() + * \sa SDL_MinimizeWindow() + */ +extern DECLSPEC void SDLCALL SDL_RestoreWindow(SDL_Window * window); + +/** + * \brief Set a window's fullscreen state. + * + * \return 0 on success, or -1 if setting the display mode failed. + * + * \sa SDL_SetWindowDisplayMode() + * \sa SDL_GetWindowDisplayMode() + */ +extern DECLSPEC int SDLCALL SDL_SetWindowFullscreen(SDL_Window * window, + Uint32 flags); + +/** + * \brief Get the SDL surface associated with the window. + * + * \return The window's framebuffer surface, or NULL on error. + * + * A new surface will be created with the optimal format for the window, + * if necessary. This surface will be freed when the window is destroyed. + * + * \note You may not combine this with 3D or the rendering API on this window. + * + * \sa SDL_UpdateWindowSurface() + * \sa SDL_UpdateWindowSurfaceRects() + */ +extern DECLSPEC SDL_Surface * SDLCALL SDL_GetWindowSurface(SDL_Window * window); + +/** + * \brief Copy the window surface to the screen. + * + * \return 0 on success, or -1 on error. + * + * \sa SDL_GetWindowSurface() + * \sa SDL_UpdateWindowSurfaceRects() + */ +extern DECLSPEC int SDLCALL SDL_UpdateWindowSurface(SDL_Window * window); + +/** + * \brief Copy a number of rectangles on the window surface to the screen. + * + * \return 0 on success, or -1 on error. + * + * \sa SDL_GetWindowSurface() + * \sa SDL_UpdateWindowSurfaceRect() + */ +extern DECLSPEC int SDLCALL SDL_UpdateWindowSurfaceRects(SDL_Window * window, + const SDL_Rect * rects, + int numrects); + +/** + * \brief Set a window's input grab mode. + * + * \param window The window for which the input grab mode should be set. + * \param grabbed This is SDL_TRUE to grab input, and SDL_FALSE to release input. + * + * If the caller enables a grab while another window is currently grabbed, + * the other window loses its grab in favor of the caller's window. + * + * \sa SDL_GetWindowGrab() + */ +extern DECLSPEC void SDLCALL SDL_SetWindowGrab(SDL_Window * window, + SDL_bool grabbed); + +/** + * \brief Get a window's input grab mode. + * + * \return This returns SDL_TRUE if input is grabbed, and SDL_FALSE otherwise. + * + * \sa SDL_SetWindowGrab() + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowGrab(SDL_Window * window); + +/** + * \brief Get the window that currently has an input grab enabled. + * + * \return This returns the window if input is grabbed, and NULL otherwise. + * + * \sa SDL_SetWindowGrab() + */ +extern DECLSPEC SDL_Window * SDLCALL SDL_GetGrabbedWindow(void); + +/** + * \brief Set the brightness (gamma correction) for a window. + * + * \return 0 on success, or -1 if setting the brightness isn't supported. + * + * \sa SDL_GetWindowBrightness() + * \sa SDL_SetWindowGammaRamp() + */ +extern DECLSPEC int SDLCALL SDL_SetWindowBrightness(SDL_Window * window, float brightness); + +/** + * \brief Get the brightness (gamma correction) for a window. + * + * \return The last brightness value passed to SDL_SetWindowBrightness() + * + * \sa SDL_SetWindowBrightness() + */ +extern DECLSPEC float SDLCALL SDL_GetWindowBrightness(SDL_Window * window); + +/** + * \brief Set the gamma ramp for a window. + * + * \param window The window for which the gamma ramp should be set. + * \param red The translation table for the red channel, or NULL. + * \param green The translation table for the green channel, or NULL. + * \param blue The translation table for the blue channel, or NULL. + * + * \return 0 on success, or -1 if gamma ramps are unsupported. + * + * Set the gamma translation table for the red, green, and blue channels + * of the video hardware. Each table is an array of 256 16-bit quantities, + * representing a mapping between the input and output for that channel. + * The input is the index into the array, and the output is the 16-bit + * gamma value at that index, scaled to the output color precision. + * + * \sa SDL_GetWindowGammaRamp() + */ +extern DECLSPEC int SDLCALL SDL_SetWindowGammaRamp(SDL_Window * window, + const Uint16 * red, + const Uint16 * green, + const Uint16 * blue); + +/** + * \brief Get the gamma ramp for a window. + * + * \param window The window from which the gamma ramp should be queried. + * \param red A pointer to a 256 element array of 16-bit quantities to hold + * the translation table for the red channel, or NULL. + * \param green A pointer to a 256 element array of 16-bit quantities to hold + * the translation table for the green channel, or NULL. + * \param blue A pointer to a 256 element array of 16-bit quantities to hold + * the translation table for the blue channel, or NULL. + * + * \return 0 on success, or -1 if gamma ramps are unsupported. + * + * \sa SDL_SetWindowGammaRamp() + */ +extern DECLSPEC int SDLCALL SDL_GetWindowGammaRamp(SDL_Window * window, + Uint16 * red, + Uint16 * green, + Uint16 * blue); + +/** + * \brief Possible return values from the SDL_HitTest callback. + * + * \sa SDL_HitTest + */ +typedef enum +{ + SDL_HITTEST_NORMAL, /**< Region is normal. No special properties. */ + SDL_HITTEST_DRAGGABLE, /**< Region can drag entire window. */ + SDL_HITTEST_RESIZE_TOPLEFT, + SDL_HITTEST_RESIZE_TOP, + SDL_HITTEST_RESIZE_TOPRIGHT, + SDL_HITTEST_RESIZE_RIGHT, + SDL_HITTEST_RESIZE_BOTTOMRIGHT, + SDL_HITTEST_RESIZE_BOTTOM, + SDL_HITTEST_RESIZE_BOTTOMLEFT, + SDL_HITTEST_RESIZE_LEFT +} SDL_HitTestResult; + +/** + * \brief Callback used for hit-testing. + * + * \sa SDL_SetWindowHitTest + */ +typedef SDL_HitTestResult (SDLCALL *SDL_HitTest)(SDL_Window *win, + const SDL_Point *area, + void *data); + +/** + * \brief Provide a callback that decides if a window region has special properties. + * + * Normally windows are dragged and resized by decorations provided by the + * system window manager (a title bar, borders, etc), but for some apps, it + * makes sense to drag them from somewhere else inside the window itself; for + * example, one might have a borderless window that wants to be draggable + * from any part, or simulate its own title bar, etc. + * + * This function lets the app provide a callback that designates pieces of + * a given window as special. This callback is run during event processing + * if we need to tell the OS to treat a region of the window specially; the + * use of this callback is known as "hit testing." + * + * Mouse input may not be delivered to your application if it is within + * a special area; the OS will often apply that input to moving the window or + * resizing the window and not deliver it to the application. + * + * Specifying NULL for a callback disables hit-testing. Hit-testing is + * disabled by default. + * + * Platforms that don't support this functionality will return -1 + * unconditionally, even if you're attempting to disable hit-testing. + * + * Your callback may fire at any time, and its firing does not indicate any + * specific behavior (for example, on Windows, this certainly might fire + * when the OS is deciding whether to drag your window, but it fires for lots + * of other reasons, too, some unrelated to anything you probably care about + * _and when the mouse isn't actually at the location it is testing_). + * Since this can fire at any time, you should try to keep your callback + * efficient, devoid of allocations, etc. + * + * \param window The window to set hit-testing on. + * \param callback The callback to call when doing a hit-test. + * \param callback_data An app-defined void pointer passed to the callback. + * \return 0 on success, -1 on error (including unsupported). + */ +extern DECLSPEC int SDLCALL SDL_SetWindowHitTest(SDL_Window * window, + SDL_HitTest callback, + void *callback_data); + +/** + * \brief Destroy a window. + */ +extern DECLSPEC void SDLCALL SDL_DestroyWindow(SDL_Window * window); + + +/** + * \brief Returns whether the screensaver is currently enabled (default on). + * + * \sa SDL_EnableScreenSaver() + * \sa SDL_DisableScreenSaver() + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsScreenSaverEnabled(void); + +/** + * \brief Allow the screen to be blanked by a screensaver + * + * \sa SDL_IsScreenSaverEnabled() + * \sa SDL_DisableScreenSaver() + */ +extern DECLSPEC void SDLCALL SDL_EnableScreenSaver(void); + +/** + * \brief Prevent the screen from being blanked by a screensaver + * + * \sa SDL_IsScreenSaverEnabled() + * \sa SDL_EnableScreenSaver() + */ +extern DECLSPEC void SDLCALL SDL_DisableScreenSaver(void); + + +/** + * \name OpenGL support functions + */ +/* @{ */ + +/** + * \brief Dynamically load an OpenGL library. + * + * \param path The platform dependent OpenGL library name, or NULL to open the + * default OpenGL library. + * + * \return 0 on success, or -1 if the library couldn't be loaded. + * + * This should be done after initializing the video driver, but before + * creating any OpenGL windows. If no OpenGL library is loaded, the default + * library will be loaded upon creation of the first OpenGL window. + * + * \note If you do this, you need to retrieve all of the GL functions used in + * your program from the dynamic library using SDL_GL_GetProcAddress(). + * + * \sa SDL_GL_GetProcAddress() + * \sa SDL_GL_UnloadLibrary() + */ +extern DECLSPEC int SDLCALL SDL_GL_LoadLibrary(const char *path); + +/** + * \brief Get the address of an OpenGL function. + */ +extern DECLSPEC void *SDLCALL SDL_GL_GetProcAddress(const char *proc); + +/** + * \brief Unload the OpenGL library previously loaded by SDL_GL_LoadLibrary(). + * + * \sa SDL_GL_LoadLibrary() + */ +extern DECLSPEC void SDLCALL SDL_GL_UnloadLibrary(void); + +/** + * \brief Return true if an OpenGL extension is supported for the current + * context. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GL_ExtensionSupported(const char + *extension); + +/** + * \brief Reset all previously set OpenGL context attributes to their default values + */ +extern DECLSPEC void SDLCALL SDL_GL_ResetAttributes(void); + +/** + * \brief Set an OpenGL window attribute before window creation. + */ +extern DECLSPEC int SDLCALL SDL_GL_SetAttribute(SDL_GLattr attr, int value); + +/** + * \brief Get the actual value for an attribute from the current context. + */ +extern DECLSPEC int SDLCALL SDL_GL_GetAttribute(SDL_GLattr attr, int *value); + +/** + * \brief Create an OpenGL context for use with an OpenGL window, and make it + * current. + * + * \sa SDL_GL_DeleteContext() + */ +extern DECLSPEC SDL_GLContext SDLCALL SDL_GL_CreateContext(SDL_Window * + window); + +/** + * \brief Set up an OpenGL context for rendering into an OpenGL window. + * + * \note The context must have been created with a compatible window. + */ +extern DECLSPEC int SDLCALL SDL_GL_MakeCurrent(SDL_Window * window, + SDL_GLContext context); + +/** + * \brief Get the currently active OpenGL window. + */ +extern DECLSPEC SDL_Window* SDLCALL SDL_GL_GetCurrentWindow(void); + +/** + * \brief Get the currently active OpenGL context. + */ +extern DECLSPEC SDL_GLContext SDLCALL SDL_GL_GetCurrentContext(void); + +/** + * \brief Get the size of a window's underlying drawable in pixels (for use + * with glViewport). + * + * \param window Window from which the drawable size should be queried + * \param w Pointer to variable for storing the width in pixels, may be NULL + * \param h Pointer to variable for storing the height in pixels, may be NULL + * + * This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI + * drawable, i.e. the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a + * platform with high-DPI support (Apple calls this "Retina"), and not disabled + * by the SDL_HINT_VIDEO_HIGHDPI_DISABLED hint. + * + * \sa SDL_GetWindowSize() + * \sa SDL_CreateWindow() + */ +extern DECLSPEC void SDLCALL SDL_GL_GetDrawableSize(SDL_Window * window, int *w, + int *h); + +/** + * \brief Set the swap interval for the current OpenGL context. + * + * \param interval 0 for immediate updates, 1 for updates synchronized with the + * vertical retrace. If the system supports it, you may + * specify -1 to allow late swaps to happen immediately + * instead of waiting for the next retrace. + * + * \return 0 on success, or -1 if setting the swap interval is not supported. + * + * \sa SDL_GL_GetSwapInterval() + */ +extern DECLSPEC int SDLCALL SDL_GL_SetSwapInterval(int interval); + +/** + * \brief Get the swap interval for the current OpenGL context. + * + * \return 0 if there is no vertical retrace synchronization, 1 if the buffer + * swap is synchronized with the vertical retrace, and -1 if late + * swaps happen immediately instead of waiting for the next retrace. + * If the system can't determine the swap interval, or there isn't a + * valid current context, this will return 0 as a safe default. + * + * \sa SDL_GL_SetSwapInterval() + */ +extern DECLSPEC int SDLCALL SDL_GL_GetSwapInterval(void); + +/** + * \brief Swap the OpenGL buffers for a window, if double-buffering is + * supported. + */ +extern DECLSPEC void SDLCALL SDL_GL_SwapWindow(SDL_Window * window); + +/** + * \brief Delete an OpenGL context. + * + * \sa SDL_GL_CreateContext() + */ +extern DECLSPEC void SDLCALL SDL_GL_DeleteContext(SDL_GLContext context); + +/* @} *//* OpenGL support functions */ + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* _SDL_video_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/Template/Game/Source/External/SDL/include/begin_code.h b/Template/Game/Source/External/SDL/include/begin_code.h new file mode 100644 index 0000000..04e78c6 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/begin_code.h @@ -0,0 +1,146 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file begin_code.h + * + * This file sets things up for C dynamic library function definitions, + * static inlined functions, and structures aligned at 4-byte alignment. + * If you don't like ugly C preprocessor code, don't look at this file. :) + */ + +/* This shouldn't be nested -- included it around code only. */ +#ifdef _begin_code_h +#error Nested inclusion of begin_code.h +#endif +#define _begin_code_h + +#ifndef SDL_DEPRECATED +# if (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */ +# define SDL_DEPRECATED __attribute__((deprecated)) +# else +# define SDL_DEPRECATED +# endif +#endif + +#ifndef SDL_UNUSED +# ifdef __GNUC__ +# define SDL_UNUSED __attribute__((unused)) +# else +# define SDL_UNUSED +# endif +#endif + +/* Some compilers use a special export keyword */ +#ifndef DECLSPEC +# if defined(__WIN32__) || defined(__WINRT__) +# ifdef __BORLANDC__ +# ifdef BUILD_SDL +# define DECLSPEC +# else +# define DECLSPEC __declspec(dllimport) +# endif +# else +# define DECLSPEC __declspec(dllexport) +# endif +# else +# if defined(__GNUC__) && __GNUC__ >= 4 +# define DECLSPEC __attribute__ ((visibility("default"))) +# else +# define DECLSPEC +# endif +# endif +#endif + +/* By default SDL uses the C calling convention */ +#ifndef SDLCALL +#if (defined(__WIN32__) || defined(__WINRT__)) && !defined(__GNUC__) +#define SDLCALL __cdecl +#else +#define SDLCALL +#endif +#endif /* SDLCALL */ + +/* Removed DECLSPEC on Symbian OS because SDL cannot be a DLL in EPOC */ +#ifdef __SYMBIAN32__ +#undef DECLSPEC +#define DECLSPEC +#endif /* __SYMBIAN32__ */ + +/* Force structure packing at 4 byte alignment. + This is necessary if the header is included in code which has structure + packing set to an alternate value, say for loading structures from disk. + The packing is reset to the previous value in close_code.h + */ +#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__) +#ifdef _MSC_VER +#pragma warning(disable: 4103) +#endif +#ifdef __BORLANDC__ +#pragma nopackwarning +#endif +#ifdef _M_X64 +/* Use 8-byte alignment on 64-bit architectures, so pointers are aligned */ +#pragma pack(push,8) +#else +#pragma pack(push,4) +#endif +#endif /* Compiler needs structure packing set */ + +#ifndef SDL_INLINE +#if defined(__GNUC__) +#define SDL_INLINE __inline__ +#elif defined(_MSC_VER) || defined(__BORLANDC__) || \ + defined(__DMC__) || defined(__SC__) || \ + defined(__WATCOMC__) || defined(__LCC__) || \ + defined(__DECC) +#define SDL_INLINE __inline +#ifndef __inline__ +#define __inline__ __inline +#endif +#else +#define SDL_INLINE inline +#ifndef __inline__ +#define __inline__ inline +#endif +#endif +#endif /* SDL_INLINE not defined */ + +#ifndef SDL_FORCE_INLINE +#if defined(_MSC_VER) +#define SDL_FORCE_INLINE __forceinline +#elif ( (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) ) +#define SDL_FORCE_INLINE __attribute__((always_inline)) static __inline__ +#else +#define SDL_FORCE_INLINE static SDL_INLINE +#endif +#endif /* SDL_FORCE_INLINE not defined */ + +/* Apparently this is needed by several Windows compilers */ +#if !defined(__MACH__) +#ifndef NULL +#ifdef __cplusplus +#define NULL 0 +#else +#define NULL ((void *)0) +#endif +#endif /* NULL */ +#endif /* ! Mac OS X - breaks precompiled headers */ diff --git a/Template/Game/Source/External/SDL/include/close_code.h b/Template/Game/Source/External/SDL/include/close_code.h new file mode 100644 index 0000000..d908b00 --- /dev/null +++ b/Template/Game/Source/External/SDL/include/close_code.h @@ -0,0 +1,37 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/** + * \file close_code.h + * + * This file reverses the effects of begin_code.h and should be included + * after you finish any function and structure declarations in your headers + */ + +#undef _begin_code_h + +/* Reset structure packing at previous byte alignment */ +#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__WATCOMC__) || defined(__BORLANDC__) +#ifdef __BORLANDC__ +#pragma nopackwarning +#endif +#pragma pack(pop) +#endif /* Compiler needs structure packing set */ diff --git a/Template/Game/Source/External/SDL/libx86/SDL2.lib b/Template/Game/Source/External/SDL/libx86/SDL2.lib new file mode 100644 index 0000000000000000000000000000000000000000..d24f27202cd84142790b407413ce70ad1ae46c08 GIT binary patch literal 120400 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 literal 0 HcmV?d00001 diff --git a/Template/Game/Source/External/SDL/libx86/SDL2main.lib b/Template/Game/Source/External/SDL/libx86/SDL2main.lib new file mode 100644 index 0000000000000000000000000000000000000000..5993374cef6c4f11c239bc37bada917490e0cc2b GIT binary patch literal 37594 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 + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ diff --git a/Template/Game/Source/External/SDL_image/README.txt b/Template/Game/Source/External/SDL_image/README.txt new file mode 100644 index 0000000..4cb3b30 --- /dev/null +++ b/Template/Game/Source/External/SDL_image/README.txt @@ -0,0 +1,40 @@ + +SDL_image 2.0 + +The latest version of this library is available from: +http://www.libsdl.org/projects/SDL_image/ + +This is a simple library to load images of various formats as SDL surfaces. +This library supports BMP, PNM (PPM/PGM/PBM), XPM, LBM, PCX, GIF, JPEG, PNG, +TGA, and TIFF formats. + +API: +#include "SDL_image.h" + + SDL_Surface *IMG_Load(const char *file); +or + SDL_Surface *IMG_Load_RW(SDL_RWops *src, int freesrc); +or + SDL_Surface *IMG_LoadTyped_RW(SDL_RWops *src, int freesrc, char *type); + +where type is a string specifying the format (i.e. "PNG" or "pcx"). +Note that IMG_Load_RW cannot load TGA images. + +To create a surface from an XPM image included in C source, use: + + SDL_Surface *IMG_ReadXPMFromArray(char **xpm); + +An example program 'showimage' is included, with source in showimage.c + +JPEG support requires the JPEG library: http://www.ijg.org/ +PNG support requires the PNG library: http://www.libpng.org/pub/png/libpng.html + and the Zlib library: http://www.gzip.org/zlib/ +TIFF support requires the TIFF library: ftp://ftp.sgi.com/graphics/tiff/ + +If you have these libraries installed in non-standard places, you can +try adding those paths to the configure script, e.g. +sh ./configure CPPFLAGS="-I/somewhere/include" LDFLAGS="-L/somewhere/lib" +If this works, you may need to add /somewhere/lib to your LD_LIBRARY_PATH +so shared library loading works correctly. + +This library is under the zlib License, see the file "COPYING.txt" for details. diff --git a/Template/Game/Source/External/SDL_image/include/SDL_image.h b/Template/Game/Source/External/SDL_image/include/SDL_image.h new file mode 100644 index 0000000..1dff77d --- /dev/null +++ b/Template/Game/Source/External/SDL_image/include/SDL_image.h @@ -0,0 +1,145 @@ +/* + SDL_image: An example image loading library for use with SDL + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/* A simple library to load images of various formats as SDL surfaces */ + +#ifndef _SDL_IMAGE_H +#define _SDL_IMAGE_H + +#include "../../SDL/include/SDL.h" +#include "../../SDL/include/SDL_version.h" +#include "../../SDL/include/begin_code.h" + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL +*/ +#define SDL_IMAGE_MAJOR_VERSION 2 +#define SDL_IMAGE_MINOR_VERSION 0 +#define SDL_IMAGE_PATCHLEVEL 0 + +/* This macro can be used to fill a version structure with the compile-time + * version of the SDL_image library. + */ +#define SDL_IMAGE_VERSION(X) \ +{ \ + (X)->major = SDL_IMAGE_MAJOR_VERSION; \ + (X)->minor = SDL_IMAGE_MINOR_VERSION; \ + (X)->patch = SDL_IMAGE_PATCHLEVEL; \ +} + +/* This function gets the version of the dynamically linked SDL_image library. + it should NOT be used to fill a version structure, instead you should + use the SDL_IMAGE_VERSION() macro. + */ +extern DECLSPEC const SDL_version * SDLCALL IMG_Linked_Version(void); + +typedef enum +{ + IMG_INIT_JPG = 0x00000001, + IMG_INIT_PNG = 0x00000002, + IMG_INIT_TIF = 0x00000004, + IMG_INIT_WEBP = 0x00000008 +} IMG_InitFlags; + +/* Loads dynamic libraries and prepares them for use. Flags should be + one or more flags from IMG_InitFlags OR'd together. + It returns the flags successfully initialized, or 0 on failure. + */ +extern DECLSPEC int SDLCALL IMG_Init(int flags); + +/* Unloads libraries loaded with IMG_Init */ +extern DECLSPEC void SDLCALL IMG_Quit(void); + +/* Load an image from an SDL data source. + The 'type' may be one of: "BMP", "GIF", "PNG", etc. + + If the image format supports a transparent pixel, SDL will set the + colorkey for the surface. You can enable RLE acceleration on the + surface afterwards by calling: + SDL_SetColorKey(image, SDL_RLEACCEL, image->format->colorkey); + */ +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadTyped_RW(SDL_RWops *src, int freesrc, const char *type); +/* Convenience functions */ +extern DECLSPEC SDL_Surface * SDLCALL IMG_Load(const char *file); +extern DECLSPEC SDL_Surface * SDLCALL IMG_Load_RW(SDL_RWops *src, int freesrc); + +#if SDL_VERSION_ATLEAST(2,0,0) +/* Load an image directly into a render texture. + */ +extern DECLSPEC SDL_Texture * SDLCALL IMG_LoadTexture(SDL_Renderer *renderer, const char *file); +extern DECLSPEC SDL_Texture * SDLCALL IMG_LoadTexture_RW(SDL_Renderer *renderer, SDL_RWops *src, int freesrc); +extern DECLSPEC SDL_Texture * SDLCALL IMG_LoadTextureTyped_RW(SDL_Renderer *renderer, SDL_RWops *src, int freesrc, const char *type); +#endif /* SDL 2.0 */ + +/* Functions to detect a file type, given a seekable source */ +extern DECLSPEC int SDLCALL IMG_isICO(SDL_RWops *src); +extern DECLSPEC int SDLCALL IMG_isCUR(SDL_RWops *src); +extern DECLSPEC int SDLCALL IMG_isBMP(SDL_RWops *src); +extern DECLSPEC int SDLCALL IMG_isGIF(SDL_RWops *src); +extern DECLSPEC int SDLCALL IMG_isJPG(SDL_RWops *src); +extern DECLSPEC int SDLCALL IMG_isLBM(SDL_RWops *src); +extern DECLSPEC int SDLCALL IMG_isPCX(SDL_RWops *src); +extern DECLSPEC int SDLCALL IMG_isPNG(SDL_RWops *src); +extern DECLSPEC int SDLCALL IMG_isPNM(SDL_RWops *src); +extern DECLSPEC int SDLCALL IMG_isTIF(SDL_RWops *src); +extern DECLSPEC int SDLCALL IMG_isXCF(SDL_RWops *src); +extern DECLSPEC int SDLCALL IMG_isXPM(SDL_RWops *src); +extern DECLSPEC int SDLCALL IMG_isXV(SDL_RWops *src); +extern DECLSPEC int SDLCALL IMG_isWEBP(SDL_RWops *src); + +/* Individual loading functions */ +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadICO_RW(SDL_RWops *src); +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadCUR_RW(SDL_RWops *src); +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadBMP_RW(SDL_RWops *src); +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadGIF_RW(SDL_RWops *src); +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadJPG_RW(SDL_RWops *src); +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadLBM_RW(SDL_RWops *src); +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadPCX_RW(SDL_RWops *src); +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadPNG_RW(SDL_RWops *src); +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadPNM_RW(SDL_RWops *src); +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadTGA_RW(SDL_RWops *src); +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadTIF_RW(SDL_RWops *src); +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadXCF_RW(SDL_RWops *src); +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadXPM_RW(SDL_RWops *src); +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadXV_RW(SDL_RWops *src); +extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadWEBP_RW(SDL_RWops *src); + +extern DECLSPEC SDL_Surface * SDLCALL IMG_ReadXPMFromArray(char **xpm); + +/* Individual saving functions */ +extern DECLSPEC int SDLCALL IMG_SavePNG(SDL_Surface *surface, const char *file); +extern DECLSPEC int SDLCALL IMG_SavePNG_RW(SDL_Surface *surface, SDL_RWops *dst, int freedst); + +/* We'll use SDL for reporting errors */ +#define IMG_SetError SDL_SetError +#define IMG_GetError SDL_GetError + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "../../SDL/include/close_code.h" + +#endif /* _SDL_IMAGE_H */ diff --git a/Template/Game/Source/External/SDL_image/libx86/LICENSE.jpeg.txt b/Template/Game/Source/External/SDL_image/libx86/LICENSE.jpeg.txt new file mode 100644 index 0000000..17d7ff0 --- /dev/null +++ b/Template/Game/Source/External/SDL_image/libx86/LICENSE.jpeg.txt @@ -0,0 +1,65 @@ +The source code to this library used with SDL_image can be found here: +http://www.libsdl.org/projects/SDL_image/libs/ +--- + +LEGAL ISSUES +============ + +In plain English: + +1. We don't promise that this software works. (But if you find any bugs, + please let us know!) +2. You can use this software for whatever you want. You don't have to pay us. +3. You may not pretend that you wrote this software. If you use it in a + program, you must acknowledge somewhere in your documentation that + you've used the IJG code. + +In legalese: + +The authors make NO WARRANTY or representation, either express or implied, +with respect to this software, its quality, accuracy, merchantability, or +fitness for a particular purpose. This software is provided "AS IS", and you, +its user, assume the entire risk as to its quality and accuracy. + +This software is copyright (C) 1991-2012, Thomas G. Lane, Guido Vollbeding. +All Rights Reserved except as specified below. + +Permission is hereby granted to use, copy, modify, and distribute this +software (or portions thereof) for any purpose, without fee, subject to these +conditions: +(1) If any part of the source code for this software is distributed, then this +README file must be included, with this copyright and no-warranty notice +unaltered; and any additions, deletions, or changes to the original files +must be clearly indicated in accompanying documentation. +(2) If only executable code is distributed, then the accompanying +documentation must state that "this software is based in part on the work of +the Independent JPEG Group". +(3) Permission for use of this software is granted only if the user accepts +full responsibility for any undesirable consequences; the authors accept +NO LIABILITY for damages of any kind. + +These conditions apply to any software derived from or based on the IJG code, +not just to the unmodified library. If you use our work, you ought to +acknowledge us. + +Permission is NOT granted for the use of any IJG author's name or company name +in advertising or publicity relating to this software or products derived from +it. This software may be referred to only as "the Independent JPEG Group's +software". + +We specifically permit and encourage the use of this software as the basis of +commercial products, provided that all warranty or liability claims are +assumed by the product vendor. + + +The IJG distribution formerly included code to read and write GIF files. +To avoid entanglement with the Unisys LZW patent, GIF reading support has +been removed altogether, and the GIF writer has been simplified to produce +"uncompressed GIFs". This technique does not use the LZW algorithm; the +resulting GIF files are larger than usual, but are readable by all standard +GIF decoders. + +We are required to state that + "The Graphics Interchange Format(c) is the Copyright property of + CompuServe Incorporated. GIF(sm) is a Service Mark property of + CompuServe Incorporated." diff --git a/Template/Game/Source/External/SDL_image/libx86/LICENSE.png.txt b/Template/Game/Source/External/SDL_image/libx86/LICENSE.png.txt new file mode 100644 index 0000000..78d131c --- /dev/null +++ b/Template/Game/Source/External/SDL_image/libx86/LICENSE.png.txt @@ -0,0 +1,114 @@ +The source code to this library used with SDL_image can be found here: +http://www.libsdl.org/projects/SDL_image/libs/ +--- + +This copy of the libpng notices is provided for your convenience. In case of +any discrepancy between this copy and the notices in the file png.h that is +included in the libpng distribution, the latter shall prevail. + +COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: + +If you modify libpng you may insert additional notices immediately following +this sentence. + +This code is released under the libpng license. + +libpng versions 1.2.6, August 15, 2004, through 1.5.7, December 15, 2011, are +Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-1.2.5 +with the following individual added to the list of Contributing Authors + + Cosmin Truta + +libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are +Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-1.0.6 +with the following individuals added to the list of Contributing Authors + + Simon-Pierre Cadieux + Eric S. Raymond + Gilles Vollant + +and with the following additions to the disclaimer: + + There is no warranty against interference with your enjoyment of the + library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is with + the user. + +libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are +Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are +distributed according to the same disclaimer and license as libpng-0.96, +with the following individuals added to the list of Contributing Authors: + + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + +libpng versions 0.89, June 1996, through 0.96, May 1997, are +Copyright (c) 1996, 1997 Andreas Dilger +Distributed according to the same disclaimer and license as libpng-0.88, +with the following individuals added to the list of Contributing Authors: + + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + +libpng versions 0.5, May 1995, through 0.88, January 1996, are +Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. + +For the purposes of this copyright and license, "Contributing Authors" +is defined as the following set of individuals: + + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + +The PNG Reference Library is supplied "AS IS". The Contributing Authors +and Group 42, Inc. disclaim all warranties, expressed or implied, +including, without limitation, the warranties of merchantability and of +fitness for any purpose. The Contributing Authors and Group 42, Inc. +assume no liability for direct, indirect, incidental, special, exemplary, +or consequential damages, which may result from the use of the PNG +Reference Library, even if advised of the possibility of such damage. + +Permission is hereby granted to use, copy, modify, and distribute this +source code, or portions hereof, for any purpose, without fee, subject +to the following restrictions: + +1. The origin of this source code must not be misrepresented. + +2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. + +3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + +The Contributing Authors and Group 42, Inc. specifically permit, without +fee, and encourage the use of this source code as a component to +supporting the PNG file format in commercial products. If you use this +source code in a product, acknowledgment is not required but would be +appreciated. + + +A "png_get_copyright" function is available, for convenient use in "about" +boxes and the like: + + printf("%s",png_get_copyright(NULL)); + +Also, the PNG logo (in PNG format, of course) is supplied in the +files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). + +Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a +certification mark of the Open Source Initiative. + +Glenn Randers-Pehrson +glennrp at users.sourceforge.net +December 15, 2011 diff --git a/Template/Game/Source/External/SDL_image/libx86/LICENSE.tiff.txt b/Template/Game/Source/External/SDL_image/libx86/LICENSE.tiff.txt new file mode 100644 index 0000000..c6da912 --- /dev/null +++ b/Template/Game/Source/External/SDL_image/libx86/LICENSE.tiff.txt @@ -0,0 +1,25 @@ +The source code to this library used with SDL_image can be found here: +http://www.libsdl.org/projects/SDL_image/libs/ +--- + +Copyright (c) 1988-1997 Sam Leffler +Copyright (c) 1991-1997 Silicon Graphics, Inc. + +Permission to use, copy, modify, distribute, and sell this software and +its documentation for any purpose is hereby granted without fee, provided +that (i) the above copyright notices and this permission notice appear in +all copies of the software and related documentation, and (ii) the names of +Sam Leffler and Silicon Graphics may not be used in any advertising or +publicity relating to the software without the specific, prior written +permission of Sam Leffler and Silicon Graphics. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF THIS SOFTWARE. diff --git a/Template/Game/Source/External/SDL_image/libx86/LICENSE.webp.txt b/Template/Game/Source/External/SDL_image/libx86/LICENSE.webp.txt new file mode 100644 index 0000000..15993f8 --- /dev/null +++ b/Template/Game/Source/External/SDL_image/libx86/LICENSE.webp.txt @@ -0,0 +1,34 @@ +The source code to this library used with SDL_image can be found here: +http://www.libsdl.org/projects/SDL_image/libs/ +--- + +Copyright (c) 2010, Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Google nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/Template/Game/Source/External/SDL_image/libx86/LICENSE.zlib.txt b/Template/Game/Source/External/SDL_image/libx86/LICENSE.zlib.txt new file mode 100644 index 0000000..ae89d83 --- /dev/null +++ b/Template/Game/Source/External/SDL_image/libx86/LICENSE.zlib.txt @@ -0,0 +1,31 @@ +The source code to this library used with SDL_image can be found here: +http://www.libsdl.org/projects/SDL_image/libs/ +--- + +Copyright notice: + + (C) 1995-2010 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +If you use the zlib library in a product, we would appreciate *not* receiving +lengthy legal documents to sign. The sources are provided for free but without +warranty of any kind. The library has been entirely written by Jean-loup +Gailly and Mark Adler; it does not include third-party code. diff --git a/Template/Game/Source/External/SDL_image/libx86/SDL2_image.lib b/Template/Game/Source/External/SDL_image/libx86/SDL2_image.lib new file mode 100644 index 0000000000000000000000000000000000000000..17e73abbcb5cc37f454ddfed62950a5c9a30a909 GIT binary patch literal 9568 zcmcIpOH))w6h442h$8ZSGdxsGEJd7A%Can8N{GWa@{*M!5!5jP7K16=m_J~-Fn_^C z7M4}nxXQwnODl_%m6Z!CYnQGl%y;^6Z+A~KFyg&chdbx%bI*6XZ=Z9zo6d{#tGDl6 zsyH39uQO-Q_az46{e9ri z`gc+~!Nt;WNlF)dur$1q(zOm9(%3GgqYHeH_SaInKB67c_)N(r?vU=Jl%{38KcpM> zEG;jk^uPy8Ypax=r_dp-O4Cz?W~N4y z{h932{M|*$WKuK9WWEjk78*&D=^tlOS2LqS(?bOFu}m_%{LA7(W_EEkmt9$gqwLZ{ zCd+SOYV8_nmPMHQ?v$^4kwCPU)>?xZYAGv0?2|%`u%uL#C0?=;&uO4=d zYAd+&SZP#S!Li3mqw;OW#;@3KBLM9IipPUSrH7x=W3~qYXb(_49yBUFB!?$#4+790 zpm;oJRC-8{%-J3UpglnGc+jZwkaBvFW+3p8^7R5H!Y^A*&HuWn^)S9n)UYz&RhdYx zY%ZO0#zFw$d-%ozCc%4%h#MR7^mkgJ>?@m_cE7s-G!GP?2Zc%xH!cr50U#0WgEfzn z0G3|nMx6O40PO>c$Aw0fhqN zoHeboxjEZb4L03D?Lbd-+M2|7s?w2!{0c50(TbeL+WlIo~|ny7_3sEc~&81>Q*R6?Z@ zcrBA(FsycN)zsfN{L*e#HZv>7p_wOHck{EE1-aeKX{?(WO6W$uk$O0bSvMnG=tjH> zT~|Tf6;;&2LhLjIF(RH0>bthGLYYm>z!bU>W!4fIQeU3dGurmBMRn4% z+c9=mlip@e$_}H#ej=FlHmv8qgZj&luS7Vn;4ZfFBO_!A;v)}ooO)KRB4WblRNR;V zCW1M;R1BFGB9cr%#FGW&FRz@cEh5Z(M8=tkh-kBbywX2ga5ofgluj)?cyKzl-L5wg zY=>`EBumQZ+1j7it4jz~OI#(V78ZYgbhl?pszjssfi0eO4N}$csqDi1+I&yHZa|qP zY;Wm51(e}FNPTaV-8luLY7&)#Punp*NU=AixYwbo@>OYf>NwR@?FY;*`C_B;_3DZ2 z?bVgs%AK`X@8pSCay)fav^swdLgxqB0ika5FMfx;;+IW?H@UsC^boIHzWzIX`JyTL zDZcm}OG)>9kVw4sJ&lMyGFO>K;%oze0-HpLFy767)WzP3E-H<0r8I}XQS71Zes4c( z`V(i>sR_@TQZZ}(5^u=wN#0qrAezEI#;iH3QJyt_Xhq$5)Ka-M{q+?_^YC;4XBkQ|!3L z6KYsve0s;Rnk?a5hGjgi1IEhN_Dn^8!Ne9!9J?i&$yv$lma|arN&`+_Bkh(camGK6 z*d`&5sc|$`Us3YyG5OTGE=s<=CZAd{M#;C&MYrcMeK8qorRa$&%Z{-l$ z>h>!meVP?>>QFEE4tw~5EtpN@YBO zXDskFt4&6|gLS%St2-Fg0@bj_Bj*`!(Zp@~CgtJ{CKLTkcihs*QnijMMl@E>}6Esx`VoRh10BF}m3t~eQO`<@kI zY7LqA04YMIwvdTWbR%SH51IJLD?+A@kcrQuBV>w&OngWeAya3_#HW7|GIbeDI9801 zsoP|Vbo6>cCO!z=ZJ)Nty7+e;{?``d2yw#dP<_*UbS&iJvs;JCR(F?=jvGuk6t-PE S>JFF+)W=?fY1Z*f75@W + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ diff --git a/Template/Game/Source/External/SDL_mixer/README.txt b/Template/Game/Source/External/SDL_mixer/README.txt new file mode 100644 index 0000000..7bde4c1 --- /dev/null +++ b/Template/Game/Source/External/SDL_mixer/README.txt @@ -0,0 +1,43 @@ + +SDL_mixer 2.0 + +The latest version of this library is available from: +http://www.libsdl.org/projects/SDL_mixer/ + +Due to popular demand, here is a simple multi-channel audio mixer. +It supports 8 channels of 16 bit stereo audio, plus a single channel +of music, mixed by the popular MikMod MOD, Timidity MIDI and SMPEG MP3 +libraries. + +See the header file SDL_mixer.h and the examples playwave.c and playmus.c +for documentation on this mixer library. + +The mixer can currently load Microsoft WAVE files and Creative Labs VOC +files as audio samples, and can load MIDI files via Timidity and the +following music formats via MikMod: .MOD .S3M .IT .XM. It can load +Ogg Vorbis streams as music if built with Ogg Vorbis or Tremor libraries, +and finally it can load MP3 music using the SMPEG or libmad libraries. + +Tremor decoding is disabled by default; you can enable it by passing + --enable-music-ogg-tremor +to configure, or by defining OGG_MUSIC and OGG_USE_TREMOR. + +libmad decoding is disabled by default; you can enable it by passing + --enable-music-mp3-mad +to configure, or by defining MP3_MAD_MUSIC +vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +WARNING: The license for libmad is GPL, which means that in order to + use it your application must also be GPL! +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The process of mixing MIDI files to wave output is very CPU intensive, +so if playing regular WAVE files sound great, but playing MIDI files +sound choppy, try using 8-bit audio, mono audio, or lower frequencies. + +To play MIDI files, you'll need to get a complete set of GUS patches +from: +http://www.libsdl.org/projects/mixer/timidity/timidity.tar.gz +and unpack them in /usr/local/lib under UNIX, and C:\ under Win32. + +This library is under the zlib license, see the file "COPYING.txt" for details. + diff --git a/Template/Game/Source/External/SDL_mixer/include/SDL_mixer.h b/Template/Game/Source/External/SDL_mixer/include/SDL_mixer.h new file mode 100644 index 0000000..f516916 --- /dev/null +++ b/Template/Game/Source/External/SDL_mixer/include/SDL_mixer.h @@ -0,0 +1,631 @@ +/* + SDL_mixer: An audio mixer library based on the SDL library + Copyright (C) 1997-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/* $Id$ */ + +#ifndef _SDL_MIXER_H +#define _SDL_MIXER_H + +#include "SDL/include/SDL_stdinc.h" +#include "SDL/include/SDL_rwops.h" +#include "SDL/include/SDL_audio.h" +#include "SDL/include/SDL_endian.h" +#include "SDL/include/SDL_version.h" +#include "SDL/include/begin_code.h" + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL +*/ +#define SDL_MIXER_MAJOR_VERSION 2 +#define SDL_MIXER_MINOR_VERSION 0 +#define SDL_MIXER_PATCHLEVEL 0 + +/* This macro can be used to fill a version structure with the compile-time + * version of the SDL_mixer library. + */ +#define SDL_MIXER_VERSION(X) \ +{ \ + (X)->major = SDL_MIXER_MAJOR_VERSION; \ + (X)->minor = SDL_MIXER_MINOR_VERSION; \ + (X)->patch = SDL_MIXER_PATCHLEVEL; \ +} + +/* Backwards compatibility */ +#define MIX_MAJOR_VERSION SDL_MIXER_MAJOR_VERSION +#define MIX_MINOR_VERSION SDL_MIXER_MINOR_VERSION +#define MIX_PATCHLEVEL SDL_MIXER_PATCHLEVEL +#define MIX_VERSION(X) SDL_MIXER_VERSION(X) + +/* This function gets the version of the dynamically linked SDL_mixer library. + it should NOT be used to fill a version structure, instead you should + use the SDL_MIXER_VERSION() macro. + */ +extern DECLSPEC const SDL_version * SDLCALL Mix_Linked_Version(void); + +typedef enum +{ + MIX_INIT_FLAC = 0x00000001, + MIX_INIT_MOD = 0x00000002, + MIX_INIT_MODPLUG = 0x00000004, + MIX_INIT_MP3 = 0x00000008, + MIX_INIT_OGG = 0x00000010, + MIX_INIT_FLUIDSYNTH = 0x00000020 +} MIX_InitFlags; + +/* Loads dynamic libraries and prepares them for use. Flags should be + one or more flags from MIX_InitFlags OR'd together. + It returns the flags successfully initialized, or 0 on failure. + */ +extern DECLSPEC int SDLCALL Mix_Init(int flags); + +/* Unloads libraries loaded with Mix_Init */ +extern DECLSPEC void SDLCALL Mix_Quit(void); + + +/* The default mixer has 8 simultaneous mixing channels */ +#ifndef MIX_CHANNELS +#define MIX_CHANNELS 8 +#endif + +/* Good default values for a PC soundcard */ +#define MIX_DEFAULT_FREQUENCY 22050 +#if SDL_BYTEORDER == SDL_LIL_ENDIAN +#define MIX_DEFAULT_FORMAT AUDIO_S16LSB +#else +#define MIX_DEFAULT_FORMAT AUDIO_S16MSB +#endif +#define MIX_DEFAULT_CHANNELS 2 +#define MIX_MAX_VOLUME 128 /* Volume of a chunk */ + +/* The internal format for an audio chunk */ +typedef struct Mix_Chunk { + int allocated; + Uint8 *abuf; + Uint32 alen; + Uint8 volume; /* Per-sample volume, 0-128 */ +} Mix_Chunk; + +/* The different fading types supported */ +typedef enum { + MIX_NO_FADING, + MIX_FADING_OUT, + MIX_FADING_IN +} Mix_Fading; + +typedef enum { + MUS_NONE, + MUS_CMD, + MUS_WAV, + MUS_MOD, + MUS_MID, + MUS_OGG, + MUS_MP3, + MUS_MP3_MAD, + MUS_FLAC, + MUS_MODPLUG +} Mix_MusicType; + +/* The internal format for a music chunk interpreted via mikmod */ +typedef struct _Mix_Music Mix_Music; + +/* Open the mixer with a certain audio format */ +extern DECLSPEC int SDLCALL Mix_OpenAudio(int frequency, Uint16 format, int channels, int chunksize); + +/* Dynamically change the number of channels managed by the mixer. + If decreasing the number of channels, the upper channels are + stopped. + This function returns the new number of allocated channels. + */ +extern DECLSPEC int SDLCALL Mix_AllocateChannels(int numchans); + +/* Find out what the actual audio device parameters are. + This function returns 1 if the audio has been opened, 0 otherwise. + */ +extern DECLSPEC int SDLCALL Mix_QuerySpec(int *frequency,Uint16 *format,int *channels); + +/* Load a wave file or a music (.mod .s3m .it .xm) file */ +extern DECLSPEC Mix_Chunk * SDLCALL Mix_LoadWAV_RW(SDL_RWops *src, int freesrc); +#define Mix_LoadWAV(file) Mix_LoadWAV_RW(SDL_RWFromFile(file, "rb"), 1) +extern DECLSPEC Mix_Music * SDLCALL Mix_LoadMUS(const char *file); + +/* Load a music file from an SDL_RWop object (Ogg and MikMod specific currently) + Matt Campbell (matt@campbellhome.dhs.org) April 2000 */ +extern DECLSPEC Mix_Music * SDLCALL Mix_LoadMUS_RW(SDL_RWops *src, int freesrc); + +/* Load a music file from an SDL_RWop object assuming a specific format */ +extern DECLSPEC Mix_Music * SDLCALL Mix_LoadMUSType_RW(SDL_RWops *src, Mix_MusicType type, int freesrc); + +/* Load a wave file of the mixer format from a memory buffer */ +extern DECLSPEC Mix_Chunk * SDLCALL Mix_QuickLoad_WAV(Uint8 *mem); + +/* Load raw audio data of the mixer format from a memory buffer */ +extern DECLSPEC Mix_Chunk * SDLCALL Mix_QuickLoad_RAW(Uint8 *mem, Uint32 len); + +/* Free an audio chunk previously loaded */ +extern DECLSPEC void SDLCALL Mix_FreeChunk(Mix_Chunk *chunk); +extern DECLSPEC void SDLCALL Mix_FreeMusic(Mix_Music *music); + +/* Get a list of chunk/music decoders that this build of SDL_mixer provides. + This list can change between builds AND runs of the program, if external + libraries that add functionality become available. + You must successfully call Mix_OpenAudio() before calling these functions. + This API is only available in SDL_mixer 1.2.9 and later. + + // usage... + int i; + const int total = Mix_GetNumChunkDecoders(); + for (i = 0; i < total; i++) + printf("Supported chunk decoder: [%s]\n", Mix_GetChunkDecoder(i)); + + Appearing in this list doesn't promise your specific audio file will + decode...but it's handy to know if you have, say, a functioning Timidity + install. + + These return values are static, read-only data; do not modify or free it. + The pointers remain valid until you call Mix_CloseAudio(). +*/ +extern DECLSPEC int SDLCALL Mix_GetNumChunkDecoders(void); +extern DECLSPEC const char * SDLCALL Mix_GetChunkDecoder(int index); +extern DECLSPEC int SDLCALL Mix_GetNumMusicDecoders(void); +extern DECLSPEC const char * SDLCALL Mix_GetMusicDecoder(int index); + +/* Find out the music format of a mixer music, or the currently playing + music, if 'music' is NULL. +*/ +extern DECLSPEC Mix_MusicType SDLCALL Mix_GetMusicType(const Mix_Music *music); + +/* Set a function that is called after all mixing is performed. + This can be used to provide real-time visual display of the audio stream + or add a custom mixer filter for the stream data. +*/ +extern DECLSPEC void SDLCALL Mix_SetPostMix(void (*mix_func)(void *udata, Uint8 *stream, int len), void *arg); + +/* Add your own music player or additional mixer function. + If 'mix_func' is NULL, the default music player is re-enabled. + */ +extern DECLSPEC void SDLCALL Mix_HookMusic(void (*mix_func)(void *udata, Uint8 *stream, int len), void *arg); + +/* Add your own callback when the music has finished playing. + This callback is only called if the music finishes naturally. + */ +extern DECLSPEC void SDLCALL Mix_HookMusicFinished(void (*music_finished)(void)); + +/* Get a pointer to the user data for the current music hook */ +extern DECLSPEC void * SDLCALL Mix_GetMusicHookData(void); + +/* + * Add your own callback when a channel has finished playing. NULL + * to disable callback. The callback may be called from the mixer's audio + * callback or it could be called as a result of Mix_HaltChannel(), etc. + * do not call SDL_LockAudio() from this callback; you will either be + * inside the audio callback, or SDL_mixer will explicitly lock the audio + * before calling your callback. + */ +extern DECLSPEC void SDLCALL Mix_ChannelFinished(void (*channel_finished)(int channel)); + + +/* Special Effects API by ryan c. gordon. (icculus@icculus.org) */ + +#define MIX_CHANNEL_POST -2 + +/* This is the format of a special effect callback: + * + * myeffect(int chan, void *stream, int len, void *udata); + * + * (chan) is the channel number that your effect is affecting. (stream) is + * the buffer of data to work upon. (len) is the size of (stream), and + * (udata) is a user-defined bit of data, which you pass as the last arg of + * Mix_RegisterEffect(), and is passed back unmolested to your callback. + * Your effect changes the contents of (stream) based on whatever parameters + * are significant, or just leaves it be, if you prefer. You can do whatever + * you like to the buffer, though, and it will continue in its changed state + * down the mixing pipeline, through any other effect functions, then finally + * to be mixed with the rest of the channels and music for the final output + * stream. + * + * DO NOT EVER call SDL_LockAudio() from your callback function! + */ +typedef void (*Mix_EffectFunc_t)(int chan, void *stream, int len, void *udata); + +/* + * This is a callback that signifies that a channel has finished all its + * loops and has completed playback. This gets called if the buffer + * plays out normally, or if you call Mix_HaltChannel(), implicitly stop + * a channel via Mix_AllocateChannels(), or unregister a callback while + * it's still playing. + * + * DO NOT EVER call SDL_LockAudio() from your callback function! + */ +typedef void (*Mix_EffectDone_t)(int chan, void *udata); + + +/* Register a special effect function. At mixing time, the channel data is + * copied into a buffer and passed through each registered effect function. + * After it passes through all the functions, it is mixed into the final + * output stream. The copy to buffer is performed once, then each effect + * function performs on the output of the previous effect. Understand that + * this extra copy to a buffer is not performed if there are no effects + * registered for a given chunk, which saves CPU cycles, and any given + * effect will be extra cycles, too, so it is crucial that your code run + * fast. Also note that the data that your function is given is in the + * format of the sound device, and not the format you gave to Mix_OpenAudio(), + * although they may in reality be the same. This is an unfortunate but + * necessary speed concern. Use Mix_QuerySpec() to determine if you can + * handle the data before you register your effect, and take appropriate + * actions. + * You may also specify a callback (Mix_EffectDone_t) that is called when + * the channel finishes playing. This gives you a more fine-grained control + * than Mix_ChannelFinished(), in case you need to free effect-specific + * resources, etc. If you don't need this, you can specify NULL. + * You may set the callbacks before or after calling Mix_PlayChannel(). + * Things like Mix_SetPanning() are just internal special effect functions, + * so if you are using that, you've already incurred the overhead of a copy + * to a separate buffer, and that these effects will be in the queue with + * any functions you've registered. The list of registered effects for a + * channel is reset when a chunk finishes playing, so you need to explicitly + * set them with each call to Mix_PlayChannel*(). + * You may also register a special effect function that is to be run after + * final mixing occurs. The rules for these callbacks are identical to those + * in Mix_RegisterEffect, but they are run after all the channels and the + * music have been mixed into a single stream, whereas channel-specific + * effects run on a given channel before any other mixing occurs. These + * global effect callbacks are call "posteffects". Posteffects only have + * their Mix_EffectDone_t function called when they are unregistered (since + * the main output stream is never "done" in the same sense as a channel). + * You must unregister them manually when you've had enough. Your callback + * will be told that the channel being mixed is (MIX_CHANNEL_POST) if the + * processing is considered a posteffect. + * + * After all these effects have finished processing, the callback registered + * through Mix_SetPostMix() runs, and then the stream goes to the audio + * device. + * + * DO NOT EVER call SDL_LockAudio() from your callback function! + * + * returns zero if error (no such channel), nonzero if added. + * Error messages can be retrieved from Mix_GetError(). + */ +extern DECLSPEC int SDLCALL Mix_RegisterEffect(int chan, Mix_EffectFunc_t f, Mix_EffectDone_t d, void *arg); + + +/* You may not need to call this explicitly, unless you need to stop an + * effect from processing in the middle of a chunk's playback. + * Posteffects are never implicitly unregistered as they are for channels, + * but they may be explicitly unregistered through this function by + * specifying MIX_CHANNEL_POST for a channel. + * returns zero if error (no such channel or effect), nonzero if removed. + * Error messages can be retrieved from Mix_GetError(). + */ +extern DECLSPEC int SDLCALL Mix_UnregisterEffect(int channel, Mix_EffectFunc_t f); + + +/* You may not need to call this explicitly, unless you need to stop all + * effects from processing in the middle of a chunk's playback. Note that + * this will also shut off some internal effect processing, since + * Mix_SetPanning() and others may use this API under the hood. This is + * called internally when a channel completes playback. + * Posteffects are never implicitly unregistered as they are for channels, + * but they may be explicitly unregistered through this function by + * specifying MIX_CHANNEL_POST for a channel. + * returns zero if error (no such channel), nonzero if all effects removed. + * Error messages can be retrieved from Mix_GetError(). + */ +extern DECLSPEC int SDLCALL Mix_UnregisterAllEffects(int channel); + + +#define MIX_EFFECTSMAXSPEED "MIX_EFFECTSMAXSPEED" + +/* + * These are the internally-defined mixing effects. They use the same API that + * effects defined in the application use, but are provided here as a + * convenience. Some effects can reduce their quality or use more memory in + * the name of speed; to enable this, make sure the environment variable + * MIX_EFFECTSMAXSPEED (see above) is defined before you call + * Mix_OpenAudio(). + */ + + +/* Set the panning of a channel. The left and right channels are specified + * as integers between 0 and 255, quietest to loudest, respectively. + * + * Technically, this is just individual volume control for a sample with + * two (stereo) channels, so it can be used for more than just panning. + * If you want real panning, call it like this: + * + * Mix_SetPanning(channel, left, 255 - left); + * + * ...which isn't so hard. + * + * Setting (channel) to MIX_CHANNEL_POST registers this as a posteffect, and + * the panning will be done to the final mixed stream before passing it on + * to the audio device. + * + * This uses the Mix_RegisterEffect() API internally, and returns without + * registering the effect function if the audio device is not configured + * for stereo output. Setting both (left) and (right) to 255 causes this + * effect to be unregistered, since that is the data's normal state. + * + * returns zero if error (no such channel or Mix_RegisterEffect() fails), + * nonzero if panning effect enabled. Note that an audio device in mono + * mode is a no-op, but this call will return successful in that case. + * Error messages can be retrieved from Mix_GetError(). + */ +extern DECLSPEC int SDLCALL Mix_SetPanning(int channel, Uint8 left, Uint8 right); + + +/* Set the position of a channel. (angle) is an integer from 0 to 360, that + * specifies the location of the sound in relation to the listener. (angle) + * will be reduced as neccesary (540 becomes 180 degrees, -100 becomes 260). + * Angle 0 is due north, and rotates clockwise as the value increases. + * For efficiency, the precision of this effect may be limited (angles 1 + * through 7 might all produce the same effect, 8 through 15 are equal, etc). + * (distance) is an integer between 0 and 255 that specifies the space + * between the sound and the listener. The larger the number, the further + * away the sound is. Using 255 does not guarantee that the channel will be + * culled from the mixing process or be completely silent. For efficiency, + * the precision of this effect may be limited (distance 0 through 5 might + * all produce the same effect, 6 through 10 are equal, etc). Setting (angle) + * and (distance) to 0 unregisters this effect, since the data would be + * unchanged. + * + * If you need more precise positional audio, consider using OpenAL for + * spatialized effects instead of SDL_mixer. This is only meant to be a + * basic effect for simple "3D" games. + * + * If the audio device is configured for mono output, then you won't get + * any effectiveness from the angle; however, distance attenuation on the + * channel will still occur. While this effect will function with stereo + * voices, it makes more sense to use voices with only one channel of sound, + * so when they are mixed through this effect, the positioning will sound + * correct. You can convert them to mono through SDL before giving them to + * the mixer in the first place if you like. + * + * Setting (channel) to MIX_CHANNEL_POST registers this as a posteffect, and + * the positioning will be done to the final mixed stream before passing it + * on to the audio device. + * + * This is a convenience wrapper over Mix_SetDistance() and Mix_SetPanning(). + * + * returns zero if error (no such channel or Mix_RegisterEffect() fails), + * nonzero if position effect is enabled. + * Error messages can be retrieved from Mix_GetError(). + */ +extern DECLSPEC int SDLCALL Mix_SetPosition(int channel, Sint16 angle, Uint8 distance); + + +/* Set the "distance" of a channel. (distance) is an integer from 0 to 255 + * that specifies the location of the sound in relation to the listener. + * Distance 0 is overlapping the listener, and 255 is as far away as possible + * A distance of 255 does not guarantee silence; in such a case, you might + * want to try changing the chunk's volume, or just cull the sample from the + * mixing process with Mix_HaltChannel(). + * For efficiency, the precision of this effect may be limited (distances 1 + * through 7 might all produce the same effect, 8 through 15 are equal, etc). + * (distance) is an integer between 0 and 255 that specifies the space + * between the sound and the listener. The larger the number, the further + * away the sound is. + * Setting (distance) to 0 unregisters this effect, since the data would be + * unchanged. + * If you need more precise positional audio, consider using OpenAL for + * spatialized effects instead of SDL_mixer. This is only meant to be a + * basic effect for simple "3D" games. + * + * Setting (channel) to MIX_CHANNEL_POST registers this as a posteffect, and + * the distance attenuation will be done to the final mixed stream before + * passing it on to the audio device. + * + * This uses the Mix_RegisterEffect() API internally. + * + * returns zero if error (no such channel or Mix_RegisterEffect() fails), + * nonzero if position effect is enabled. + * Error messages can be retrieved from Mix_GetError(). + */ +extern DECLSPEC int SDLCALL Mix_SetDistance(int channel, Uint8 distance); + + +/* + * !!! FIXME : Haven't implemented, since the effect goes past the + * end of the sound buffer. Will have to think about this. + * --ryan. + */ +#if 0 +/* Causes an echo effect to be mixed into a sound. (echo) is the amount + * of echo to mix. 0 is no echo, 255 is infinite (and probably not + * what you want). + * + * Setting (channel) to MIX_CHANNEL_POST registers this as a posteffect, and + * the reverbing will be done to the final mixed stream before passing it on + * to the audio device. + * + * This uses the Mix_RegisterEffect() API internally. If you specify an echo + * of zero, the effect is unregistered, as the data is already in that state. + * + * returns zero if error (no such channel or Mix_RegisterEffect() fails), + * nonzero if reversing effect is enabled. + * Error messages can be retrieved from Mix_GetError(). + */ +extern no_parse_DECLSPEC int SDLCALL Mix_SetReverb(int channel, Uint8 echo); +#endif + +/* Causes a channel to reverse its stereo. This is handy if the user has his + * speakers hooked up backwards, or you would like to have a minor bit of + * psychedelia in your sound code. :) Calling this function with (flip) + * set to non-zero reverses the chunks's usual channels. If (flip) is zero, + * the effect is unregistered. + * + * This uses the Mix_RegisterEffect() API internally, and thus is probably + * more CPU intensive than having the user just plug in his speakers + * correctly. Mix_SetReverseStereo() returns without registering the effect + * function if the audio device is not configured for stereo output. + * + * If you specify MIX_CHANNEL_POST for (channel), then this the effect is used + * on the final mixed stream before sending it on to the audio device (a + * posteffect). + * + * returns zero if error (no such channel or Mix_RegisterEffect() fails), + * nonzero if reversing effect is enabled. Note that an audio device in mono + * mode is a no-op, but this call will return successful in that case. + * Error messages can be retrieved from Mix_GetError(). + */ +extern DECLSPEC int SDLCALL Mix_SetReverseStereo(int channel, int flip); + +/* end of effects API. --ryan. */ + + +/* Reserve the first channels (0 -> n-1) for the application, i.e. don't allocate + them dynamically to the next sample if requested with a -1 value below. + Returns the number of reserved channels. + */ +extern DECLSPEC int SDLCALL Mix_ReserveChannels(int num); + +/* Channel grouping functions */ + +/* Attach a tag to a channel. A tag can be assigned to several mixer + channels, to form groups of channels. + If 'tag' is -1, the tag is removed (actually -1 is the tag used to + represent the group of all the channels). + Returns true if everything was OK. + */ +extern DECLSPEC int SDLCALL Mix_GroupChannel(int which, int tag); +/* Assign several consecutive channels to a group */ +extern DECLSPEC int SDLCALL Mix_GroupChannels(int from, int to, int tag); +/* Finds the first available channel in a group of channels, + returning -1 if none are available. + */ +extern DECLSPEC int SDLCALL Mix_GroupAvailable(int tag); +/* Returns the number of channels in a group. This is also a subtle + way to get the total number of channels when 'tag' is -1 + */ +extern DECLSPEC int SDLCALL Mix_GroupCount(int tag); +/* Finds the "oldest" sample playing in a group of channels */ +extern DECLSPEC int SDLCALL Mix_GroupOldest(int tag); +/* Finds the "most recent" (i.e. last) sample playing in a group of channels */ +extern DECLSPEC int SDLCALL Mix_GroupNewer(int tag); + +/* Play an audio chunk on a specific channel. + If the specified channel is -1, play on the first free channel. + If 'loops' is greater than zero, loop the sound that many times. + If 'loops' is -1, loop inifinitely (~65000 times). + Returns which channel was used to play the sound. +*/ +#define Mix_PlayChannel(channel,chunk,loops) Mix_PlayChannelTimed(channel,chunk,loops,-1) +/* The same as above, but the sound is played at most 'ticks' milliseconds */ +extern DECLSPEC int SDLCALL Mix_PlayChannelTimed(int channel, Mix_Chunk *chunk, int loops, int ticks); +extern DECLSPEC int SDLCALL Mix_PlayMusic(Mix_Music *music, int loops); + +/* Fade in music or a channel over "ms" milliseconds, same semantics as the "Play" functions */ +extern DECLSPEC int SDLCALL Mix_FadeInMusic(Mix_Music *music, int loops, int ms); +extern DECLSPEC int SDLCALL Mix_FadeInMusicPos(Mix_Music *music, int loops, int ms, double position); +#define Mix_FadeInChannel(channel,chunk,loops,ms) Mix_FadeInChannelTimed(channel,chunk,loops,ms,-1) +extern DECLSPEC int SDLCALL Mix_FadeInChannelTimed(int channel, Mix_Chunk *chunk, int loops, int ms, int ticks); + +/* Set the volume in the range of 0-128 of a specific channel or chunk. + If the specified channel is -1, set volume for all channels. + Returns the original volume. + If the specified volume is -1, just return the current volume. +*/ +extern DECLSPEC int SDLCALL Mix_Volume(int channel, int volume); +extern DECLSPEC int SDLCALL Mix_VolumeChunk(Mix_Chunk *chunk, int volume); +extern DECLSPEC int SDLCALL Mix_VolumeMusic(int volume); + +/* Halt playing of a particular channel */ +extern DECLSPEC int SDLCALL Mix_HaltChannel(int channel); +extern DECLSPEC int SDLCALL Mix_HaltGroup(int tag); +extern DECLSPEC int SDLCALL Mix_HaltMusic(void); + +/* Change the expiration delay for a particular channel. + The sample will stop playing after the 'ticks' milliseconds have elapsed, + or remove the expiration if 'ticks' is -1 +*/ +extern DECLSPEC int SDLCALL Mix_ExpireChannel(int channel, int ticks); + +/* Halt a channel, fading it out progressively till it's silent + The ms parameter indicates the number of milliseconds the fading + will take. + */ +extern DECLSPEC int SDLCALL Mix_FadeOutChannel(int which, int ms); +extern DECLSPEC int SDLCALL Mix_FadeOutGroup(int tag, int ms); +extern DECLSPEC int SDLCALL Mix_FadeOutMusic(int ms); + +/* Query the fading status of a channel */ +extern DECLSPEC Mix_Fading SDLCALL Mix_FadingMusic(void); +extern DECLSPEC Mix_Fading SDLCALL Mix_FadingChannel(int which); + +/* Pause/Resume a particular channel */ +extern DECLSPEC void SDLCALL Mix_Pause(int channel); +extern DECLSPEC void SDLCALL Mix_Resume(int channel); +extern DECLSPEC int SDLCALL Mix_Paused(int channel); + +/* Pause/Resume the music stream */ +extern DECLSPEC void SDLCALL Mix_PauseMusic(void); +extern DECLSPEC void SDLCALL Mix_ResumeMusic(void); +extern DECLSPEC void SDLCALL Mix_RewindMusic(void); +extern DECLSPEC int SDLCALL Mix_PausedMusic(void); + +/* Set the current position in the music stream. + This returns 0 if successful, or -1 if it failed or isn't implemented. + This function is only implemented for MOD music formats (set pattern + order number) and for OGG, FLAC, MP3_MAD, and MODPLUG music (set + position in seconds), at the moment. +*/ +extern DECLSPEC int SDLCALL Mix_SetMusicPosition(double position); + +/* Check the status of a specific channel. + If the specified channel is -1, check all channels. +*/ +extern DECLSPEC int SDLCALL Mix_Playing(int channel); +extern DECLSPEC int SDLCALL Mix_PlayingMusic(void); + +/* Stop music and set external music playback command */ +extern DECLSPEC int SDLCALL Mix_SetMusicCMD(const char *command); + +/* Synchro value is set by MikMod from modules while playing */ +extern DECLSPEC int SDLCALL Mix_SetSynchroValue(int value); +extern DECLSPEC int SDLCALL Mix_GetSynchroValue(void); + +/* Set/Get/Iterate SoundFonts paths to use by supported MIDI backends */ +extern DECLSPEC int SDLCALL Mix_SetSoundFonts(const char *paths); +extern DECLSPEC const char* SDLCALL Mix_GetSoundFonts(void); +extern DECLSPEC int SDLCALL Mix_EachSoundFont(int (*function)(const char*, void*), void *data); + +/* Get the Mix_Chunk currently associated with a mixer channel + Returns NULL if it's an invalid channel, or there's no chunk associated. +*/ +extern DECLSPEC Mix_Chunk * SDLCALL Mix_GetChunk(int channel); + +/* Close the mixer, halting all playing audio */ +extern DECLSPEC void SDLCALL Mix_CloseAudio(void); + +/* We'll use SDL for reporting errors */ +#define Mix_SetError SDL_SetError +#define Mix_GetError SDL_GetError + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "SDL/include/close_code.h" + +#endif /* _SDL_MIXER_H */ diff --git a/Template/Game/Source/External/SDL_mixer/libx86/SDL2_mixer.lib b/Template/Game/Source/External/SDL_mixer/libx86/SDL2_mixer.lib new file mode 100644 index 0000000000000000000000000000000000000000..ff0d5bd77e4008ab8b11612eaf5623a4de87ccbb GIT binary patch literal 17084 zcmd5@OKhA)60RgX5)(p5NC=RJlQ{3h@3Ec4N&Lza=Yj2n93m!z=MNq-nX$$*kVuH- zuqTALEL=EnL>xG<5(f^eh+_^MRw#!R;=myX!~tp8$4l z1{i){(#Z(`q7x4#o$3G}I&?$QfsX))daH`CtX`y}KT8_=7=WmMNYc>~@{xxAl(c^g zfav5ml6v+65FNzwh;}`abnHF=QO7Y!qw@fQu)d>6dsi!Z58p`pZb};b8i44)c1anu zjp%r9AQI}} z3-&KkAEt@+W7`t#!TJiqv9Skf5c_m+ESo)l@yg|?ne4>r>G7%aS7t6xWv3@5d$V^6 zcasWavzM+;PWn3VH=`s~X3kx`^lElubY>K?7Ylc@(@Axruu#pFW)m!>aA!X2vz6YJ z@1t9*%8srhqa0_G>ZRJ9@wr;*_CzvU z&SPFXQ&6n(*_oU?Ttxblh0^ULpS_0VJEpo4(mr1*RP7>Vnk28)xJ0I_Zmw$cqT6XGnTWQkbDva6N#LS|ut%zW@fa^|;vO5hPOua%3nJ8bG`j*)t8DOD7k^v>k+ z$>myA)zF4?C6@NtO1U;4&{ce;i8C==tSunjE5+PBXWFJLl4DqO>sps zNQMpVw3FtfIax=FtjH0_WN5$$VQ9*CHCaE~swhZxN8ia6in%w7tlC1^lBC+>^QC%uLQ=|gE>{dq3dYuYqV??QKw64P zI^)IiLNZ#*7g)5hxukV@J}G%h7L#TcEtYuFg`(oufXQ{#N4iEb~XXxOADJd&qob4g2jHBXJPrQW-RQa+$(u~SrE zPr65yUFb>g?G>n8xTUH4W&GlV-O7wjB_d<`UTJo&Qofce)>vnIBGShJSx?^+>GIKY z=FgN%RW^mFbW5PiwpeB$QOTBobWi7I=Te?+p(7w&HTG?-lx4}o^FnY*ibYIp3*wJ!Hddeka?P?qqSR0$*$c_-O~g=A8iV4+Bh`1bBD? z_hY93ZX5#m=m0_Rud_1yqpQaupwA=Z;Nf}da=X8Hhr#ouqB4U@R9`WAJ6L+l?A z`vb)K95L6Soj0(&tyurx@b_9Q|Ndcs&(P*cd_Tale?fa6U|CX_COlLy5rU# zdSDZD!5MfF4#TT(0bYhz;23O$EF$J+Kel^D zm8!o~QG(R1q65<`79s?bR_nplv)q5Ftk#-dmnK-~&2g!l7Gy1lMT^_3XbSmk`A-b1 zUz{aDy8e;Hr%67_%oaYh;SWWJbmc^qRtjlsptRn}liXQKia0Lo=!^A=%`gi~#l7MjG5HGm#6o2VoHGR$AH?!TdHubSk?4IJq18PVFhbQT z{wZEVCwSl?HWbL2r#hT`&?%5Qq-El-@{I{Piu=nzPIm_mIbSAd_Iv22UZ;2cq z??_Uo9Okp-ujsw-!AkgmL`MKqHj4wC?Trm9CRm!$V@eYrOb++p*NqiMGmRJ?D~%hT zB(UGmF~sOvk;E`nJaHJ_c-67R(bEyeVq?^(H>-jCu2Co-%WqiL#5-LsY=mnC0xh9kK?YB+r9Xx>CN=1 z+kF}}E5)e!m#87tGdybYLS+6}qXy3k! zn-Tl=I#~Mtq*eQ3=MDQDOuCtQoOt_fJay;OGG1f`9?*E^HpzkG$;ErHzs{=oWgIOB zHJZGp;zc{{x;Rp--wrXPpd)K~?)BGMd%uE~9cFlW$Cf4RXCe{k2*(N<$D6i+wya|t zoi28!cXT44(PgjRQFL zwuX0H3r{pAeecjJUL+!&aPiU)DICz|XGLUZd(uMHpJ=p<7a29DY&`w( zhXcry4UC$IeIp!Cd{x5BU&1Vm^x~+6$G=x;88s4}#w^tT&1u@Wjkt`bX#;io690h$ zzhY5QBlzu3%k3NK)zdz*`YNbZ)L8U5qfyoOMy+DSy!ly3c^UBo=Qv(4 GTKyMq0H#L( literal 0 HcmV?d00001 diff --git a/Template/Game/Source/External/SDL_ttf/include/SDL_ttf.h b/Template/Game/Source/External/SDL_ttf/include/SDL_ttf.h new file mode 100644 index 0000000..a35780e --- /dev/null +++ b/Template/Game/Source/External/SDL_ttf/include/SDL_ttf.h @@ -0,0 +1,263 @@ +/* + SDL_ttf: A companion library to SDL for working with TrueType (tm) fonts + Copyright (C) 2001-2013 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +/* This library is a wrapper around the excellent FreeType 2.0 library, + available at: + http://www.freetype.org/ +*/ + +#ifndef _SDL_TTF_H +#define _SDL_TTF_H + +#include "SDL/include/SDL.h" +#include "SDL/include/begin_code.h" + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL +*/ +#define SDL_TTF_MAJOR_VERSION 2 +#define SDL_TTF_MINOR_VERSION 0 +#define SDL_TTF_PATCHLEVEL 12 + +/* This macro can be used to fill a version structure with the compile-time + * version of the SDL_ttf library. + */ +#define SDL_TTF_VERSION(X) \ +{ \ + (X)->major = SDL_TTF_MAJOR_VERSION; \ + (X)->minor = SDL_TTF_MINOR_VERSION; \ + (X)->patch = SDL_TTF_PATCHLEVEL; \ +} + +/* Backwards compatibility */ +#define TTF_MAJOR_VERSION SDL_TTF_MAJOR_VERSION +#define TTF_MINOR_VERSION SDL_TTF_MINOR_VERSION +#define TTF_PATCHLEVEL SDL_TTF_PATCHLEVEL +#define TTF_VERSION(X) SDL_TTF_VERSION(X) + +/* This function gets the version of the dynamically linked SDL_ttf library. + it should NOT be used to fill a version structure, instead you should + use the SDL_TTF_VERSION() macro. + */ +extern DECLSPEC const SDL_version * SDLCALL TTF_Linked_Version(void); + +/* ZERO WIDTH NO-BREAKSPACE (Unicode byte order mark) */ +#define UNICODE_BOM_NATIVE 0xFEFF +#define UNICODE_BOM_SWAPPED 0xFFFE + +/* This function tells the library whether UNICODE text is generally + byteswapped. A UNICODE BOM character in a string will override + this setting for the remainder of that string. +*/ +extern DECLSPEC void SDLCALL TTF_ByteSwappedUNICODE(int swapped); + +/* The internal structure containing font information */ +typedef struct _TTF_Font TTF_Font; + +/* Initialize the TTF engine - returns 0 if successful, -1 on error */ +extern DECLSPEC int SDLCALL TTF_Init(void); + +/* Open a font file and create a font of the specified point size. + * Some .fon fonts will have several sizes embedded in the file, so the + * point size becomes the index of choosing which size. If the value + * is too high, the last indexed size will be the default. */ +extern DECLSPEC TTF_Font * SDLCALL TTF_OpenFont(const char *file, int ptsize); +extern DECLSPEC TTF_Font * SDLCALL TTF_OpenFontIndex(const char *file, int ptsize, long index); +extern DECLSPEC TTF_Font * SDLCALL TTF_OpenFontRW(SDL_RWops *src, int freesrc, int ptsize); +extern DECLSPEC TTF_Font * SDLCALL TTF_OpenFontIndexRW(SDL_RWops *src, int freesrc, int ptsize, long index); + +/* Set and retrieve the font style */ +#define TTF_STYLE_NORMAL 0x00 +#define TTF_STYLE_BOLD 0x01 +#define TTF_STYLE_ITALIC 0x02 +#define TTF_STYLE_UNDERLINE 0x04 +#define TTF_STYLE_STRIKETHROUGH 0x08 +extern DECLSPEC int SDLCALL TTF_GetFontStyle(const TTF_Font *font); +extern DECLSPEC void SDLCALL TTF_SetFontStyle(TTF_Font *font, int style); +extern DECLSPEC int SDLCALL TTF_GetFontOutline(const TTF_Font *font); +extern DECLSPEC void SDLCALL TTF_SetFontOutline(TTF_Font *font, int outline); + +/* Set and retrieve FreeType hinter settings */ +#define TTF_HINTING_NORMAL 0 +#define TTF_HINTING_LIGHT 1 +#define TTF_HINTING_MONO 2 +#define TTF_HINTING_NONE 3 +extern DECLSPEC int SDLCALL TTF_GetFontHinting(const TTF_Font *font); +extern DECLSPEC void SDLCALL TTF_SetFontHinting(TTF_Font *font, int hinting); + +/* Get the total height of the font - usually equal to point size */ +extern DECLSPEC int SDLCALL TTF_FontHeight(const TTF_Font *font); + +/* Get the offset from the baseline to the top of the font + This is a positive value, relative to the baseline. + */ +extern DECLSPEC int SDLCALL TTF_FontAscent(const TTF_Font *font); + +/* Get the offset from the baseline to the bottom of the font + This is a negative value, relative to the baseline. + */ +extern DECLSPEC int SDLCALL TTF_FontDescent(const TTF_Font *font); + +/* Get the recommended spacing between lines of text for this font */ +extern DECLSPEC int SDLCALL TTF_FontLineSkip(const TTF_Font *font); + +/* Get/Set whether or not kerning is allowed for this font */ +extern DECLSPEC int SDLCALL TTF_GetFontKerning(const TTF_Font *font); +extern DECLSPEC void SDLCALL TTF_SetFontKerning(TTF_Font *font, int allowed); + +/* Get the number of faces of the font */ +extern DECLSPEC long SDLCALL TTF_FontFaces(const TTF_Font *font); + +/* Get the font face attributes, if any */ +extern DECLSPEC int SDLCALL TTF_FontFaceIsFixedWidth(const TTF_Font *font); +extern DECLSPEC char * SDLCALL TTF_FontFaceFamilyName(const TTF_Font *font); +extern DECLSPEC char * SDLCALL TTF_FontFaceStyleName(const TTF_Font *font); + +/* Check wether a glyph is provided by the font or not */ +extern DECLSPEC int SDLCALL TTF_GlyphIsProvided(const TTF_Font *font, Uint16 ch); + +/* Get the metrics (dimensions) of a glyph + To understand what these metrics mean, here is a useful link: + http://freetype.sourceforge.net/freetype2/docs/tutorial/step2.html + */ +extern DECLSPEC int SDLCALL TTF_GlyphMetrics(TTF_Font *font, Uint16 ch, + int *minx, int *maxx, + int *miny, int *maxy, int *advance); + +/* Get the dimensions of a rendered string of text */ +extern DECLSPEC int SDLCALL TTF_SizeText(TTF_Font *font, const char *text, int *w, int *h); +extern DECLSPEC int SDLCALL TTF_SizeUTF8(TTF_Font *font, const char *text, int *w, int *h); +extern DECLSPEC int SDLCALL TTF_SizeUNICODE(TTF_Font *font, const Uint16 *text, int *w, int *h); + +/* Create an 8-bit palettized surface and render the given text at + fast quality with the given font and color. The 0 pixel is the + colorkey, giving a transparent background, and the 1 pixel is set + to the text color. + This function returns the new surface, or NULL if there was an error. +*/ +extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderText_Solid(TTF_Font *font, + const char *text, SDL_Color fg); +extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUTF8_Solid(TTF_Font *font, + const char *text, SDL_Color fg); +extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUNICODE_Solid(TTF_Font *font, + const Uint16 *text, SDL_Color fg); + +/* Create an 8-bit palettized surface and render the given glyph at + fast quality with the given font and color. The 0 pixel is the + colorkey, giving a transparent background, and the 1 pixel is set + to the text color. The glyph is rendered without any padding or + centering in the X direction, and aligned normally in the Y direction. + This function returns the new surface, or NULL if there was an error. +*/ +extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderGlyph_Solid(TTF_Font *font, + Uint16 ch, SDL_Color fg); + +/* Create an 8-bit palettized surface and render the given text at + high quality with the given font and colors. The 0 pixel is background, + while other pixels have varying degrees of the foreground color. + This function returns the new surface, or NULL if there was an error. +*/ +extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderText_Shaded(TTF_Font *font, + const char *text, SDL_Color fg, SDL_Color bg); +extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUTF8_Shaded(TTF_Font *font, + const char *text, SDL_Color fg, SDL_Color bg); +extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUNICODE_Shaded(TTF_Font *font, + const Uint16 *text, SDL_Color fg, SDL_Color bg); + +/* Create an 8-bit palettized surface and render the given glyph at + high quality with the given font and colors. The 0 pixel is background, + while other pixels have varying degrees of the foreground color. + The glyph is rendered without any padding or centering in the X + direction, and aligned normally in the Y direction. + This function returns the new surface, or NULL if there was an error. +*/ +extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderGlyph_Shaded(TTF_Font *font, + Uint16 ch, SDL_Color fg, SDL_Color bg); + +/* Create a 32-bit ARGB surface and render the given text at high quality, + using alpha blending to dither the font with the given color. + This function returns the new surface, or NULL if there was an error. +*/ +extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderText_Blended(TTF_Font *font, + const char *text, SDL_Color fg); +extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUTF8_Blended(TTF_Font *font, + const char *text, SDL_Color fg); +extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUNICODE_Blended(TTF_Font *font, + const Uint16 *text, SDL_Color fg); + + +/* Create a 32-bit ARGB surface and render the given text at high quality, + using alpha blending to dither the font with the given color. + Text is wrapped to multiple lines on line endings and on word boundaries + if it extends beyond wrapLength in pixels. + This function returns the new surface, or NULL if there was an error. +*/ +extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderText_Blended_Wrapped(TTF_Font *font, + const char *text, SDL_Color fg, Uint32 wrapLength); +extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUTF8_Blended_Wrapped(TTF_Font *font, + const char *text, SDL_Color fg, Uint32 wrapLength); +extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderUNICODE_Blended_Wrapped(TTF_Font *font, + const Uint16 *text, SDL_Color fg, Uint32 wrapLength); + +/* Create a 32-bit ARGB surface and render the given glyph at high quality, + using alpha blending to dither the font with the given color. + The glyph is rendered without any padding or centering in the X + direction, and aligned normally in the Y direction. + This function returns the new surface, or NULL if there was an error. +*/ +extern DECLSPEC SDL_Surface * SDLCALL TTF_RenderGlyph_Blended(TTF_Font *font, + Uint16 ch, SDL_Color fg); + +/* For compatibility with previous versions, here are the old functions */ +#define TTF_RenderText(font, text, fg, bg) \ + TTF_RenderText_Shaded(font, text, fg, bg) +#define TTF_RenderUTF8(font, text, fg, bg) \ + TTF_RenderUTF8_Shaded(font, text, fg, bg) +#define TTF_RenderUNICODE(font, text, fg, bg) \ + TTF_RenderUNICODE_Shaded(font, text, fg, bg) + +/* Close an opened font file */ +extern DECLSPEC void SDLCALL TTF_CloseFont(TTF_Font *font); + +/* De-initialize the TTF engine */ +extern DECLSPEC void SDLCALL TTF_Quit(void); + +/* Check if the TTF engine is initialized */ +extern DECLSPEC int SDLCALL TTF_WasInit(void); + +/* Get the kerning size of two glyphs */ +extern DECLSPEC int TTF_GetFontKerningSize(TTF_Font *font, int prev_index, int index); + +/* We'll use SDL for reporting errors */ +#define TTF_SetError SDL_SetError +#define TTF_GetError SDL_GetError + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "SDL/include/close_code.h" + +#endif /* _SDL_TTF_H */ diff --git a/Template/Game/Source/Fonts.cpp b/Template/Game/Source/Fonts.cpp new file mode 100644 index 0000000..f1de61a --- /dev/null +++ b/Template/Game/Source/Fonts.cpp @@ -0,0 +1,116 @@ +#include "App.h" +#include "Textures.h" +#include "Render.h" +#include "Fonts.h" + +#include "Defs.h" +#include "Log.h" + +#include + +Fonts::Fonts(bool start_enabled) : Module(start_enabled) +{ +} + +Fonts::~Fonts() +{ + +} + +// Load new texture from file path +int Fonts::Load(const char* texture_path, const char* characters, uint rows) +{ + int id = -1; + + if(texture_path == nullptr || characters == nullptr || rows == 0) + { + LOG("Could not load font"); + return id; + } + + SDL_Texture* tex = app->tex->Load(texture_path); + + if(tex == nullptr || strlen(characters) >= MAX_FONT_CHARS) + { + LOG("Could not load font at %s with characters '%s'", texture_path, characters); + return id; + } + + id = 0; + for(; id < MAX_FONTS; ++id) + if(fonts[id].texture == nullptr) + break; + + if(id == MAX_FONTS) + { + LOG("Cannot load font %s. Array is full (max %d).", texture_path, MAX_FONTS); + return id; + } + + Font& font = fonts[id]; + + font.texture = tex; + font.rows = rows; + + strcpy_s(fonts[id].table, MAX_FONT_CHARS, characters); + font.totalLength = strlen(characters); + font.columns = fonts[id].totalLength / rows; + + uint tex_w, tex_h; + app->tex->GetSize(tex, tex_w, tex_h); + font.char_w = tex_w / font.columns; + font.char_h = tex_h / font.rows; + + LOG("Successfully loaded BMP font from %s", texture_path); + + return id; +} + +void Fonts::UnLoad(int font_id) +{ + if(font_id >= 0 && font_id < MAX_FONTS && fonts[font_id].texture != nullptr) + { + app->tex->Unload(fonts[font_id].texture); + fonts[font_id].texture = nullptr; + LOG("Successfully Unloaded BMP font_id %d", font_id); + } +} + +void Fonts::BlitText(int x, int y, int font_id, const char* text, bool useCamera) const +{ + if(text == nullptr || font_id < 0 || font_id >= MAX_FONTS || fonts[font_id].texture == nullptr) + { + LOG("Unable to render text with bmp font id %d", font_id); + return; + } + + const Font* font = &fonts[font_id]; + SDL_Rect spriteRect; + uint len = strlen(text); + + spriteRect.w = font->char_w; + spriteRect.h = font->char_h; + + for(int i = len-1; i >= 0; --i) + { + uint charIndex = 0; + + // Find the location of the current character in the lookup table + for (uint j = 0; j < font->totalLength; ++j) + { + if (font->table[j] == text[i]) + { + charIndex = j; + break; + } + } + + // Retrieve the position of the current character in the sprite + spriteRect.x = spriteRect.w * (charIndex % font->columns); + spriteRect.y = spriteRect.h * (charIndex / font->columns); + + app->render->DrawTexture(font->texture, x, y, &spriteRect,useCamera); + // Advance the position where we blit the next character + x -= spriteRect.w; + } +} \ No newline at end of file diff --git a/Template/Game/Source/Fonts.h b/Template/Game/Source/Fonts.h new file mode 100644 index 0000000..6079a7d --- /dev/null +++ b/Template/Game/Source/Fonts.h @@ -0,0 +1,56 @@ +#ifndef __FONTS_H__ +#define __FONTS_H__ + +#include "Module.h" +#include "SDL\include\SDL_pixels.h" + +#define MAX_FONTS 10 +#define MAX_FONT_CHARS 256 + +struct SDL_Texture; + +struct Font +{ + // Lookup table. All characters displayed in the same order as the texture + char table[MAX_FONT_CHARS]; + + // The font texture + SDL_Texture* texture = nullptr; + + // Font setup data + uint totalLength; + uint rows, columns; + uint char_w, char_h; +}; + +class Fonts : public Module +{ +public: + + // Constructor + Fonts(bool start_enabled); + + // Destructor + ~Fonts(); + + // Loads a font file from a texture + // Returns a font index from the fonts array + // Param texturePath - The path to the texture file + // Param characters - The lookup table. All characters displayed in the same order as the texture + // Param rows - The amount of character rows in the texture + int Load(const char* texturePath, const char* characters, uint rows = 1); + + // Removes a font by its index + // Unloads the texture and removes it from the fonts array + void UnLoad(int fontIndex); + + // Create a surface from text + void BlitText(int x, int y, int fontIndex, const char* text, bool useCamera = true) const; + +private: + // An array to keep track and store all loaded fonts + Font fonts[MAX_FONTS]; +}; + + +#endif // __ModuleFonts_H__ \ No newline at end of file diff --git a/Template/Game/Source/Input.cpp b/Template/Game/Source/Input.cpp new file mode 100644 index 0000000..d9f205b --- /dev/null +++ b/Template/Game/Source/Input.cpp @@ -0,0 +1,160 @@ +#include "App.h" +#include "Input.h" +#include "Window.h" + +#include "Defs.h" +#include "Log.h" + +#include "SDL/include/SDL.h" + +#define MAX_KEYS 300 + +Input::Input(bool startEnabled) : Module(startEnabled) +{ + name.Create("input"); + + keyboard = new KeyState[MAX_KEYS]; + memset(keyboard, KEY_IDLE, sizeof(KeyState) * MAX_KEYS); + memset(mouseButtons, KEY_IDLE, sizeof(KeyState) * NUM_MOUSE_BUTTONS); +} + +// Destructor +Input::~Input() +{ + delete[] keyboard; +} + +// Called before render is available +bool Input::Awake(pugi::xml_node& config) +{ + LOG("Init SDL input event system"); + bool ret = true; + SDL_Init(0); + + if(SDL_InitSubSystem(SDL_INIT_EVENTS) < 0) + { + LOG("SDL_EVENTS could not initialize! SDL_Error: %s\n", SDL_GetError()); + ret = false; + } + + return ret; +} + +// Called before the first frame +bool Input::Start() +{ + SDL_StopTextInput(); + return true; +} + +// Called each loop iteration +bool Input::PreUpdate() +{ + static SDL_Event event; + + const Uint8* keys = SDL_GetKeyboardState(NULL); + + for(int i = 0; i < MAX_KEYS; ++i) + { + if(keys[i] == 1) + { + if(keyboard[i] == KEY_IDLE) + keyboard[i] = KEY_DOWN; + else + keyboard[i] = KEY_REPEAT; + } + else + { + if(keyboard[i] == KEY_REPEAT || keyboard[i] == KEY_DOWN) + keyboard[i] = KEY_UP; + else + keyboard[i] = KEY_IDLE; + } + } + + for(int i = 0; i < NUM_MOUSE_BUTTONS; ++i) + { + if(mouseButtons[i] == KEY_DOWN) + mouseButtons[i] = KEY_REPEAT; + + if(mouseButtons[i] == KEY_UP) + mouseButtons[i] = KEY_IDLE; + } + + while(SDL_PollEvent(&event) != 0) + { + switch(event.type) + { + case SDL_QUIT: + windowEvents[WE_QUIT] = true; + break; + + case SDL_WINDOWEVENT: + switch(event.window.event) + { + //case SDL_WINDOWEVENT_LEAVE: + case SDL_WINDOWEVENT_HIDDEN: + case SDL_WINDOWEVENT_MINIMIZED: + case SDL_WINDOWEVENT_FOCUS_LOST: + windowEvents[WE_HIDE] = true; + break; + + //case SDL_WINDOWEVENT_ENTER: + case SDL_WINDOWEVENT_SHOWN: + case SDL_WINDOWEVENT_FOCUS_GAINED: + case SDL_WINDOWEVENT_MAXIMIZED: + case SDL_WINDOWEVENT_RESTORED: + windowEvents[WE_SHOW] = true; + break; + } + break; + + case SDL_MOUSEBUTTONDOWN: + mouseButtons[event.button.button - 1] = KEY_DOWN; + //LOG("Mouse button %d down", event.button.button-1); + break; + + case SDL_MOUSEBUTTONUP: + mouseButtons[event.button.button - 1] = KEY_UP; + //LOG("Mouse button %d up", event.button.button-1); + break; + + case SDL_MOUSEMOTION: + int scale = app->win->GetScale(); + mouseMotionX = event.motion.xrel / scale; + mouseMotionY = event.motion.yrel / scale; + mouseX = event.motion.x / scale; + mouseY = event.motion.y / scale; + //LOG("Mouse motion x %d y %d", mouse_motion_x, mouse_motion_y); + break; + } + } + + return true; +} + +// Called before quitting +bool Input::CleanUp() +{ + LOG("Quitting SDL event subsystem"); + SDL_QuitSubSystem(SDL_INIT_EVENTS); + return true; +} + + +bool Input::GetWindowEvent(EventWindow ev) +{ + return windowEvents[ev]; +} + +void Input::GetMousePosition(int& x, int& y) +{ + x = mouseX; + y = mouseY; +} + +void Input::GetMouseMotion(int& x, int& y) +{ + x = mouseMotionX; + y = mouseMotionY; +} \ No newline at end of file diff --git a/Template/Game/Source/Input.h b/Template/Game/Source/Input.h new file mode 100644 index 0000000..56b9fca --- /dev/null +++ b/Template/Game/Source/Input.h @@ -0,0 +1,88 @@ +#ifndef __INPUT_H__ +#define __INPUT_H__ + +#include "Module.h" + +//#define NUM_KEYS 352 +#define NUM_MOUSE_BUTTONS 5 +//#define LAST_KEYS_PRESSED_BUFFER 50 + +struct SDL_Rect; + +enum EventWindow +{ + WE_QUIT = 0, + WE_HIDE = 1, + WE_SHOW = 2, + WE_COUNT +}; + +enum KeyState +{ + KEY_IDLE = 0, + KEY_DOWN, + KEY_REPEAT, + KEY_UP +}; + +class Input : public Module +{ + +public: + + Input(bool startEnabled); + + // Destructor + virtual ~Input(); + + // Called before render is available + bool Awake(pugi::xml_node&); + + // Called before the first frame + bool Start(); + + // Called each loop iteration + bool PreUpdate(); + + // Called before quitting + bool CleanUp(); + + // Check key states (includes mouse and joy buttons) + KeyState GetKey(int id) const + { + return keyboard[id]; + } + + KeyState GetMouseButtonDown(int id) const + { + return mouseButtons[id - 1]; + } + + // Check if a certain window event happened + bool GetWindowEvent(EventWindow ev); + + // Get mouse / axis position + void GetMousePosition(int &x, int &y); + void GetMouseMotion(int& x, int& y); + + int GetMouseX() const + { + return mouseX; + } + + int GetMouseY() const + { + return mouseY; + } + +private: + bool windowEvents[WE_COUNT]; + KeyState* keyboard; + KeyState mouseButtons[NUM_MOUSE_BUTTONS]; + int mouseMotionX; + int mouseMotionY; + int mouseX; + int mouseY; +}; + +#endif // __INPUT_H__ \ No newline at end of file diff --git a/Template/Game/Source/Inventory.cpp b/Template/Game/Source/Inventory.cpp new file mode 100644 index 0000000..c1e38b8 --- /dev/null +++ b/Template/Game/Source/Inventory.cpp @@ -0,0 +1,239 @@ +#include "App.h" +#include "Input.h" +#include "Textures.h" +#include "Audio.h" +#include "Render.h" +#include "Window.h" +#include "Inventory.h" +#include "EntityManager.h" +#include "Scene.h" + +#include "Defs.h" +#include "Log.h" + +Inventory::Inventory(bool startEnabled) : Module(startEnabled) +{ + name.Create("inventory"); +} + +// Destructor +Inventory::~Inventory() +{} + +// Called before render is available +bool Inventory::Awake() +{ + LOG("Loading Scene"); + bool ret = true; + + for (size_t i = 0; i < MAX_INVENTORY_SLOTS; i++) + { + slots[i].id = 0; + } + + return ret; +} + +// Called before the first frame +bool Inventory::Start() +{ + slots[0].bounds = { 16, 16, 32, 32 }; + slots[1].bounds = { 54, 16, 32, 32 }; + slots[2].bounds = { 98, 16, 32, 32 }; + slots[3].bounds = { 142, 16, 32, 32 }; + slots[4].bounds = { 186, 16, 32, 32 }; + slots[5].bounds = { 230, 16, 32, 32 }; + slots[6].bounds = { 16, 58, 32, 32 }; + slots[7].bounds = { 54, 58, 32, 32 }; + slots[8].bounds = { 98, 58, 32, 32 }; + slots[9].bounds = { 142, 58, 32, 32 }; + slots[10].bounds = { 186, 58, 32, 32 }; + slots[11].bounds = { 230, 58, 32, 32 }; + slots[12].bounds = { 16, 100, 32, 32 }; + slots[13].bounds = { 54, 100, 32, 32 }; + slots[14].bounds = { 98, 100, 32, 32 }; + slots[15].bounds = { 142, 100, 32, 32 }; + slots[16].bounds = { 186, 100, 32, 32 }; + slots[17].bounds = { 230, 100, 32, 32 }; + slots[18].bounds = { 16, 142, 32, 32 }; + slots[19].bounds = { 54, 142, 32, 32 }; + slots[20].bounds = { 98, 142, 32, 32 }; + slots[21].bounds = { 142, 142, 32, 32 }; + slots[22].bounds = { 186, 142, 32, 32 }; + slots[23].bounds = { 230, 142, 32, 32 }; + slots[24].bounds = { 16, 184, 32, 32 }; + slots[25].bounds = { 54, 184, 32, 32 }; + slots[26].bounds = { 98, 184, 32, 32 }; + slots[27].bounds = { 142, 184, 32, 32 }; + slots[28].bounds = { 186, 184, 32, 32 }; + slots[29].bounds = { 230, 184, 32, 32 }; + + invPos.x = 500; invPos.y = 200; + img = app->tex->Load("Assets/Textures/inventory.png"); + + currentSlotId = 0; + selectedSlotTexture = app->tex->Load("Assets/Textures/slotSelectedHole.png"); + + return true; +} + +// Called each loop iteration +bool Inventory::PreUpdate() +{ + return true; +} + +// Called each loop iteration +bool Inventory::Update(float dt) +{ + + if (app->input->GetKey(SDL_SCANCODE_O) == KEY_DOWN && app->scene->items.start != nullptr) + { + AddItem(app->scene->items.start->data); + app->scene->items.start->data->Disable(); + } + if (app->input->GetKey(SDL_SCANCODE_P) == KEY_DOWN && app->scene->items.start->next != nullptr) + { + AddItem(app->scene->items.start->next->data); + app->scene->items.start->data->Disable(); + } + + MoveThroughInv(); + + if (app->input->GetKey(SDL_SCANCODE_SPACE) == KEY_DOWN) + ChangeItemPos(); + + + DeleteItem(); + + return true; +} + +// Called each loop iteration +bool Inventory::PostUpdate() +{ + bool ret = true; + + if (app->input->GetKey(SDL_SCANCODE_ESCAPE) == KEY_DOWN) + ret = false; + + app->render->DrawTexture(img, invPos.x, invPos.y); + DrawItems(); + + return ret; +} + +// Called before quitting +bool Inventory::CleanUp() +{ + LOG("Freeing inventory"); + + return true; +} + +void Inventory::AddItem(Entity* item) +{ + for (int i = 0; i < MAX_INVENTORY_SLOTS; ++i) + { + if (slots[MAX_INVENTORY_SLOTS].id == item->id && slots[i].itemsAmount <= ITEM_STACK) + { + slots[i].itemsAmount++; + slots[i].state = SlotState::UNSELECTED; + break; + } + else if (slots[i].id == 0) + { + slots[i].id = item->id; + slots[i].filled = true; + slots[i].itemsAmount = 1; + slots[i].texture = item->texture; + slots[i].state = SlotState::UNSELECTED; + break; + } + } +} + +void Inventory::DrawItems() +{ + for (int i = 0; i < MAX_INVENTORY_SLOTS; ++i) + { + SDL_Rect r { 0,0,32,32 }; + SDL_Rect r2{ 0,0,38,39 }; + //Draw Item Texture + if (slots[i].id != 0) + { + app->render->DrawTexture(selectedSlotTexture, slots[currentSlotId].bounds.x + invPos.x, slots[currentSlotId].bounds.y + invPos.y, &r2, false); + app->render->DrawTexture(slots[i].texture, slots[i].bounds.x+invPos.x, slots[i].bounds.y+invPos.y, &r, false); + //app->render->DrawText("1", slots[i].bounds.x+25, slots[i].bounds.y+25, slots[i].bounds.w, slots[i].bounds.h, { 255,255,255 }); + } + } +} + +void Inventory::MoveThroughInv() +{ + if (app->input->GetKey(SDL_SCANCODE_W) == KEY_DOWN) + if (currentSlotId > 5) + currentSlotId -= 6; + + if (app->input->GetKey(SDL_SCANCODE_S) == KEY_DOWN) + if (currentSlotId < 24) + currentSlotId += 6; + + if (app->input->GetKey(SDL_SCANCODE_A) == KEY_DOWN) + if (currentSlotId != 0 && currentSlotId != 6 && currentSlotId != 12 && currentSlotId != 18 && currentSlotId != 24) + currentSlotId -= 1; + + if (app->input->GetKey(SDL_SCANCODE_D) == KEY_DOWN) + if (currentSlotId != 5 && currentSlotId != 11 && currentSlotId != 17 && currentSlotId != 23 && currentSlotId != 29) + currentSlotId += 1; +} + +bool Inventory::ChangeItemPos() +{ + + if (slots[currentSlotId].filled && slots[currentSlotId].state == SlotState::UNSELECTED && !changingSlot) + { + changingSlot = true; + slots[currentSlotId].state = SlotState::SELECTED; + saveCopyIdSlot = currentSlotId; + saveCopy.id = slots[currentSlotId].id; + saveCopy.itemsAmount = slots[currentSlotId].itemsAmount; + saveCopy.texture = slots[currentSlotId].texture; + } + + + if(!slots[currentSlotId].filled && changingSlot) + { + if (app->input->GetKey(SDL_SCANCODE_SPACE) == KEY_DOWN && !slots[currentSlotId].filled) + { + //Delete the slot where you had the item + slots[saveCopyIdSlot].filled = false; + slots[saveCopyIdSlot].id = 0; + slots[saveCopyIdSlot].itemsAmount = 0; + slots[saveCopyIdSlot].state = SlotState::UNSELECTED; + slots[saveCopyIdSlot].texture = nullptr; + changingSlot = false; + + //Change the item position + slots[currentSlotId].filled = true; + slots[currentSlotId].id = saveCopy.id; + slots[currentSlotId].itemsAmount = saveCopy.itemsAmount; + slots[currentSlotId].texture = saveCopy.texture; + slots[currentSlotId].state = SlotState::UNSELECTED; + } + else + return false; + } +} + +void Inventory::DeleteItem() +{ + if (app->input->GetKey(SDL_SCANCODE_K) == KEY_DOWN) + { + slots[currentSlotId].filled = false; + slots[currentSlotId].id = 0; + slots[currentSlotId].itemsAmount = 0; + slots[currentSlotId].state = SlotState::UNSELECTED; + slots[currentSlotId].texture = nullptr; + } +} \ No newline at end of file diff --git a/Template/Game/Source/Inventory.h b/Template/Game/Source/Inventory.h new file mode 100644 index 0000000..6fcfb92 --- /dev/null +++ b/Template/Game/Source/Inventory.h @@ -0,0 +1,89 @@ +#pragma once + +#include "Module.h" +#include "Ring.h" +#include "Axe.h" + +#define MAX_INVENTORY_SLOTS 30 +#define ITEM_STACK 32 + +enum class SlotState +{ + NONE = 0, + UNSELECTED, + SELECTED, + FOCUSED, + USE, + DELETE +}; + + +struct InventorySlot +{ + SDL_Rect bounds; + SDL_Texture* texture; + int itemsAmount; + bool filled; + int id; + SlotState state; + + /*bool operator==(InventorySlot& i) const + { + return (i.bounds.x == bounds.x && i.bounds.y == bounds.y && i.bounds.w == bounds.w && i.bounds.h == bounds.h && + i.item->objectType == item->objectType && i.itemsAmount == itemsAmount && i.filled == filled); + } + bool operator!=(InventorySlot& i) const + { + return (i.bounds.x != bounds.x || i.bounds.y != bounds.y || i.bounds.w != bounds.w || i.bounds.h != bounds.h || + i.item->objectType != item->objectType || i.itemsAmount != itemsAmount || i.filled != filled); + }*/ +}; + +struct SDL_Texture; + +class Inventory : public Module +{ +public: + + Inventory(bool startEnabled); + + // Destructor + virtual ~Inventory(); + + // Called before render is available + bool Awake(); + // Called before the first frame + bool Start(); + // Called before all Updates + bool PreUpdate(); + // Called each loop iteration + bool Update(float dt); + // Called before all Updates + bool PostUpdate(); + // Called before quitting + bool CleanUp(); + + void AddItem(Entity* item); + void DrawItems(); + void MoveThroughInv(); + bool ChangeItemPos(); + void DeleteItem(); + +public: + + List items; + +private: + SDL_Texture* img; + + SDL_Texture* selectedSlotTexture; + + InventorySlot slots[MAX_INVENTORY_SLOTS]; + int currentSlotId; + InventorySlot* originSlot; + iPoint invPos; + + InventorySlot saveCopy; + int saveCopyIdSlot; + bool changingSlot = false; +}; \ No newline at end of file diff --git a/Template/Game/Source/Item.h b/Template/Game/Source/Item.h new file mode 100644 index 0000000..9a1083b --- /dev/null +++ b/Template/Game/Source/Item.h @@ -0,0 +1,52 @@ +#pragma once + +#include "Entity.h" +#include "Point.h" + +enum class ItemType +{ + RING, + AXE, +}; + +class Item : public Entity +{ +public: + //Item() {}; + Item(ItemType type, iPoint pos, SDL_Texture* text, EntityType entType = EntityType::ITEM) : Entity(entType), itemType(type), texture(text), isDragging(false) + { + bounds.x = pos.x; + bounds.y = pos.y; + bounds.w = 32; + bounds.h = 32; + isDropped = false; + } + + virtual ~Item() {} + + //virtual bool Load() override { return true; } + //virtual bool Update(float dt) override; + //virtual void Draw(bool showColliders) {} + //virtual bool UnLoad() override; + + //inline ObjectType GetItemType() const { return objectType; } + + /*bool operator==(Item& it) const + { + return this->objectType == it.objectType; + }*/ + +public: + //ObjectType objectType; + ItemType itemType; + + SDL_Texture* texture; + const char* texturePath; + + SDL_Rect section; + + bool isDragging; // For inventory + //eastl::string mapName; + + bool isDropped; // For dropping items +}; \ No newline at end of file diff --git a/Template/Game/Source/Life.cpp b/Template/Game/Source/Life.cpp new file mode 100644 index 0000000..3f72558 --- /dev/null +++ b/Template/Game/Source/Life.cpp @@ -0,0 +1,68 @@ +#include "Life.h" +#include "App.h" +#include "Textures.h" +#include "Audio.h" +#include "Input.h" +#include "Render.h" +#include "Log.h" +#include "Point.h" +#include "Physics.h" + +Life::Life() : Entity(EntityType::LIFE) +{ + name.Create("life"); + + lifeAnim.PushBack({ 0 * 22,0 * 22,22,22 }); + lifeAnim.PushBack({ 1 * 22,0 * 22,22,22 }); + lifeAnim.loop = true; + lifeAnim.speed = 0.1; +} + +Life::~Life() {} + +bool Life::Awake() { + + position.x = parameters.attribute("x").as_int(); + position.y = parameters.attribute("y").as_int(); + texturePath = parameters.attribute("texturepath").as_string(); + + return true; +} + +bool Life::Start() { + + //initilize textures + texture = app->tex->Load(texturePath); + + // L07 DONE 4: Add a physics to an item - initialize the physics body + pbody = app->physics->CreateCircle(position.x + 11, position.y + 11, 11, bodyType::STATIC, true); + + // L07 DONE 7: Assign collider type + pbody->ctype = ColliderType::LIFE; + + return true; +} + +bool Life::Update() +{ + if (!pbody->body->IsActive()) + { + pbody->body->DestroyFixture(pbody->body->GetFixtureList()); + active = false; + } + + // L07 DONE 4: Add a physics to an item - update the position of the object from the physics. + position.x = METERS_TO_PIXELS(pbody->body->GetTransform().p.x) - 11; + position.y = METERS_TO_PIXELS(pbody->body->GetTransform().p.y) - 11; + + SDL_Rect rect = lifeAnim.GetCurrentFrame(); + app->render->DrawTexture(texture, position.x, position.y, &rect); + lifeAnim.Update(); + + return true; +} + +bool Life::CleanUp() +{ + return true; +} \ No newline at end of file diff --git a/Template/Game/Source/Life.h b/Template/Game/Source/Life.h new file mode 100644 index 0000000..2950a0b --- /dev/null +++ b/Template/Game/Source/Life.h @@ -0,0 +1,41 @@ +#ifndef __LIFE_H__ +#define __LIFE_H__ + +#include "Entity.h" +#include "Point.h" +#include "Animation.h" +#include "SDL/include/SDL.h" + +struct SDL_Texture; + +class Life : public Entity +{ +public: + + Life(); + virtual ~Life(); + + bool Awake(); + + bool Start(); + + bool Update(); + + bool CleanUp(); + +public: + + bool isPicked = false; + +private: + + SDL_Texture* texture; + const char* texturePath; + + Animation lifeAnim; + + //DONE 4: Add a physics to an item + PhysBody* pbody; +}; + +#endif // __LIFE_H__ \ No newline at end of file diff --git a/Template/Game/Source/List.h b/Template/Game/Source/List.h new file mode 100644 index 0000000..0584011 --- /dev/null +++ b/Template/Game/Source/List.h @@ -0,0 +1,302 @@ +#ifndef __LIST_H__ +#define __LIST_H__ + +#include "Defs.h" + +// Contains items from double linked list +template +struct ListItem +{ + tdata data; + ListItem* next; + ListItem* prev; + + inline ListItem(const tdata& pData) + { + data = pData; + next = prev = NULL; + } + + ~ListItem() + {} +}; + +// Manages a double linked list +template +class List +{ + +public: + + ListItem* start; + ListItem* end; + +private: + + unsigned int size; + +public: + + // Constructor + inline List() + { + start = end = NULL; + size = 0; + } + + // Destructor + ~List() + { + Clear(); + } + + // Get Size + unsigned int Count() const + { + return size; + } + + // Add new item + ListItem* Add(const tdata& item) + { + ListItem* dataItem; + dataItem = new ListItem(item); + + if(start == NULL) + { + start = end = dataItem; + } + else + { + dataItem->prev = end; + end->next = dataItem; + end = dataItem; + } + + ++size; + return(dataItem); + } + + // Deletes an item from the list + bool Del(ListItem* item) + { + if(item == NULL) + { + return (false); + } + + // Now reconstruct the list + if(item->prev != NULL) + { + item->prev->next = item->next; + + if(item->next != NULL) + { + item->next->prev = item->prev; + } + else + { + end = item->prev; + } + } + else + { + if(item->next) + { + item->next->prev = NULL; + start = item->next; + } + else + { + start = end = NULL; + } + } + + RELEASE(item); + --size; + return(true); + } + + // Destroy and free all mem + void Clear() + { + ListItem* pData; + ListItem* pNext; + pData = start; + + while(pData != NULL) + { + pNext = pData->next; + RELEASE(pData); + pData = pNext; + } + + start = end = NULL; + size = 0; + } + + // Read/write operator access directly to a position in the list + tdata& operator [](const unsigned int index) + { + long pos; + ListItem* pItem; + pos = 0; + pItem = start; + + while(pItem != NULL) + { + if(pos == index) + { + break; + } + + ++pos; + pItem = pItem->next; + } + + return(pItem->data); + } + + /** + * const read operator access directly to a position in the list + */ + const tdata& operator [](const unsigned int index) const + { + long pos; + ListItem* pItem; + pos = 0; + pItem = start; + + while(pItem != NULL) + { + if(pos == index) + { + break; + } + + ++pos; + pItem = pItem->next; + } + + ASSERT(pItem); + + return(pItem->data); + } + + const List& operator +=(const List& other_list) + { + ListItem* pItem = other_list.start; + + while(pItem != NULL) + { + Add(pItem->data); + pItem = pItem->next; + } + + return(*this); + } + + const ListItem* At(unsigned int index) const + { + long pos = 0; + ListItem* pItem = start; + + while(pItem != NULL) + { + if(pos++ == index) + break; + + pItem = pItem->next; + } + + return pItem; + } + + ListItem* At(unsigned int index) + { + long pos = 0; + ListItem* pItem = start; + + while(pItem != NULL) + { + if(pos++ == index) + break; + + pItem = pItem->next; + } + + return pItem; + } + + // Sort + int BubbleSort() + { + int ret = 0; + bool swapped = true; + + while(swapped) + { + swapped = false; + ListItem* tmp = start; + + while(tmp != NULL && tmp->next != NULL) + { + ++ret; + if(tmp->data > tmp->next->data) + { + SWAP(tmp->data, tmp->next->data); + swapped = true; + } + + tmp = tmp->next; + } + } + + return ret; + } + + int Find(const tdata& data) + { + ListItem* tmp = start; + int index = 0; + + while(tmp != NULL) + { + if(tmp->data == data) + return(index); + + ++index; + tmp = tmp->next; + } + return (-1); + } + + void InsertAfter(uint position, const List& list) + { + ListItem* pMyList = At(position); + ListItem* pOtherList = list.start; + + while(pOtherList != NULL) + { + ListItem* pNewItem = new ListItem(pOtherList->data); + + pNewItem->next = (pMyList) ? pMyList->next : NULL; + + if(pNewItem->next != NULL) + pNewItem->next->prev = pNewItem; + else + end = pNewItem; + + pNewItem->prev = pMyList; + + if(pNewItem->prev != NULL) + pNewItem->prev->next = pNewItem; + else + start = pNewItem; + + pMyList = pNewItem; + pOtherList = pOtherList->next; + } + } +}; +#endif // __LIST_H__ \ No newline at end of file diff --git a/Template/Game/Source/Log.cpp b/Template/Game/Source/Log.cpp new file mode 100644 index 0000000..e188a5a --- /dev/null +++ b/Template/Game/Source/Log.cpp @@ -0,0 +1,19 @@ +#include "Log.h" + +#include +#include + +void Log(const char file[], int line, const char* format, ...) +{ + static char tmpString1[4096]; + static char tmpString2[4096]; + static va_list ap; + + // Construct the string from variable arguments + va_start(ap, format); + vsprintf_s(tmpString1, 4096, format, ap); + va_end(ap); + sprintf_s(tmpString2, 4096, "\n%s(%d) : %s", file, line, tmpString1); + + OutputDebugString(tmpString2); +} \ No newline at end of file diff --git a/Template/Game/Source/Log.h b/Template/Game/Source/Log.h new file mode 100644 index 0000000..2732e61 --- /dev/null +++ b/Template/Game/Source/Log.h @@ -0,0 +1,8 @@ +#ifndef __LOG_H__ +#define __LOG_H__ + +#define LOG(format, ...) Log(__FILE__, __LINE__, format, __VA_ARGS__) + +void Log(const char file[], int line, const char* format, ...); + +#endif // __LOG_H__ \ No newline at end of file diff --git a/Template/Game/Source/Main.cpp b/Template/Game/Source/Main.cpp new file mode 100644 index 0000000..0ab7dce --- /dev/null +++ b/Template/Game/Source/Main.cpp @@ -0,0 +1,113 @@ +#include "App.h" + +#include "Defs.h" +#include "Log.h" + +// NOTE: SDL redefines main function +#include "SDL/include/SDL.h" + +// NOTE: Library linkage is configured in Linker Options +//#pragma comment(lib, "../Game/Source/External/SDL/libx86/SDL2.lib") +//#pragma comment(lib, "../Game/Source/External/SDL/libx86/SDL2main.lib") + +#include + +enum MainState +{ + CREATE = 1, + AWAKE, + START, + LOOP, + CLEAN, + FAIL, + EXIT +}; + +App* app = NULL; + +int main(int argc, char* args[]) +{ + LOG("Engine starting ..."); + + MainState state = CREATE; + int result = EXIT_FAILURE; + + while(state != EXIT) + { + switch(state) + { + // Allocate the engine -------------------------------------------- + case CREATE: + LOG("CREATION PHASE ==============================="); + + app = new App(argc, args); + + if(app != NULL) + state = AWAKE; + else + state = FAIL; + + break; + + // Awake all modules ----------------------------------------------- + case AWAKE: + LOG("AWAKE PHASE ==============================="); + if(app->Awake() == true) + state = START; + else + { + LOG("ERROR: Awake failed"); + state = FAIL; + } + + break; + + // Call all modules before first frame ---------------------------- + case START: + LOG("START PHASE ==============================="); + if(app->Start() == true) + { + state = LOOP; + LOG("UPDATE PHASE ==============================="); + } + else + { + state = FAIL; + LOG("ERROR: Start failed"); + } + break; + + // Loop all modules until we are asked to leave --------------------- + case LOOP: + if(app->Update() == false) + state = CLEAN; + break; + + // Cleanup allocated memory ----------------------------------------- + case CLEAN: + LOG("CLEANUP PHASE ==============================="); + if(app->CleanUp() == true) + { + RELEASE(app); + result = EXIT_SUCCESS; + state = EXIT; + } + else + state = FAIL; + + break; + + // Exit with errors and shame --------------------------------------- + case FAIL: + LOG("Exiting with errors :("); + result = EXIT_FAILURE; + state = EXIT; + break; + } + } + + LOG("... Bye! :)\n"); + + // Dump memory leaks + return result; +} \ No newline at end of file diff --git a/Template/Game/Source/Map.cpp b/Template/Game/Source/Map.cpp new file mode 100644 index 0000000..fe8fffc --- /dev/null +++ b/Template/Game/Source/Map.cpp @@ -0,0 +1,763 @@ + +#include "App.h" +#include "Render.h" +#include "Textures.h" +#include "Map.h" +#include "Physics.h" + +#include "Defs.h" +#include "Log.h" + +#include +#include +#include "SDL_image/include/SDL_image.h" + +Map::Map(bool startEnabled) : Module(startEnabled), mapLoaded(false) +{ + name.Create("map"); +} + +// Destructor +Map::~Map() +{} + +// Called before render is available +bool Map::Awake(pugi::xml_node& config) +{ + return true; +} + +// L12: Create walkability map for pathfinding +bool Map::CreateWalkabilityMap(int& width, int& height, uchar** buffer) const +{ + bool ret = false; + ListItem* item; + item = mapData.maplayers.start; + + for (item = mapData.maplayers.start; item != NULL; item = item->next) + { + MapLayer* layer = item->data; + + if (/*layer->properties.GetProperty("Navigation")->value != NULL &&*/ !layer->properties.GetProperty("Navigation")->value) + continue; + + uchar* map = new uchar[layer->width * layer->height]; + memset(map, 1, layer->width * layer->height); + + for (int y = 0; y < mapData.height; ++y) + { + for (int x = 0; x < mapData.width; ++x) + { + int i = (y * layer->width) + x; + + int tileId = layer->Get(x, y); + TileSet* tileset = (tileId > 0) ? GetTilesetFromTileId(tileId) : NULL; + + if (tileset != NULL) + { + map[i] = (tileId - tileset->firstgid) > 0 ? 0 : 1; + } + } + } + + *buffer = map; + width = mapData.width; + height = mapData.height; + ret = true; + + break; + } + + return ret; +} + +void Map::Draw() +{ + if(mapLoaded == false) + return; + + /* + // L04: DONE 6: Iterate all tilesets and draw all their + // images in 0,0 (you should have only one tileset for now) + + ListItem* tileset; + tileset = mapData.tilesets.start; + + while (tileset != NULL) { + app->render->DrawTexture(tileset->data->texture,0,0); + tileset = tileset->next; + } + */ + + // L05: DONE 5: Prepare the loop to draw all tiles in a layer + DrawTexture() + + ListItem* mapLayerItem; + mapLayerItem = mapData.maplayers.start; + + while (mapLayerItem != NULL) { + + //L06: DONE 7: use GetProperty method to ask each layer if your “Draw” property is true. + if (mapLayerItem->data->properties.GetProperty("Draw") != NULL && mapLayerItem->data->properties.GetProperty("Draw")->value) { + + for (int x = 0; x < mapLayerItem->data->width; x++) + { + for (int y = 0; y < mapLayerItem->data->height; y++) + { + // L05: DONE 9: Complete the draw function + int gid = mapLayerItem->data->Get(x, y); + + //L06: DONE 3: Obtain the tile set using GetTilesetFromTileId + TileSet* tileset = GetTilesetFromTileId(gid); + + SDL_Rect r = tileset->GetTileRect(gid); + iPoint pos = MapToWorld(x, y); + if (mapLayerItem->data->id == 5) + { + app->render->DrawTexture(tileset->texture, + pos.x - ((app->render->camera.x)*(0.2)), + pos.y, + &r); + } + else if (mapLayerItem->data->id == 6) + { + app->render->DrawTexture(tileset->texture, + pos.x - ((app->render->camera.x) * (0.3)), + pos.y, + &r); + } + else if (mapLayerItem->data->id == 7) + { + app->render->DrawTexture(tileset->texture, + pos.x - ((app->render->camera.x) * (0.4)), + pos.y, + &r); + } + else if (mapLayerItem->data->id == 18) + { + app->render->DrawTexture(tileset->texture, + pos.x - ((app->render->camera.x) * (0.1)), + pos.y, + &r); + } + else if (mapLayerItem->data->id == 17) + { + app->render->DrawTexture(tileset->texture, + pos.x + ((app->render->camera.x) * (0.1)), + pos.y, + &r); + } + else + { + app->render->DrawTexture(tileset->texture, + pos.x, + pos.y, + &r); + } + } + } + } + mapLayerItem = mapLayerItem->next; + + } +} + +// L05: DONE 8: Create a method that translates x,y coordinates from map positions to world positions +iPoint Map::MapToWorld(int x, int y) const +{ + iPoint ret; + + ret.x = x * mapData.tileWidth; + ret.y = y * mapData.tileHeight; + + return ret; +} + +// L08: DONE 3: Add method WorldToMap to obtain map coordinates from screen coordinates +iPoint Map::WorldToMap(int x, int y) +{ + iPoint ret(0, 0); + + if (mapData.type == MAPTYPE_ORTHOGONAL) + { + ret.x = x / mapData.tileWidth; + ret.y = y / mapData.tileHeight; + } + else if (mapData.type == MAPTYPE_ISOMETRIC) + { + float halfWidth = mapData.tileWidth * 0.5f; + float halfHeight = mapData.tileHeight * 0.5f; + ret.x = int((x / halfWidth + y / halfHeight) / 2); + ret.y = int((y / halfHeight - x / halfWidth) / 2); + } + else + { + LOG("Unknown map type"); + ret.x = x; ret.y = y; + } + + return ret; +} + +// Get relative Tile rectangle +SDL_Rect TileSet::GetTileRect(int gid) const +{ + SDL_Rect rect = { 0 }; + int relativeIndex = gid - firstgid; + + // L05: DONE 7: Get relative Tile rectangle + rect.w = tileWidth; + rect.h = tileHeight; + rect.x = margin + (tileWidth + spacing) * (relativeIndex % columns); + rect.y = margin + (tileWidth + spacing) * (relativeIndex / columns); + + return rect; +} + + +// L06: DONE 2: Pick the right Tileset based on a tile id +TileSet* Map::GetTilesetFromTileId(int gid) const +{ + ListItem* item = mapData.tilesets.start; + TileSet* set = NULL; + + while (item) + { + set = item->data; + if (gid < (item->data->firstgid + item->data->tilecount)) + { + break; + } + item = item->next; + } + + return set; +} + +// Called before quitting +bool Map::CleanUp() +{ + LOG("Unloading map"); + + // L04: DONE 2: Make sure you clean up any memory allocated from tilesets/map + ListItem* item; + item = mapData.tilesets.start; + + while (item != NULL) + { + RELEASE(item->data); + item = item->next; + } + mapData.tilesets.Clear(); + + // L05: DONE 2: clean up all layer data + // Remove all layers + ListItem* layerItem; + layerItem = mapData.maplayers.start; + + while (layerItem != NULL) + { + RELEASE(layerItem->data); + layerItem = layerItem->next; + } + + mapData.maplayers.Clear(); + + ListItem* collisionsItem; + collisionsItem = collisions.start; + + while (collisionsItem != NULL) + { + collisionsItem->data->body->DestroyFixture(collisionsItem->data->body->GetFixtureList()); + RELEASE(collisionsItem->data); + collisionsItem = collisionsItem->next; + } + + collisions.Clear(); + + ListItem* ObjectGroupItem; + ObjectGroupItem = mapData.mapObjectGroups.start; + + while (ObjectGroupItem != NULL) + { + ListItem* ObjectItem; + ObjectItem = ObjectGroupItem->data->objects.start; + + while (ObjectItem != NULL) + { + RELEASE(ObjectItem->data); + ObjectItem = ObjectItem->next; + } + ObjectGroupItem->data->objects.Clear(); + + RELEASE(ObjectGroupItem->data); + ObjectGroupItem = ObjectGroupItem->next; + } + + mapData.mapObjectGroups.Clear(); + + return true; +} + +// Load new map +bool Map::Load(const char* scene) +{ + + LOG("Loading Map "); + bool ret = true; + + pugi::xml_node configNode = app->LoadConfigFileToVar(); + pugi::xml_node config = configNode.child(scene).child(name.GetString()); + + mapFileName = config.child("mapfile").attribute("path").as_string(); + mapFolder = config.child("mapfolder").attribute("path").as_string(); + + pugi::xml_document mapFileXML; + pugi::xml_parse_result result = mapFileXML.load_file(mapFileName.GetString()); + + if(result == NULL) + { + LOG("Could not load map xml file %s. pugi error: %s", mapFileName, result.description()); + ret = false; + } + + if(ret == true) + { + ret = LoadMap(mapFileXML); + } + + if (ret == true) + { + ret = LoadTileSet(mapFileXML); + } + + // L05: DONE 4: Iterate all layers and load each of them + if (ret == true) + { + ret = LoadAllLayers(mapFileXML.child("map")); + } + if (ret == true) + { + ret = LoadAllObjectGroups(mapFileXML.child("map")); + } + + // L07 DONE 3: Create colliders + CreateColliders(); + + if(ret == true) + { + // L04: DONE 5: LOG all the data loaded iterate all tilesets and LOG everything + + LOG("Successfully parsed map XML file :%s", mapFileName.GetString()); + LOG("width : %d height : %d",mapData.width,mapData.height); + LOG("tile_width : %d tile_height : %d",mapData.tileWidth, mapData.tileHeight); + + LOG("Tilesets----"); + + ListItem* tileset; + tileset = mapData.tilesets.start; + + while (tileset != NULL) { + LOG("name : %s firstgid : %d",tileset->data->name.GetString(), tileset->data->firstgid); + LOG("tile width : %d tile height : %d", tileset->data->tileWidth, tileset->data->tileHeight); + LOG("spacing : %d margin : %d", tileset->data->spacing, tileset->data->margin); + tileset = tileset->next; + } + + // L05: DONE 4: LOG the info for each loaded layer + ListItem* mapLayer; + mapLayer = mapData.maplayers.start; + + while (mapLayer != NULL) { + LOG("id : %d name : %s", mapLayer->data->id, mapLayer->data->name.GetString()); + LOG("Layer width : %d Layer height : %d", mapLayer->data->width, mapLayer->data->height); + mapLayer = mapLayer->next; + } + } + + if(mapFileXML) mapFileXML.reset(); + + mapLoaded = ret; + + return ret; +} + +// L04: DONE 3: Implement LoadMap to load the map properties +bool Map::LoadMap(pugi::xml_node mapFile) +{ + bool ret = true; + pugi::xml_node map = mapFile.child("map"); + + if (map == NULL) + { + LOG("Error parsing map xml file: Cannot find 'map' tag."); + ret = false; + } + else + { + //Load map general properties + mapData.height = map.attribute("height").as_int(); + mapData.width = map.attribute("width").as_int(); + mapData.tileHeight = map.attribute("tileheight").as_int(); + mapData.tileWidth = map.attribute("tilewidth").as_int(); + } + + // L08: DONE 2: Read the prientation of the map + mapData.type = MAPTYPE_UNKNOWN; + if (strcmp(map.attribute("orientation").as_string(), "isometric") == 0) + { + mapData.type = MAPTYPE_ISOMETRIC; + } + if (strcmp(map.attribute("orientation").as_string(), "orthogonal") == 0) + { + mapData.type = MAPTYPE_ORTHOGONAL; + } + + return ret; +} + +// L04: DONE 4: Implement the LoadTileSet function to load the tileset properties +bool Map::LoadTileSet(pugi::xml_node mapFile){ + + bool ret = true; + + pugi::xml_node tileset; + for (tileset = mapFile.child("map").child("tileset"); tileset && ret; tileset = tileset.next_sibling("tileset")) + { + TileSet* set = new TileSet(); + + // L04: DONE 4: Load Tileset attributes + set->name = tileset.attribute("name").as_string(); + set->firstgid = tileset.attribute("firstgid").as_int(); + set->margin = tileset.attribute("margin").as_int(); + set->spacing = tileset.attribute("spacing").as_int(); + set->tileWidth = tileset.attribute("tilewidth").as_int(); + set->tileHeight = tileset.attribute("tileheight").as_int(); + set->columns = tileset.attribute("columns").as_int(); + set->tilecount = tileset.attribute("tilecount").as_int(); + + // L04: DONE 4: Load Tileset image + SString tmp("%s%s", mapFolder.GetString(), tileset.child("image").attribute("source").as_string()); + set->texture = app->tex->Load(tmp.GetString()); + + mapData.tilesets.Add(set); + } + + return ret; +} + +// Lbool ret = true; + + //L05: DONE 3: Implement a function that loads a single layer layer +bool Map::LoadLayer(pugi::xml_node& node, MapLayer* layer) +{ + bool ret = true; + //Load the attributes + layer->id = node.attribute("id").as_int(); + layer->name = node.attribute("name").as_string(); + layer->width = node.attribute("width").as_int(); + layer->height = node.attribute("height").as_int(); + + //L06: DONE 6 Call Load Propoerties + LoadProperties(node, layer->properties); + + //Reserve the memory for the data + layer->data = new uint[layer->width * layer->height]; + memset(layer->data, 0, layer->width * layer->height); + + //Iterate over all the tiles and assign the values + pugi::xml_node tile; + int i = 0; + for (tile = node.child("data").child("tile"); tile && ret; tile = tile.next_sibling("tile")) + { + layer->data[i] = tile.attribute("gid").as_int(); + i++; + } + + return ret; +} + +// L05: DONE 4: Iterate all layers and load each of them +bool Map::LoadAllLayers(pugi::xml_node mapNode) { + bool ret = true; + + for (pugi::xml_node layerNode = mapNode.child("layer"); layerNode && ret; layerNode = layerNode.next_sibling("layer")) + { + //Load the layer + MapLayer* mapLayer = new MapLayer(); + ret = LoadLayer(layerNode, mapLayer); + + //add the layer to the map + mapData.maplayers.Add(mapLayer); + } + + return ret; +} + +bool Map::LoadObject(pugi::xml_node& node, Object* object) +{ + bool ret = true; + int arrLenght = 0; + //Load the attributes + object->id = node.attribute("id").as_int(); + object->x = node.attribute("x").as_int(); + object->y = node.attribute("y").as_int(); + + //L06: DONE 6 Call Load Propoerties + SString polygonString; + polygonString = node.child("polygon").attribute("points").as_string(); + + + //Reserve the memory for the data + for (int a = 0; a < polygonString.Length(); a++, arrLenght++) + { + if ((polygonString.GetTerm(a) != ' ') && (polygonString.GetTerm(a) != ',')) + { + arrLenght--; + } + } + + object->chainPoints = new int[arrLenght]; + memset(object->chainPoints, 0, arrLenght); + + + //char* temp = strtok(polygonString.GetCharString(), " "); + char* temp; + int arr[100]; + int count = 0; + int j = 0; + bool negative = false; + /*SString clearString; + while (temp != NULL) + { + clearString += temp; + }*/ + LOG("number %s", polygonString.GetString()); + for (uint i = 0; i < polygonString.Length(); i++,j++) + { + //LOG("number %s", polygonString.GetTerm(i)); + if ((polygonString.GetTerm(i) != ' ') && (polygonString.GetTerm(i) != ',')) + { + if(polygonString.GetTerm(i) == '-') + { + negative = true; + } + else + { + + arr[count] = ((int)polygonString.GetTerm(i)) - 48; + LOG("%i", arr[count]); + if (negative == true) + { + arr[count] *= -1; + negative = false; + } + count++; + } + + j--; + } + else + { + count--; + int aux = 0; + for (int a = 0; count >= 0; a++, count--) + { + if (aux < 0) + { + aux -= arr[a] * (pow(10, count)); + } + else + { + aux += arr[a] * (pow(10, count)); + } + + } + object->chainPoints[j] = aux; + LOG("AUX NUMBER %i", object->chainPoints[j]); + count = 0; + } + } + count--; + int aux = 0; + for (int a = 0; count >= 0; a++, count--) + { + aux += arr[a] * (pow(10, count)); + } + object->chainPoints[j] = aux; + object->size = arrLenght + 1; + LOG("AUX NUMBER %i", object->chainPoints[j]); + + polygonString.Clear(); + + return ret; +} + +bool Map::LoadObjectGroup(pugi::xml_node& node, ObjectGroup* objectGroup) +{ + bool ret = true; + //Load the attributes + objectGroup->id = node.attribute("id").as_int(); + objectGroup->name = node.attribute("name").as_string(); + + + for (pugi::xml_node objectNode = node.child("object"); objectNode && ret; objectNode = objectNode.next_sibling("object")) + { + //Load the object + Object* mapObject = new Object(); + ret = LoadObject(objectNode, mapObject); + + //add the object to the map + objectGroup->objects.Add(mapObject); + } + + return ret; +} + +bool Map::LoadAllObjectGroups(pugi::xml_node mapNode) +{ + bool ret = true; + + for (pugi::xml_node objectGroupNode = mapNode.child("objectgroup"); objectGroupNode && ret; objectGroupNode = objectGroupNode.next_sibling("objectgroup")) + { + //Load the objectGroup + ObjectGroup* mapObjectGroup = new ObjectGroup(); + ret = LoadObjectGroup(objectGroupNode, mapObjectGroup); + + //add the objectGroup to the map + mapData.mapObjectGroups.Add(mapObjectGroup); + } + + return ret; +} + +// L06: DONE 6: Load a group of properties from a node and fill a list with it +bool Map::LoadProperties(pugi::xml_node& node, Properties& properties) +{ + bool ret = false; + + for (pugi::xml_node propertieNode = node.child("properties").child("property"); propertieNode; propertieNode = propertieNode.next_sibling("property")) + { + Properties::Property* p = new Properties::Property(); + p->name = propertieNode.attribute("name").as_string(); + p->value = propertieNode.attribute("value").as_bool(); // (!!) I'm assuming that all values are bool !! + + properties.list.Add(p); + } + + return ret; +} + +bool Map::CreateColliders() +{ + bool ret = true; + + //CREATE TILE COLLIDERS + ListItem* mapLayerItem; + mapLayerItem = mapData.maplayers.start; + + while (mapLayerItem != NULL) + { + if (mapLayerItem->data->name == "CollisionMap") + { + int halfTileHeight = mapData.tileHeight / 2; + int halfTileWidth = mapData.tileWidth / 2; + + for (int x = 0; x < mapLayerItem->data->width; x++) + { + for (int y = 0; y < mapLayerItem->data->height; y++) + { + if (mapLayerItem->data->Get(x, y) == 3139) + { + iPoint pos = MapToWorld(x, y); + PhysBody* c1 = nullptr; + c1 = app->physics->CreateRectangle(pos.x + halfTileHeight, pos.y + halfTileWidth, mapData.tileWidth, mapData.tileHeight, STATIC); + c1->ctype = ColliderType::PLATFORM; + collisions.Add(c1); + } + + } + } + } + mapLayerItem = mapLayerItem->next; + } + + //CREATE GAMEOBJECT COLLIDERS + ListItem* mapObjectGroupItem; + mapObjectGroupItem = mapData.mapObjectGroups.start; + + while (mapObjectGroupItem != NULL) + { + if (mapObjectGroupItem->data->name == "CollisionMap") + { + ListItem* mapObjectItem; + mapObjectItem = mapObjectGroupItem->data->objects.start; + while (mapObjectItem != NULL) + { + PhysBody* c1 = nullptr; + c1 = app->physics->CreateChain(mapObjectItem->data->x, mapObjectItem->data->y, mapObjectItem->data->chainPoints, mapObjectItem->data->size, STATIC); + c1->ctype = ColliderType::PLATFORM; + collisions.Add(c1); + + + mapObjectItem = mapObjectItem->next; + } + } + else if (mapObjectGroupItem->data->name == "DeathCollision") + { + ListItem* mapObjectItem; + mapObjectItem = mapObjectGroupItem->data->objects.start; + while (mapObjectItem != NULL) + { + PhysBody* c1 = nullptr; + c1 = app->physics->CreateSensorChain(mapObjectItem->data->x, mapObjectItem->data->y, mapObjectItem->data->chainPoints, mapObjectItem->data->size, STATIC); + c1->ctype = ColliderType::DEATH; + collisions.Add(c1); + + + mapObjectItem = mapObjectItem->next; + } + } + else if (mapObjectGroupItem->data->name == "WinCon") + { + ListItem* mapObjectItem; + mapObjectItem = mapObjectGroupItem->data->objects.start; + while (mapObjectItem != NULL) + { + PhysBody* c1 = nullptr; + c1 = app->physics->CreateSensorChain(mapObjectItem->data->x, mapObjectItem->data->y, mapObjectItem->data->chainPoints, mapObjectItem->data->size, STATIC); + c1->ctype = ColliderType::WIN; + collisions.Add(c1); + + + mapObjectItem = mapObjectItem->next; + } + } + mapObjectGroupItem = mapObjectGroupItem->next; + } + /*int arr[16] = { 0,0,560,0,560,16,464,16,464,128,480,144,512,176,0,176 }; + int arr2[22] = { 0,0,192,0,208,-16,240,-16 ,272,-16 ,272,-48 ,320,-48 ,368,-80 ,416,-80 ,416,64 ,0,64 }; + app->physics->CreateChain(608, 416, arr2, 22, STATIC); + app->physics->CreateChain(0, 304, arr, 16, STATIC);*/ + return ret; +} + + +// L06: DONE 7: Ask for the value of a custom property +Properties::Property* Properties::GetProperty(const char* name) +{ + ListItem* item = list.start; + Property* p = NULL; + + while (item) + { + if (item->data->name == name) { + p = item->data; + break; + } + item = item->next; + } + + return p; +} + + diff --git a/Template/Game/Source/Map.h b/Template/Game/Source/Map.h new file mode 100644 index 0000000..4e9d679 --- /dev/null +++ b/Template/Game/Source/Map.h @@ -0,0 +1,209 @@ +#ifndef __MAP_H__ +#define __MAP_H__ + +#include "Module.h" +#include "List.h" +#include "Point.h" + +#include "PugiXml\src\pugixml.hpp" + +// L04: DONE 2: Create a struct to hold information for a TileSet +// Ignore Terrain Types and Tile Types for now, but we want the image! +struct TileSet +{ + SString name; + int firstgid; + int margin; + int spacing; + int tileWidth; + int tileHeight; + int columns; + int tilecount; + + SDL_Texture* texture; + + // L05: DONE 7: Create a method that receives a tile id and returns it's Rectfind the Rect associated with a specific tile id + SDL_Rect GetTileRect(int gid) const; +}; + +// We create an enum for map type, just for convenience, +// NOTE: Platformer game will be of type ORTHOGONAL +enum MapTypes +{ + MAPTYPE_UNKNOWN = 0, + MAPTYPE_ORTHOGONAL, + MAPTYPE_ISOMETRIC, + MAPTYPE_STAGGERED +}; + +// L06: DONE 5: Create a generic structure to hold properties +struct Properties +{ + struct Property + { + SString name; + bool value; + }; + + ~Properties() + { + //... + ListItem* item; + item = list.start; + + while (item != NULL) + { + RELEASE(item->data); + item = item->next; + } + + list.Clear(); + } + + // L06: DONE 7: Method to ask for the value of a custom property + Property* GetProperty(const char* name); + + List list; +}; + +// L05: DONE 1: Create a struct for the map layer +struct MapLayer +{ + SString name; + int id; + int width; + int height; + uint* data; + + // L06: DONE: Store custom properties + Properties properties; + + MapLayer() : data(NULL) + {} + + ~MapLayer() + { + RELEASE(data); + } + + // L05: DONE 6: Short function to get the gid value of x,y + inline uint Get(int x, int y) const + { + return data[(y * width) + x]; + } +}; + +struct Object +{ + int id; + int x, y; + int* chainPoints; + int size; + + inline int Get(int x) const + { + return chainPoints[x]; + } + Object() : chainPoints(NULL) + {} + + ~Object() + { + RELEASE(chainPoints); + } +}; +struct ObjectGroup +{ + SString name; + int id; + + List objects; +}; + +// L04: DONE 1: Create a struct needed to hold the information to Map node +struct MapData +{ + int width; + int height; + int tileWidth; + int tileHeight; + List tilesets; + MapTypes type; + + // L05: DONE 2: Add a list/array of layers to the map + List maplayers; + + List mapObjectGroups; + +}; + + +class Map : public Module +{ +public: + + Map(bool startEnabled); + + // Destructor + virtual ~Map(); + + // Called before render is available + bool Awake(pugi::xml_node& conf); + + // Called each loop iteration + void Draw(); + + // Called before quitting + bool CleanUp(); + + // Load new map + bool Load(const char* scene); + + // L05: DONE 8: Create a method that translates x,y coordinates from map positions to world positions + iPoint MapToWorld(int x, int y) const; + + iPoint WorldToMap(int x, int y); + + // L12: Create walkability map for pathfinding + bool CreateWalkabilityMap(int& width, int& height, uchar** buffer) const; + + bool CreateColliders(); + +private: + + bool LoadMap(pugi::xml_node mapFile); + + // L04: DONE 4: Create and call a private function to load a tileset + bool LoadTileSet(pugi::xml_node mapFile); + + // L05 + bool LoadLayer(pugi::xml_node& node, MapLayer* layer); + bool LoadAllLayers(pugi::xml_node mapNode); + + bool LoadObject(pugi::xml_node& node, Object* object); + bool LoadObjectGroup(pugi::xml_node& node, ObjectGroup* objectGroup); + bool LoadAllObjectGroups(pugi::xml_node mapNode); + + // L06: DONE 2 + TileSet* GetTilesetFromTileId(int gid) const; + + // L06: DONE 6: Load a group of properties + bool LoadProperties(pugi::xml_node& node, Properties& properties); + + + +public: + + // L04: DONE 1: Declare a variable data of the struct MapData + MapData mapData; + List collisions; + + +private: + + SString mapFileName; + SString mapFolder; + bool mapLoaded; +}; + +#endif // __MAP_H__ \ No newline at end of file diff --git a/Template/Game/Source/Module.h b/Template/Game/Source/Module.h new file mode 100644 index 0000000..a9c576f --- /dev/null +++ b/Template/Game/Source/Module.h @@ -0,0 +1,104 @@ +#ifndef __MODULE_H__ +#define __MODULE_H__ + +#include "SString.h" + +#include "PugiXml/src/pugixml.hpp" + +class App; +class PhysBody; +class GuiControl; + +class Module +{ +public: + + Module(bool startEnabled = false) : state(startEnabled) + {} + + bool Init() + { + return true; + } + + // Called before render is available + // L01: DONE 5: Sending config file to all modules + virtual bool Awake(pugi::xml_node&) + { + return true; + } + + // Called before the first frame + virtual bool Start() + { + return true; + } + + // Called each loop iteration + virtual bool PreUpdate() + { + return true; + } + + // Called each loop iteration + virtual bool Update(float dt) + { + return true; + } + + // Called each loop iteration + virtual bool PostUpdate() + { + return true; + } + + // Called before quitting + virtual bool CleanUp() + { + return true; + } + + virtual bool LoadState(pugi::xml_node&) + { + return true; + } + + virtual bool SaveState(pugi::xml_node&) + { + return true; + } + + virtual void OnCollision(PhysBody* bodyA, PhysBody* bodyB) + { + + } + + virtual bool OnGuiMouseClickEvent(GuiControl* control) + { + return true; + } + + void Enable() { + if (!state) { + state = true; + Start(); + } + } + + void Disable() { + if (state) { + state = false; + CleanUp(); + } + } + + inline bool IsEnabled() const { return state; } + +public: + + SString name; + bool state; + +}; + +#endif // __MODULE_H__ \ No newline at end of file diff --git a/Template/Game/Source/Physics.cpp b/Template/Game/Source/Physics.cpp new file mode 100644 index 0000000..c57fb02 --- /dev/null +++ b/Template/Game/Source/Physics.cpp @@ -0,0 +1,473 @@ +#include "Physics.h" +#include "Input.h" +#include "app.h" +#include "Log.h" +#include "math.h" +#include "SDL/include/SDL_keycode.h" +#include "Defs.h" +#include "Log.h" +#include "Render.h" +#include "Player.h" +#include "Window.h" + +#include "Box2D/Box2D/Box2D.h" + +// Tell the compiler to reference the compiled Box2D libraries +#ifdef _DEBUG +#pragma comment( lib, "../Game/Source/External/Box2D/libx86/DebugLib/Box2D.lib" ) +#else +#pragma comment( lib, "../Game/Source/External/Box2D/libx86/ReleaseLib/Box2D.lib" ) +#endif + +Physics::Physics(bool startEnabled) : Module(startEnabled) +{ + // Initialise all the internal class variables, at least to NULL pointer + world = NULL; + debug = false; + name.Create("physics"); +} + +// Destructor +Physics::~Physics() +{ + // You should do some memory cleaning here, if required +} + +bool Physics::Start() +{ + LOG("Creating Physics 2D environment"); + + // Create a new World + world = new b2World(b2Vec2(GRAVITY_X, -GRAVITY_Y)); + + // Set this module as a listener for contacts + world->SetContactListener(this); + + return true; +} + +// +bool Physics::PreUpdate() +{ + //if (app->pauseMenus->isPaused()) { return true; } //This is to use in the case a "game pause" is implemented for skiping entities update + + bool ret = true; + + // Step (update) the World + // WARNING: WE ARE STEPPING BY CONSTANT 1/60 SECONDS! + world->Step(1.0f / 60.0f, 6, 2); + + // Because Box2D does not automatically broadcast collisions/contacts with sensors, + // we have to manually search for collisions and "call" the equivalent to the ModulePhysics::BeginContact() ourselves... + for (b2Contact* c = world->GetContactList(); c; c = c->GetNext()) + { + // For each contact detected by Box2D, see if the first one colliding is a sensor + if (c->IsTouching() && c->GetFixtureA()->IsSensor()) + { + // If so, we call the OnCollision listener function (only of the sensor), passing as inputs our custom PhysBody classes + PhysBody* pb1 = (PhysBody*)c->GetFixtureA()->GetBody()->GetUserData(); + PhysBody* pb2 = (PhysBody*)c->GetFixtureB()->GetBody()->GetUserData(); + + if (pb1 && pb2 && pb1->listener) + pb1->listener->OnCollision(pb1, pb2); + } + } + + return ret; +} + +PhysBody* Physics::CreateRectangle(int x, int y, int width, int height, bodyType type) +{ + b2BodyDef body; + + if (type == DYNAMIC) body.type = b2_dynamicBody; + if (type == STATIC) body.type = b2_staticBody; + if (type == KINEMATIC) body.type = b2_kinematicBody; + + body.position.Set(PIXEL_TO_METERS(x), PIXEL_TO_METERS(y)); + + b2Body* b = world->CreateBody(&body); + b2PolygonShape box; + box.SetAsBox(PIXEL_TO_METERS(width) * 0.5f, PIXEL_TO_METERS(height) * 0.5f); + + b2FixtureDef fixture; + fixture.shape = &box; + fixture.density = 0.0f; + b->ResetMassData(); + + b->CreateFixture(&fixture); + + PhysBody* pbody = new PhysBody(); + pbody->body = b; + b->SetUserData(pbody); + pbody->width = width * 0.5f; + pbody->height = height * 0.5f; + + return pbody; +} + +PhysBody* Physics::CreateCircle(int x, int y, int radious, bodyType type, bool sensor) +{ + // Create BODY at position x,y + b2BodyDef body; + + if (type == DYNAMIC) body.type = b2_dynamicBody; + if (type == STATIC) body.type = b2_staticBody; + if (type == KINEMATIC) body.type = b2_kinematicBody; + + body.position.Set(PIXEL_TO_METERS(x), PIXEL_TO_METERS(y)); + + // Add BODY to the world + b2Body* b = world->CreateBody(&body); + + // Create SHAPE + b2CircleShape circle; + circle.m_radius = PIXEL_TO_METERS(radious); + + // Create FIXTURE + b2FixtureDef fixture; + fixture.shape = &circle; + fixture.density = 1.0f; + + if (sensor) { fixture.isSensor = true; } + else { b->ResetMassData(); } + + // Add fixture to the BODY + b->CreateFixture(&fixture); + + // Create our custom PhysBody class + PhysBody* pbody = new PhysBody(); + pbody->body = b; + b->SetUserData(pbody); + pbody->width = radious * 0.5f; + pbody->height = radious * 0.5f; + + // Return our PhysBody class + return pbody; +} + +PhysBody* Physics::CreateRectangleSensor(int x, int y, int width, int height, bodyType type) +{ + // Create BODY at position x,y + b2BodyDef body; + if (type == DYNAMIC) body.type = b2_dynamicBody; + if (type == STATIC) body.type = b2_staticBody; + if (type == KINEMATIC) body.type = b2_kinematicBody; + body.position.Set(PIXEL_TO_METERS(x), PIXEL_TO_METERS(y)); + + // Add BODY to the world + b2Body* b = world->CreateBody(&body); + + // Create SHAPE + b2PolygonShape box; + box.SetAsBox(PIXEL_TO_METERS(width) * 0.5f, PIXEL_TO_METERS(height) * 0.5f); + + // Create FIXTURE + b2FixtureDef fixture; + fixture.shape = &box; + fixture.density = 1.0f; + fixture.isSensor = true; + + // Add fixture to the BODY + b->CreateFixture(&fixture); + + // Create our custom PhysBody class + PhysBody* pbody = new PhysBody(); + pbody->body = b; + b->SetUserData(pbody); + pbody->width = width; + pbody->height = height; + + // Return our PhysBody class + return pbody; +} + +PhysBody* Physics::CreateChain(int x, int y, int* points, int size, bodyType type) +{ + // Create BODY at position x,y + b2BodyDef body; + if (type == DYNAMIC) body.type = b2_dynamicBody; + if (type == STATIC) body.type = b2_staticBody; + if (type == KINEMATIC) body.type = b2_kinematicBody; + body.position.Set(PIXEL_TO_METERS(x), PIXEL_TO_METERS(y)); + + // Add BODY to the world + b2Body* b = world->CreateBody(&body); + + // Create SHAPE + b2ChainShape shape; + b2Vec2* p = new b2Vec2[size / 2]; + for (uint i = 0; i < size / 2; ++i) + { + p[i].x = PIXEL_TO_METERS(points[i * 2 + 0]); + p[i].y = PIXEL_TO_METERS(points[i * 2 + 1]); + } + shape.CreateLoop(p, size / 2); + + // Create FIXTURE + b2FixtureDef fixture; + fixture.shape = &shape; + + // Add fixture to the BODY + b->CreateFixture(&fixture); + + // Clean-up temp array + delete p; + + // Create our custom PhysBody class + PhysBody* pbody = new PhysBody(); + pbody->body = b; + b->SetUserData(pbody); + pbody->width = pbody->height = 0; + + // Return our PhysBody class + return pbody; +} + +PhysBody* Physics::CreateSensorChain(int x, int y, int* points, int size, bodyType type) +{ + // Create BODY at position x,y + b2BodyDef body; + if (type == DYNAMIC) body.type = b2_dynamicBody; + if (type == STATIC) body.type = b2_staticBody; + if (type == KINEMATIC) body.type = b2_kinematicBody; + body.position.Set(PIXEL_TO_METERS(x), PIXEL_TO_METERS(y)); + + // Add BODY to the world + b2Body* b = world->CreateBody(&body); + + // Create SHAPE + b2ChainShape shape; + b2Vec2* p = new b2Vec2[size / 2]; + for (uint i = 0; i < size / 2; ++i) + { + p[i].x = PIXEL_TO_METERS(points[i * 2 + 0]); + p[i].y = PIXEL_TO_METERS(points[i * 2 + 1]); + } + shape.CreateLoop(p, size / 2); + + // Create FIXTURE + b2FixtureDef fixture; + fixture.shape = &shape; + fixture.density = 1.0f; + fixture.isSensor = true; + + // Add fixture to the BODY + b->CreateFixture(&fixture); + + // Clean-up temp array + delete p; + + // Create our custom PhysBody class + PhysBody* pbody = new PhysBody(); + pbody->body = b; + b->SetUserData(pbody); + pbody->width = pbody->height = 0; + + // Return our PhysBody class + return pbody; +} +// +bool Physics::PostUpdate() +{ + bool ret = true; + + // Iterate all objects in the world and draw the bodies + if (debug) + { + for (b2Body* b = world->GetBodyList(); b; b = b->GetNext()) + { + for (b2Fixture* f = b->GetFixtureList(); f; f = f->GetNext()) + { + switch (f->GetType()) + { + // Draw circles ------------------------------------------------ + case b2Shape::e_circle: + { + b2CircleShape* shape = (b2CircleShape*)f->GetShape(); + uint width, height; + app->win->GetWindowSize(width, height); + b2Vec2 pos = f->GetBody()->GetPosition(); + app->render->DrawCircle(METERS_TO_PIXELS(pos.x) * app->win->GetScale(), METERS_TO_PIXELS(pos.y) * app->win->GetScale(), METERS_TO_PIXELS(shape->m_radius) * app->win->GetScale(), 255, 255, 255); + } + break; + + // Draw polygons ------------------------------------------------ + case b2Shape::e_polygon: + { + b2PolygonShape* polygonShape = (b2PolygonShape*)f->GetShape(); + int32 count = polygonShape->GetVertexCount(); + b2Vec2 prev, v; + + for (int32 i = 0; i < count; ++i) + { + v = b->GetWorldPoint(polygonShape->GetVertex(i)); + if (i > 0) + app->render->DrawLine(METERS_TO_PIXELS(prev.x), METERS_TO_PIXELS(prev.y), METERS_TO_PIXELS(v.x), METERS_TO_PIXELS(v.y), 255, 255, 100); + + prev = v; + } + + v = b->GetWorldPoint(polygonShape->GetVertex(0)); + app->render->DrawLine(METERS_TO_PIXELS(prev.x), METERS_TO_PIXELS(prev.y), METERS_TO_PIXELS(v.x), METERS_TO_PIXELS(v.y), 255, 100, 100); + } + break; + + // Draw chains contour ------------------------------------------- + case b2Shape::e_chain: + { + b2ChainShape* shape = (b2ChainShape*)f->GetShape(); + b2Vec2 prev, v; + + for (int32 i = 0; i < shape->m_count; ++i) + { + v = b->GetWorldPoint(shape->m_vertices[i]); + if (i > 0) + app->render->DrawLine(METERS_TO_PIXELS(prev.x), METERS_TO_PIXELS(prev.y), METERS_TO_PIXELS(v.x), METERS_TO_PIXELS(v.y), 100, 255, 100); + prev = v; + } + + v = b->GetWorldPoint(shape->m_vertices[0]); + app->render->DrawLine(METERS_TO_PIXELS(prev.x), METERS_TO_PIXELS(prev.y), METERS_TO_PIXELS(v.x), METERS_TO_PIXELS(v.y), 100, 255, 100); + } + break; + + // Draw a single segment(edge) ---------------------------------- + case b2Shape::e_edge: + { + b2EdgeShape* shape = (b2EdgeShape*)f->GetShape(); + b2Vec2 v1, v2; + + v1 = b->GetWorldPoint(shape->m_vertex0); + v1 = b->GetWorldPoint(shape->m_vertex1); + app->render->DrawLine(METERS_TO_PIXELS(v1.x), METERS_TO_PIXELS(v1.y), METERS_TO_PIXELS(v2.x), METERS_TO_PIXELS(v2.y), 100, 100, 255); + } + break; + } + + } + } + + if (app->input->GetKey(SDL_SCANCODE_LEFT) == KEY_REPEAT) + app->render->camera.x += 10; + + if (app->input->GetKey(SDL_SCANCODE_RIGHT) == KEY_REPEAT) + app->render->camera.x -= 10; + + if (app->input->GetKey(SDL_SCANCODE_UP) == KEY_REPEAT) + app->render->camera.y -= 10; + + if (app->input->GetKey(SDL_SCANCODE_DOWN) == KEY_REPEAT) + app->render->camera.y += 10; + } + + return ret; +} + +// Called before quitting +bool Physics::CleanUp() +{ + LOG("Destroying physics world"); + + // Delete the whole physics world! + delete world; + + return true; +} + +// Callback function to collisions with Box2D +void Physics::BeginContact(b2Contact* contact) +{ + // Call the OnCollision listener function to bodies A and B, passing as inputs our custom PhysBody classes + PhysBody* physA = (PhysBody*)contact->GetFixtureA()->GetBody()->GetUserData(); + PhysBody* physB = (PhysBody*)contact->GetFixtureB()->GetBody()->GetUserData(); + + if (physA && physA->listener != NULL) + physA->listener->OnCollision(physA, physB); + + if (physB && physB->listener != NULL) + physB->listener->OnCollision(physB, physA); +} + +void Physics::EndContact(b2Contact* contact) +{ + // Call the OnCollision listener function to bodies A and B, passing as inputs our custom PhysBody classes + PhysBody* physA = (PhysBody*)contact->GetFixtureA()->GetBody()->GetUserData(); + PhysBody* physB = (PhysBody*)contact->GetFixtureB()->GetBody()->GetUserData(); + + if (physA && physA->listener != NULL) + physA->listener->EndCollision(physA, physB); + + if (physB && physB->listener != NULL) + physB->listener->EndCollision(physB, physA); +} + +//--------------- PhysBody + +void PhysBody::GetPosition(int& x, int& y) const +{ + b2Vec2 pos = body->GetPosition(); + x = METERS_TO_PIXELS(pos.x) - (width); + y = METERS_TO_PIXELS(pos.y) - (height); +} + +void PhysBody::SetPosition(int x, int y) +{ + b2Vec2 pos = { PIXEL_TO_METERS(x), PIXEL_TO_METERS(y) }; + body->SetTransform(pos, 0); +} + +float PhysBody::GetRotation() const +{ + return RADTODEG * body->GetAngle(); +} + +bool PhysBody::Contains(int x, int y) const +{ + b2Vec2 p(PIXEL_TO_METERS(x), PIXEL_TO_METERS(y)); + + const b2Fixture* fixture = body->GetFixtureList(); + + while (fixture != NULL) + { + if (fixture->GetShape()->TestPoint(body->GetTransform(), p) == true) + return true; + fixture = fixture->GetNext(); + } + + return false; +} + +int PhysBody::RayCast(int x1, int y1, int x2, int y2, float& normal_x, float& normal_y) const +{ + int ret = -1; + + b2RayCastInput input; + b2RayCastOutput output; + + input.p1.Set(PIXEL_TO_METERS(x1), PIXEL_TO_METERS(y1)); + input.p2.Set(PIXEL_TO_METERS(x2), PIXEL_TO_METERS(y2)); + input.maxFraction = 1.0f; + + const b2Fixture* fixture = body->GetFixtureList(); + + while (fixture != NULL) + { + if (fixture->GetShape()->RayCast(&output, input, body->GetTransform(), 0) == true) + { + // do we want the normal ? + + float fx = x2 - x1; + float fy = y2 - y1; + float dist = sqrtf((fx * fx) + (fy * fy)); + + normal_x = output.normal.x; + normal_y = output.normal.y; + + return output.fraction * dist; + } + fixture = fixture->GetNext(); + } + + return ret; +} \ No newline at end of file diff --git a/Template/Game/Source/Physics.h b/Template/Game/Source/Physics.h new file mode 100644 index 0000000..63cf20a --- /dev/null +++ b/Template/Game/Source/Physics.h @@ -0,0 +1,99 @@ +#pragma once +#include "Module.h" +#include "Entity.h" + +#include "Box2D/Box2D/Box2D.h" + +#define GRAVITY_X 0.0f +#define GRAVITY_Y -10.0f + +#define PIXELS_PER_METER 50.0f // if touched change METER_PER_PIXEL too +#define METER_PER_PIXEL 0.02f // this is 1 / PIXELS_PER_METER ! + +#define METERS_TO_PIXELS(m) ((int) floor(PIXELS_PER_METER * m)) +#define PIXEL_TO_METERS(p) ((float) METER_PER_PIXEL * p) + +#define DEGTORAD 0.0174532925199432957f +#define RADTODEG 57.295779513082320876f + +// types of bodies +enum bodyType { + DYNAMIC, + STATIC, + KINEMATIC +}; + +enum class ColliderType { + PLAYER, + COIN, + LIFE, + ITEM, + PLATFORM, + DEATH, + WIN, + ATTACK, + ENEMY, + UNKNOWN + + // .. +}; + +// Small class to return to other modules to track position and rotation of physics bodies +class PhysBody +{ +public: + PhysBody() : listener(NULL), body(NULL), ctype(ColliderType::UNKNOWN) + {} + + ~PhysBody() {} + + void GetPosition(int& x, int& y) const; + float GetRotation() const; + bool Contains(int x, int y) const; + int RayCast(int x1, int y1, int x2, int y2, float& normal_x, float& normal_y) const; + void SetPosition(int x, int y); + + + +public: + int width, height; + b2Body* body; + Entity* listener; + ColliderType ctype; +}; + +// Module -------------------------------------- +class Physics : public Module, public b2ContactListener +{ +public: + + // Constructors & Destructors + Physics(bool startEnabled); + ~Physics(); + + // Main module steps + bool Start(); + bool PreUpdate(); + bool PostUpdate(); + bool CleanUp(); + + // Create basic physics objects + PhysBody* CreateRectangle(int x, int y, int width, int height, bodyType type); + PhysBody* CreateCircle(int x, int y, int radious, bodyType type, bool sensor = false); + PhysBody* CreateRectangleSensor(int x, int y, int width, int height, bodyType type); + PhysBody* CreateChain(int x, int y, int* points, int size, bodyType type); + PhysBody* CreateSensorChain(int x, int y, int* points, int size, bodyType type); + + // b2ContactListener --- + void BeginContact(b2Contact* contact); + void EndContact(b2Contact* contact); + + + // Debug mode + bool debug; + +private: + + // Box2D World + b2World* world; +}; \ No newline at end of file diff --git a/Template/Game/Source/Player.cpp b/Template/Game/Source/Player.cpp new file mode 100644 index 0000000..b6733eb --- /dev/null +++ b/Template/Game/Source/Player.cpp @@ -0,0 +1,105 @@ +#include "Player.h" +#include "App.h" +#include "Textures.h" +#include "Audio.h" +#include "Input.h" +#include "Render.h" +#include "Log.h" +#include "Point.h" +#include "Physics.h" + +#define FACING_LEFT false +#define FACING_RIGHT true +#define IDLE_STATIC 1 +#define IDLE 2 +#define RUNNING 3 +#define JUMPING 4 +#define FALLING 5 +#define CHARGING 6 +#define DYING 7 +#define INITCHARGING 8 +#define ENDCHARGING 9 +#define WINING 10 +#define ATTACKING 11 +#define SPECIAL 12 + + +Player::Player() : Entity(EntityType::PLAYER) +{ + name.Create("Player"); + +} + +Player::~Player() { + +} + +bool Player::Awake() { + //Get Player parameters from XML + position.x = parameters.attribute("x").as_int(); + position.y = parameters.attribute("y").as_int(); + texturePath = parameters.attribute("texturepath").as_string(); + + return true; +} + +bool Player::Start() { + + //initilize textures + texture = app->tex->Load(texturePath); + + // L07 DONE 5: Add physics to the player - initialize physics body + //pbody = app->physics->CreateRectangle(position.x+16, position.y+16, 32, 50, bodyType::DYNAMIC); + pbody = app->physics->CreateCircle(position.x, position.y, 20, bodyType::DYNAMIC); + + // L07 DONE 6: Assign player class (using "this") to the listener of the pbody. This makes the Physics module to call the OnCollision method + pbody->listener = this; + + // L07 DONE 7: Assign collider type + pbody->ctype = ColliderType::PLAYER; + + currentAnim = &idlestaticleftanim; + facing = FACING_RIGHT; + dieLeftAnim.Reset(); + dieRightAnim.Reset(); + + return true; +} + +bool Player::Update() +{ + //PLAYER MOVEMENT + + //WINNING SEQUENCE + + //ANIMATION STATE MACHINE + + return true; +} + +bool Player::PostUpdate() { + SDL_Rect rect = currentAnim->GetCurrentFrame(); + app->render->DrawTexture(texture, position.x - 38, position.y - 27, &rect); + currentAnim->Update(); + + return true; +} + +bool Player::CleanUp() +{ + return true; +} + +void Player::OnCollision(PhysBody* physA, PhysBody* physB) { + +} + +void Player::EndCollision(PhysBody* physA, PhysBody* physB) +{ + +} + +PhysBody* Player::getpBody() +{ + return pbody; +} diff --git a/Template/Game/Source/Player.h b/Template/Game/Source/Player.h new file mode 100644 index 0000000..70a0aac --- /dev/null +++ b/Template/Game/Source/Player.h @@ -0,0 +1,92 @@ +#ifndef __PLAYER_H__ +#define __PLAYER_H__ + +#include "Entity.h" +#include "Point.h" +#include "Animation.h" +#include "SDL/include/SDL.h" +#include "List.h" + +struct SDL_Texture; + +class Player : public Entity +{ +public: + + Player(); + + virtual ~Player(); + + bool Awake(); + + bool Start(); + + bool Update(); + + bool PostUpdate(); + + bool CleanUp(); + + // L07 DONE 6: Define OnCollision function for the player. Check the virtual function on Entity class + void OnCollision(PhysBody* physA, PhysBody* physB); + + void EndCollision(PhysBody* physA, PhysBody* physB); + + int GetState() const { return state; } + + PhysBody* getpBody(); + + +public: + + Animation* currentAnim = nullptr; + + Animation idlestaticleftanim; + Animation statictodynamicleftanim; + Animation idleRightAnim; + Animation idleLeftAnim; + Animation runningRightAnim; + Animation runningLeftAnim; + Animation dieRightAnim; + Animation dieLeftAnim; + Animation jumpRightAnim; + Animation jumpLeftAnim; + Animation fallRightAnim; + Animation fallLeftAnim; + Animation initChargeAnim; + Animation chargeAnim; + Animation endChargeAnim; + Animation attackRightAnim; + Animation attackLeftAnim; + Animation specialRightAnim; + Animation specialLeftAnim; + + + bool endLevel; + bool endLevelDie; + bool godMode = false; + +private: + + //L02: DONE 1: Declare player parameters + SDL_Texture* texture; + const char* texturePath; + + // L07 DONE 5: Add physics to the player - declare a Physics body + PhysBody* pbody; + List attackCollisions; + + int winLoseTimer; + int state; + int pickCoinFxId; + bool facing; + bool canJump; + int remainJumps; + int chargeTimer; + bool isCharging; + bool isColliding; + int specialCooldown; + +}; + +#endif // __PLAYER_H__ \ No newline at end of file diff --git a/Template/Game/Source/Point.h b/Template/Game/Source/Point.h new file mode 100644 index 0000000..a934dc7 --- /dev/null +++ b/Template/Game/Source/Point.h @@ -0,0 +1,131 @@ +#ifndef __POINT_H__ +#define __POINT_H__ + +#include "Defs.h" + +#include + +template +class Point +{ +public: + + TYPE x, y; + + Point() + {} + + Point(const Point& v) + { + this->x = v.x; + this->y = v.y; + } + + Point(const TYPE& x, const TYPE& y) + { + this->x = x; + this->y = y; + } + + Point& Create(const TYPE& x, const TYPE& y) + { + this->x = x; + this->y = y; + + return(*this); + } + + // Math ------------------------------------------------ + Point operator -(const Point &v) const + { + p2Vector2 r; + + r.x = x - v.x; + r.y = y - v.y; + + return(r); + } + + Point operator + (const Point &v) const + { + p2Vector2 r; + + r.x = x + v.x; + r.y = y + v.y; + + return(r); + } + + const Point& operator -=(const Point &v) + { + x -= v.x; + y -= v.y; + + return(*this); + } + + const Point& operator +=(const Point &v) + { + x += v.x; + y += v.y; + + return(*this); + } + + bool operator ==(const Point& v) const + { + return (x == v.x && y == v.y); + } + + bool operator !=(const Point& v) const + { + return (x != v.x || y != v.y); + } + + // Utils ------------------------------------------------ + bool IsZero() const + { + return (x == 0 && y == 0); + } + + Point& SetToZero() + { + x = y = 0; + return(*this); + } + + Point& Negate() + { + x = -x; + y = -y; + + return(*this); + } + + // Distances --------------------------------------------- + TYPE DistanceTo(const Point& v) const + { + TYPE fx = x - v.x; + TYPE fy = y - v.y; + + return sqrtf((fx*fx) + (fy*fy)); + } + + TYPE DistanceNoSqrt(const Point& v) const + { + TYPE fx = x - v.x; + TYPE fy = y - v.y; + + return (fx*fx) + (fy*fy); + } + + TYPE DistanceManhattan(const Point& v) const + { + return abs(v.x - x) + abs(v.y - y); + } +}; + +typedef Point iPoint; +typedef Point fPoint; + +#endif // __POINT_H__ \ No newline at end of file diff --git a/Template/Game/Source/Queue.h b/Template/Game/Source/Queue.h new file mode 100644 index 0000000..eafb810 --- /dev/null +++ b/Template/Game/Source/Queue.h @@ -0,0 +1,120 @@ +#ifndef __QUEUE_H__ +#define __QUEUE_H__ + +#include "Defs.h" + +template +struct QueueItem +{ + tdata data; + QueueItem* next; + + inline QueueItem(const tdata& _data) : data(_data), next(NULL) + {} +}; + + +template +class Queue +{ + +public: + + QueueItem* start; + +public: + + inline Queue() : start(NULL) + {} + + ~Queue() + { + Clear(); + } + + unsigned int Count() const + { + unsigned int result = 0; + QueueItem* tmp; + + for (tmp = start; tmp != NULL; tmp = tmp->next) + ++result; + + return result; + } + + QueueItem* GetLast() + { + QueueItem* tmp = start; + + while (tmp != NULL && tmp->next != NULL) + tmp = tmp->next; + + return tmp; + } + + void Push(const tdata& item) + { + QueueItem* pDataItem; + pDataItem = new QueueItem(item); + + QueueItem* last = GetLast(); + + if (last == NULL) + { + start = pDataItem; + } + else + { + last->next = pDataItem; + } + } + + bool Pop(tdata& item) + { + bool result = false; + + if (start != nullptr) + { + QueueItem* newStart = start->next; + item = start->data; + RELEASE(start); + start = newStart; + result = true; + } + + return result; + } + + const tdata* Peek(unsigned int index) const + { + unsigned int i = 0; + QueueItem* tmp; + + for (tmp = start; tmp != NULL && i < index; tmp = tmp->next) + ++i; + + if (tmp != NULL) + return &(tmp->data); + + return NULL; + } + + void Clear() + { + QueueItem* pData; + QueueItem* pNext; + pData = start; + + while (pData != NULL) + { + pNext = pData->next; + RELEASE(pData); + pData = pNext; + } + + start = NULL; + } + +}; +#endif // __QUEUE_H__ diff --git a/Template/Game/Source/Render.cpp b/Template/Game/Source/Render.cpp new file mode 100644 index 0000000..1a56655 --- /dev/null +++ b/Template/Game/Source/Render.cpp @@ -0,0 +1,256 @@ +#include "App.h" +#include "Window.h" +#include "Render.h" + +#include "Defs.h" +#include "Log.h" + +#define VSYNC true + +Render::Render(bool startEnabled) : Module(startEnabled) +{ + name.Create("renderer"); + background.r = 0; + background.g = 0; + background.b = 0; + background.a = 0; +} + +// Destructor +Render::~Render() +{} + +// Called before render is available +bool Render::Awake(pugi::xml_node& config) +{ + LOG("Create SDL rendering context"); + bool ret = true; + + Uint32 flags = SDL_RENDERER_ACCELERATED; + + if(config.child("vsync").attribute("value").as_bool(true) == true) + { + flags |= SDL_RENDERER_PRESENTVSYNC; + LOG("Using vsync"); + } + + renderer = SDL_CreateRenderer(app->win->window, -1, flags); + + if(renderer == NULL) + { + LOG("Could not create the renderer! SDL_Error: %s\n", SDL_GetError()); + ret = false; + } + else + { + camera.w = app->win->screenSurface->w; + camera.h = app->win->screenSurface->h; + camera.x = 0; + camera.y = 0; + } + + /*TTF_Init(); + font = TTF_OpenFont("Assets/Font/arial/arial.ttf", 25);*/ + + return ret; +} + +// Called before the first frame +bool Render::Start() +{ + LOG("render start"); + // back background + SDL_RenderGetViewport(renderer, &viewport); + return true; +} + +// Called each loop iteration +bool Render::PreUpdate() +{ + SDL_RenderClear(renderer); + return true; +} + +bool Render::Update(float dt) +{ + return true; +} + +bool Render::PostUpdate() +{ + SDL_SetRenderDrawColor(renderer, background.r, background.g, background.g, background.a); + SDL_RenderPresent(renderer); + return true; +} + +// Called before quitting +bool Render::CleanUp() +{ + + //TTF_CloseFont(font); + + //TTF_Quit(); + + LOG("Destroying SDL render"); + SDL_DestroyRenderer(renderer); + return true; +} + + + +void Render::SetBackgroundColor(SDL_Color color) +{ + background = color; +} + +void Render::SetViewPort(const SDL_Rect& rect) +{ + SDL_RenderSetViewport(renderer, &rect); +} + +void Render::ResetViewPort() +{ + SDL_RenderSetViewport(renderer, &viewport); +} + +// Blit to screen +bool Render::DrawTexture(SDL_Texture* texture, int x, int y, const SDL_Rect* section, float speed, double angle, int pivotX, int pivotY) const +{ + bool ret = true; + uint scale = app->win->GetScale(); + + SDL_Rect rect; + rect.x = (int)(camera.x * speed) + x * scale; + rect.y = (int)(camera.y * speed) + y * scale; + + if(section != NULL) + { + rect.w = section->w; + rect.h = section->h; + } + else + { + SDL_QueryTexture(texture, NULL, NULL, &rect.w, &rect.h); + } + + rect.w *= scale; + rect.h *= scale; + + SDL_Point* p = NULL; + SDL_Point pivot; + + if(pivotX != INT_MAX && pivotY != INT_MAX) + { + pivot.x = pivotX; + pivot.y = pivotY; + p = &pivot; + } + + if(SDL_RenderCopyEx(renderer, texture, section, &rect, angle, p, SDL_FLIP_NONE) != 0) + { + LOG("Cannot blit to screen. SDL_RenderCopy error: %s", SDL_GetError()); + ret = false; + } + + return ret; +} + +bool Render::DrawRectangle(const SDL_Rect& rect, Uint8 r, Uint8 g, Uint8 b, Uint8 a, bool filled, bool use_camera) const +{ + bool ret = true; + uint scale = app->win->GetScale(); + + SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND); + SDL_SetRenderDrawColor(renderer, r, g, b, a); + + SDL_Rect rec(rect); + if(use_camera) + { + rec.x = (int)(camera.x + rect.x * scale); + rec.y = (int)(camera.y + rect.y * scale); + rec.w *= scale; + rec.h *= scale; + } + + int result = (filled) ? SDL_RenderFillRect(renderer, &rec) : SDL_RenderDrawRect(renderer, &rec); + + if(result != 0) + { + LOG("Cannot draw quad to screen. SDL_RenderFillRect error: %s", SDL_GetError()); + ret = false; + } + + return ret; +} + +bool Render::DrawLine(int x1, int y1, int x2, int y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a, bool use_camera) const +{ + bool ret = true; + uint scale = app->win->GetScale(); + + SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND); + SDL_SetRenderDrawColor(renderer, r, g, b, a); + + int result = -1; + + if(use_camera) + result = SDL_RenderDrawLine(renderer, camera.x + x1 * scale, camera.y + y1 * scale, camera.x + x2 * scale, camera.y + y2 * scale); + else + result = SDL_RenderDrawLine(renderer, x1 * scale, y1 * scale, x2 * scale, y2 * scale); + + if(result != 0) + { + LOG("Cannot draw quad to screen. SDL_RenderFillRect error: %s", SDL_GetError()); + ret = false; + } + + return ret; +} + +bool Render::DrawCircle(int x, int y, int radius, Uint8 r, Uint8 g, Uint8 b, Uint8 a, bool use_camera) const +{ + bool ret = true; + uint scale = app->win->GetScale(); + + SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_BLEND); + SDL_SetRenderDrawColor(renderer, r, g, b, a); + + int result = -1; + SDL_Point points[360]; + + float factor = (float)M_PI / 180.0f; + + for(uint i = 0; i < 360; ++i) + { + points[i].x = (int)(x + radius * cos(i * factor)); + points[i].y = (int)(y + radius * sin(i * factor)); + } + + result = SDL_RenderDrawPoints(renderer, points, 360); + + if(result != 0) + { + LOG("Cannot draw quad to screen. SDL_RenderFillRect error: %s", SDL_GetError()); + ret = false; + } + + return ret; +} + +//bool Render::DrawText(const char* text, int posx, int posy, int w, int h, SDL_Color color) { +// +// SDL_Surface* surface = TTF_RenderText_Solid(font, text, color); +// SDL_Texture* texture = SDL_CreateTextureFromSurface(renderer, surface); +// +// int texW = 0; +// int texH = 0; +// SDL_QueryTexture(texture, NULL, NULL, &texW, &texH); +// SDL_Rect dstrect = { posx, posy, w, h }; +// +// SDL_RenderCopy(renderer, texture, NULL, &dstrect); +// +// SDL_DestroyTexture(texture); +// SDL_FreeSurface(surface); +// +// return true; +//} diff --git a/Template/Game/Source/Render.h b/Template/Game/Source/Render.h new file mode 100644 index 0000000..e72f22b --- /dev/null +++ b/Template/Game/Source/Render.h @@ -0,0 +1,56 @@ +#ifndef __RENDER_H__ +#define __RENDER_H__ + +#include "Module.h" + +#include "Point.h" + +#include "SDL/include/SDL.h" +//#include "SDL_ttf/include/SDL_ttf.h" + +class Render : public Module +{ +public: + + Render(bool startEnabled); + + // Destructor + virtual ~Render(); + + // Called before render is available + bool Awake(pugi::xml_node&); + + // Called before the first frame + bool Start(); + + // Called each loop iteration + bool PreUpdate(); + bool Update(float dt); + bool PostUpdate(); + + // Called before quitting + bool CleanUp(); + + void SetViewPort(const SDL_Rect& rect); + void ResetViewPort(); + + // Drawing + bool DrawTexture(SDL_Texture* texture, int x, int y, const SDL_Rect* section = NULL, float speed = 1.0f, double angle = 0, int pivotX = INT_MAX, int pivotY = INT_MAX) const; + bool DrawRectangle(const SDL_Rect& rect, Uint8 r, Uint8 g, Uint8 b, Uint8 a = 255, bool filled = true, bool useCamera = true) const; + bool DrawLine(int x1, int y1, int x2, int y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a = 255, bool useCamera = true) const; + bool DrawCircle(int x1, int y1, int redius, Uint8 r, Uint8 g, Uint8 b, Uint8 a = 255, bool useCamera = true) const; + //bool DrawText(const char* text, int posX, int posY, int w, int h, SDL_Color color); + + // Set background color + void SetBackgroundColor(SDL_Color color); + +public: + + SDL_Renderer* renderer; + SDL_Rect camera; + SDL_Rect viewport; + SDL_Color background; + //TTF_Font* font; +}; + +#endif // __RENDER_H__ \ No newline at end of file diff --git a/Template/Game/Source/Ring.cpp b/Template/Game/Source/Ring.cpp new file mode 100644 index 0000000..91d2884 --- /dev/null +++ b/Template/Game/Source/Ring.cpp @@ -0,0 +1,63 @@ +#include "Ring.h" +#include "App.h" +#include "Textures.h" +#include "Audio.h" +#include "Input.h" +#include "Render.h" +#include "Log.h" +#include "Point.h" +#include "Physics.h" + +Ring::Ring() : Entity(EntityType::RING) +{ + name.Create("ring"); +} + +Ring::~Ring() {} + +bool Ring::Start() { + + position.x = 200; + position.y = 200; + texturePath = "Assets/Textures/ring.png"; + + id = 1; + + //initilize textures + texture = app->tex->Load(texturePath); + + // L07 DONE 4: Add a physics to an item - initialize the physics body + pbody = app->physics->CreateRectangle(position.x, position.y, 32, 32, bodyType::STATIC); + + // L07 DONE 7: Assign collider type + pbody->ctype = ColliderType::ITEM; + + + return true; +} + +bool Ring::Update() +{ + if (!pbody->body->IsActive()) + { + pbody->body->DestroyFixture(pbody->body->GetFixtureList()); + active = false; + } + + // L07 DONE 4: Add a physics to an item - update the position of the object from the physics. + position.x = METERS_TO_PIXELS(pbody->body->GetTransform().p.x) - 11; + position.y = METERS_TO_PIXELS(pbody->body->GetTransform().p.y) - 11; + + SDL_Rect rect = { 0,0,32,32 }; + app->render->DrawTexture(texture, position.x, position.y, &rect); + + return true; +} + +bool Ring::CleanUp() +{ + /*pbody->body->DestroyFixture(pbody->body->GetFixtureList()); + active = false;*/ + pbody->body->SetActive(false); + return true; +} \ No newline at end of file diff --git a/Template/Game/Source/Ring.h b/Template/Game/Source/Ring.h new file mode 100644 index 0000000..84254fc --- /dev/null +++ b/Template/Game/Source/Ring.h @@ -0,0 +1,30 @@ +#pragma once + +#include "Entity.h" +#include "Point.h" +#include "SDL/include/SDL.h" + +struct SDL_Texture; + +class Ring : public Entity +{ +public: + + Ring(); + virtual ~Ring(); + + bool Start(); + + bool Update(); + + bool CleanUp(); + +public: + + bool isPicked = false; + +private: + + //DONE 4: Add a physics to an item + PhysBody* pbody; +}; \ No newline at end of file diff --git a/Template/Game/Source/SString.h b/Template/Game/Source/SString.h new file mode 100644 index 0000000..187c33d --- /dev/null +++ b/Template/Game/Source/SString.h @@ -0,0 +1,378 @@ +#ifndef __SSTRING_H__ +#define __SSTRING_H__ + +#include "Defs.h" + +#include +#include +#include +#include + +#define TMP_STRING_SIZE 4096 + +class SString +{ +private: + + char* str; + unsigned int size; + +public: + + // Constructors + SString() + { + Alloc(1); + Clear(); + } + + SString(unsigned int size) + { + if(size > 0) + Alloc(size); + else + Alloc(1); + + Clear(); + } + + SString(const SString& string) + { + Alloc(string.size); + strcpy_s(str, size, string.str); + } + + SString(const char *format, ...) + { + size = 0; + + if(format != NULL) + { + static char tmp[TMP_STRING_SIZE]; + static va_list ap; + + // Construct the string from variable arguments + va_start(ap, format); + int res = vsprintf_s(tmp, TMP_STRING_SIZE, format, ap); + va_end(ap); + + if(res > 0) + { + Alloc(res + 1); + strcpy_s(str, size, tmp); + } + } + + if(size == 0) + { + Alloc(1); + Clear(); + } + } + + // Destructor + virtual ~SString() + { + if(str != NULL) + delete[] str; + } + + const SString& Create(const char *format, ...) + { + size = 0; + + if(format != NULL) + { + static char tmp[TMP_STRING_SIZE]; + static va_list ap; + + // Construct the string from variable arguments + va_start(ap, format); + int res = vsprintf_s(tmp, TMP_STRING_SIZE, format, ap); + va_end(ap); + + if(res > 0) + { + Alloc(res + 1); + strcpy_s(str, size, tmp); + } + } + + if(size == 0) + { + Alloc(1); + Clear(); + } + + return *this; + } + + // Operators + bool operator== (const SString& string) const + { + return strcmp(string.str, str) == 0; + } + + bool operator== (const char* string) const + { + if(string != NULL) + return strcmp(string, str) == 0; + return false; + } + + bool operator!= (const SString& string) const + { + return strcmp(string.str, str) != 0; + } + + bool operator!= (const char* string) const + { + if(string != NULL) + return strcmp(string, str) != 0; + return true; + } + + const SString& operator= (const SString& string) + { + if(string.Length() + 1 > size) + { + delete[] str; + Alloc(string.Length() + 1); + } + else + Clear(); + + strcpy_s(str, size, string.str); + + return(*this); + } + + const SString& operator= (const char* string) + { + SString t(string); + (*this) = t; + return *this; + + if(string != NULL) + { + if(strlen(string) + 1 > size) + { + delete[] str; + Alloc(strlen(string)+1); + } + else + Clear(); + + strcpy_s(str, size, string); + } + else + { + Clear(); + } + + return(*this); + } + + const SString& operator+= (const SString& string) + { + unsigned int need_size = string.Length() + Length() + 1; + + if(need_size > size) + { + char* tmp = str; + Alloc(need_size); + strcpy_s(str, size, tmp); + delete[] tmp; + } + + strcat_s(str, size, string.str); + + return(*this); + } + + const SString& operator+= (const char* string) + { + if(string != NULL) + { + unsigned int need_size = strlen(string) + Length() + 1; + + if(need_size > size) + { + char* tmp = str; + Alloc(need_size); + strcpy_s(str, size, tmp); + delete[] tmp; + } + + strcat_s(str, size, string); + } + + return(*this); + } + + // Utils + unsigned int Length() const + { + return strlen(str); + } + + void Clear() + { + str[0] = '\0'; + } + + const char* GetString() const + { + return str; + } + + char* GetCharString() const + { + return str; + } + + const char GetTerm(int x) const + { + return str[x]; + } + + unsigned int GetCapacity() const + { + return size; + } + + bool Cut(unsigned int begin, unsigned int end = 0) + { + uint len = Length(); + + if(end >= len || end == 0) + end = len - 1; + + if(begin > len || end <= begin) + return false; + + char* p1 = str + begin; + char* p2 = str + end + 1; + + while(*p1++ = *p2++); + + return true; + } + + void Trim() + { + // cut right -- + char* end = str + size; + while(*--end == ' ') *end = '\0'; + + // cut left -- + char* start = str; + while(*++start == ' '); + + uint s = strlen(start); + + for(uint i = 0; i < s + 1; ++i) + str[i] = start[i]; + } + + uint Substitute(const char* src, const char *dst) + { + assert(src); + assert(dst); + + uint instances = Find(src); + + if(instances > 0) + { + uint src_len = strlen(src); + uint dst_len = strlen(dst); + uint diff = dst_len - src_len; + uint needed_size = 1 + strlen(str) + (diff * instances); + + if(size < needed_size) + { + char* tmp = str; + Alloc(needed_size); + strcpy_s(str, size, tmp); + delete tmp; + } + + for(uint i = 0; i < size - src_len; ++i) + { + if(strncmp(src, &str[i], src_len) == 0) + { + // Make room + for(uint j = strlen(str) + diff; j > i + diff; --j) + { + str[j] = str[j - diff]; + } + + // Copy + for(uint j = 0; j < dst_len; ++j) + { + str[i++] = dst[j]; + } + } + } + + } + + return instances; + } + + uint Find(const char* string) const + { + uint ret = 0; + + if(string != NULL) + { + uint len = strlen(string); + + for(uint i = 0; i < size - len; ++i) + { + if(strncmp(string, &str[i], len) == 0) + { + i += len; + ++ret; + } + } + } + + return ret; + } + + // Paste a substring into buffer + uint SubString(unsigned int start, unsigned int end, SString & buffer) const + { + if (str != NULL) + { + start = MIN(start, size); + end = (end == 0) ? size : MIN(end, size); + uint s = end - start; + + if (s > buffer.size) + { + char* tmp = buffer.str; + buffer.Alloc(s); + delete[] tmp; + } + + strncpy_s(buffer.str, s, &str[start], s); + buffer.str[s] = '\0'; + + return(end - start); + } + else return 0; + } + +private: + + void Alloc(unsigned int requiered_memory) + { + size = requiered_memory; + str = new char[size]; + } + +}; + +#endif // __SString_H__ \ No newline at end of file diff --git a/Template/Game/Source/Scene.cpp b/Template/Game/Source/Scene.cpp new file mode 100644 index 0000000..db662be --- /dev/null +++ b/Template/Game/Source/Scene.cpp @@ -0,0 +1,111 @@ +#include "App.h" +#include "Input.h" +#include "Textures.h" +#include "Audio.h" +#include "Render.h" +#include "Window.h" +#include "Scene.h" +#include "EntityManager.h" +#include "Inventory.h" + +#include "Defs.h" +#include "Log.h" + +Scene::Scene(bool startEnabled) : Module(startEnabled) +{ + name.Create("scene"); +} + +// Destructor +Scene::~Scene() +{} + +// Called before render is available +bool Scene::Awake() +{ + LOG("Loading Scene"); + bool ret = true; + + return ret; +} + +// Called before the first frame +bool Scene::Start() +{ + + /*img = app->tex->Load("Assets/Textures/test.png"); + app->audio->PlayMusic("Assets/Audio/Music/music_spy.ogg");*/ + return true; +} + +// Called each loop iteration +bool Scene::PreUpdate() +{ + return true; +} + +// Called each loop iteration +bool Scene::Update(float dt) +{ + if (app->input->GetKey(SDL_SCANCODE_Q) == KEY_DOWN) + { + Ring* ring; + ring = (Ring*)app->entityManager->CreateEntity(EntityType::RING); + ring->position.x = 200; + ring->position.y = 200; + ring->texturePath = "Assets/Textures/ring.png"; + items.Add(ring); + ring->Start(); + } + if (app->input->GetKey(SDL_SCANCODE_E) == KEY_DOWN) + { + Axe* axe; + axe = (Axe*)app->entityManager->CreateEntity(EntityType::AXE); + items.Add(axe); + axe->Start(); + } + + if (app->input->GetKey(SDL_SCANCODE_I) == KEY_DOWN) + { + if (app->inventory->state == false) + app->inventory->Enable(); + else + app->inventory->Disable(); + + } + + if(app->input->GetKey(SDL_SCANCODE_UP) == KEY_REPEAT) + app->render->camera.y -= 1; + + if(app->input->GetKey(SDL_SCANCODE_DOWN) == KEY_REPEAT) + app->render->camera.y += 1; + + if(app->input->GetKey(SDL_SCANCODE_LEFT) == KEY_REPEAT) + app->render->camera.x -= 1; + + if(app->input->GetKey(SDL_SCANCODE_RIGHT) == KEY_REPEAT) + app->render->camera.x += 1; + + app->render->DrawTexture(img, 380, 100); + + return true; +} + +// Called each loop iteration +bool Scene::PostUpdate() +{ + bool ret = true; + + if(app->input->GetKey(SDL_SCANCODE_ESCAPE) == KEY_DOWN) + ret = false; + + return ret; +} + +// Called before quitting +bool Scene::CleanUp() +{ + LOG("Freeing scene"); + + return true; +} diff --git a/Template/Game/Source/Scene.h b/Template/Game/Source/Scene.h new file mode 100644 index 0000000..df309a3 --- /dev/null +++ b/Template/Game/Source/Scene.h @@ -0,0 +1,45 @@ +#ifndef __SCENE_H__ +#define __SCENE_H__ + +#include "Module.h" +#include "Ring.h" +#include "Axe.h" + +struct SDL_Texture; + +class Scene : public Module +{ +public: + + Scene(bool startEnabled); + + // Destructor + virtual ~Scene(); + + // Called before render is available + bool Awake(); + + // Called before the first frame + bool Start(); + + // Called before all Updates + bool PreUpdate(); + + // Called each loop iteration + bool Update(float dt); + + // Called before all Updates + bool PostUpdate(); + + // Called before quitting + bool CleanUp(); + +public: + + List items; + +private: + SDL_Texture* img; +}; + +#endif // __SCENE_H__ \ No newline at end of file diff --git a/Template/Game/Source/Textures.cpp b/Template/Game/Source/Textures.cpp new file mode 100644 index 0000000..4ac9e2e --- /dev/null +++ b/Template/Game/Source/Textures.cpp @@ -0,0 +1,121 @@ +#include "App.h" +#include "Render.h" +#include "Textures.h" + +#include "Defs.h" +#include "Log.h" + +#include "SDL_image/include/SDL_image.h" +//#pragma comment(lib, "../Game/Source/External/SDL_image/libx86/SDL2_image.lib") + +Textures::Textures(bool startEnabled) : Module(startEnabled) +{ + name.Create("textures"); +} + +// Destructor +Textures::~Textures() +{} + +// Called before render is available +bool Textures::Awake(pugi::xml_node& config) +{ + LOG("Init Image library"); + bool ret = true; + + // Load support for the PNG image format + int flags = IMG_INIT_PNG; + int init = IMG_Init(flags); + + if((init & flags) != flags) + { + LOG("Could not initialize Image lib. IMG_Init: %s", IMG_GetError()); + ret = false; + } + + return ret; +} + +// Called before the first frame +bool Textures::Start() +{ + LOG("start textures"); + bool ret = true; + return ret; +} + +// Called before quitting +bool Textures::CleanUp() +{ + LOG("Freeing textures and Image library"); + ListItem* item; + + for(item = textures.start; item != NULL; item = item->next) + { + SDL_DestroyTexture(item->data); + } + + textures.Clear(); + IMG_Quit(); + return true; +} + +// Load new texture from file path +SDL_Texture* const Textures::Load(const char* path) +{ + SDL_Texture* texture = NULL; + SDL_Surface* surface = IMG_Load(path); + + if(surface == NULL) + { + LOG("Could not load surface with path: %s. IMG_Load: %s", path, IMG_GetError()); + } + else + { + texture = LoadSurface(surface); + SDL_FreeSurface(surface); + } + + return texture; +} + +// Unload texture +bool Textures::Unload(SDL_Texture* texture) +{ + ListItem* item; + + for(item = textures.start; item != NULL; item = item->next) + { + if(texture == item->data) + { + SDL_DestroyTexture(item->data); + textures.Del(item); + return true; + } + } + + return false; +} + +// Translate a surface into a texture +SDL_Texture* const Textures::LoadSurface(SDL_Surface* surface) +{ + SDL_Texture* texture = SDL_CreateTextureFromSurface(app->render->renderer, surface); + + if(texture == NULL) + { + LOG("Unable to create texture from surface! SDL Error: %s\n", SDL_GetError()); + } + else + { + textures.Add(texture); + } + + return texture; +} + +// Retrieve size of a texture +void Textures::GetSize(const SDL_Texture* texture, uint& width, uint& height) const +{ + SDL_QueryTexture((SDL_Texture*)texture, NULL, NULL, (int*) &width, (int*) &height); +} diff --git a/Template/Game/Source/Textures.h b/Template/Game/Source/Textures.h new file mode 100644 index 0000000..f8aef9f --- /dev/null +++ b/Template/Game/Source/Textures.h @@ -0,0 +1,41 @@ +#ifndef __TEXTURES_H__ +#define __TEXTURES_H__ + +#include "Module.h" + +#include "List.h" + +struct SDL_Texture; +struct SDL_Surface; + +class Textures : public Module +{ +public: + + Textures(bool startEnabled); + + // Destructor + virtual ~Textures(); + + // Called before render is available + bool Awake(pugi::xml_node&); + + // Called before the first frame + bool Start(); + + // Called before quitting + bool CleanUp(); + + // Load Texture + SDL_Texture* const Load(const char* path); + SDL_Texture* const LoadSurface(SDL_Surface* surface); + bool Unload(SDL_Texture* texture); + void GetSize(const SDL_Texture* texture, uint& width, uint& height) const; + +public: + + List textures; +}; + + +#endif // __TEXTURES_H__ \ No newline at end of file diff --git a/Template/Game/Source/Window.cpp b/Template/Game/Source/Window.cpp new file mode 100644 index 0000000..3469e45 --- /dev/null +++ b/Template/Game/Source/Window.cpp @@ -0,0 +1,101 @@ +#include "Window.h" +#include "App.h" + +#include "Defs.h" +#include "Log.h" + +#include "SDL/include/SDL.h" + + +Window::Window(bool startEnabled) : Module(startEnabled) +{ + window = NULL; + screenSurface = NULL; + name.Create("window"); +} + +// Destructor +Window::~Window() +{ +} + +// Called before render is available +bool Window::Awake(pugi::xml_node& config) +{ + LOG("Init SDL window & surface"); + bool ret = true; + + if(SDL_Init(SDL_INIT_VIDEO) < 0) + { + LOG("SDL_VIDEO could not initialize! SDL_Error: %s\n", SDL_GetError()); + ret = false; + } + else + { + // Create window + // L01: DONE 6: Load all required configurations from config.xml + Uint32 flags = SDL_WINDOW_SHOWN; + bool fullscreen = config.child("fullscreen").attribute("value").as_bool(false); + bool borderless = config.child("borderless").attribute("value").as_bool(false); + bool resizable = config.child("resizable").attribute("value").as_bool(false); + bool fullscreen_window = config.child("fullscreen_window").attribute("value").as_bool(false); + + width = config.child("resolution").attribute("width").as_int(640); + height = config.child("resolution").attribute("height").as_int(480); + scale = config.child("resolution").attribute("scale").as_int(1); + + if(fullscreen == true) flags |= SDL_WINDOW_FULLSCREEN; + if(borderless == true) flags |= SDL_WINDOW_BORDERLESS; + if(resizable == true) flags |= SDL_WINDOW_RESIZABLE; + if(fullscreen_window == true) flags |= SDL_WINDOW_FULLSCREEN_DESKTOP; + + window = SDL_CreateWindow(app->GetTitle(), SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, width, height, flags); + + if(window == NULL) + { + LOG("Window could not be created! SDL_Error: %s\n", SDL_GetError()); + ret = false; + } + else + { + // Get window surface + screenSurface = SDL_GetWindowSurface(window); + } + } + + return ret; +} + +// Called before quitting +bool Window::CleanUp() +{ + LOG("Destroying SDL window and quitting all SDL systems"); + + // Destroy window + if(window != NULL) + { + SDL_DestroyWindow(window); + } + + // Quit SDL subsystems + SDL_Quit(); + return true; +} + +// Set new window title +void Window::SetTitle(const char* new_title) +{ + //title.create(new_title); + SDL_SetWindowTitle(window, new_title); +} + +void Window::GetWindowSize(uint& width, uint& height) const +{ + width = this->width; + height = this->height; +} + +uint Window::GetScale() const +{ + return scale; +} \ No newline at end of file diff --git a/Template/Game/Source/Window.h b/Template/Game/Source/Window.h new file mode 100644 index 0000000..f3a0f04 --- /dev/null +++ b/Template/Game/Source/Window.h @@ -0,0 +1,47 @@ +#ifndef __WINDOW_H__ +#define __WINDOW_H__ + +#include "Module.h" + +struct SDL_Window; +struct SDL_Surface; + +class Window : public Module +{ +public: + + Window(bool startEnabled); + + // Destructor + virtual ~Window(); + + // Called before render is available + bool Awake(pugi::xml_node&); + + // Called before quitting + bool CleanUp(); + + // Changae title + void SetTitle(const char* title); + + // Retrive window size + void GetWindowSize(uint& width, uint& height) const; + + // Retrieve window scale + uint GetScale() const; + +public: + // The window we'll be rendering to + SDL_Window* window; + + // The surface contained by the window + SDL_Surface* screenSurface; + +private: + SString title; + uint width; + uint height; + uint scale; +}; + +#endif // __WINDOW_H__ \ No newline at end of file diff --git a/Template/InventoryManagement.sln b/Template/InventoryManagement.sln new file mode 100644 index 0000000..7559fe6 --- /dev/null +++ b/Template/InventoryManagement.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Express 2013 for Windows Desktop +VisualStudioVersion = 12.0.31101.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InventoryManagement", "Game\InventoryManagement.vcxproj", "{2AF9969B-F202-497B-AF30-7BEF9CE8005E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2AF9969B-F202-497B-AF30-7BEF9CE8005E}.Debug|Win32.ActiveCfg = Debug|Win32 + {2AF9969B-F202-497B-AF30-7BEF9CE8005E}.Debug|Win32.Build.0 = Debug|Win32 + {2AF9969B-F202-497B-AF30-7BEF9CE8005E}.Release|Win32.ActiveCfg = Release|Win32 + {2AF9969B-F202-497B-AF30-7BEF9CE8005E}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Template/Output/Assets/Audio/Fx/hello_man.wav b/Template/Output/Assets/Audio/Fx/hello_man.wav new file mode 100644 index 0000000000000000000000000000000000000000..14f95ebb6c851fcd7c54c6b1e1eac39c4475cbf0 GIT binary patch literal 179316 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�_&vG|iN}7UkvNK7A$DT`d6Q^Q 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
bkT$8*9uFx}}yd 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 NY)LGiNB3d<{{WH%86N-u literal 0 HcmV?d00001 diff --git a/Template/Output/Assets/Audio/Music/music_spy.ogg b/Template/Output/Assets/Audio/Music/music_spy.ogg new file mode 100644 index 0000000000000000000000000000000000000000..2b70dc4b78ba1a3a50a4f7b3223ca1ade9d3f656 GIT binary patch literal 622284 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 X*F2 zXdH=ieD&;=0lGy?%jQ^r<`FYMO>DGHJz;!`q9{Wyr{;DS zj4ImEmp7FhYKtH?fRrJk{%M3r3&ifZz*18$YkwS-=;&x?!>OLlZLm~m4FW#P^h02_ z*@w}m+k_R`1eZGw^7{4h0 z-o1Ij)87!pF|m+eli@;ecvjhtd4|(-8*h@CZqjDnE9G5SDOt0$Hq_KKL9TV0qSe*Bo`ylU{$-tc9G(8$o8~YH7Wcq}xP3tbJw z7INJnkT5N<*F?py(2=NU%o$s&_CayZdd}+m(J>T@ShzSIGHY3{>(a%cI}^4YgI$~3 zpLPo(YYDVa5lDJ72-Nf`)z5|mNpNkB_MoZn#1JxQY+hz8#6tGf7U$DpkQyb0<(liv zF(iAU8cbR4db!S4D7|FYfFDW6w6U`x(pCsd#uv#LI4jzzRCb!R2#44wf1^XmOiyuv z6Wg9_-lsrxHnQrKiB|*Kw>o~1@tIj~{9~SMe1CrT4G+CtUdsm{MDcCgEV2ap40FZ; zn6a1Hu}M&5d8I>!OxiW{?fA&fg8jdmzc;&`KYX}!JgLm-NO zR&%s)gf-i;Nu4Oo>w(uia62ofO4X`}=I-90#=n=gp0kVI``(wO9GPET>OFPxgjHbh zZq4c66ZcnbvT0=4R(nm{|MTU|oCO6#ip!ET3YO&T9BV?Cns;PVI{{MwO;qChW3tnle>=aX=cQqGa`LcixcS= zSxiJgZl@$A&n=ca`19vagB&Sv7Y2^XZWdBiEWa7NJ&o!7`RO;ehh6)-CQmc$^nMkx zDOArryZxVlB#f<^m#VkA;hsTRM-PbP23_hJ2<;NJpBiNhx6>ErP{&n0~YVRa*?soT)T_{HW-9IF!cjrmVlQ!Ol!?R4+%)7%mzK^(43b1j*bz zQ792dYt$bjPrYpb62sN1cV3ULT@2Y*3f>+ehi!EJYfyjE^ZBpeYXvg~RYnPd6-x?3 zmpk`0M?9$srRi#)3%57@0&^!h3n?5}zJ-!myh#8eJ80qtB_F8!Xw!+>Lh$a?VmBIq zaLOVN-`>39UE<5|d;YL&Z`L~T)jxEb{~GOrHZvIDLr@vuEX=7)6yFh}D%!E-_xDM? zi4blx!1WUMM7WZhX!|w2_E~~ktj~=PTg)QE`AzmlNyScev|*yIXW+ls8?ZlCr_e)X z-W+lihkKV}68Ej(LACx~KM)5Uy9PvhCH<^On)!Ss?cT~uy6aR>v{THp+Q9SgBsZr{dwFbVeLyBEmXf5J%T$@fzs&Z$iUGV za%f_Pi`r5|KKJX`>)rX?K*7_nf7o*G8-u{PZZDTFoH}&3pDr#4?A@-}|ND88D{dGZ z(9b@D=zW0b-f4< z>;x2nb_j1%-uPhkPVq9Dvx2&%p3bxMQ?|yCz60E9+JLa8Y0@;SCwsyE0Uw0*( zhgY*3l&pbw)Y5Okyd0YHwR6^kEw=Z^w$410czW4)yO%#M!WP-Y#4!^bBk~vj?_f8? z5NsA~&Zfa5?esf!jtxifo0D5KkLy%=8`i${F{S5RrUL8&OxEI z&Y1aPT1xu1L0FZG^1sKw;098uvrstT4jso8jiDOA)6#d`LZv-6HKhqT5z2QEly4c! zCi2T^MPEnCx-|0>c1}d!{cas-!I+deJ1~x?lm-1~II<&)Qy2&c6`Ql`BUa~F)P$?U zfVXxz6{u7sn%zgH)hbHyx62n=TkX0EHf-2{S)N!?dQg1BAHHbT_$#~QE$0X!Dfge{ z?LQj2t~%f&q4*+{YHgXB!bLj6cUe%8>~7aU7qyn$C<|;pD#7QjL6FrRn;UrXM&!Dw zk!0ed$0I9=m%PsZKMzbv{eMsi0zf5(J@>gyL8 z9Q1eB-);28-V43_S!{+EgAvH~52SlxXLXM@-e{@Ceb)cK(JYkn=IJL) z^U(J=v7XOoatVyV9hYyHPTqW+#V$vwRDW-q#0-0G)HMBq2sY_Y?Apt{F0JkEsBm6n zy=~y?z4~u(R7WIO94X-_tFCWpSCRN;diR}(A6W}oL@u$c0Iv3ak0@_HjCUT9S5kHX8k3GSfE@yYv5TK)ZLWzCk%~1h zl~e1!J}X_Qcx>S7Jt zLBCsk)in@S@z2amQPXO26%=}Mdcy&~io~~Ko_)%c2MA@g7FBM9*NmzGa_2 zJYNK@$_>GTVtPFep{~;R6BKa2;>G+|ut$fw%#S;Yrg+D7zL`U78=S920Vm^qLcSr(TOMj| zUL;p2nq%$dBG%n4)@lvAyx{7wQe|w~$*<;@TgdG#cxcjmchBdd!{^_*=8XT$y)?G{ z#?6&mORh}L2HsQC_pWeM4K?%mCp!k<4Y*ca;NcXqTX+;U|BY<|+IiL!t#dI%#H zF}gEyeqPd@Hf4=8zIehWKlop?1*^^Og%A}f_?a*01QxSNGbAc&0fx<&@-$5mAa$U5 zU3YJ9kbm6nxF`Pih9CdE;ct(AXoj5m5OW^&G}PzMJL=id@F5oN5c$&_$@IJ1oHop$ z2f}e9tH(^$eWwZJ5{QGB#-J%@puM_W1oS&fOZM^YtmaQpyTs-6E z=E&HN#jbbyXB9s`JCODhhCoK;cDB`6v=@wq>iY;%!Tz=1VSX6M7c#T((v4S#+n(C} zB&fe+&E6y3iypk+ZPXot#Llui1U*lzTvYLEG;cGSc1`@z1=-w zxM)y`=l%SM0_zrKlxl2ykTjh4BYy!Rt3A8GAN$sKwu0eA^_{+u-|6}`x~Y9W2ILSI zD+S9qZWPU{hd+;5-dt17bz*WC$@caAm;PtNyE`@&C#~O@H z{&guGJXBEu#r4aa6AtO5sb!OClyj#Dq9Jge zdtgZwaSWkr15fu5MpDU_0Y$d}X?*Fc+s8vRWF*ryOA8Iyr89^&0Vb zA4PNg+}FD=@83BQ@Japf=X?2Iw5iefD`V;MS=q&38+@1E#@+lR?7A?$WT(Z7Gzm(V zA%7m~Gw95n_*7=ClByU7lMew#n=)*)XZ=LSw}3TokA$2HSQfJuhP4=f)5`rZRd}lv zcZZUH>!?ZP#*pzNy5_qj+KD9ebR(q%HTzBlX($5Uf4l_vB{!&tJ^d;=8+GmfG zEType-_2Qw`9F8s0@L!CgAM2^ovv5M^1{)j!X5PNOOO=w`M~)Gw`yG!PA6B=s*cNo z5-u(Tci(REQ%yLLUw;sLPkov8=GnRA7tbavCTesM2I)OvhVf3g=oDturvXH%E&^ni zrGmnTU1N-@urkgt=%^@t`j3`oxCLB7lK+&(I}-v|czbS?mzIugYo0pOa{7+HF$Ws6 zUTn^h*4nQ5{LkV!y|IBPxS$wx%{I#d>!77HX~tksQ5PzMZ- z?cO?F<7bVipTAwd;qRANH9YCq6%ovRLoX6bt|evnZ3yycDc;)W+bvAn5_i3^`@$T$ zHwV-!SQ-?HMOdA64#IVI7-=WTEUJIq{`B|(o6+x^Wx{F)$tQRJdTo%u54gYkG7~_m zSozL>Gm-5xM`?QCJL4?EX11*0(a$|F4IaCnVIW=4!^VYjG%$Fn6> zl_34+oViBq*0MMeSmqOR8gSU%p6ss?uh@R@cU)GW* z{tH2>WH>b|JNuUb)W(g4xM8KZv%W>Uj{Qt$#iu3Q;#EjG36@90vJa?Bc+>*Fv0TYdMfD&MShWS~y60 z{Ba5`R-i>sdPRWBi7*918#01G?59u-34mfiPE=zcAl;L(kvKvQtV_=3rw}t7jvRr< zK@BimQ^u>58NOr=L08l#gV8Ou+c0fT3N#)CErJF?L@z|wh2&xe&Q%FVd3HexEiICs zcAZTY)x*+-&N20~#bqOku6CVDST%n8RJ!qipW(_`hBvP4u3U1%Xf4M!C}}UK7$qkm zXa%_mf7Z9*{r;)lGfTe{5;u*}Nz2<9*%Cj4ULgMAz|fHEJV>F6RmDVLvt%-}a5p}2 zry<{I70E%%X`A#;T6$}wMcW}82O9NO_2{Wcr$a=<^Ud8J(oiWp&79fg?7)TM_tmPZ zhVMYoT^wLLQ6ZTUMCX-}oQDrW90=#CjpsM>bioH9rGNlViQx1Jxl%NO;PV5TA)vsw zkO}57;+tq0mCCkxSO^PgFi^3Pg+v$xF&!EZP%|Fj(s$NQfd8u01Md6oD2fzW1SvFJ zesk0P4jeQ9K0OJE4&0ZaCP*TOBw{*&3A9I2kr|I$pDI-nkx-Vt8p(8}0ox4hjMESj zgqTtjf04uC8i?`=l9W4Mz1X%Y3d4c9E!cldOUDC7#43o`Likdm67#WZ(VKlXq;$n? zXHR)PG+lz*OUr(LL=AlF%Vk_MX=g?D4wT(f;94AaCN$?r6T8evlO%9xmv-g}D zik6my6Y;KVfNJibmYBLwBLI+&CqHx`@I<79Wn_u69=|Teq|Dt^lJ@-_oaZ&xbrn< z_*-wQU3hv4;!yWPjLeONWDTAZ+{37ZhJpiiz3;p0o_@9(!0QI$u3vz;DE144QqBuK z8Em!$Y;spfP2Lo{;C%~@X?4l^{r2QtMjbA6e7-+(%=X8gQ|2}k1nrx~i*KD4bw%pF zl_jzde6ADZAqG={dc87YtVt~rmJ*NrekS{w5w0%<~x+rs%k3TU@J25{MAhUQyHy_RHVVC zjZ{83^)7tm+=Qg=muJ%>DBC}w!IJR1J%L@hUewNgua+QBLu;}!2o;ek)o&eYwhCBE&myUy4MFp&}j8(w-F7iLLClSM6`LX(LtfysiFvE zytl`Cd-4o_(wwv{SL53}e;-`1fj=E%@v8yQ?c#T+;@zEXG4B)zhScZ3Qw&`jL_$9r`9(Lg7 z&FkJe{f~c21pqhh^Qoz+Ep=)Qu&Vts@BQs#OU^@9{|uTo^gg&8^0<7#O z-~C!M@;|Etghf-F0KdvF1N3Sf)VeY^!vO@|q<(8YF`%s^If<98@)5{G=A>`@nz+Nj zDzxW=!-~(5A@Of){xkgdbIt+}56p^n7H9axfa@%N^NInB4=0-FwRPnCAnTETlU6wKqv$F<(^tF>nA68?-djz!`!M}|m`tA~LG-^K zf32B5-rfwhFN?XvYq1xb<-3&a#q#wJSmMKW2!68my=MGnZO(YN-NQE{p1}UXmI-bBFXWsA!GKM%VuKty0NGGQX6nnAFK@i$2jqC5$bSF+ zy$PX~TG3L~|If^x4+Yp*&x!9q}b5fQ34{rm4Rx=$$t!E>nzYqS}wDjJ?J{ZEgCw^njm!sA1`*qXu z?>{0>EC!1QBm^)!OgB$Mgi?eLw|-L>q8%gE4ae0lk7d-wLLXBcVR7!|E4iEr@5x9D zN`x!1|AemBY!7*$keZ5cEZ;=tbIZtZNA$#_9_?j(^-d$FEXiyRM9& zpL1w7^di?s8&GGxC3D#3PVKf-lIxa91>_zlONKcFVg=O;9Os{_@WCQ%qP{4WpDtKY zkm4s;EY`dk(~Ri?qycbtBl1RdQK_96h)Z7&)rUbYHOkKXASk?^wr=MB1a!$^Ev+%T zemhFRjhEi11CJV%!RNN_a&o#T4y}@Ua{z`Cz;{q*afy0DbBg=n-xqRh zgayfu*1^>5yo0Xkn~QhM?$x%Ml{e~P6xrav$f7;b;jD1*Pz=bGijHp6JW{#4XQYU` zphv^!>?%}4Omz^njI=+gcitcHaL zY9BAGFKne4j0vVbQwwZ`Z6Bvnf9Mbu1wI zfh|j`ggdOE>j=#xZgPc%P^8{kq%G`CJ3*0Y!?eVMi5r)~CymEv1#Z@0#~&Qp%|547 zaKz2$#}pv1<#u*Ze87d*DTDy5Yght_CbYX5c_2j*arFp1T@IRE8PmapmJPVe`<9#c9vLfUa_ zz!bJZAO$YhZ9!9kHF*E|r(h<(;Y$BGpK2DLaO2*RRWw_YgJ-E%Zt2u2_xCUanW5{u z`o)nuwQsw$0L{O`B{6t>V9Qg0QRsuXBM^@M0_|Nw%9I4tb!=+f@C_1i^P4V=RL}eE zg@tDxRi)-@gE^TMEw?{eXwzczdVj=>x!nhs`5UeaXAiAGlYgy=cw^kXVO@6Jt%2(I<`3t|M{bdpmDPqk z_W1_W_Nd5hgPKz0xiYGZa8>|wtr3=qI8c8qUk%C(t-M>PE8^plMu&&S&9fBWp8pw- zc(#?T)}iic-Fr^+4G_gljV!@FD4E{Bs9I$D;I;GZC_!CnMh<*P=!_DY`FJa1!XS?| z8YaR7d(Z{Cdk&(plLYjvpjTmM^sHu$#~y=y%}%ub-@%uk_kogZ^IU9~24~pjiR@3g zbnsRLpIFZ5iveB6D%n4nGlkcCVscL#{qCK6u6kfY6N0_zw_&b{^Lx8y6UP*Mvl1N}rJ%SNe!*B*mgr>!- z7Ub#7EPK7LUOWq;m1@np4;7s$+;KBGY@qt)k3}}F&mAjgC5{lj*q!z|fDQsP7hAK> zd#xY-$-gt#-ZIMT+AlLZvPV0+n3T29CGSW_7ceA+i`oABDD!eKqJao|BNnur49O(5 zRb`7aq97ZZh=hV)f9d;iUj?eG>nskJi?g6W*4b&!t7M%~G69E>qtDI8+cBeiQ`n9C zdYOgdPWL~~FFyWxFAWC?5s<}D-s{8z^YWT^RV+4uuGA>CurlgpQ+ST0IxoK&Da>MS zq@mnZNR*WBEU)OV9hNk%=QMvuLEn#sd?(uxx6Qt|3N?u!AlplbVSKgsFIR};2fFOQ zke$MW!8kle6*Q{t|IOmO<;ga@Zy^kOU_Pr~SdC*i%|%lbGf2>waWgr({`~F2L#kCb z=f%2R6Kp+ZH-~@u+w_Sb6e1$bpL}APJ6!=;&b%_X7)zySZU&!fN7Pg2G3|bzu@UCv zLpP0^OWM>PaTwb(PPhJR{BL<_oDC{f7~Tb*U^gvxZQQ?;gNz?YUOp3MUj$%By9(~1 zGnpWotN(>@??+=wWYaok={nb|>m-}{!AWhNjxdG?S*2}PLcj)$IG~M~Af%G&Upb!) z!T@!ANry~NOi$hPO$zTaUc8u6koe=S+stR#M`z{sc>EqO$(pVd{yh>L5r}lq4>$&7 zEzPG45jcBIWjtCKWwy9Wpu?+GL682in>0_iLrwgX_sMi|{EyrYLR#`k-|hQnxlc=D zv^~5P=+O@dbGvR_J)F#k#Q`svA%m_GC?luBaL?fnx=XOINwe`WW54-xHgvyPc&BGx z{)T@Z%C{G}5t>n$eA_0Juqz@}Nm5q1wZ1Eo0unAOYhyW8TTSHjN%0(BS%jk^_6hwv zw_`>o`KEC0qX`J(Zg(h=ZJrwoHlP)QBpOON-%#C$w1 z4&fS!p*YUeXNxSATr>&a+B zU9-SCs)kRvn7gg7eeb04#ok0Ck7c+LrytpmUU+03u}1~X1fPa(s;MOh)*-@LbuGtS z5p$s&Sw+&0O2eG>j*Cq0EDfDo9%Vo$1j z$A3|t1YUd@jonX`3cqY5RG-F=cgsjV-099i#Q>srY+B)I@_5vAO~z;GDofDwJ!$n z9aH0H3HjC9^(02-roMUl@q4O!4O0VtUCT)-eH`<-Yt&%LX3J^PX{v*sx$l19J18N6 z>k0^3NBPR6_BjpI*aC%srqW~+Y8J16G2${OxF6ndo7gdREbEW(z_`Me2%f>5w#f&( z-KRrC-vs&8i%7t4k2hH3$?vC9fX)hO!m@N1sr{ew7VmZPow(1;Jlp=~TOF{3CZ!naqun-TKi@@5iNE&G&@#L zaJ32F(8KXRvlC|0H+-fdJpvxRVfB}5w>HgoDs9afv|QM^`|O+PPRX=(1v14)U7smZ zSjd|_yOb(2ivfyR{()gzR`#p5-^+h~{xUv3dA;e#u(|GKlR{6{It3gV_L@+Zf+5@l z;w+=QCTl>;$!(N2qX0Xk31uXhX&+lp^;E-n{WU77g0-5Dg}XCtkZofoSOA?9bi_W_oH9-xNQ{u474~HwB=~zXPcJWyTImQ zW2vP8wyxdG_UDFPREg4!q$dNW7=)rC>X7V?yUzVgnk*Os))S*JN@vqhMXHVjdsoL- z+;i<3POL{Slx}8z13~M2H;_M(!!9SxkC~21e|_xW%pmdquHM)d)Dw(R^qQ(M`@7 z=Y}P}E*f6a8`}^6e=3XD|3M#&0QxX=7(Rc&v}Z#|pif|kuP=8=fN$_3|E0`e7RP%j zn*(wwLPD0ZmxlTU`>@!-45lA5gw3S~`tulpfgns9)TrZgTFus5y4^g=J@P02K|c@< zjOFUufIm^P32n6?Qd%r0xA2gq+yMe7V8w!bw>bH5JZ2qA>L#|n3yHCCskrY-9$7Tquw4Wf+YByJoY zINcaA2xjCQX^ygAd}&TNqAtSl*VnaQ7oTdeS9dR`(-7hCKnv^7*m3{EiTK?Hc8Ayb zF1vmt>(y+E3xfn?o=_UXn1Q}dvIjuc`bP2bMW$N(~S7#TfB*u;Z4`CsMp*& zb7sw@4FNvzUyFO*^az&yvv=;9(?56S-!Eu9ap6z&hIRiMprQa<3@5hF9U2C1hfX=V z`o}hNbzyPgfo*HK&Iqh-so!Q`y%HAAX%_Nfp?^${`8{;2wG%{~JXYQE;$6uAfWPkD z4qK5py{(7mVpFy-+CcWZkDX34To4gPCz=7teEGqtAu+HFD!6WEp^POwea2%XNuIA7 z`$(|D*gZ!}QiBMg*9{?^otnCm!_&NNU=vGp(FiyJopOOrot)j+2)?!^X_xm4-g6c& z|HABl_SB2|E_G4|j{qPv_*Km zPZCBNY_H8{*#4-ye@-q(p1oc`CPFBfhn0Ph)Ou}QG)=WjZue)T2?F~&0IK22! z@8OLYpVI@tbjnzJ^R=ZJbbA9*m8#e#18q~4D{*F?T_jVuXU**~$^e$-YojbIG=Vs* z*i~ZGzG+uHV$wVc)0Y%%LBamabw-LkZSlAaaGiVMi~v)fDoH~HbR%1#GI!OjcT0lt z55%0fD6}dg+3Vx`!+~;*y-eKD`ee`HW3x?-STDC5NwJTjxJgIXnO_^-Ey)1~k#PvnjYbR_P)e3oIJ25}?!iYhj~@|5*FBRLzK#;Z-`Mek3$-sE z<(=G^{wPd!gsQh=aqT~kF}qQcp4_>9Lscw=o>k2ty+IHNL&kVVqEL+vQuZLaSTZbp z&K>6BnAKb+u|Bm?J6ni%-0KK?V?O>OuRifh$cEtm8cuIh*ld8Lr?|Q>uFECua?s|d zSCazUIHi{H@P?*ad&uc0?h4@q{pRkY$O(GTXX5{jc28@5rwO3wkmAlL7K%l{voei9 z4~@y;^9S!lOz^cL9E0c2w=1jlExq^ded&YUKBlMPSbf+G;bfs-!jc7uMUwt7o9^G> zFfazEff$Yuz%CUNP;z2@e@cyKy-%G)rfPip-f5qZRjtJAdKYeW;?BV%Uz4}3vey4) z{R9<0nGC?PgRkeHmo_L*7JM>Q^QPr6G3~KcFc5!Dk#}2IECN}jK8U7C z<-Or`ckC4M;M5X{;K2qh+=~7&!<*A(VEw_=4_!w<4R|%e0~In2Vfn%UB(M^-sSDbK zNC8E?%PT@Erbe*SsuZe^V04eWN~LvhQ-khTcvXIY=$hI8jYiI~*6woz62TPw>UtMx zGuxGHDc9FiO*1^Dd?HH=bl)2A^?XM!%s$bJ_p86N^DZ6JF*WkjuSpB9x!!5f13TD< z;cut3O`9WuoZtj=C%nPB`#&C!0Ge>UfCnfr6I<`aKv~LG$9V!C5JtQF`1IuDo~@z5 z(4?_npiq0>*TT@!eY@EPhQ;kS7gr9feF}&j!1ovrzy+a7LD~iLLZlmOmjiEAXrd46 zu7cbt>mW5uSJAy@h1Gy{|GVw}!K*G09XS!89Qj;$Ceo z(`>tRmga+vsI4R&NIzM`SnWqSA z5)@UCB1|QAn+p13yA^Pyi@=tRXqRg;LFwN-tNxWs*p61NVBNru2IbYj@#pL(IwVkg z0@no!Tn5X}-=)pMlDUjVqb}|K*clTx!qns0t)Hbn)CS{51i|Pqn#1!v((wP0^&VhJ zzW@984FV#LK*0~r5J!qyYG`T;6x;(84ABZP%~@8q7ve(H(o!=^LtKbjYL2G4v#pk9 zHf(6ib~bGJTz$U3-}C=I&p$g3Z#|AU=;pev`+c3)`#fKb1AZd;@RPJfqG)j=2s?mN zMAn@(!)FYoq>OSWv~rZ|a*I4Z!NTK)By)-21Q%7-YJ2Fz#`~WwJ}!Z%+CzfO$7IPG zQ=H~D^g{8=hv%X!D|7#@uC>H$44@szb+V-%)&lxSxmaPz@AJs{5ZzgI zBL8Y`r!HEFqBtGfT@Si9x`I+vb+HY(FYQ{U+PAr?-_d(@Jn#7pYhHq$&F*H z8pjUIz}NAJc37~fAusH9V~C>INU+^xwusbS(M^m4E}!1B1izUei<%}x1OkM^2q zUgC`CKTRg>z4oY~UAw#+eCz|>uu;K?gw9Q@b9EF2aJiatOa1)0j+Mjr{`QHF?+rY6 zFJF6Z@B8G#U^HL6QYP)#5qV;s#RuMy1Bbd6CpS#(Jw~ps=I-w5jI*6(dv!Rpx-HR{JP)6F@{r^xDr{7Mt-gdP~vV11HvaP*F`_DtI7xu-r~V*G)E7qn1qr>UomAQ*#$v>n~p!gZFya>2+s zxKyiDtQ18=JWJkc0|Vx1I^8Z0 z;M#&Ig={*=Phckwr6_}u6)_0}4wouL*2h)R-lbMdfAp_=d*k~STyxSV2(Rzm=IQ+& zHr_nw)x6wi*Sx_ZV7yi97SRvTm~MS|CKj)aRCU8P2IS(hkxb7=tF=eO%G;j<8?577 zhiiRqPOM%qYXo-1H?}yAzE*=JS$wgpU;Mh{MO^)e4*ap->xh3fj{!R<(S$_y==|qJ z(4blj*y$s%NEHKBU-izG19E5or;lq-eujRTMED4@>rNId+KOL#bG~*pqV3FUpV=VK zre_zxfi&R`c@TmAfT(RmxU+m=>eCd^h=K1Kt-W%VmpQ7-U7)^QED1?rg=2ViBr$C0 zK#Q-2ZtY{WTB+;b|f$o^pzT3I@$L`;8yK7y|MwV~%*netm;-W8bvmQ6C zI<>!UNAv@JYR%*_F@s_^4G$u!ZINR8KS+KHHdK~V{Yx|cenp+ zo$Jt3D7X6F+%j+?2)90?Fv#b{(ID`gwtC^B$L?BW7<6-sgIqiZLwE+DQZ=|D5h>H! z<|b$u>T`W{?))_gMNS~t%SU2z>2<|>;-8LY-+$A8>&7Y636U>2SFSDUG+VXS%J1&U z<(ZXy_~G!qRd%b-fBk!=>T*^$r49R79f!tzP|K(lM4YCKX*2y{t#LQLhSbBH_|h^H zk*3|-OYh(iQaCJ(?BM30u&O_X|A>)M`d-F9N7N!|Jl zKdmowpC4}pQcrpTD`DU18rQvQ+M7H~%<;!2-qZ%H75AzRfR$eWRC5MTlnzClRiGtW zv}E9Qg~CWnxv*sZaOcHewsg8t&~@`yS5C8CxBmW7w(j|%naO*WrRVnT4RlyUQ+0U* zmT47atZ-qK<9Elva+Tr+5je6LMcw@tch?f3RU0#p zlxpByDPJzqco(`cB&q@bKzouXA?7ey_BQxw+r6RK7G(@nC#NqU((5pw37H9_XL~?| z+ULJiMivx(Tn}A0uRUIDzxjmK{F0x~4{-vn6VKi%n0I3@SUuLE|FgqF!p2gFlnhK9 znGBG=Egkutp~2;_^v=R_;jj-Xxh-EV_^dt&eFyy$ptQPjh32mf*G`js z+`&Qm;#zgzF6EANbK)(&G%I-QR_RX4vp~Zihj+d7Sx%jH$Vc{?13Nr#Z)qBICLrNm z|NrNwzgyczK9CIEXdH=X(M^!$+Bnn#wRT~9S#~ywZ}zvhzT|y?; zzfV^x-C9>ICX@A<<9kmb8Qj9;YQz|y`_`xyd+$;r=)ZXj(?DIkxfpTa+Uh8~ms`tB zlEU9n<_oeAq3{X}c53r%IBsD)n<@d03&~&4ML$NSR5Gcr_uo?DaxJxHT>?KA0Ga{! z=Um&Lc)R~-3ShejlmrL@1se1Z_+CQCZ8G-rom&Es6Xt+*`ImRO1jI&?=S%?Ya^c*H zxkbrN%!I}LB$Dj3mGGE73I@B<^t+Jwm(pyN5izbn9(z{TK1z`)$M>G=qDVawra8Ej zlNUnEr!QhG^*PBVdcp5}w%*ZY4@#78Ph%}0^f=%qR#lQMETV<>_QGfji*15v zRbjW6d`jP&gfJ=I=H%qm7Sc+LTOZ#<4!L9557MpO+;SHDht^DGv%7KaLsG6gvKOzT z(a8d_6+KGnRw#8yN(rfNnP0FO&bqXTKXU%m)uzB8Jv2hVX4VMVeSdk)VxEoL!8M^d z82Ly!1@$3nqqbM@ip?FH|Gco(UZhyt9!Hym?jAWxZDLP+*>itXBdG4_z^Vd+uy$D+ zCUmX!mI{ZPC&H%QnF^WFTc-OTU@}j?`papy__JHzYG+%wQv1`WvO#a{*E+iw*L1li zo0C_W-hY$PNchk^@i6S2{;f+_7!J)N=T1hC{mE#i(qxG+4QPe8`Qgl5OFqmNJ7HGn zXY3@8LAKEL09I579CEI-Nt%2NlGrSsOUCk5bQU)Ogkn=MQN?5R}?z;?Z3U0q!%05^8D&yX17 z0t0^8lFodR%@dq)rn!JfDT+(I5vNiFIQ7mVv zwUPRhQ-IIhq;R}-|2>01v$d^{P(0oiz0)*EweJL>9xZn#*kcANZ)t6Dhe;$vgl50T z?;iI0@|>Rq2VyR|he`(gn@<&0D5Z3@;o*&ki-^lQ?jKf`{CT0pM<(}``q)%_HQ#Q=c-8Zj2?$KvF>a4N% ztG0MG??rFx3@@!~-?gnNVC=5NugP22Y;|h488(Cp?oWojg8mSvS~6^J7DE$}1-JFv zoFn1?jwS?@MA~*PHPzHp%c>U+z~92_LM^RcfGjnu0Cx$hA`df&T2miGSKzeQeP`86 zZe(n2Y6NiR2nitxF}q9)cI1N#e2;fbVv|%M)l{@woKWud-TI}bVeXz+T8sO82#4pk zR?AUeKe5idebZ#2JG!DSSNoDN;$0q~GUH%0Yq1Qid%J*Mudgx+A3d%ZCS%IYxbQzb|i?ye7VD- zJUTyeyMe>6@b&OLSsiO5QeWDZEM0o{R2TZis)nbIjiv=XZz>jSZdn+ua;5!lyFucg zW86#9<*c`-{m>xPwXbDIJ{X6fRD>nnycM^6B z2{6AWN&UUT-s^8j{fKqh2nfH_J;8q|y>GN}2}H|wVx$wVs`h|@XL-1rp4P!eL_ssj z4Q}(~eozyYWv}7OW&Yz?dBoH#v}{PPf|2(@*Bl}#TzlbVR7}>?$S(HI6>?nM(Or4* zuYXX^)#g1Ur5v^7E7_A{4_Hk_sHhyi?9j28OJD!w%su?onu+?1`wx;CUFke>i|5v! z95cD8ig9hf^rTVG!zX>0aiTuHDOvn9@O0{fs~OCYR2HN6{b|C1VxRh;Q;xzIH=Upz zR%S1(ANFm}aps=b>w13AGhm2YHhc4V>iIs+^2$CK?}cp3%Iv}2!bgqI{vw%WYrtJX zfxCn$rwsnROaC+Fv;wwI=3T{s^(gRPoU#xs=|cNxDi};MW*9G4yI?A4#X(Po)xjQN z>`04V4*)9H^ZEP=jT0s|5ogk*=nv*;iB>|gL@Kbt+^hX(N&dwdm#^K1AMDZ_a4Z$O z#7=C1iT0`9m6Pib)-rZ4{3$K}tYCkxKEDw(JzG-p>mELtvC@8zH`UM1l~7op`}{^m zpRQcw`DSQ%0%xnA+vf7AEvcbxW7$6{DnW=JMlUd^A!wzPek%QMF{#xM(;{4MP@^i9EibBKDzFGcMM|i9fbZ zn~qI_G6<6&5X{*&gbh>k4#d52%I(81zi$DY12N}=sb0s+V;IOrQP<8io)w3Kqmsn3 zvY@-~LaMZ9_lMov*tG!krSlP^ySl%gus#)l^Cch}a5i#&+EunB%Wl2JuYV?fvB$66 zd+%<$hp{i-P0~BQ*;>Q4@9Mb+6Ir}^lCYD^H{%a9F+jiT1Yj(G-L!nvEZ9f$N=08U zy*xx>W9dgjnC$XT%ci4e3AzTPr>g1YJ(sNpKGqL6+kda@y=7buqHlH8P_*LB19#5+c{I!Oipl4 zaj{WQ)#fCDy?r#eYYKjaLLV2IOMnJrvbp{^l~x?{4!%yV8^^Qni%wwqrCx59g=^8$ zT*!MOI*4I7W{VW*^^eJZtz}{RM=DRA^2Z{$Ag)};A>U&5$ETpi1O!wnCVkak>o%1Z z##iJGd|Vq;e8(4Vs~`iv1*WucCTv75wv-DIO=D6Sh%GH#kr{vgfY;rRKONR(#lJlg zagtaue_3Kj_blaVwJqZC+e0a1N`-zCGJ9>m+s0m*y$9!5tM7*-FU&vPb=ek8{&!tH zRB0Yn_n*&ylwGUv`f7Yat56HR@f4@Ild@LaqKi}C9-7V_O%o2D+)O)t z=on=OY$NpOrCBK+FT?gO=!{Q36oA37&`)(98<}NC7NaSzi}LdgC1!t@ug7`PtUg1- z;^N{gBk&h$Y7Zs}$f7i6!+~(?{zt3?OIGm-T5^xJ* z0c2Us@3}Ym`JmC_v&-EQ8tJJp;)N&KcW#YO1U(=8U(WK28LNWohF0Hm9sQfe ze&cVPzVAp#xyz?(n*Jp%A9W+07QTIWs-tDwy|XZB^@g>BEr`_2oF}s>m`4j*)ilp0lgFM;A0AK32zSLLd^9q1 z%DNAO3?+EqslSz#hfRNNkc-`7z;<1{xQE(U5|Vu}VtxGjt`Jyg7%HI+F%1atbs>c5 zA|W!ZN`PSQDDY{tF|XA<@U1T~;PUYup8||qO4N^u!CiD35Ay4?ePZ;n9dv;ltCr8}yFX#D4ZFZ!=sP#m81VJkPTOM-pBWi- zkydJuz~heFl%mO;SXYFn-~X@cpUNfaG)mBOklb?iOz-h`v^U`EdaqWm@J;7+A%MV} zF&bJ0xdNIdNk7rMF;2Zpnj4Y;kUUNIf|xwflOX#Q`LZB{27|^V3`Q_CVsP1G`dl_M zv7e#A(A0swj?jaN$<-13u{4>dO&<1E)Cj&lR9_@VQSNa!-_L3R-ZbO22U;F}o~rO& zy9}39>X68+2zk2k=FM-{MkEKk=G2=noUA(AeB{s5g*L+dic`k3A0v*wa`Gq=Ntkz= zBS#K=p3s;-u6ATRbZ0Bkp++n0&B}!AnL8UxAm7$`mjyuuKVO7Jo<{Wjj(WQ%jA2xL zXz_nRmZS2%zO;C2{WcPAtqu4=q|^SskR^uvHG|9g+fn>i}>Pyyj zl1Q{v$du9~RbC$p#^rQ1MtqpGOA>vIPKQ(g+-rjQ}<2noSl^-jTZ0g zptdGB75^4#2P}BxiL4$v)pXj>Ccb4aN1*>(f9bWZW{;nm5VqIrsS`lA0r>3~A7|&i z&kqCZP9QKT0AVrk^~W*NEDeuY}{+E5QgOla`TKir#iRZIhJCg zsIp}!ug)(W=@|W9*}C15pZ_)%&Inzx{Eq^HJjK=PUL$U0J1tMYKQ}TT7QD|Fg_=+sHgr z8eB4O)O{5W>hSD4iCze8`;ogLciTbfYFs$dz1NdM7k}_k#plxl!I!fHevHRo4l(aa&*(1dO$RNoo`Aa#{|Aewh9(TzI)ot<@frID;-f! zmZUF(N4Xp%SDpQ^ZvD92Tcq6Tcn85PkXwYWKKpfD;PWGU7j5`#a&jc^co!DZ;UI47 zjzSz34FP)sor$qW%usTT4_>h~BZM*_HbfipDdxHySL4JznaF$-Q|nK5iD!#Zq>aOg zx3;9N$lq_={O*_8v()WI_f6h}P7HR~+?d0&hnv^_i(1w`@0hbFyA=CBu8>au|D&N0 zLG?LrUgLJlxy5r{D`;+vm2SRlPk`uL#qeM z)`p_2ecAgrO5+JOvIjOgzjfzU{bdXSOWsmQ4q$NidwZuIC-rxmK)t;}tG~DU`t`qT zK}kXlB(&FLbFer_bciHH6Xj@037IT|Q^bw%J&@ZT<5l7w*ojE>x}ppsIm9LbNaT(M z-|8p7{MfhtSd6UeY<;TnO$aJlQq_S$qk}dYx7Xinu#Nd#ePa_*YJ zmWiO)?lfx?3#9?srvXRC{Oe@2aF>BR`6p~E?;<*4&@y1PzwH{?Gw+bahXTG^EL++A6_5O7bwUz%-TuJ;VbYRBzd)&4s8wi-KE-Y(?RhpQ!-d&g z+DOaKUk^51e&<~9^Bki%SI)EKeX)S~kzm5Fdj3ml;O>BWlIfrwdRDj^53 z+2kNvmRHB;(izl4Unk-dO{EXebC<52_WCugwzcQidqa3ZG`GE?Soox@hFW*ds1L9H zZ5a?iL9`?$hHOGHyDr6LNSTCqs%}GEmsA;p#DQ)liau_d#xXhR;Mwpn!~e!R*Q`Cq z%5^}B{Jk3)AFmzhs>)hhbL3$H@zNf>@RIMqA!?&nZGKzqgcil}5oSzY(E^B^Ax?J; z9+c=(o#aEYZfn26C0c;bq3m)cG%mK7SzF-bvD6YhiP{`jhjI z_9w;O`~tH;M}npRSQ8afd<&bSCv_OVP5B9u$u3k(FnskeCxkZ3(Sa#XLT( zP6fwhB%1URGRf*8TSWxZdwb7Pjo@%-k8tQ>`O|MFk2MXFS2VqR#QM1V?hRfHZa$5b z7oH6R!@{3Ykd#hmL-FZuD`9wB#!`Jrzz7tml`d+P4BWm{`5HzIxL8wTbK&$pl`1`t zXLok*y4t;TdI_r}0wmLSlX@yeZP*kE7KhhG(h+}|X`L8Z9JajhFN!YdxU~QFj=`0l zYLK7D*36pvNBoJ$+R-O+UTX!0UTp2?GQa)@Mx7SqMf~ln|M(p)Hf)rMVmO`WEG^H* zlSy$PX-^NnV<9td=6K+%`S1j{qZ)@qTGRfPhw0jb5qm?d9n_oh4==!WO6)145Fw1D zkh7@@B{QJ`kQTUM^&@0*wn3J`6F<$_FC1!mC{(~@+LIP(5&v)X#Z&Bw#tQ~ybFPSb6X)1;Rp%$YO> zj1h_1OJpTK#VuE8qM(|C(w*Ylx&93>5{%)tyk^1nZ_DRWh7Iv*UyheOc=+v?s?U}| z)d6v%8bD$kmDq_5?X6gN*pPm`JI$}N#Ukej$ianHQ{k3^WFZR?bnhbE%%jgG#i#wm zgX6E?WU)5|$cEo8SW@HqQ#HmYL3~^T_|hrhI4-SA_8Q{Wc(4sLS*0YYt~FTFZbN7=<>kX%ErVfF1BisD6TgK}&AA zJ1>7xs_y?A=9-HtUNA5~ONVdT=7AQBbjv&sJe_Sasv3XiG^6yc*eqz!8F3h+rg>ftPdgB$CAppKz~3 zn2%@D3JbuLQW0rWLO4wxebP85An#dFm3a%j6?U%Qnjp z+|Teh`H0^8Xc9&&v9-I1`^`J!V;h4n1*K=%GUK<~t?2PT62DJGYj$Oc`gsIcTHxM& zNCc!Ii*4hVjtk<46dsvE7=(sSBA_y_2D>Oz1N?<#idNPgOt4ckz00@e=?4Ntd!Pk1 zCJ7`4oYy`OLwy`b(yltT>b;uK9UoAE28%2OAK>;dm@vRZ4dOu1y4V^5q@mHpVz)Zl zqIq{D3QHbCLjzl9C6@8^*Ni5TzdzjzINgUX!WQlsnAN$b|gear%u=H81lK_5M$(Egu2xw^W|CUtNhfuAX9 z?B*B*2B8{5y)BpLm!p8tSfs`pQol{7It`So;N10|6J*EggNG#eXA>w8_6|mD4{Ruw zijjUO7{PdJgMvt+6pFYcBVwc6f+W?KNkk$zsaRT>hnHYaR4vmw5!DBpXdTsC?_sS& z2lvK+C~ zkW>WU4H-N8lcIf1^bTzwV`(D-bR_qJyfP+@oC*;C-a;DWy!ruYx)AEsq$$-U!L~L| zk7+G_aJE1t+ja~gfoF`t|ITDE0I6V$RJHmB1olFpKnh{zlBH;27Y34+g5`?VcT>0k zkk}O>h0xJfCWA!9)ktq#22GrTC)yV+=;ogmjtdn2f>dcbI58{d6r1|%1Mx{_lq6Cg=|GjWoUiIlk4P^yfDqX$ucqn1_iIIU<>5$w4p~XxbO)8l+-$m!8C8D_%o5k?o-@(xH6QM6U&a zTv!c3G27;!o2oO)3;elb5t!7MpW2XwMqpFfU<4;Z2+ebEZhXA}`sEol5D^UxBA|Vi ztJ7~)X^vX($Kv@^>oV7ngQ4 zj){o*j1hCc9yfMB$=r;)31N4JToIS{kTABrPc#7R10Fb)11%jQU!!X!!ovn>cBW70s?8lnBXa z7f%P?UjEHt^kK~E0}KdjX?qe&GqKHyb`{}Rx0Ra30C-;mIXRcEn}H`Dx>aj!GIMSJ zG`rjG|N6}bO=vLw+ma*TQE~v6SJ~_&F>vF;u}dI%HDXO;Qi3SUj0`C|F9`l29SSZ+ zO2EB?Lylf1-iJow)?3GoDMm*7N8{p=wU9!}?-F%^V_HYura0R;HVoG*;la2p?rmiV zgGR$~SUFsL>@dTeQR%JoPafRVtQU4|>NE0eIQszhV2@pz1eCHKY$`@BI`q3Uv(CFH z?PUboX=d;4m<_Rf9rr$#2DhsKx#E1_mJMfL_pCg$jz0e4joBrM#5RG$gh9q5@E!H5 zel~9OSo>om1J_wXk-jv&r46x|+@=kED7#J?lO}uSK$5vPL86(JzYt7_(-aq>Zl?E& zI^Uxv1R%*D@3vN*Fi)jq+PpfehKI1Mt!Sdjpl>td_-~yD7r)-t!6q~-m5?QZ_`j0K zhW{gp=z-BoS#xi>ohLKU-8;}XIMC0Z8{p0M3-b35_Vx|*2?zpVoJ^K)K#;Fru)jaY zk2@DI$C=|yE?;hCpYx$mC;LLp0`m-9$7bOsG^y%ugNUar%S+=;C#Bmw{D2H^*-l|N z>Q|u2%29h)JfZxAuIt>#pofpF``6C90xNJxbs*D3wo#}kh6u!|7u8BV0uEfUZyW`% zP-JNg2ib%@=HEkO;uB@vFC9Ot`0;bwXV{)?Zy%l1-yUAG zDB{7blMnB6pB^Cz=2AeZL3+Y+rwOLo|k8G1zuUKyqGi4Rgry z@$S9&mK76hw1}TW)L({n=5iy2ZD{O#$6)3Uxz zFK=!rUhe+jw6oT4_>AU7G~J)CDf1`MdpTWziRj4iI=(rrlE&sH^rBK@T0I&UhCsCw zgGv#vE1KySOcg!uGX_FSK|p!awHqd#wxw>7M~=CRK#bxQ9bPtFlje1(2Zt9DnONpf z`GW^|Z^mEHH~IXfjq#V1BY^L%tREVx@{j9xq^qdqZ)lMcrVCiA;U$QCltTotv7ELaFf6PF^g zGd0IZVcZH)m7_Wi#&VQMbbI4swzlrORM+5zfpXleD$Hx;i#8RrEu&h@xHINjTc#Vb z@ZL#aJDJ1413sFhm47)m4w#e>bsmU1*H#J|kg0|&;V*8K%)U2@-xQ2p^6C9=b!*rj zS6r0mCu@_a$$K?A>}_V3w1Yg#_KNZk=4e!49;4N=S(|*AfQJ;q$;HT}ppzOvx<{tL znplB>fR8Nh>haHaUyO6dO0Gq9z&Jr&kAl(Pwr8BigUmfOrE! zuCRgW_U_heqt)|Gep~JTr5?Jv8sfOoPY1t}6v}%zYRDS_Ri+_Qt=sB(#J>zL;FnHk zsNt$v>g+q`VEQ)7l_QS!!rZM=0$06g`jn?%-|xvLS@`ngLenrcn-%G%vK@D4RS6}V zKUx{W`p(~6sTeGnFEF}(WuQeyz@f9)9aL{DLq(~@1dw0}#-px_D2^SsB(<^BQ<5V! z;xRPa+mu7!f34aIYA=Yh(EjsvvxlDpjwMcMFTUkBy!?I3y+^yQ<rG$_R6KyN4?C$ zax;SaY{l}L;MlIu@ML{k5Wj2};|2*8V$wltOG{Ae!_<9!?dp%hL!dCJ5XY$KDKx0( zLYnIw8zAtZ?~QiTF>^{$AD#5<(DR`k9YZYS9iBfMZ3&xFAN<>nPPYaO36q>Nc%BNO zt4JQVn$5&9htO?GrLvVIMWt+;81rxXy5v;vyRDUrhfph*EiBiJdHOO^&iQ#J%}JJ3 zaWE_BttyWU+%a^f7#DqpY`E|;S{V|Vi{ZoKTO$^}}RV=sQwq-c(1LXx8JG-jjeWmy)ai^bXDRCG9+ z?1HIHXT;hh@mQs}9CD?49WZV|S;K{z084Hux>vq0bb}d0T``0=JLY>~{>g{m8Nqo8 z3qS5V^Hr56KAvNkioxcI@*1gdHkH>jI;tcx!FqzrB?~G>cCIvfWi!k_zmb2S>e!Pb z6K`XQcnb1aC_DI>OW&S!pROGtckb*6u%9r29PBsyd7$_voh_DVte}bwmrE7=rslwh zRutiov`-(q{o#Uw*{>%~-P+J`wf;mQ_AG=4$agfA{Sd$F?2ZT`Dn{y*Od*3~4x}KR+wHQYeh9O-=PL-+7X^xoV8}`mySO=>lKC z>=wz0DNrVjofAXlGn#bi{yo(CI-ZTLEpG_scJ9WC`$n6N{mQB*@#xP&R@&RFcx6gT zi@!N>cCa`*@CO?Gq~!DVh1BQjgPPBEdVx}M6TR8YjBc-Cm*7Nbr6ZaU++!dit%fj| zrIqJ>q6r49OTA=$6=iq+%S4c3#e&QnT8W&)2YDST zDVCOIUMX@Iw?@LNK}&hrVlIu^ua7JplmCD>zi!_ce6g|qN9ftOLHNw_R&$e4mv$Xa zNyL9&Ux2QOHBnZ;fY-fDf==ob!i${r#2#!Iw^6A=XAUYT#8I1+3)=Bih$K7=ckL3V zADZ_0W&y@ode7&i1>g3|sBVt`b$t;^wA1DX(U>U1j9W(zp~SJ`h#QF8C9rC#MBYm1 z3TXxCHe`O%ysg_jMl8j?;N)YxaHTD5nFIa9gTp=TnQPJ4Q}#xKOuWCA~T^ zja;|>;f_^vD2)G4_@r6@HdTt~K`+j+tcugT({j&FKbI0iZ;XaZ=@klDk89V{%psC4 zk`YfcC51r7vfHR3i0Yb;pX?tx?7OddD65jRYr^8^G1eS9+fkf{7&{s*b(I2cG zl7PpS4E?e-Gk-Gg_ukzg@yl=_z`LJWHuo*V^~sYUbXm%^ z&-*tjbUGm4ynoqEX4+!V+i2z3$Fi@_VkS#5!d#_2m|6n=dz?oPjix7^Jj3U^o~ohwRK5FxW>hBi?y{O;(N<7K z9ty3_3Rj6Ci!>!Nv6U{;IJ1YKtAf)o-~hC8bh%hfY>SUlwz5z*2mu&Yc;_8dwrJie)^RUZRbmd@`d)rQ#IDGDHEtU z)y2le2JVlxW8xp9H!;;{EcI!rK1JZ4W*Md?^k+_ayVX%V@~St7)+Ov?*`VT=LBHtf zjwW#@rwzipdHY!r{*sdEAE+aCqw0f8X2=M~+i`SjGeI$hSS(OvIUhtz)KdC5edopm zv^r!X2!%KAEce zmy(qBcp&16z1^rnM&{AEf9h^Z6*0a2a#^cbiOio%=sF+QKP=ai5dAtOAi2r?+$iD9d(En&KhzroSiUDgx+2W@py~>=Mh_x>3@r^9k@dxF zg`?y6OFA*51iiVzS|py9tdLRplV^O7x<__GKU5n!XQnCRo}Z5HT#}J~@b~}!XB9}n z(9`3R96(2&4T*o47QWb=u&E5C@)5tKz$d)7)=Q}R9BBpR3U#rQz4#NyJPro2HuOJB&u64qcGT`$eZD%+tjX;=|%XunTU+6ZR zjceU-m@tB3QVgq4iXy9z$}q(FLLUSEBJ6_RJxru*su|$04A!iFgGR1F<=sN=V+stM6MX7MI-j zg+v22IuMSgA;SQqk!@1?$`Eag23!OeJj9Z5>ROYFg+@G90*%0u(Ko~0t((0Z`K-ak zCRCj_P-PY;>)EX=(N=euAG8$ef&QqjPE*{)jXqvAWgX|uo0DZ@zqoem|5EN@+NwRN;) zROE{QdVU)80m9x!`1z`IWtl)MeptSH|^*E4R+|-Za5E_*bOD5^(AO=CMf@D+_2VAD-PhlM)y*;ng9aFGp%MF#Usa9LJJzZN?JE@7Oj_R{PRvin|JY~l zHOqxJ=bfTP?)l%`V|B@>8HwNMoKR~xypE>t)w{T_D<9fKiMF@UjYJJjt}mKA_%b(I zG^_8VG*`wEIyowhC>kE>6OFmHN)^y@>rl8k44t8ZCrM$<_|!NfvRF<>rE|_@Uk;h5UX04(M_EcU9%i`n#tPYIB`10rv5#|B*asIsZrU&(e}<9; zz6@267rki}R?`20uv-=3usn?AwXxwu2ezA5y|FNB#{w7xlt-Icop8?1ep|J4tDvEM*q z)&A)E00o3_5F<&%NY0%QY;xnRe6d&N)zK1XUlL2xZHMz`6ee@TW3)3!tp)gL7y-uO&;C9GIJH zo0^#G*f_WA&+m5I@Q}SX_AT{Fy7_8hT}SjKBQxh0$sn0zGtWU|9778-+!In9(I-{1 znXSMijp;aF$8D6ywde!luuYu##G^;guaAR%07rfm^>9Pj`_JpseEQZA*97WlPknK# z5;|y{s!_}Ov`ZDPQ3N6`P>v9tZu~@z^WuabFMbw=C3`ly!4QwAkuV2hv82++G5~J1OQp>F=3k&-HP(-VfYzv zjDD8_qv~G}e7!>YHDJR=-+{Y{N3-^X1zo!SZTt3B-t}%NL*rBTY+q*WBw%tz7v9=H z54;ZC(?z6z@M$Ub+Bia&C3s8aMF699OT6WqF0(?WtS;3@a_h)ibEj^}zl43fcx^+u zN=^XCtX{la=i!i**0y!k>*YUT+5ldZ_m^^Zq%sG6q>-$YOMx8HB32fxU2ym9+nOOv z2xsT|HSN=`$NrqN^l#WSy$D#l7c$phb_j<{Vz*eiE-iYZP4jDC6J>$80*JYSbq)5T z5-wn9aNR$yM>d2|rONGh{yZ-n4#IP@<%6j+FKXHkuL)6q^`c#c>a$Z*^x;eS^4%2$ zcOmrJ`QxYO!%5?UyuY|tST72T)2#^iw#TZpB8kO%;FBH7KgFDQaRlz-wLph*@axWfR(Yv_8|6NX0K|iod;&L~%V_mrHxc7Z zb&F#Lvrx8|eM3Ng(z>~~{%dCrwG8|C7Os9*6F48`=QH)8(|MO{eXVz`p)t{O-i!^X zE*}VV)>Vou5OGqH;tY0e-sUc1t`acO@eEZdSrCup7)j;WjTJhBLPoqnFh5FhP zFsj8XLEy_ZE*JXEjNYg{w9fnnHxqyiR1GxC1g9OzK+ofF{kicNeK08B-M@G%xwd4~ z|2Ajqn?HZnM1h&Spy%EDpC?q8QSuELAt(J-!AC2!uh7>`T}?I@>=mVfd@mOi0Wv;9 zD3Il_`&{c=Wj#{Ls!^ATM`cPO(^~h_+r-f4*FSNi4W52&yS}3uJP)=$G>wXl_3;(z zKX$UOoi?`e^$q50--g-&mg5TO_>uv}fq-O_>!#t(IyMs1>Lh356B=f>1mOp3x!%40 z7vJ|Z$shhqzA(1}({)fr6_+noidBM<~^qr&OHI`Z;?Xld@mr4^AgAF>c*S-woMntZc2ph*Dl1 zMF^A>Zqt~s4^*)HP1QPed<3DrL0v^-X%btGT|&i( zl#5k4hHauaDF)sx=5uKrP6DWfxQt@uBFzSf1~a3iztQ9J9if7|fgH@e#s3dg=K{~< z-~a#Xnr&td-;GU+Z7f9jdm1E?f$%9bny5vl_@Ed@ z3W0P$^mG=Vqr%%ikBhR)$}>{7^oCAlu3tWuc>VOjixU?DAmrSx4F~n(&~uNlc+d0` zzEWy7JoAc)z6Kd&SZAlv?6Fozk0Xe-YIYBHftaNo7MG*Os(zPB#6jVPOVm6jqq*4f z*2K2{PbVHjNSh^(wiZ1O^?BNK&USZI$SLf8&}fM_$bdD{ZS)nuJo~)Gq19l0vBIr~ zO;C|3EC!LD%{3=Wl@6B;YNd|vcBTIr{Zth3r|1OG5BnyYubxj|cz3dvBq~n`5`KR<}sv~0} zOCrUS^DkX`xi@v^_M+-t{p~h~wFx#|$Jo){ZGU&uv4@5JlnWNmSH2|yK218{9H(K^ z6v!}oOa|T!X&-e_3<5jc-Gf2Xph(IEd@6~@pWhSHLpi1+n-Y$@yEEkwlDcGYK6Up- ziYr6b{cuUih3!CTcNLs>7(|8Fl1Zedk6|2a8-W-eRmpYWIrLGy#zzfugrUr%YB!hg zP2gkx?$Kje=OHT_&Y1D-(|%T(XA2psjg+lm`1tj&5ucO|0VV*R?swS%R9U65y2AL1 z*nI?P$d8{tLow&WdX=nmgV?EwqKu1*Z}*^IcA0iQsD)!1x}DP@*pPf|QlF-Y4CI#! zoosEh=~y9?Rt@edh0*1fV3LF%0)qiC4}I&AZEU1}jVmc)!|(mFPu#kRi=$5tZ6cbH z+X^|2fzz3Iwq|E}?J+-lnA+Q)$A?euL!ZP_ST1V{qweA(Bh%lDJJVdijK! zjjMi!EDrhU{iW%_9Ejl3b!&dkqqzHN`W@70`QeR*7yD0ZSm%N{GQx5N7{#>UGA5qG z64~FrAjoCKl{kmF@_J~Tu_#W;8>lNhBK4Y^9Mx9QpUvBL<7*HCWcuYxDjhXVn(P9w z7Wh@+daj~LurQekPf|jhV|VcSrJ;B(G0sh3j-@JBF8jw^s#cSor{j!JZ-l*v3Ts3`%3h#*WDR2T}B&)ai3U<97vDBW?SC; z)J8)-yaGp2CAvmrBW5k7!*{e$|BM->1>rXpe59irJ`4EBJKB~1o2wIq&>Epc9 z>x2PKZxFD#XO`6IQjvm`U7TT|B-iONbEp->(00E6wGYhDyeRvCv zKKvPJHn)7?W#yf*ZOV}UI=l+$zM3iOBfjgLEg)#N)41_GW`Y->1go4mdyYrNgc+=V zX^-nAn^db2a`*|k{d-6%p8_K3)g}UyDxJ}fv;X%9TvD(e0DRcF$6H_f1e2AL*dlD$ z`KTPJoZ5%26XdDFxV2=PWx9O|3H8N~2LFafzpmWbK8E~d-Ch92?c6Mfzwh(iV%5Z- zeOd_p0evK$q$Hh_`H~!($P !~xQSt5{B{y>KbkRE0P9?4Je&qiXevGAs*Q9VeOF;XL}?Chz5h&DwOGn=X~L2?1rD^E#X z4^l7chO~YXaNH8VOK&Ht63Z?-KAE-F19kxM0mk>A2CWr#MjcX~8M!?(a+XRWC&|0Y#VL<@;eVgPGx2#=^>!J3-}Vi=^QgfEX47>)`_8>anb{P4cywe} z@0`(RdWU_!#rs`*_g4~FKb;{N&n%xJScMkyBT8LSX&zeGCZSSe?@>vHaq&5zjnTBS z9q1sR|B&2M-QWH@_FlBgiri)PUOcq-e(8Q^{Qg&hS)addog0|D@tQ>m&8d}?ot8#i zm&*-c=%_a|j|W|sy3^SlN3=duM@miWQ_^okzZsH+*$c)kWDhl^rTLtKo+r7^3lQ92e6+B{@u)^k$t|QF@RjS-vd|0&#J(y>ikc2lJX$0c z%%h4RBVKbYupKfv6$(XUT#cJ9k!bBuaD-qm>SI7KG$7(%I_+t(eI871LA2=jQ#hQ5 z1R}A`6HAKP4?3a&1`tg%%E54TCWP~5wi8SfYUT3hI*Z|I9z^TKM&XL6Xm+v*)b$1l z<>{FsVRjrOh|>|_k?BCy13}4<2o&VUI*WV599ZWez=(mu&MOp(!edd9C0bcZgouR_ z&G$}5pz>i{{?VmK2soKdASY)+Q*~ku^aiORGtiKzqew&M$#6D|hYln*nfhc^Xj7m# zsEMZ|iUsZkM>I_vO(V`<l(J~yrG>pyo* z`va-%L0rT6XS4Qqj>UBkp|<0mzg7>1e9U3I`8{Ll2L;XuD|DB>NEn%3zoN!9H6PvD zao|<*v$v!UJv*HZGGme)aZ-d8#p5Aa>_!m(&D81P;k_NeEG(8NmE{9ZBqUiDAAnYS zhj1ub^~wqo$%^8DnQM8|`cQWpYLy?w-tO+KV>T2L9rCj~zS)?*l=vL883R(aTG)6z zzEWEv0U=mTY=iHSDjy(0G=M<4gVrm7WSm?(iN!IBh`*f9RfUtFGB-TL?Tv)lmF-Yp zlxQskQc^^6BO0S?Kg>>{kTGvM!)Bof6^0m6p9L91fj&y+h{V1b2pU0yBySgW?Qibm zbA)~T1 zv;#2Rfe4W(4WVKEcml^%3<4cYgOpuxOHoT-FJHZ=#Aa1<=hB? z8L$Iv>8#{tRYv~Jazs=hs-{Yc=#!Lx(qpGco1fb57^D}{H3%l{qYIm7!>%l~S4rVw z+W|{ahhiHE0(z5NyaKY|<=Z=;UNL`}mD{aW`+Rubz?xnW_*MN z*8Q?;$a`$=whS(30TsL zeAmAkGMl}GTXN{mmUSOSx~woK3dd_cI@TusVL2vfcK0+^m;ZHecBj^!spd&(1KCZ}EfjeZf-CzqGCFl1WWB z4XUF@6pmB4lQR?%JJ&Z)RE@$qIo%} z)4^LVntJ}c3ZX()lwW?NTa>y+BrewkIP22@#jOEqEWUcJ7^i?M^)(>U(*&e3yGrE* zQ2Igrz1?$DVxqL|@xFb-{GT8`XJX=%=8>o`1{h8F+Zt)_3X&P}=}%DUTG15i9E%9U za}GdvTxNEKoTE>k=rg&sQss`7b0-@Yfr#~9q1(IFDz{WaU}wcTXzY0VtKDf$+A~d~Dder298*!D(;Wj_GsAXXWo#!^A(nwZ<$*5;iyO>X zCH!pVyK0^$Kko?9K`s@({Lop1S2diu{Q^4e)h?yKH1{~?5>y=3F8ics7Hm96w73A* zX2ca0N@O0{*12Q_pIATj`NL!&ms=vt7=9>aS@y-I8ph#JN*hBGy0EU3PA{p*o$E*c4rOZcn571G4@(^{ygVD>6ZO%!_d@Z=E(~dZGdO>?AR0K$hE`}# zvTK8Z7%0mAT~S1!vy@kIba3z%*E12+^CDi(u9=BnH&I2keF%SkdmD*^}67#f7t{Bywj)_Js^up^PwHFY^325d3juMA3aUxm z!ISM4*Jjw5ZtE^JE;(K?@6!{Qv7kLZI{|}ak6K)?+ps9!nW6xMsfeDJ zc+NofD#pI(2lv7(_iiorWGyH``sh`(162iaWNSvV%Z&ClS&rq`)L*;(Bu;GrYGD$` z?Q6HM95euT3s_@Q4fCIV+xX}%is5o?@L0yh`7R+rgj=7th3ntHe=}fV7f^o8>>AW$ z3v1tPEk}WWcgu-6rh{)Looy1CjY*rgKgB*44QLAq+b*q$8 zIlkh@kymT0mVqRn=P?Ouzo$BDT2b3a3qm*5L>e58`sAa$G*CUSN#C*`TwN=`B0fme zh>I#mFOUe??NTDWl7C)>l^2kg2eZLptV)E&@1H;Pkl!XHojf#s0-z4H4{uaV2bBgq zo^!!zXV#C2(A($CF;1V5Ixa3fdZOjVF_i>*SZ)7tWASw;3o;>OOD+j2_h>4r- zINnrkU;Xr0RngPOzN2LvS2DoS_B{2!Nze0H{msnnn|@NKb~OWmHbxUkc`uXNkajxi zHpCc3&cwGV**K1v(uK7*44X+_2fS=* zo6n`%bmi(46cnhSBR(P`ms#1&ckTfFV+B+gTXXRuSO<{`ZAcKN%ub{z%*s`E=QAt|gT!in*9+N0llRVV7J9kW=NO=ytGLBUVts zEbndKA(uz3M!LnLI;f1nJBt@c5mFGn4q>7=$x>LOED%GIm;gdN1u_&2w%`tUKyWn+qT#sb z!*H}78wes+^f9?OMmr(=q+B5q3`Aqa3dMkq2rJGchCsPpcF-{osx#WaqafoN7a_>3Qwqf`-b;oNvDkdaSnVSqYkYnV(XG1Ar7h* z>I$0Vbcl{CLf`1cBV;HVv5hICT}*KLD1wG=M3<81zW#fU75)*qxc~qA>YFCGTHk>e zVolQF0aUA;Vy~Y+k_8(XJ{5_4m&&O6Y(uE$S(>j5OEc8g7Hi-nlY5?+AwMOYjY5>$ zIM3(98A!H0baMk(H8yqJXTh}gT1}{?HEJCUG1^%)m0Je{8CpUlC0PUwJfem%;hv#B zG=!o9Wl)q zt^w9;2#lzd4^c$KII#W(lqZ6zN&^yb9Uv6jv=Vv)brvf{MmSSPn9$UX1Fc|lgsiCx zGx-e84zo}oL~t@RVAu)d@X|ccB=1E)v}!FFNy`p`oJIF20z{Y^V#C#05LzTh;WUJB zB_a&U5E)2b#u&hrC>$K$E`SK;P`)dqG;BhL+KXVeD@2~UG<5I`>QOU|2BRBqMAx*` zrFNr|cWiB3Vv|Fx8$Uc()_Q94U#sW6;7YC1^gsse5I}BP`I#Et2ScX1ye38!l_TyOFAyy~p3WL#PX(M8OcI*cw7$C1K8xAs)h2T-y&pJaBvUgaLWC z0t!n&Ilo7>6Po&}=Q9Fn3V-h@CZcyg^)){v>?f~BB0zRQvy$; zXwB>`$GkBVz)26yzXL%ug;kp|90~i;GTSJUm~=-Rq-`H-2Z>4}HGp5;0pdYO8KGSo z)MQB0^n{7H_{jNyZ6(mQKZZb%gfKy)546XTO=y%81f(fZhp|YrPKW?^B4m(Ijlc-v z(co5yT}^{g#EJ!S$w|?GK8k?zAA^*l0SST%=#QcSkq~CX@w9jdr#lDPRft%Jih{xO zqoV-3t2-i#d)DMG%--)jU(lxs>kP3t&GPF8<&&? zptkfb9k;wCy!7#Z_B}8poAcBmK(u*XT82k;?Uo;?o2LqV@)LE0=})&k-!ptE^uVVC zz<h|ku z0twn-Rz=C4XLYkwmWx3`>{BX=tSSIRRLjlF@tOx z-0TT#VqqZ=IPV$*Gs6@Lx7EnYoWw?8LENxCB-NE0G(q4Ekb?@iJ@P1!NY7CODRd!> zC`ALjy9l_(-Z+U60w!_xVoMps!@ZzmdWGNIA(5uTCG{zfl<)ASa5jKz6{sh!Q~}@-_%6%hLj% zVZDYByL~o07q5my;OLA3MeCP)gRwM9YT8Dy-3P_#JkAnFPTkg1~i*5&K1?qwSD?L`<- z2O6s8!4QzSfWIVKNWh2;X*%C^#GS4M4qzAkKNM1^^Z%+4W?k*}&=<43*>nao*o#T`W_tU2v%P3ubT2P9i@~7#FuhsctZkRt5~GKQ z{{F{zZ`TRWL&Jmm4F##YuXor^F*m;R*$ZORtmN`UiA3@pEL{|^o|gYfq-MTk^&-;T zZ5G4Z(-sfAYd)_pO~P58DK{%*#6d@d8(jLrIC0LPQ=okW2|-9FK*e|n$`V{1sQErR z0IJ4^5G(7%CLrXnRvi)!Di1g|N-gP)vXskwwlG)Cy|Z3xqYY&Hw6(PvQSZJ? zLhTG?wAuI*klJpJP;O8j8H9*~Vn7O)o7gOqteb}s8%1f4DU}2IFa#DSnHVT68%;yv z?ZJgNiZ$o53I1aU8Kun49z=SJ+>kh2jT4NbIdBu|YDFc7U~uK24w(TAt&0hhV8kLf zdqBWZJnmoa1#8XMYK&}fT8Og!~9K<}YJ784Q6kr!{PDDau1B{-*SC-z=iy+Bh zI>e5Lpe`VWaRet?PTNeuVGTY8tS<{foF)P4^V{fyUvy!5aM-!SOZwcA$XjVZHr-() zl4eLmq*hGG$!kxD6NKU6uP?T){=B>FfvxwSwQnFm88>Sh{42Xt?>`4aSMaNl1_7X^ z5LN>+jzXC^a?k?MiOS>EWF@b*mZ0f0PKv_Bttwn)`fYG9rS8?M56iTV_-%1QTo$aP zwl`y*i3eviD&PatgEYGB6tUF%&WEobb}aYjzpeUpVEfgcBfRy;$7+PW{;U3;_p_6rqUU zDa@6D394Ep$E##6QZxhRm@?R!Q}PM`Z|FUIh#5M(9aY*@_psv35eNB?Mte$L-5gpq zJxDK&W(utgDD>H%F6CD9E)z^>*|C-){w$D=Clb3gWmLWqz1;<6>>bzM+LHPqH!;gA zXVwq(yt`W8>gQiE#ySpZb~CEOfVvm|(89cTeH8|IN01W!1QQ#`miyB_?&nQ5Kl(bvE4 zDttc`Tp@G$Dh&9#M-veM;;hj~1w^))OG9e?92~T>SF+BtxDKpZlkwHI#Z+Li30?L3 zgNyr})8${rqURqky$EF_J{kI8tNL}Pd>*{!P2KqT-tODiPyf(=b`6RX^K)ssBJ73A zY9mxuc@&7P=Mk7})L2s#hO&U#r}T7UN7sr)g1B~{17N=7j@V|-Hdw_D*{EKO2_1*)iex8; zJsZ_}_3`m32XELl_|{OP|E4t$>Rn$Xo;!3c_4v@$Gh1UiQb{5(11&^@`8~}0wqR} zGK|)*BH1I+l_#@6_&SAO@%7%y)7@KvU_qC?y#Gw?*Hn&s@LCT7Hh|nE_)E}IY+E3# z)^r-_yi|G2#b~EkXPuz3-Ka##?ZWht<#=Mar6jgKW+Hcvs}a$9_R7?SkM~>|pXxh* ze}|6FQs2qXeyjfIJ!!U$IkU#@&Tu4Xoe}OpBdm6d{zX9SC_#Zk1Mhk2o>WFu$L zxu+)t;|D)xszq7P{wl&^e12Ro>>UV#%v=h*-(Btx*rJ4vzLI1IjOKfOa0@w2rIjvx z4(ulpIliz;0TN4OM-X{fB@v_#5}Nq9b>Z6IuzQ^IU~|Eu$op%7A)~9+vLWT~C6_xd zpijLSDHy!cKRZIWY97sWVF&n?ME0zD&;d1q7VH=4Vkn|Fv}%zXLLTDQq`9kRDAm+& zn=zzg^R_+2Xj9Qyev7Qx>e>$M3)N(Zzfm#?AkzPp0&RhR{&8muS-`n*V_qZ_YpyHT z=!$H5;dAn~1}dkA3G0x%9?f3&MJp4h_rFJtkP~Qjg5+~d2J(ALgdq~ucBOkESdTN1 zxT4J!8@3o-ZwTh>+wMU2)oxKo6eAO76`Vtj@T=H}OP3O@$@(Db&as20;^R1=+RYEN zpZEy`c$e+&f3}{Q{)(M4ufNY+rL{ro6;>Nx(H|tes7*~{&mQ% z=|^2*e9riPe_@Ux72divGl^IoLR5-ynon=od(5Y@?8yijM`r**e|E<1uJwqQp&e+# zjkI5sZc;7Va>TIlucIHIuWG;4chY$wFGm0 z+TYYF)BN0DWo&{j{H8KwIPQuc}zn@gFn@`$N!`-J(`y=z3t$iAk6R$6r z$tZB7ocku-RMxGWTwGFz%KW_MpL?PFl)WUVp0p5TQ|KbQGe{I0tWD3NH@)e*#TA;| zE=abM<#7%h^JFI6;%%?qi#1caa|7@H%>5jjz2)y;=;Jo8=h4WmB%pP*x7ss%Euuxh z0h>s6?E>mkB!-uQ75EbvOXu&UKYJ6W1CmVJ?}d!NdRLD=x`Caxe9L5LL;bEQdZ}@b zrcf)%B>-rGNHl#O060fMnRWA9mJNHJFB; zBz?_I{T7Lk3m-#F z3h3k0-N=F0We2DXaV+EHUb^`gc)_P;AiA=+YjFNh1dbCQ2XcC9Vk^i}vZqSPV$=>O zLE_)Z0}m6)LSzYw?$kh>+6h|kv&-Ks6lqnoS`wFlM=~WYZofdRm1GnRh2~Po(%7!z z8mW*?Psd8X*DVDhix@eR5!(H_!mW4iu|EA9v61Kg`eogf%6`WGJtyL1{U3k%Pg#@t z$Fj?=TYtk>qS16mV>=m9pUy;P?1-4XR>wg|EAiGY%R_|0cvCvDt(rdWQtTWC6N=E6 z?zjwXD%FI38LJN>XTs6?uIlJ=n+%tAVODBU|oq%=)19(Re z82b+)p6&M&MG-5B)hs0QvSpZ-TumRxfoI5YY!S$3Xx-M*J7&sQ*D}XJnmwLT(eEyq z5nQ|8adMi;K*_ef9c;Fle<6bj8be#Mql-uh+ zv3sesXZlL_bm}?sE^uYL2+(Fh>JCN-=#GEU&L`Qf$S(k4S0kU0##*;2Suu(fZ)UAv z)$zn|+Z#Qq>mR6RZyS`<3>57+l-mDf&;@#G{?;+g^mWgQl_%E?{nznc(dkH##z70u z$7r!(3yW%@Gd~YaFgI*t)L4^@ILSr<;YQ>Ly;`j7WEmq}G!PxP?1YOIq%*s{w%Ak-yy>$fEeT;JM)GmGzdY#&a?MqYzXra09W5;_^;mzep8 zL$WYvKtk>dWp6c*kOv@%F4gJ4MjavKZe`>OJtej~dgR8vx_+p*_VZPHY4~QN{=56E zy<^@^!8cLPc1CFnaGNt{h9h*BD9H8myAwZe9YFJ4n|3_bSrwR_t${RAj~3H^_}(xM zNB`g9kjuN$+cT4)FKk5Q#I+mhdJ^)S`NRrCde`QMl_siKi;9cgpXSWt(3UyQb?7pN ztjJp?GhFMR_3Za~y4WIcuE&=&Xf=Z8e}IOPXnkD8(Rx<#I$PmJ~M`uyWnn{RG8Xkozj|BOm}JZ{w4 ztja?nBQ0o|XFy9PO@cv*kXB@WvW>n&b^!6&IOS9gc2geVPI-pYkK8Nw!ZI(hq%T9g zjKHP^WIj0yeVBt15B(Gpa3kb_c`(o~xWd3ev)qo1;g@uPsjG3C_jRfE^g zmbiwD|JN~a{*gd~8YsnlL?bzVX#$MG4POnz+R&-|DQhsZZ%*uP+q7|aWGM8RsBWFi z|FCLVYE0QX``GN)7K0b}{^$-!A<^zTv9jm}`b)F#7#PAio*$a{urn0TXqJHOAqWdJ zKZzB>KxW~!9SQ%t67k{xDiJf-l`YjI`~rWkX)+5`7CczX1DE;*2Kp`Y4_XoA9T*C- zjo8bBILn!A4lB?*z;8t$GbCg=+sn&$xsM-mcEO{qM{Wnb_qG2hxqGH0bX(L4{=6o% zKd@G3iilB}_3|SMsUUK`q(jLKS9bx-2U*frXV|`>-H)P7P_3SPgvvW}h`sd?WHmeT zlNl|$^*^sqAICC|Sb@9d<}Hzg?<`SKg=!Nfvul8C?fH8(k!~xkKh~g_`>EJ+`L;)z zAJ{a+h2zm1=57rRhXZ!|Zg}Nlt0p#m)`eteEgu5VjU6KnhF=kEq$q~8rtl#O5VCA+ zaDo;e7tw}uRyPA$g5ImXO3J0zP~q@ngp8+FhqdAGp?G974Hdv;h$1luTaQK~+s^Gc za^rOfhi9^u#>i-Og8aGk8g-pyK#9leh-F=cS=SS?URfpVelja@Ed_xQ>*WRIzI){O zr*VhoieuMbP7_fglH8y=54^1o{pwcr=7t-^?+rf?ARz@_+CF7N7;cATWnyZ(Ox{`!sk4KJR2sjI84I4_=2&41WI` z#b!@_rscFJatn?Cg2BKfVk+Wm{L?_gJBnnW1eT2G);NlW-xE_RUa$J0nyQjzuy->D z-|alMHx6v%EqXM=G}Cn~J2L?7jEEyZaRgi*wogij8MYX?SQprD#I>h2t(HEJy{QM! zgt~qHx$P+c-`8=56TaAc*UEp<`+$ohDG8%1(@LWpw7>g0T|i4VDfNacHPW7@$LgY| zJY)r~%9d~4Vo>eJ|K9yz^^XVN0TiL;z?es;5JW(A=E%6={sa@#K5^4rnl>Dfpkn#Ze7$qVJsObOlPhB^xkU&I?7{1QnXEy zORh7bY>6~);A3U*?mADCRXy(a_e}qD{^6(I&Ce08dNrTT==zt}yukTCz+0t_6{T1b z=w2X`)(lQJQIpBaV>W$UBE5vd<9{|4Bp#|9bnjke_4xNSQ09yeUR4{J z;%T<^@NKzn#lw+8(377j(bW2iESojg=0}1d4y6K+4`mbss3MflFDGug*3c02Ddkl8 zur0p+b7O;F<2{o-dw&il@@@a@?9hKT_3LZHU~SN^$z1EZld$UrS3c6M6;lfrlCl8C z5*r-V;;Yh9G!R&^=;|HA0DM&I5&sS#w3{6`r+5N5?9*w z@=GNbMx+%-VlNHF-UNZfE=exYO$sTI!ORZoQpg7U#?ExdvQZ$BmXSHpX)aOKtWP?% zn#+4vY@g(IYiT_qdDqyWN1priu&jHu>|yvsN6gi!Y4lMW_j$DY)mkpVTFCG^;-iHS zmy#EpV)fcZagoG0aTt-1hb<$nQFnDasVVNe}8RuEq|RiQf*8$;KY|5#xu3S!U|s< zq(g?*QgS_G*8f$BOX@%HpM#-Y-1*`*{n62A9|9L2S1HxYQ>u;fo-fVpR?0;(r5tZs zAtY1`75~80|5Y%}zFKKgFLX#pM6X%z3VBrDyn0&*7B*W*G%-lsG)r3mS9e=A`)Sxs zNGr*FI`^^p%PS?PuiXB-;j``WWw$c;f zFPB#PKK}jtxsIwGgoI-TW-tGFN|y&kyOhWGuTIo+eYgI9k5Zu|mwR9t0m5WqI)G!l zutJ%=#Y4Tjw%cymy?b}X*0V;(c$MK7W7{vx&!16jH!WpWaER$O_fd=at(ol}W0%wY zwD%nB+Z^e9-}3|5ln!fGUqynIr<@j%>#qel2UM5!(Ywk`YDGNT1p`VR+**rAX?TLA z1{>nkHmx|ITfsZ^7Zk8`OUUN?y9!tQ`}H~mNHzeC8k?VQa}%|~45#hQHVy0*GC0xS zCIc)OjBeMy9FaLadpC^}>pVZwRse3TwyKWTBzRepaRHNA}Y%6r$?F(ws9 zFawaHFy{_F$4SaN(tT;gI{P}eABSz_y#hEclt8SO@GQ2f516lC|E}+!-b#lcg6BU& zL73Mk7itns8anrX+verbe|Mpxa|S9>)^!0{kM2b4_lPCs0+R()stt)kgLzKzymkU? zE^SBG_Cex4SqRiC=z_Z~sxF8v0ooR_S~~T1)zPZBmr2xnTMW+r`dsPPuTENc^cA=} z`V*qT&Jd}O*i$9*FsjrrEaL(ki;G$c>EN%l&--r~5UA_F#9J5rc+r>Xw`xha@A*HMzi5UnugXlL z8E8eGA>DbwKF}Uk;cY2<$a9d(xy*nzLc57T1I?eeFK41!V(4&otGnx{^6h@WSuVe} zF|DHi{Jg+{RKM7XRnOjidFyZRRXcyO*2z`00OMm|;b4y-8> z#PBt6Y&Ve-#uMB4fJ1g>`DV~pb>1unt`W6cR(`3KH4)x*gWKM%w6lgY2*obnS)7J?1cWV(rrU0nU?(V z)n0%1+z+2bfb993x11F?iN9|Nqwr;+Jj<>x@6&_+amW7ggdjtEPa?NT9vj-edekKr zyKj3-W5eyGcb=d=JC<8|yjc2rnO7;kY?H5fv+=iu(|Bs06M*KHz)1;+^ac5V`3Ef* zz5J)GNe+k|y6)EeT%M(v%Vtz81XV9b6g?Yrd!MaH)+NzKYFHU|y_+H)`7vO)pIN(W zFRFBDUAs0AT-#;?=bIBEqDq0WE~G{c$dZ13NKu5~tJRJ3a*_?z>i%FqRBBv8yWf{a zw-h6WUSxFz1n(Wip&PKcXTzWr|1U6p%)YZ ztV4|maoDmH4N(26MNmA)-@Taa7GJ9*E$$TJkm)?!TVzs@dl=s6y7bWRDCLvgeJzIQnIvN3{IsoP?rh@au!D;tV0iMkOiCR<6kTUU^O2`?rR9~e$}R9#a1;lEV3w6yHX%2eN5tUIGt4`2M17n1FrztbEQQa_5mm?abtlJqOM4LcdEJuMw5qNCT&v_$DQBU8PhR zvzmZXaV@1R=bM4_U_zckiEmc&Qre0WlNo40Xtb^lojP zeijTewl`$P7*gKHoreg#8nvg}Khjh42X8fOI(xD#g+Lv9PF!&EzK5Kcha;Q9`R-@nze)Gt<{Y0qO<2ka2LR>&or`QH5kw_J! zgAa}#L5q1PkZRv!g9mZY;mXHUVHf@v01ol+U6GsN?x%g--kJguJZb^ZJ`P1!gI!;D z-#nU4(0gz(`IBGQX@ARp?R;Ag(4nByLPbuM6aeU^E>PA40sOdvZ%|1ldxAcwWFR=q zRSCn%7)i$f_QS4)&p$=O4ti-{_SDPor_9Q3+SM4rd41(l;)ZB4rI2K6s}ZGAN9BQA zT=C9gI+BYF9S@wxQ`N-MJLNKc^?S1~$^#Q7{~Q<>HY4AgXIeh1`ZiV4iQBz=1ao;T z^$*3hO*=ogAo5I;3C)xtAjM)^49I&pF(f0g!cm8wpbz8IrRYk5Ij8JoSO|d#dUkU) zp7yTX(nqQgDnU!|NE4=A(GtdFVMLCG`GM2rRmW#NTh-uFkDRrZ}7-3usa4#?ybB!>0_eqCF~HNkbV1vfaEWMvJ(FxHjNcJ&M& zf0DWzcxNXj?)3fnIrL}uz3bbs=e&Zc(pr~I`tR{-BP)VrmG;jia>MitgmYZvG>|XP zJSIev)$Qu%-5516pey+~N{W)j40Sf)&JA2S#Lorh_-9wXd`hsX(yt0%nH2KxLW4*P z2noQ)Oz`S#@R~~RdFvj+SsuEA8N~2ru-VLz70dk@0e+$Wj9~u|wpW0czrP=yGXstA z1H=dx(?5Xa$My;ET@f&9-9G=>yW?$pZLkR{9uC)- zt8mNT>+%LiBh8FCy(P~Z`rOyWbPy$sl?SC0{NdbE<9_XG2Ziy%87O?7Wq`to!XpHX zp@jrTA*xeYGa##xnk+a;dzr@4poo3MR_=ANGpr`6|Qp2B_$`o6>is3Qtq zomg}3O}%|~PjL&md-1~@!jkPT^F2Q!gf>1wGd5AJm;daHaIRM93fgT9s^^wPmQ~pI z_aZoMh@Jy`O1ZxEJw1u7eP4SMMv$O9eQM+C?~PLr*usuR`QFJ&?P2$6W9+?|z-K*g z4I7lJ1#WZ;3YFO`LowXkS#T}3X)29BE7OWnF31z9!nQ$X`unxd=tmdM`SgG)0GPcrnGv%?Qg0JC#qV%G#G4D zZP^|7{K^+FX1;y6_4tQ}XG3Dz+lLC4F4_Ke>FO$< zSayF|=lq#^O#^a9&<%w3)^tacPCz^b4s8c<&=X18{(IQ0du1(Oxk6N1R0*A?O_mC9 zou6*BRG@z8+Qr$zvzvdL2KNOa7K?wv;BtYAUm!B0I0C0v!wFUKYRO72vzBa_^X7mz zQ&Wi;OLVte)UsW(s$bFXzc^+M+-9M+E_nWQ5`YxXy~uxj$Y;xkDF9OJo+EQBv=s>H zpb|exB9Re>y{z+ZpjI@Ifl5|}5p-%Y0hz!S|J&{QIh4Tn|Eg#w<n5P`3b$KdL(QM7dQ@CJ&Oza!4hbxrqfLn=So_n+6kw`vo-Va0>_jXO)2ZU zCLT~o!J5>6hQ-Li)%enFJw=k1H%>;JfH<@acE;U2?sb1R3I1iAd24Uh+i%6T9m`6b z9zAgSz4UY2cR0z=3T$zhUWY988c8CSn=(jO*hw}LOY=ZO1mv5ixE-~+-X#$@hwQYw zmUtgf>ii)cy)-Qfsmas~VZf$|zJdFFuFnBF%E#xELPCH6*C1I&2gF-B2cL8F{GReR z)x@pW=w{5sGgE_MFfyPL-wYr6eDZ3>4X_}uyW zR!3J_&s8anwGQ2`(4Qj^^OHcgC{1MP5H!_IVQ_(ZJV(|=RYo=Q+#WZ~%~T3GL~VfA zReEe4OW2^^rax7;=hH%iO1}L+p(9@h=(-t4&v@#vO#SmG>m0e+&wf3`2>SB$&#g#Q zry}q4yZYaUTd^|EZUO9Xbu*IG<3ba8pQGou?%h6E+N%%)z%P{r=sLjqr3ki8RGSoe z)|znpd`DeEt~XG78XE3r1|C^+G-Pv@R%>@f6864Rbz!i$~hOAq1>u;^TF z4aFocj9Y}A`binx)X3RqNo;sv_s_SD^tdgSf$(Y8Lg)8~;9~xhhZNha)h?vaH~`oI zz)G|mY+;Az6}Dyy-Gpwk*!Vo@)49v?IKb83BvyLouqp(wcAsLo)>zdigUgRszeyoP zC%&i*&DcAq@5B=idt&i$_7`muW-Aa7K#yrOt2UHYsZLojb-{~-Q8QHKT&_cGmt2FG!|J6< z-+7e)&NVU5k)(8!KQyVuOkBPG7G*zp^r)ggXUCpX26N)KO}2ZK9=>i$u^76S*l2V< z`O|g{>oy<^GP(=eZa5(mq2@Ldw%|EDKP00wmKYAoA88jpeQ&Dn(s#OaXjkp&U(~Fd z^KvfPgB+R*7Oo@8$kC-|!ye&IZtitTx|GP-!0@pG=i4ZZrZS0B%PC^OA(!8r*iMO3 zQBBtWv(}`hPeR%^_oUXB*Yd6d&zIhL@OOaMs=8u9(yYVmV+oYPr|p^m!~Cz2!N&k^ z{rtH|DWKb4nwmSfptRDci+bn|sBy*~NiJUb^3(AP*FSV~0gBoA(s=$kWx=(GsKh50 zzFfxsT zs63)-{)MBG_x%`*32ld-rfgYl{3#{;)oDP!&|tXipVTQo1|_YrI_&WvKURzMI#pz? z50D57*e8jOLQ%K?K}Aq;9a)4t7O1jwz>7m;v{DI>o8x_p?pwXRYKQ#ubNBC+Fhh^? zV!yyD;yCD`>O9?st9=rCkCu~=UQG4cCCA_#M+p7k`!vq$)PRt|pwf&T>gSHm(GJbhf4RW?A)YO#aMW zVAO+Tlu$;n@IkG!06-deJ~W(nAgs|&C=l$d#D#eyO+)E0#|_eqd5kdx+ zS%Px(ByfqPDO>h6;!60gef#yg_!-;xTq^P%|8)>A=WhLc>E$Z(_jYd`Mai#zgha%& zJr3y(hu+@(a{h9+}COO^BM2W++5Sr;TmS+St}iicv9AiCmqRQ)?)4>OieI%~(;Uqyt5v z2q7uypcAFiQH9@I_x-)^`|;cL$LHPSx*pe~efIu*-mlm5^*pRm7&uCPo*t5b_S;($ zP|jD7&rhus@QB1 zMH}Cwj<-&fgGgb50Slj|%Sq=l@sk|0-=oAgK}yH^Z2vcK3*)ojOsE#EQ!ZU7}Yo*SVX-KgL7Ixjv3_QiMk!Y8~rS#u3!c0!Zl4Vni5J3^!_@40Gm8VGXn8uBBmt0S<)5x7uZQqwOlIM zigh%&8y~d$+t}FHD0x9s{GL6hz7=Y|$74@n+_s;rUrUR2)ozX)0~`+US_lIG_i3Cn z+&>2i^4xEoL`eYXRkl?!xVG&DqbQ`}`_PM0`QwxKU8RG|PfTi9z*+iscE>(o^H4P3 zh6ayX_kLjEvY;h2gbmBN|0!ix4hzVD)qpxSF*kPe)8H$;AIbEJE(y=z(yIgwr%--mfK{+Wos)F(>%>`JZ%9d6Kvbo$iZXSCdwl+2aMJi##CS{n z@chPO4ayyb2X1%!EMKIVhlnX0{j)f4)4-yJB{K&+gKyD9ggUU|tT@Y|BbXc=DH|ahM(`)54f$q2-RL z=E!rbs(8aLUWH`5z>m#wj4;jK()xVeE^!#<&#xUY&@IYB_&<62hrlyN<@Fp zl2x=oZ*P@VLRZA3e$vnXkvjUT%r>e3!ug}Uzbyn zl-H0f`@;}BX@Pz{Vgux3y_X>o)vu7mHLYvB`@f>MieSKT}sl^g~ghAHu2`$d+ zmxb^&kMVmcMFLrH{QsKX4?7oie+x$H?{&XtD=Y(<Bd5zsVk$mT9p-*L(OxvEn8pjTIzT1&AOA@G_u3LT%EJv zA@FRu3e61c?nsW$1KAS$P@?xv;eeyy z&`E>4G3_}>I&&Ms$bLK18&{o5AONRyFjGLZ=TgcHd-j%Jc9(A7OGVZ|2Wu=Cmz4|g#Y+)y8ff5F4vg{`=fJK=O(m$+jMHD zdZ@@5{A?cMS=oTPc~~T|C7{x(RzxP|3}3Gw6#`987uf*cN#fc(+~RpXX6wbUiZ6@n z>+7=@%?5Z-_@P*r%PDk=M`sIk$22^A>_E*zccmnIlSow|Pt)Ks2C2w{+dA$TM1&$2l_J}OoUDzYI1Tu zX7w6W_`q<IkVi9_J9Pqd~60pOcQ+ev#RjfxbVL@%vE0}8!55I1m5H#_D$z6yr>MS8ic!y|Do zF=bWTKSvfHBb;dgGc5;?^a7KxVn&a^-j36xPE|2#xYyT_@bnsmID?Dp89j$v_w~&@ zn}-hfN3?cr{`wivDFN?(^xj-&wUpGW%Vif=_MKR{O&zT>0W-dbM5@5p;b11DVWTCM zOWk@k1x26_ts#3%YzX09qV@hs^aF#}cWzO3@Fjw{dsAqfLHS#wHa*6TDi8X7W}e-z z8H4xmVa-^oHiDxiFqA9e*=Zo&gkx^ZlsudrJ9kY5s9_#W#wV3FxBr6ZjePueDf~UY z>$p@aSNF>`qOpG5+3wIOSc^LVv5_DmlHgh=IF>9WL^!!9wt79>Q!PVBs6tG|8-s@} zM=?>_J#F*_PBBUsxVA2}W&uwBzW--alf;NMB+Jt!FMh)_j}~ZyB%9FH@kMAPvfm8L1(;PABHeKt4(Z;a;-l~G0&k|?DCEH z@fp^l&j&WRCovwMFR!CU=GcSxH7BSy;UQ-&3mDBZa$k9K069YbVsy*OzisigQHv$Q zt)pDzS8UdCsn?_7fG4YndirduQ+p-9;nAQoOR^L#pc&eGw&6Kysz($ywO7IGgaN)C zuWSo7YWV8G+Uv8dXgh~?TPwewKco#k(OGF9g2X&lCAh88=E0hFemDqD-vkkru3 zNKMSxiTXxxu(c@f-W>|QASEamc)&xdYU7-{u;yI%@L;_2!#(-1Vbhf6FOsN^9pq%| zk0hJZYuD{K9bmR@QA6zvZ$To$91X2=CGZGhrvN6-R@NxJ)vpkXBd8olLgJQ;5JwRQ zqZE=f%TI2z?*j3TI6dqsXhExddpT38HYF}ThE9k zGGXq@y2%bpnswX#%j*|SuZqu4vUy^v+E=yKS~z2XcV)TocgT5e&x`@yH~3duQ{dYL zS7JzH5|KnfE|Y~Ywd}UkcEXL7ww7YPepOWrz9d_}3zEgUII4$PPMp^;)BLJQe^ZAq z{^}+im<_O@cP+j zaFmCRVG-D)3-s(lC?W}D-F&dv&YRvusT`e{{IM)IkcFetN2ddE8N`0G12dpce%tFqpEEsV`%)IK{@ZW>#uwc+alyT9KSOjt9TyXd1@5xdye4 zKO5ofjn{o1ax~Ay2IF5WIkgnbvP>GzE>8KPmg8`m^bb1zKvtQeLK|d;lJ5m4lycQVZXNL z&a=dg1>;Qzp;H8-a416Uu-&a!nqHXNo#ht+lEr~l%k-;dWQBUQ6blAz8YCV&1MrEW zV^rXQVj;ic-x;G4qT9>f_N*FZtZJBr=H9)c*te|}T(raa5&xw{-8rrjy` zxjGQ;o-$}t-a*2y#B>w$X5%6v2ngxBVBK^*~I>nxT@p09w zA68pFZw)Mm*xc<);PYRm=W+@%D6P&fHI9R5DwBgdVTO$3xgmyfMwgfaVxZ6x0qBFL zoU3e&kxGe7tZ?a?rN7(PbsMWZv*$6IzSOdV0y?dPBV`HLNrB(F=Se*EiW8}sjv!=I_iA43PG zIsPtNB{?R4elJ?*AJ6kX@nYO0zI8t5kSfP&;eA&AUT8*~1B}BpMb>0(Mh0Zc9-uZb+rzNd&c1Uep;iKm{gWg#bpnz{Zl4_)UK@aL@Fjo->y& z25HA}w=c$682#xW$EYV-BmwxSEHKgJAXfzJr>vXw1OTxc-O!QBbtLs!CEjMFN!4u0 zeN3CIu%Q$pKk35ky1t-^*yvkxk{RFHcm~#NZshU*S%O^!L_afT%E=bD#16@LHd2|$ zh2iNd?}D3eEHTKC$Uf?(jrLxt*s?79aaqiQ>kH;^znJEDMQ*HF&9Gjyq{N?Z^xMyPX`H$vbUWPAn=CsVc%2W-rjOx<}fXVpz`OlPMFRM6`k%CIgtN)<_s#`-bvPWUQL;yl2iNBmY&40S z@itEk4+l0|ge*%B8j7PNMZ`-O7#1gH{lckdHCzy`_AOJLBolVUP1b$+@y6!HofoTA zrjD*BzCcwW!eoaxu#m>DATXd+UlRcwbuAEP1V0o2&WUaH?I}{Hh@8G*^-4NzBF>;o ziD7|kusbCp1wKoWQ8bIaaAo)Lg-eKp#SxdebzeQguJnsV_oUAUG=OJ&&#^FItLzy| zu%eU;tQke6JKxr`_mAXhDQ_zT3HeAG@UxNOS;)Jo@oPuNe|D~u_QBX>wO6f<;~BY2 z-%jPWQFb|G>?pSq!t88{d7g`;qwYQDOLJdG_ht4u;QO zw)x-8b?+lAq=#$4U46JJg4Qc5`aXSFAz`pTuqHdj3R%km_M!yf{uPDYdwu8iN}H+g z&%b>8jU#6X5t)sP*u-8GA!!<%I}E>6kai;z+|)Kh$b{r29=mVc?*M**K~dg6qF6L+ zk|I&|{A0G=kry9tb@98rAPc>fx6N(Kui)#6M7 z#)o8!JL9tk2@0)CPl>W)z|eh$-@)fZF)M-9RKSN*0|$o2KAN5Z_GG|$vDUhEa^FYi ztqv4mV&^Yt_OjM=BvS42bP)wItY%_$9N`)6U++e3IL89D=J<0g2wueFIZ02zUa#G! zI?4SAa4uo+bzqID6B)KoY3?jL^c>)6d;w zwU?*2r>~!<=Nd3cX83sc`*?XWeLOwg-2=d%y}f8|-fjVIZr<8@*V=Yi(pv1|v#7GQ zyE>9lMx_hK;TB*<-2!a&fa!unlWE}A({wVlh{}30^vAt-WN+Pr<^$|YUxEu48gzHp zD-0g~*g9_&AijHQqbR}KG%_sI5z>X1=ZW?LBz(qBR_n77)rvx^lrT>1?;Qv{BQ%#$ zDK#LqAmlNv_#r7g<05ZfS*7jMF&IvFW#6rZmh1XhhyP~@9HW77&>{UKq#1gIVBM(a zy-%!-~6gXx~jGhA3kj92-;B|tW@n!NXWH36;udX<$brGa#45I?0dEK?c(pXuFm^M ztY?_|{MdA04|(xL&i&AGl03pu(M6E)aW!1r=*k(N(=1& z6$5GOm5&_O9ck44_w_oY?*pi%od^#UN-y$-$WUF-`W;_gkO-q4+yzcLq841g$aYGd(o$VdkA5)e2q@)P;xci>uR> z@_s zw|M;%eO-PHN=zIM4-c2aFZ*jBHTNq&S*qD*gDzPEMt-!)r$0V}5r41oGA%QIv(Y_Y z&fh;J%e!#HsuD8M#lA5L{N84Du|7ZMZo-1RmwgGr&VjiV>+nlf+iZis*U_qc^Q8E7SsDM)90T6{I?whsYgFU# z%xo=TtDR7X;$^aeYkXHB5r-zp6AbEa{MZ%n(uQ5XHLD8H?=#@s4_}AgWc;cBGt}NN z4r+JmI87b@#Es~2x15HiIuq=wl(UxVOJs4@zfS!= zwfb|KI^Ohc&CEb0cxcO7vJUsk+w8LIgHzHW4Q;*ZYBi?W?<89Edx+gK^_PTZehaXR zd_6Mt+Wc`{5jH2k^I!UO^B;69U0VO~#Lz^t;eHdFAqC)zh`-yYcP!CSL%| z+i7$e9&!C2Bb=~r2N|{Z^EeDlQ5fK$W7>Nmngjc00;hq(RDtGldSxWzjX%yEII~sa z^x(VA$mGp4K-Hofsr(s_)Yf|!VSe|5+fZz#hx?qsJkwu!i$u>_RN-Lok%`e8jzz-k zb?DJK7xDtx8C*4qLN17t0AgIh*1LyqEN>QbtM>-yj($(t^HLj!c6zxiP5V$f{{I$$ zA&XdMWW>NXJdfQ4znLQz0;uJP=^eKuKgYMUB>T3s=|2J4KevvhUAL?F;Z-p!cc@DA z6{Zac>YDklZst@a(VBMM+*oHf|GicfB0bsQpd?v}$(L*=ap>CBt*%vE?BD4ql7+)! zbvy@$7Oi{d0i5gyQbhqQLoX`%@7uW zX4E_pIPB6GkMSS;SXfRGCz?gCsT_S#OT%b!Yl5G+Y#BS3_N4#U{E;PqQcQnibV9$; z$bCxyc#m%m_d{$pQT?kJ&6*j45cd+vK2{Q$$WJM8>Mv*>i$Auvt^P;gy>Vc#T3y=| z_~(b;&HLE^QhfKGTGn%@W%BzuhBpA6LLII zXRMpD;Z%IJf|U+vYPcwRC0Pbsie=SwR&Ye_ySDqrY~1o2ZHo7&9hdJL(ooYzcRgEX zgcu%_VsuVtQz=iun*_inz!wuT%fru>v3)t(b4cgnc9iZuKTxZRaT$DqgOhlinGrP= z(cPX=IsIe9eYD1V&1vY!BKUn~<=;_eEPr>_TmIr_Eb+U;5>@hcI`1e{DAw_vr8O zYrBkr*VHtlk}W;VQl+ICO}^K&e(x0GqML5qe=)dxyTJ`E9Y>FtJUVCMx5tHRAJDk> znpEx6OtL}38kFEuvVZmEd6aE{U||Sgv-wRIT)R;?Kw1Q7v@VBL%>_gkdQ^HuRqSZ* z>}BV(_wG`q1zq!txQ_gzxw4Pzg5R~HJZdU=Zj^PQ> z`fp&n4xSddCP6R9nhcXio-CDT5c+&LbU@X9+esp#j6K^vT>toZy4J&GEkCkk=*INa zV*|A(nkyHI^zGGt%FXNbcdvsM2-H8Z+`q$7=$pb$0l=t8c-ae?w)KoF=ZoKQ<-j%< zJ2Y6bf!*v{Y&7VeYmPsF(Z>N@ZS=Cb-V}L zr^|%04LA4ozpo&vyEZE;6mUFK(WRO+lJ!D{G{lr-P|d(+IH{*8u(V2$Utp^+L~yDV zR@3KV1{0pRTzq-Y1`yWb8+Rn?|MSw8Dc3r!U(hgTDQZZY~aBIZ8;x3+p@w zhWNk?`jYKE&6Spy>x9C*#MFn&&fY;RUF+NK-}&j+Oz&pD488>-z-g`pOcp+@@Z{cJ z@YbYP)Y(4XXbguIEvu0&&6iSSywCrL5V1*bUG|X1BCQw8v5`bIMST#hkgpoc_QZd9? zH`WvZ;m7wW=Nt&mnX-7{rh!mb;iUd1?poSHD@uv;k?-JZ>CZH_(9!#`$w*BVku34! z#N02Ha%gF#YddOrczW7x10SEZ`l7>&M#uOad-vbvNZ;#}n{0!7KIJN;Po(1w9 zFv-*zZ8zLrGxe2NpJB(g-2xmw3CH{|_3_Olx-1C`vxMTNvbfQA9}oH zIgX`b6kVNbi{`2#9A!dV_`68DIX9zc;p{bMF53JVo7JQlKbT!{&!;+6qCawF!P*li z1h>Az9Ooz~OobK_Y_7rgfE*1*QR)e_dzV%Y=x|!{m|YmgWakA4aDTG;6e% z+bjt2E3S31!8VF?P5z27n8wwARjc5RugQGn5v$2@=j%$s-Y`lXJ9qYkh5SS-{N#KwzLhAP7vz7OrBF zF`ZiES?3{BOxWZz^6#7;#&LOS34qhG~N_$ zUA$q!1V9OZfDfWWbS$22L&~90faeQLg_Gl;!-(H=H~;NR5UX)d37U-H1*6KIUxV?v z8KBpo86b<&(eS&tKwP>58D;Zerl`L~xFfY}z#a=XqY?lK4|F@mU=SDi!!`ye5<6U{ zo^Cgvo_*SL>a=s(!>#rj#lrSzi-_H!g$k#OS<-hY-!u$CDzi2MG-R;tW>y%ooGjy1 zN8r;qbbROK?{)XikG|-;^80d3@JE-RGn?=FjKd3dzgj=~(eVpp zxCbprYy`34`C%<|QYf|3+Tbk>$BZW!(#s5j)W{@$CrnTj!KSLgS1hMj#|S>zsO#_$ z1u>1mCxT-Zxm?10j?)@zdmp=}t1d;X0k^nd5QaDzF1jT~d#IgVwa;vc*x;${TTG+; zc!&-KX_{I6Icnd~{(4uaVCTeoMPb?ME9W}D)ZG2y|6#>sSA5E8;Qm9KTbYOJw1B}H z+4ivORVb7bU8yPLRH7o{r6d<5;sKebj|t0AuYqpfxk?tx@Kl7U!LCv?)a054IkY^x z^RLSgTetv; z!J>H6+VPl=inX4jAWZPd_Q8BwB z;6Y>fJ=^;u&7cMhwSYX(K0jUT2lYHR54N0y@ADCO6GGUPL(1nk``c_Z!=Rz>{WR*c}40ewrdbSf#IOloh^uKXlA>Z22!l+RnU- z2fWdB9|3WUjyyTPB{UNT8Q6I&x*>wsnruI$f~%YE-ZQQ~pLemmZEiTDQE)HVcAksd z+%rbVH2VbA-nZJj{><#3X!t=g(n5^OhuxA$+7+ph0z*ltK3q|YP;D|JC2}#gTx3@{ z(YPSZF(gBsN_7+|esiEWS5Lrr7iQ2GhcgOH)GBys z(nOual9EKZplcX^hF(TCV9{;*K%8xjY=qg+qB5?_b+0|*J^VWfgw?NHEUWl1@1Kj_ zrz7|7-b7pbc=e}E`76G_EafT9D91?TP5)G+SYm)=>3|t7RO|OBrCPl*5th-~B~?pQ z?_VBa6~1cwrFwAPDLE<5_D#Oab zz$H%DDD4`dRX#9G6T~S(@M)=hSJ@eZW|6tttMHxtZZfMJYl}eSikUexOx4( ztQ8qE;exG5tXwX#2yJdamiCJbxhl9Zor83gEBsUU%NpedudX|SR?VzIm z@31&VYxKkA_Ir^xGDp&nJvx^l_=(1z#133}UU$<|g`P66=B+z@0bpk7^d-trG1nwb4KabbcEs>Pq zy{l^kgH<)1;4!q}b)FreY1M|{Y~UMcIB|u$n%|D2pUUb^m z(dF0OT-7_b_&o25tABnryTG&vfQxBcd00$TB$mr8eQjDYZtBshLYn%7Kg%9rAxeY5 zw)1}VffcoHkkZ0CFYiVy`_e7!P5!mY+4Kmo8-_ut`)`LYJO8ZFCfW;A<^FCBL7BfB z1*zFVy!1XzO`Zm{-+5z12YEBB_QktxZJh<24tR9)zit;6>d7>QSQ@m021mLv1cTWu zix79Xz;8{cz(7CD-qH^SIl>?a^XR(_5(}CQE5x!y5}DX1I(S@ec3hDvwd7%f8j12m z0c(#F75Vw}KB?ROcXNe-wCb7^TLdKfuDbSUecjXBTg$GO55VIDup}sC z@G7?qP9{l>v7>6Y=5G^|N(oZAZL-5Q2qHic&vtz;zw!8M3Y6dOVsh3k)q*g``DJWI zuovZz+7+Gk^<~?v8s+8eUNTZarNkXmFhFTIi3gs3nUC^!^^K5%}wt8QG+X@Jy#`r{mQS$l0JYTWFe z-YUbqP}0$}>sU9Pwis}Hn*Hrz^iGs9GhI%AVrdLhv*$4G&oePju14xau}+^4j>#NXxM$&89=Jl7Mj4UIsgjTw zOl)Nc$xygCDv4Zr_-tZxjY5i+3=BLb0gG=zwb)pGSnh@Pv|i#K?c|}9hW5bk;oBt78?%LL}-wuQeY*9Mk}yN;J1o7c-C?<)UiJ?15Og% zx-(9_4cUGwEuH$*IA3A_n<+{#6iSqqnjJHM*$i3pkm)EF+{RuJT7fz)ck+G&{(DFy zC?e(cHtTvh`W5JE>$b-2>xy-pP_48~D z?6t8}icKjeT}%-3Smp{r6H$%_Bn^UKV4z%~fXjPTjksY%{b!Vkq|5bL^%sE^RJ$IZfoM@v&s_K#rLhU0cOwu~}lVljqqj)Fi0@qci9E zffol{wtYE8s)@QL#=zchsP@Fs?J&3$zA5&{>_1c_wi%(SDv`(Mxqz?5Qo#=#D>4HC zh}M*os~#Qa50)K$_ssUp(vnda3Me|Eko2C3hLnT5!#H8uMAU7+KpSuR{sYb6cR^C< z7t1vpkkL!ZuRV{uRv`OxJK>_|2c5FfSGZS8uWPW)qtI~~ChA7eZGjFk*3*F9aK%g{ zxF~YM(=a+x*aBPQrjMPCIiou4CGT3Dx7uG{G5)B{a;4E5+uQl>tM>Gfi_~YtWmt^4 zdOBLj!Hx2?UD#@Jmz;kv$YXnBk#V7G-FDXN(p=&zCf6lj^_npFk>xiiTs_V~dwWRE2TM#VTp=;BpvByWCjJWK> zOOg_Xb|NB*HF8eGYgx3|Yo|kfhSZuBTL24Ly^(X{)^o4TYj#e=XPjxi{t^Oz@4ylF zMG49-G5=BV=JI*ho~Rh+BN`DWBkhggo=8TfwJ%DW&BDV9@nO?;fC78m>KZ1dHv zFTO8zsT=PUJYBl|_nbwPd1i8>VLpI44xS_)CoiNTjkc8&mdHacVrdl-PnFAyjFsv> zES2V!=ts(RxXL+VEGH@Vhd*@HfAPk}v)1Fge|fd%w6FMw<1wlXI_x@Qj_utJj>p_w*2t%arfsNwl)4+YUZT<;~@`Ke71VI|eg}=1S zZTNBbxB5{8_v00Gam=947mGGd_sH6jzIMkovUT&7`}cvsO+bw?Mt_=L_reASVEHJJ zwaljh@^~NLT*hHlDI|#olKs3iF{gX))Cq%kYc`~fs8uqIs-rw>T?kxmQF_11BFGeD zta&>j3Zh6>f7STrPnz%eFyzm=}KyDeOeibAH^(*y?Sx>c*3=U@;`|wW2b%k z+~*YtZh}E=zZPEXcfv6w{M6aG0cAeM zb{E>2M?t_A3glsdi71Gq8FyZHgd5f+nPCys7%Pu`i66{cR`D12Y_7Y0t=;n6<8|X7 zlptMeL9~Bww0Y4wpOr(!ibo7a-SOR1aGNXo!z%$TE`yPj5mD*H zujX_Q&Wp%M9I@tX=3Vm7aS`}wP|AnQ{os1@S8xAl*`BD&5hjM-*G!E0KEx{`k$S-)(3_t>joN54m(*vs3_a1HyN zH{J^PKsvw=eP$+ds+%7IXsBl`5!Eueg;{6Ni(2G3)$MdniswcCdiAo59VchzZ^$KyY|}oAAY{k zd$>PY5n8Nw>uz4l_Pz``8~D%w3v!+cu2AHa;(OF-jkSK*Y7U4X6R>jbWpsFcThnKv zmBxM0Ht$!qCFJ8^^+pqKDb36FY1`$RqA7o+0cgMJCP`k<(YxD{8=0KW!*q_*+a57D zE1?K)D}iMIM+`+~*vNOS@q~yUTN8XQpC+OIjW&q?i#8C!8MKPLVx^t8hX>#>crv^^ zeS8>T<>l__?&sk#9W=dVI+W_NoU(EW(}(5hOY`${XZiVfMz5N<*?pewK9GoN3@#(C`-C!NI`VO+fd7>@n^_%*ox?_SiXzxH`8;z}%j&boeGtG# zzZn_;4XnfV3$OgP%MuUBIAoi+8;k`q;iM!u-N%)TE1JRR)}@S_qWzX+vZP%)#W97pM|Hg|m+Nd!F(QebBZMrnvj70T*2 zB6?w+%3U$vT%LN$JLW@{uob0vuH2MI^#f>Sfi};nFGL${%tO@sajOF}Gsj@DCP2b^oRM|z>G#D<5C{|~eUb$VrLCs`gGe%Ah zH#qoq-hWmHM2(g$Em%1lW08(K^U6O>CBXxMi&*KDs2J&q!Gq&L#8K;090~9^JoIIC zN214{xgZ)k<#prycY=}FYAeTC3q5BCxv92nn^rNvBh8&CG!Jj+u_7)P`aGey2#@x8yY|8_5 zqseitL-pnw>fx&zBiAjOx4IUSJAo+Mer@lce%BslhTN)aOO+;qrc6{QM{w*6GsBQ} zJ)meuHuJ0KS`3W{Bpw+j7GvM=RUF%X!`_JMoaGSBAuD8&!=j6x?9ap#9#ykXE&^HDA_$ts|qRZ@;_x zejtYZ+_~wM;CbK6P5QI8a2FcHtUTS@;&QMF%w%9yL@rjRV) z5ZR!Wk;b)w)<#k*sWuDS*II|KY87l)e$RGk{K_w$2EPYFW9rIBHF_9aP%jqjMHx1e ziLn(iw%W8_7cr{8G9(ElR{%NZ+oPkUOU-VieSL(2^XFh{q97XiZ1tLv^g@&REU$?7 z*)CxV?u-R4T}+PnJHO(wnxryeFwUtLc&aniY-F6_@2$9?BL2%~pYk0h${)W!RPmAU z_2K()ypPNC=-Go$_CIlbQ>@>yv#b5X9ox94S3m)IPV=VFwLwrBVnYI+4Y~n#4S52H z*B_$U$3dzhs<>H6m6dq&Jil&$JiwS*QHc{zPJ`Dawdz(~IT17IX^GnDyp)5G9f$&m z)-F3hxe|pa6$GM-je=LfX94#lX`gLI1VqP10p945H$VJnzkXx<>bAD*x;VE5w(K?$_CrY!iIX?rm zm=kZ0-Hq>Mz1|o9F!#a=m#)^Lh5VS(x$_F&4zp(4E)6)kh%(m*AjV#ai2N)|bQ?-| zQO=VmlHOL8D-8QESX*^RiL}`_CZgWC^?cTxN)>^4VU^Z8hw3lME=tL(mf-)a1_#nF zH2sY&z%b1Xfc|+)C9CVLBZKMWGWbYt3<`m!bsrbn>>u3tyj6M5C+1=$jOOw={LNY2 z)w?#lmBhVh?Qk>QKYqP4zR&ssSLjVSO`$Z4L)e%gxj3Hlz^=-ZLP=AP!eeMPj0zFD zk7QuG=ZXir>YM__M~sbF!hIYLUv%5%uRvTv{TNHv`j~;cyC_PQk@V zfHDJAm+^{_UYXm(?W3|TDMv>XQT)x*b$?;w^l!$qr@+20+~HC2w}q*mY12NIr)r)y z+eLmp(3iSf0m3%+qQr(#6#RotjkGYVwQ;i;S$KVH`VCfv3WU!J$Uym$@j7!)gJ(-oph%Rc}fhY?r#t^?6(sYt-zPX zh6pt554~%sQ(LU2%)*3QKm^q_nM@>+3>cM4fy_d191O+m zqR*dSTufzW-g@(yR;;P1CHAU@Ynz*i+EXRRxpbs;sueje6-MUzV(0Y8s^K<4Wu+gw9Mu&Nssazie@!B})M72>^` zZKqAqCKy9OY9Q=EEOTO3rHUerMZ5(f68U!KPh{86`+cHB!zz?mWkAz6UHH$F`wn;r6n0W8w8rse-cG{8I6q}*uS}V)Uw#Lv>%o=;RdM6r=!a%~bylADm zaNv+{79pe1`;G}j5(VO zQi6=NA-QIF=O-4O3ML_#LoLI-+%poe*!z%8A^+2bj7{Td~>85<&oVG8e-EdT&7Tz@^$98F)J+O-*1RrEdD(_aR(2X-g+u ziWbokMGzt4@n^MvY@VYapM}jF{$1nMk2;wyb-1;Wwo!k=-Q3=3L=5u{4MoKeRsj5! z4%_mp$Z`}9oL;O1|5-N~6t!ii9-et}^!{}<8oB&-x6=M)pM$@rQ(jDl(WN{McmyC+ z+ry2F8$6OOLuTpO22D)nXmN3oc}Grqft6ZX@@ciJa39O^ z=v`BRa{@I{$8I$k!dPMH#@bbyjdE2z3=@@k=H5e{4IjwAUX9BpHGLMAH($Q;WbEcq z$3(yXS&kn$@*wU+tUrFj)W*^(s^MFn zT6S3d@#0F@!ysLsBOgE{(m{K5LJ548HH{AIgXXYU0B^Bwst;CvIkTwDL~G)0Sp9}C zvx=7#a^TOTCI7k%UfH;b3Suk_&4C3U-kvD7Jvr;Z{PQgv{-J*N+<)+6YwDE7VU77rKyar4O{f0N1UPan>XE@$Z zf6WL?0Iz$76fyHzJ0IjHKYm;}JPL#mwfFY!gyr~u^S5?CoLSLx@_&{<(jg@n0j-Gx z)kHwV5Go}AdguzFs&GHtAI=tY@fmV*^Sngh5S{hANI0>d9c=S{?d%Ul_b*`z)^9x4 zlDud1=l?8${LBRci=6=iL#N1;}waF=sB+I ztt7X}~ zv)VjthuBx}pT&&6#{o!7fDcQ9?b{QoSUTwxht|KJJeaKMB^(!A(+R9Htsczg@cIIO7_d9`)1@3n@Ky322?oAtPH(MR4 zDQAzAv|s0U_?tw|m}VsM0f8Cu331pFrmIEAS2O5`s4P~@hJ@TRd(psFkrlA4N`O;} zxnb6+y)i+vJ05>Jduxw=oP)~dvsb?C&G63ute)=Hq9bRB+QZ=XI{EZ0T6##n!{Nlj)`K z_{}qn_T$=sr~RoZ&^}di63F5B9; zf>gM0pvG$Kety};59N{k@=;5dCZSp zG5Z#*-4rwS5EDMPJS1l}YcRz2iwCmks(3^_>QW5NX~sL)$OvTF%lWE4M$wG11!0De zd`KN@-sW5V`}fmNLzgaF=@p-H;a^Tk9ieRCOjOO-Vl1CAyKkdliei}it>4j-)04eKsl3S2r-p!vt_ zTK7fA!1nRusrjpm*Y3`a#g2S=I$#l`?{PdF!sOv8S6qd*0vPHk93cE*C(eDWCkx58D(C zpY|%oJhgJl+L-fX$Ed`MXb)Zw+LdxF0AKy8xix}nL0v#Tqc;?04XiGn)yJJUfBD-R z;rEB8m!5vvz6qR*XIbwn=y{)WRN0;pxZlF8jVm^O(6XZft}ep}y>0&gqv}oIlG@t# z;RS*N4uJs?njxAg4oRt{S%Cu11__2}g=l6DWtI)+WFZbAYN@5!U?FNLYC%p7C)3i> zMl~g~xoou2PV?Zm?0KK}{ePa*&z<3Bv(~-Vx~J>9I$%5cO%`OtXZ6C?E_+!+*qgea zBG^jGThmEoqY`1xS}yONXZ-D5+O3V*3`7!bOSrIV(>KdsAv11Z^8R%>T)90F)#B|>0N{#4A04H$*VQT?u?-t6tKIhfs;LYS~92gewt5Q+u5JD+oJS>?XtyB;#ghP zF8hKp9T%_36+z2VM`?MOiOh0N5i_67<2K0EgK{mAnF!PS{Uub9Bh2#ue4hF4RbVxH z{LuKfpTC?xBGXy4bvna@nQh#{}34;p-tACAttWV!wZ9v_KeuJvewv|gmec?5 zFHa-x#x2T>%nG;ki7<)s`4=etB@Kz9oOIQEJZN@x=MlZh^Y@!wHS08K;&5cBSR`xp z%nmna>2O(2mp+OCX=B3h1NZd-b}|&A4Fe!0Vx5sg00I#%^xt!7rBEJ_YczJ!yA2pe zuR9biS7c{9I|m!zbTvJYj7PWQ4-6>m#nI6YG#af`#{>KZ%1~^jL}(9`@Nb}#!v_O+ z6j$44j>oz;ASfgc2WfQBWFUwnOS;rEbk3&iWENmFOa+F-BQjy5o0bnKHV*X{RvfHWTX zlfNR&9+p=d`|LAv2MdG_ru5B?O>%as`JeC!hsYGOz%^jRe>`&wR}fH);7B=8dI*`oHA!;}ijtJ;18tKTPLI5x}MgunyVDJf0sM(c~ z8Lc!45Y(&>go*-{R1)MUMEJ1S&G7#zz0PPHvzV7gkF%+~wDNJghGeyBL9B7#3 zh98iC-HZkWL=*$osO4rRP;>@J-6sQV0h}}pG!D2JnW)DApaGcH{%Y%#7b4kpY&il? z2TBCwvj-{2DqwA7bpLskW<|Qs`ihk$yzgfh&dmPxYVv+#=eqpmzo3w z?KK4cYaY-v(-GKaS%FzIp{L(2BVqAez)h25fCm+$%&DFM#HN$Mz92C(Qn(>~FVb5VxJ5oUs#v8=NS=2&CaGfb(@i)Zgw` zS0maNNGpIM&6mL>+{92RBwa|o1(iybSVNShz$qDvVAP9{K$4lOR;$xcqdHcnYdsRE z%@Ba^yzn~1l?0`rWAa0BI94aJEq+6$C@4~j2nZ4ND43xEk!UZVE=L!+QR?#=ZXS$cI8#6r6;#J#` zzbctkJ|R~GBW{f$F|5n0>{%-9*^|B^Rf9=y-L`w>UM?5XChy@aGcZHuRP%0SWJ(_y zkiJ27C~g?QJ!#D1O4v+6S`DN|-2mI8k?uQ}r+?!jOldl$Bzvqy7dz0hLjA4xr{2LO z&1$#1e;awe*rOIyKe`{(&74l5PxK22khb5>KYo}hhfEcjG(|!|Gv?iE0-xO!&llK; zc;2^9ET8q##V>4Z)4#M^cGIoCp${(kBna5N37OjKAXrh7wP_~BV47heX@W9AfMo8( zUwJ}5x#-MtyjG|1`92E``7fAt>`I|~)!w{CQ@&WA{`&I3qAAW}-o#60S@2d<>lzIj z7-cpU{B*&^SFf3l*k|1aLt===9WY^(1x>{T!j2x%AoR~6(iq?;fcdbgAtCJ*U%-mJ zobAv~2=HHH_l81A4$Zm*}jD z$-TlIXO4gJ5Z#fW3kWe2K`xtBo6tZIFmYZveTs12;Fef*#*__#p9afP-s~y1DPNNA zZWlGbdgOnetT#}GJ&ZG#7{Ra%g7NxjG!?By3URbhY62qj;15@(jzUyt>!GdpdeS17 z)M+*%Hw2y)1fAR@E37PEvUbq?Z8>G+1#EuqF(Jh7ud)tn_oo&Ho_o-@b9iM#-9f8gY{3M`l{(|u|rwuNxeR$6iKAgXa zegra;Ho1x!m_KG%r;;~^m4%^`Ao{Oi*1tt&rFS8apHX1?>>?Zp1` z$UU5*`iP3wp}^D51=NT}pS4<8L4)wakr5-41YoZ6KIVGmM7Xm(`DxttU53IswLZ@+ zQ2S$HYmiOO1_QHzqw7z^8|KJN>V)pH77;gT&z^^xpp$BeC8FxnzBX_{_%fgAx z#IsBfAXw-D&6;aIX!L+yGvJBg;j!(KA2MglrjulP=YROb#80giS65X<$Y-53uS zZ$Jc=`j30TspAZx8xej+K7fZ6s0ZD?#`^bf*>$ZM9PlQk(m=msfmqMZ6N_B!dUpsIxiBn+DW<(%zLJc} z^m9&S3kd7BwYNuS+?~5|q|m1YNihb+-7QnxQOyJ%1CNb?B8NEGdB}Bz{*}=5???h@ z*D(-)mj`OjB82dK27>0L05s1HK?58i4|YgMWooq{un+$mfC2saZ~!D)1HfP)oa`{b zFh>B7{^StAKWK%tpb>TwFXVaitkv=2GK zmkUJ(SYUDho|GO6_gk#O|_P)hUwV%3BV zX~Kc@Fc-wbci-)kNNiyL(xm&;&Y5Sl_)TAXslNc7m zJF1`;$Y_G|Xkicj0_|k@EBoP(B|-xRAVk7@#S5S>iv;31@D7s6fMVz|@sZ)m?3E$o z;bj4$Odl{D0fWPU0;1?cm$Fzp+_!H}ocX0sz+jG#l@-3wJbSnH&B(&j82cCh386UB zZQ|$4>;Mn3@uXHPdlX7xYNofR#7zDd>B6{=6?ZIXm#&PY9J?a(q&zI7BpJ&;x)I0H zAq6C8#^1A-Pw8bW}Y z3OgXf0I?ECYtBvsN{JG*@7@!O;9^`HDc9cvEO@AS%!-PFvsZs79+sR;!x z?1zg>sq}y~$#A%UC^;cI7zQ!xeD&aBgpXw+01rpFFl2!926u~ojw1$UFeZL8sTMw( z7={)}EpUusumxB!&;_ruCkTa}A0k!occB|<%0RSFmY#D>0oyLwwlDc%`YS3zSXtM3|L_0* zUw^>I1e;ODta~U{)qLjk*HspJcEV#|_gtcX?oY<_*Hci(5P$t0*tWuTXs*GIt#>y0 z1v_1gJphzNfD!-quv%IGZBcWPWDInQ=GHPeV+G~VoMMh{w1XiG9P{8hwN##=fR;ze z88!k5GmjvFJ@v@20tpn**ck{|&jYRqfYr7_jodOMg&K0uSjtVI*mW$?hf`66HCXCj zW&otw!-h%$Tpf4-5ZbsPJZL|E+8F_wtFz(z2^s)VLcorCOhr->cALV4jhqI=(W`CX zIv+9z8g{BxoB097niJ!nN?Sw8a%pjYeVwC`0E@!^J^t z!9%;NgR=^cXEo+(NBkf*e0z(M^ax(P}Vle>S9$f~eU@+L_mu&k)S9hdO@64`?&pbU^ zW-H43rg@inGKG-L{qo0Y;mE=zpRIcJL@zHQJ5pwnD5vPsY`6IJ%*V?q{-wsqTflSL z)4kx#yE$EbrSEn}FhGiii91c}+yPB9G-x){)DiBHUHW)nVF8CsvY%?Nk5NK< z8>+zo1sqp7djJL6S=lpP0ufT_4P5c#j3rWlQaN>^I@vIl1n_!8@k54iyO9Kqs(@5# z1V|ncaBLgYh;|jCz!bDk1}7%$7w(fA0GYt(;sn7}1Rp|^Ju&>1)$qkb=i&O*RJ*ef zKr4aMTb2MLZF~bPhbg4$SxQ%Fs@X$5O2;I9t}EEsYJ2jNjopCmeE%s1=51S~ z`Q7ih$q9+kFQX{vO@Epl%=Ay{nP68x*hHQ5Z~NUZ3kDDV2=40q*0z`)7uTdO&4&dL zs$_o-Ov9`d3ScTks~}MUY~)bNNja-y>M(%XMOb-iE0f1$ww1|Go}{cOyz%_wx2@6d zySlp2p5aL+B+=1BvC*U)2zO8>3}-=mQ#*HJaTbsXt6Jm>-3Bca-Zw;RM+NpeQ%87r z5uxL>X^u6rJ~$pJmCH@xu875HduSMn!VFG7ej2SM)R8JPn+8{k_?iM*d_pE%NAltG zJ}?cK98JLhRSQHqGLo%j6c{HaW0~;Kry>FD>W0UHHk`2oBdzg*hfCip6zG+kHRwoy zxg!+rVjYUKFaluJN6ZxElkEWCL&kO3QQ|Kq@>6Ph8QRi^dT9|jmbR=E4 z99dDwEbwu?qZtdgkL^V?pJ)M|CbP4w3k4>mhOVk@pLV`~bJ;_GgF<;GE%B{!K7;@f z7TmVW8f?nB=lIu&5W~9FrjW{R#0WBOl-OyaXq|dfRLznu5hN~aD*pXf*tS=+GaHPg z@s_PCRuw2}WV-%jNX6Zn5qS>L$yo-ZMs-6q#=tc?E%A!|oIj#%evCo2Hk?qWX!tNV z;GXtl$+sons>g!98>dfst4ceSc5C3x?$j+Hf7{Jv`$tKaov&K`I&#MC7JW}-*)K#( z(FLF+P^_s=AtWa}>!_B4CGZPi1Am=ZphpcaNR#tm*N~eWEn6Ntm;S)ed+T3=<@=r| zLCnFn|GSbNq-16w;xn_d_Mej+vZUzxZXSM&YR#c>*>L{>d26;1_q7sBPWYa2CUoNA5qol|2!mcu0y#) z^`7h0^0^Q~03rAPcz7PQpj`NOc;w(3smaZV$neWhC?RxbhML5rJ2~^|^`l&7lNTQ) zfDJM#_`d+~=C|$Kbm?vErt{^GN56WtVZok_cT7JWio1%h)(}uQeps#^fFDEWfEby355X59Fs_%lt>j zvt4UEwKD1><#-yt=Z??C3;@H}d_+8wg<{R)Z=Fom$UNjU3hnR z>YliJJwNUyJABf(jfUQTz9y)4$8?5k2E_hyGo`2%g*Jxg6+%M&$`2W)u)n1Pb+oDF zE;crN(}~`RK2=^KE9KqA?aTgqaqln33OM>xJ*VpHggm;+o(#Jo?%q8(mwo#7gVrBE z+J1d$xcB2(FdWP^nB0HIC&)L!9xH7L*X7{#SqmhN6;bobwJ++2h zSwmIJ!z-z`8gLC9_STZam(NVzzU*~q)YH_0$V&~Qc6`y`q4HmMMMp+4HnfI>8`rn3 zalV}-Zoq4w2;YN?!~`iKrYTwe`|)h8*SW|YJ;xkFzdlObYz z;M=o^;Lr}{@>|P=1Z(4)Gmk!`98a88uPDrZ2`kjGWhT-%e@ef+ieisQM0W@ol}M$Q z{H1q8>BGJ~Ker+A{{Y+B+1Fh6djA|LJ$RrS?{Oh&?EUV@)VB~?azPVo=+=|vcDd4A z$vr#^VbLIyHk6bMlrD;~n3+RL%*Yl^LG!J8s`jkeq5RkTpD};C>J9Tz)z2Tbwk)wP zqTDJ@#4!+=Fd?MJ%xi$0KEuNcUfNY3u-KQ}09BgCKUM9yZh>nLZ~lDlG?H(&Z+7>^ z1#!!dr*`jQdc387{Hyi8(`@UBf;7qrHYL;`$vpR`yCW;(-Sz8zk6sMtcgocciKmCl zNA3k|EQq{izsc`6&CTmkZ9}Bh_J7Xjb7p!sr(JonYiZdB#A#Cqrr+&vD96zdfysiS z$^?^6Mv?}_ZI0m9qc!2EJ}HJ{6Ay4vo#9P}`hCbZBUs=>E6Oham>^h1-kuj28~ywr z(cr#|4-AAp#+fG4Ktwbh15;S`YNoNr3qHtG`y$FonDou{)BSFF`&5@M*XY~&4zudacIh5hn z{<0i+lXE}u8)A;Uu6ewRBUvCAEpwQ!{@T!BkA%dcq!B}VyJW>iYE; z#vhD($m91|bi8T%66iSN+q=KBp4csbwCc?xQ;%i$FB#ueGvh{z^PbZ0(9b@K)Zx5cJ~+kNzGtzHgpUYIuiym-~*UH>L{A3i<4zNc}zvM4cH3}{9& zJ}l)|5c?1`{W5U~z?LsJ>RZ5I7<=vx51KZ1_ZHgLsurEL@5$1!)ku#I{?0X5EYB4$ zo~(g4xFF5I)wnSWpMIQ2>8zp3!q8Bw>`m{dX9{l@o}d4xI`=+Nu><5BGxb0~AtJYhn10(V?}1gNPlASw#%kx-D9kW`<*Fpx{vI?LobkNBpcg;U+gJ+8XKH_I+B zNZnRhWD;X~`+oIZo9El5!J+zjxEhv^>=JH@UJx@6NoFNA(WEsYV`d}o^AD$Yn`?;T zbGiRbHGF^}5d4}@B%J}jKgV{rc`x+l1T6IN^$qb|#PRi>ztEQ*%7iqW3z&-*G8WAD z^$l3Cfa&YI5M~@g0{oZw1+qigK7qX80JeWnkS)3Bb_&tCwa9W-pZsc0WBjRtkkj$#u6&IIHl@62d+t>AX}R|7+I7UlFQrs7H)8aO(UL030dk(} z?N5PAv>}i!zodO4r*9}s9H_x{HZjq@5LN_vqp*S)mZQ4t-R?2nsO{x{&X7IdjgHu- zAO8DqmffJ_#qO5r=UlyK*AjgXH~spW{it5LSz>5xx16RIrgk9JBqm0coq zzHp{ofs1tH9F;Om-Hmm%Qd}bA*LpoCVjp{7(DXH@g5E|rsq$v;U3fQj@7<3GuhiM3 zSinbRkydX-<`7sjq7BZb~|VDT=_*AH~mHT7LC$XhvQ$ zypdENU-HlK-BI5iCqIZAspFM;PBx+TUEAhzX!*8^6m0IA&+9+@J7$~>0icw{lwRA( zCQl6mGiE^fLdbc77bF@gZ+db2qy^!qX%wUmqtb%q`x1?WdWc?`Aa?r~B%YYvCEUAz zd1;RByh=kFU2^kEfA4q1Sd(ivHon-%h{KTS5oPulMF=Kqrc`c9djaSYoSRe{A5vT+ zH}hExw|nAC_P*)P(|zx^3ah59+}5<$fs~;zM z*XAB=5ER%e#CfVd*y^SJ9t`#Nwl5ZajHut_gLbouE-k|tKP&Jnn{nj4?3)2p6`T+w zTf*2+a&!n}um@jshJSqX#u*Blk!M{>J8u!b%z%%&ApS_tWY~l@h0~PUft@G zU!QsW|GBi}&OLF6;Zta-ug{;wl!S>fJeXLmeibPK$>rc(YuqVoPZryG;ph}Dh0UY}34U%05+u+jgL)s)SfM@t5gkYw%_Rop4T zb&*YpiF_UoEr1M-;ln+fZViS$_L#r-7$mQKY+?@y)J{&pTRoE0gf$&MsP(CRZ#c!b zT$TPbpAa~Uam&qSF@;;(eqyVkv>hMhs6UiX&XF`C5l{oiGVSPOJOiwEkq>KQ{3BUWGr2c$Ttsi{GJfgxdtf8xg;RsR)A7#3n*VIkbpt zv6q&4`!B$J+nUShuNYcuG9ho)waumZSKi7+zYTW1kSy9e{JZPK^zrGGsY~X}?m!_+ zf(;dFIpryju3<6z)HRBXXj+RK-hxN)x#>yx9?|^J0iznE%2Wg=t5r}nrtd{Ar8eWj ze8T@;!JgC;f3VVqux2Y@^YGI+y%kJBpZ(YwO}IOhUL)W>q~E=|s_!x9U`6uq;jo*2 zR<>5rjk~Hf7@^&NFa9v5{n0@Pmiq@_OQ{f~X9Kr@_^wZ*Z#%u5D4r|!(ujhXp7bT7 zZO1k)o3bo^elRT3z6?3N&^?FtLY{0FfM|K5SZ5qw-nvp8A)aQVF5kEPxLnW2M zZvPe(yGhImd(wljpLXuUR~)2seOd6vuPXA{<2Qx=Ym*jH@6Db9Is7I-=%56Nl<*ma zQo16c*T~}q9`M}Bnw=`|eMsm%ym&M2ow4n^p0`yId;d+RMH?2Ldiz1{)PFGUTgAto zv{sK3p~|A&7m5*L`bCO9D~82mweKf0`fBFOXNGP5KJ_t+q4)k@yp#F9G0+=*(m(dH z9%Bbw?HOAq{02(6RzSz|*gRI)N7IERknT;)f)(#d`C4;7=3RdA*FB2{sApYR=GUqa z-4Ff#^XGEMt2Xa3)#qoOIDPNo^4aLE}A@rzy zAfKNSpxfm-LvHCr%)XhjrZLJb^{s?A&-A&+6}HWDEACPq@dcDDw2>l7p8|+nO&rqR z1FFkkrSt1+FZGVLl(g(XS`upmUR|=>R$~3d>i;gcNsmmOYBC!lBCAerJqAcMDjL#@ zhl33@aY!>xiVd!-h_?M9VV(Q+cakt~g?O8WY#{M|EWfo&E zWn!n?9h|Zy3uoiRban1hyPI_4M{|_&>NJf`vaX@IZdvPJw+3$<-;-9jE2?-`0WcwE z-!9$dwbjHkPGf(yW$VDBm~Q$+>siBi5cxb>8BAB4}r_(~`fRipDm_!U-JZ4D2a;C@w^Z2PC}a2131| zz0w!$>NR6qCK3LAzP=mK+@IToT43U2UZlpM2&>xsS!yV{cJQ0Cahmz$fnp=1lG6oQ z>mXK=#S-8Oq$(c%dc2XqU06r16OBBVTX;^pbN1XNwT{9f4|2OPSH4#GSCTOi(Nh;~ zNVFL>novdQ_D4t<=or?HzW4VA&xme3kYAKM{d^Jy;qK=|b@d+w_wRGwUw=&l-sXLS zDb8tMF{c(E+G4A!dn9`Go{)Ojdp#pLwi+^-x=uw3A(h46C>gp519X8KSl!lN*XJca z8DO9r_23$Qc*-;Qvfd)kcZL22H?Bo5vHIGx1?m7&Y<4g)HNflwp@?F_WA)lA+*L!I zv**r@3lar_=9||-cvT0QikrrN|88?H+W>_DY!O-E$-9q8U7kc#2<}ulD6eeRO_bW9 zS?&kC)hZ}XSR;g#1~m#b^ur&YITM?whOP4|C<-d5RDAq6ADo^C_3i27NiT2g z%_H_7UjK&}!EI+|QaM8uRWLi=(%`mNM$=}-*_Ao?$+owOqhkjp*dK@c5_=UK0fE7e zX?_8Ty(Wb2aqnK2;39F(fjiHsUqAlU-Lqrnzli*8cc%Rk?f1BIh5kKx)4z$Uhm&Sq zGU#?jWSV5y8TDs%8tvuk_a(U7zrYJvtfP=_Wo}0t-lT)vmqC&Dbxg7SFg>c48`*%a z3ZxtKEYQz5SW4@%wEaRtr4A#~9C5gOONi8!k`f2sKls6SgZc_KLr}!bZEp6@g=^Qe zjGvk3d*fJ|DmJks=?XN6k7LqLV=E) zPv}!Xictk|nvN!U^{Ke_R#4lgO>WlP{dS59tM&FITY2$;rHIVa71$AeYr2S8IG;QUH{=$uusZhSbFD3MBt+TIo=uSyh+!gRSmmox57rJsr6=fX!=4T1;H!b!usZVa zud|sOAMB1j`-Jm*mP_n%FR;}mz(XA6le%%yURw)S7i-Tm2LF*WfHd|v>u86RlLzlO zu24^ywBxtWpLHRyzxvE*_m8(;72C>x{62m8N8>|eY+&--Ll_rf-2Z&v2F4~j?2!bD zJ;jO2Aq|DQ>C|(ZTfgsuy*BK6IL`II9Gv-Ax(?^Pv{?Oo<}XCBokQG;;x(44eZfnv zw%OjB$AV0A6RP$+bV_FgW_P7p9qtbKKkiV;1yrP*v%`#?l=kS$53Av`VL89A6=3J0 zlfO;j+f8c>6TagvE(y5w8n2r_a1+}1RH#T-fNi=3GqlrA|zQMT-nE* z;ItQ{j*R67ojp@`XW5k7BX=TaVr)Gg!N75^Z{+`8K=DpyFm#u8qoU19>;f75!P6Ne z5w=S~?s|Lu3{fR)R`U*p-Z8n>_1pe!!#`D`c_7$)M&r!d{@S9@|6bfby)riU55!*F zsTS9}#|v2O%4Rb`9ip;E{jBX{g=hz4HArcCOa7E_`CHn8b#8)-u>`!!2g%XANwXqf zEI-+qSMIX#pQMT(#=Rb6C}fB&%hNmBN=SoE4nyVwUrijD2|Hl&&9Lh7@9i&3^3JpA?Z*xoMP$b7+K5wL6BA&>)I2@p21q z$RQ-^oZ977$(!^iwNSdr9=U4xY{a`c9UHeaf`w(L|4BK(sw~(XdywG~ zzzzuZX9xKQ`}_L^ga!rp`azZq|3F><bh<{)Jix&)~K!SqD>EpJ+ z#E9lPHPKHxHzIcMm|A3sxZf}rpKG);-vq%bAPAt*klfTr1skSlRAC?LCJQPDg|2dV z6b#lNHGkdeiE6E0zi3q)(uumoW3znYZcJ{T{~=Q=)x9d8$Ho+U$p5*MF++-r=|UMr z^Se$Pg|FDYyv12n6n-QYGB`XwTy=WqGs)*`uxA1#iZlxx^}$?zr8 z^~7|sW`Z)Dj}-E#K2vk*>~%toB#|$uB(n&8YqU3ObT#2gV|yhRyqlH!tHC0|L30-}Co#}$mc|S>iq-1#O~rMhX>t`B z?}Vz)l^{K6FWd~r#D>IaH811+77jl`xS4r=QFiNk`1Atb>kI5pq|FvwMWp5B`$JgE z1VxeRqHsat6f(PhP)*yu{eEvKvo7qY!uB!eSAp(QLG0Iert65~H=Y=Ho3HDSC3sB! z$B!Dizy5rjY}07L5;Q!&IXe+zLQIz;v|cD^g7n}7W_^vSVd?eOr*9Xo-BOY>-1AJA z+N`@=Qnvy)S#4=tq@Hw?GWfB}X6dg zVon<5FF+lKh3ork-RG6X?uYxM@IQLF)*`2`6D4f9^OEPYk|ZvVA2zQ&(=jlcHV0z9=y@M^Eu z&wW0ttj!~;x7A)a?66^*ba|4^6iX1YU(7b;`YKj-eFb!p0HV@dwbhW~8$X~nRCTqD z&^L7BUCD?+MQBWc7-fnlu7;?II7w4Bdl(}*6h<&j)Y*)rn7YSLr7wq1%FZUr)TjJ3X}sx&g4wl*B3!u-(a( zJVM_q4eg?$uO{_McKD8jg21Oit#t#w+rOoap6FTe7u9&7t1b0*?7_6?5yF;qYH`TL zh$)=qMYpCSg{c;hoi$KeOR8DzGm#+l=};)+v1sG^ykT3oa5_ZHd^xd6KPzdmyQo2* zndJPr;#3r1VNRVW`qx&@@1>oJEUoB}XuAClFTj6Bla)S~4yXEfDbBFzQW* z*Q#L_J>Jcyay7eBd|@lGVcbv4$vd$4#Lw&Id~?C<4O6Nw`~MXD?^Ss-Odi4*OJAQt zC9wwV2u>Of)JRp}Mm0);fX@^(Nd$o>?-c%6&OM!OoSOKC`lS;N)yn3N4^f+Uu_E4h z&x5;>MFjp2nUEfzK;U)8_rl#0Z~E$Yn*)`s5j4;g)bnpWjbU17>-glk%?0z$je?)Q zHe8(3Yaksucli2d{qF$#W8&D&p(ofO+VD>UV}w+-s!IW(cFI?-a>!bJ_X8f*^jL&f z)r%@Po~`4ZGj3Jy3z%$cwX*Sxa%{z(wb>n=l}Vqi_`mbU8eG33M@pgg43akWAv20) znFR;gMu!z38X#@#0hHb-MMhH!w1nQ_%M|lrGV7?bG)*?L(*Zb{8+~!@aiI4U{omDH zQG^9-n(d}*B!iNC*aIhko4&4AA;!brRsjJ41$#w#)PWzBq>m1V91evZOg$$H*Eb;+ zC1Cdzo~>eS*U0&q-C3_^%=kW?fi0cz0__M{6#HPIJ`rN!Ht3#wUhbq{zTfhg8fp{U zt!OxMg@5Xw#XD0=4sM?^5gcyW$lUSujU%S-<7=7O2iPNvhNxR{uPw9K^}K4&45}&& z8**mtTnP1w|G6nk-G2EhSpq4zVcHMxpeuI)|}(+ zKdn1r4=)Q{t4MjeEPdQp*0b=;!Tb0}m(P6vjU4fS?&N;|_b|OL3o_Lh;p#Z-2~L%p z9OEty9_QB5OcTQtzn--98S&B-BJ1e7`C(`iGu%tho|WZfZHF~=!OTg};r7R?UvVv+Kk1R8mMyQ6Mu_L*YJA3G1)#aaZSlbY8ywEwOd;1_xVWPi%L2 z6XDftt-qb`+o}fcUYL=;5KH1yttlMaDtmG6u+x!Rg$lCF%Y;tx=mJX3y}>US{U(Sk z?Aki?zN2VSZhqa7ZVR*NL2ujD$_rCKgJb7($+nGHdpY0CTg_^lh zpF-B(qlslV)D68$@gRwXawa#0LlUoAG^27*rO>xgxyN6t zaCsUTz_yVTaPpN1T&O1sZ(i}QW$j+6KPH#^*Uo_;7*Q;*_JN397&67?Hz(AqXJvQIC{KJ|6Z_aBYqDc6qQdkk#JTbd{Bz3J$4JYSahN+L|m(Y5Lq6c#bON(i!AEC z;8ztX9=0`aKjTpT+@W_kJqWlFVOvw-RBQf2a^77MqdOlbebJDrlA-qYEecbevFVVzm%cl)b2RD1?+}-rP zyY8st@rzIBBW*i?Zp32RQh5Yl5K|h zs6r!<*%dtl7?$w*%tduvm zZE=G=2Lv{`?OUTJs)@2ZJmlc-O2HOAJheyj>FTu^x71s#i%lYL+>J_Y*gqXfIuU0? zGD6YJk#^K@v&C85_q76zJ(<_Zw?J#B3i>V_=4ksIQhUbchAg2oVp8Zw_1(a z^(GXX66>WC71##St7TL6b)_BXxz*76zRj%E$ea8Wd78BRcJ-mRefCp&yWU@R`LtoW zGBPtN2;+~zT8GPg+eroSye2z|(UCMBH_1WHVZ#PfXOe74D%VF8E+VOPD6BS|`^6sN zX0C0#LF<;#Ka+EZZm%N5YDs_pO4?BX(c5}|U%055%XL)g@tBnmlt5-QzrZ%&@|$6Z zD9YLx-XIJ=TY2r;^xmD%=TCRDdYVM3|G+tl@3+{M>Veg5t_;JxgxS;@=JW%-m|`1o zgFCTU-#vqmFs?9un`uVePGeI+HL1{-GPX;$~)p7oQ5+% zDN}hECI|+&0@x@@PvYX6D9VH`GM2|nvzIta-)rj>@lCYwRWmJL!a9>#ZXZ{40;@7x zv(7(1r@uHGo0bB#XJ9lyvL%qBqj6XlM}<0!u9Ale`jqHAnXYywUNDo)PCJuK=I6Da z=+9jy$lElq#15EP)#jzI*s!%A{ZOXgE6IZ?(^kYBer^!IWkdtHFYKRkSBrBgUa*fz ztSZ$(bZ>ZOLx*fNW~fR@(dG7$5Jj>_^Ol~JHAu=Q!TMLkiS-?=N<7i!f3KjGJHffzo&VJRvs);gcfJlf}A4`VKOnoM2e%n(akr5+)Q~U-vRzkg5Q^`+Ox|EbPYQYpj+NtCJF^5NT+cG(5rFOCf!Y@Cz6ao4CK zwWJ|3KDng(J1uPG!~BoW!%zK?%lR|5J}roJv^*8!x4X%9_J!?>^>C~A+|~{Uj5G)$ z=d`_E8hw4Qv)X6m#W7CHZPRGShbzyWX}#-yX#4Km*x20-byHi;RXCZ7O{Xu6U|+OW z;+3+sClvX<3 zTd^oU_Kvj9>OHeiM2f7K&*-ZdjOW%v1xYiFPWFP4M?;p5o-s~mEpaH%)4wRchzxK4 zxZptK)56ldzdtRrxtC?)!^~HbSuusPo-yK^zE9E15Sc_$H>nT42oJm5*m*3dSp1+S zEj3F1MKWqRx_U4uckvbv>-PE+Q^(Ui+{!VhS504<71?xM)Go($d^RoqJ!`r157E-U zzPTjk$Jj z>lZI}B*C`Se}T7*mia70H<`Ju>Jd|e`VYFJ-T(jcA2Zu3%UjUAA0^~)8N$&k2l6`u~}m9^2V#eIU@|a^o?aQlw3~2 zxsfbBP4X*8^O^hxxgnCX-f+i`qfT2?Ke$l+ zY{BB_!qK8VYtEDw{@dSn`9sj>$L5KW`r7(5D+1Na76W#eG!R9E)|IQOzQmJ^c`| z5QmFHIiPnL&WVEJC)kCKYb1mH=Y2E@L-DHz&#NnHMC?Hk46_I<0YQ)0XI~ROuu(Ud zn(X=Ix;_&%XfJZbtd0rWc+EHW&ULHAonPw9X`I{@dKvRKD5?`} zn{5^^nJ-$OL1g!m0sZ0Y$Ia`f92cDavg+IOJ0%B=ukwd)I|bW%j*ZXVZM&lH3xQ2N zv*+B@Jh@En4pdK8n02zQTEe) zcMT(sSdEbT7rW77=lYB7Fh|Mko!43vo~D;c?iIxchK`?I^kmh6bDuZ6P)GdvmZ2_v z*FVfD?RB0;-V)`|H+EQ+cqwJm<`3&oVy#XtSAM$0|mGyIB5AKW*Ol{;JAbzWmQ!`ZCe%b@&6MArSuA9JQ1 zf0RW>OhX^q%&!3kfbyY+i!cN26R-hs(9?&E*M*N6SFgg=XZ9NY<>AAJ@CXR@fd9(K zt16Z#ou01W%qkn3=X6q5KaXT~VWq=`BD-jk&bhN+qv^x)f{cBcO>#Ct8_GsI5pfOZ zn4o(>s+d_<5tG8=M;{{lNz@OQ$LiN#JZ(SQog3>iw4ySH2(1OhyPZF&Yo_gTwcp&M z#rvJ+2=0tM5BPDZvg`Qs+*Kppcg{Btw{3~sS*RNUjmv!Ids1KN_Py5a`IvSq$T4B* zm3#7CG1cpfQg`Z}*^}>T{VC+gsBct9+(tvh`F*P9*Hu2p);4un9yg@C+S;z&I>fa# zZhoPb7gz8uL>N9+xufLsKWdJzvXOC_7rQ@RPo7ROo`m2s5ZmIRC7DocZG9}s1PahI zG|I*PIVkUSbQEP~G8CDl$@Aw08%PlF0FanT;9$W%b-)b^+>bhp8T%%aJ^U~=x^!jx z(Wo3>2fYA?Xih_&*qU@Ct!s&fHF&x#N1aVm-x@vN@o~KEoPz&vsvwo*0 zJgF`i)!Ib_)<%p~Du!fC2F}#6Wj+ya_kJB#b&J)GZ8BUBFrc2~&%++X3+SxLoJ>Bu$##d9T$wU<6bK()uob&TuQ|hl0F= zQMi#C9(7o*ST#1H!u#u$Ew_osUekDT5wDMYuhQz`_UBo^Mt21?Y2{yj{iFWVrs1`1 zcJwbVBfg@45g%MMffar%NaeH93>_xiD0!8_Et(=Wlq~VP0o!e>o1yS(fU>sU z7~Fz5`hHHb;CISy+7J zB_g|>P_A0pb9vJE2g3!w^sS}1zJ6s{?}%tPe)68oMBY8$kGmZYe||PRT$H%pFi!C{ zwoz}eKA=$iuJXFhxm^9~E&Co$e&@cA>rZLbXgNTs&OE+u9)3qN_FJT){qxOm**gp(od7RPbf(^d4n&5v@7mhz4- zU23t-j`BA=37h1?ZI5Y^KWcI|RrhUL+u?oCoAe_4OrHK8>u=fx8}241owu@;U2*U8 zp9Ha%J!H`rh@MSbUEA9Od-3YmU`8m_C-Y&>t4@c>LsCZb9hWx|A+kHoJ&PZtp3>3; zpInxW*}5z?8IFRd6+pa=9yrGtp4935%(@KAr^cwcxf^%zSZ6MR1+p$An60V`bE8eJ zuMYLZr7+d(t5a=8ChElbvvwN(YG&$6b1`3>lqQ7z%@z-2{TkNw9@|eYW!!|I;@d?R zcH0hJa`@yh!K&uFD4b?=7m4i`rgeW+*u57moHdfBLp}Ck7`}?-kthQn>Fo zTgVL60Q3np^3jDEzk-LN*>%))eE%;~H{5^S>$Y5<>^yS+p){}R`Dp`s(&L8XI`$|H zQBb@7r2DPCdc3P$KfEjS5(`QY*NyY>2L0;=zdhq4ho1Kx-9D3k!R4^~B(8MywU$Nh~`*US5IQ|?cFmTUWL!|5aUdl?OO@Pf5Nw4TZ%1VHcZ-=2c0=ZXX&G*wj; zxx-d!_H8WkXy1fZ#E?qH)Y3_(sceroABfE#6M7>D`~qKh=U>z>#t-Tx{wCi^d>}?| zmZ%)vyRT*ZI<^<}Za=!D6!J&5jAKjn2%pwQO}*emwmf^h`o_+!I)MjT zWKN#=g!>o~y<ebekb)7ZAr6n?w^yY6Gh!R=G8 zU%HIF9iQmFU4OO0_i?OZ0=;4P-m*@nV|9;8^Fq|&C(ma#^gTmv%UJQb`bW2Ne%l@B z7~-Sg=fi$-;SQa=@39jzosoUX)ip1^P8L))?v7i)-(Emk$9IO@v>07|b${(a-{CR& z^o48Z{HKs#(7Jk$YBS|LfBq3K{InRKC=X1!`{d+}@~4)`c1xBek7TZ{*<*M2oo2KF z{4wDF@6+_!WT`}k5Ab(?ur5Ckj^)Y=DgSKX1xC<`_{qEnq=&7kr%w5xs^gJ5V5^1E z(Z}ed%G*mpE|fgoZgR0KH-hHwWA+gNBam6jD*~Wi!9+4*B|W7=s_2z#eGVF}>evA> zua!HBldPvndnr<)ElEclCWVwbn!TmEu3D#%yx1d+)Tm>rZ-86g{|0>D>f@ztC*5PsZ>8-ynf@zzT1*y zNW6M|D{#dzduP)OvOBE^gbY2S~q1AMyHj4bNr1$NFsevAA~q z!UL#-lu1hPwyD(0zSZrQG4@JaWt?5((2mM=A0g-ViH#loEuzagTRw*SWj2OAw}&tN zv(s9+a^vz86cS=CYwo1n4t%o84~_5XdV$5U+>foI^Kx$%&x>qvFl$L+fN=muzQ!bjpS)pOGy5g zl^zdnT{713D$&6=t{v+>-5B1!`Nal#7u@CYNSJYu@x!&hw-3CPF6n(n@O6yegJ?Sx zCecF3-s$Lbu)osx^tJhRXJP|Eiok=`hQHZEA9_`QC|>ORS+O=yEOybI+THs#!>32h z7FKa_tD@+#)A`OVEB22rxcHrruStwPR=4ZO=HVsdM{6m6_WOUYF8hu<7$^ELd^phP z^>5Cx$!O?U=A`wpl^*`~tF~zryw==q83Wys@FY@m6<%E!xm?#AZ%Eb4n8iV0joB8}yq&&Am5M+)*zHU&2ARPpja$aCR zibT8h%hV9H|1OsNbr?&L5$+oQ8sQ2prfP>o-8O9VSWKJG{D+2uD;l>YSu)t0Mww9`)@yv+Jom{&*}w}jm?_@#T6OqCpxQP;&7T-& zg$;HUj}|Gt8P^{y1!(w%#rQED2a8l7K`U40he#<)9oMW^uLr9gu#=jDe==TCIW!&M zSY8h;7rPu!SNAP)A{=W|MZI<9`b)%?CLT}4;EO&}a*F98q0?yY5*PCEDt&KZ3MW-P zGgo-f?}QV@Udhe8K2sYJvFBwmqhWWbOSD%n2Ni^D5ITCf+5LF&sU6SG#>otHUSEgH z<^u4ik(5K25ih*loDkwqdikw#ztw>=jTqaLT2Z-P(!f{)<5vw0WON}y&KF|*?u z^~296>)Hj|AEJzc8J~+}Zp{uYScSXlAWzfj-+dpOCU?)h`r%tp6OYfgbElM&SNd7T z1O`@@2W(3c`Pv-SAcKDt;H`B?id;M~aaW@oy`F0CttQOCKuiY&Tll+IV`n zZLxQ=+v05JXzy$f+#vQIj!t9}$=#mnxp@o8p5kG*WwR66&0&j!tD}>>or4|K$!?>a zJ+)s>f#Z~TU10gY!HCe+L0M>7;gXBbnF6lv?Ps$Z<_>y+dBjUQ{q>$gsQ0jfyk zH>lNA#7>K<0_ueo0-LSt3Jr@b@m={MvZsu6sA65cRV{0vsbG4$q2ZS6Bi{S|zOpuP zG7!Zb@w9~~%47spN~a;?%m^?IE%kKn2A%gsDJ11IMIBhAF|VF!b~>=h=A={qb%RM? z=86ei*t6!TVuJD?_`ILcji35+W&f^Ardcu*z@8|_%0W3}aoP?nlGiuJ?aWvp#|e*d z&o|Z+(sHR`L#~^8neU}w%85hCJNsB?)UEq>{66gx8Zq&x^PrR&kk4BvB59-?QYiV$ z(F4?h!=GOrnM-uJZ`r3xGh5@LOIEJ1jJ+!$ei-f4F1qKT&d9j+V%A_ey!EW&sZ3FD zz2poyVvqnc6*$|CXKwKU-q+Ig-WQ>*J}u>FqVi6MLj;W8dIR6NgUv z$i^lb$;MskZaHhaXN|oVZ~!R6h$(AzyHsC#f$(qv@8JGtdO#A-pjkByo&QG;N!yqO zAj1B(x8H9QH6#@e$)8QGRuEjNFLHSJbT$DxZ&l*WU4XJRjH%^WDS0WDv|yw>kD1Lk zr@*5PaX|7cKggh{|8IB`5+g^lfUsSVZ@>7F>d5pMwf4Je@OrpR=eM4O{IK(x(K!-$^GGmzR&hzz-E)2rQr;F}P<=28((_6zD+SCBKsD8)EO(ge z>}8iWGZ?tC>GHOK?FPQh8=D`Db}>E`b}n8AzA@c~9kS{BW~9%q+ClU&68o=t`H_Y|hF7QbhQqZ893?tT;|>Uth_~(ItdS2_{B-#+ zjLd9xEL|J1DBjKpLvIo<6ujL!!_Y!NzUH^tBg86qP!*g$#Eyk1(>!G~dq$s12mi$qVsG zY^doPEmjZIx4-bZzBkK~>2oIl}_u&y>~&7?v6U*N|zNP|j) z+!9?BCQk|^fXg)kk9ln*TK?=e?Vowk6Kb;JDHzmv{Ut}X&xI!PGfXC?v|n3f*yqoW zQgB>@D=cioIhMP?O;H$CXex0KA;76Kq;V{rPsj(3cl|aa7u~O?-c5rTTlD&{SN8e8 zDL#9F1GVmi|i>T%|GRr*1Y2?igcp~Vq$ zrt5fAm}KiQbO*Jj^HsX?nJTjoF|lEEN@|k|sZQGL754-g`2pf?9di4;p*fI*S)>ev zNN_?$e$jSrB^Oo^-5 zk|r<2+!-{CJLXu4f+`iLe)+9+W6R=kh`WAh)4;=zTX!l{b%lLsJk$KQE4m_~E;h{L z&Z!ZZ8VUp*g-nBROz>FXmq$vvAQ~X}4?{<12jxm(TOq6HND&6D#?a}M*#{0X^Iuk^ zB&(bL=k@!GRe&krnVC}75fTbW%<_X+F}sclXGD=+bRW4HkT|T}3@ANuZHBZDAFOXC zyJH#soxeWs`eYqJr|HbJoo{{(>|*pfm`yVV3a#O==ptexv!11<6hw(?$7Xkok8Zm) z({kg=;FUq&Ep|B+qmnbnRe^FW`sCG-?C!|_lN#xzZS@fbOEpKP{ukrQhxgQreU|>HslT0Oqh>K{>~h0?X!4t3`W*zXnvp9$o85>fxlkRmWjN zL8lP2L)rVB1E}7>{w>8-R~M!Z{QS8R4jKvvw3AAo ziTf;jOT~Vu1&8xEO4_V7}L4tS?~!KU<^PPS5;F!{xzV=J2Q`bqQk+}h~Php(Z{yJ}?nHT<^z z;}8mJS0^b}7oyUraC@3$1XrQFYHNe#^r8OzDF_++g`Ioa{c6!62`ZvJ%4(;@BkxZG z_dwbR_`TrrH31t}o)_^5S${3-A~3YXJi6p9VTk0%E_rXe@#DbOu5Ym}a&Mr()cA!g zrIk+!rD3<~_MrSmhJ}Q>dj8x_HBKG3!Po_Y@^3(@22QV>&S<6YGAT>xQC1e|^n)Q-0 z{orRxwdV=D^H9artZvoyD?duhjo0Z;8<{ zXuG4PVXx><7s*7`b}-vHgHl*~2AYI238zShGf0-|HF%fV$sI*v#TrGZ8oo6$hqtfy z`iBhXI&39>o7nWXLLFI3#s)kr!BA+Xw<)DxrqxUml8w$qr%71idlNcWR#M<)*2e-D zpS~@`%dOp;2p;^du-ePBWATfHq1fy&3+A)^yKR=b%$vrzu4q+VK<_90)?wjmk;w z)B(Aa#7@(@9Fp4s+wIJD#}~G;y1=`;v24YCqxfh%%1``sVb4wc{T2vEEciu+rBJ5KrDHGEDlA z3ULcJr{W?Yf$3=7bTj6!bppTwtMeq06`ZFdU_Ga99&NK8zPa!C5U?F5J!4kQfo(?e zh5Y?73}RrC-qd+Xz7-t07mzZj_Vji z^gh3AZ>za-E`7f9aq~;{zu(ha^*dD%>g&H>L}#aprjh==2rfU!5?g;JxSo;CssX-M zh1<Ez$YbZ@|c7{YeZI&0l(c=E~Wx9Xn{~GTap!SU_Hx?L7IyaB^)@KnO}XbYF9s z!(zex(SyYU@)n>t$Vurys4K`5!;uQ%3`i^Xi;uyR5+{x8xu;~d^+9zpt#ywmk34i{ zJ&ZZQrP*gnsbhx*jb<>oXNofS5Ugw#nNbIIXS|llI#hRD%IC?@AT)hbqNc_b9ZgKH zTr=-mNrTg;&BlDyc=S7y9VbSB^0lkWj9T6Y(>C=zn}V#Qkmzehq=Q5ast%h^TsT5) z{9zgMOcesd^v2$9sN10W><)hTqc7(B&WT@AlVqt9FwMeUO7iny-H7LkA#k&BHAt%r zObe4&X%}iQy#j%@SJ1cp0N2G{>Po&K-i`!BlW$J*@h>| zhYZ*<>bZOru-(`uzQ??CpIvNu@=jmwW0T8VO%bQQ^D6Vcmfa}A#1Mx zeZSsm32nD^3)R`x&c)f$1vo#p0h9r0_H+eY3J*_rC*TwT`6oVZ zu3pBggC#R}CwojVC+db1gX5<$yGD&0iUvDD0#6Vbcz;4Xl-zsenQ9%)f-DJ+0F_B%me%6U~ShqLOfq#%R-hWAE*-qDN;SdE!QMR z;vfpQ1N$7Y%3RnAygZYib+)5qlyU zE7dDekh(ZsYn-HKKT1aGtu&-Ra_0vm#?}aLq0mZ1UqqsE^CD28v3s_J^E4XpnO4)9KK#o}}*J!UMAz&B^GGM8e z%B=ONn}#8Kg0B4fw(6{@2o90`kq}`5vA)*Sc;>VUsKjk-s62UjY<(o9-+TUkw{Xk& z!2Hw=q3059&C6Vy@OoEUyAg3M`*0j-!Y_DKzU;qB7 z)u+FePbLr-rO&z=?r4jLUA8IqevtVF5wLfLf!1yU9zCjXklij|F%m!&7R8HPgU)@< zLg(@$QGh;>jmHi0-`%X7(Yvs<=W)_h_s`E|E5so_GAVM|%;*Pznf7Jb!wT+uFQ|ie zfVpy&CK?dd=B~RPjel{Sp8S4p+x2bxr?kL9$kps=NGUE>rxJ;|{SRH;x2IIEt&8s~3 zRlS_kTcnB{3`6Zz2$u~ryziyxdVx2D*`dGe_YT#?Gi&SRxzu`Q4W7Ad#%L8rQYs;M zV1&8racfr#>g$XTh^pMD7ISow0PyI!3?#DHY*Q7s28SaC|Acm`0^KuG0J(fh7ger# zIixmH>z$7$nzhGy; z`0g5c3j$Cg7LYR_8G#fhXQpPZ=+=)7p{ezTgqi@K2$v(UC8cpA$)T5ZyRf)$WOyWq zzA{a%56(a&@nilw03Zcd3%C>5+DW5xSfTVDf?)Vi*+rmGje^y%%h=LP30vg)p~c{1 z@|W+JUD$V2?z*;GSdnd#%xU`1ZQs2Op5O}QZ+9opP@x1f5L1l ztU|P4jWhonj2twgaJji>HAB+{3<*<*!yJfYFlqoR4fG)a=slba^JjoJC$t?MQES*Y z?rxj?4Tx}$ZZ=}xmDa^l-jON@W5)j*9EN~gA)8fH5%8=k>pZjwpit_mjM(l`LpBAi zBjiWYJNj?jIDXhaxp`r|&+MnjfTlN#S8u#KtYB&P<8HuiJQSpxi z=}9CDvrD2*&d3!Nxq?)e7z$=GxoONnPx};3$H3_hPF)gN34EfvW|>6LU?rnaz_#eJ z_`79v{17qL+jh6SOT%r+?WHCYI@YA|>c(`>gbwEaMq>xp@$5sEGXwlkQN~n;nx(*2 zjMWKw)0kKR*ce7Bz%$~o{Z{Ow#3=l%=g&`*w{ZK*Hp&OsJ=#9=)!8_#)+=ej@{s6> zPJLdz!<%K(!Zg;#c$E~MiwA%?IK$jax>f@r7&Z0OE{o#NkZ^LX>4<-%qd)0GN0L9j1GrK$C>Tb3ExY7o5w4SX6GoB9-`EgPgz> zkHzVTD8#{Gzs_-XrnIGUh4?;j>wbxTjdVR^d|FHENpi~al3sZxB^`!BPk0GgV&I-; z)1rZ6@sc!B%wyz|>aEx)rv<~kHZX|KQjsCK9t@d9q)PCjio(Lowpp5(v?TOk#oD&y`hvqE;2BFWjg*r7OA=1!W9~l z+#xC)V@Ci)sh*x@-0I=+rLY57I+RWm6E5EPix}OZzvE=(CGQfkMfYig6^g{x$nldm z4`uJT(i7(;$Nb$gIqGkGDC0OFqcy{fm+ww}V|7BNq3eMh1d9+(H(^659n`0MMm>TT zQzk_$mu`V?J<28};9%F^XhcF3@n0rUu^$(C&Sx&HAy0Jaj12!p=UcigNqs||)&%8& zhc4a2(aZ6a!5#V3Dyc>6yni}68dC3g6f zPD=y!o$AKz_n7BQjX{fLw^-K9(P zA}?V{G;(GCwOdXJtX7L7<7665Tyi_qX69Gy@CHK%R5sKSzo7VQJK@Izv-STQC8spP zYIh>&Se)KnbTurex15q743Qf&f!4n7FK1;7WYA)a8kv^RmvlB92!YXQY_=l>ZV3RT zsb4x(uyd3sHL2J6dX|&f`=Tn19sc=yQu!RL5s^UT9j_j*;0moc;dO&};2aS;cm6f} zl3>2*xM}=hcg8OE2T-;@svB^`$Sg zDnV{IIa>scyY0(aE_)dTaqEkAPyQn7mMU63&Ya5)IEo1B zis7(9E10h?2-ee#C`t*Aq0}jBfq*7#P$2>zj-sQHJ%$()^}-NY87/L&4mlP!2- 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%0D+gwp$)#cd9nZDmIo0F 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�Wyi?@a-TL_9|sSEt!k?SZ_E3fx|0;1YQDp0>^w^cm_x|?+gN(7u8y@Z zke<;6Q6j{y4iLih|%ff4rr;&c)ba?`94ntRm` zn+K|O)b+GB0uEMX@7tmxR!<3r`YmE@Tu>@~ar|NsE*>7juWtA82x;_*ul=scpRSsd}aV0-CYr^SY!&S_qb} z%C{twLwj*$`ZY>@RcsoU8k=FW*%fRioesf+OH`#Kk!x!N|CibCY(ITs%2a`>Z&r&- zId)}0n@Yp3Y3m!^6zgn~nX!^i4GcqU42%;M4yz5|%XyYWT9fOb@f(d!sf=#C|H;n7 zyRYxuT;SQZ2W&w53vH;oYODx)Rd0_)_~aKZ56qKf4uTHvF|XE~?4yZ0v57$GI-F8QKBbp$wj5u zCx)7Gg#FRw(EKYv^+I<&Ot*wj_)8~3>0-H#%wc_WlYj+qpazXs-8i`Zh_6>axUbuM z@Imj-gVC$}zAjx3SsA{Z(xtD|y54DQu+mt*X=3+qNUGgj+DVU4($pmuTI3J2*g&2_ zs1qq7=p1}4Xa#9dt;Y)Y3l>=?P?D@bTygG%As1rH)C5l*!C!7C#ymQ=kEDV1*PhcAIyr2DtpkCC*t2yJQ8X^1{AS| zlCWR??S>wB1;0>94xfnIT~Ta?Ele8-TH0HqnwA~iV`~%GAtlN3PK}bpf@to0AHW+2 zx+PSIC9`|~^BP5)_>|9sqWI3g`LEV##w~T;@?sE$AgADxKh?T_ zn_an3Df=4w+V{YUgzu#}fIO@DPo<>cXpdFU&Y=<`9@1VR8j(6L4bp0@!!3U@U(;{J zP2CRb>|?u$-mfjpR_UE*_)kRIG*uRVoiT#KvoLcT6b+O7Q${l96rR}DYCe5^2?`^3 zic45fWDRT2o7F(zG6Un|_VN3mEx#%Q(!CMdDcEETWk}sh)d)SGqX6p7IY6`$6=&lQ zbVA2$MkKN!g{q?7m-*;EMi!g|I)R;0hfl@L3=T%S-**g**vacq`6r09)$c#u1}f+_ zEIU#D!q|`D=g`EhYXsf30Wf02@HXl#b)T!Hcv!Ugyk@|4+!Drg?2@7kt|q^ zk;u310rAjx*q~8=zRs;e>PUZKjf>3IwvZZKS5DpYxA(3Si~s-v1QFn#;cv9+2E7%9 zvw@nz+rS)w4f+Um5k5Oxmb}RfK@eXOXJU0N3_{iuA}XTm+Ba6j#bgdC>rB>7PNF%G zi8(H}t4_P~oNw)j$d}u+d1(0egFtKUP$TY>R4hh4JB5{)Se%RtaQ8e6Hz8I{eNziE zLmZT4OG@u##XG+n-@BwiYyxa@u7?wepw)rp*2`XB{XHDWp;v0GeHzFG5n1^csP}4* ze_9%{#^vDJtTfEs^Bv9e?|EiUU)7ez{>bBfnFy}h_Uj(dM9+hy=RAW{j@b$`zZ7mP7>>A=L0xI#bqsJZUcjQc62# zh2#M&0Qm3U^v3;ZST?cO$X-M7d!XNAwJq3HMG*!Nh!3ze>9_IkPd%Hwzg>e%?{Ebf z#QY;d=$uY}M6F()yh=tEzB1S@^eaB;Xy9S#`i?28ZEZcwfN#fj&L?r`6?DC92$Xdd7`!{M}M6Jb|cKtF)6i1dU z4?sa;?M93FNHt=8Q{}Se?%FQ8@wv} z+@q`HI?+LIx*11p{#eIB`Wo?V13h-Qti$blmklEQ%x*AfP8!p-A*p07N5?K5n5CF$ z#qSG#xbV>1tm;ioCesPsrykrJT(Jw9HR`l*H~ms&Q4(;ec2&hPWY6R(>d75Z=i^DV zRDJFBh(f4WE4c#ia_Zs|u?B_$k1DVCbFdJPW{`!x_`7EY_-i?)mkp|ldBmaO0MAdk9vc8>UWORlpPAZ>>hz-vPIbjx50IU-!nOvfatXM|AOz~ zfGcsT-!h#|Z*<~xLZP2c6YWpte9Zm0dh1J)T>C%py^W?RncurU3>BYUvOn)>vn+Ju zw03YvO3fKNZdc6Di`+M>$Yh^uYj$3-Gd%q8RJlj6X2FxIm9})^#+@}gHTOgh4QDL= z!Oj1;FbzBs3oirL+*i}e zCNa#PrD<+6>a9~da-9IleK9hn5;@sCa1h(+BoHNvBY<26sg!E{W@zyF zzR5txij0#7_g`{t_GlpCJJ1TcJ?fi4!?k?qst$TkFrs-e;2Gn5q5qb=k$4Zy8NH^{ z%NKR*tB*hYsqxjx+0~s(jG(}v@vCRbB2}9=EpU6RJzay$(81La)Y0TXCX*F?|6cRm z8*A>=!!~W_x~J-h`BSvyysFCRHT-+KJ~ z7bj*&ZrtImPjILIMc_Mr_Z^AnX{ftUUKxh(YoGt`#g~5)WI32Q?uL)DvZ?R0$B$cY zdINfbhPR9fhk{0PRiJGuxNCNBhOk}JMvdUr6n-|iy%BGz&1*_@=|Jv*TvW=A`AdB5 zgX?Q?^#T~q-j&^{qwVZP;Sg|oHI!62B2Fu|4rjNMS_vZt_bxm*I(`IO)xH& zYe^P~Mgp6pz)?cpesre#+4@)QWY4K!dU{6X#}6-Gf6h}B{x;gS+A6|Ys6)4UVKrcM zF=m9zNKwo)#9FXtiqkW%d1SNH6e7^Ra*l{Cy@NhX56H}C6X`l}oely8%H91CwU+y*wvnQ9; z;2!Ts&MB;0+g?@yO3C)gtZN+tjl&%syqj%_`2aPyp#cU|doW0rlXcfBz z^T3Yqc8azGPeFjuH7t#~v9T&AHtH@a=Mk#Kih3CJ#ieE3A9=47c_<2K8w(|H++B?p zC5DY_dcA1vNAr%&n-=)&xV-6g0B1cdi61-9`C-}$MyDAWieO^#ZL-K-k~TMHeQn#Q zTWQ74#u+$hr&1w7(%JNTx7S|IYyPt7+l#lJ1;n;A&*eoaGqN|U4=(ZOwfufX=Dy+h zho$RrY-~M>7WcEzBue|)L))IpzR*poyyB@J1PAoy{)ZQzeWwbNKUN36CywBHv)32f{7?rI zjyYFkaVcPXfiE4~IaC_Jq?rPyoUJKIPX#jHnL1LqQv~SGTDS7NAQ}zCQ({vsZxfzt z_KHQ>IVQ)pw+U~QA*_RumPBT>-g?GRqF5S?{c~QFCJ}(v3rZwpJlL)RiFuX^p;@Lg zJfu!gPbEDsczATsZj3%S_=y`AV04KN|H$a~&m>=eo*`*!WOvDz`kRa~el&gA^z-fW zGb>9!GP<+n%Zfu~Yg7Lhwy$mCDY{iq3p$DKD_j0wY@gSsVB=I%``^XYKONV-Ty$l9 zN7eV4f&0(&zPzXI{!mgp?~V4-zy08eT}ob80G!0hc8=){)idBY;8*tZN@~{=(LUy+g?vDlWi&K+2V8m-rB{r@}}ow z;-|cqp%umDO^yLb?;Yn}TubE7(-!yieHZY3+2a{ZKi^p5ar2jAcF zJ5y5pYt^7E`$LG9v&nE?NLYkL;PA8Gz8wN2PD#6;+z&u`nw{dWfuCp29RU=+0{6 zOqm^dI(_BExp%)V{+VO%wL*p?jlwPwLOB0lpL5mU5(zEIb)hI9;#75r3k?2du-e*& zYiq4H#Q^j811~r&XQQs+JbgB~ce_s5X)YT>t*IKxP?uO}-qo>yd0sfCe2u`@>Ci+p zwXtlhnYMu-<+Yj@!>EBVY_t)r!xFN#P101{9Dwhj-I{*``06{aZ807tu5->+Ip4@K zI`s4^qhQbrZY?LvN#?3+Ei1+q+5`rUV2u8x_#4A_?zK41;E#ah6&ih2?FWl6uhd~( z*%?{PsI$%eMY`q+5Z*7qXkX1pc_hYV+R8?2)`||f_+P;OwbuS03?F1i8FTpa?k{g9 zv*F8EFzADCJ;Q0Z^84@+UWiTJX=#oAVjTYNh9f^WX-YD8-qNQpIbj#T{0@KAjLNaFM7;y@d*F!(%HZ1p0aH*gPX?jUobPEbWx_eW*SAaLvNBm`I5fSS%!-E}Qng z$&1SKzc7c~+qUNH>Yny-_NCG9elLq($8EQtt?qw7nc|(c_%z^lE537YvCp30_3KSX zjXNkhePW!nEo6hkXG)2tlb`=O;X947si6pa_pe@V@dc~?Kkz+tT{cykTA)WAO!kIN zPSv*j$UPUg<@>q)?(h9R3DTp>kGVi@2p78>ArfjW_xNuA*1y2td>lLFVsb|F^o`e; z!qaW2n>&^KQ{LgV!l-1|w*Gch0AL|fuq`}O0|*|(0>KVWZOk8a-+(y?#Ni_h+_Rfc}&5)TAQ)|dbs zRM4Z}kLr?^MQVn8Kav{X@ZL6?R5bQkB za!X5__v`lS%w6kevv>eD1mG}n!3ZGD8RQof1ZC)sRDqB&yk%5+OI0=j0&^W;Nf4~H zQuE^0yi-}n%i6A^VI<-sNg}ySb;^c}if-a{1aj&d=lfd<%>`qHFje$~Uz8fMO-zN8 zcQ2}T+T_r4pS%4*BtE8|*D1@5PH?9ya*A;1J9n%1p&wsh)8Eu#6gJJ3a z!tx<_3P=4U5B8fATQhHI;=gTtoe;vh^=0(_`g=2xlbAdA9)IXJsMt?E*U;d(FD$aZ zEBfmR4sJOdl*mH7W_IDwaql7J2I|-@R;`-o@pMkOymDdlVn)yLub9qGv>eCTlmU z{?05>Z`r%5LH{!lb8vE3;Beedjp{1)RMryE-c=#Sf0 z*6a{}l`LF%tDb1O?8(Q0=TC1Wq$eGCrn34zuP>6gdR=OyRgrr5>c?U z`B)*(HpW6CQ8?EbW4z9)>Wg90C@&XgO80`jD8K@cin|Ig&qI7p93S-1%0{mIim)49 z@Q$>IZC&JbH;E4KD+AOMH0k5~R zWCZw_qF<24*C%Pmz*;r%Mw+=wDpm=RPO&S)NCI^otdi>n>iOt~v5fy0*Vm^t?KH0$ zQ;NG33}M6?q*WuuFP)BpE5#gKvLo-kEv(teTvl3eHsgp&-#@2=$KHDS#;jpv>|RRc za&fx5_KsM9d`wI;0Ef>44?sq+4><;`FQ+1pkWJ;lr6rds#2+psXs=k*{zAABx!Zwv z-G4JIPaqd^jf`wh+d~K-93l(!tQCayH8L{rIKVHjQ6k_tpcgiVcX?*|Baewnmw`P- zzv=z;?;aC#g(Tj=Jx?rD$c zvca`?t{)neo6C;_1hC- zcYS*sy)hwZw-|XqImOQ3_|gYQsCl{hv25b~+&i$ji-$e01gIRa!#H`B2QZM4xT?0< zhs6cp)Xw{R3s+Eppa6f{W?hH{QYMWQrxX&AOeC>|WTqmORGlc2z|J|8g?{f?gFm9Y z>W-RXQcRu5NgEew40 zFye6R2i*@3TJ=7yeLYdN>Ph7Gp86X(_w=qdl_jFy@(mj9$L`&I6b|JnBc&?P(KpZE zs#6Cq*+ZKR@j_F`ySeD<(m~eSyHMlXz3KjW7READN&awSaBbvD=1O)^0qqnLl4 z)hIXVLPzHu4!tUW4uxJ&0Bh4pY8vK6DzqWdbT>bkPPdZn19T zym6Pk(-zO3Lj+tjPP_J?Hq)wiL-2O*RAF!uRXbg(gsl~#BVufLNfOF$za19Yx1F1N zv{qmH+yPTFj9(c+WNViH&*EWl0XMB!4b_E43uC0tJq?+OW9euq5FO$f3Q${WCeP$kmP7(>LQiV#P4+26a)?* z-EDL_0%>KnVC;CWp@X z7R#P!@4svOeB2{*^0}s0;}e&0qgQX7WdWRnLj3K(zC&2(Sh&yG@*u0?kN>ks5N7J5 z94(}2$#S8MWtUA2k5jLa$*c~plW`kGfLXvMWQyZS3hbJK^5HG*r^0uYFs|I{QvuGS z`?pfx-#FfOGHqSu@v#`4s|mWHg~HHEo;%^pMEEK?KsU^)Nmg2aQIRM^i--A{XaQ}AbRkz7MWC%Xlm#5i_HYQzyrz<{rGFr>ed(El zsm?A3|9dSQ=JW0RX_kl_f2(ygtXg1eFmkZjTrQM#%E?jctT=_RyKJOk8a`EO4uuL* zo*UsOX6%>GEDVe=bT+!}d$#=wBvSdnfG0X6CL8x?9)_MNBszjyvaBEbhESO@a|xQa zZ>zxzAK9;4;s^#V?BLcUal~zC-sM$^XFX01X1@HSQtU%HxyAc@u)1yxNZCeM$pUd) z7`HzH$+Q$nTrm=fsFs~6;3_G)T>B_BeO37J_Xf*H?{lU@7jd@q7nM}+dSr21eNm=U zZpdu-i&rJPBs-G4%5P)(a)P?GCW*A=XlYRewv>Zh6px#^8PCvc<80V2u^FWx%tItGAT;k zrdAiedl55hw%G6G0(gvbfm)7GW7^03C|$EJY=5Ao9i|?rII*o_Tgos*0GUlPw!K`z zjH#7Kqqre8Lu7KgUYgz$Z}o4VK$s(a-&P(mVO9Od!Q7S8wl`Ow7}@ixxAc?Fb1*tE zHoGo`i?PSe$SSJAeXsEK(s~}75Dn54aDWNHt#6W1Hr~E}b-H5uO%y@=!1DMWOJs~| zRr|8B<@bup?CrMv*ZKgs8%=C1q+}x_V535V@S|xKZ8I>i)}a8IC0ZzRvCO}KKuTdR zZ@J&&LiVno_Fam(rkl9rLSyWGouRj{8&ozSZa=aC3f~fQ9hC-vT#r?Q~4^Jb&V0 z@vE6M_BLPX-PdMIE1iBQM;OG2iq#sONfcTNGPzCq3gT9}vh~ziB_xS9=pIv&Hie4BMmwvpRa;o&0|I#}y z%T~T9!T9`wIc1{q&APj3DG*MNajgB_x4RwmK819uPc&*GItdqe;jN`j8eiK`T6nF# zu#QT1@nm$BDjITf_py5JeD1wm^-<}12vwEV8QSe&$ZdPDL#-7IVa;#I{7=bDa^_m6 zxZ0OWG9+f3A|(Z3+us0VBnEX9J9FR&@gzPR2J;08XPIht-K0dhEnGG%uE+K}fSfJC zpNosuX^2UXV?ygiW{r<3IC7^%M~qb-u_;HIr(Sqf(Q=I6`< zaX&(%Y$L88UcGbnhlzgr@m+(v+2x<-$2@qfN;-WyX#YD4AsT=ThE(#4zuB>l+)?5q zGP?xW<(nSqqe-eFv9(PL?icTZr*#CrLRcv?Cvc`0%LxY|j0*e5lIsYBp76ude8mR#H6rgcd5+F6THWs^yYK`U% zisj}!hMF3-+Cn4~N@}ZsCjpK!1|wSF0im%1PQKS!q!b3aWK3Q9HMwfk>B99d0v$e+QP~8%Gk6g!Sc{AX2bR zmv-g(FHt96&1=CcB$>dTMQb6kjN9*T@6;^9u0u_Tl<^u)Y0# zd;&bY{5*aAJ=rWK%gfi_%R8WS*=zgo>J-w3zhs^!zRNT3M;W0Dj>|Rw<*C77thQkQ z@eyKq#E#q^fxykI!oZx%1p9nBgvKJ({vvf*wPI+H)DwaV?>j&?tWJ1fj88g&0$~SL zMYe%fkhy%Q3kpCmUR$9ck}#1XDohRADl;WXh*Ggo2q)zO`8r;VJ#lh{#)*xcQipUZ zrs+P`GLV3=wb+QZG&kyzfXgktv--{5LpF+|M}kn!%gB#KNFA289c;4dc-}Us|Eo<* znW;8^2x~ip?H8f+U>LCkO^K*uc7KkB7Mu+Z)-W*cUbZsPCBf>(q>%=+vq682;|&cE z&wdSpOMI0`v(?|E-@Z;wAD0^eoGgunm5(ku;s%$yT>3N)ojUvL!B8G~B?Q@sYBwwC zuCHKGvD1)52;T=8F7qLUdl~8G>>6QdB7C*P_x;^dCk-5qA^yIEG-%n{hotFTs6(Bm zz=#8^tsEZH8ol9czEZk1i1CM~j=<+C0=SXwVG#D@T99cVumuR2KxQUcf)=!?LXr|t z_Gq2A1!f?mMlO^KsMb;`B+NgB^uVRkM2UDE+dQ*t!Dj`de7O%lNs=O=tCVr_jeUqf z5W=@u6Q2l6mB@`8c){dE=zH0p`vZPL%AMb7E3w_Uz<5AOL=zcLZjuwTLe%fYN#VGg z@1FlI8-M8V)@OcxV_WnmwQPt#Pc;gJV=znO{9#fE8WC#iC8=sJKaItfzk+Z=>zp)F zPPXx8cQY{|8kn^rb}ndsR&9{w_ha{BP#msLSdjz<;P$KqnL-dky?N%==gVkuAfpn} zK|_5A=z#g!lshNYht0blKVAB4nZDo$5@w;92U+QrF=8{^Y0blT1Z#dkHB}XrS!aYh3303eg?c_35>`SE%StxP!Z+vK zsj@Vhy>W1wea+^7{mz`FH~P!c=EAW{A=xR!Uv;rD!ZZ^yq-ed& zpHIpO$VZC7wSz-ccO#FSp{PxkQ6uu9;jZDRXk-;6mjt&7+r(lWs&;*pbrc(h>k#u` zTo!jg5y+s?a2!?!7aw_-v5-;Wp*24XZfw#4yYcKJ@?t3aF!o5hO|lqliCx+Dsxo2D zuhv7=9(l=AVQ7ch{re)eLYNSq(HAo&SH)uM7!DH# z84kgB*R1(bx7Bss_pJQWC0XIKA3FdV2}4%DvvKrq8ze%c~J!qVOjBL9iu+421fBOt%oh22ehy;4GINh zj?jT7SFW_M&3Koqm43O>Y+)+y%67pvH0dM|j2OE~)7;f&S}E5Sh8~vU&CgR9RAM=r ztQfX+!V}6)XgmFR??3j)vTNPE9@sIvBs(%qXuT1&ks*ZkP3KifTzwDs*wzh8!~pIT z!9mtzi+tK?Ok6Fc_ePUd@5g7aCRUFRJ%8|eLCNSv`S%|?Kf)4rzJ7F?xGS`BaoEE< zr^g;}pB|o`U6`>CEu3=d?%|VwYpfoI3rOj>P$Ng{wAInuu&pQ;TmZ;H=0}zjQhF2P z>DXtdR(xOgZQY8XMajVh@9TtDo*equ=RqOD(NS&gC`4m;=YuncSSFPPRDxWz$NTo< z8&{3XKmV}$`r|_OIX8Ors%L+$!J!)8#90JQc+LrVR||rTDo3P&f5MdtD?Nt2A*o|= zSd9@iA^b>l#R$<_LgC|TpIa!X!8mUI!*hp;&&;}qoU}JOJZpZB0C5vDx)Y_H+oo=B z$zSR6@a!^;U+`J=7Bt-_SY7HvqIYoGur63C!@YQWas`dejp;xoMKrnAEeeFH#`_dP zURyZRJHTG}xYN)Yf{yu?)!(>f)M{Pgy#9ERi|_{w(WAvnr>oQ4bJ}rufesVIy_G$D zi1%Qy?TMM>OINo>Uj;b7CPmBe-a8UCW64}h<%WVM_p~>7#@lvp2=7V1J(>F7>jYso zW-bg-4?4Nxiq4HX3A4rpGaNx6unD!UT+XVCTeg0D6ZJ3;p!|Y6OTLViFy0*Rh@ajt z@C_Na{q@U4n~(E6wYHeuD>Xzf`6IP|VhAT4jpk2gw~>&I_Uwl)3s@M zk63V)%wXW_dFA4!;Om)Dvi=A}wJW09sfmIPU}>~*@_wZjd#A}&O@G(Y{le@c8EWOKkI^dWtZkl5LOL~&lLSuSeR9S3bX!XJKO668 zQ#7m)OOk-Ou3wg=4-p+qz#CBV9mM=XVVJQ*byy*Jm#7Z$$Rk2Q>15%=3YGiO)t1W}M_JSeJSAW^d z`5{sbk)krfXFtG>p`>@iEL~loFRc+L^@(=ZVop3FpL*~`V_zep%94x2SCHQ zdNo`~eFL=?0zdTq;m%qn4vCoINw+Jyp0t7y#3J6&1>eHWVb3squ0Y93w?E=$NEgwU|4jc*f%p%E($!9H)|h^ukFgZy6AE5 ziFYSM?(xn)PlHUH+w>>z?tQDrA=YV?@in$bwtP{isE-_i#Cf5~%sS)i(lkgLi?acN z3LJIzv1i*Zh%`x}kqS{6b>*eqdIojsgw&#NCER_HK6J;7y?`Q<}E#t4&h^k`zBJ7i;nK!}CO2=h}afj-d+aijr~z{wPzjK`#GOCkr;ly>cP)h(Z1 z_+AIau&Y;z*m3!{azw@kfmYx1-M{Ab?HT*3OPq$HoRJ*RowPmb_jJyz~E zHuEC&NrY0JMCcHWoe^Ol%&6C<`?TBFRP(H~t$F=0=jL0h9vEyZ`k7Wk;?bW5uC@g{ zUt>~o^zHGBefjBr-_htNg&%h&zr#oXM)Jy8bZR*HF*XbCS}#HHDH5s@V$vhVPQSLe3|wA9sn54srD2cKQpw9shS z@w^tNFzmnAm!TUXb(94Nkh-=)jE-#;!1Ek*MXqcZw@#r%XZFb{I>T0pmo=m9L3rX( zxKo=bC1=|6iz&FzQrbVpnteGawRfie*SZDTY@-?MPh+C=Q|}zlL5U(oVYd(ig|Jf+ zv8;*E2I3nP8p!O}dGR}4hs;G@7!ov^yV@GI!jAs#;Ze`jm)R$gFcZxfC{_)D@uwdoL}lYAyZVoM9cbuJs~{~sTpIe}C@7PTj*f5wiQM|Gvw~(t z?5pY*gV&Z6J=GD&r4EH->*9o#|} zI9)n=m+Gm08D_F7+j^Pay;qK(PU^0i(7G==yREh~U|r$17O2EEowNs@qza>?s<=Om zMW!Iz_{RLsyP9gzr=;3KYn&F09XIk4Dp3`|gPSz5u$pXxdS#UrcKwDk-AhVC3yTd4 zBIfO!)b(5B4ijD%FLTiBv?^`1Q4tehc8=1IWNw zw@~Wh8mAFy?xxhd_6s^9IEhWqkTVBc9bO4dz_@9??3g+pPt;*lHE&5W583j zmAC{PT}`RJu91z*L>=3EW-AR5r|5Sqi{j!EXTQ7-{9b}(vYH-$Wvo*J-|DN2jJMM- zJ!yNU7>XB~EoUk%Vb6@924GHgw1WGfZJ7AS=xt0D8VfTmAyW80$>t#{0w3lx59ex% zYu2glLDew_SXQX$70^$53e_m;^t4{+HQqs1n2)${`a9~l%`m2K=`0yR9f+b^n(*@} zI{AEg+Oi{Pu}Wemr?Yv4Ppd}OMS)l0n+#ti0e)Kes1L7Gv#qi$07``0QxY*6a$Aw>Z^9O!viN105F3rP)3vbm=7JSFl`LeuD!y08U zLojAVtF2ghwn4zXH>d@OUK%5; zs@CU$kWi1LDl@ZbSd1JP$RRMF%V@3hy4iZm14F!gLu62t;VEmz4gYuPJEJh^Wb(LD zDbyhZK=+Y6Vtvvfau2HF_EMW2e+7Icfjd~aAW}sa0gvET5aqxt5u7Z6mX4(@E1%k+ zrHh=UZ4$cdq(BF6_)Mn?NA+|v=`pJ5SVzLUa=O$pwLY~%J{e;~A*q0IFpsZQL&{oV zRoh~z^w^UC2)nPjelwFT+z zc+S^d#O<7K8gjs-l6bO$9O;Clp=>P>Dg@d zQ@xwxtTzq<$5p6!q}4avG?kATayUm-L4)E53loo*xao9@jot?mkEUI;2q`McZVSO; zAvcznR86j>=&Nyx1(8Tdi;SrfxnflUC%6`zh**I+#qeWkkx35x7y+Z1fxOyU07Q@u zy*~qpqS18dNB|1t1=68+0G@{m4A9YLLYx4pJESkr@}Xoi7aa8%o8O7Yct%{8lbKF| z%&OQ!&p?Xzi6lse892l;NxB^wF|WBO^X z^G@dv*wg=JL!V@3YhA;(d@&tT~QNxUCUH z*PBxNcJk0>3ZwO(O_Y=Hnf!~S!z1UNPV^Li&-E1;?-b($`;pu<+;Y zxg!T&NrKwoKF@l&3R>zIfwV(DDp{z! z;nfQhI|ESwS>(fHyDC(esy3gTJPnRIF9w1pd|f-2Ow2q7nX!3fh%JY(P{vnX_0Fn?XHj}nT7;M|6b{+Usc$Rs zpAbD^#Wt^qiqBboc%Z%^tv!7TfkH=vgd4*Mnd{=+3JT<_LKl97lEndRU8MxEIh-JC ze@FgP7d3BbB-eMN=G0X}GqY^HKJKMv^8QS(9aLDX8<6QLp&>J`WBrYF^(K?(Jvt?! z5D`p@k8O~az%b$V=@x@q$~g!dyZYCE5q9Ny5JHU(i9QEn8{5rg4i^S)-(UcuA0?Jb ziRC{CBP7?{Oa7*R-!gJc5OG?*>K%R7jL$yE+y$jw>cY(~B|&j@jI|cGQz76T5Q~bZ z4aqiLYL=puoD0gI2diB>R{uO0zGp|`i*oyK=tp}(q4Y4``s?SMGm6YaoMOvc4WyV? zfI^=&O`XsnWPV$kjMqkhW3#gR`;S>*pWn3a%EUiqeb=Vi?-)$|e(p3fxNp(Mk=5;h z+vU%(KYVI^09BSeq~<4weB0T8lKKJ`LsK&h-VG2Qak3A3w|IcRUhHq~dOn`kaCn=bh+{=c$`VzS|S0l4JF;w*TchO|I}2&=-|}VjZ?dR|GMBD z6}IQj-o?I~?!KH;d3D`2OPhtylV?+1w+QFqALE!I7Q4fWq5&9<$EjELsBplGMo^=S zuLA@NvQxb6;K0Dx?Z_KN`^H;Ir*(3JH`iFtUuxXn zh8s7p}H{_~uP{7cPvybN#9d^^fzi?<(nEuP>7j)eGcN)O&CQmQ@v!w7Lgk3%R@%hSJ;KA!`r_Y{d|WCM8jRt^}QWG^LE*;KM2b>tL&yCb-G`>ZRnypM^e2s~aD0A2Ayw zCC@wkL2~N(QRE_Ddt=6d&pY=z1g-vbu&&!b;PA?~ijKDlsvVF%ptLL`Pz0#-i^wXs=6OC{jF_IVD#7iChi$29PGxP%3x3UywZMhrec+`l$q6yr zxBNhOco;9CwROY>JC7q>|M*V}Fg`5s^T214#yBnaCp~C&6Kn`0yESOkfbR0D_jiTb zq^BJeS^+k!yR<6({+*x#+2JrzHpdilvU4zwIv0YrdT(;5P;X8|g*1N$_>Ke<%p#v4 z7?njN8BzHUxPkTSI^+2q4R7H4_%e1S&t0u7VTizyp=pf`0E`nccKd^1o%yrR4Yzlcf%PDz-+FCaoPR)!+0X*lit$+v z0Rf>Rqx;Z>xmqxGv|0sCdsIwy%Jaf|bC35(>K7<^q(sfPtsx|UQTA&MYMf}PRrdc# z{(EW}uIao{pq;>t7I)TSWXSFi!>ph#+;Gb#aK?DmhKi2Pk5vc}JR8aDRL|flJ*72Z0nVPU6+P>8k}#kDFuI8C@)_WW<0VilDYH zrVZ>kMVrfvD@7=B4PE$AaCpb;QQQm*Fn)GcJbs^5w5y0DeO?-WeRj+%D`*Rd_ld=P zD?)t?^sLI|6tTRuS6HtU3fzRGfvzedpYtHMP+l+LcAUNZN92bk`zO>ZZahc-bRRxJ zC>h(i|Kz3L$2JAacpsN6zZW%^IW9K8WKx&P_JXm#Shy{u=}2EXV1KwImh{L41fAoA zTE+s^jkohf0wy1@u9#^8c9D9nfd*nCY#14@O$8!%sPN$mKJL+cbzM9}KRX3VtAU3c z21C}P(S6Zuib^c+gP+b6@iauoX9+P5nRyg-a}WPp#@glMN!LysI6rYN5JJuAT6e%G z0W+u2Cv3=Q!)JQ!x*@N)HI4tK<~ZVPPzwu@tu@>SxCK%lePKdQJx=qhR3;6MG+A07 z#$h*|w(gkN_VB}Bk0F%Z(nnj1AM<^mYR}mJSsi*Dmkn|(iN*jw1wc2d(+teBW~Ub8 zwWn3?54a=^jqbxHv$6!1G`ZU8qH&$v`PHtp-yJU{PIO9dwGD z+G9-_vE8$1p){hFWe~io`)HbV5!w6!Kn#tzWPu9kv<9k`Q%kJ&9jAv|Yq#a-#*G0f z4>RhcCxG=hR&(7_|HM<_R*&Wg+*>xS^uJLX?+s(oqk_6DtSv?DXNu3L? zOJf=8q~cOlC?P8@od~QIV$MqqXfzLx5Rfk@mID~0Mz-+xuZgLF9P{Cg8;*K-aFh^= zv9y0a7IdGEVjho&);cugRs)(&wPu~irkDvdV@u^u5SF5x*{YL{5mKwe5!Uz{nH`C!56(~T*shu zDijx*kK59#Yo-A3W{HcveHJi(;V^4J=TuQHHiuAUqEG~wNAoZpkL=^418Uu#?*v;McS7Y-s|@bmbHbfR5zH@3=*ll1}xERS(uWn>Fj z^%9hT+$D4W#_kc3YS%~n2wf8T!+TPDZ#G1l*VQpU=TXAlRHJsr8s(w&Cg&fX(6P-0 zOKp_(3NRV!A<8&Jo)7GJ^PD)>C!xeu=oa>X$s3R1rM!T;BBS;+x+~GGl@GJRwq5@m zj3n7*HULP2ct>s#jY|1M0Xe~4Y>8v2!~b}1DX&*! zdYY?6+f26oJ?{AN{@v|~9p`34P769lB34|zG_P~3M%LZfi9SY7cOx|6-SqzYP}0=M>r)3wMjdng|w z(b`7z)&@h1k~4f=cY6J0%rxxRC6K0f=4o$Zl$I*7;|TgOV3XF zgH?lH3X*7+exiw9(FqSE?zPpPMMYHbxu}2ot~RujIqEFBp-Z_$#ZxHtNE-)7Mi8=9 z6~oD5sLW7;u6TZ)nz45D^XG;Ey&oikpv3>e%ZciwvWw17X0Bd{aI&j-WqS8%@M=kC z%t7_Z;oEOMWnlVuS@ZLK^IPClgwjVNQ&N>(71ET)VUcH#15#a{%_WEQ-Y@$GJ;E3v z1r}2cKYGtRM_bqxynR%-t7rDekl`WUFNyw*uV!ok+pv>V)9GDUluwbBvQTXR45cxW zRvCj4e}_ReNl45Ai4bjg8<0^x`!2hqxx4*W{GBx#8(NpeYw5t=yQSH##OyKg%uk=U z&I!t0-)L3BbZG&&!c=l>t{{+&2bL~xf~>*>8iN?X_mf2njagR)2QK(}Ez9Zua&>A> z(m^B0g33bv z)_(I>(7>GQ_~Bo`uR4WBy@mYX2x(JOeUC%Wwz$m=6yIHPxTwVWuug4B2g=Ye<~F|0 z2g8QqtJEs0sV%}CP3l@JWNETO=DM~WC#W!{qfGzJwhj+atKbrLBevC zN>y|uCb~o~Q;mdu(C~ckWF(+^67ml(Lje*OV4}LXlC(8Rwa^Qcj>1?+Rv$whuuMi| zA&AiaB(1q`W~DwIN`SOsco@)GB+h{Sfnk#8M|c)#>t4Y33B@(EmN)6)(WR#apU*X& z5Zh4cvv!yg@U~Fz!!wQgZ>g>K60VdF&CKo`Pv{;%Zznu^Uf&=3E{FZ%7Xr-uAT$|e zgXuDYCDCb@R@A!f$;Y&`?;lGZdP!|Jbil7um{OIXhubrc*wLvh$lu}U zCR5fj@-yrvtQEVpnM))RtMp|u;FzuD8h?$}_yQ54F$4l1%pMsa)8snHtN>R?w45c- zL{gzLcOoR{iAHd%+MwPTcr~Oac7~M{KwQa2a8u|s?2As}Of;#|1WWC;qG9RKJK1bl z>X(jWl60ubHn=OhsaHfKYR%9rHV_VDMR+)j5X(m+4AUWs1(HiDQLw;EVTr4_jxyw@ z4Wf2nHgsm5XoDzasTe1Mzf6SaiqVm{MlF8q925}XD#siqq|ZcrvQ0T;e`d7?bCeLf zI>ckA*Y}?IO?s|ZA+U(GgTtMT(xRFY(4<7h1fgrI<;Y%H#Ro%fioEHm{f>TC5le?; z);6-JX%@oGr{1fiXo-EFHQcV+MumXrB$udytitjgozP>PpB5DkE9-sVKD**GwIb+q z{iyWf^$Rz(+Jk!aa3y3hYpI~*;H}NEZ-=`=-5HlGJjP~WVQ_Guq{?xw%T5g= zUjMav_t!DM;|-DDOMkxFU>j1r@%2MJ!*u_(7p&HV`o*gF+swTd9Co`3O{-iMA@87U z*!1vRU8U5l%-yM1MxI^zG+XFuw%zd|=h0i6qlf6*?T;qR9KF2h^6ubYhe96g6jJ?8 z->cXcBKMr3Z{v_m)!s0!Su>&%AQ3M3tSy(GU-5L73(+J_kFwzR?(lMfFvo{4;GY^; z&aP4t>-l?zn<|Ru=Aci6Y(8)9`QvX09lE08;v<9NJ*!}8h3>TXvPB402Si)^3|p`+ zftN4UszsG%z-P%#t|WmV5c=$P&y7h*^47=u_6>@DOiVwH>lVgL8e?@4UslO`R!}Wa zPk(@z*9vXCYdlg&D$<;f;=X|`n7_e4>UGb}x8uvXWj%pAj zGSes-CTEYM8a0>J_~e}1gL{r36q!2T{OoW-mpPzsDqjfL4cb zNTXM(zd8@R{O}N+8(a~6CI(E5_m+i@yub&GhKj<9@80rr#P?wgG7cd3bAj)4XZbYO)e1 zs=d^B^GQOz@pR3Q^Y+!-!~2avZvoq6hDrX@FY6!OMziNN_8&<H_kQ>GMN9&C1qqC$bO(*XSaWz>Ogl7^ne(fuX{QMmx=%%{1<>dM*bx{0#Y) zG1@XXXT|3u6FO@c_0a(rPnrj=;g*G%H>8hWYGPx6hza<`z zGgoV5{Se$;n`cH&2go`JF%_5vG6}a$PG(h!$~8D;0d08*7c}EFFou{tf8f5TRZcy2 zaOyAUrsQpR(mrSxxo@HF5CE6;c37Yp|E2M;%-OU__}u{w%(G{J6Q^ z-Q(upfE%_z@aNRTpzNbv>2x$|3P+;Vzlu0_l@4b}Kf#x;5^C(B>| zxcUb9%>bdlZqP#ZJaAOoI$yxB>&nF!6clKnLSL9H;8ZnNHT&foMxt>xcHFagCQ+;m5@{=ynals1oTXw z=~s`NggLPh1buTJfzzhW0Ps6m3aI>b(wKr*o?akF0;`-u5H^OFEJx^+1!1W&vm;07 z06Zz~Zzk+t2q9{GASOXjE+jA?*a5CZWiLlSV7HMXk118KxNi+ks#5jgVVpFB917)j zIY37iGF&mn3k%X4p@r_StB42)6uXABbDp2w zZ9{xSJN@wg^X$v?+59W0hFG=bP#?NQNq02LAI?NjOrFB9-!cWmh-(5p7)te1;Fu=* z`cfT&?Bnhy7N`#!PQ@TA>|E!I5a}qcBXk4sF(7UGT^|IqtxgxJZHb9RKUamI)$Gy##=1}f<-p?o(;ZKB2S9bp954WfO! zFmT```cV^;iNO4id;>;d!99Wg1qlJ<5D3{gn&3EfY3j_BdP=p>ci9Tga_?ZaUl7aN z+s7-whs|2zc?ZNkg zcZ|?ohzi^xhTQe?GjzNU@V^DEQR<#g3iN{ewk`i=pl7sgu&m|wdSGm`JHWPGVgRAx z5D0tP7DD1=LRZLy2>7dw*?_YLZSr8P2~*b-K_(Oyj!2o?pA_R;>YPe5^ zWC(fna33r|a1n{jM2KK88`V{Wj77&Fz$nD4z_F{d0`zkYFjEy?0BD3_9kWzi%6#6u&^wSv$sHU5|D}3(^P5YexchC z*3@nOj=picz&Ae$FG+j4?b+_Z3;g{bHUx|g`&PX^#-V zr>WLek3nSx+3^Sj#rLHvj$p)b{ahxZ$rF^D2}2=p-F5n=Cp$D@E5*x_%0=Q}3eypi z8z_yn5O@KAGlOc6JUZaQI>V6400MMO9q{U6P<{5o1qNJ8@~kD+3Mh>54-4BP0e`_9 z;e*$fLY-;|!{zENBw1ZO_0vW9Y`GB%49k<(Nu{*vG5ba%$#MOuoq;^Yv-rK;j;Rfo z-c9}AM0&s7u&>6~v>xJJjBX;Fu@E0TzIO(4!BQ8P0dbELxaZL@1k<)b035Cd{tA0cAa2_%ZZ5GNfEDO<_qf3Rf#L}o)#Mlhz2q@}G1k_f@QviB8^r+xO{GDSdkg?XYm&8sy4PnJ? z>(Fe3u|Bjz?8{ybR3ti7Xh8)G$pn=kj|xU25LiM;Ssz}7VU`=BT>w5?mw>K{ff}e1 zK7?Mi&W@^cdRCDwIJ!@3QS#sva6^=8FdL^pkb;ER|@w0d9B_48)yA1-@Sm3WTR9j$z-yxV7H<|80rNaL+R$rRxYN_ z*=9AkJ$1>ThwigWrCSKrCo3$9*a=XfWZk@8AuqudqzUv3Q4oZ3q0vn4gGht`4>jGz z1VS~$P;ym+)GVIUQ&%4fj6#S6F1lXU6JxDZ_-^Jz%(=BzZ}3E%L zB|eDZgL#yq^#oH#m_`O>T>}J)oh;b^D8S_geUxHtphMspn2Ny#Qic$hmvtCMQ56Ul z#7%^tE@1rS3@)^ixrt7|8NUl$TNaEwL4`;rFV`HHG(fOIgl7&d?e##RI#PjLx}5^c z(`7KV1si&-@dXhUv zz-m&XQ4%$Zd2$RJ!2@pfy5E$Qz_Fp{&_ND=a67uRtKoj-$wDXP_p6TdyoTA#8dk7j zDj-UP2NwBer^y91VHZhe%&d58STvK%cZQ|z+VrXy@XK9L`rbGCTbuX1%}vVm%9;7S ze(r6(FPG+DHpMv)=yp2k$GajmzD)K(IhF@RSU!kEHgVWQCngW>JA+iXc!Kd(jx^e& zr<1;=KkcvXsa z>Ot#*gVt>O=X`O%m)%pqBjD(xynEZ`^nd)Nd(>r6SGc9%NL&X&qC;Q_ATZxp)BMxh zSUghaiwDxM5~>{7PPkHgvo{!sStO3Wy8YeiXNW?d?0JcL$tMJHh4hvq%z3{YCbkNEX= zp2w{d6_ev@<{vFR52YtP8F*{2`FX2iE@IV-hBt5acHg{q;=9pMBa|Q&E8CLy+UD7jlgLDHXoNJro6^&>^XYUG2%veh&^=f)7J<+e%}o{# zjp&WNdwkr<8{rnxF>p0tAbFgvG(Sg5DZjEc-LxsU|u?PeDF+2Shxd3JS zs#r1!)q(2pS^PX2Z0wB1SxBXI>P32PVc+7JH{UO-OM56BtwcCn|IukUpq~$es3HYh zhcT+AI-)RD$1<@C=yXx#=R4siy0-$gf&q8=!;^KN_wYPIRxc#s0%=|18RF*C_63p} zU6$c7EDbod3c26jg(L*2EyyJ`panEP)t zh46MS+d?TDi%*G~6-_pcJ8=JKK86NRlBv*bAO(yC-W$Yc?{+rR#Jua*=SD;EmIg|l zu4wH)zQ=CrpmQE@5O`YGqgk<&dKm=6|Fo_`E+9oofy1!rsISdYCMb04bf0h$7Rmb-FIm=Gp08v$W}NG?6|>noxiP z;>zT-DsjNMyhK8-q^s$Sn1lyA7&RcevHS4kmYJ)MCNLHSDn9!z@>ulAx$BP3OOK87 z3+*&lZ7=Vn{uC_VMQ-SJg{A=4a_dz-nPpfYUHThk>Z+_uAN}BJRcZC^KF9-3ZrtPUvc9WKZbVD>- zEL$F8_QI+w&7DRcGruoYutAdwZpM4YixDy~8HI^e*011I4V%xisKBoEz?Z#FYPLgR?nmMP`WLw8L* z>Jo~0Z~ps*BuwmXZSeMkP05Y56K!j>2TY2*vrHLq|Tb| zoR<$qeQUks_HmC2<#CU(ck8I}^X}VU^z#>Q36hGqh-PF|SO^|ShIg{V#lRJ&VSPk_I|YQ>O)>34 zRBaiymnTShEUA~(tJ@y`+;!>fm%Y2b{P>mp=F*o>W{uTL9{$vGqZJGznpZDeYi(pY zi~2Jo^eUuR)Z)v;QTT8X?6TbKs29kYjRWDg!0E!bi;YQVz0e6|s>J@ETjw}S@N-xn zO1J)~M~s-(JLi{v8QIs~-M#Z9?+G$u*NWfkot%sJL7?zr9v}x`Z8E5ID?FwPmV2F@ z_0-s6sY;H4?#yqt6(}-MuT3+0g3Ts6Hg1Xw8Jv%+EOr|>G&t0K<~QgzR3LRV_XXYG zh@hK;6YEHo^`P?H04Ws|Bl~itH`ce$#afiOg5BP%wwBOSV^x<77;cr?k{vr<-9O=e zft9gt5+MThj$lC~U_X4_y?L|C3pcvbxCSkCfYoSyao(m9J-7P{W?NAo-iKaWz8sDS zuD)Vo&X>p=t(Pvj)sgZrCJh(#9*M;PBOa)Z#bm=Sd<#C8U_N{l5U?d%_%((^f=8T@ z{V*$GCW*#cKnuDy{2;?OKhO96#)Xr*gxez^WlpoYZCtL5BJdIu1h$ud&*YK1M1nlo zi#m1ONoQ>L|BEv$22p`SsdH~FWb?e1dNI9NE4;nE zdHx)4@W+oeWeMU69Cu&epk=;+K>;kkpx_m(ATB@HZ-rkFm+c+2!q37CSmwJ#@075; zA#M7oMq?}0v%3+Uk6^XQlrp7S=^ab%Qp6ZA!dfp(I?#aqwlht6aM@~2#kShIBMZay zt@i+SQP&=B`{Ez_+zRcAui0FladXG|sRLkye?(kfgJEfokUDYM3b4_Ae-V`W3Oiw+ zERzR5h$;}HJ1x{>W#J;yj_pKE_xC9kLFo2$t_f)Rmf8opE zB{yh7ezj-*^(Q|jqRe1jB+x%j-?0o|A>v)DEwem)OR4uoYoVU9p7q8E3`>*o#dwpp z`#a9v{|Ky>iqbgm-A=y#^wXfwZVYV1T0pwX&S=R=`Yo~&#cMJ{*AUwXNuX}dhgs!7 zHNt&MsWY8O#(W~zw_G)wGQ}KTH?)WIrsiz>zD!oB>DOsBG;2Rtez5P-DRZomG#u4z z>zEF+LF4UrduMavgTlXGvnO}yfcrYK2-d0ewm!B*cawM$`7a(I z;CE@kdXtM!f6PSOcu`*p%zP|sw zk8scth=9OdT?#)}ti zDjx1m{|%%zHAVQ;1@s}Di&%&xrU6D~FD7Wk*gb_rz+5Upv{qCOUGzc!Bv*8V4n5s7 zgONTNe#UM^>eeqyRfJxBMTD+5*cAlX(3ckx3A(^8%9K-8p%}9xaB2_)bH3Q(9tDto zd|e~}h|+Y#S5x`rtn_rj4BJn}|0`5$;>I2rz6?F=Hyap}6n z4|I#BRh|y8KP@QNiVd%AGeKL*+kx|5f-}`D>6oBI;2ia;>gTruN9l@FN1}wv`5;BR z`D41R@6*-GXy%C$mK>c92Gh8N)k+-X@qBC|!r2|M!z?5Kunea6w5p@U2)%n9;vxyH$2z z<16lU?(-4qOD7U7JAP&WF5DACgH^uOAmnvgop z`QpH2>TaF`0gtG+LoT3-5n|(WpN;4u@R~RU(1rv4qVgvXUS7X7^PIU%rUk z*s=ck@)f41$7~QbCefep+Vr3pqR%}juntK{+7u{nh= zK5ZAEis@sbx69_tnPIu;+?CyTEOEZjxvVuw49r1y==Pt!V`VYa2p#QD14wbI#!8FL%gF0&ze&Bk@GX#2y`oPP$xiH%VHZdhUBYAD$5wnRKI7i7XZUjl z4Z@n`1?SFuYqD?k-)Z)@CLDjCr9&uUF}xwH?oMZ~c8RG;(&`snsObn*tfpPbSd0ep zAIAlc>19W<2eKPbtA0;8ihe_8Z^!VnvX+CG47;=T!-W2Y?dYM9+b@5701-Jjg%}pE zk(hpMqlvT>)Dq0Q@rfl!>IzdRY)-xlgwje=-pxuqda_?fi`VW(K~IT|x_@zwE^&2z0t0;~gtJxRSSjayCq&2JRb>jsZyk$;Ljd6FNqCw=*jG zDiw=im-9SHT2F%27llZNI%p`dxwG|Z30eobZLp{OxmAnl;E>n+JO9-NY0jeQIKT#i z-l^rN);8^3$0koU0l~I+8bJ3|QNKb47$PdKOJ zO$^yt6V3Ou*m~$@nn6kTa1ltsPlspf{9x-Q-J|zvB%Z|3~2XKZU)^t@iCJt51RI z{E2I=N#S7$hiNx`=+#x*dLs=?ZR~t~f-~_HL9Mh%SUbmzOp1)_4;2BaI;T#qdS`iA zr`Ek8FzI~dP5-6IoNBvA_TkCfezaW7eK<9!=+^c>dNbpnd8?-OrTOc8na0rCfm1)^ z<5lR34Z$9f_a&NvB6>AVn2fDo@>W|HW3Yxz(m2bhO2ly5?#eu5;q* ze*XBx2r2CM(o3kzbD3|&%Q4K#LIU}avanQpOd1!5kgMGnu(`*1Ja#Ryt*$hKQJf1* zP#6t9T9K;^`z`~S>xqs%AkMhCa{en)?ouh4vHgxF+}+yOi4`22nX8loi;QFmU(+Tb zeQ_uZBcp+|Hm^^}DG^T2=~=G&;oZHDK2U0QN#c}-+`Vco+R(&l+1YbQU44_;RPYYq zN*f!+g>-Alr`e85AiO7Pr0TlGN!zyRjKj2#p&LRw&Nx?*{yG&ueE`lUq$9ioGIJ@`z2Y7j04(!R zmFis+HdA}{#e<43pG{8=k6gR9`o!t_i(L{D;>kafedn8SYvvS4yl(`h`ZV6QHQIo^ zzk%h^zZAHSLUZ~tzLSuPCJFH`x|A4u2VAkxhpO~c>RDH zWp7hW7oVdqNr_3*yy9zJK=SiNE7;aRygKcQ{RWj`$7eu+%XaqQ#YwmAPyHQ_aq$?N z3z>r5!y+Wu`{TA)(eScpY<$V1+3Vk5OELM-zk0pZzKLZ2am$RlYX^?k{b|`j3N&#@ z_ycX7eD}m(P9eQ}aXv3jEZREmoJP}28W~yRtEp9D&?PTOr6Zr?648+*96mz8u53c~ zs_4_UL|$X@mWyxRe4vS4dGXvr1Zml$wzB3+VRu;>We&T~?kAPcY2fzZR% z<2PUOkNq?2zn@%%R$eG505oDMa(A_2A*D*kq)Y&;SEOe21;>z?)R-VvVgnzAN`^eA zO;UTr$w-VXpL!q-;bz21$U5(ZvT;9?$L@MOTtz_m8N7_x7)I_hn*PQpwgyf1)>Qg9 zslrH=;x0u!uvx2o!9(u@=fQZ@gaMNWViC&1A`Y?ku(3daSeJL zSe=o|G}c?TBA+}|W5IE8)o}sJ-M}+slB&mzqd5$!X3GH$^7${o=qx8Uyi(J3mrQ4Yti9#7w0nXN=3k~z!^nF9&tnh7#cW$$_)ivR85&& z1)N)J+%$;4BDwBB&fP2BVUfCwBcHmhe#yiL(oSTT)m!8kf`OPkS0yd$%F5mrzIqY&brRj@sNLSTC85gRkqb+({V6;_dnmC|Di)Y;N7 zK_1<#O#w{KfUa1=7UW^W>eaDd@(!PR_K(lPq%&=Ix8g{KuIFd8Jd~crWfeWj8ct{m zpEiF6m08Fj)S1?=xi$xkNcwW0$SeI0YGD^6er7}@KdqrsKW;Ly5v}0YKcsj^ID_Ia;n6p!r229~zjxAcrYvOue+vw|Y@1-1PpkK5DEU-&J#3}zr-HtHLqj8}Za44Nl?4zu}+Xcx#bLJw>+T0+}L!{v7> z*1x`dX48(F7k~QKE}G2!g-n!AL&LGY#z;_t4^YFkyu1`f14F9uu93@LxJbIJq@^_y zz7FyQfsj{AemZHic?Z%4N&F{bJLmAs2W)E0lJRQQ2kEZyBWu^t=tWcj`K6RFdS#0G z_Q&48TR@(oXW)~OTFt7bN_gDUM~X{U^}JtcJy2`uTm(I}s&FQ}y*+8b$m4GJjn_|K zyme2Szcs)-2f3uW14D1ba#WOG9F-z1YH&f-XUN2`+MUZrlMO)Ca8ZSwCte6#axUUG zg|B`e0dnY{Y=>W73fTI2b}8b*T)h?dRvtS)MK`zz=;)4rMe9v_5!zsA7`g&0d;fI_ z3wVUzMGVyi%p z6TsKPVa5q8RMRmjaOc{gKoGX-;hawnA@La7^Y_`C_C(F66y6RtZkpVDNB@5g04xI} z@*t9G;onn(a;=&gpP2aZWpMDqk3ah#?;CuwZ{zR5awfy3m{Sn8Mz{-s|E(J8NMi@e z7k@30+Rrd@b$AQP>+ElIxT>MB{1%+QQ9L-%h!Se)YM;FB?OR^<>`rh6+HNG^4{w~m z`S7Ox%Lk8d*!vzcVg)Am;elPFXETkO?|O&)d9S7M|1tIL@l3z}``gS}GB)RmQD)8} zk~D|SnGIVE6`e#BB^5G=_xt_%{`N<& z`_bc}=6>CW=kt1A&+D4+IJk+I+felrm>CYDRAt;IJyaY&CRChI+9h-=FC#`spf2`TWm;s<^0ZU`&T%dR?*-t-}DE-Wc8 z{X-XA=A~R~r)$lkm-@M#$fljgkw(s+htA}`?<5Mn7JXyV2)`v=d6`CsC@cC95kM^O z4iGE$6(;mTIZE#>o_5#fq!{CJl^)W#P?;h_<<&1@CUBJ$kX(25=8DXisMj{;?;byZ z@ZQV$S#pD=;C1^yBp`oMgM#h9CYo8DlkZ$y|~!oAjf&9%aATQTxL zV3o@k694Jhcg^Q25V1AlS2=8<{hmF4ER&A2^R%ZXxeB)ssu@aZ&utP(R*5tg0^i&3 ztI}FhKt?pOFzx}RKzcR#; zEvok+w+dMOasAhqb?|nQpc^$N?fhaV_f+T0RfF%lJKBO!b!YZDUQE_6_iUXORFYAR z-~ODrN%D&qU4$eK@;HuR$f9?3wd29+>S<(d+0B^}sUL$`#;v|qy#u#vg689-dgQ=D zSN1-BFSqh6>3H74z4)_P7m~ZXTSZgUY=F|C0-P@4^9ZfvPNO?wF(z&xoV5jF-(9k2 z{X>N$WGIHPFSb#dC;LM(H@_zVfF@P?^!IU%eQ#p@uhA=M_WKSlMQ?Qj>Sx7F>DV2r zV%8}t+Wh`qG(xXDx$BT7n)=aK_NIR>+IP_HNVSNTQpP!cssy4@DJG*=C02T1)hb{! zu5sv}$0eGUIU$*}6LA_RJUUBHBJ@%#(FC%UhHn|5&i69eebF2mw~T^t?%2~5wop%a za^TC`F+;r;)c5VtUk2v3VK(&y<1gAWjd{}leDi{Sj=E4wK0i@OWoU;Kf-k{8*Yzyz zJu`+4K-`2F&`ZOz}-Po%vQ?LW|j@^q$$p5hw-*1En;-P2F7I zk!x>-U=a8M^LMcw#qz$g!u#0n3arPbTUU5%{BjEDvQT*rK}iHiAh?_=f)%-iqwTdq z)lQ0`BuE%FWS+X$Zp7{DT=~7JD}*T~61*UhrEj$SnJIC6bC>#=if#3f7rLNQ1jEvr zfjY(27+*H#p+W1nQePrULtcXeJWk>d-Ry&R@jn`7ojpssICy2ixlJDWa?{@Uao3vt zuMCN|b;qvUYo1dd&={A;ILd54R<4I z&n9%W%yuaJuk3Hdufstm%5R=C$7R>gy%nw=LZj^nPEO){d@9&JS-2ayK-?3>?PE(L zx-cD%tcLaQ?oP++3+q$nd1sIPi5iyI*j=L4!yoFJQny2NQTs)$K zY0NcnX+HdyTZLNaq3)FoAWI7@TVg4>WVc2UAl)KC_G)kn(Vjn(Uh|}LdD=ft#h&ja z;``gV#PAa2AhSD9&pOZf_0H)>E@xxyZafoxW7tS=66jZgK$}Wg%$V);B+kt~ydIRS zAOXB+&CS(JB+w$c&4;Y?xWY`R9%NQ^WF;CtDcp5(TggP01o7(IdlH=spKFJNq3Onv zKu0@-cl$|vx*8)Q6~pT1Q1}>Cbc}DV6u>gRRnpz}yV}kwBndrp_@4DW^vuKDr(Yqz zm;AooB2xbBQl6UYdbTsC_-CNSMJ1sA0E+o+VVo7jLNbmJ_VGk1odpy?@V%y^_V{@J z){%mapMysaU~}r^b-s68nfwD$UBgT$=Sz5LtNgO|*sOl}Q;6KQLqIbSG>5Rd;f<){ z9spJG1IoaxLu8=8M^*qCW|BA_ev(|&%MnPubH`#~xSCL_9=AH-QFi_7aFn3i0rFe6 zW_mUIG3P$X1AFQh6db@RmP~I5f^_1OJ&Dd?Gq`wjF!`-9Ko2;H%1g|EO&dO0f~Tegmk?q@;`p3+XD3-M1+K zLcSp9ee_8EIuQHm@=J?ZU#pMif|HOEK5XPSwN{TPv?=YjlY@9U83rw$R)re8Kk&cN zR-w{3pvq%01&NbGzxsUU{Y*(+r94mH$E_8tdEVEZUfGF2 z+4&;7t}=VE6x3nTS!VHLth;+P{IRF)-iuui5-zvtBsfAN%yt_kyEHqdE=Pm}Ddu0f zgASXJK6)j^22?@yz?(`!6>7!bu?33w?`+KI#&pJ4J zbbP;q#Zi50G4e4z3$7haz_$*{qjL`-nD^Q zMO1Ddh637S{mCk54hQTS1pdPig@;BWAOMhggs?HX8kN~S9lp9+R0%n|Ymfi?K-|)W z;SZB+pK9pn_^P0UL&}XCd_<_CGD%r`bSH-;BHcN~-G?tC@t3hd;~dtXJ3QzuSU2$n zyK`jX;Y%PElObTLpI`Q|7$ZJXYkl9~+#OVFwAUgu1GJ_;Wy;ZH1>MrD3jsm|?g#%s zAl$_eLIYuM1Ceg+TR`la+#3`%V|*iT?!LsInVG%oSW|Jt=v7VI8u;G-29dOu3=n@} zaVZ*4Wj^Zzk6cnKhv|Rz#~WEiuy+%svio}+S zhbFAv6s`nQdg+7~4g(|7f4_U;b;%NeN(mS!-p80H8HhSa=jbP5tcpdhOdUaBo9PxU zoI~%o5>Hhr*{Dhin~N2*&0FrzO11XAXFSN*hXB)OBRBO*zL$ZRb*1u?X>Y>fOXwUX znRt0k5P~F(o+tcO|iM(~#*;vOza4Mg0UYRLH3`CE$|?<2ZH*VYgj%}$QdB>`f6g^3 zva;ief9dJ_lUtZ{4ugQI?8{+uFjHUFBI0E|4f?K%cTwZQBC4}&r&g{ZSmZOmt4BSy zOltialY3U|N)X-jq`KwKaoGwdIW2?VqAAu+;<3m#(lAp*hYcfEM8v;BmWzqm1XUn5 zif{mrM*i@L;|C9-o`o5llu2z-dx$bYj^sV(w@yO`<@fq8eA!u;-hH# z#c#7x^B}x?lx$L9P_R< zoXD$`Qk8yGsQ_n;pvt5Yy!to6@Ux8fyx>6!0GR*+>2W{YLdP(eY?C`qpye0Txf&Wy z@!B^lhrd7GeYtOXCfvGK{fOp%*l&LIF_PHQft^joIyQROeA^apBaVS`hc=rRCBr3s zW4vr!p0Tim0B|SZ$vt)2qaQsZ?_9gfQ)~fEzl5SLEXP;xlrrd1{8&8W00KXfOx$&s z?YmAc(%GUGwuO=kywe>tOABzJHg>sU&ezMC7zSz!gGMPbc~t|hdTP-#G;c>fV!=|A0x5`SfGx$QF<4N8|}HMWjV)*pb083U}ve zqEM@#jhFx+#P>5HlA5UPaSUJc_)rms6Drkg*cpX4?-c=!v^D{Y`YnameppJ^1y|-K zK@|l^Uw31LM=#Io(&b;1Y%w~;yjEIp+OT0QRv!0sv!f}X2CjjXFOu)cdmHadj^(&r z?{g;;`Deonj%J))R81f58c7Y48&Urtk9<};bLv@lqLFiZA5*t4GHPeWvBx@3ci1>x z0o*dW#HfgEjCnCFvGCk`uY*XT7> zjWX|lPiVI@+}ti`a}of*Zo(~v5V%!im0zhL!Jv=BGSxC-OK+m08Ug%gz#;=*jD#!8 z68%dZtkm9B(tMdQ1TKGJP7$>vF)QzPVSjwF zsQ(S$n;3yCdi@QHVhq)MFr~TnSk&(0m+bCcEdM08vI_qy7n3ggWkyZ*wM21?1ZWSg zfdgX*h)=Kuzttm67A8iz3lqcPL~ww{r6&GPu=;zr6A2Uqyv|=bn0+{ED4omx68Q;OVE5( zebJlywYGP8TGew-OA*wCkEmXn`?U4H!6lj%C?bH|R!O;084UxLBy^^w6%vRgb~xHK zaCi#tGi%^eZ@3m1sWLc#)ZnH8B__yY;a1u6$6Aw#?_CTA?+_ECk5eXvE^Fc6uEHd# zyxrF?F8tzaj81E*FSsgj0TB}rF8hcQ&bb{BYi==l4sXF8>*s+wl0cJ=R%)Op^y`rXH>OWIz>Vbg zxvy(D-}A?`6IXzII1ZEjj2^ubnpxry?*e@H?tL<*?{%nv%v20T_p($IxSlpJ@w?XC&Rnmb(<+8T%R3Qce^7jBf^F=@0i{2x0z`-)OsEtjJ1<`2~?clrSP}6 zBmB_OP%H;~QwYmLlIgLxF}|D3ac)~+{+$qzV`RzRtzd-1<)6owi;At$W*^&9IC@6} zqi`37R5f~K%XtAPh!CjZ{N7?-F$b9|o!%33Y#ch~vkL6*fcXJHEG5wqTbpUOW$&{cW9XE`G>xX1 zR%#hjO0;?cJ%L>!-@a9S$*Y#ZzcNpoeQ#;!2VeVduvI963PLaH*BWLTD0b^csv_?<1D zS=nH1wr7gM1yYYx+8rIsw?8CdODJ+XcA!>K2;ky8$v$D5vN%iispWk|oKXLyfq}=s zM#T?_M7+T;(A-l2K>5!jAb2P*?bRLCrV9`_tniyTa0ldzcKfY_)UD+uSzw~kO0PtO z><`N_+{-|+Z9oOBGKcUymlQgO)cT%IiFevUg?@O~9vV;+^kUUyW&#KWKqlpEH{GTj zH&eX$+Q$D)rODjqH##`r5CJA!O44>~HX;q(qhSDKkqN1_)?I^5J)z^jJs_hK5C~@%oORn%3^)9 z%H6Bze3*Qg+!*6-RYV7NobKQ1Ece$O2y1j%+8$}d|57ehC7N?)`fjYf`maP@7@%1+YbCOfiH(B-Yvlot|i|^UFyiI#IUF> z1Yi}!A-R!}r-P&B1nc|@#imwNhCDpZLt0RczVTI*&5GmQbh-WTge`s4y{GTmtBeWy z>B_|QqTfi1{6WJtMd@s&W$#r+DA^5_OHRGLE-E&W!Io@r*HB^)U8cq&ViCC>)0@TC zQaIxkCQi21$?2gy|T+P=5e1 z9$U;LGzw4$iZ|DMh%|nw@>@9g_sgv7o9E1wfrOyztPdbPs%)sJ!IWCc(UNcs$Cpcp zXZeyU85267MZ#0VJ(krmjlL5ae2e<^?@!Yptu4@%)zd#QJ{o_QdO8;tn;UcExZlQI zjXsLv%tG{KWqTm!uPY+ZuOtwnPj|T1-nny!HB`jm_=o!IF%c`n!$#c~&YV%H^e*e3 zX=s=Uy$ty+th{LI!8$fHyd0MjeovFMb7ltUisW40-pmvRCHV{;bGZbdPC#A`4Fex8 zuzn#K`g_-tL6QtEpZXz6Deq`sD3RKw?^!(t8{jXLNJ~#C+Zj3&<0jN$*Y^GvSoIs% z6&30$8AqqPYSYo*+^ovni^zdivEbf0#Qpe}Xuv>!dbn)nqFlaQU)P zyV!=%w0-iFVBT@OzNEH~AWU@^u=K&wMD!zqEpB~07Z!`kVx)SGd#Z2yN)OMpvEh%TFKgTYR|$1FN3^q$Oi% zr9$o{LPF9)zMV)U9&hm8FOf{Pf(NE~+tlT$FRjjBD)*(H) zF&eQm;LHO4Js^XJ!dRNl#FU)sFzW{>eAP2f_dEOAy1@}jC5tUhKbU^-)AYrT9@ntl zSjbD%_b1~duE`wV&nAV9ebc={kM(` zot%eH$Z0EUHl2K+=KlJ$un&l;fmV$YP^;^O&ZihfE1NLYqtWB^%qAd%7GyB6+Spm78Io`qocN5`jjtWTR zkTo&X#;Qx?63)n?43d>gx*xX+udGUpKSJcSsT=h54sQ;=r(n*w zYjM~+5;WAwi2)8M&W2%a6(zA&b7Ie9t7mVIHt6|P^G9ORQ$#1d?9Waz5q+@@^|BJVMv$p z_D8xR$lTR@8aH%37}zVFT;LzYVY3d7Kz)8|CI&@{UfL=_c-{1^ulf@Jad>1qSp#L7 z#Qqcw@#N^79lP#mcR%0=Bw=P3O)mdkuAqfmmks6l?p1FeZVFD||NTpMQ8o#-J3KUdFRU}aDXN+l7zyY#A{@CSS^JS*{= z=e!iD68P&BUIXPu3GOBmeTs{}CQF_9ouj@4TEJx)^x%=z#Cu;)H#)^n{ zv?n^@ZJmoLCkoQqzg-XRIY=q0bnQ5Dw%z!L&NkZJyJ7&{GKA=zP`n4Z)(j9yVDEQE zWqozy6PYkKw(;4~JTn}%zPfmDd;Z*goA$I0r4UEbO=cTq9xD^0?MURyiefw0&pCYK+UyCa%lmm7QXyDKR7rTd2FJO zD-vgC7-UnO5qpn8V!M64ayDT1w?f%S!0|EHk|U5|+A7<{q2g|+B!MiG%|Z9-FZ?~W z#tZFOY%@5J<^_tDn3#E~RgduX*A25%lhS-?lneY&lRx?71LidGHNb&&P;CQBW#-C0 zB@*_sCq>S=&NL_5q-|5nt1Khg) zm|Fv8p?iMq{ZM*)29jo{o?mqhnXZuOqMl#5kje`A3T6x}Ga%{9Cy_Gp3w~ZKm-i0j z9RZtlCUOW!!M8>6KEp=nLEw1zeJ!xg!3cjHyo*d|#I6&f$z3-7P_gBc-O`G=sXZ`R zAp7(0SEJv|qv?)@0B{&6Sh2{ZY{o_2Ef}`n61)%&yCd*b$^(%4f4mz$UsqRG)HFt! z-sy%79q2n?DQ?nz-=*;D!v*<}H>tb8xrMPITp^{?ob%vUAvst^45i?kgjI3KT*xoM zf+~(*%MayEM5|ub_rGVxXI^_;y4D)$zsJGMqo?gqlflvvl1i-bTR?@rfChxLr!t5m z7h>Yf19C}##hE~WXJP%))-t7vtI!=;uh6w9G)LOX$4dmXTz;<%{tb1|-aDY{<#Obf z`D({Vck`y^?f4A2o(DYcm$?>D$A(zTZ~g*H!#-rOy6&I*R_AuPXF9nPfh9{=XsU3JVG0D#1BWq0_=DO}dF_cXE}< z%tsJ$oH^rKId*pA*`{a&yf2Y>RX(d)9&ZhSph!Xt&{eiOdp{gMp|VvzwLkCHkI9Nk z1Q6*mH`CV_yA44=eF#X+Tr4k(n6T{W$r9IH6)Zf~;Y}nR)FjvuHhUsls8P z*GZ1kfA8!|c>V5GW_s)JrQcf9i%>#{XSTyLs)){AWL|-*$+mWN3GZ;&zK?sn4XZ znw;35EUEm}<}hzz+*E32!~R4lQ;77-K=sYg&rqP1@;eJSM81;e(mAI;VrB6ftX_9= z;!XTg?F(&Z=}C_$h=T}8R9ePk+F`XRPonBjaO&u*9-V=Hkezx-2*~XgkR=D;0|E4# z)j!k<_QA}|mTXRMApm`=rtD^ihxfd?BbEXrtkT@ey6s?^TXU-HA83hw%k?s~2*^C( zDgDNJ11LXoM1l=-zo(>P=MLJj@hGnN2sm^4T;1?R?&$+Rz`^6qtpeG+_v*^h^mK{T zU~R83QhdJq)mB1HVs|OUxW|4^xa?TwvxkJ$A3S{&`Sf1Yj>H?a}On zEQpd;h~g^NJ=aAJRvu3bFR*w@O<<8q$x`a8S|TTsT)Ed=`=n1TLXaZ!9T~}K6~zU+ z+%P>Fo+d7@%J22R;eDZZ*LgKB7A%4iw;fcdzNI-I0LVnib(c!{T=s13>5&H&ER^Q4 zxlq!jviX1;C#8@;Th2Zz_c$z+aM`@`efRLUTez$)!T0d0BeEd4QH@u5TF?Vz!l+z& z44XqC2a*6UGZzB`S3*1?mp(a@L?eSLnm?JZa`f?|_EIm~wcg~Se>4(-@`BJ=T-(PY8#4!FZu=+$Eg$G zP&!c_S|kM*-`g>C&gDFDtLs5w#fxcArt*F=P4CxloRL){vWD9wzS^0`_!MH;e#k1f z?>w2sguYi{p|v&6nqgEViATgC28XE-HIi7J7U z3>5yQAbRF>QCGS$n`$(7VTWfC)hcyxQJ_nxJ}mEf1F3Ds!}i?F&Ms38aWMhI6Pd|K z?XQKN3S$1<+FR7Up1D?oQx=HGf!S}0fkhDLM@xZN9$+?M|7Zts{ZN`QDDEM=V|B@F zXgsA1MQ+PK7rfl)y{~4LoC$vO3=~S%BYEl)3o$+`WA61{S&{k7(@FR3(Q{hQ#ez}HaqrCDh zs3R-WylXfm_3#_G1i~zR#Ffqx>ifQIsfI@s`}Z2(5OOc#&nGlZmNp%7CuzTPYbh-~Mkk??2=0{wnbOY$KCf2LwNV{Q3yYE9#j59MO2_Gd-UlKsBSsg#Fb67y;^1iMQA70#SY!%gQgv-ehP)bi_#^|R# zeA!o{Lk(nm8GsQ^CL1hXJ!s(96)l~_mUb^Wx*z-XEk4_HeriE*)$I2sQo!@;Z7Hku z%KlUCl5*wiP)R_+0kmDTvSwp}ujUIX*wNC>4&lp?BE#hXdX+k3ai#I>Pi57~jE~(LS&i_^p6%9#zjhmvQZ5NK@Fm(T^*kAk*^J zco!@n1~WW*>RQ^C%1nLg3yb-yc zdcy~-bYbmuRm}jbuk0>&qy`bla!RM&L8H(yK%z4;uM*uHHH`lBICcGi$1%{z2ID`5 zN$-@CD=hl|h7q9in72N$u{eae0>;2Xsl$A1m)5#Hx4Fv(wd#F<}i;E7WDWT8^*G7JDnApEU_)&oY-{$%Q%kwP)@jXgOwN2&=J=Pr63Q%Nl|74U*2H~q&$$Gz3 zPyVp?g!Z@bKZp1y`J-oLA>vDQGVqSW5aW>s@ zxxT7?_aLB4!*TF{Dw8T|uM+J0ml6eaCQhR_LM`1U zHtH!+*<4-QlEmv4Tl)b_ou)^ycPxOsC8IDbJ#6g$je!R*I|npp9N>S?_PtWv;nhd- z7XAIbIBT~u7R0<_J#WIKo&RO9{>t7c1rl9@>)a)~hgv5-`XD59cB$PZ7Xj{gb( z_CP}1^w#|IL4OP6@~VQAYJuECeQ%;r`JI12Kf z3Y$uhwRp}I!(T%8VsS@VUkh?RD89*sx$Q8yB!8Rd_0fyFVy*zeT+`UmRthdHpFv_P zup8%r%jh42-u_@qCsBgcWS;(mL_~vpM(ueY7b5l-e&YBww+aL2?FQeZ^0M~2batDj zzu_9`+ow1a?Fm=li5LRHjf{6~bA0mJh}J1DJu%|Bb*u1a1bgL@FQj+UwFZ{xbiM zCcVq=fIZjZVx-L}asUpA&jo3Ui`{r9cnc^E+htEcERI?y|A#AN{vWQe58w*t9V7%S z09xPxtTphCc0?S`c$b-_nUNvR%G6jNXSok&XpY}!Ww_7EOvliC4^GF>3}>NXu+PHM z(0H$hS9>^v_fR>;kK7 z+z;``Mx}bF%^^ip8DV&<7yXE8rI&nBvxu1D@isn6)m8omapzPm2T&>Cw2c52r;&~n+z^F1R6a4vo zai%y8nzv+^cznwFi}E;3r6?$M^HUXxI^ZDO>te&Eav z2t9RmGt(vZmV=QX{0prI`6fpcB>xlGf$`Tc-jcnCuYD2frV?eARdqadI%G?4+yC+m zUsE4*pRLVIjx_$O*}CN|ED759t9Y++g!>_D5zeRzO<EvdnVAF2^O9+?4LHlq@%BPr7Nj8IIRp4))fK^;&bdxkgQa%ETeJ?&-!}c6D)@Vq_*LEU6K-*4Ip>+{?WfVxz!4E3FKxO& z#;Xx%CMW}T5uIR-P*>;SFG(S;HUT^gEOPkS+HyUx%K-;k>StdHRk&qorHf+n$lv&D zuEhA9wdeN{&gaByO}tC>-SxvgK(s1FNl-El1*Ecn5bI`YpFDXIWN)^;J_s-`DkcWA z2t{nh<#`IFp{}HS==KZIM9DH}jMCv>)>q#{%u~w#tX|p&=rFe`hoz2RT$Ki@Yu=-fdI@ozv&&#LJ^H4odhmP*E zQPQ@PBW^v&2Tslp-ZJ~!!_=1g>WYHXmrdI9!_=gj zmd}c*cRxo%j>sN{-~v=7(vSR6Y${jlwx%|GS!c{>)a$I(|5^Sr;|&Erwb|lFd-%Dn zeD2B6gPMv@rWndq8Y;N{()IFQbbmk&DTwO&FHHIX;)hB;z&ZTc1%2h^uF# ze~&a(Wfq_9#m;I$(|j)o&_w(4-S0s^#mxUF-e&+syIhZJ9)I%{L@?j6VQTxoKS=P5 z3Inmr4UBhy*99te( zCl-rO7(67zmh~}^0DPAPg-D`RQ4BuzyK`Qq1-}hRj#C{CmK*r-ARz?I%)}R-f=k_v7gY%ZFYf~5ga&Q9I*8SQ;UKGI zGP?z7BCQi@Y5AO0OvF+H_A?1)Qd zg5?muPnNB>w)h2^xOwP2#h>5SDOpbdVu(Hzba$V{i#>1B^G09%@^QPp$KG-)-0roM z&6RxvWae+v=p%ocHwq-+e`0cNl$2h5)fan#WpKy_eJn&T!6P1sN2A+3sCe86daH;m<<*vRY^@iX8sxPH3e=Ub>6Oge?% z!0u!IpUruhx&20ui@Ue|iUih4NBL-c6Rr18f{9w)0Chp}00z%j_1G$tNHHfTx|Ae@ zc&AN#ITsdOS64IWjrGjb9&YE(jP#N30wUhEO@Bmei<-WbK@TdQn1>R0T=F;aG+FDr z&cZKPLh^WWpcaFU>FXz`kAw}h0eygl@ygZVo!l9der@Q=-fGK&>wn`d*Z&)A11bYo z^aPlOl63o!Kc9%4bML#C4xvqca4wqdJGE%#?FyOPJq|rv7}Grc@ADEbG}ITvd8Xnl zTH5$EfN66B4N#g9RQYXo}Uij#_S6uQ6P-;4y2!(XoD5)nQMoweM zCRMp6Wbc)=%fr<=(@~2$L4krJh7<4>Sd;bx4>cueiE{w)1t$^IPeaniR?0{2N;$@t zi)y86h;RTz8^vCpd)t~#j(YWd^NADM(wBxytQKf7D5RiKxgfHbXkR49%MNzB(*r&be|m!^8OnjsxOW4#CU z#h7CI-t!8VAk={b+A1k;Z#rsxh)e=?13w}ed3lY!>ajfc{Z2tbX2L$1D4RK*w6%dB zTBfr!C{1igWwR`#?bH17)IXhb(K!^LC0^JI>fHHfKI{&AmGvs?{@b(EH0drhH3vn_ z5nXnJjA*$E(qztEc+ms>ba`WTKxYN+4kRzn_N#uJJ(7&nVqE-I*F4w@$^-i+O8UHA zt6iOUnYQ1UwI9t?1oLxn0e7IHEGhJ5=H8TdCr^SII&wr70_kVKVJxw1ANPmfTc*8JwEMu zX}P(&W_ZUb$bfn$gr*=KUSPln2{NACxQ>p1P&t*RqWtWraop7F{_LuKJ=$-H8i~WbHErG{xJjP7wEvrgMM7{rbc)?alX{~e-m_~r$3LMb5Jk>v9 z&6l46iA4mL&hQO;=Q#G(`1w;hMnHqn z2RJlXGz)*Y*q_)Qw)DrUiN!B1SNxe*ZvaK_jv3cW*|W=O=}|0vnOV@eZLOvdgJ~uV zW(*sAw#5wxv1W#6^cJhat$Fbk^>7lNTS(^PD>Blafh76!mvI`|47L(0>CKjRR(1!< z>)ITH>-r-UCbeESw;1_1RV`$U`+QL_{7l`TxL<+#CBY@T&&PZr0%M z;Y-U?)&Knw_-g8(;TUp6{glj>;oj4UrlV7=uXXat!Ag*4vV0J#O7u+w@$BYO1CO(p zUT9Shln>85xYs;Bw-m8?65+v5g;|M`qM;;N5S6MVm02(D1XDa?I z*Ay+iKq-4A(H0v*|Y%Dc5K;-*tp=HpP5%AAkMJkW>* zbOG8i)fA+(q-vZ!3SUYA)PsIPE)A4g;YHZ%BWsxZt`{Sb`+h~18Dv+fK^|{EC5WT% z(;U8D&8O6|E#u#l2W&#h-OrL&%G-ab&IO)7^=oLQf2AL+6UTQj@FNO8`T3fwM*{ik z4;?zM1QAQrgMfGmhnLfCE_FMRzU;vbS^Ygzy|j`cN?D2s=Nl2Wg@LIuRkj6F1qy8c z&?8{R=<7`p9j5`HLOvtCyv1mCk%wa$bzjUr@x--%1~W4Al`!^SFU7SB#vs= zYzezHE3SSb%kqWmUqAm&z8>Y7io{Q=m%sM?H@L(zIF=J&l3@s8gwIy!{xXm}m9ZEc zJx+wpg+JwfAg}XUTEIT=8k@yd2MyMOy47Rl>{Ch&x{0US#ueIh#17Aj(10TgZC5JJ z?QZi?S-XbSg^#BiIz@Yw4^nzPF3L!Uwq=q-GlnjMGZ0)TD*s!dr*jOhHyj=g`ZL=d z@4P-%?KL{LR{~(mN8vzB(JUts>}k-7yD{->2*JkPJ%yjgJmT~}cPv{rdlj=jG!E!z zZ<8vAQjdUakukWaDyTZkqkNbf*FXPl{<$0}@d|>ND)jIkn-O zYX`N`yG-(0!g>-`+QqGRAzPI9QBsV`bzA>^{&Rc7n2xFv*GGPV5QoL&$Tw0+CpE%6 zzJJ-b{-^vme$Rm(mw9~n&CQRM4{9q7>w!th6m1LJm=vIz|G!De_-7N>ZRt_Y-XD59 zD^8{Fzrogj;)+TF46stn;y<&_zuR*sttj&R^)u$@PA#p)tL^3ka{{4>CJ(BmK_S}4 z3;%>Z)=b!W-=?Of2yGNlk-;=Y4L`r&I=MC!>RRuHzqss8Ps9#%#b2g(|-E)tXNIQGj&ECj7 ziw#)w?UV#3)j_AH%3{sNBQJ!F<9z;Xycr2dAUZlF50dGF(O{4b{H~4Gxm0$4*XjS2 zJUYX9^ujm4VLSp-sa!1wIbiIh5ON2^CSQ31=^!rRU7J{tuEZV1m-WfF0^eAM%RC6V zU+M?s#+`n5!>&F+fMC~N-R)@ZIyMwp7g?K7Z&IL4J-AMJJ$p$1=h2?j* zu69N}9!R$XF?+I(2KO&(%M3?Orh3l#F7;{& z%G*0)y!>5eJov&VefKy1#SAuvniEO#C3jIL7pEQ^eNp@9N&h{^pa^KCiw`Ne;`9Y-2wzTUsN;Ys!*=*qd_J%a;zZ_l2& zv9K8U{m-!UT^En;hb%KWruU%&w~R_I+gZR*<~=Wp2VcmAD1~cnxe&26^U;$)9)pEk z3}8dj%ycclyWyaVqqB3s#4a9O*#ehOymrL9INVa2EFaf z-~i4%KdX93U$h+nMs0eMt!Uqqn*jfv9LjV>9u9cZG1%&g6S{oGgfb`udd!dk3`lgVA4(!@o?gFk zs&$IYGXrG%mbn9*9kjM;0y>I+rQP?Mpi}lzOAif3K7JGn9@Te(yLh~XXu9+N^H_!b zd;BX1v(gyCx@rD+WaZcxh{hu7Z}F&Ef5*O`G3hnyJ=eEZys92K0zHY{T^e}jHj?$h zE#%P0U54sbXa4Q}@ap1>sFea%Q_mKn$ zTz!!J``Xtd_7J3rBS2b;ED8$$zf;~X9p_~cV{a_h%fX0H&iq>T0+}S{UVY(e;hL9e zcGc#kGrxX&%xvzJ<};Ait5gu|#qREZhQ4y{E0en2I(%b>+w?fXr4|y1JkyJNO~|oM zNh}nQPtypC=XO!!$^6fIresED-b@cq-#+~$Z*}t_F}v*jN@4KlifLvKaMMD`yva@0 z1IHTl;N9n=x=aROZ}^e8;1@$0u$Vu>XB^Y8X(!h!PF@jP6oDWmK}UxaaFS~RGFaVP~&+z&$wV+0!zJN%gmZHpLc zbAh-?=E7U+jxzS!CQ2e_GSr8lp(-jWT7dT~4uvQ9j?_&6`^p^Gc*;{C`{0KnYi3Li zhR)Ybs9M%P2_2iB@P9IKL}O(;fc*H28dP6{$YtXK)dTo~(m)Y%C)YzjWdYVu)LP?jD41_clhU3=jz zsRe(v&T0- z{{IG%8<2o`yyZUG2Mx;zM9rFtSb~^L_VxN{5Iden+RDER{m)q zULH#S?JN{s5S+rb%;VWnfK?kSPtz6E&VGIT>)27yW}-qNtFWou+o#~57SzJ=UjyW1 z*87>IZO6@3FKxCLG?0A654{zA@jU@ut)#S*xOw?s=Aav(E#yJ6p}hV;cM{4I91eD` z)~2U_sPX7(sOGSD(076D@4PR!Ro|)>72A3gMiYL~nCrmP@!rTc<3KUBDV63NPtRec}iS5Bh$M?<7Gcvd?A zJn&Q~L}-6H2}>naqOtTY_Q2)MMJ8?mCjp@{z5O6I_d&zynmrNUZSO$_w62NJE|u1M zZbd;>0r&En$_F&x(dX?!Ut z$jlG9R!JujQZKJWs=AbgXDRgdp9)s~c`z8FDsnt7;v&%(H?aMGBOnAI5eEc5%+ql; z4t8|WE8*{g3+1^nsH)}KuMZ6vlz56>x#416QHp)k+Dr1Wh0qFe#R>|R^=WpX%L41zh}`6Kbg{_~D{WJ3laXTF})pwbRn_9N{A%<{Fw z{>qjrSofNwwlS|k>w?|5Qdc8r!ho3I<0hr#i~b}^^#k~I%UA7Ysp1<6yrWZ-+{DerO)WdrJ|}JnD{X+-DL@xSHw}$t zAxI~)*fHpsE|)Q2meh(?dy?!nOwavb;|xX4%2p=j-j;x}E}IGjer4~lqJ86f9yzAZ zGb~XdYYOCId^O|&^U2QuhGtU@hud`6GNz!N8t;^$!*ouu9b|&5YJ0tO`#JHZq#%{P7l=f z*=g@PQi6g@rf*kJYDU_)Wt^mmy^V%|ScCV^;JmEdh$;MMT-U=v7)g&D{z6zA`+9%q zPKEo7&FrFv{>op6$ssvlkoFh+KC$=yA6I7r5B2{2|IZ9#C(Ddv$u7oH%1#Vs?Au@@ zRF>RqDI&L0CR#L15!#DJO2b&Plcf-)vV;`ULK{&eiTIz7?)~21YCD#KYmC_43#-2u zX>K&P3L--UM;q%joV_MbImtsCS70={9$Pd?T8>LRE&|#r3|^drJA3w?rizcCifYn7 zP9P~yWQWt)fS*`DpoS6(LkNZW_v6k-&NfU|$8x~sucDJ6XS|Rx@TpD@p4}>ndH02BLyV2jtKwy=CO?3@?)3Zs*^EQo zRFO)8>y5zO578zC!>iIHg)DGbNV-bR_bNr{AKe5M_w|N7UsCg~5*r+)AP4lq`2cMV zw=9?T&CMz`t-b4X) zuZp&dlj|tOM3#DG|A!Zo8aKX0UHPtUkHP=gP#R8gM!N5>Rol%S}BY(ZV72*BwYdpQB{ULhP!ECwG zybhcc%zVhx$z@lzKZ$Yoq*W-vu~4}u#{C&}^{yGCbEe$WMkRw^9%C=sDV*V|8-A*l zb_y)6%sf5`yoz#jd%kpq*OH%WsaJ|k(mgi8`3nxk0I^an!duultI0EqQ-$Y3cQ=;1 zHE>M`!(J}ZT(8)Pbp3PWLgOsQ@>Dd=I7-2anle;b*S<8`pY1nxt0;PyT4b|*^^5GG zO5*u(o`3Tndj4}mSb`hkX7&zuBWF8nI}2w!bEnNNj^_53P99bc)-FySWM@kkDu5-O zfb8H(rP{gBY+W54T%167;o#_K@9Z>$;VNOS%0dqD3N;y+dtxV6*!d96M_P_+j7`t` z^{GpXQMx~NsRs^vRhYzv#S+i1By~1GZxJ*IJ(IrSE{36bQ_Ba{xbVMJ3?hQO{AC|JtMYkL*O7>@mEDH# zrsn(TnRKy7-*!Io=ng5QQCL3=JCA+eRZ#q^+}lfVm+v*+QDLxa`BUy*zYP`wc;wK7 z?i#E!J^z?dN05f?NFE5`GIzv%s*4$%JUtCS=8QqFT)*>|4^-$}({h8nBYL1=u$e-{ z_z_a+<&A4aE9L!5HnfApgh#=NKcFVQh|R8qgC!9n;j{veTVAvBod-N_ z#AN)OTmF4GiJ-|DMHXi_l&1IINPh6X_~a?(4K<1$s&24DjY%T?O-i!BUVb?I2!H_3 zBo?S3U@e$j1H*wuREu=nGTq?PpmJVqa&ew`u+T)TSfhHMZP;{YOND)qXD4r zv(=-Q3Hr}Gx~ImY9vW(f-MqzuBO)B_{L_v~(~~#2CUc#uZ=6a%lfEn1yFrcF_d^k! zdxjc$P%auo_2Qbpm-2>3<~S7znD4WERc$>tBEJ7Rcx*5z)ZO49u&k89=*N2NxL#=c zP^!cZgzRI;(uHI-kUSRTW0TpyDY_LH<~PP`I5SN9IcX9Qchy@O2R)BTH|T1 z1(UV4Q2?|uz%$L){tT_5GifH16VkQ)kt^u1X!yJD zG-=9g9W(h@kQS!c6>zl>thvC+B)3IK`2RYYoDpo#ji@#ERapd3m)IxV2GI{?J`W8V zJz77uK5GZD(bHTbJ5vIO|B;C8S4~~hd^ljey8pKO7j%b4UMeXiY9ECPRy4OH8lb8` z7oJFiOhCx=U}6>EP!AqGF;Ph0+Lz&XU*G?(R(yOb@r`8rci+~C1Y4%$`@lck6(8chJj>3r z_`s6WUv1hNdR=mE2APNOY@Ep2U zqd!$HlL?=PJf3pq(m>M2vlDKrn_0Wkiqf}rzGL}+=t|^ z_A{`sFf;Rst=TwB8buk>u1Xp47Hl2KAHE~z@eRjQ1MPXTg751wRM&W(19{boyiGKO zr)exjz(e#}ex<$ut;z}yGPgIzn#t&h_a%rN$b&`S;Ox(Li#|5r;suY{Y<6E0Y5jCs zHdI1-)-JeO*tlcg4M-1Ojqb|%7ZFznzC_Sg*-$Cnl2ck1u@!Y+!PUgbpZ4Ur2WHol zyV{`&o%pJYu|3O3xyvao2Ug*TiK>YDsXI#?Uox2+tXQYh^chXPT53<<%v7fW zh>abhUj^_e^yl0^ukWwyTWRSPZ~S=w6OM0{2?msVelj}FTw`CpSp`sl&V-BMRS%l3w+Tz|~=d9I@7`r(HF(#9p7y^8Jcr@U+JeG(0rms+Frru?Dy5=Dw3fWwJ%0ayjCsu8d$183E84%@ilwwYjQro# z%JJc!gDXK)%%22l{-E3W(g{sJQdOP4y!7hR`a0K1r%#V1yDN!UIb<*iS?HKLIy`=vALW^46zm{pQTU2L~~`Ia9Qdbffv z#sqXNAkFo2JOL*Q3gu^Jo2s`i!{v$N7oFis)0+6(>OMHlvFG<_=1fLDc5-z8I^Xr1 z=E6A_&DLtz%b(;!#1R)j9mH9ry*OYqanbvG59?!}}x? z*)(RfGDkn#aJJ!0=4j)b^S2R+TZ?n)Jr&z9DkAz%Pp8akJ@0<)@Ye0!M74Kkw4CtD zpfE-!WfOrQrY5Tsgr}A2`(S9gai57JSIq!)FVNsvbz(|q_;csgiQ<%=+2I3cUvP7a z;BH3HZXeaTsU>cNzi@|^$5VUZPWvA6L{nz4 z@I9$0uE?h^St+{1YN??vyw1vONnT6b63Nai<0?rZi#Dwrn?NSe1XyL|<{Ye%)mv<$ znGVR{L-b!x)@6+UsEm(`U2*ERSG~AgGqP>n&h1rso93f0BeDYeMVVW^rH$sN{GUtk zynuy=uJ_;ajIf!jaD5C`A5j2utjfK}w7h3ZKH=nw_Jq{GpKrTe{&8-`;#}#7+Ol@a z!lIa%a+Uy9Rip2fyqK>0ZBg1;_b-R(=@9P;>JkF@iTU}CF?XbkFI2UcNUJ!L ziN^mvFq;yl%F+_ffUZO2joA@+9G!~RkoGt|A5(moUsy_a+Ehq62o)Ya1c4n5saCo# zdq3Lq9>eR+=dsG6tA1mrr|U8b{MyW^`fUH!@aR|DYGXOYv%DCPQawtGq-+!Lka;0^ zFjH}uQH#F`D%C$pwP8F>5^7rKJ3p}Dcp8%VL8jEJfF?F(qa6u@;(#*x5*HnlvG_as zdF*1{U5u=N@h$6JxzDIIrub-=lTU4KP|${$GN6XC$eKW*2rKE7}DgYm0QNMPWQThlrSFL&e>w(-oZNnU$NZ{ zm(1@VAqvdURrx(#7&mwSi8E?M{h%H8M2v{Zwnh(yp=>-&mb(u9yko zP~{h$7feNh>+2PFt1PV9*LJ;d4g+DX@Q1MDDrh_nu8G$PM+rZRzY~gKtIq9?U!Gfn zU~GBi@+&k>Q~9B>Q)d2rr6z*s!95f?|5h=#*GnKNapy_LZ)wypO-R}GOG}0IUm;#G z3gfVbMupr?ulXX=$c`zO>G9KpcTFEE*myeEn1o`Gx)>29&~Cy=hbV z#lQc%{IhLF1K%<6Y-Y#UJ`Fe;l^)C#d+2%+4%6$W1t8m(Oyg3aVhNVcdKEI{31k^AN~P~J~XEGI55 zdboCfwrSPaq+j%pxOK++E{5ZmLUbxRazt)izAyhIZ~vO!qcJlm7N9~ZS3p!ua`oG< zTTkcr=SaxyX-j~{UhQ)>OxOqisHkwX&bQmglJfT3++h5=@rAGXW{>%CMZ%W*#;(-u zvpO1X-Q{Qe0Z7p6R`;GwwDiT;iAri^chW#S(;dQyfk1DAMWlOe4JbJu7yyt=no_d+ z_j3r3jbvbieuUgEzrAx*(=utZ4{ z>z0f0BB#ch11oqG_6weDnGPuR;S#M|QQ2LQO(J5pSTWk%PZUUX17WYW*c!g8+Y~Cd zs2f*WFmKykQzX9S)wb2fJKjSjI;{Rv5!;@$j$ZWZ?K-I(+8+E_^UpaMG@u(;tU$7; zEN~atHsyQ_T20-nZ|htwQvy5U>c6@dKhjxW9b#W_=fT1^!$zbRr$I3<5MXR65Oin6 zdlB%(KhRJeSmT!wBiZ|yj$klMV2PmO#o)vPG5f^j{+9`; zODVNP37$0Tk`xkqTm7fOPFOOzJugY|YMlgPIUHiTiIRmw4W_YK*FXYM?oc=0p4SMX zy&aRZ$w=$TEp7bVSbZJg6fwnjA>M-AVSdt*%2p4$OJIRUxf&q;PZnfQEl*H6IRr}m zPr>1=ky&v77BceNc7(i`ecISH@93O0OiL2>{lT?}`J}R{*or>Qdn3c_t^no{uc&Md z54tYgzb~tZvD&&~7WV!4vb4PdD6eqtq>xb$3aCxW8!LW{z?RMlv#zbFvDe_V0RMvv zc-1}1xVSgG(N#M68EZAF1ufFhF=lr3;f4^doJ{4%@Ag%L5G}WFsHhIsFDjv9QsvG# zs(1)|T{mtJ5nEI|I8pp~?n5Vtw)8YA2Hnc^Y{S-k4|NZ#y8c(_>E7sZ=3{cA-v-MQ z>H1+*U4}PJTUr>3K0w;qLJM{A_f|bFb%u8VSbF|nsf<jz>;KZ~Kn3Cl!dViP(|G zT~18D2j;Ig#BElR)b;M~HP&LVA*Mmxu~b{IIL&4dS+w5V7)~_g_dC6(HPn839D!Y& z)w_w#=-3-0jn^Jz?pFbF%lCzUSSFzEc}RE@ZR`daex;RPzr^X$UTrITz*ZtUc=*`W z*8M(xEZqCS#v6)X?i@)7)cf!iv6EU0lt+M2Tfz-E>8bb={OHPGeIz{C+N8_q5(?Y zQIMmhzQpi}*?>=_1U=(#J*L;aK9M|ph^V5Sg~!4NkXhvxEN}CJ&cCO zjo*Je_u^$k_1MSCO0H3y{SECTk)Z8q82Kc{ayP$C}ovZi3ST zBnL4>-=_OfK-_FU!>c4Pf7T!&`rA;T7-uhLQexuUclXfq?$$8-e*As#cDdtiMRfKl z=&lG|Nq*9VHy&$g1W%A922nk0#|b`EAvD)gvy!Np!wBjAzRh^8eVnn{!W+wd(CVy^ zf%{84MP5Gt{of@--Jso*j>6HObXHkm<>((>tPi$eG|KbHK!IZWfU%;Y2r!AuN?f&X z-``9dY1EQK?#>I`*|`0)OBdz!lPzgk-`wL8b+CU(K0-;Ah`YF`@`1LnLHS-Gcgogv1l;wfkcsQx|v3eJ*hj;NqjtY@6{oT0u>g1FD44R zCPr$UZgf=0By|NVfszYJP7c!Nt=F(TTBHl2eH%-7IQgt@*Rzansd9#Q1pjuEBlf@U zrkd`E-M?m%4tug=8-TpGIJiQkUAEmM?PtuJ@A?0zT{i#|!X?J1Bx+e{xkc)KE(-0l&k{J$;L&LPMsQ7C`{)x7}68qtd8 zqKmQBVY_JXjEw$0+-Gv=52qg189PCgyp_0S(FSmHK^l3>~UCJUS0legTT#O zMak;B%~BIT-PTlsT>?GaHKVzps;wkrKfp%7Dia(RcNHunU}mq_4OLZD!GEDg|01tS zv>R$ra1D$qzwne<;tu=A@Bh1m_1F@Xc*CJTT~y8N1lY%(oIO^<@)Z{0*&;X&L+Sgj z-N$NebG>QQhBM{Xk`8lqBW2^*7ECKQA`&F)=7hZ7@W-bCh*s{VK{LN$=F|cV} zFP>%%@5^|#Lv74_c<;z*&%uMfj_ZnF41Sco;^1K*tROPu5&GyRrUih7V0Qq0#hKp5 zm$FYvvR^SLY=e)mO+hjx`|wz9_xwSR;H|4GUs4=*h`26cuDHi;4XvINkM7c- zozFUPXuTpYAjQFG4C>`h<`-a;_=!+~;h5xw?~@KEK<-yQEK8_W#QOUVB!Pd@vGo9O zaMttDX5~iYiu-0~Vzr^d$^Tufa5-0;AyKD~ZFm#)@%M{a2*^kt|GqsKe}EQxMg{Qe|6MRI;5C~Dj^)2r2KqWOhj4E>Xb4`Ea3s$J{5FgH6_>{%cxkdlM{ zmOTfCRbSX{J@nwqLxK|_OC1h}eZW&sX)oGsvPU2^;awcqS?_J$Z&h4oV+vg?-OUcf zxpbuWY1lE=O+5`Yp2qT>_Pb0c=_43>%M%@Z;^TBe1#9^EK^e~O(m*C5hybh;K~`-T zhd{F=o1Ex|q`bZZqdeP@2$#)$U3EdFiQ5}Aoe=0est9mC`<(2|1eKD z?BnnpmH?RFe-3vUzEic;^|PbnE=7Z9eU4X1#JkkfLhn~d9FzTh+y z6aSvWMnB5;9J!Ggw_f2E#4^!7byF2p6OR`;Q$hrZ7y-v2N>hJl(!4b@*FQOLE>#bIi0rBcCl~FrkZ5rx}|vZOo537#oiznCtvi8o6dO}O&O%5 zWsSDno*XtiIRrQ&m28^aorcz}b_>GeOt5@M>rVFfVEi^#JjKTusE!Rd-t52l_UX+V zvI`g=aHxZ|cDAP)8-K!)!y;%Zd6nFhB=SjX8u-Mpa22fn646gT8>c=^3y3v7U@$5^ z;yHBEGz*cQ=Z-zLcz`;4hHuBHL@$V;DSZ}7@dx<+gENK~pROk=?df)O!+6Q}hhjCgqK^R0-^BhY7AsPrEbV`A> zB|JSB2R=I_mMDodg>hjKI>8a@V44Ucbnk8jBvr5z;YLnkbcE9u1ddVA8&GfvQjRnU z(9O#I{gH-S+y`3*7Ic-jM==C>_Ba_%X0ZD|s`##f7^fhuqMn>TtE}2WP2;;L_MbhZyTu0&y53vutLb8(W zhl6ZyyNf;WLUv+En-HaZ-7uOMuBG3F8|T)teFKu?kH;WQ+l6rmw+9s=^}65@#5Y_F zgH+fMFrs)d96}NnL=dU{H{nSTI+2J)7#ygJ5T+XezZY1_i;z4CO@SXBMRYXEaDam?+j?6cl3cyXjUsg=*&R4f^U3T2)<`4 z+}#b529O*Y1|gA;AElBo2$VG?-GW~Xp&`ku5E2)HI3kN!I?s`lEk!{yGXobF+hgOD zk73uhzEUh5A6PWouVxWFJj{2!$+2{0`pF~6RtW?jx9WS7n&C@-dI4`g6T>wmh;$r3 zehBfeDQ%)30-428j7x0!mj!cv>mxi5o#{yQ2p_ka?h66BJH}0dUWlPnQ(*L@Tt$%l z`ub4#TCMP~6GAY@2&T{|CA>JKx1@@Q1in0lLFl1D&}S!d(56I^F#?GC5BLi3%};70 z2!jRPc>=z7OCo|K2G9^hr~tZ;-N!{9}7t z*4)P-qK{U;^N@r#YdA*dhEG9|-rCs9&@2^jODy7D5h#J=P~om60$;h15V(VzApAAa za3X@Jo51_M<=ya01qM>^B?vNbqrw;YFrS$H7{sk25*j#PSQ0@Lq~TGM`{9|ny0{Rw z2#kSCFc|{9d65`43<2opzo3|Vs~UoE%fS6C;WI)oI9wN8OT$h2u?XUWK{jIL5Srz` zaui7zG4S(R96_w%HLGNSxPCbgyeWChY;#+46YY&Q)+RcJc9hLV`mPiULw$QYlCGhR zjk%t_1?BrelD(6GYv<2moC$YYH4$A{(e&I~wz5vf(}uamj{)-hnE*Y_aE zZ~DBa1U(-^;?QLT)tau768$acZyu=e?Zr%=Km;c-JX(WTTi=E~F6)F2T${?kUl7@; ziG(4dTQOZ&BeCPPv=Iw5Id2#HciufAY}L+Bmn)gEks-@GIKHWM1|7mkaGC+L>Mq# zd`Q!Jq#H4Mjcku=DN-!^9o4385m^6`a&)mzt~9(oB4J4P(HZac2dN4P|ISQsOO4hU zAnKc%cno=*=$cKV%(ZC>!slefRR-4c`Eh;Mu`?RwRq)$TjZ33HxkqjIQm3p7>uEX% zLrURRaKI_t!TK`^f=G@H2S%h19(FQ4ZiKXZwZ=boB0FJ3oesgwN>LPmX8nQP zaY_9=mix7(dus3+I`*}_1U|sq3WH?weYHgQiYA^2p03+yKa_+z3c@4R!X!Y(4c1`k zFL!3ZEuiI&=fTs2l^w?-cM%07c`dBqu&k&XaKT72@P(mOfTcV4Yr%&io)H=_1Fyn_ z+KDR>L4-C4BRTMXVITAa(F-23!XExp`p_NPU(pA8HW2Na0e6_y1?Qlb2cR2~3;lRx zfQjh>C9Nod&U;0o8Yu~ZM}=98=n;_?E`$stBNOp9!mQnL>`05y2mO5>>uG^WWp6Vj z|Nl3B@WOBXgrx$niu4^Kt%}$ibQFn`7fSP!YF}?RB*^Wp!#BjGBDLRkU+0`zR&{0k z$OWS;u3UX21WQuJxN#w+iLkK1m!Mil5D+)56VN~2PS6|WunOf!rl8YE`UJGcj}urV znNkSD%fD0%X?pMgI?9^{;kr`vrG5>{ny)9-|!mF;Sw` zaTTLX1mW9~+3}ShKFr`{$aNUjP0-;~c=(7=L2jf#(g1_x&<7%Du!bQeVWGm%vKL_< zxI&{LbQsg3@J=#1;;FF2kxHrX!OfSTM?QMOd+3}XmA;UMze13KkMKZeu1x`KWKQ8Q znOX1_LT^Tj;nvU-3?|%9!6XKThR-TcN-`N?qmjd{3R=+58CIf@4 z*Yg*)KdOO{%HclPb^M!vpCQTnh zYS2X51r(}vN%U~~Kuc_ZzlG@QwF*spEfr`DQ@%vqqwynEo-HDecWy#el+;% zqOCCK@}*(^gfWmN0{*WWzXpYD*P6m)so<>+8o|bC;>xlo6ptaPdQ^=QqE<*UjQ?#B zqGAYs`~*P^)AZ33FNVMy(ue+Yb1 zyYh#amk2#sgd>b3L-Aiy3~~ig@E3(HhmJ?@RR~itP#MMw%t<6{6MB&g%OezzhW#Ce zslv@z7&E0Vs0m$xL2mFS3*;gKbV2$}WdA)^qjjV7-EMoqspX(X4|i;OcDZ;bwz`tr z3|t{n7XZS?Lux&Cod3MFK07}!>UY>W3>p1m)}P!Z z)^wq2##`CS7I_C59ye7`_Fk$dZiBjsC9Uv?{hX3lYe;!An~RnUg`Nuex?5*sPg;cb zvLd!+cFer`TESoF5RB0I$7#2PARX{uPDVbz9p6{(t!o|i+4_}l3vP#h{_*h3N;=i2 z^+U(&LbgQ?&-Q-t7!ybZdW@VJ&&}?snd{9hP2X3djiR8jrz=0oleM}XSPH46uO8l_ z>l?)BYK&I^6QhIbP}BI9C*p|w>a^mm8+QNm3T~y-&|l>QelmqWI{+lu5j`WROMh{` z?3M#L;CfB}){=q6?OsicKS_&1La4lmkFnA3zMEG}Zww`C!q(n-P2ZxGtAWQRnGAKT$&nDOx>08LNiFYk=F?1f zhud}^oK5z)`)F`IHZWc%lXKr_aP&$9dKc}KjU^D}4f1bM&j%7aljU(z01nP{cDH~x z`VWzwFSnzuE-3Df=^K}CvGH;{_+s{382WUa4){EAB(nURT=RD{v!@Ua&`xBrba>MUAlU=}&gLYF{Mls~LD{D)+o<^B0e@~X%d-~aYl>sEl+NDB< zU=Xzw<$wZJol_1fALUP@S(_^;AUn}Fd-IN|2TT#42Ji3p9d5WaKIDAs`FPeVDYEo| za}P8XM6X{nv-$7xRjodN|E=5vlY}tJVWkg%)0>;TyTBy&b1$1Syl~gv9zxRogKRIT ze7Stk%jc6CX8G{)9z!lafm0j(YwG-B)*mOYDH+)wnPP57@1c`wHRR z!_nh)I*>Xzz+gyG^@Fp9CRL_f?t~8=85p|yvw(lme*J3Eb<|^5X4lpGk*<)%qWjS# zm_O7VW(OZOvjTO7DTQ$3^b)ZQSr6NSw%_NM&kuGSxv2e{Z_&7oopDdFz~X~N9B899& z=#KID*5AV6XfTo$?4X*QEQaja3pDS-zObox)&vU=7yAR~cAHBXLcqvW+nFqNMpC>&n2V_%%AT{}n5~RGgKr9(DwKcsX zfQhQ_v(@(1)zN7E>B(MNQDg&V!g!B_+ei7qgPjL1)2)^V`cZleJPF97>0=V-6kkJ) z07@xQdQd%~bg)kAaQCgaR3FB(&x2u-oGbf%vEdeOX@GrT+V#inDOTM{^Rc~jx6fWt={(Tii%kAx93AUVwn5RlJ7nM^|@3K zH%QN3+r5i2mX%!Ro?`UqcY$>0(Du%{{I&vVgv_%Q*AcRbWqf#N8m%PNK>5YVCfRYt_Du zCN9X3t~~EYhq^alF`1AEJl0w0RRDE{e_}j|ihhwfq)8qX$ z0HvDJd9+HVcbNOJ?jFOOI>ES0L9Zf7ajPd|6p%G*9w7AnN=Gv{yxDXt@Ah!ogWrwy zmotG^Nzfc_ti6w!(9K>QFo2UeUDFo7{aC>22$b9biK$WuvyfIwkjPZbuvDIg_IFhgJZZh(j?L;VqR5i%iH1p2=> z?}EbhQJ{m4lAH!Pz%aDRwZCY{YEq^(8TV5bQqz5KBcL6P zzv`FQ=u+hS-1OAo-QovX^Cl0+PC`!a5Kwv)Z1Fcu-wz6mCZpgzcwjzsTscHn3t4Z) z1<85o^Jwm0cYbQL2ij+xHMDK0(zR%n%nuX@^n)%}7E5c3f62A~aX+NBgOH8~-6W5Z z*TASU7+!bFNOkwz@{-IawczT6~%eLuhf^nrmd2cu!pA7d!lv@Tg)89X#J`VzO>0cpyA`YbD>XFj?Zg{ zGn7a=$qyfHK&WI68^+e7$ri_3aAcIxC^+oM9^NpKrTuhA&Y#q!EO~7|xXl!kzYiwlc zXb8j$yN#|+7A}_d9+r+IS6d5v3l~QV2TL0=$;s5o!OY3rk@8q~ZdFdP(uMaI7I?e1 zh&cf{?jKZ#g7bwp8;|vjOwBn)WqA2Kj9S?mTVzW(HBhpyo} zH`THHK#Vo!N%U?7#wH)^Cq8&e`g_1dFKE5@$c4bd!Pe#K^u~3Zd9D3Z-|NQ_JeGg; z8ULcz14M3dowfJ;Qf9tm45Uh6o#g)+=#GuI@<#I&LB|gv02Eyd9Rd#0u$VBJ}GZ^m>D9r+68s;F3FVWy?p=Ngs$HueNhEkaS z=|?5#sxObAbK|sTLTvQNghr=5@80H`ADJI+a8V&CD$*J19qQCi&$J*;RZLnJQcG*;Q_i+>7?;vC6X#tYW30;&a*Ces} z^~Pg&vLEO4FHr`w_t^zqD%BtB$whfEXHT-*{c|r@b2+SKDqK@{}Gc{xHuz?!>vAj5sBGfDrmj1oq zd8{F?nM~7i+V`kUAdn#V44p(77~~}xYiW z_R6=$duT{QYrys^%p7BD;Ri9&2{(hsk`(Z4?zkOx1fjWv9l4&|! zY-}$-tfVPkmh~A!VVPgRD5~w-5m)nwc4XUVpL(OgbN(UKJ+5l=+lBON9ba8@ny!}$ zgAK=6tr?*Ml~alNX2vK}Qbl~aYGMEKRAXVLd%D-zg}EKbW7Qo73I^9UJo)GKPq2Cg zFA3d_68Y##J{5OeI5RaPl(}p9zie60ZM}Edg0e|n`He#J_vg8($C8AeX^)ftVt`~& z7UPz5FRTSByjfO+=n2?#s|TjA#8O#QZZh>)*=wz2tjo9CFRA5z5mACFzXk-5rp%8) zn&7tQ$OP|HnMSE3*g&#d5LAru_8hCc8`&}b14XO1Mh}}jqV@Ov>hlTzUHc0p_eK4k zNU!3aPPGp=0&kg&et9u^#d8APWFPP$UBsiw_~s8Aw46n*_V;!AMm#y3u>ZO5RX))9 ztXgy6{8k%bfWQ261@spbH-G|oG%z|Rtv@}v@ugu{Vi(cfr*4n)mcr4WzYCDNit@ao zf>f!7e_mI@!z+qe1$B+4U_M8Ru1&|oaLQaft0T$g+h)e6@rc9u!Wh^nZejSO-v4=d z6($#~2BqUOl>Jks!&`FtZo`NodiSyYY2hX8ie%c=YdYulNE(tY@v?@pINMTD5U6JE zjQD#n+h6do!$yOJrd^vL{V?oDz%z<)%LsDL?ssQdzAS0s1Ept5ikP1Gx_fIqox1 z-tp_({LHQwcO&=g)5*5jg@s05ol!G;LwG!`D&^tO!5$P=_>cXo)MMng_GC}*{#Cmi zfO<~x37so0f(A?Bg6W~=ALm|j`EA+`i4s$d0cUxCP)(y6V+FN`@4)_Hh;Y0JT>~Z* zJVsmHpP-lXE7|AScv1e zXnPkxMH<*0)TMDQed0jws5m%xz+5$QRLd@WXs&K9hFj&=B`mY|@n!MD&PQ#+-aA)C zW~QgN+ls*HMHk{w>>OyhdT1!L?(0g~C@9j$4!jN(TA)VD`%zfuDjx%>Sf^ZZ>X6$O zj|(r;<~HXSXgIB`OX#{xY6T-j-PvQIvZe;km7oKWo{8xS&TA!dl&ZTF|m(g0XWlm_miv7=uF^d?VAh&%= z@1%+cLYbCNPNfFjeaovLFBH8IdASoSW|J(A*$~(b<$lmFQ&*P(ylWT|E7*^G#?1Km zBn$(^9gsm$RaJu=i}uaH$a)|D^RhDELHZ5IvXUFf7W#E9$X!=T@cO-V+v4?KGXPog zOfUyHqUndXt3Gw^;z!DD_zfZ{E)A-IzPa2oRZ8nd#7j|BjfR>Xkmva-yqW;Bk<8$^ z%CMmkNR*)6-6hs>ku^Mb&%9W<4Y(vA)1m7#yhd~20 zwbYQlGhr}qQ83e8SZ~7mK-tIq(|Mj;!V7M%v`pCVR;0B;AS>q=qprmS1#6TD^m4@P@J!4%NC5i0YF3_o{5#Nr!gz1k80$qQUE|h0+pB)^ z!S1dM1)Jz`?Xt9hm5N)}13BKgEZs^T4y&6joeI*xn_HeTB<1>vfuCp3-hS@bFdL_* zm|%O_CoPZbO5~oCrw97>vY&nV(j`_W?E=F!Ggx#Kct;zNLZ4io6c=te){`w;UJ*H2 zk?i_F7D0^6^ej%>$Wr;vq973)`4!_5_3ovWU3Ri+zpCK8VRQmB3!apfEO&Zozjwut zrKRe7K373-%uHTUK7@&Sa$K&ORIs6`O>Y1i3@qr(v_`Ii2e(5(j2gQlMuq)jw+cN|>iiqgN{jFWhlKXS_ynCJhiAS!e{rp`=mo50 z>-Vh-9+TE)SSK}Lo16v=$o`G|z&6QbT9vP`O|Ho13cQALRXQEbU#hG$r8)Xuz#p{q z4LJ}}4&}KGG^Rv6iqAhj-O%CmsCfQ}(iU!q^QJ}*7EcD}#MC4OJx=gm`8q<}Bwqw0 zW*=}r;FLbwn=0n3$<7~n9!oJfQ=nBbIY_?Y9l9x;BZFv3s|Fsbe7^f}^8RjhvB9$X z$RL|?(6XY67oH{({koq{I1P%7gM1`6L@#kS*mM-J)DU3V+zS(&pE?vW=W_bEp`q0f zKD;9V@l@gsE^8Gfd@d6=R==!$BHt|=DuHr8Y!C2v!&q6d%*@YpemjpAK)-EWPz{S+ zbXE?!RuGLpL{GUxN*iY+(Qo<-XCDU;LECugf=_85W8^@O`W!ur!Vi$Gnh04yE4+7D zX9a|LtMi~dutEWX`N6|Sr{87%aM_aE6A?s91l9^?R};nB6zfE$@3Rb-q zRoOr}D3B_J`jL==jWpD`ysv%o^!G2JMMVHy^LJRN6oWq+sD@~owHRQR$X1E2Yea%L zVO0G50-!QK&uMruSz;p#Hk11lpX{2Ae{0V8oqiK&FKfzo=Z0n35i-O ze@NW__%<9Jb!m2AHMk8N#xM)L*&G)(j3>(eaux)A$o?iRQpB^}Ho_o|d z+bc);vDWkzSIsW5zknbMJgR>V(&))8FIrw&Sely3=x1Md8$Pt>wq5n}dAqNN?!HL6W7=mo{pJ!|5ly;1FHm0zn9n-r2!TntPV64 zF~iS$%FQENmPcgX-u$^7UWe5azj`BA&qFe5yK=X^iNmH~u@A!sQ#Oh-WqD9CVq!9w z&QQs&uO#eA?QymOYVJgj#b0i$>lBQ1w64!+pC@h^{~+u;FTO}P0Cb?4MkQBh+#~-k z2q+!MFHKd}rG9SfUGuYx=6My>FX}y@G^qEC#uMrUymeR{$`46xh;()liSqgx)Ksl+ zY~1qVKRS?-8u{1(|GE_4a+AW(ZrV9SFMW=+CyZ4p$Ebf>t^4}J&m&&R`Q)G6zCr#{ z4{xvTp4D#lGbh9Q|GhW@I1u9pE1r#(1AZsm1lZjn~Mi~Z+uDBS*GtzSi#AK3`^mp%veJ{aE z;702Uzhxsf*!An3&EpYU#rBc)=j$qeg3L)mxlN5P@sPSxs_bP2z7?7*?2LpaP+ON~ zHq%n!NW9{y@PxWWeLoAJUQzLpZ9{+kG^u=lBu;$((SnoCA6G+@&ws843b-1UFU)J| zS~(cok*z7FwiaYtGaGY?BM>z097&Gm&JJXIl9P>vouz}Lz5Vj~Wx}%Nvi!0tN-4qa zynsEq5y5P9`bV=s!r3vB1!gpwpIrya5Lyq~i`K>*8jk@vqm9PSxp|xZ_?yeaft!Kr z&x8Mk4{jWM*nhOzDw{PCXZpfKH0}@C4aMNtpK{YV)4J`KD<{z_NE1@jSk9`eedO5s z#H{thF4R@OPu27v*PP)OG%vw`?`8Gt<|eVJ3!Q>r170ViK2eC#0AwT!59jT?WClwt zB}_Xxx;D;zWa?ea9%{u{^Y-o1i0lv9;KqcH{2SAoujNk6t=ep<7CmnBml8^LIFYUk zZYQOFA0Q>+<)l5Q%tt(P!)V<>QORLUNt^yFqMp`dOV(!^1yPlgJiadvhR@5;=~4-8Mbl}mdvADxf%ZS&~*>_+vx z=r^{mSN+3NiSvHv|GH^_Hl|39BX_gu`)8P#Q~m&_v~@X+psrG2Qz~i^aCpzFvb)AL zGC4R3IRYBB`Z{~&UZc|1TXM2Lqzq0wyCUh$YnvaGe&Sb%2K-G2z7(oirKUumI;{mPzXUC z9e^~c*-M$9@yUgu4!Y}t*FNw1RpvxA3^Y@5|_4(NNj01}CynDe_I4 z?`s9+xBs(9nk3%L;BYmbpi%)TNM9H&7J`%PR8~IZ|`|g`m(6fPL)tI_eNp(k527yG+27#oNogqXLg06tt5N#MF09 zIM4FFCCTI=7t+Sw&);TQCwZx+Uu#%1V?1(ath!ZuZHmTsu>)9a%!OacW*Cf#(@KGl zRH374BsT}?v2SZweFF^kPhz7ET2CN6Zm1~3F@gA@&$GdFY+T9k8UF;%*f6bHDEZ6w zw0&HsI_Lv%_R#^F*a^!`P`RlidOp5rPh=!WGWR5;Kvm5WuUlUFH)1>rEBcL6GDGH= zTkV&23(8I#c|EwHHiErd*9g=Xw+LA5_AV`f<|R$}3-E&(0joe)#g?>Rt^CHUIrVA`r&&bJQ2`p}KL?Zi%V-<==eQ3<9wN=Pv5wQVSO?3;FL~Hk8O*x^ls?e9y_F z!(F2-LaY@MnG~p-MQzElShIW|yqjJ~#mBB3>4FgaG1}8JScJX#cT=cxo@T5zm@9G2F zGIv}a*GU+wMOuEVRDKaieHJm~8aP-px=o%pKJJC4~#=V|D1K1 zpIYdTAmf?tH&*JA9kO-!q_vY%(V(HpFZ2ViH(~Qaog7heD<{D4k&R*?*u8FPP>Rlz ze(ayH(xbdEkO$Zh(8THJHJWhX!EO1e$EK5*gYK7Si{6D>hgw;10oGab!a8jZ=B@St z-+N}Ep~9joa(N*x@RsJVWX%<|Xk;4Yq*C1c`|TC;IXdBWEFumlaId3bRHx<7iRPD8q!t={wXN%rxv zx8}*`X%amNK>_thG>ZLk z919zDjUE^Iop%=}KN_}8VrbT1Y5&9e)e%o?#_y3Q&K_DnaAluD6HijAEVdW95oK&v z;x`H9dFt7)0+6XCXaI_poQzf~6=C{!PBm2YPafLz!8yHW>kW^^`3;*ABa)=+63ic` zDh%d4nB?tpN`q)|lECY4I5eyhMk(;8P_#H(s{%DzzHlrcTnPT@=D4b+t?z1|w8V}R z-yA$Y|CAeiHX^j2M9()DV%u+76B-0)M(=q=ozNh`3T1pP6a^rLaMb(XUp{VA%23Z| z69Z|N^R7NJd|PgQ&7-4KX+JPi_(}$O^o@02*006vAIwo(XS0A=@uUD9Fp=<9;H&y` z22>vDR%g5D1-j9?_a-FvOEW7ZuglQ{JJ_x{dzR?S`3)WUEn?enP{}5Wyalaf1Hmx( zu|?s`X=<%w^p0epz_|78M(Y|hp!6RU1LOhaAmXk!dLFqQe^%oAysUzuzG&d4sTpHZ zWSBzBUrSJ72Cb1GOmgxjk^di2=K{~v|Nrr`8*^pnDs5~-R4$ulDl^ht zlU%xxxi)i2NV;j}(u~zs=q_@JlBh_!P|;2It5W%Y^!@%%8aXO_jVJR5U&u#15f^e>LD?-6^{jGZ12{5xkS%5UjiR%}^M%{)3slooeXZz2` z*>y5pwpf7X)zNySe^jFW<5I;-^(XZIpc;ipP6?&>iLU^}7R-H6{xtqP^PIEyle13x z$+Q(W7T<1J@=oQ=M;nkvv(mXUdEefuM>a2e^;`a%KoT=5glHt*`g^Jcwn-wAE8|eo z{NwI^&0I`ZxivHJZSK4NDH_)5uofPaJENnE1r`*Qk)iqDPi&=6YYSB5N-w`8KwjJDc|T*Oe>pZ=QO48}{Yxr49F$ zI4&m#&VEkVY|4Li?y90EXxBL_s2BO9JyDe?@}p2d#HWBe@!TXtEEzUCT$2RiZJy`T zTml}<`n_rW9s6r$(`k6B3o6ELcpP#)25*@k9S`*mPL<*dkg5sc(SFPG3qze--wgwQ z-O#%`c?|8sk>Pp+cyQeM3x9}0u8oUVciBZtk5~;<>?jl-@%#27gm!0NW5{S2FLN3; zM|>$@L1?VTb2O$X&~HFjDr8o(hPWDFjXi@LT_}-{;2vE!SarckG@O+<_1?_bJE7zl za#s-Jut!l@R`#LyrzQ6L^vo5N?8cS><=uA26KQoiN{Sxp>gM%&NPdt{UweDT{fv=} zLksy{!rB6)8wQSBups|3wxioVw(*;zq^?jmIrlQvuk8gNowwRkInP^5$7F>UgRTuY zTwwKrkaTz6&G?-g*B7B1JGdwd9&E!E`6vLP9d}7Ktye{6riHAJ7VEa5Idb&MU7Kx* z{J^~ueA~gxz0eaG{ZrE9uUo+`Xd)ae>~#)p1EekV^S zsYoxc4o^E!zce1_wyfp)BM(Xq@rlLqkoogG;_eI@S>^S87`szJC|tVyTaxC^=%L|) zB{PhQ&ztil80QNO`|rQWm0>@e9(xr0PWRT8Udqzby~9JQ55|1U6=b>dT!V~D5N6P{ zX#*tzLP4|ZAzqq5Zm0+jTbyC?L|bRyo3=g_LWt^M06{u1PVOS=pMd#{*0E#BQvNE5G(a=C4a;?gIVp~1p>ZGYd zS6ZWM48k#Rny;G3wnt|>!JhRyKZ9h|R*v?Yq?|qMUum4Y*()=xI&ktF=6zS-!l}q1 z?^o&9^D$6E&EjetF8J4YTqzjB=v%%W|=nQj)2b+Gbym@ zL4jXY&Zl(T;89oe!%F9GIKS=hOMIFfvD46BvFrGd@s^$ppPz4RP)Zn$F21mRM4ayQ z+ESw{q?^Mp( zu&*ZZL34J^!EcPBkki2{FEUNvL~HH&^y1-Cjpk?EoA3uTmYyE83C+kr`a;vnRm5UQ z8JcUPo9*rG`Uea>)Xn=i>gt?6%ja!<>Kvo$*!d8N$Nz+6>XT0rG&I7eeJwj_9hx17 zjfW|gHjOM66CJ3wV2!tmx4R!hJ`D1gbt#t}e$anE^4~agyXSn0qsDFZ%UMlw^NY{@ z_z(IQMW6iMm?nr)pyo6YxH_FZSpmWu}c5!FOZ-Y-ZHvtneZkq z>-UB&@YKB4ke!1~+;?v_Tu~TIy-n+iW_y?+QVV+aeCCoq9cwin{k5!N4|cbZ)qK-> z;#4TUP-dz)p@f85M~tcsj~ zLu&B^N?W_m;U+Em8?^;07FVk_U~(<4D{oiY+;~5nsa(h6WH2m<+`%ZBXz*oIR7|yy zO!1Wx{%lRDqGH231*p)3rh5r_&OMuV+%}_Io*K@-Zg*bew9m>OhnnMDdQV(&n~(Nd z2Z7#^LV>f|b$l}k8z=fbI%D@I<@3Eow{{v#c+&OOs%L1UR)r}&x?Q#Z+5t_gS@R3Y zswsPQ7JERr=t4ePuWa!W8$?)!&Sh-i(irlPtS^93hDLb`7F~!(7vRrunQ+sR``5 zzw2HPiut|{Nlqb-6UiLm^2N0|p@ee2z+5z}rX^!ins5bHNlTREI?s7~&EL45ZsgW;G?E}Nafo-aTTgb0V2~KgBJ_dd0sN24dTJ7oY3Tk&rr*+owxsdNw&Iqh?cp1!o#wl7)f?Szvk?pSYJi$a(jL|^0t-aT1tUfZ2`-vyHfIh6^h|6T4Y=fX4rLLr09Dn60)*Jk0u4@$c^a+M+uImT092sBX)_C^_GEc|< z-n+nB%^&GE@&XOhAO#y1vU-$-5OI9MLN*;UC?|fj{BgrS&&_A#c2N4qo9iM?w_KUm z%-#PfSj)hx@oiL2RV_0p%lyww zcwptIES`aGU`&dona}t$0_9X54|oO{(GQSo&s-|ft1#29mzPhyY~IWZ=b7`n#*ev z#%gv08H0vJb(*~m~9Sw#d0o#&q{qSdliOa?#{3hb6Lr2R$8M9Py zWGLA3jiX5V(U`vWTy4(kn^*q)TDliuB{sk#HAZ(FPmA;jr9^qo&wOWh@1bhdAfZDl4e(7PAfQymC(PmiN*zk3h?|oMlUC*pTl(Ste zmfu^SMx&rKw3~Yu{kUbMot1n5arnSP`u(nni zH9D3%J$|aW*?cO-|0y%gVS#3%Sk5waDw%*|`aKpjx zLDkzouvKrZ^H>hSHhE6iqLh3nKH8c)eaLVv4XyXPmev&bEX~R8OLLhk9)x6e#M%Sb zGb$G9IXm&4oowusaMiRzzfNHkP)&6`mYo@Wz%P`HG?sIQWG3Zxku2TZoT}kYZB;q3 zob&RoSRfM0LHdRq&ZQzmx)mK(>fRv4DJI6RjcwnvapNz)taHSqllIqj!h8EE=}imI zuWZ->Gnn89dyOTY4#;_!(7h5}{YfW|+ns^r zczZ_$bG*GV`F3IdU+!H_??-kN2tx9~Ulab3sXXMQQ%tovwQ-b}?#5?OF;r`v%S zmQzk}ZTX-wEyk_??(+2_rz5FLuq=Pm$UNZR-$(kJ%g_C(=s>FD(gaA$!V4HFjOk2LI77T9Js%bGZm zLl^KkTseo&l&F;ls`+(X5VPb_p%u*LTsCz`nP2iOj?#ZUCG_f)!tw>f?Hzd!UXE@v zpN@`Q_w-Wu+oYm#ugA~Fp5C}3KU1~7KdwL;_b&FN*8M1_obsNVA0SQ> z@$2KBAif^EIU|{#8WAPxJq^44cunfUpf#iK6O(pVZb-OmLZmhN$>HV87Q;Q%>undg z+SH#vlhU|r{pzich3e--r3s4LBgx2iX4ZHO{f?Z-QH6_O(@`6TKVH#&*Yygf61jRy z3x@ey>^0c~8?f|p(!CLpb$=fFNuqj7slk-$7a>&nO(g?aOn@zas{>aekm27huEk}e zgN#wOBYOVMHK0Dm6C#ocYbOb`H-v6WnvW$-v)BOF$;y|D84Y}?WQcP(Fn^_(eX}Xz zW|OZE_O3v|RzQVmX#XJvE@&^Zq+|UsB)P$`i?m)yH7g#{{n3HIERf-;VaDGw2s3T_ zk_V7M16k_`)xTl$o@!o>vG$s$pcLM7ezQgGo26=b+5KZ*7p<#}a|ywRdt3{OJoD@o z?n*PzEaBztklAoQx%Ju}`*theY)`tnk?h0m#Ox`hti({Fd$_~d{EF!w&VrGPYaTtE zxiT_gp@>#$f^w6NDHg5Xjk(Bz90)F?r(s7nI=YN4*Gwlvn-rQdkPs9%e?UPKg3i5n znSUr#6`9LUnHcW@<9*O|ll%71b=!#LHfQj59e9l_mPS4!`b~^nk~g~GTj26LO%iO3 zjVi;!z@+Xlhbblw%jxb^swntn9)pgF#!#T{$p~SCQc#J-?=6Aa`F;*O4V53(?*h)B zh3`aOPw3p=|Ke)tE?lsEX786bA`|h+4ZBbG{#rVA!*TJB@Gs42r`cJbF}cf1S`bg5 zbKFRM;rhrgI|_7&*dT3~b{AyEa@KQr8}F69I(>T8m&yEcMYt_Sl5!#yNB;p|Gstmm;aaa+oxB(ZBne)xp)0t>DayN)2%WO z(=EYYYLSo{v`ELO8HV90r*9|*t|y52YduL;%Te?I^B?sh&`I;VDh?ewl-Grq@waa!JC=MRyc5@`Vl(Mgz`p z+cGb&O+7Q***gqHbJv>Z>$Bpld+TNRHU&mOvU3K<;`ird)mCGQ=+7$6faa(*7y6%@ z-9Hd~W9^#T`X#Sh=}R)yvDiU8Rs(gzdhpTP(aHPHU$u_aRcU!<#(R=-$|=i?y6NfU zEgeR`6Apj$*p#rnhfpFX9!AIZ-?td9-+DOk@k4HQ>8;ayavba#7k5b3#s5AzIkMS! z?A*uTBV6I4$Jk{j_48vwp6pNAy3Hx$66_mRH9IsT6PX&)PQv5NJlnn_AhYNwdVY_H zZ|454bOhWt?fVTQ<|aXe2u?C4%mf#vX^cX{aSh!}Y8UUSr)^1reK}g$`(rkNq6$28 z-W@VoQ&ePRS41;x3e2T5a|E@akXX0DU|3nerDA;<_K@-i+lwyxiRP#2C*)a1Pgg1J zI&N4z`Z!TbLH|fmHtW-?-$C6`39I*%Cv73&U@~qa8ol32+kOB~iLpQn7uVW#ew)3y zp>hAjgNM(9>p~w74Ggv~9skAJSlIMz)h*BYL;2762Rf&+Th=bH_ZgM^aOe)zSdKY# z*Wmab##54;W%S}b>C5MDIH0A}xj5t5@c}As&2eVP3E_r~8J2df)yKzX?~^6_yYyhs zy>=N+om-o4ra=F3U1PJ|L)d?3AR3rpCHUm}sc3diQwnPJ`cFtD{wo*JI$4R`;n=X%@j zj#dtA2wG{NZt&J+ab^1V^>Mi5>>tXA9)*iuCjN<`tyiJb?Qtb}+K*rdSo05g0iRD8 zvQch8t2tjlyYD}_cG>pQ(`7rY!|$(NF<5>|rR*zsdpw2Z|D0NZ&cw#1TL_6|Mjhw` zwjoiugdTF-)WJIa{-24dlA_2O)4ZLfA7F`#oaN4=r}~Ao*3Uh8HwX75DL8!kz32G; z(&%1WS+j#$aKjLt>I<^Z3``z~@zG?EWu{5MbCgQwK$6 z5~PcJZa|79VS}F4QR%6fM>vq#WFEn09TSO7TT+>oq`Y8CLL@Z%e!$KmY1& z`&Xr&i@n~hPYwB)_5-}sj}|SS=QeFVbN^%FuN|1H>+atwTEb%k0Y1pC=hG^Kr#L~ESaJlgkF2*y2KJF1Q<8ExNKXQaz(%od z{>uR-O1jH^+rC!vyMSRc$6=S8*C$kJOm$9P4zFzp+^^Wj2?9Lm@-xhGfKHv1N-4-g zbJ}ZtHVTm5adY7_!$SV)u@hz^tnHN-U#xhrlA5qipOt_3vndN#kgyG4CTFTQ=)uO@ z{`|9@0ASLD!fS&35A*+KuSV(obv&e)u0Oy0{Pjn@jCZ9ya~6nuN>D-WlHIc8Gj&8g zwUBS@w-IX?bL+xOp*gS>4yzSzeq&T3VSz}Z2BIKSAmrNPsX!S-88oA~U%PzIr}StH5;|1W&{l{d0PJA<8b( zitLKC1Xj71vbAB+_V{QiS|Ex7S=0*{7RqKKM!Tr}i|OqfRlh%{HVX5b0qmMw_< z4%`~xYb_fqfqKkwEv8#syR=xM(&({%WAS2dR9pM6ALKJ?9$Bv1==A$z5$icBoOsAsg|H4E@$dQZt}~8^ zze@jZyrDu?poMTy%!;9A$#I2*VHS+qL=^gsT6d)rR(dpV-BG(bow5hAUkm6A3)CMt zsm-yWK~VEQ`(L0vSC?{jTH+bxA$)D>#_EitCD;ePt9U84y2wrwQle9JbpHV}6rc{#$ckblo(qo;MV0aK^fwhiwf3N)oD5?Rrh!3&SStkdpfAyHN> zb*;hmE-ukIyr>VRJ*T^5a=SK%rV9c-qQ8So)=8k7(+A`9=2I!#>y|qHwI2UjS+1Gr~WyU$^OteG&^Mj??xySM{R7TfnG0DQhB`f$C9Dr$F0Gh;oJOK_tE6B ztG^JIe|$R%l=VvXeB7%WK_4&va<<^Y{0ai_uPQJpRC+Y{V91qSn&HFs3`*=SuLc2M z{8}yl<#kaxQU68$=gD<1Q?4jdmaZZA{I<^B?(yHnVzdqDt`m?%0D1$F$sL=oPqj3G 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 literal 0 HcmV?d00001 diff --git a/Template/Output/Assets/Fonts/arial/1_19tmLBmVPfbohCvb7HgJFg.png b/Template/Output/Assets/Fonts/arial/1_19tmLBmVPfbohCvb7HgJFg.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ded23a2d2b170688e5a394556402fab2c4393b GIT binary patch literal 21425 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 literal 0 HcmV?d00001 diff --git a/Template/Output/Assets/Fonts/arial/Arial-Font.jpg b/Template/Output/Assets/Fonts/arial/Arial-Font.jpg new file mode 100644 index 0000000000000000000000000000000000000000..677489ca65d1fb5d883ac82446e0dc3e31a3aafe GIT binary patch literal 257824 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 z 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

Hlnq4tfhIgx+ zGYC%3kZU(W)#iRYiCl8Jw$^{hT=X@=w0u`^Mu+$I=s7aiD}T-E4=HfcWvom+J_Y8` z;+s^Pl<=M_T94oUb{^F{)n8XOwbK(;)IT8-=7^j}DpHal@i~`z@bC2uc8m|nyCu=1 z`N(wGxeisNN9cZ?ONm<)tKUI_1i0^ofH@K!HxX8y6A}~>P*z!9610vste?#Y=YGta zSlvTKqB~*7BPV9~ZZBM=LOaj^1y-&3mN*Eq3lNJ43_A45)gJ*3d&P3j>>U2=ulXu6 z5*qe+hx>GhMw}(@FxgEZaqCL1*DVPpPAX?H9!u4UM+mkPii2}K25b5X-MQZ%7Z|!p zFXmqifeu(oYvXeUL}gZ9JP*`B=!nMpLHWJ}%4EJw8hQ&G;mG zsiPft1I7JiQmCf3;dYv_5%T%nsGsmcd-GR4G8T^O7O~5#4rM~O5U>)tH_x3np($VT z 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 z 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 z zS)e;f3=z;Q;MJTdp(*;-^8swK$`42Ow4^rX3U$@r{%yv#)h7vh4DGiy2W`6$PL|)) zezMDzfBl8)BP8STj?yaq=c83IT1_dqXU-OcQu->(NGQ;@DJhfHJDD#_I_6lkW@A~G zSiP`LsMo08LztclD#5-cOxz>2+JaDyOLSUEJnRt@P70VFwa174i8`fbHf6r zbwskZ#2r6cw8+H1R&Tec_$>SXdR-&c_w={r_aQqm-TB9~Y~gTUt|ks1o+im6dw1!T zyiJ~xJbqmG_fISxuzNsOTBZt$UR2CvO>m5;O&XleuMIE?aZH|x_uFTex zaxe_7WuFZjz25_x5@NVokb{VA5Bv}QEIpe#9cCV>)8(0 z2*~nEs&l(dvbA~EaFUG`w5sKr*E>H*UT z*0q%VYM2l=_od;KH-6Vl)5Bo9l{7U;qiWnV&j)6&c*odaaAornS!AtnD$V^D4s`XP zFf7eFm!`^WO?decf-TShkBg?9u*vgAV@fncy!`0+l-S`{&5lK?#;RvtZ~y}b_7mss z4ud4f@+;B+40b-zEiKHs`_JuT2%`Xl`=p0IvP7K?q+H~)Kuz7lj|8PO-h&2|?ouA# zUu7p7eOuIUU;7S{*#CLBWHU~a&`AsCmDplDD_!P(g`Sd{X42lFW;!p9?})$>$ALZa zpOljW+s8;Y|2Q=M0o%O*96j|u5v1{q?(lBfaK|_x+!J*FNq#@sr$%o}nyWECgiCu) zT^wk{z7eRbsKgWR!?_^6z5J`&`KP*&kCp#pWL<7^MQFo3+1PAj2+kShNsOV61@V5R z)02AX;ie>7CpVo9A3LzcH`-_86&q3iU?&Znvf#r9hD!ALmHxpWNGh*}p{AtZ{fD zuY3j{_^r=;h$JQZ+xBc5{G;eTL1C2AhZi81yy)tno5kkaKCUBgES^>Hkr7 zmThfyU9=AFP$;wkf;GXVxOtKp?>>TA)zegFC^YNTCp13ls}d{5g5g zFF5DJ{)n_s%4_%bKX=Pg`CC@ciyI+K#AIEY231WzNYM6aOYC>m-Fk*vvud!{! z!~#K>GJXGT3~3$P3BO>qNgVleFfBvKWdWg;n)ENL#P-P11j@+Z+shIm-o@21x<+T3 z=EU|`nW{P-H`3|hdOJ_1J)8y%=*$_$;*b<@iW6P7oQ661lMTH=5qi#ER*>mHw&Rh8 zCp#r9|L;bT@g!ss!SycWjy#w+We1&AWQguzdBqp(EvfH4M4g@xAk*2yOcRRNi)oW8 z0bW}}`N!A#yrS|CIHyHlF|;E%dVG*rQ#)^r;EINdid$T^<_%kSoj%vUCj1xPG|g6- zPNFvtkKPKvrM_6XpCJI>k|*m)Q-+tk=7<3k2(I7fg@$|X6sK6fBNC0_PJjD_1t;in zY9$+l*3Tm)$nrkWxN~uS<2Y)~8R-y{3&8bB8rF|FdWLRVehCpo8oAcCLSGMoU8-rd zTV6y06Bg!o(qdj}P1g)p#iZRR^kOQ2B={?(nVd-b;~4VmCGte*O}ey`vX0# zu%H(__C|@OYBWBP6A6g-#e1veOMF)rS!s;&Vk78CEP@&jb->cK!PA!*O)bf>yPjG7 z`}~N97nCU{gAtan)9z1?e)r+`T$=aVr(OGE^@q3AaoO^onTVeL3_xv!t|?v%L=gv|tqb>Cc6u-J07 z$IPP-y zrxM+Qi>_~-Z+;7UW@l0Y+zh@MK_WdnY&EZ=4AI3g82AUO^)kBy7gE+KwSVE77% zD&fG$^CZbM&FV>h+83^GF!bpf$Nr(=MO9*zA|l*+N$5DM5U;owbcEOUXdNl!5LINs zf5e%5mx^Z&i(316exf>Pn{<2udh)e7PeT0B&q3$2knjj~1WV}9F7g#D2VWe5FEheJ zcp*I#L~n1r_|`1hJJ>#wQ`nmpqUwbv#alr)YrkFF|Lla&w^xn6Uv!N&`N){pWNRj9 zvzw@xEGWJXn)7`9M6JozNT-OUUR?S?NS;!|V@J7I_{)nl9OmkKSbjfKVObvAEF$@^u9AC-bQa$*UOp8c4IKbO0B4 z#F!c8nqnlEwv#}bsS;B=JrUWQFZHi@u0q98iqYqYjnByy0(!B_WdXoBj#ur;fhVY? z?`<9MGaDzH_)vAqclz9v*I4q@kCQJ_zd10iFp0`dbt<}b*~PK!R1WQuMCG_2-4Hij zDcg}T4Fj=S65uKpyPU({X|0x~k)x_UF>$~xaJOvcW+cZ5_)T%UyL)8o%4di4AF?~d z8>&jWgv&$SB6bY$muUj+CvhWND5eeVbP8FT8};(GoGtgQ5r7VU!0&CA{{V}7+Y+P^ z#H3`B2;x%zl@_Fopp5oq#fWPGGIV&)UZ*;i_O-32J{5kL&un&_nH|qTU7aC}khWJZ z4d*~sZvtQxHYoQ6&Iva=;@R7^XXcP056<5)Wc}hBS|=giv;E){_Y`=OE0AzMAx|k8 zq^nF5;Fhu@|JdUhF=c9F`VhCORZZzB-ErR@=iQUE}p{c||b>3HkMr-En{JO5&ny(Rl1%vpelZAox&E z!(&%S?Ocs%ENyCK2q%B21bZcXro5_`J~}_VFA_MD_E}ES>{DTaYl5oUZyD;mHFdk= z%-g_3Hnfi94+YRZ^Pbn;=uj6C5V)_$&6zT0kmQ=!a(p)`n^pEx*)kB_u5bH&DwC|| zOrEmytC@L_(UY+AowhjYjnWC;4G&Bn}F5R>xLLA zUjs&rq9VBzCIBj(MWnq$-T~xFqQ^7uxVDi7a`A*vTJ5lb3c;M)1e;FvQz2x4>rK>+ zMr6cDiH4nOK+xAL;~fHVU3qFOlNr&kz9vckI{1!Ne$GfME22`QlQ#BKhIX9;AC16{ zc81J3KCpcqJXq?(NmeAT|Lud64vtmQgM{g(T48MN>q_bdE;tT9EiD)VRgoE_`~3P} z#uJpemY+SGpn%?_&tRJ$vU6A@ z1EZD370N|ELKLltwSCl5mW$Nl`{Q^ru5|j(_)P!CNJ%3wUOYp02EG-2)4?ubE`N4* zCjOQD@3L`Uh3nwGMN{cnq~x;2cbL{4eCdnd%}1-bT65A{-7>Eyec$I@J(%GH;rS22 z4gPuhg37ANY|mr`OWL-xJyNgjSxDsA9WYW22+xOD1B3U<;SC)o`J~@JWKpKd>h}){!hvnbQ_u~{yxd5Z&A=diACjXllULcB@pxTU} zU<%{|RnjUy5OTSVd8f_L;XQHQ_U(oXNUm73f+K;Y08aSV6F){c#zazkbWRd>95Q#U zk6w6iU`3ECOGc;zO5EG;JJ&>)qk*JhVVq-}W=^bL$ZX}g@n0|hJPBCiC=M4Z3 zVVd;sOY>%3T@_UWINU0ipA(!=glo?-UJ73^Ijm0C!D-}#(vV2$4U9oI7hsGy{WRCX zv6LDdmqO3l(;On!Vq9IXKhnYC+8EKtBrS#~U->^F&4(k@Ip-+IS_n3q=W}ReQ@>o# zlMm()H{U7l8Ck*)_E}({C^3NkqQb7BYw#bDEx`D20XD;9Px)qB_F}gHn9MR@@19(& znitoyHY77pR$uA$UrF0!fW+mXh67&X!YD#e&BfgtX>9#eFqwS1u@;mP?Q^Zi5@q_# z3}GkgxAUK$BdRdFV?qmd{T0ls-Bpta96zYxcl?`-%YZ61_1$J z3*=8LA}prm;R5k8H&GU!w|R?&8@J{8urN*3K=iTLmo+T;7!2q;jr&gzeL6 zM8yDq>9=|+=t>6P>fnjeKTkJTB|p^`2jhmn>m)Osy`UBO64F|9M;fsR3p!?ReVyWT z@YWyi=_FYP(#9@)l|#eOMP?5BOi)i~#A8 z*RyFMvXV&iEm{ei$>4Cm7fPmkm9lJ z(2B-_5hgw?WUSDOUO8 zcBDU;CJTS_#546LP)-&04jMP3kB-?sYXrJyTYVhQvwz#&@zumTEQeC{=jm96<4;>V z|60b)NJt$5;pkE9(bO~Dn;F~Y5xZiH)0q|XB6Zap2R;y56m6Aesx4r&i;CAhtc7d4 zYs-BqHC+-~4HDSNLU8K#zJlK8Nd^4if!sloz$zYotqjy}@~qi*2!WBFDEalU*_50- zN9?p5oe@D=1P|!gFF|&-i20e0YVRZKpCFpj%@83MABR1{_$*=#K~(=vX525}QlLE& zIn2cG8ts!pYD9Qu{=TuUy6`G-j3}Np#+~P`Au55n7dMYz9v5hf$2%_vyGpE!yBh-8 zIuzi5Fiwg}z&=YNUvrus-H&(ch?8L7{{UTa^84+pISa8DJBEf|bMP~GhC9r1#(wSVkeb?O6*3`Ux|KVaRO)0 z`rxh9ZbWU160XetWF!yU2M6)&w3(MV#VDd=ZPUC3qLmd6e4^${)7M6#=|5_Quu@QM z#7NRe1k3*eRB+$~m1DhxdO_Dr0aenPnt9g4kOYP0fS@sn#k8dGIM^K>10avVHqMwK^?*g>|$2_K6*a%Sq4 zPj(8CYpLN(dQfL6r)@V;7hkxY2~gVRTJ=3t;ba7KyVqpuXfr1w)c&`*hC544oE!Ky z-DYT;+6EFS<4oV~hk$+HZTAPS$1eBZb^YGU3oIb2KFT(>j1!I9ce8QI`ewKS;6bHD z0Zs+rvU)HmXTED7Tzovwtqn5@V^c_V^@(n!rTtqhs-(u_)$ilZnlJ+TZ1FF|ju%OE zUpHiG7uDJxsNR4pC$zV#D37}>CJdN(Lu3=U)v~hp+9XNVGKu|ouPe+;4>iK$UpXe| zV3kncVnWRrzE5jOp?5JtV-7t2hA%ig!|_^PJ6&0v8|t&RpPiW)@BjPXcze?E)s|x~ zfSgcfn6?0anJ2&-nSOOhTpvj?Y^vQRG&v1R)_xga|97!H)%qybZ&kNaV(tAa!tK3@%Gu2FkNe_bMGMUr?>A&n8 zX|n7LQUu}%)khT$=%HcGwGGB`zm)A(X^re(VZPfhKi(hgwA~mnIl?wy(s@XY=H71s zr7dxWUJXjRy#567gsbY44T~pEF}+0C;|2^D5YKSco8RA=tI8Vu2Qd5q_ky-!CE>IR z!{KMD-C`$9yFCYD7jo;)z9=wa6=r_Sat*=I6E#)1XpLOWdbiO+?Q)}$Kt4KSt3>r6 zue#raJkxw{uydD5Q+jZ!=uKE1mzd#p>Yz*4oE)54KzQTVa9geE8=keWPxNmD2^h|= z^@nYmtm~EY`G+b{ERvH;5-NMTS(yFHWJw;4zh(1*cA0`BJO+b< zB5@$iV0E)f@=D|wEl)pG>Azx*D~i-{PdRknVxt>k*)Pj#r`fK zfFI-l9C}aT9w;J|7V_Pnr+O-VyLmZj;ZUB&b;E$g-i~A~pm04|Q112;vT7bMKJA_@ zK{2xXogrRco%DXdZCQ$PD7dNUP4hqUwZ+qeO2gMKPN9RiX?@9W(-5Vrpn8O|AxPiw zAEP-LT|bGcr&e!59C1O+&!~iCawCZ$j0pu&dq*8^8}o0lJ1|+2A~hkIUc!*}j}gIl zZ$g?C{q#>ZJZ6yw5mVxadS-2n_1tc{J$#B>?mD~xxP&P!7YW!PC3jY?#9mF+0-mWr{6XAPzKA$(r`_>M*C^YvZ zAi*vegbrl9_uDLPtrczH7DV0nyp|8^T?`tw)ISYx9Og}TGV%%H=F?0R#XN=F0c`)M zNqOlj3`JzjTrt1P$#6NyrG=~~WZicUbURx#o3(9_NT-!$`LPu#;hwiBA}kQ(&68)^ z=;(PGgBWMhl?+(-KhnxF4K(sUVUHMvSfuqF2o_jw{U{&|pCFg+ZBy0TGs1DQ`Aw;< z@#3uV2$bk97tkgBv}YIq5-Sx)eGVq#L8#G_5f9-_~ zhN^g^5(BEKQA`ruK}l%_UAjVRGIejFvX5Xk7J~M)gjMP0elik2)>B5~#~)CtRf$RY zIgDF?q$%oir!LwUZsl_RD0yH1zd&0ib4m;qhqtYtT6@?19QOlo2UoAKhi+?Wn;4*Q#6LAdO`1m-T- zo~iBJV4Sz@yf2cmxz=CK`8{x8gSmOD=aX2W-o;Op!+vPiGiB_NcDSL^aW8K5p`l|2 z2D;1eNLg@_jA!R7hnn|X%Bg*K8LkK8q^q`ASL7(~@PFovzY7S9S3K{mpN_Hl)c$ZA z$0wiYoKV^cKMmj2cXjpk8ioCab_DxZD86iV=Bj9x<4>-f4Co@z%)1Mdnl+WcD;g#a za7 z3e%K<=Tnu=LaQRV&G}a`yCqeXvhUg)9Id~=8Uo?z|AN`vmH71Cg>e8rDGj)_W{bWz;!>3}ZE*eM2T@-&cIt%+j(fFN6X?ouRc^f7 zGNLuKl#$cxxp&?>VQw>_c^%cYyF;qYK;cfHD0z#a(bdzNWZB1VE_Fk_jf)rzHzHB_bEeD;x5kVxEI5{53DITm6}urK`G6Hb~%&W@vqQJS=ak ziN0#LO}nXQf&T~b2=#Y1=50}OASn)P=&d}BEtg!Z$=2O(-1Mmx@acim{05VY;IP6U zA;j)c%KoA5n@#F>b@vOa# z(OY%6DCFTO49Ty@~$FJ=HZc_mCcHSO};lI$SG#3o{tk<~+ymzT*vS>$_YM zp1o9^!&CX}orsVQtu8uTt@nsvJK)ASb-b)l z{lbCEq0ml%=S{*mfhybU6f?Yjx%nYa331x}*>qVz;FIh92tWdP@-jLYEiPVDCZZKG z@Lcp3B*~aqy!zhxul@OU8>gKcpx0hdLebXF*0PLg3Es_@p4KWj>@7<4AMjnwtd-4t?;?0h zd-3VDnBl@RI~zIH0bUXiBRwfWx18yn&<0}g4ilhbv=lYlAr(d*LpGr1^ut{071_8Y zw{#>w?j^nY=^}7_e!g@g?74oX$b7C%&<+(r{*#mdNOS;BUdvD+CQy~%JD=WBjx1DT zQ|sx`l6_41dz5H+VAbTppI6x7r?ex?jGZoQZrr+cpSD{tF4wq~MR$8g3s+VED+P!t z6U6A*KWBvU`9o)(U5r+8!arPm0e{!;>GMqVB_y{Zfsb$z1<5`Svsi!gW8>u0M9qFc z+kDAG(^Y)e(={c~v&1xC0|g*YVv|u$UPrb>R0R|NtB9+@_VJhG8WL9MXbCXLR~*;> z#~CnDFJdB+9&Tcsw|*f*u=D=J<5|+ygXkmjK!#nXYi7@pwGAWnU<({E*Z9DjtStL3 z>qZ+a?6QU<&AUkglpTBeCqU=9*i!}WkK239H?HIOs=@W&yR!mnF+xsF%I+JwNxCGXk_&F!22EL45_Rv6hblDWuxA&Yd zb(MZ$SUDEDH#B85>S*Bd;PqxA}gK##&$r0s=IDw_A{q@hCD*{f$84cRMJvn$nc zGYg`y@ju0+M-IBv7YDIgk~BAlw&zU#;wWe_j?N7qpJ?PbExFpEJZ>{m!e;baKby_4 zr@~OT#bjYBhrb~&B&4oMJ^F*qLfP$HI_wpw903@l)NFY1!w#|)%lhi+CDU8Ymi{C` z!RZFjv&EhCdn`+pn(-j)NGdZsxbc>s2fvUd22!F@qdi&_0ibaqAu5r;)8g$wBeq{hK&S5EYpg(unuN#F#!HaQXEvCpWsp%cn zYpv@Xa#0%3JRUn$6fM{Cn%##j);(g1|^>#Ql)@#%7vsZP* z6fD~ZYFu>dD%(hzfdKL(R3vJd~DeK@)1`_W*ReEqJWr!kt88b zLOR%639OXc?q8E0KouMrxLLgn7AD!LTOPn$Ne9)k|B?LVShR*9qxS&s5-_jlY(_GN z*g-vbMz)Wa>*{j{1RmdaC$eevaY+j_FRWIAE%=$_2i$S~I6EC>3JIXm1u5w#@=YW4rcg_E9by#daAyh`avB3DHE%wPHEuseKdQg(k&U{7y8qT^z>mS;tk-KVJjb*Px6?!rX*jF&-89#u`P+ z_`KDkD;7UT2zqBuNnpa>%CNHqZ=$;FZ<55t^_KnC^`X=1BRlMk|VT=Fs^!6_TdrV+_@XW&F*mnRp79hAp0qcZt`q zZ0kiCv#p~EurVZ6+*deQJ9X|p~LwoC(!rrNfnL?6g0pMNvn>U`?TY7`EjY`Mu{z>0C zt9G^mM)|!17&|+|FjA_hQU{{;99s?%VpF88=OSy4P}%z!Ah06kzKXcfvj$Ggl+^%c zj3FpdVS%d|%9Pjh{Zi<5T9$b9#UfUQlO2)BrJKmh`!|O?{pGbFe8|gMQ}lJraY<=3 zNUFQRmMl0A? zm#cE33oIYxN<JvVf>VKTMKo*{dv+@YkdnOS!GB5Ne~eTlmYt+ z`QF!MMzP_(Odfco+ABsAr#K^uKTW%&cIh5N!xA&D%-h%~eaxM#JzFZg6FZPF-B-Bs z5o-(JiC5jEE*WlB2=+kS)25&z$64QKIo`A$mMG@xpW>6@ zS1Rf@3LuTPce5PCm0;bTBj zh=q1R1`8E)Ao)vt(F43fkJ$`BsrHLV={c4rv9&UK_u zKPf5jCt}L=C$9b4NP>_GIwz+_8bBm|?`S3`>m;28_TUZ3csCY{%Jb=&`qzrnT0!`^ zPmBr@r*xBHMMg`D3xdYe0=IDW8Xpw*UUkEFkq39$naVaorjw_whCsXJVusST3)xhx zHz5{a=i{W%X#!a@e1l1aDcaGk{9rxTGbN@>TEr8|@sQUsb9ysudM}2n=m!chEh8cV zjF~#T^ZYgJxk0u{0wmYJdEWl$Q3;?RZ30V6RYt|XOj}8TazT;U**Is8#LHm6?+JzbJFP)Ktj(Fyym>}I-Oh6;A}AC>h)?d zh61Xh?oCWs!)~JN)Kit+u)_L5)f@Stn(Dys+8ik(CLh902lR!(PF&t<9_H9Va+!yE zO0GX;vB<{~Sj26v=^Q^RWsDgv1-Rk9RJabYkK`FEmKJTUe-|Ve)-aLy?Xv=8x?YqZ zv;7MS!9P@U$W<5+Gf-`?{2t#AcmghK#fYxF}fq5zmkMi zGM3fP92ll{>30hfNMBMcp?$3;j*rg`H7nfO-GX|}C&wBr+jq3Oy2mr97`-cOk zgoJLd4~im!4$E8OpqI5L^3+?6=qMh_uW3DV&IY|t?JP%7~)U` zP=t-pd)QB<@0iT)Fd}oqY#=`Q0uY2*COV0^$B#F0*#Q$K7J{2y=i?@5TG<;qY|m3s zZ`DpL$*9H@6l8~0hfbLgDD8VW3QmSN-F;YUNRyVXXm{f6uDN62z~bA0DlJdYo89D@ zj$+}WiEwRdA(74<%^o1GwIGxGhLm%1sb7Ci++Q?`R)9qs-mtS2^OPXhwI9&G_hdTp zS(*|f?YX)%lVTx9M&N4&B+e~`Iv^={sMOUlBOxx{mEv#S?$R7xrCkJqS&2;|o%YuxSP-b1^4h5Pcvo7DO#Ua*d62!O^G{A~~Ppk(-3&mASk zvB#VfE%$-)uXq*V27=PPC0mY9UY#R}_bFd*)2AT=)(rfL5yx+aWRPefHry_YmA422 z_uxD=+>1$xo&o~M7pDNSezTIn@;Lj*RzmNwGytPixPiIiG)Jtls01kNlA+-MQ1MgE zx%s)7o2|x=;@GMc_W%{_^$a6M6TXSaejv$gcB$XpUJw?XN#M&7Zw^(E1b|{#2k$#w zXrZP*y}?_9Xom4Ovv7SlFrB3VN&LAw9WA}aH-Q?OBudnS05r%WZ}T_NKkQ>?0 zQvP0{$9svEOM+XZ;<0MO$RrouMDNb}A}T;q15bqn?A1KgAZ)u!171-_OU2E#P79Op zRTHb5AmB>6qCY~0i0Q%EcQj)mfa+z2dwZTE?4Kqzo-6yrd1w(%zBV$FbMc*UyTP^r z=A&)2*mdZ1tA%#({a0PHOfMe(Po+8tTCE?l6vKauuA>8V1yz{m40&Geed7IVPy$o+ zp(ktavd1Ow;e5BI9zE~DX*8y~7R1#HC8mVs{sy~igS^QA*t@Tso(d0-+6fNWYD&rW ziHU&}>L(6Fx1vV=aNtNvh)wJm!lUGl)fzTy7| zFk-~6gOH759Zd+M;&?&hRd@5|xT|({7kcM52xek{eU+2o@1^A+$J&MwkZVO_hVt^_ z$xvnim8>PXc=6{Yd*!q(bd{-2QXL=(VvCt|`ay|$dmxuTh`+R)@wN*!JmbL<^d=gy zT5uPL`AO%Zv@@B+(60iTJ_?|vZ22qL$`1RPK$>I27Rl9=kpXHq^5z$)T^q&vnRhr; z_JKsqt%1#Zk=A`#wo9=nr0#_Yk z@EU@6N?n$nBDdT})VE(NZvr4G$$^u~7~W9rK6=cLE_7Ba-S@SiL%0Mj$+9OGhoybe zxWR{nH1wL2t#nMPbW$}(eX~=s>Q-Xcp25v;tjX}a(keA4S{FmRl{TUCz9L@4_czm# zK1q|2^saQPtHSSEleqIay|Hk*nc}@P$m+gIwOIX5a5yj4&<(et$2;EIok50^N;rE`{I@<%^#3L5VoL7p^OvE z?4erx8HqhMq@U9Dh@@iPI%kD_4 zS*!u0IeX36B@iPU6ixM585(QewU^M$xi1p`vB^u<_@$YNH1vb*oiZj0KIY{X~X+D=kk=k0yi_7G-gCi2(@K+D<%nV)9bS@#uTywGE=Z4Ut?L4 zTAxqsYGTW|jYfs#ZE}~r|6Mhh>d{1-dQ80Lt@JxzGI@x>(@Wo-*~O`i>u9n^)e@CT zISXFP2ERYE2#(d=rkgOtv_1A0;3U*kW3z3AlemdYp|8T z828k~FAjqBU7jrr^R(-%$IPA=;0ACKi~@af>jhBl1xsqZQsJ2;2;-f1Gh9a&9at+3 z4_m0y3F9WihL#n2t~fbSeZg+mdRSBU6U?SYkP z1d(-demHvZ*J_m93z{pCgiIH~(S$2!WAzQ5C#`P#a)nr0f0Z197z;|Y8v?4Qck2By z;Xxr@7rh|=f~pPqa+N&9_2iGM|VH$V}r zmd8y$kG3^Qmdku2u3DnBH+*`h_aZca0OXt{tiu-S? zGI9)fQ!YOv;GOM$<2Cmam!!?p)}y_HN^MwgABxP$(ug#o97TN;C-8>0VoYtx$O&N# znX9fo9z90$a!MRirQeE#R2|YQwevhZ39_u!5zDtI6vo2l>g?O&S(Fp~&4@^;$?;JH z18h|nxQ<5}mE*l*Z=OQ)6$7unzwXm$Hh6^4x|O;x+30a*b1d3CEN9ZkZH>kx3taA| z&8WRtHuBU%zEPc`2Hg2IHA__&WN)(H$j3#nreYqsICIn=6%l%|#g!s~X7lGC;YL95 zo?)EQ5}7Jn&Yh2GX~!@6O$J~JgI+b|kixC4TKtJLQOlVu=NBsF0ElYboSoqtWH zMjpn(7onc`J<&jaA}u8g12(x!CfdV6mxfNU85ru0KZza)ZIRn}Lqbp5IFXLZc^$6T z=zoG)P&6>ub`x5f9LzMI+o5IMI_>Y{&#Illb7g=BpC-=5gd}>=?dwhp8KaSSLNwON z&8&@~1I$QbSuw}*Y)CE*z->0=*J(7e(kNLNR;dz-GxyoH9H~`-2sr(r+b)2*{Z&Pw z+HvNGcDj9+i~JF&2=gG$dWQ&LCgn<5&TFZ8e=7Iat-@K1$@R>z(4)Y#Jo!|mS))Y0 zB(q)gMFIyd-0V2+Pf!5`O*5n4vZo5Yxi&is7%waSThthn)%&LPsYQzSzl1rPrk*aN z0)<{-nB87J5iI8gQOafQMPFrfstu(I&zuLMo1FAh!nnK!S}4 zO);SDrd+<)PPmvr=uGPUsdj?>bSTqlzf#AUXc44dBP7Cqwn!V87>C1+U0$gf=|)Tp zZQWXueRi$L6!%E##x|u1-)PLF!y!oiS(Y`)xL(=nBvv20(u%G~E~2flAisb9{ho1_ zZcJ%9P|A~BP~eZ(OaXClNp+`D6O!Ri**aYg&6A#V$ht+&8Ann0021+U{1UEBTF&?e$z60YaN%M>__@ocrF z(>xCI-HqF`M|>iz9HH}CGb#uvQG`JcJC-K^5+EYm?%}riXBU3u^u3{_F%2)rqIJaA z@cgOMaEfzsDNa`KML|V_hEhFZ=IFQS5^71LpLW~$C#S#bGv)*kG?;Qu&rNtC7IIFf zCcUVV{vm@{0^ol5E1vgcisrqV%`A^wVPivfNT6HVw+Ja#QuWVuY3xBf<$?q2G}a-r zp(;LJUf-79so41O&a@4u=Xs=#PNd-td(rdQA<~w6(^P@>Kw`F8X>DhWS~ntRhF@F8 zzi0zyj2!ak=kI|Mfvcrv7R}AcmSV>xgAac@!c`Z1-*Stp*VOe1Tr%fz3+bPcsBAol zN{#7?d~Knf*nURh#ZWm)F#gK#7ee-J5LjY|=M&*_E5kvzx2I6?V=Pu27 ze-8E#A|F@V_T2(t%>uTef?|wbgI?i8XTI-+>fxKK^oNdHxf}ZJvEN|PIruE8e%q&# z)>VN;x?M9D-P~GnB%Qi{(hzFDEBV(GM!*17C0sZ@(TzT+MVM-_r0lx*5w_5S%Lec7cHNl2&c z(vl0Rsn*aXS8&Bf7yhOOz4Lhzg(dNpac0q)-f1I(_}=34)O+La^WYXJNrhZf;{@>w zt66KY(GMF@99R;E^3{_?Z_k?Y<3t>fPDDtgLVgrE6~<{c&Tue;nDLTU^=6|+Hd~mM zq^`bwU0*F|d-k;?!VR;3I@}rj>NN~8W7tTSNLElRBg}I$t6sCkAt?f0Vy#kj<;ZYFqh+{TvQH=X@c`@&%5Q zxIBN-@3Ca|<}9oud96`Y@-t^ZoOz=zzPPLj2nH9*vBX(OxQiH&1N`ZJei`;mE13Sv z9WR4%|Mz%w)vk35FZkv7c2a6-D0(@?K-%cEsCN}IZ9i+#U%THN5KDHE4jA$ar;h$O z3mT;{(cj_$Bmpf|0iegM%?Z(Cyu5iof$_0sM|T{rmTEC_puY^hLeEX}uelF=@(RfSDi%S5mrRgkkIlKOdFzv+jM^CAV3@~zKpM<=J2)dfh zmrs{vvS}e-$GFHz{l3~_ zQhzMg>z?mU^N3%7zq{8w?H5jL({ldlHl%6JTyyY4+oB4dVI0+%T^!_Hd?%TjA&yYuIEOi(A#eDwIO0_)##yJthSaMxuASRLd zU+QVF!{)|4xA9q_V4WT#eh*E-XbwJgQnyXLkM2iiN z_wSyAFejK`8flS}JWYT`RL%uvx@i!nLkV55Vj01`U`zu|e;~E7SSc02tl=^d7{TQS z&228^{61a%NINlqdlYZGdkE#6-}hxLvT<%fmN*kJt91Dh1Uqm`Mn)sdc?dpy0JcNr z7N%}^%C#wg5@1K!et(a+8fPXT^~m-}vi%;?38W(Q_x>>lcJ|T;ohnAq-7-vjI8#wo z-Z_+60r86MD+ALmYb!)b-YqP^B6?poa`OIDyVDAvxT**C^LT9j=@_sF)Q_Z~z7r^N zQDQQ%5kIqPyBjgsuGt|2#+P4&vCw+R>0u2a;lu=h=g3LkvaQ#lW_#4t0}tut6E-daK9v3kuy-r)96|~_ zP3dI_qhP$iLi0Qm82GXqI=LJR9D~hyLGz(f)1n)cOErz5>vcHpGTPe6t`?7L*5edU z@{^^ED~Bw!cmz;c@iwX@w*|A_(q4VjzGiLyd=Rn4-feGx8;BH$K^0B_LPHq(mKCeU z(8PHKdp|Eqm4M`<*AG{ot#?(kmxtF23;*O!HLCc~dXTjy_P3p8>eRSBi59Fria&-J!?pe%o`e^rCd)+zpjj@bvtt zg?aZq)zGWwEE!h?51GH@k<(kin_`P=*7StlnD9BK1|lQtH)}v;dTJ~*>A^H&w6eU1 ze@T5f2pqGo*h{zeGJ{SKsk$_-IxQzZ zRojhs)K*TGveOU#epj+A7gS(~4f_zWp4P_uV>!b482{QnU^KSa9x{fI$~!Gqt|kpGErs#(ml<<1v; zNmGn^Ag9j8ZnN2MfT{*x#KL9t*6u+h9$pucD0fL$Doqzqi zrwZuvhe`kIZruC3;NU8H;5F^@zGr<1FyZ!s7$ipBR^qsi2tI{cie^S#>BWm`*sW3E9? zTByR}9c%tk)EyU#&tP-P=9ua;Y7lAe3AY##+&p0~Y7h`=g8%7<$^Ptn5|gSU8%6eP z%L-ca^T%2@9PvGLxjoI3n>uM()7o8dtH5l`+UeHp=Q}Va(JflXv2A4`m;K1@PJBuL zC*bSW&x37HQieZ4xTmv=$2H_6o|(Axs^lRnTwb5xEWrfH-@4ZX2-Obq!Al^4oV$If z|G}a*EPZt~VZOjTb1|Vk)-YG}tIFj0XzQ18on`kWgK6S4NP;D%eswwA!Th1_AJ;ET z_aZ8Pn-CRvXQ?U>-$7A|YlvYA7?Ea!E+-jv&Wh42Ca@1Y=$Fgt4L3upA1EL+TEBdN#V4q~;aw})6Gpxh|^X3LO)LOOw?_Su751mNAqo=~C-7B79kSZz@Ogm(E zT94x;{*irh&yZrE-AGxMtPhk}hy_|pXJl4D>5%_nkXwM4$5jxOaNLGlan!ByM4Ko^ zI+Q`E{jcI=h2)V)Z6l0@_UqN>hirSe@(9Id*`oYag&^kn3*HOUH`pU(t3UL}rY{4(k&E*2l*ac?$D|wfX$o(zq(#`!bB0;bbvKaeGHQ0n8kOf=8%# zGTlG@r`i!%9DkMgkmF86FO@Rr1?#y4kqey2Gv&2q^lDQXU%$V-)p#e{D~ygA&+|0& zMn5TtTn9+nJ{dFQqKTFG#novQWNgs~x*#{;;0sn`wt89zv``Uvb z14sx04h=E_((TZtbScu^Al=;pf-rQqbPU~%baxItgdhzf{d>;;8$2)O-CSp%z0TTe zue@(@t~fn#zu^sZ@tdzyk@nK^(|kZ}Q3j>uWX3TyZ*;btSV!jm9t5M&rQRe^6#WJO z?I&$-^|4E**zw!`u+|VyAAxo>XcBT{Qy(wD_UvJr$CNNB;Uuo-;2_hV?`j|eP(bIi zM|cO`QCB0uQ5r{l&xEiwPJMI}8H{h4rCycuwTE*mB(7}=_7FL!`we0~d*va`{J4SFjx#2cx{y|F_5h<%n~8tAg5xvUB( z9YeclvFX!%PHlN3wgx~3HbdLJ8Fd-!pZZ|ED0U`$iu>)8!@ZXO7}qg&Xv)A;CzgRM z3^MBS&k7y&qChKzmo`+$5p7_0<8KjU2hP`QmFiWRx=UO61Yj(NJp4HV5?aABR!07( z*VT_nD@w?~|1H5Rwl(d|%sF|if6wMOlS@D@bFou;aO0y29)#FrxLKx;akuu4{pcVI z^Ef_~qqHQ!9Eilb4}R!of|`p1iM4ych;GK~h|Efs->W~3&?S-b)D3V|jesx$3D#jd zbMF8dCQKp79d1Smmi6CPQaD8aMAM|<-*y=^xI#OxAlUJ8k*0sevL}E}Vg?cDnIya3 z%Wr-qU-LeVcbv{{rY#K{oL!tV(TS`EUSCjaH8+0oy5KPls?t#|M)LTpevmk>EusHYz_lc<4d{7g*7RdM{5th9 zecJRn)nud)bv_JWQhC{#s?|$h&fLh4>qz`}zlk?q<{Ie<)v^~gGjXpmsfvf8ZW0M^ z7T0tv9|+&eWuab+H5eXk){OOzYq{O5#iDg9wmvn~0E2HB!qfQ+Chs-GB$npLw1KWp!D{1deXGu2C*X^>d9nMn^$D1mLs^Ue2&*;3q@dx5^nHxYmiKRZ~49fghTD$9HnE~aoo*YZ)auU_cCfh)--w(if#|XVK++zD!H1ovo zKlxATrT&J)x%~Pd{w8s36+N>ME~t;v%*d2jAMG}%=-||cZ)Roix|D6(OFOQq9w(o5 z>6-XORCGlnA{2e^P_qq}T6~jw{;mfQ2*&uCE!HC2xy!X_Qx-ZFwclr~IWF)i5$4vB zL`8(yW|Anzd=>fGgV|$R5f9Zbo{H{ixEu`fC*G^O`&gVN<=L5hWVUg;g5g?E!|2bV z7ciA;S#Z#Rlp14O{Px(1c4$i?3`sMhRf#Eg8W)4`F9)1fWRKz3S2E{5*Va5Nm?}3} zk~nd3qs+l;0M6$B#C~nnAS8F%W!)7Bls9WT5JhzuZ{C2g=zJ~s{rQFnCQ?ct5_m0aD}`iD$?IO(MV{rV+D%xM5SgV6WN^ z+Wm=XfdOR@TQ~o{imV20Znrln19~EQ;PP`|qe1hi_MZrj#P*f5ZX+6SwR1Hmosfym zP+O+cQD2YBZb_nqB49XN!%z6Xevp~I4)}u+H_+mCDcop|a;`+XtrjFSw9^4LN5yMn zMc+Ix_O)v{Mx~)8RtnnNH`E>Le6Kzd+zXV2h~p-ol~g?tv3yXYK3(a$R?~>WE9>Ny z{&a{2&FToRCPq6iNM>_@rdpEU?$t8#Fv zQUiPt1uJi_@QFu+n7KyedktI91;{GlvKeEbga8Bpw!67gQW#z&-`gfmaO?^GxJEg~ z%~L1PYZMYiRah-C;BxYc-QohtN~*qsjQcd?Cf*(Ih;}Fk>49GOPycwr=GdAKQhDI( zIx6PLu1+~hfQ8{-m3TB06w`&ig$Y2vKklh+rM^^8d_Ot> zhH_q4)h<3^)8|F(!~q79V_Etgw*ePHl(8(zHW{K8w@5bOIsPH%OcsH?PZZFr<3EDn z;j%PFF=0NSL_mY|x!ZxFLUV*CRq@sq_lhZmw}|S8vZHWkw$Z(Nr_$}di9Uh)MM z(NM3q>L4Q_*Td(2xni5~f^u1U{_{X5UG|QB*IC-f%rE~FJbdaOdw`9~vcCIHqp&rp zc8pq%%2&|M^a6#8{b=e6FVm9n-CYpiF^XhZ57T1Qe+p%3!>KF?nIa;nq10T~5Id8z z!<^6>d0GglP4w{+5;n#EvKbYXkhvf0J^erbIp*xRZpVLtrZ)Zrd~!3vjtNH3#snyD z7y?Ckzvnb~eH|Lpu11@LOsusG9w;Ucn9NGoj8YCmoIAByl?fnE9W2M#U7K+$tke5X zR*;BJ9%TG9=E|=ynh0KAOa2+Yw$R#UO2q%J}=9YKBg6_tq=?v0X_?7^LGW4 zMLAylI!D6RHVlb!Z&t{B;JRdqQ}*j)Jv6fFJ=IkoK} z{%6Gl=ikuDR-a?xY>3?j3b0sPp>C#W|KqSt-MwMBDEDYPEs1pO)tG0uVpQ`e70S zm2^DgduHyd$p;3j16>QXV>P~yiyoFjJ4Uwl9)L6HE){P2K9^S|q#_`=&`XtjfaE@~Ru29h5s#+kf zecyY*zV}!mW-cZm3xFy)UIAp^y1)T`BP?3?F5$ZNF=?Iq)=}8GSK|R`eYF!_zJ9qMD33S+C12Y+^T{*i4r>muDTd|0eH>v;2+|N zhJH!ZB$m?dP)lIA{!vO_L)e9o5}xQUGu{Lc>>67APvLrhf}sCfLuB>B*9L27LK9s~ z9u8y|9KzL6)?zje%Nj~$>OtofGGg+en=aQM6fAzL+<_a+ozgt;rPBOJUc7&)ulFHK zsFQ#Dq0c&pfN)MUobx|WLfvEH2Ka4EwCV6q)Dt#Y{*cOpdCF1#lp|n&W&%ZdY^(r4 zh!~Gl0cu^9P#fq>08Z=z&}8^FlR_^*}5kPr5hz6PH3 z({81!A?2uOvn<@RDWjWwFer&Noz9Hct zQ$gfgFwUH_?AU0_WZJ0ZO)X1~|u1-giwL4}2*{Kg%;qsd>KB3@!kY z%!V28aZw$a3A~jb`4ZgM^wwELk8sGK{@^&DZ5LT{p}>;E(=~zyzS!;@015yfZUWrJ zwt$DPK^>E-;Mrm=jQn^`KNd!%OhQ$~XE^oOb@pT=dWk@f zewZp>@3{fn${yJwb_U!?Z8AN6o!l`tXtT^PAs=#&2SK6U6FQcAZU2!!Z+Lht2MKE% zou-}nH_@j6J1{Y6gFNyybu%Hz7`6)ced#nw23{$WW#BBgODPt%ADkt*eiHz=Ls|oi z|8rHizXiIWw3@hsW>WvB2G~Ga7XTMitg`hSc_YS+2lDl>!4R`CZ?@)djZ4zs5x}VQ z0}Teq`yDL|41b6u+85HZ8?zN6oCPCEuBCtz(=J58_+Z|2l-{NcqULS-+#7{{>D;}4 ziQvEq=pjA!wezCtPdS#j=UqQIA2V%E9_`0=9_@K6t`~hX3<9V{20CA!B{!hh6s7X4 zJytRs;hjeCRbkbgDsIwS67QW(&#ONM=Vz#EnW+Z>43BJf(+UGw^b9QpDN}oC7%GiZ zMSmpMoz|kWb^1S$sY6)6^DEr|{N<-vnmYE##<4eAr^42@2}6$_o%^3>UQN;l&60Tk zxu%}tvqW0nOFvD%zL1qomN_qMt$X$!uNho!1Wb3K!Hz#q%VmR0{uzCRM?2{A{2@?siR@E zd?9c{wwZ(eAXqbXimlfuRx&;-W;qEOF5+$F z2y?wuAs~R$8L`mdqwQJ-Xz#r;n zj}Bg{c+W1)4I`s&|2rtJ(rBP9?K`9x8>*LDA@3ryy{0U%ZOyD2YNCqCVvzYg!*sj7C`0t)^)`)Lafn^Vm zuXgf@h$5hlH$&zwKhPvv`3t@Rv$WO;<_}I`QZ_#+=FXi}P|vX@!dE_`2XKG+$Fj?h z0w%rh(7ym1_Bwc?pGD~Qb^-QeLf_$~{wPPp=PeDiry4@_@KdZ!(oGkg_cUipB9zT* z_mU52ih)4>>06d8xDyQ;l$mMSK`ZL~T0(yri#|XYMf_qrQcD&|sw`p8Whkx%P?lWT zAf&AjK+08R`DEM1D_DW(CY_%vZeEr$Smcki;SD2uta?&_mBaEqE>Ogv7gPg;hh*E1 zkg{KGVY^XpKAC%NYw5VTkMKhidw3P2KxA*Y!g%fbnG@vjiUI5Nk!2hp?=lQ@??U6? zO+9+>Is?EVHdf?#hMq|0iS9&%Mla470D@Y-TZmd#Q7kpfIa2=|Q5j)ce8VC$>j0fU z(V&Rn&{yRD{fx_+o*uuDBto?o3Fot4QleN6 z02yalAUAeT`S~C!iu!r_#>dxFl{F;_*N)2MLeJ!VFP}-Ml3Yj(h*!|O@LV*A+}`MQ zx4~WMqqBG|w%k);Dfdzcmd(KQT`?8ocsJ3KFPCcMLHrhF&1w-^Ft9MNV|#VmYKe>~ zw9>j+pxC<~sw{nEKoxbA#j<95}s+h!8p}36?sa+u@%$n|# zUU++kM1Af~zd)A!9ddio!T8G~n|_{GS2qY6L-|UOAd?_1pZ&aQ{4((Hwf#F;f~w;N zQzkmiOtby!;zz`5YrCTvSB>Kvw<_W@_mK1V-4T@j^i5B*b@2?IdBL9Ma~R+7YD(GB zkMV|&qy@Lz9tq?ZUMav)Uw+(+dcnfDQRC?J6a&hXm$BIQ^|XRZi^sJrrp(}zMbQo= zulL7jjNjWOP~&31yhSs-{4B3Mt16d`!}bNAZ}u3WHOabi z9%*Dt&#j}=xHZLI9Ox1!h2k~ip1=gApTL1!E-c{1)A*f#bfIt*o9m;b)uphGDwm}B z=)*D;bBNY4@S)EV?o}1}Z{sZA_qC;8g`w{1n(Wi3`tV27+MM(c7^Ewh;4v9`lEWw8 z<9jF%ZhYTg z_hAfp8Zq>F4Pt<|qzbyRw<`TMl3y9j+?_CQlQrKEQB{Q--Q--fk<87H?|ge!(03fPcj7KV9b$D~j|Fs+CUo*MsW+A6U2l!^8Er3g{UE z(-3qL{|8z!_z(0S=)*_D#01f+`!+K&di2@!MmR5-$ z-^F(-d+<(I5#~M7pTYxlviOC4Ixq3j)RIK!;dT%dA4UnEA7>6%d zyyAvZZP_sc+CmN%MdyY&%S6S?+r{pS8H@Kd=1Jb*F2!2zGCL0Bn_1^Gi{ENhuY#qJ zBIl8yaz|1UyI(T5jd1Zlv*}hUZ->_|rF$g6^lo}#0`7H8ipSlICAQ}P0;q1qZZc&O z$1q#+Di6H<67B>{b1;sbKV4d;(Nhko?TICW9-h-_ZKH{KEynA*dre9Yq0>@hdXm_G zvF1#AgoU_#WMTZSTLtYZ=-PGT^AEZGl%OVu;|DgkAK?bi-@9QIp`Ou4Gm zLWdujHxl*+U;#N`3dy8fap75Lz1IG%2anwl{X!tK*V`}VY809`uS>xz2}c?8I~LLE zPVm>F52gni>}<=m$4MIK5PC)$d7>GqH)R9&?(r(V0m7;n{Eap3uk0QLr(PBzLlziX|^0Npa*LIU8db+45ModGd|>kUm?(G?b>vAanYhROR3kxn#UEc z!>5i4FAzt6qd#k7E(H&~g5K|o#dzymK3@ z%u}9Inc8)|Bcpy4D54M$H5wy}p`X3gj0D=)Aihc^J-9W7Qbu`=-mQVY}Zub`+J_9%~vfhH*hQTRW*nBmQQ;;&*_0Y>YxN=j{Upx`=M1~ z!a5csQiG7QDz2F>D>jqvhQ`7o#GLa{^wT)KL>s}xrl*P5Aqetk++b0ZyRp2%b=ZN` z*qlL|e4N^N63w}XIL2`!8sssGKKzRLSbzNcTH?#zMabW>rWF3pfMj!NSN)@$w$EsE z(kG6b>&+8Ri=fLVyoD8g%dwWu#mb5W&PWE?+9NNv3t~N*3j+Dy^)l_@U&1__G9WwJ z@~b-i`~#XJEpf=QSXo0hS^8kCZcwqCm!mK{pDr8QcsbDa)bQ0=qUcv?PWy*lv!35# z?mU08nJYt3KE#nWh|h-$o^*6j{+A^6-*ysOy+%l(b^}90qi`j&n?EQsa>a2QOPk`u z7xZDt$0vAmv(?bukdIC7T0rj=h4>^%uij1a-L2`5&+VNpvHS+doz?|eo8LR;L7`qmSEC_RJbRmhPdzX@AX-|5(sgLu@+RcEuwnkhG)3a9 zGl64yDkFkV`=AuEU75bfaa}6juB$5kjuUOn>jc}v|JxLp-tt~*-P5?T z$x4SI!?liCk?r_x_O61f^yW_HXd`$#Ja@k1LWK38RwIY>n2CahbyVR)XVmFC11p;`@m5dF8!le1-HxjH7`@DX^c>&ELu^cFIs`@V6 z;|CFI`a_+q`G%K8;v1G1CYOTIBfVbK?f5)1Wg7=6@v9&45QwZy2HKNp-RBlAv$!s? zU!!O!8l(uuZOofIv}Wy{25auM#K2An*@e-2K?U+Mn#&NTK& ziv3Ib^A0tG;E$bYvtP}86)L{ebEhfhbUvb_Vbwpn=$ z7o-)y5AyJOWVd98!13N(jG|FY=w&}7@97JE;C{_(Js%X3oe&I$_$=(f4{7$oJ}Otp z$FyZy!up*W$2|}*-7uf#9<*;4^@Wqdmpub=7;x;rmB=20*I^?Bbx7o`V>Rusno5Yr z@I!z+=r?aq;rA7}0w8^z zR`P%@*tKRji9>VsvDUn-(YGeDCmMsNzXLam{RckQ+z++T!?PB{cH&)GaLFKj6(sk? z%0|D^3yF^S8Mb)&GI`=&nRj4}a@?%^B4uo0lhUdIeUZ~B$E7vBvS7uU+GFs28_ZE= zroBlgcw&17a=h6P%qjZeTi{EVK%Wc0yG8Xa4shL#{Ql=y-j_OZ)C#obxK3Gp*TPTI zfkJ?Rb6?cNgN&Iw%G(aB2H>x$h$X#UjL2>8)ODXTFdIpemo~#|wnT5Dx=g>|AhJ<< zEN7O4YWY^nnedNhn&ICZ#~kQ0_AU{j)RbzmFmeP-8FxfD(I&@F<5mKNbblzB2m#$B z97k98&(TQv>gCpd#}=P*u7DY1VcWI!U8Eadb$WF>eyy=^-S)i^#zon`ros~bhftyM z3|qg|=p9a$)eOi;L&tI?e)f%DH@f@ew5)U2` z#E0EYfvc^&zX)n%T#puhlfu;I4oRZi%=wIu_7^jM?qs%K#~m5QwKPbpUlmyCe+Gbo zHVOQRo5?EeC+)&X8B4w{)PBQOV@UNL#L2bDHf}MxMb>Uwwp5=0u>UT%K!OSH=T8Kn zAdxT6RCGWo3R7F@0_$XSaDXXs-PXvCjM2qd)l@X_eDYay%nBajLBy|MX{Dh($Dvvw zhf5#wFjIR)iL!!-+`;i#7Wjms*;S!N-B^Z8Kb2BPPDG88sU-QS#^gsGXBF z#gO0TDJyX5jtmK%DB^ly1f(|D@&e7lP!E zkH1Cm9h(8@v6@+1O*SvSzONJDlRUKsW$(R~Hb3(wyNpwId_QFylS$1mcMFp*C+M`- zr{d%xzmlJ9MGf*^d9_fqSC3`4d^$eWS+NYPzk#m)QwSjEij)6E2RST+a~Jq|U6)-G zt=Q_v%S7#yQEC*Wmc>0pRh0Rk9GO|dh|w0T#w$d+1g}dLoN7K{#Iwf99OXOAR$2p< zy`K|R`vUgL&rp6AOB=aOT$6jl=%lK?C<-DVA|`d|8Kj>nOnGGY+=*A==5_a+fpy~) zGd_=a+e|0z{gMgYL%uQn`hYCy{Y#4H5=SCm10aV_G}E7q7YbTC?xi441C;;6jkK z_0!wz`6SbtrkWZEd`&{eWGx7lEwtBgQg1Wv^Dm~v>$7hBbU!&v6Kbq}ec9`B5v*ld z#G~zPK4wi`VuAA-osn`Ovn%#M_k8ceN*PbDK7%%R!@T$@EK9QfO!?L#YH8Mfv7E$rgR&hCUMr z9Lb(eLa7_@tIGYV6w^p_%#(ymUq090YPJxn>!#e2V9dn~9vd1P+CScr`WuED4#>2`Lwya%An(Is*3L7g3D;@S_*SAltzSHaWQg6Rz z!rZr5X}`==)BL5;IP5?gEz%iTN`$N#mA%=mg`7dz!njFRC0@iek#zjDy1v% z?!m?h_NkY(10Q!j@|E#b;!wYOCmaO9qEHdnx~+$cpOG zOCyYDD)?pg*xKZR=x#@;kl1VRL3Q%og9%SEy@kbou z5`)Tne`md{yjmIF?kg((4Vklc7eQTXcQHC!6IfdJz5t^WjZQg7pO2rRLF)`}hUGj5 zg5l-ln@Xf7_7fEVQiq}?q4dc-mlhfaSudt&e%9`Hps;P8V^od9cO0qgwK3Yn$NCdm zsX4ImvR&xsZ*Mcffa^YmQWGC0-a6LTDI1*|FxHHt#G(7i+Iy?B!%fl4CKqC(aUu0+8)OI(8SQi-Ir62L z`bp{=+^r~Eubrd`L7EcGr0&~|ZHHiXU$Si`AZh=!r=K$*-T+ixclnd4P*toI&!F6EJ z#x>^3v`uO`B;ea7-~V+=>`62u*MP_Tp{dbxMj@3_PwMgnGPHRGddO#7EH!eTBsk@7 zN*;4ou%jYan6JsRFv@}gixG+u@KwZl8N2vvf&1QH#IW3ic8VqABDi{@}*Ot1*V6wm5P2 zMv?7Y4d*^rXnFHWiqf(6Sd#REqT^t!-{sByC#qguQh)&?367;!?{B1byiOeXQNsye ze#dU;))Tj2vuYOOx}TM_q@t~TXgWe&zb8=?Tc{b`9t_$?fcTBCecZGCx>%S?T-o+0 zw}NXnokG-C#`v$2`H0GD(6QRS|78qpIZe1KMNlhrEAp_ga_w8$Wq(cxCJ9KTDw8#{ z%2Fpuv5gv2h<`yCy$*1Ts;BpSqSuZboPgqi$7vX2{IjfA_~YHM*-()%4Y?Q33~fyV zmA$U1M3i7U4Kue~gN&IP(m33Q;ut{#o>YFV=W6=P!{j|MIBcs~gX>uMWiuIVyqAc; zfjCLNnZ?C?tUX!}tq0kl@|qaVhgu^K5~3(l=9*)+2~2Fr&Yk)Xts&-hR|{#QZo*K| zKJ9EeEYaTLHqp1=l#wMfipbkF7w4j%*vVdNLO1Y(__1grTdM>?S|fu-_w#%zXF(%? zv4q}-sBEJ1!`p&Qzv-#{V3>$A!AxeOf^|{EPQ0uU?oZVUNN{(({cC|wwuxq&?0F|o7 zox1)38gyyjJ!zjAFD7U~ZsY!|x0&QEnGAHFUi4Nh3nbAt5wahX`ed3K94lJZa**9| z5HExK+=JJW#@7`35>2GlC8mT=csPk7e`WSnU|({yW+vs|gMQiC`Z}fE@xJLKAjr18 z@K+naW-JyM2dT;CTiOk|pS-AN8oHGjaQdV0HqkLB{bhSBjO-mld*p409J1^dxM zSvW)h1BE^pOMvhom+8?r-F67yJts{l7&guSl@^J&x2+pb48BMkN!e#){bF9-R@0hb zD!-qJ_EOAE^YMtu!4~!BbNi=q78d?tZguyllH-KPzd&1usfJ435C@s%#v2S-`narQ zk)2J&Hi}()vOvh8%g4o|2E@9aKCj1}!*X7;%XNfyo+f&HAZSF{3kIWcCBn3JAxOMP z46-j^+0z}sUU@+)gtgCz4&3CVA&+F*$=u2WSj~5)WZNCg``7LZh~lOfezw;h_I3+< z%eX)AXV9Z7h-*vrk}(2xNi=0|UO8fND?$jd3N@M>F z?O(|rzS`u@5%~ns#YnC~7 z4wT?T3kf35=;DW#Do-gZh2<&59z-fk6$^G`GbK!O|JL(;?}~4ZZPOfInl8mo_KEC= z;r~FwBZD>a0bVM2tKClDCE1MS=S{E7`y1usgp=YDN*S2Sg$BiBM5cC z3QceNk+9f3gUxGfl7SW{s;tZ(Exr+KyBxoE@-R+5wc*}NR?ZH?z=t9fy?3v}w;J@{ zOU+a)ysYkPbSE76%oU62$O&SF{l+fF!(3DhbyG6XGMgijT=n{@!BqRgjxhK>aK$|; znY9-^6FpTx1r12vAEj+oy&80KFn8N7PEpd-Ek9*`9yLbrvI4?dOVBD+d(4DvjQ#Sd z{xQndppka;YBXSzD8E$TZRrFtY$108D|N9xBdP< zP_;(nwBJv$S2lzzb@p0j^$~^0C^P^IN_b}z)$rAm=bGuvAgHXce)W@Q2YdiED`gKO-SvUi2ToV<~#d-2uWn~}St4hm31F;`H-g+}yL$d~w8T3sw zys3I9TR&Y^60TT~^J?J7H}bRoL%_V;#;17mvy;6(&ccuNN^-6dbm1ShPK*=nvv=xrf_AfC zj|AsBH`-pW${?FeiF2IJ9qP@6~dp<1TLFx3%=tT zQN!-`;6|c$v!cW{9^@DvO)1X{V!e3YO_Cr} zu3b@Ql+^s)|4G=D_KW}(cVxAPz7zk0r_3%i$BOo4MrJbo*PxsXcoJ_7q98hqe+1EV zf;Z%|WBQQ(_eIq*>N6ah6_su$IRG^+;_IB`ekV7vEY(UP(?c=UtkJXb+)41Xw~Fw0 z@*DONCo*Mr6aHd)Q<&X=P2>QGmWd6>^Teb=rF`9aV`+owL7lQjO3c!?s$q zMm?(X84ifj12r}oRed&7!Q_gXU^`k_dS@bveQqI5R? zA1lKPu;y|=Vi2`70Qjif+nU#4x8fSH%t zaCzb))kI=aF<3BIP~)lNtlaSIZ&?Q7y=qHC^G2iFx4wRo^X9x^X_m|9tS}Mp1?Yz5 zWzoIJRvMjeUL3~9UfQ?SWP!|{o0)g%po$2>klkp1&7Inkkt-CurQm`@+k>4%T_J&} zRMM|zc0I{hjCq(l*~D}Oz_EZ0{)udWu75EuSQB>tEjN07>xtn?2?v1Or1@6I`+S-} zX%rGVUuyd{(?~j<`4ho^`*pRJca2jYfWbJ=GW;X_)PCrcm&WnG_J&Wi$aw`y0QFO^ zk1pq=cnoWW(0TP$(4fJ)>p0)@+YH~vXOb8;Z4OQ$-Hf?=IT)YyS+nJbd6>Q6WiM=1 z#rJ391sA%){i!@N`aB2`IpKe`75n*L*`D|95D|LBMa3%%`4$V~fJVKRwNb&^dD`F? z7Z(KLj#%Rw_w*tYtG~YCI*06ww&OpS*ybS8xpCf}fCOv@c(MJ_UDaMzXgfLzMbmV} zOQSr&dX~9Wo_F)v{~7Sv5yJc4ZV~TUxK8wmV#8ZgjVl=#|6vE_?4pCQ2=$Ia}jL$KqBw->PfXfE{6< zW}&zyt#$+ktv-ukhZC=G`l2G3c9J!5x#pg=V3+|Mh4?g*kJ(on1j}BURX(MPeRcAu z^&CZno`X9g;qnLhQ#+9(>oYSB97+w*)3$+}x}8sjeV(i9QMdHxh;dD|809)UiF9k) z_uyl~Q7#IS;eE!az?Rz>vVDXCdlIxs6VGOhne-#IcJIhxo8X*{;nQ( z@Y}j)Xlyo*n@1#Dspca0XpIBAO>@!b$QP#FUTB6&9==*v7|i%3UM2(4Lg9eW(c#UL zYRW=xq4BU}vixMqdPVufgG`U>o=OXp0&+WJRJZ(l|9sk|`FEMLpR3x5@%X~Ef%sk+ zd?0saXpeD=nI^Knl50?O@Q<3;$(x=hj*e5ktmxHi1)>6^x&%5r1c{8CiRla0bs0D= z0Gto2zqxpC+mr-vlxd|?qqB|m8aEVk1~1E14^`I`E`}pG{nh3uQ8Oh)b-2Ye?+l22 zGtr-T7vDLxB*Ayzs)sjy1TI`*;Yd+r~mXNI5_})6(DI+H$p(n0Q?Qe%^uslhmFJo%!l2CfR3}oUDfy z^^Dz%si>d{>;u(s!hQL){>S1@g5tll9Z&xv$#0t!BOZ61Q<_v{=D_*Xk1MrIe_ymC3;GiLbfeRS%a zP*rmB`Q63@zIJZrVUfO0Juar(LIHI2CZ}O~GLi(;2C>psO!$#mg38%biz~FTj%TE< z!u}R?EOl8;X3MTDeh{VB)nG3=PkG8?9|YMC7-^bAgvkeaX1V{}o*#VC(%c?9zMAcZ1m=N8s&Mm>*DHpX&NTUpCOg~&nWFsh=zO8Qa3kfvc~jbdg6=y z)gCOk_O|wW+!_q~ot-3s;lB(O_%YhnPrY`J$&D8fq;;?}68fzc;LfYFgzO8zDC3`- z{_euN`VWMDNMk+ip>0RRGNL=4Y_6({Dbwp)7;ziKww@whmmpQIm3^_jDV?ozo2Ope z0mt5q@(_5$j7s_XBhZ~5UyC1gHK_wyYMLiK6q#keO@Ud9UYMZ;`rv~X;;&Y|k~=Kh z=SxQw&4Dg5f+(r;OLv@wOsat~3%la4yWdUPCaJ3Z{JvJChjfz}?%5h`ItswZa`Cfg zAg;&!LXh{pR24SlrHP&5ko)m?|AK_mPX=H82UGQ9jm7iCk-W`=0WcY>+xTarOmkq;K^L50>FvuiXMV?NL_65zp07_lM%RLE$LxDa@+g{G14CG79&> z#~O=*yFJf8cSRCSVtR`gb!Yv;RS^ad4TqF_=RUhh^v5@%^FZAlb)NhDXCxEo|M5e= zG$Uf&cP*wNor&)5I(PQg1<2BH__n91+^Z8?FS5^Yl04YKK)i?wCQf3Bfn)wJuuuWNOM&O7`D z&bHC6VMZ4=5pwe6hxfVtyes^OqtY}(XSV%!m|4iN6VFdn zi#NzM8K(w){gi*q1q_?ds@H~5g&=p_Y~630yq2CCw3L1XywUdk-RrgdTurkbUiQWJ zI(qu4SL68W6P~`ujnl&vZO^3f$>iM_#kiP7z@NrO?{z)PUKFV}Op%!+gk2OKau*Qp zc>}!#CFrYA4YSo24HGQ2#fw6z?y=BRfdm_pA(|bdfDQwqjfSeor0NAxD)T=<7`=Zl zT{K)bR!|z&`3eXcg^&JZTk)#7A+e4MG=sco#~BM+>LDCMa*Xug^O7<7H!-e}x%*%b z>IPJkSVPAxP222Mk;agtN$MuN`xO1E%p;(os6$BR+K*8#^b1^TWbo{^nHcRjuDcff zlB9c5D__xX8iJjz(73Iipi|6*!~6Jgx?Mp_)l1doVS5jsysC%&XTK&Wc;j+cj}!t2chsb_nIf7G0whMO^`oPZnUHg(JH!&u1f*+ zPd#pw;=@qFwqe}kHlgnnpJI#(`b_s| zn9l>pzIfv_c?H;nYJK>cM+ytxx94`*C??4%nH1^oM7o6!>xHowNlzLTyMrF^KrR;t zGkpm^{eBJ}E0(%I;Z@Ka<}-j93%&EJm8-0!)q?qZ=7QR13byuvF%G7h$HD?GehKtm z84*U!zhyzLcN$MwTlgPb(D%(La5$af1>Fwo(I$Gfkg618wN1utF>KF*{myu9$z!eJ zS3lJJ&=nGLR?ze<4c zv5C4FW<_cD+033&Q=H}E3y$`1PeRnAeKrZU^qzU&C!A`sK2Z#vhQgJ~JXxE;Q48~n zeO>rBzJaYj^c5?5M;c;SVU#Jfm9XCej{tg%*fAmRbcP@QhK=m_{jfmy01wd4D(l)7 zfNk}UD2FS3-gjBlv0^Y_8~nkTR}XVtftFKx9++^>+C|0dNG?6b|{WpcJQ;a8v@JNp@X+>z$hxC5kv z{n!4Yat~7q3Zdc#OVx?r>)Q191^C!hJnAS9<1lqIEUs+WQCB$M*O{@2bIj;OoU+P99YGNkI?I83}e(%O3O1RJ$o~mRs zboVQxLIMMCRVaKjIG#(LLUwJyKM~aGYjyE(Cc{4k!Ve4#09*~ddX=}StWNKC9*TDj zE59OYPtrU-=Pcvvph8qKn3OU9@gIx{WcK<#}mfM%Vk@p>7 z%*CK4=ww1mcF!pIsOPZp=QsFfQ7Lb!PF_Q4wGy_M@@pNZW$sjT*=e^2ofGGS<<}^* zDf2eB0p{iNw;hf7Z0%^+O(vls=xtOtsK2@RZ88eqEBGr$3V!+9CXxYg$$LkhBsCTK z!v$Km?*FoN>uA{4Ui2^xLI<=eojsxNXIhYQ4m3*59qFX0$bza`R$n95Aq=Yn8_b~-BP)7XJMJ}p6J=D%rg+k z6#_E-Tgli@-Z9WtwrU{9n=BR# z5$|YffxoNpw9a$75JUyy69~`AZH-c)xvy25$Iu~A0vP{T{R=dOwyR$1s}OUp@_rh` zy;ble9)$cl-m%OkF!ToX&K=P;&c|H)&%Ow$r*`Ksg3*k$o`#*4zC|jb>kK4sy;q{M z@ZHA?)gu^NWRIXYqDK?@O+ln0+PX0QYpLXPvYH=wP#KB z<5`#IPSo{2Jy6%g0ilH1&QAXIJ8K`3@Ba9Gb`UkQvIPA;{I%GAp6&~#(}c3u(4;&{ zRJ3Dv+D1ii;ckWHTRPdrFs~MD0MnU7{E3xFuKU2?z^UXhL&<9CmavQJwZK98MZkA& zk<_@n#!H516AdCEOrcr{Dv>&IY6W7Ko^mBedBxf-Sqr-0WArMuD`9o5`m1F8%!CWf z{kTlD8;kn4Ko6Mvf1uaG)cM38D!z{({(Y&YZxJ^An~QtzwJz|`!qrNGzj^kBJpGw^ zSNLV#Cj3y^ublGwPj7ZA`u^HqNZGltGYvOaD=9`PUP6#KIp>IP1M4b6Kl0D8(z2eP z4PPb(O<%C>~q61*x6JNE^PbhyP#-M%AS(W~Tbcu0G| zhMJ~>PU`;yk?2Vx)7rb&q{R?=DFccp#_ErIAlFaX1?k&)^AF$d*LVU&K;;YR4;cX- zlx^-gEpS;Bcp*@*;N0w#VZ8ZbfMB6e-yJpP6q8}aqPJVr0G-OizVA#EQSd+^gtfxJn%A4_?N1D@*K)#mGqzvs-O%OCYA54t4Ho0xs zh`iiSimZqgO?|Le`v3PoLXZ|| z1`K3?N=SDjEg_u>j_xjL1eI>2K~g$5x?yy8!)O@NFp2kXpWk2by>agC&bhJkI_LSk zuE*md?fqz#--*H(l~X3S)p$M=0r>aEox3P!R}U_M=SJ8{MG>>q95`$cz(~q}0E5WQ z;OFkGF)Q-@b0zwgh8EG7E)*eJ&*>1LeTqq&f0uGrW&O}lVCqiR4rHe0LE->&Z6Xw{ z*}7&oM%rx=irSUS;{%aS>Xb#;XvQJEqH zxpy=n(;C-DRdKnFD#{%BX}SX3@5Z3%u#{ECFM%4hLE!@n8&p?f?d~SCtdssi6c2)4 zQ>hyD#wbgJ7j=$&qXPm-rmF^kAI}Ht#RT!Lz1T#?RAnU(MO~<|Ql*O21^SpGak8Da_e`agi}Q z-$vKLJ!4Vd*_5I7Y6~GmIqzBoW!59qO|KgT?h50R3yo@h7IUh?27nJ$rgXLulB}Ckl4@VT@i(JOBd3rA)r^X8k~McMy`nOJica%bYO7 zkaDompdPYKLSeg3538NL#;!p}@qfKP`R&7%BTI_|4xWC+2n4LE#@dhXoGH{7tu|&Z zp%x;m{yJjOfPXMXC+_-uzW%u(ent!gkRDvXiEUPmQo1{cej$Xcc~HS2Iw3OdRDE;(j|8cb$&ydAyN7 zSW-|?N~yG@jcwsEL*qEU1Z$oT&Z7ul zC4VTOo*4aByp`h`%|Ifqx3etHYl0X3ad3r!GF@?8r?>|gEi4)RobEc$`2D;peVfN>l3{APGl1jKXEPmxvhIutSisjS~Gu6(8&1boPRK`tmNr zgDb8%zUD~%-LuE=IRr<-n6r3MdRLRh>dp>qSo(?~%cGp_ z0!g6N9{2$Gr|*p>-+QR$XHFBjy%75fSZ=x7G$Iej`BRcq%jj2k*{#9|rDbKa5E%#L zm!Da5mcb)|$r!zbJOe92N(rZgN}pQ_L!v1O#$}N6sYgn94q;%?7{sJkSjk(+IhO+rumL$L^F zWS03^g^RB+R=Xd?+=y7cBHQRFo_Y34?WLgmdM3#atJr0wDw;wQ1c&llV$nbmsThEV z6n>|53_+J*!Y8{IhQ}E#q3;v_2;RiyBrszN{|Cqkmyrx@XH_#dc&1q|koCpleH?dB zbC<*8q!1)dWm8;ayBRyoA~W6%=*_m?0(A6RH+cUce@4nPc2oIC-Az5Pk(YkVzS5V| zlw8$i#+OXJR-x#dP2LWDJ03XBC7>MC_r%~#IzqRQ7Hu|N6swdUeR@f}^ENIiTyFqK zBMiRRMY!)9kI}|cI#2wo(P#FJuQ zB(PgF%X(;h5<~wdR7^7;FUC?h;X+-moHP`N+n2hslB8>%Tbb@s+11l?5B|oMl@q8` zLFgEa<5lx1&(DLkQnh5|i1wSl7P~S_o0bA#LTt$}mT!nfCs(VWM5XsUDCYF)aI1c@ z0_n`P({#^=N_yU3J(3(>t*_?-7{I|0Ih0Y9W4W#j|7C1os4&CZyS4&c$=!BH!PxL&j7+1HGEm|s35Rxw_rWMAS+QBK3!>O$XN+b zXEcrqkIqk@O~reV#+YQ-AYDD!V;Fo_Qe0>0kCbWXh~>WwZApmy&D89u|62ZIW$e;v9HJEl2=3!r><0Rvd?ci+ zq_#JZ7=?FIy&KEZKGpJ#v9@FR_oBe^m=oXEwJ()5T`=gVR+YN|IO8*YQZKJ^acw7; z#}4Jns6k#r_%doFkuT82Ny4Qt_gU3)bi&0KBXRjX^u8$Q!;<(5!E-R98On?Gk2 zx_@(tcY(q!mSx6ex^dddw=|+8Ne`ZITjxs7@$F{p(-csuZ58(dK40G~AN^oh6GNbEs{GCSH2_r{Onr(@@=g2vd8Mv8l=#)tC( zUvc<1f9pya{Qm%UHn(1v-C`>$1r9}CAkJS%w%zqAA;Pfe*yrWD;45u#bd#ZwnG=|} zeN4_da0%6MKm%FwH4ppST~R8oQ3rIV)?if|J%OLT0iZK169f+ie>@&rRwnk~H($e@ z>jzH1JKUjqL$WqekL3SWOZR=x$api1ZL zA*~uho+Lf*O~y#{BA)lp&?*)&iAJ>mcGQijEGR{n=@MhrK#-1Gn1*qOhc0&3EyP}N zZbi*z2h{d6xR*U*zgYOdeYr(7j&iwwE4SgC8Bgz3B;Tu4VeL34_d}D!ev;%`IGxLY zREW-NI!Kn;Q^UQ8u|~iKPprZa7BG$aKneVD_*sC^c7IiUwLng)-aitSlJHbrzSlC% zKe1zZvLJNl>x~=TB6C%Z1W{WoyS-Lo;b_o*^fR7d1HnB2kCacq6!JsE?9)JZKB>Yg z=142He>3$sKui&{`rQxlUCV^FwJt)~#}D}PpPo%S>TNidDV+70>&0?+808cxoQmvY zG+)!({r$!-A=F*NFDO{)R1sNmp)xHvcV9~IQda?u`30zBM!#)7P1#;!kTmZlo|W?i zTY5WQEQUMr#oJ&7E@+4ALXw>38N2O(J zv;(v2aJ-AmW?1CVdG*QC)&}X(3lm#=*RAXD4j;xCi%18HGmsd`s5Bh(Zn|agnu%-f zpu2v;ubH8Mu?Yo5o=9aAl7MD|EZKt^WN-cud;EC5U`E!7~_IDn>d((xw{nVTuQhC6b(adi_=v*6~5!5S%|7p$ilZ>Ni zk5vqfH(yB7Mcg(RD>gU>4=W?b?2S(=+{n4d8PC*?HZaTz#_qHSw0}O&O~5II3eK#=&$ZYOhIICsJ)o%9psM&A_!?*>38U#`99L%6&{`YAXY*X zIY^X0?y?vMlaP)U(D1^ix2N_lNwzIfHR^0ym13qslNxLAy^jvlC$MgeDpmr6L9CjC z>5_?1=#u#?*!U;r*bS^n&*o?M5Xwc{o*P5>RCHc0pu9IRAW}@MwfyzNpyA7vF9S4j zPO%jP#HhamGHdJ%MR^UbW!SF+H%bLJn}A0eGL>w}Xh&IhWT> zr;ts=?-Nvhp$ZsDqX|R5diOgX_?^#klqjWqIOmo_Bk#)$c7lC1F`;}5_85cxX10`~ zsmWTW1Hw)PXf1>sY+KAO(BD$^5hz;F#mi-sfHG?yD2FS<(~OS$7$`Fu4=Q08E> z1_&3c)q(1Xb8=EV@xJQWh1wr^bBx%1jSB|VBt{6clZaYD31U`ncOavK*|4D*9eq$T zzfZ?P$HW9v7_)mBO9vEq64vY5#3~f6-&VMxYI}I2zhnOaBb`dvu+gY9BLVhyx%cOG zZMk2PKKyDM@sN}cpO+OsTP?sQez8NU6qen9UuUW(Q`F84B;d0_^F z!oLXdf#l*^l`8t5Zq>gLH_SPXE*|8)(D0vi8yppkSh>n00NMIPBBkJ2_qu~sdWJBv z=G-(Z@g$@n^bFPQtsD)>@+_}0>@g-ISq;gG0P$RrV>pO=lW|yqgt^(UUpCRZ$5kKe zJbXsjYhd1e+TK32sGqqir9F_r43A}b_MB!AuQ?Xii!C}M{Xx+lJBm)&*zF+q^-iK| z*dW`1h=9VTEo~o_=7!CgsiMo^1;LLDb$#q-mqHFS-EZ?{n8B1IS~Vc{yGb-1K@DLa zpryn~d2b|F3icYV3u*FA*rkY$RN>wYjUPsF;4EL0go^4epgR}t^ce_M%QwCSYW}qL zxG1Sqj# zig-nl8rvnXVa4%Hj=^oXFF6lh)|UIm#&TiH6!b90H^3vl597-#Y~E@!;Um|($!7xd zp9XLeAoxd-t?tbsh~NOgUjrfUiBdaWr7^*=6#z9#<}laa{o|2nauW2Ut|B%97vnAkzt}Ai4{JNsIvw>V}5W#jG`)kM( z#ayKoV%PMT`XXNdgt(d8HSph4Kx}#{I1>x1w{0*YE3oKWVJ{bnaYl(#s5@*B>B(rs zzS{oZ7Z_;vPU0>n!m2N}_yad-Tz2L;C|qyEq&Mw{BAq3THw>K93@QRRK8VEpzDwFN zL4~L{nyq~P3%dF>5cIJ>NH>z39i@9`O{;d!)>BsA5c6rWb>C}`%9R^bEJgcN7BU9- zUq|}?as`^9@f0JUUw8xo`~~hl3fBAH2p7)_JR^!e?QeS@H$ri@vYopElAB&|N-8*_ zEj%Em)iRHJ{HrBVevS1+d`okuai;jx+fwqB*!wxc%xPugSehZbB5>i8z^s%1h~BhE zW4s5f-jGJo0TtdJz)l&o%nsLQ%Oy2YL=tijNS)78z;k5pi33WHUSs8FB1odDb|7q# z0;!kJIi8IGf-nr1Ct?LANKG0tBFalYjn$NiCsEp5D0t;=9j;JhTx3^X-2AEV*5HMM zc$HJIgGl^yonB)Kg*zELuSU~_58%!hHbG&bLmKJnw`Lg4(AZ|ytP}I>NS8;R#elaj zGIx6Ery0}$f=b_ZJGL)xU(lC`|9=g3ENi5o?&p;Agr}e)QF0Uiyi=so@Q9GaYYbBE zdjrRtF^(`7=TbVI@?mRctm;NZrj3}k%S3sAK$`Py2V`)l|HGdPNR*NyIKBbCC$~DIof+f@FsX+JyEgk`bqZLk%sDk!S;BIZ-e=X|hAqsO z*FFo%eih#v30P}5Z<~^ZB(95;O#FkhXlEr{1dDV_&b{(~Kg+qDpzCqrwQFcLk#=W| zT9EW9)WglsBf8&UIHpp*7_BL%BM+xgr0$;hJYVnRXnKDsQqCGQT zrr0}|Vu_d!W?$`ELC?-6hDOLTVv+`vIWiLpsX3c=;y&zO{b5pw+P#*rlOa$=|F9^d z{}obaKzU0MHPOy4-&1S(cGpD?vx{^l$Ih^_hUcRkE%QZ}yEKu#m*ti!12+FY)h71)&?6SxL7_g{beH z60MWi^Li^L?7o>e!bIrB!$PIfx|jj0V{iU*zE&p^icHM6G5snxdxc`AlBcI%HL+89 zKR~q=fgCYxynL~`0q!4r){TZ*cWuFg_&9HUSnm1Vg;Dy>fr~{@#SC4Pu778p(TW55{OY!1B7cJxNZS>+``rq15*k~YsiZ(65Hk#+Ri8HGt!<{Mp~Jb}aR_>; z^a}PM-kZQc{V&QxLu~WGEN8nF8A-hGCe$|yhb#J6iE?PoOy!l$QntQZNTQ5GMnO@9 zA8TBES-nzZVRf<3#O%33vSrju!KVsEuzMK#=JN2@g+$YST550^HarT#Us0b4so(p8 znXN&eB+7GU`0pzPH=Qi4dg_H8HbH;M5=>*xGmxB!gx@_?$^@-R8@PAvN1V(m2Jd4S zmujxqMDmE<5!+w1C&V7R8t97|JX_y5qti8o7~4mQnCpFJ6`+nLd_BMe-+c40a&{rZ zXt|&H4OytEzN;G!fWsFgB<@veR!`{;7%o<1`jyv{I*tcN$HhR;?`Rs?l}=B8{a8{S z6tRX^m(0$MY>+A!n84|O7h1D)dN;s^sj6@T-E)mv>8Dp^A*pIL=bhNW(zszq5@keI z0~7L-OgR+j2SeCPOm}AbRvnBkG{r$^l;o2Q7V+L3?BSM-Qio~Cbpjhv;yhmKd6()7 zvDk&Y%}Y2TL2P7rh=!^1PX~F{P+y^?GBGtm4-H>%08Uwv0PhHg`QyG7Luve07_l+v zY2Lna{`8j;aNm{yVMhk1NIAPyNGWM+Npdo9R6viVE~}E%r_x+~3(&ir;_&*`gZ5I) z-0%nPZp$3alM1x+%B2tecBXR7pQ-2lxXyeLY_@YtUq)SUNs=*kQA>SuQ@-GrEI4)g z7OclAPIdv6&LjBae)BoGjO16i7vmcV7hV|$lG38M{`tW$hp7=Tqzo#%!1mSI`Hwx{ zr!i-uUZo`>w!h*9HH!Cb_0OAVhF`OFu;ca{eNVU*ZxB20J}QJ<}$J*`NPT;dbTBrib-&C=o_)Ay2 zSqDa!bL}?iYi%!ygwu=75lAN@2`h@wQpoJ)N@JFY*BP=M=Fw%P*XSj@Ciaag$H7Q* zhjthB#B^gNhatjrBj^vX8E`eG5BnwhF0qpxB1V;yr+el53QFe7+YsG{a*fN5@OzS; z#J+)Y+^WKMgx@r`Sj?3hJd}D%iZ5=|mpCs`ET1Uv z6;B-5ds+hK##cVhDlrlqzYH63`hV3hQpvSXKH zWm8=8PQ;GmW;9l}kVh_+kM{s9s$^xUaJY;uZNwB>-4OC^0K1GtEEG8;o^j&9-)c$; zs$W?$?onV#8~G{YR0u!=Xr$>X*YkY~8jDf!#(H z5y$-=urp;>tMc7q!E4BX`v&Z)3ip!~WbPM*Wvo0%QkviZaGOUQ>S0`Bx!P)g)x|8e zA8D+=DAlHop)R6ejU#FLN`3`)^>i)Z4r^)&{e?-C8Yk_%hyA+i)F) zu*b0+$D?^l$smlR8nMJiC#4Nnb${IS>1psF=*oWIpl!7S!GcI;hb$hauhEbqn{J=? zD&d)KP~4$KJ+9nx_LjfP;R*`+du;hnx~|m}+aFtZV^CmCoa>@vIjAyC#~G96LvOA& ze7|3R=1SsSUm$zSY-3;3Y+>{^DgVV|&OBeY?hi)=xh|&Odh4WyFJ&vMjjK7vLFG2X z0KDfozKBCT4pWHMRJoILXUL_n?``-<>2x}{IDbce9F_114TOQg)-s3 zi%ERbn|Sx3BmUx=>67io#t1Rtg;-BPP?aE zH?9;y>L0s<=Wn35zA?buccTf=2orLyQOvN0*A6uzwcUGVWthLj>e0!|>p5uCg?`$I z!!nOFNm5U0Ms5t%=ULXa*>@FM8Z{Lq7GBS86OXc2?2A#qX`I-?L=)U$QDF-BuTNrakY5;dVc<# zS{d?OCs9*ytN!*^he7;mC?A@hpnR`x`_C(1FyDTQGD10pbl1>ZwYI}E;QKDV(T7B! z6gO@x`-s0gB5DG37o|5_Y4u%|HVMr0+dN}2`n^!0m)bi*csQ(Fbt$fyOYgZDLKb`^&zyo7|N4GvSKAjg2X#R*O^7r$o0w zpb{gPqkqrVOL-=hEkg)OX(xy~=qE%r- zLY1Zp7I_wH{&|$gn^Xu9Pf_Zwb*;71OHBym{yvyr&Ooudz7k4y>*e$92wC*+B4lW! zNaD~_1M?~d*p+Hz+IXLlaKg{3wKQa;>G|C&XH~%FangV%UG`OIs{UVrTJaaHk%9DT zZmCbqdd(U0>z0Z3`U!HcIf~*#*w}VORz+Pe@zsmgpZ# zvD}E{{d0MMJgBgQ%OI{?mGpcn`Si@cbY{`68Hg&+<~D&U4QHaZi{-IP?AQekdXwPO zZ@~&iFYvR@nGV=hl{!1pdMC?ic!%luAKFZUr*dnRyQ-N_ zRH3MNRkkc7DSO3_B=B|a_I#Q-2m8LN8~ys4(Q~3c`?s5QFEQ|YnHjS#r;9=km!GOD z;3Yj7Vg?-Lj6xv0@ee`nHa&IwuGlaWmr@PftTXFxg?F})n~{4Ffk$`E43@;Nuft3n z@#1*B-J;lure8kZV&ZCv%$&!L3pRfBdHCCan*hEP!qp{c3Kl_m6UG*Fu*>*sv&D!D z5!kfMWip0BoI;5$cS>l|&1xQ#!l$T|H`fRBlp zU?n6k19o<98@Hr_8Hmn0vw3am75UXaxT%TPmD4v7mYP%{#({wQg^Ht=58m9sa5~n9dpRX4 z3&l|h?C7#_0&bMj7q`L)>g@_!m(mSKZ~NUk=m4tj8=x(JC&y>#tztVF_@A&D0tt24 zssV9)^FZ9y9%`Eow-l!cH)crXNYswLB4H^fmcd{3+{cZb#bBt0aAmsguM9Q1?vW-< zIG}fzDdIvO?MQZ%51>Xht$!to*@(KcUc#q8E8!JRd9&KEqz_-)|7kCc!5^HX_>Ftb;NOOBs>G ztGGKAge_3-R~p13kU?+5owho&0kZ!J?OR>m0`tHRo%`!)_sSZnnRD@;VzvE-%}~Ro zpRq!0Y%ZTt)EzM?;@QTtAb3p6h$>fUO2^ZJ9(Ec*`-^1*QF;4 zYDnho_INl_GFlg5wE@H85K5S^1Jq>PTzEU_p6Yl!JTr;XTcad!!v1c;5GIxF`tfeq zR@~n6chHyP_{OZ~8_t4V%j*49r%+^XYGCtyF>FR7QJcx}`>0rYZK(Pl{4$UDXJZ0K zBE^0)R`q;gu1=)Q)2A%LT$SAoB+HbZK%&(>+8%KaGSQ9lXioBjB3C^{z>hXqcJ@07 zXRXE^a@y)mH^>p|Nyi}pH3yZR4(m~a#6_f@xd!|FaGqs~!oG_r^7FQsdz{;AEaq*h z{?xOeZ`TB+RS&wa6-P^E2T1bE9Hxb))Kk07)X&zOaC|fKe75-p35a z5@45@3=lI|W`sB62C3bphlUkAfT~R81&e(17V8!dZz2qsL#B1_g&{Dn>6!j!^*J(1 zFEkmN7i%z(%uX-^)X#4Erj6eSp++T?#-P(_|1|#H+}gv+ZMYUIW=UUcg?SX8Ex{Mhzu% z)W!6Ar*3Ruz#PGZ#NT0f71?rdSFUC|m{H@Et3=U*o05fvCjA<$m0U zqPqO><6Uc?HgHLozd0Y{mCPksGj*DE8mh%m_SV=@hi%Iu~LAsN4f9~ZGQ5GIBk!+}%3 z?J|4VZDg)_J*q1G;h@T_Ngt)Zj}UizQSeTa?kW$*gs9~z^&hkZ+!8t*XU*}I$@jPE z!wX?6k(K73S~!YOlF&v+2!g7&T~YB|FwL|0Vc6p5&LUTjazYZ&;?MKJVWq7hI#Scr z{H++N{!^GXOOL5ICW!aVuh(irZyhjtqIsjCBrN?_>#I_s)hB4k3ly5T?bQfP&*Jdj ziN*Cl}=JV^Id_qcojx_0q&?sdwzL+3(L zDtvsrA&@2#rDd5YkoZP?{1@uG#(6Q^rw6QOnfU%o_m6HYevA_LGStNge=ZL}Q{v({ zw^UEky*zc@73wD6S;{Xq!H+h6sI z1Zbq495=%Jn7%8%4QS{r(?e^Q#)*+c=lOI(T68F_x>_rM9j)9uW*;Ot) zGdT?y6LzABhYMaK%p9uX9a`-E9p(crcnHbg4d7be6b4&v0_T-m^jsuY9nI_|dZ#l} zY0f6~EU`7x5y z<%i$>T`Rp3aj|tVlAR|6_!nUBt}t2kj)j2RG1GuT@4hnniB1#i^H_84i|XO>q_ALh z_X%|PxjByZh{W9$o10yUGxo-@YXEd#k}y#$!CrhGQ9>DBMEz=+t7^tUsgO@0*p2#H zM4;;~Ol9M@QWQH!)$nhF;XO$?Yg{PaxCnhICcDqGk&!(m$qBoV5vZyVTDN-b%6zfl zUjg?>?>@ru0fmzqIwp#l@1DSMkp0an8i`VqL;Pn6C-Yr22Y*A#TFjlFeBW#+@DLu(0# zk!)(v*7UwW{bA{Y?O;)o2yI?})wB6|OTBrAY@Dfv5O-=Y-5&a>6F2PshZ5706zAKx%RJnV^5lU3!-a8&K)Y`Jxc-KNu%%AK%7P9#1n$0+ zoGzStKhPiC2a@~0K!XlW|NI9itXbHKwzdTcu8U4$XEs}opNe@E$|UMf|GIEk7Gn3@ zZ&xbP9pGyYnb?vhViR}ztm4@YUo(f-pIa3i%d>)|XaTyb@Zt@3bx`Z^rS;^rZ-rRg zK&okB_1JYk;CZv-%J;F41B-D^Qnc~PAr}Z|he(W7m#_acv2?wKOtiDfK`AML4LkC3 z4~j=`!2UvO^kR_!vz;g55~Z?ow7B;6!CifAkG}GHQxk*sVQH`=8h0%L_4vj-8uT}i zUy!0U45f)>u}m6!>Uu1zd@(J!UE&tge)t_5BJqeG&3tzik@Aiul3g@~-xn8=)a2eY zAKqzWf011agh=BN?y8@@wb@zstKRykP!?7ID$R=)hSTKXt;umo87UQ@3^nu|!VVRT zhf%(a-ubE0%vK+3Ba|oj0lweDKel?gDUeWzMmUi>BBYF}3f^7Rn`OoOkrZjf*HzK1 z9N1tQ06iR{d(qSQYYCZh7g7h^h$U(qT?s+5)j$ez-V|l(@cS|a#UgewY?QXEmJ+@Q zKZd|+r|qxT`p!IcUyW2f)2BnPd9duQE~aM;M^1GrG*RM%o+XBym&uq zM>nQvICmQf-B-xP-H z4_UFJ&vRq($!9+si=i^RaU4vmBo6m;!U9r)o+Dh!gU+A!>i;?u5~DY{6^M+a_boPs zn&ksut8B0urmF^F>th$uwbgQQ6k;cE%1+M%mF{EUxJ(}d8Ci%AzawLrc3=3Snpec0Y` zw@Ro>-lNzV$*xfj(HYsDQy>4h6PKS^NUh=w4Z00tf6sGjp_ich&FmSWu&h{IV7t#= zFw=}fveA$K0KU6nBfO59s0NFE1PV~5@}I}va4s`vMrWzn4?$T4K4UYOX`6%33KBWCGfm^A|6rl%>6sZ}va zw-st+`6p^$Ds8KnG$%jL!D^keyNGGwWt-c9Q7;EA!!t$6F6%^}JQ9Jk>zH0;;9KS0 z*TRk^`x5^FCfXgB4`D(ddExfpFc&HB)P3P9WKo=H>wf^naAx2zB?K;fC5%{{Pi}ed zD!<#k+p73fCzJJNK>7v^LuT-0`FCe^_@T=P&i1cHp-V=5uSNe{JmX#XX<>a+EOw5F z${@+9GBXV$S(orW&0gEc_TMOdqjRFUa^uGA>%0pv^=f{E5U+n?I#0oJIC=ub)EpaA|U1L0CiJK&>)&FAj`0@=n$30|ruYBnf9J>-I zIH$Lk)B4@TuCae(sZlrK+lsZ6D7v~mE^6lD9+^nMnN&}?S`w1wE=^{q_tTo4S1N6v zeuXA*6RY&!Y>U&r6V*PP=y7$f&&^>s=GWHm*ZLyV1AZQ5Mw}Ol1KfBAc>poLubMaw zUg>6nL)Y++PXZ-{27kP4@m7muaZW_AbGznPvQq*fAxLebb!EJ@=GsthsULo{fP+^p zs#Y<~mbg+p)H`NZhjE#>l5_622__W@4Q|hzQ*=8lwZwAvE8TBy2}HE0VjtWy+HZ=Z zt5c&!FlB`4=q7PL+Lm)nl?`^bYUkOf@=#8uE;%G&?zSgLjCY+cdwF_P%L2 z9j_cK2ZF(V^gb4RDZEbrbK;i5GM$L2YLof;dzGG&Nbs+wq>)kMNw;~l7#T-Bj#=Kj zVPSAmRT{Pgsv_>t~pKW|RRUP2V_Z{h8UPui*)B^dQf%jXau!QRBPWeAMLYeu1vMMm(c`aHIz@w z`D~zd(qH4{!1A5tRhAx_5}rMdcN`kR$c?K!ypx-j($(^&oNw2aj<2SbR$E%R0cKuy zh`2+ZjDyErSsN-RV%{VrGAyJTMOQ2EG_ta8xyk z6Jj8ZX+2A`C;1+lyS2N~v?~1!__V;F1u|S zY>RJ!Jz_!lFA{L<`5nn=f)eyasQ|H z!SB)(6Sx;1am&2BDl;IN`})ytC-7D57A=LPu7kO{lIj9quv0TIviowc$bK;T*V#fQ;u5hr|5xnB<5vet0AW zh92`Q5-S8vR8N}FQUmyi8-=adiH0ZlXfztPL3!CRP4T3@;sO%MJ+bKKvT1Eo#~3{! zeBoLe)z#DOYy*MMh7z#0Gx|kGgj;Ed&Y!XWoX2VeT-OM2dMF@ac_jGmj zblvL2zj`TOwua`Bqyf(YAz8#Ji-$(x9rZJE3)tr@PA{OeSw0+!sB;9&~d7 zz&?V~V^*5H&}H4Mo;n%Vn;*N{xw$R~T$+jevXMg9LU}HkvYO9bdXYtyJqtmXmH-(CcGUiLDlQ+<#(DH01mQi%b4(Rq;H9^il+p< zxo<+bH^qy(>+YUgh36ZspkTBC14W*~kzyJR;VZ#%4Y9qu7`-p0;mp_zbQ#9--em!) zdrDTbDHnf1zee`nXnAdtHoWvX@I{p7s^3{#7o}HmUZKR_pYDl(+nSY_U-P6suS{j> z+%F)FUCJXaP&wDhd2?1&kw)v-UetK`3yHz=VdeuKJPr7on44r`5a_4vxq)MR7cqx? zmtormW%90#+-4dS3k~nq!*&6{rA2imUXB>e2nGLC9t z{!)SG*{GIOI+gR^Uhqp>}vAHNyL(A+yo8m8Uj_+S!CG>HX zz7P6*OXYmHKD}=UOMuEaur{eGW$)*@Hhry4=&w*Tox!z;DRrN4{%j~-nXQ}{S2Cwz z;)NY7<3oANyst-(5t*+m-o+`4zOKy|`5`N&Ugj%L>{yI}_q21TzjUiA^(+U3;K#>C zEo`wJJyPz1vz|-QXYIn0O;}hWT~_o&0Nu}2?|%BfX&t#2pZxBlQe$J8P9m3rDj3cR znN1k%uFNI4>j)ydllVP%a>`LvB{bUl}yj=UL|7X)_aD+}!RUdr3k|A~2(w1>+6 z7H#^2(Fv$d4p88e&qmItd$y=LbL^9Z4~W+6cut_k6me<=@)W~ocBw7J%VC{cAFF?I zo+_y}dBI-S$uF=iEC-7s#Re!_F0sBk+q)S_fjMf!f)xza{R+6FQx3ccFK|SOr1~^_ z-5JrvX75{9rd8<^4H)XS`W;y>$GM;}L6>42p8fKsgDMDoPtL&GI+L0Pikl46~ku`fn8F3ZEF#t?2yS?a`n*#7EF!8zNq zsuSs7dNgY!MuaQXn$0=2@{+E)3@FnJ5fe(CRpO%URFy6vr?vDhpK2&voyVwiH>MQ zDlOY`59`3%S||QkQ)`k2GxB5HJAiLw0Y0uf+EL-Q@G*u>bv9SAQ zT__HnfAh{&mAb0oy8>lS3x!yDjwTTY>wHi|U<%RqA6me^h)cn`+Cj+0cN&pn_^~v7 zb{omFCacw9MHvm_qBk%n;my7B!>R?r+7pi9p~SCP3t@xIbgmoiBFMs})+fW#5!Xw| zaxjOC3q^{tJ(v3>;gjx{H**E6Wh)9A^vxiI4&(GrLP4V1UPQB8Xdl6_!*bZ$8d>gGG3 zF^eQ$YM9sT3`owx#6LfElLu%gdSBdx4hNnwA}HKHc*fT*{|9(iIwU|eOF%N5nD5{^ zF8%KcRB0F-kTbP2FwG>BJ^rDKI+SG-B`7NM!a{G&Y)opE;Ej< zpXshIOM3&)hW)#g9P=zRSmpN_6vF38HQ5 z7P%cM`uG;~xDLcAosOlQsbj4iRMD=|AU30FnjF4A6KcAlH@uAA%j@#|{ z1WntSNKE0reY-U3OB$VBoto~qq8M2KDcWjxuN5BJ9XQQv1OGpb>bze8b+Y2pmPM*N@wt>QV@R!a9$(q zAIsLeL2_fqD_5|@XKH&eBJksx`Jlocx%_2H>zEM$LI!Awqti-U9Rv z+YBK-pDa3Dj*Mq!ezyv_#KaMn=)~W;dhK}1YFw^dTn|jQXdo8+yB3z^Vn7=GXTW{F zg`LP?s{q|9sxXNF<~n~M@t=H_4N=X6chESZ&!eQ13zaldes%x8w`2FAB@AZ0n8fZG zht3?Fp4CJKOXbR7KmT(LP&&_AuX*|)V;Ufpo_9EX5U06-cJ;4^%V=eD_n@VDH(EJr zRBSwvA?WzzoCX`!j)s){5Bt%w_9fzI+r|*~p+AchmX&n1Q%@Jnmy@Dlpya7-wV=t_ zYkT=vw%Q@(&4s^XLH9Cx*tiO~Tw5~FFy*Rfwb% z{TIiZrF5mMeW+6R%8BYaMCrN_2zs-lT?xMrayN#*ok2X8r3GO+sA_1>Y z(DN*{Q{dj!c1buhELJg5K86{XJ`!9ip)3v%efjlVH;=);)qN%h2-4_7$NkPf$F1|u zO0wN$Y;-*VXHKpsSP$gA-@KIQTvpgLPkJ(>i00Z~r?!j$Fvk;5J1@t{CVl8=nqkf~ zc$$DJgl|jh`F_S>Y@;0UFQF!sb})-9KMU%5dNo_+EFM%ud}GnF&dG1+|RUKFus8k1O=m8ct9heYA@j~D)n{QHDj zNi;4Guopaf@{QFKAr{2k!AQNHs1m-q$;0Dv67RFrZtPqi2q>4RR+e)^7c5Qw4?w!_L?9^Z zE-o=>N%BN;AS($wTam~!7~LPuS7A$Bb4*sE_U#es3|8}HZao<{0+#J%xdAs$Fc;Ke z0i}uKJwu+I-^U^DDgbhfuZSOqN{*P_dnMDS0b)N0`i&qSh`&gj(+0ZI9>Y{_EQjw& zwXP+MC_hrLO+!6_Mku(A1y--=EFvTOLWa$ra~xW&G8)D1oY)4)229Q|-`h0FpWWH{ z?Me8N%RTz+wO)nbuW{h+ro1Dy-l0z3z?uhmO6;$b_x}|dB0k4F+^sR7CB!AQYHM$^ zX%vol<@{b1yCAuN?;?7oi;iSr?e7}uqX6pQP3a=wm0BT~8ZS*8Tu8S;BrxfSrL6JG zm36+pxFdzu)SOM%RmTbcZmxp1kANQ~*v8?J&eCFtlx5>v-b;k9JXBS)W^n6$z=z%j z`9Yd=uSG7eH<#s#Rb~eGdADF%LD{|Dw3tlM5DkPM-ZX zVUSY^sm+WDL}*a`co10bbPDcfgL7<;r?B88P(?df$FN5&ynezq6btgY$%vz-wsb9@ z01w^r_x%G1C6SmJ6v z4ty<`uMAG}sV$y8j(XpyvWQ{@MxqIsmvNR&kJ*f(N={{NUE}=yDhK^1@+7qWwI@r4 zOvT!1Sd1pIb}2`7J9hS)4N?7wJ&Ykuj+I__&Jz}2k3PD-aoVNErN^Aa zi98`)E3I6DN?eg?si3O#Y{@^HoY6Ma-)Zc#GN5IelLp|4P>v&EJvR>Iztbi$jLUy@5DIhm7KPj zWGzhq#?+s`>@nwIOzmrPxw!>zr70&H`AvxzK37jO%e6@n+9z4WLMC(;uij>e@1-rN z;4A&I?1X#ClOpoQtA7(Y8Bqw8{L^zM6~z13TAJLD>U?bxh7Z8zaz`cqpnrB< z?fbhydC9q%lRqrLEX;S2xa;s!WzV2dBKiOB|RyqoyebUI0`oab(MIbm?`Vl&OS zmqZ>@g%`YIcRw+VRf!OzEf-U_=NKv><@S`*Q{RVU%m(%HCOChY_AH2^LK&h|6Sf) z8c|UEFuuGPVR;#y^cqvB|DihUQ@g-2wNO+vcIuc1I-O&}d;vn2lW{So0J^7Omd5Zb zR$ZD(Y6NTkb=u9fX@HmzN79=w$cA-;RO3#YqS<9(uBY3(A%LUvatZ8F8r_HAwzGdxFY@Snm7~b>7^hxM_dyop08k)-z!z#qDL)I=|km3QIO38Nq7tu%I~m23zoe z$JwTiv#C?>wQWTeHDzXEl_DmX2*-B}Z;`#R2%o(t3@D6!3*lDQkn8_m%c9 z?%|&X`0KylPI*eygm99hk@p!A%JEHw+Y9t z?7B})F6rBUNK)KYueKR=jY2v8E(xGz6Wp_GJ_8xaLRLF;z{P32O#kdFXUV+P`AAjS zUtGiVJN7;pQ8=s@9t*fdFcmOp%btK<*Chfz7b!+OuFI#Ljb}j15z5kyU<_h7$Cz`4z5WWgp2=nhMeNN~n<*jRxZwf6zIWksPjFF3k4dWwm z$GfBa-e_TI2*O`qk;-15_0>Y+6-MwnfAo^Z-m*LKY{RjwAVHJhg*a|ahRxv$T1ujq zo*d=TA!p-9^rai%>a>7woY|bh32{Y1O|)Jya|M82MFOy|Z);FgYr<4g?Nj8ncCYv` zc6Qsa(730GT#Y&+v`yTv7g^8U<671GcHbqMH3FfKUFur(0AKUsmB$aH17;t1hrD%w z`fmyiM6$X!7D@)40q5QUQyIT{MF+Wd#82 zB8BZ@StF7dT6`+#Cw=e6mCa57L_$}XUGVim2KqDe)-=2?%ZEJX#rHD1^McgOP_fh0 z3GUHX9?OMQ=(9r3M?Fv}!OzaCXwbxAoa4K#{+*8U_-CPpsntUbA}S9w(yW_Ixe`@l zsMe^!VpRi;q)HrQECsE*Xty*(mvUjd2iTFv%n#qA!l&c~5(nl)!bM*2{g6hID)V%) zjFP@Ikm;ATAwIY6m4g?a1B^G+jdmi%V%Q@O&zbSdHcrPqn56t71u>*~0Cop726;vA zJZMhyx9$XdM8*PA%zY+3E0#hWJBXB)nA80VO=?ODTS@rX3P<9U?ybdpICo^bX7}HlE>GsBNIuVE1x{{{R`L2Vb~mGg z=){{Y0k`gL+6(k9w1YHnQj8J1h;%D{EuW)A<+-cMPzHZKy^O)y`on*_yAP(ZiTwif zRZ4Z^MGa%sSm6jK*WAj!T6Hc|2JkxB&nYvqISE%UIJko#)9Mn+Od6JJjFZOcI|@R7)q4qZv8nOzV>hg*)+DGsvSg`! zn4o1SrkVhlz@|a#1g$r}Uy!OmXa>&Na>&1=HxvjOi{|3=jZ6xe(#Te_)%v#HRMV>V zE#qlURv!g|keL+=>3>=}#2E_SJ}Lq{ku-xbn>KBhJZUOe;skh>rQk&jpI3ajGpE!T zIaF75rbE-Q3aTL95g_}n9cwDG#^1rr{QZO{YmBXq*pJN~^i^@He9Ezadpt&{?UX4E zB>@hR8$`xr_*66pt=5iPiUP!0+P2TDB$Z=LbfDuuLA^d|kLZ}l;m8B$m8WSx=Lo|P zC6&$Y52{@i6pE@4zhf$vm%CKpE?ziVELcup|8(lE*_+JE_Bd}(T*QXu~oM`__@N4q8p4kb%BgO!=?Xhr&s!bs( zGH=_oqD=~g(wHHHCNShlmtv8U0oBgPr4<@bqyGw{jjwfYL zFD^Q?jPzP?khwh3dtj-4gc=(tahi`puFRL7nlY9pHpQ=_yCPS$W#{Pv9B=@y2|Se~ ztitfO>%C*Wt21j)UriXr{PhRm_1y`Ui%Y z+b_g;558?bhwbAX9m~eF|E}i`i}$b^4+F@RI?@)%zS-W>hs$+wV5~7U&huGAdr)4? z-6%B*DNP~IXa*CoS(;Ah`A+WR>G!I=t-V#&j>M05+PILs1R88SIsRcFlPe?{Ky~Q6 zTUWYE@t)OlqK)nx;yq+!IyCR#h)*7D1;ek--@Yg$xUS4b7=GZ~ z(Pfl0G_dR6chenme#e5+U`dqgko8-}Mn% z5gHsABf-cSp=}0hU38bRHlD5Vmx1y{aCR^|?}1RsAjHywA&phARY zh6w4|lKKapr@9EcuxGGmivG9@mrE6s4c{*!!EZTZ&zf<+hBx`Yk|PrA0-8!f52|QryHlM zZPMM6yAB|4A=XR=01CbPHAYN2#QlkIMBf~xlIFXOl}v2KDZzaTy4twa0mV?z8qtA= z?=((x(PNSNQlr*NH2Qg)?MH_L6l1M`w|W8_d-~euHa99?`cw-~gODw+exR<}WSk}OkQ_U**d=NuXc{N; z;mFmiGsRt!$oT`(gksqbY&(Tjsv1@%no~C7!QoUGD<(v+196bcxTx?B3Np8TQoVsB zw*{jy4GN~0+9emGqRNxG=oy^NoH=BW!lrgofh2bu{YSJQnCrRYr7P0WJGSx4-LbE5 zStH6&U6tud5Do$`E7B&p3ySaKhV!(X9!M|V2qt^VKl!lId`s@-X;!_B(DJ%C!$Y>; z^Qckt+9qVH2N>@8cM@y<2QYVfLCsrhjI>YnOzHH9K+sL&{yh97Y^{bVlnd-u_S9MW zIH|2Cu2Y3F%}1x|bmN}3)`O^6E-rHuEB~O&SV#J_OUN5L;DzezzWoXrf9Wt2z*4Vz zr^_&n1k*j2)Z5FmUdQ2&I1(HC()Yix14`zyx8Rp2$O}ou7?KnDJ5nwJYy6ly&q-7I z#AlPu$i3N;m^I7w599B-b8Gy?@d})Osc!T(rBgFSr+?u5y<@erpO5D;57`SB0v%t2 zMAuJzdx4j>+(Xn^EU-ymUgF6<4(y$sSBYuX!ScN%(lR0tWU=P2be^Impgl}#p1u&; z#xF7Ei8q@rzB@ah&=NX1C~eC@MfF<)*IA-0Wo^?T!N9!T;}Ya{xez5!JYDDZAmt5= zu}jCHveQk&N4O998d$KV2ie&t`0tl`Ny>J*c(KjwZsWPb7jCBJW?|g*C%|TVKANhe z?s+ZTwEB2bRa2hJkXf1%kbW`R8Aj{5Ln>Y~qO)cY+w0fqVSrkI8XSAy)xS^eWb`Zl z7>JJH3Ocj9rhw&wXhY=iU17JB?jskC+^)DrkAHqPH+M527pq10!n!-_KB-prMVBOj z*Tm7*mYgD>p1uP#)UKau!z#a};2hYW@gIOpnBzgp$;YGgfHLKI3!3InnrXOq@m+WF z*1bYZkWEZrrGy9Mc+=p7>Y8X{O>GIi{it6)pQF|0^P7sp&N2(?fuNq64VUN^8>9&I zg}7ejgf$$P2v>eT_(50Wsfuwgg|migt%lE33*1FEFuv9DJaG#?_-2XQmM;)1#*`?g z3u)X5+;I;~^3eQSSzew{`sIU@@KWtDc(b!JAM}oJsC!FN1xmL&Q>M!TrVD?z9aF<~ zS6|+dsIoo?UAH7|G%HCBNHrO^c^T_>yjvWMe(!8b@uR@!z-n%4GJP&4Kh6@?QKN#o zyEI9cjQaDU?NnZs`p9hjk64VzGj(;IdCJ!aF4N4E<>}_noZE>?@+$xwk3KNxUhnp| zvlm8V9uD5?&QQGUcMe4dl`al$Z;o}lhgNPWCP&>tJ3k+Wvx0y4;_bhWmiJ2} zCPhOIq|LX|99ff|-VlPBV4g?Z7ZX&7HnLOrA=NH&AD(&I+;Svbl?$3W8 zPg9AhWL2G}OWK6V|F%OpiRqIXp~?Lq!|M>+|jp{SHVI8fP1yt19*?gHuR8~qpvBF#3&JDaS z{~KoB*45FSJ~^p08@)SJ@~kAcubd%3>W7&4q(DSC-b6cB;2LcRP!rY$v&*J7z2&B4 zKZQiD-jQLXrvxZwiyBjwAgEyBEy6jvGVUy_;LdpfnlB~+SDX@GVjVkO)W zt8`AJ_szoqt7m|#FYnqH=*KycYI6$XVpvnmq*M$cr;=#J>&tNQDTxOcW~7bA>PkdG z_mp(Oe70#Ud8Xi79V0M7$PdK%Pjob>OIl@tq`GGhIvKLfXDCRZCq!Qj5z=280e+NxIw>GN1IlW6u zTpfV`{D5+?g@hSM!!i2=8s@^2*SRnK|D?_>AdBXXQ95lt$sco+Y_aWF@v@5@LTD;& zl?;HFuZG>!>ixF4s=a+EZocY&H6ZMi_>)k4H;re1X*%H2{K13f*o?laJZ|Wm2!=1D zR8K3rMa2bewrNXHu$*r(j#78;-?pL zit2cIS=#dIFgt}$+H!x~^?uHe3z%XdFSQ+J)<-pDWy#yy+tD`$?)dIROz4`0l+~!=KveC4LkJQwSk-MgEH})UNR6Tta zno;sJHAh1RY6LxpUP?Lu(sUzM&}(JV!#%W#J1g!22q&`w28Ci{6j&RJEk_QyQ6+&7 zD4)qwS?A{G-LXD8Ex?Fnj)YWFIO`Vs?yK7Sbd=Bq<@sMmMUn|eD*?93$(@Ngv-lJQOj;qK5W8fZhvTapAh)-x^j0}7(w5kB1#<+oKWs7O{ zT7JJbirvAElpo_I-(+pR+CKVd{@8m!QNA^NyScUf?xwT7-+lyc_-r36zH zwgC)FM~G4dpg3%1(}~=!4SVP3a~(~&vAQt)d_MMLH$NXiv>*0_7(td zLAk02<8m>S)ExhBwDsOd;iaa+$rSI{pp>KyJ2ycfw|03d^H zaqR3?ho|L^NS9cG96xo^%!S(*%~ybn_i1z&E}R2K<^~VSgk9+kKZ}y5oLhHqt#IVK zjxE~J2tE_QX%C?yeZe3fVO3+o@&ptdSRgC#ME+>PG#T3RkozEzbFaRY5tFGh+blVe zB4B?MpV@x()ba>aybXKx@Ec=Z`~S#T5<@eV){@Y(+u{ws$1ft<{{fO;*AEEH_Ik-} z{Lx4JOp16~KCMoA!2P_iSv4p|glPykO+LX6U+%YRx3`f!D}nD#1p@T%49_PWy)MB|=aU@w-A*OD zLa<#64or=5+Fp$owv8hH)k&cPt-(%PGX}4?2F^`WsyjhbcIvCAX27#;nGnZ>ai>lv zdn^2K}qYfDITDFz_kh$7Y@^jyfGeEX&uk>lb z8s@wudVO_UNLc9x{XQUit>qpbvb|hsVNnyul8^;-<=yOa)BbaPTSdDJY%taw7aUcA z2jZu@U3CuX8U8#YZ^P+skf;4ekD{9Atb+G;QpqT(?%x?)nM4Rwaj7vU$WPsREZXLV z$$6RWCNwU-A8XGkTrQU~%2$y&pF6AE?uH0!HwDpI0)V`mz0idm^0^(~Z!!HWc)iOZ~4uxJ{(>nWR+H z;C`uy{fGh!InJGHVHZ^bw-ya|v3e6gU9x>Y&yK-rGuZW%-e{k`sq?CkxrmYDPPgUd z@a)H#6SR)qArVK^W`^t4L4-U}v|fXiB%Q9wM=C#oNa6+qCC%u@Ehw!*qkzKv31H`6rQIJ9V+vWo>BIhBkQ~*|sCLC{pTM zJ>AY$;VcUpGY_69Pch~`-MOGoi{tJwYR8Fi-2f-Ji!#giWQ_8e`g%jilj~B9S~U$oEsNQ8_@+(vHw)-rlEezy=F_#R;<$yr zv_vTe1#EHcb=(UM^AyGD%&rXE+J4L{e>T3f+7@V7^cQF__dves5AP14Pw37rA?4}d z%K+df&|p?zr^sGLWAQX|Z1Zj~Sf1VX-AazfyU(B+V9{mPXl4`zj2DNjeUkeNV8VFzC( z2Bxs0W{2dn7os+kH>1>$IcUr%rW0zj_YoTI6%HV8D6bK1lFm2d609`;O$7Xk(f{mJUDxrPU$34lB>M&xA49V?&w7t6PA^_^o0b+u1Q=I{D}NrQhzH zJy~=iPa+vLsN-H++tp!!Z?%EJiEF4MJmi0N81-Mg;#H}0oKk!@QiwDHfs0<|*JV}N zH!(;t&j9z2)VuGMY_!|IPRd%E<%`#g%m)ATbGxKn=+%I?g7#f%6dp9kz|tfusfkO7 zhiB8cA%h)ZU$1Iay{W)0mRG4RgvZVk^do4_eh_G^{tvF5h2zOYyAe9Nl>I(`k32UWe&>)V1f`z(v<_EN;RWENonda(xp-wQ z6&ct$U{hdy##;^-@Oe?1a(Qd5pTkKB;KR!g!3*U~SW6&i6;c^aH6xs&a^>Bd)U(~E z+bU9T=XvTDXf`1g%tm2}%C9cI-AHfypb!^XT|&9dbL(KT(vo0whM$f`q& zw+$UFZ9W~U#jOSo3XBs}tl_0z17MZ~@w)ex@i)kfx#b!$=$@g0aX6#T*WZEOC-T(! zd}qh$o~wtXszP^(6P&L2i@w@vC`cUs9oxe2Cwc7>~)%B|sq z5!?y=|uP6bYtdu0K|)=cF%WyM8_6Wq5JZoXnTS2-yE(277&b zAWy5U!t0<9>M>^ImpPxUIap3X(KkwN`@Wkxh#QH0$S_EJKRh6vn7>}C8I$a4^w7Jl z+s4Qr9M!g+;)qp9d4yJcAXxtDW$Su3n6r?ij0)<*03pw7#vCrTeD2ZNK_hSL$7LiR z_W6nZ9V_mKegyl$K^$OtZhzIjGg74w(AfiOx5uN8*rD5Qv3^i=G5V-<C^cOK_dXt!o0qiDTO$g*SV;27k5XH>A?wg+9_+CDvQcD3WD6=@EyXa zgvH-P3O+IdZaggcYc2saq6S=~c*fgwwsoGO?(*O$nd+bcbk^+jjbhB*Z3Q9 zvG9v6-Y)jzzI%KP{VZDynx)@%Qpw_IY-JDzS5oqlHFzgN;|uI_rw8s#XhoKQ+kg&h%bM*|o+ zYi$ZBI@ELsX;T}0e^=qI7lW@N=MO+cAw-;ATF=&F4aBo%sc-Faq_he;M~({W$&;#o z9}%_jlGpLrLq{@&0-$Q^oI4D~bXR@*rN*u21Sy=gx2Nk?=9@6(xi+}hRUxs$S^Zb* z`HhfC%wZx7D(k3-Cy`P=?gf*Wg8O^#CP@3YNE72{1kw!;uNih?PSD{~hjKF!*uQi_ z##P!jPW10*0xLZC8Hzj|P@#-e{+PReH;vmH+a-pxV#&5>ADxJ_kZvU6mjWhc)=aPr z)}n*-*_SrMpFuu==VAYL&P@#Rg&XFhYT=9Kv3=6GA{krs%nSOutRN~o_%myS1e!I8 zHf&XTRSxx#M;9&2I;4VWqvq(YL{hh6U4!MUJ=h9)9&%y_MFr`a%+;9%@T;NeIwgST ztiE-A8Vjdax;w+DZ95{`RCI5*q~&kajcv57LH0ViVu#||HF)QI673mwC^$iw>qPhoq_RugiGfI!>$`0F?f9J{B0bwnQPkn-!#hh&XE-?yU@gnp4f>~ zG5Q-gE8w>|+M8iDCoG;shWvO-QWmLam!bsOcXZphxxL;;hO>3YaSiM#cSv}?bMK<_ zgFCM!Y$3w$Nbgbz$TtN`{ymYWzY!FSrK@D$!%${?>ZnG$-0z|SzG95>a}FFNa$vQ_ zn0Y$NsN_NPbGj)p)JFv{j5!C z%QbVnXAdU~ze??>V4rG6#~^|}CV=I8+YB-EGSa%O(o;0z$xAQTJgo9v>4ZzUvu~jJ zAp3~1!)FVj3AO>UcS5k+6d}SIvGAN2ub~qG{UWI+D}U`pJ}Sn^8Z*mAwj~n#7=h+u zuZzp1Jx9#E#P9zeZkX@Ydt)v&lg&pw)nFN(>GvN#Z>IW=v{v>nt6Ee~Bz#eu0hi~` z8{cUP!PW5-`&=Y86)dnDt2=Ju$qBNWBT|y21>C||1 z)9}<58ZHOd$`GaT`&P*h>x%Qpya3NR(weg76@Kf?%kYrk8#EKrUw6IOR+)0eJi`Rt64eI4Tv6o4LrDCY49cOyPO#{|ERrheiJuHsV(2c(!N;U$=uT(~$lApzqP*E^x8oO=ksN znZ{n@ngIn{WBX;q3rkrU4tu5qSm!H!{$ZW6WTnm^)+)m_8f?80q6_bRsW{)`+TgtK z!8!1=ptQOb^wdYildO}oLWY*;`Mz`zQ4#0*VzZ67xpa3u^{$auKRvOohWegRtAXG| z-e;l^biq*>!reuCUOq(mueG*H)xM!>>0lc5!NSx}Wk)4lL)ITYai`QD(ks5AdX*H> zi(4m4W#KG_wm2tG8>?-!VRxR43g9_u)3!cif{Xdp#mlQ(5}0ivG@Dw-RAway$wyK& z1ttS?+om=Xa}ApR{Ztu8zkuW9u!77Ab|=xdQi-H5y*R?_U*M-Mrk#}rPSV5UpPx>p z|17I#*xM&JH8oMNThZ$CFI*)E%ESfvZ+qCD)o2*(of+_%JdGTYmkWk@O`;be~)h;_vsja433l+=QECUVE zsM{pQZF$P8KQHQIgm+=DT9)?r9e)WRr1{F-)TX+D;60_)oyHwmp-#sAQl|pJ4|gT2 zFlbz*AFZ?}*p-)<>MjgJ{-p`~vb~<;1>Jet0CCt;i>4>kWSl8=&lk^Lioo4P^Jj;> z_2mv|{1vAr_?MwkM~chhQWx9^KGZi{NHASRIg+4X0w&8%_R>)W56z42npZ9A!j(;C z=T2A?=e$4(wl+q)FpRYtMLWU{ApUx%PL0r%1YS$u$S|9K{IoEgJ9i z7V|mx60P!jA6(3ro|7xf_?2e_mD7uzd`oGPqXzt7)7Gfz4R< z5I9gM-6(_6&)tqE0{-mvKC*7e<;_r+Uj{0jTsDfT3)AdxWL%V$Tkd&s1W37^BUG(#zYah8izsM(nz;O9owrDr z98&Ep1h&yaeHPfvjJlNgQ(zHwAWz{frPLaKLfHOcSPvjh|8HLRuvVm|NoCR0$MvBf zX6K1Fw~S88&%{i6o%4otR^Rru^4P2a&Pb1(z0Hf}x3%N_|Dfy|O@AwR)Dls;i{tNY16#Ei6G|d0L zH_G|+idvdi#<}H?yFt0b%6Lhy`BPq%>eRw?E`~hG>e$T?G=PWs&$6dy5GkJZ)3jW) zlySRDrMh6p$j^tQHs5|aYbB39a$|^}6KvcQdEAy@YLhQ+!0NDfg=keYraxK>ffQ@gV@U{fmoi{t!Z`@f+cQe0Vr*w&cwE`GnNuD9|nVT%PcI zjD#?bja*DP{#z{DE8%8-Z1g!dNR}iB(h{Msx}fC)jzygnl9Gdh(9if1?Qa_zvrD7-yp4M({wr zvq7>Tx+JsZ)G0lHN-_Z$NU`c(;}%daSBVjqip*y`F{CkrKN4r`ZiPSFG5-(XkwHJ@ z%(ldbHzpMUKfQX-YBlO79l*}($*ItSNf_IQzznBjrWC)^cpv`$ifkHkhbAfSftUnC z&2A zjr`f`C){wdsv;}$p5ItUDvJR()f{ePWY?Oqpz2@kQ>EM;kU&oydt+O0pHJcQVj?|i z(ZRy&RfwK%M~T94n)J12J3w)1eV7o zLtG37G}m&nM9a&A=l@wGzeX1!JJ&luPfa8{t$9^3-Dw=>RX<4I7Gjzvy~RsMy%V=y zKQeAqt2;?w3HdkU!(s21bGl=tPnKNs7tK|n`B5ipXHBj1do1@$|5Fwe zDY&ZpyJ#NrV%!Q+_)+d&lr|{V*cCMBadJrz3ZCs$Knq|Ru$-jxTZkc6$aPJ}t94%F zf{k<&#i|e?N*kzfG-;NLu{e#({yCU)#{WA-*Tp{MlBbG7IBR zfvp#~@ncE84-~8HvT5U{{{5+j30a!S+9`@8woKS3`)7}eJ}{@77r`UUqw?JPxBzUQ zkz=&Vnar)&6gy!z1obVr5d0c54Bl>THslww+nhKigiaJ-#!OB8wQ@KznLC=OP{JG> zh{Slh;iA|~Kh@rI#lj}2SGX>G20}Sk+Hx%Z48KDi71R>#)Oc*~x~6z22_QCA8#3&V zgA3yTdOkXR+fj&a1rGGE+%pMYVz;s$pp496mCx%|p>2{UjA9D45xpHUX)XZpA`Nu& zgXRTJy%D25*QHKHA?>YSB!WXu0f^pmVGI|wR+qbCBedX`_AiN0r_A$fav08Pee{+S zOCq7AnSZ*Jtpa75YqU{8mlDR~COZqjXRE!I`Cg}kQv2Yr)fGAZ=b~|x5|F++2bS`a zU0G1Y8>m02eg@B}c_H=dTl^l3O+DcG{@5ZF0gl18uV|~layVN@Jq5 zfGK2jd};;qf89zB1WIIWVYVMeFC`f4`d!ogI4QkIhXS6+Ezo5sN!k!R^7i3M|mu2)9>wvgbHp{g5&ktu?p|LK>|o!MPVR=+C+)@`Vnyc~hQJ-{|X zzhfIN?yl+fc+7KSetZ^(AU^X!D8kGN z@Iulu_T)sGzEgb$T-;U=98dOJdWq5f>xck5Z>T$h_6H@w5>;LLPp+8uxHXj-YnbkR z3*-6qTWX6yPMqcEGVr$@nqOSKjbO&h%R@|xaXL^OCjfwV8FYyow`}W#Z4m zVHl{10D>OZnVO7O<{Iy*n>?etH&Oh7UHhRJq)A;O2;&7WvSLR`zG>whF%I zJAHfsWaQY#wxT&Np!|Dj_7_&8;6&%QtdUY<8-qQyEP~l)HNJ$Qtk9M6^_g@E2H>m`(KZkNqTm z9~I*okj0DaS;E`hA1)H1vLIe~U+s~6FNI7>dTd`dn591>o%bgH7Lw01wiB*esNF9vRG8z(yQ z_`A#M15 zi^lIyB&HwIK9{xuITg1UI$3`kd@|V;$9r8csMkZ3uiWOiljH*TZN%#9!|Qdc1-Lo> z5T$M``kaZ-@s#>!s9I!x!E9HN(z;dV0CG-4`O@e-!X*v-ZD0!cnVL+}Fd?0BS zXu_faS7kNZG~yV3>YB#=W=b709G))5A zq3x>bhw__#bjG6d=UHddLXk+|QVN^B+1G6ecie4=&kz7zEHU|_7P;nR8@XDSXR|JV z$Gyrg^T{(*_PjJbwp7)5xyg9gnu});bid{MIDcH5d*ST%(gNYl!`c}$s|vCW;6Yj0 zecq__G>x`b#A2u7mOsiqvyAV^4MZCRSz#Tplz9XV27@~9^gG@BJDCs;EZ`P9!pWz) zol-MKS+&k)@VI9lLHX=o1AC>*ydJM#)NN#H7R@ZN+LXlM+G~XZ`1P zpx!PEz|R7;cvq#(kM9-D^Nibv8PfnVc0l*eGOxEDOav=<$Er8`^(}Hb^Xy0kRrJ(y z91}N`_3QOySgfXq9;Bdag3Wg)QRpE1bw+N(UE78)x(1iH!FlYnO1)G5sk~J-Kh5nE z$)MfjZj#iuf1;d~b`smIni>*_TG1CtO=416st58kgEn@4POQc+xxzKE<}udt+}s;a z_2mQ~qIjBtbpd-hIEO1;&ehHPe@@{t4YS`noS0W;zVF86O9q!f@6aoBF8|`m0G!P0 zsjI5x4q=nDZa7e2D4g|0dTeL#Dm*Z1wk&41EPkBU{kZ}4U0VA#Lzm9a63&`98d0W2 z#ty?CM-1rdsXpZFj#K&Gc>f`c<_FBrU`F7}*tqjEK{|AxiV<0rdPC{zN^ub!k;>DS z=t(4lu<)L2g`yGbWe<>+!;rHcC3VHs%hT@eoKW(B077M&6VPg>lz5B znCZBq6$G0AnyaWp$rSPLe{?U(TUsw`k*lEo09CY7JUC*V^BqIqRUu&lrBZ8aXSNdK zIX@7s)9g3nz)H-W7dl!9B15Sji zpVKo4>5v!Jd1eo7SRSiUEg6R%*X90UMljO}wOueT^DOYvE(U{(HB>Ena(F)Nc^|%S z0ty$6qg*bl;z<`b*!D85fQ+ykljBN)uspP=B63L`#Zp$rIy8k`Au2Yq=znQH&%S)6 z9BN!sCxFJllDWROIrg#NAC^$O9ihesn{7*bFR8~aivxk3+ycXl2>?lyvAP43UXQpq z`6mmfH%l%It2Hl@Jy#;%i4>7Td}qR{QxsTE^`Wg5Ov+}Snsf{TdJkf61_R3%H``Rd zM?;!kJvF|uV+F|H!GPlZuOp^R04twDQ7R5bMVCICsy)I&&s9p5E9w-;rw?;NL@)Q>{$=cG=`Kc7`!qN z&i@i*uYKv&SvYbYTI8^ihY1o>Pej~{x;)l%H)W;ubK-Y0U_0D?e#_ZKkeWh;sYz~n z&~OljN~c7gzw?n@;;~Jp=4rgZag68XU$USSms8L+I$HDIK7o`yU+3aT+JW(;FTM}2 zy^UDUgPR`g` zlcCUaZ+Ufb<3q;bqV%#elJd~tnfhx<MhEi3z}!uK21r1MbTzwTKMRQr!i-}`P&VL*n#|D)_J z!=ie?cin-ZQxOCtl@X-78+9n@?(Q5$N@@fFK^RIv8l_XZk!EO+X6TldcBtQ3|LdGj z`|J;Ue^_6KYpz+Wc;5H9Zzs>zz?_T|>_}Xtt$P=;6U9u1u9y1uEW<1?$ouhs1_A3m zcqJa>#|E&VJ4UG7y;up)MYy8AS;FB`us$1{aaUSwZx$hy{?M)DZ>VRhD}db^>aaIQ z^*!GYNJgHS2L3W!dgtJ18smW1`X!6%-OE%LSp6^4ZN-v(H8}MzQjSfWj3= z0Tg`{B)Um_*HcnV>_WKqhu^Q`6)GfM0e|HZ&v7mZV;$C?tLrc1Y4?2$s(|*w zg3_O&7w;MuX|DR=m?_(i-i$^YN1WYS#-?)c2F+c?s6gp1jzhv22jQh(;ExsS260T> zyAWiE3J9H{=d_t1`lCUeGA^yjJeh8v9mc}D?3#V~NiUy?QxHTPfmdo#R|cbfJPa^k9E8fhum)7%w(u;MVz?C1j8D4AjPO)Nn}qu{FzVjJ6M_GwPvEC z&c65|RB_W-Lo`JPKqCde-PV}^+MWQa<;yM1hAwclt79I`t{);Xv>sn)r8tB-QOu?Z zX1l2LTG?yBIxk@(4fTC;v`AI5zWlzHV4IV1%O+yq%aeRt?isdS`{!e^M72C8F;g30 z$@3`?f7FTq`yh`lsGtw5Q0iK( z+F1EkLg%yRmY}U=z%*>R8<0Mv!sEW>v}SWC6?_5+(oY0mKO&n4^CF`KQL?Y)o;5Tw zEwu26l1prI(t+r}|7x>)W~(cI(y}^Hq1nho6_=%^B~m{J|2{`Ofqvr{NWIUg)rGIXIPe!lK(ySLRJ=VQE=#A#9M za*xJ~)^H31@AfDb;5q_y%`-e&e3$Rkek0bfwAE$0LzQ!O6Gl`h?b=~?k((OX zm&%+(0&Z*WbiO%n*+QKYTTl=H$3!(>1v?j6lNV>GjtO$a8htVdcGp)@Nk-G~@IlF? z&P*B$oE#;LS1tUL-aVb=DJQ%b57FtfYfJMM;7i>mjr~t^jjLy{QCk68 z7K@U}nJWOfzYV%C@|@)2WQc7-7eY-3U}H*{$cY%OtJw^%MNY0D&=})eX~OGECY4d- z!BH7YU`+Hs0+8OozI>kcTt_YUW?DmC(N>g5#Jl(p=lysZ>vCkX!o1anij-pZK90k* zcu+-+@fTGUk>4gm%I#&PikOcXL-PV9g;GgIKgRJrPGRey?ZFED^=Y@=?Dm<|+s}{7 zMBinCW42-fdv7-o3{FDdI4V+>AiNZRq5Nmam1LpXQ9s%Y&Z|H~WghUh=tVBgf1rt? z_l)x8O^I%D%kxUUI8v7gZNm8YODe?o;K#|w1@9mr9mEclW97Mu1I(Mu@FWCYuoh+} zVDX>p``K8P9xmGwlqBk1!h@Q<^M~PmvfrO=Z0V{#1(qvyj!)*fi1?-z-0y5#WE?k{ z-q_$H+a_>+XdhC|tF{W%+HeREt}$*>F0d{>N=|{=Va2H}*LI#v#Z@T2BI$S!Y!7vI zfwM!5tIniHhwTh@JkkVvqdoByi*pHfKdq>&SRZ2+GKR+{eHj&ZbNVas&yH;q9=z>6 zHqZ*yR~JAY?Bd}6)ag@ne&45emJ#&93Z>&8Mw%b&5fUL0bBrN<?PuOAZ$}NSAL%>xC?zG_pm<(N8}9C`X>)vlc9bejoWF zLk_fks`&3W(lM71e_8*saBy1tdDlT71>;-Li-w*|B7f6L4gtRsN33xEmE;YypKO*` z%#_i*=!y_%u5U>R@E5&!PFJ@#KPvQ6)t)r)cJ7g#JYZ-`>5890<|>B5-S zclWfo(rEQvb*uY!*(E7?0oJog;7Iu<*HT2khE|`NP_Sy*P$A!Fy+FI1RMI=e7@4l5 z`XCATyVlG$$gwVG|Mj3ABhU-g@QIf@dUkAQ*5l#^2_m&Q79}fR`~^juOy-|w?{B$T zd}VzLgsRItfBL6+Q@G~wk1qk5#{{^%Zn^enGTnzXaZBZj07=6ms>M`}3K!YFcKH(>^uSg9PT(@X>9F(sjsTtD@99KN#84Rlexi)M)U4|nHPqv( ztp?r*@db-_jjH*7Xb^yoBw9NWF_aC3E!`3o4~gz_jMAX<7~+ILg_>*bdPBh-#zj6q zlttfPQE_4t$*2^?ZYH@x+McHtQDWgxyKyB%jBT6c-rT#WEJ#i3Nk3^SX0Fog%HT1W zYgc2Kh6#md*uqMDm>r6oLG{wz-HQfrSbFpNK@R&j&SIi>`6bLTn=C~oFKXPEvz|)& zyWJgxKM6XybmpHrNUttiK^sZ=s=`FJ;|BO42ox&;clctf&-$F$BG82~PfzcmW4G6f z4c11%7U$w#A4GRseC|NEgqbY58Md`g^0_6_$McbqTK@~^`{IR6)yD9nD2|8(7SPJ& z?W_T!$=iu5j@wJNQJa9kh6kkeFX<>9bo5hrwQi~0i;Kodp^viKZhLU)TOYm@~pX=jElcnK2khbkL}(#TkOsS zvV!$~(aT1EEkNg}ZJ==NE?R}c;CMFyqls5A)0@ag%&(1jWHI4$?@UcBZnK?CIyQTx zo@nbBYF%wOZPVD#T$ z>3biI8~-Vh`Z=c_4z!M*Lg&~vcizF5o2`n)z`dFGE z7Hz^q{0{S`QW24E>p_~ue*9nlY=0})@}+PkW z4bJt=PDbYbRHn6oh-9l(A8Dr-6d{%NX8(vG-}Ok!n~$a#G=}BqDBjhG9{-&b5uki8 zb4k{^LB~XFs9fUQNbKR@E-Hw?JD;*n^fb->GJPJiktTd0!IN{9Q9{eowf2a1wTfYw zNq&5d6m~Ncla4H4EZcZqG|I`zK(3gmS#2VaH!wM%3Yx@?{mdn@b@z=Xm(0UxD)9BG zgL$NG+f+wwpd_(W%Bh*^l`V^9@1$T%%w4G=kJ6vK0#_GfVrSo}`9ChiOQws5E`NSc z=cRItGGh&5DRtV!w64($>LW{Y{(f`561n*Vppsi;of5PIO$dAv+HXQz8)9tF!$!Rr z#s2j$q*OD;<^G&MJhFe}pZL0NNJbNWKSR?g&Hrx#Z~Hi-(C@{RCO{Z|m_H3WY%r-2 zt!U;+I3%HoOa4%r{mF}S_&D$l`g_yuo4FG%=igC}YKt8>+mV}DD0gycu_KLNr-=*b z#e%P1&_UYJ9qmIKJ&f|1?kS_;R^w}Q3vWa^Nou3Z%dLb#`pDoxkOd!^`h*zEM0OpP zLytL`8L`jL5MRF*>GtY|s>XN>uV<0h$l(?up>B*QE-jO)3nww?g_A>$8gj!S!T8Nq zuZSyG({0;PKWOnzR!5JkPCTb?)wOLlaM({iU0ST%&T4j`sUmTd9NmpM8vmm{u#sQX7`N1>X@W|Udl2*ngf`k zpD}!$qt?pzB}$>N;7S9Hz4?jVFUOYnJLQjzKGl?8+V>eQZ&EV4MZH>)VIOYkD=V@o6hKl)&eVEF5RYU%&( zUtzkhx})kX#N3Q0wnhL^ckX_|KhIXx>(@ zEfy!Ks*CSAGqw2MG}dwNT*{r?DSa^4sag34we}Wedbr7bsYfg&I&Jvc<`n?erFpv)Hn8^NW;MAzk8rte!_KP1@l#?d>Z`CM)u99fccl)ouES3oENvzA@`Fn2>0V?w*cm-e`=zOg2~av* z9Kw$)fYxxnW(oC_jRIz*<~i1{8^59)6OyqQpvrryaF>_$ZEj!FB@^kz4(Gd= za*LC3fQhnR;tK-CuOQ_e`5pi7RNwpqV1t}tO#$>%6e7vQHj>ay0Exg_KE6%!RK#8~ zf-<~Q{xDz@DP4;DNw_WA)2CaISiZq5Y7#D5oy{O=4 z;Iqq7C3{~Ty3z(b;O-ZVn%K?s$tBDumWVX_J(4dGFBmFL+3-Trh}LaZ(myLcezb{s z2|t$wjM1@0_xLdF&}eFydKc3YH;y(FWz&!VRpEM~?!)Nc`M)jWd++jZ)=mev?wwUl zRK-|&eX315NW(Qj*58#;x25>fWx~Rwon_&Fut1iNBtlfY%ezIao7O`a?(biLosYK^ znG?mXtzvRs?SDuXdw3G__>WS#{USW%WlK-XimgsPH6rt`x(1ZH|98LmArH#0nxp^L zmwhBMWJo5NJ{orwO+CC6ta*C5_(x+GfS{pO8s^L$h63y8R4@AZ$LlqI%%cxdWb`r= zNkqDZk&cnWoK)7s$d7X)zt2uM#WoYqEPRvf*7v9Jp$m87u}iK8liXScVz_`Xek$DjS<4T`*L92U0H94o18 zrl##Ou#j(L7D`CKKJsM(csJHT%C?(mnhW$XPIPb}_*(IS00Iv!jt!|0TC_M89Wj7) zzEu1>!>zF5lG5z=Mx=T{k^oM97pR0kGM1MWR;+Vfoe=X#drEis2c}PznT>M{{C-qf zcq=_KKwr;r3)ie+>pr;s6}B|R{PJGvtS>3#@yJj747bm;Vb#M&C?5<$9J^We@jn?! z`KYA09K z|3zE+8y$GDAlEfNiiOhNY@7~zm0h#E$N6qFX%ZnIrJo{0cWOKA@IIlUpk=Ykg(ami z?4GjcnFDA$Eo-6WZu4VLOaL8mmY4P1GuIoLf+vKmEw38@V*OwbJ)$7(U6!BNR@hwA zDQkkmhGf*7W=(Zdy&a*L-OEDOmsm4jW5hH|6+Mcm%!GRDe`jb^*GKQK4)T3=e~HJ> zR8|d1n0Wj!1G4X+88-^W`(DoTa6NVZD{)i<=WCP{xMbFG_`TL#pLSJ-%ltjIN*lQwy|=Z^IE4IYB6B$K=T_&w;A;QZcy`g;`TODi3cDQWPI6Rb5c zr`B|K`fM|^1PuY_kyofbO=1{P`Ca$h4JVU+?P@&te=G>ow$;goys51&*hR??$-i!T zEEb_7PkyN@$|n1J?O!*zvn1GfBzZcXAH>)b3egKF*lND5d&z-lF2@1 zkt}R<8j!Ualau9mTWiKQXfh~%(LtY$p{bdvQiolP9Zlc}f8!1?eB{>qX%&^9^gaws z5*GHL26``1kpBS@5j5!$<92`q0Wm-|&wE@aVvJP|Gbcy@zrZ%cd6cEC%xlt(b}PNX z`^#q*oiy2x4XOGz2gnVCP(%_Ttl?>I4Yub8AK9V8FgYhKqrzAlSN4H}xs`&6N|x40 z@76MC4VOazHp}wmN#>j?WBj=5s^d^yTorZ?g8ZinsHb6y3s^vzUE%AK@!8Muv&k`z zZIhKZjfn^y630BJ34~MnImbys(vxITD8Ch0wt`3Vp&HWNM zn;hry9sql%&$^CWRcd0g&uZ9(yRsER;s1f+f^~_9zj~k3-CKdNkPCgGI^R!A<(}c zU6!;q{F{=oYHn^Hn?G^XK*1D?Kn=ITeCmf;4*%;W56K8sPt+YJuSrwHOKX+*K6x5i zoR0^KLRek_e)>kVCQf6Z3sixlGT#mJ$uxAQ`+)I$%FVj!nXVE@iZ(Q4z$+vOp!Y(#nZok{k|H@GlSY6Wpdp==4 zdQ`1-3uZ!xt}P^*FCS?)WbE05=XE&*&L*U(svvu{m`!=tIG_Y@YbIe z08ojbk-D0rv=$z__b24j?N!<7p3nZ@I*Yb3e@Nwo#IE#tb`ZZl_nK4JnU1&{%7ezd znW-=H6!<|v_VU;!O3~$`&D0<77{(mae^+K6C%&|I>wSVG1b;MOYe+Fw^q?DLRB#<1 z+4A1qGoY=wxP&gL&#eCkT42Dsz672U)R1w2?MG?A5|QZV*&eL3C|(&o$`bLCkZi{E zz1erzb;xs+@c613~-i9~4T`Jc-78~~7i>IEd0GVVfZAMt|P$f5=zx2fzFes2XNFgt! zL%C}Gk4xv_tzv^1*qHy~A-|rxyFOYElRC0G=QrQPmWy+-d0uQkEs|FkQz78K?yspt zgPIb;s*w3fRTq$Nkm!K@GFFqS-vqLD(Mk0co!RKIqrt+J=qX3DA}w|`svR9PXY#dH zsZ!;1HS^{}dZN}YZj)19qKNi}5`$fwlNgO9imlR< z0v!ynoRJx)W3*u&*CfXgeenvJ+>MPet$zATd--O0Ny(2*?{B>CIAjIHZ5@Ba%MM`; z=mXLa#Hk$l;uYatjak9&_F{LA!iV<-DTl}QXZ8jQ&Ay4EwtS59Yw(<&dJTH5er2C? zVn8ufR4)*uz)z$1_^2Bp;3-SqkD#9{g;exE{*VTG;9{H}&QdmBx49j%)guZ1LvxGj zpvvKFi(;J7^APkDJD9uMiS4@^z2lL`_1|^QCJ$E5B}^Chesb1o<1|#VIBvGEc3m>W zmeQB6*Eu#Rb3IwsCuPIA!*6Q2b!%PLKArlst07Wpz64v=CI|RIX72tQ0%va=bcIPA@}weFHTnKZDtjXgE?Z&ydlZ3sS? zwgOdHU~5A$gP+cr|A`zqnndm?M-XU~(SG`V9%|`Doe=sVXDE^VVLXNN3>lhWR%wgT zOQwUww-JG|&)$CJ5rx{Adg$+{EAQmV*ncNaJtMfW1;$V+%wgA`LTc2EsvFJ zT(Y`4nJftzzZ?ZiDb+o?a_8k|ECZP~_;|bQ`2EREJ=0&FUzf)E*2O-_Tbt5-q zNe?t$HF%aOt*F#`jC=|{Z4Z~(*_Whg9B7Kwt%m$u6}}@VMbFIb4*!8kH;Ed;z>h!^<68+}cw9F0MFJ z3-IhY`07P#ZvhyZ?jJEEUcR<-vhcv`xeB3jDGb?eClO7Mcp>Fx;fb{dTh&!A>9EG* zy@ngT9>t=0w7JrbSU!Q#+|H5+GF(p%-?u?9dW@Z_eY?Hx4*)keR2ocT-5eYXX$iLI znM!Z;FX{2HgVFOZCUJaDk$)C{x`z4W-A@Q+zAB}4XaHO9Rsz6|IP22Ne%DPL5$PbO z-~WN0Z6|Nh>6VVMdv&sf9dcUU*j8 z7RDPdfSMAf|M-_G?Ln(+T%`;GZ^0~6Joyh4q=~CkDOG1mg8B4O=W}mquvxkIi?S_; zu=EkSMX8`kIC#hpofpk*{>jPa(Z=U;?C2C;o6TK^B?FBX!~*`%xCJGclLee{)Xv1(N8>aBr0F^ zd@3hK$Yf3rIjFN5lE;Gf`!Y+Tzjw3%|A9x+RCD+CJLdez zU-eUeCj6O?EmCPJeQ2`{^v8ZTC-aH@`4Bf&f8?RR1ZUw<>SSY{z`HD%YH`Qa%j*U$ zAzhr&ypUJt;`+lj1#nO2Y&l7Vz|CxUdb;crA=TE~7+-g>POx|`8B*D%K1$t)=$cjFAZiiE1x9NoQWHG(n!3WGUwd0=j{ozr- z1im_(k)qBR{)qpmZcVMB_ug><-%`*I<>!geI2Tkrf>o{y$ZEa(N5UpHd2h8hI7Jc# z!AiedS(N5uJo(2Ybp@7qzQbYXYV;HRi&qpHBhez2>vdkuon1hNzRbxKMOAqz20=po zeIntFE}YM~N;|1~$Rw|+#{Qw?6OUgam-AerWPNJJNc*s}mMi!#f71c6e9 zEt=<6*q^tWe2rKLQ>?xYY_bL)fns6*-aUvI1}Ya8=D5!#sL^I+cq;5; z4@~k8kT$wFWHo`FBt(ODA0T(yEwwE(LKYJC&7XqO1L{M#{J+N!(8>+J>fr&I@|~FK zr#iq(&BnJ!A)NL4JDZFS$+Vu~QC({Q@anwGf7;LF(|I*7j>l8oQcL%xed27 zR&r&qTTSN2R$9_eU0@d6W|s5|X>fOn3|VVK#H*dQY1YW=M|T|pcLhrgWPRpEFj;<( z1G7HzV__W8o`rqAr|o|r3vZ5ooYZ$9NG5oUnjr|6JK`rjKZ_?>4?k=PxewsT`f%gtpvuuoN(&EfMx{ z@W3!VBt}b!u)e}tHNbG@Zi-%`*1mJg`ofawm=I+yR=&cJiP-F$5*RPa}^MJD5l}!DW2hss=ZXau*iWU>#f8Vvm>< zeWKVtZ6$AbZ7qeJTShO*sy}7)rF-RNlGaS!VpMp08+;E|Zbe}P-9FcobZ`J8;ZtrV z9j7)fzUAJ;p6KbSac_4NCspoJ4OPEL1C|eup7N`%_{@&#*Kc-xUSPR%S~9 zI&}r+liZa&0M^`aGiIyW->0AlBrlhHw>y6-_qa|+?U7{q*3gP`4DUB`OMKH{N|kQ2 zBLPJhk^z?fsVKUc+6l(_6XZ#ED(~Q#6koGOPy$2!q+t)PyF8Xx zk`M1^r0&Na+MV~=&}+$bbWMTbM7>wLlV$#N79@+XaTSnfSfG~xM#&&6Mo#QXD1LlP zg3_Ky-H>dCcR^-~-XW{pOJ%+KXg0xmrDzA}Mc}xNf=m%5;XbiTHameS#`V~M_x@R( zOJ;+~^PmF}v_~yd22DcDC#-8vGUuD2n9#Q)pXbrAmKe>cTx0KWgT^tUT=Ox{NoLT#K6hj-_pZi zO)8|!**WU0Kmr+j9Bh%6Dwzg9h#sh#(YF+37+J!)+m{@5IGn4-aPHa&(p)FJIKmgx z8XPKFyL=hs2U@Lfeym=dLR7;Eu*?L3wtt4&aLyYROaWzt3;+b+PHS8 z^|J73#xrgOxq>qme!MYq;O=|TFB8$Ie_F{sp15K>;G6k=@F;G)03_Oz!oN_S_{BG> zl9kcg-(D(ls5f~`fEvtnIGd8=2b8s0ML6z0Dzed^{v#^b3BC|?BTlvD5IK_ezg+v6 z^e+0ES_SXVjG~ydBet5)Sdg#o)K-MpESjNaX<(8m!-J!hKdhCwDX9}e6z>>w%H5{z z7DhA#c9&WcUm*)NO~ltoW&HZ5{;A&LwQjb;UxF^0BJPd5(hiQFSc={kxg@gWj&teW zy_2Kv)yCDY@@||2Hv-x(@EJ&T&?Rga^6W zm190;Aa*{PAh$v6vefISxzR}EKhR^&m=hgjnkh{4kFSZ_HO5{;KuSR1cs(LmC!21i z$Ups6+Is9SYr`#1KCHW1U?1x#%k=Y^BbLUrbjd$Zw?a#76?|Q*DYn_%Pi96Pqqluq zm1N5Jmj?;|^puYR`^|<~lwU+xQWHgrZ)V@KGrJTQ7|zT>+KAzuk_U%4$ zc;W`0{S|92sQM`Hg$*&PZTt0IRx8$EiGg7~a?}2g%0LDJ?HSofg;Mp0@Z+5m_vW$f zx=Ld0{kxzX;GMy;;3cgCJ)%D!4-Ns&FXsbt`ouv9wjOSbwtbj3`-#pLtcb)rzwEe5|bz;dIWLGP(_w$q%=s&B1O8uQY{s9sAFJe5?Y{2qmoFDRTVNGIPLqa4i-~=zd%bv zJ9x-{nM?fFf@fgH-eAcywr&dfwJR>oSa8(>|Ahk-?!PYb6dn(B7FU={P(WA z;s~D3cj+L%e*V`(BdsRBBN(6q4PaqFW>K|}VB4&-Jom%&>@l=aTIjmM{hIEh(tsIB z&T5>#PwuOt17g7G92s4gkwxdPi>c!8viuOSn;`eNy)IEM29ss*Ji+F3xZKktcM3EV$|H`3^5=vMV|0gu=xKCGK9|!l1#T8i7Rw$l6Jv{h$cBoQ zAF1lw+dSjL7uzi|)x`TGG1*H!Xn1WYX0Jm>k1dns!lctdUBi|p#7CN>mZNiREm zXuZ4$=x-msVi~xm4*Yt@)XI$zXOpR$wQ)K_ZP&%X#uO@ylMEvIr~3zYg+{#6Zoga{ zE}$SVBf)Wjvg1UxNpW$HZ|8$-&0EG>mkEvPI9*?BKeop6@hSJSYj2L)qh%CE zJpGQzLg=+)o}%Ob1HJbMX@jBYEy>3Zv`3vMSSN<-BVpsaa#S9)3h)&7(p>V4Q{hJx zYF;dHFKxOJ;+;qO*@N2p%WOBlWY%|!H<{Eg%YGPfsnUte2lk|F@+el_O8{uI!brgq z(t4vzsxg>GQ=N;D-CI|DUdGw}-%VLf{d|IRKM%AI%=uHs&BEPWuNT$m%4?pa#!j!{ z9SUBQ?+HT_roY6F7y{}F!sSJ#S;SLil3G4{J+)PTjgj0-vHjrCWVaYaxaf&U!-tO_ zuY;OPdEse<=MYlnrIOgzpz(h?Mo)DedxUzNFkuu=D6#AceA#ci>dEjPd2{#4rJm7w zV|2I4B}KM&nV%kIX5*Xc&f37)oshQAXG}uncBO#PF6lshv^YZ}`71Zv&;5$xOsVEy zK@E+}?^xgEJFod$GIYk-?467%Qm0gL!IjFtQz;*l!ISm{_p}Bp1#(kpX402pvz=sF z7{yMe=7dd);y;ZnAcfI{?zSx1-|l3`USZGl-u}>6!rTtFW@XLak|fRM)+xiAu*s~w$K@BKMuE_Gt8*SSnB1a2EA!^o9zng}In!vD^iu7SB79&v1*VBISTs*7a z^XwPW><2@4!%a663*@ak?)c8}O69ki0>^i_AdsDLI=MOj6y|sGlF#v-qwl;gnM^}JPPu9vPZb%r zqm5|R$pt`S6|ABrQ@h^`SzxIXEp-5c6WBK#fSyCv%ll1F= zufDk8bU>Uj!6VI&eCqJ#G&G zIN4=P>AEjtv=`sMV|mbxR>`j%(#>*if1h7QuOa`K_#gQ2Ef-t^W}ZJvROl_m*uWs? zd(j<*e&)BDN?V~bc@YYOyYHmx*}xw&fjkcj55ZD>`*!(jN_7o~AZM!xc9Esv^kwO_ z7I)oY^?;qOWZ;M;KR8p@n!AJdW{|4kbPC)geXg!kBcFV;TMtqV@qT$%I@xganMD(X zWiWxIS;F@n9l%)6$=y;WVsc*mnk?u0{wr*yZM!(xa1E#8`wV}_-q^VK3$$}ChnfU} z%VfV_>%(rT7i5iPAaG35&L^Iokw8$dx(li%g;*qWOB&N?F3fi?zq*jpMu4uMupG6PnmPf+8o$slFj9$&fQ^j~w42`~yw@d6HjiK~8kwpFjbV zn2-G7nl<0S=n-n@DZQ9D3Q&#hzAud~7dz${QW!pu$w>lWlnd1@Mw|M}DPUYaJjIKf zna{jvu~qK+{BcH`2N#Sp5s=H0yU~h z41WgzwxNNIeYh-d^>w|}L)oA!99~jU!>qx)-&lxK(CQkya!=DYE{veF*N=n`37W{S z4bS6Y2id=73JL~ao;Cz@HLuH9=?@jI0fQsJHeVOZvvMxLl}MhZa#zCx#Ulrz16)_* z($*AN7@g1KD#NRXARxRyjz}_A6kJ*fsu8z$Y7kgsM&tcn`Z$%NGH=+n>u8%O%VEG7 zyRDl2Dd!!q9PH+^5JEZS&m719aQFz;#_RwnsCC+FGd zDaLnFpaS*?JVg+>q;Vw9dvF^-jZP8^d(QF47xak?zd>>G$Fz{k;+08|%(|PK?XvJp z7ciXlW|xlQ>?eO7wcO8-loQLLbxOH@;F*5kF7j6v{TOWgIn`AR9azHWC1cgvjEj)w zoM;2DH3c#i9-loIowV9XqXbE;D|!lOsQ5+%vK9SP-yE*>cjsaCdTJ6Ss>}?+mUyK# zl!=RC$+T|aG@QGYaVg2y3#Cc7V(uZB#x}eSL;gwwXKLd5%UO0KYvO94i^aM%mf z4v4x^plNpwo!Xn?(77d|7TB3>lKb5lycX1q$Gm=Zd$QyG^Aj8$vK6$ zaG{)nvNch@1s4D;y8*&s8??L>PJ-lCw#sm~sJUR98=aa{T@In)!hKw@uYZqMYEQ_M zBRTklttQ@TcL#%Vg&*Ut?hM0ogJ z=6_K*HE_QO#=KwU&o;5_N*b!IM+w%(N%3C0kRm zWfQdwy>3Q4LJOXhQzMm{*H2rAe%0A8e#D<3WP!)9)*c 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

)QR}5A)2db>Hi^ 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 IpjJQq2M6{e`Tzg` literal 0 HcmV?d00001 diff --git a/Template/Output/Assets/Fonts/arial/Arial_font_2021-11-28_14-10-13.jpg b/Template/Output/Assets/Fonts/arial/Arial_font_2021-11-28_14-10-13.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f16091ca2127c9b51310e258b377ef382257d8b5 GIT binary patch literal 69990 zcmbTdcT^K^_&qowKEyaZr`S%x4@3!|GNMyDytEs@`Eq zoLnbP!bDG>V60J2_u*@$vQZ4+snj4v&b8ijIlJ zC*Mg)y?gI|T2^+>!$*&EpX5C+DlRFdmX%k$d0SKauCBh}eOr4+XBVxz=hM*e$k)+t zW8cSr%+co;78y&+D_h$;yLR47ls>) zpm2UoRZ-HfG{2r`Bs_AsU$OOS+f|43)eB@I8mc^?25fOSe#-8d&kLi5v^Qy@TYBWC zOKcz7nJAB7S-K2Do*a}rhB|v@I<|x4MEA>|uD>a7S;Gjouw-}XpMogjQ&)mvpOI*> zdmDB%DZLMa;O^Gh{pAg-hp>!^D*h6MS7tYDTtusIq*8*24Fb+H+;-d>du*lL;wYY8 zUexP^7S&AwEQ(o_hYDJq=M&Vrw=y78I*a5EfzVLhKp=cUQxq*xv)$2IFuyIY$!0J! zohgT~<_1QH zprn1EwkyLBUs0R)O>kI%kg+UmpXcF9)C)Qi@#UJJ>C_<*p!yNCdS~YTl<3&_>LZ z0O18WL_IGHB{o1Io0LPLzY8~tD6u6l|AK+fWIILys#vsN-e4sVm`S#5gg`_obkX9L zRpKDa!{2Y@;}!{lG#3D3KTcM{W0lh_lxa|a%$R;a9e*sR!^5TeD-FP^(kwXC0@NDN z%NXErsJyk9lBHJze0+d}9S-|O-0?R7{~qBj^ZDZeqZibGwBKV?5rEC+LB&SYFwu0I zqC+n~%&U}HAG*;!HCbnCk)B-_q-Z)V&Pidte8&7>CCK*aHHmn=n%DBSBd^fl=3vxJ zulv}5G(j=dNa|BT%`2X}3s?ssbG4BSj(xhEj&MJu7A1KhoJGrX2g56HJUb7>fh{?e z-YR>wv`GF5HYNtt`z((>ZMZd=xr4`oxBG!H^ZmaO-O)*%BlHq$F`R#wDorj+{)+XN zSx*av2k3=uC2ivMLEjvlvNb*P1H!evPINCZ{or@VX%g6L0xvW4%kfPV73 zTzmgY1ox2f+9gZ$v;L>MupjR|M;`Dc`~nzqECgwT!8(AvEnnW7`#pQi{&?2>A{g=O zX<8ubI#1)%H|gK<05bn{b}JAKUDUgH<_^K4U7@h|YxF}~J!~j@=#`2WTfP)^VxnP#Iu@9MxK5u>FVDf!8M zTss57;SHdZ8|A2etpq5@k?#G8ETKhuXgzx)RwQFnxuEUkC$7@=2koey#flf#F1UgOzlY~3cRE!yrDNY+ z@zKSTX1`{40%|;VU-J0f13~hEMNojt!p%Dku&%M4P6OmQN{Xcke7iYK@<>2#i}GbO z4Y1%8N3v(+0lZ+Ui(XCiE(Hv?3xJ-|$^-b-BB7_W53!*1wyeiZP+12WP$Y$w z0Ts^EvK=Mx>E+}Hg(BhM7|y-oS^M`xrvPN>Jl`%B^2E1G#YX%tKGdtpK!@KV&a;%B zoLn0ptQ4w(8zr1GY0XV(`(v!g@uP>&Og!B7EXQy00k@IngfE0p&gE&s858Zt+?_hz zEwkm~+uB1WtxthX-N2}^8F@9}FIWjI`9SAZJ8x#(@LuJ+pj3zZI@t<3QZ%`zD*Yq^qC;%JUfRNP1mHk4NqcRP~;$!vu0EXlVB z%|?Q2HB|2mux5{v@d;``1A=N1hX$FUpo#pfI9l*EKL{&)pTf3;?lUV2-sw{oUSOQmcPK||Sl!0<>4WR`$y z?UdS8({$gJ@99BF6X23rO7fpTjL}@>%x{(GRQxG`9kh`aqkXrp1v(A&Y2w}yo;Vx? zKPCWkIg)LuJ+ME<3WSr0JOJ!V|2=fjCI2D$Pf$BEGhZb$s7-2cp*Xv`Wec;zd7m^O zwB0)!R!Wfyi=lc->;g?RN(p@NDcJ`;LO8;LF{l!`JaB*<^n=1Kg%yDqwEvbC$S66_ z!5mubJC^}6u}Ro1$^#&3e7vVUlNCdCtsI`(wPgzVz5QCoGD)g_wdh$i`IU3e-88EK ze%$eu^VNTSPrw>B7MK}d3c^&}`{mcqZ=Y#%Po17@k9`Zw(1DpUW3n7rr7v^A=1P=*S0|x-Fno3O7!V4AUjDXxS*L|v|8BF^*TC8BZ%GEQ7s@IP ze&X>D0E9f(gpxpkf)atRsTCK;zfJ6-g`%_bdFD?xrO_}+7N0CES$#!Mh z7Q`eQHoRS`;3o8)4QeUa?Kd?`#PkxD73tgG_7Y+jZqHH#N^B87wC_@)`md|FJZbHR zuyO%*_r+3sJn?u3;!LC5gT7(*BL7IP_SEHfgoToceqc2X@NVw7(P)k8DZfOtq{x+; z)|xn4id;UoyKE;75Z1NRMZ1vTM}-~NAnC&vnTb2+G`sjg_vEDOs-E2^Zt&poPN1#0 zHm7f+QHRr{-n>%sM8>m)#~($CHYeuPBs7O@xwzwwB00l3R$#XU_SHbsh!^wl!Wb=sQ z6SV6Z7Gz(%Lr^`q{+%`xR?Ta>Za~(6%VmvxyFkq-{&!gyV;;X<9E|6bOmAlSDA>UXtGw}BQ3?`@a0ft^~S?#<9 zK-rlG*7g~uI;ZLp&d)_@pSynURcycc(DAyrNh^xNCES7G2{la!JFBrWm=SX{rMu%= zKlw}v&=DNFd~36=znK3qAsho6J^7$y>QVY1k1c9t z13t@_h9egM-50MlT2o)UN+sfH9{TR=Fb*bGY33ArEr;}(M-f?Hceq7v`4alUn@M6 zO*3%3VRh9~Njt%Iq7pDunFa6?pbcxdW%_%dD;RnP3+`DD>VD~(<;=GW@|?{sXonw^ zD$OdxPX#m4>|*J?H%Vf3m4J>!zKT4C=gvPsP&Zi5@g7awU{6H$PZ8v`8z~34z%_H> zUC@trDN_VqWe|4C25wieA*VyeVT2e_=5pYnJk!s_!qrQ4VJM%@OC2|V07|T)UQ&L;&}Xy9dh6m5;XDtAE0H7C>KXA6UoHL5;&iB z9>Cd3&to@O?kREeOl6E0pUu!d1z=3j$K_B@Mp?`Fn-p4+#z0M+DV8=dsvAgP@^2NY}r!xejI2bzK6=l|yX+*Aq2a1&pvJ?R2ULU3sS zBM*qu^3ExUEtV@l_6Gu8m_F8nRm-(B`)+zI0Hf(55eU)-Ost((C~` zx0;Y(vmXZjH;Tlq0;aE-3)ph~eu7fOb9H_EI_=AD(zdgmoR-8%EGH%wBoQw3#H(eo zcu3`W6qvI-lnFpDV_S}T>|5M%#F07U%d?DOSpw&k1Yd5lX1L`7!2Qvc`-en8KW&ds3Iub9dnprJp`UE!+!v0tZ__i@+Jpj1tAniXXWfqO0QsiH?`P z^waNsYNg+8bIfNB9z463K>*nmt?&wT7-mf>Ed{dl+P%1FJG>xQcirLXt#>^9dISe9 zu5#^Gi9hleTf2d(y_OXu%axvSr3ssGv&JIZI_>uXB4RxYb-ff)GI49wDf+odWesC& z3&T>Fk!7Z9s;gii%?=KkvvG5Dx)r~*O;WLOc`L{Ypu}|_0A@gB3tMB*R6N)(ew6Nc zqn)x_TCa*ke*fOmXV&xJC7&criiu5eqTyY>a%G6x7;1+Nr^hY*Z%&=l;&vGf&C9C? zp)oqq>`grxo7gpA+f=k{{oIe{G|Si`;f~oVq9brM63`>msY2w~k&f=cTv&15Vry4qDlXNm$!bQ?Leh4@q53Z!x25>P@l}*y{S3 zo5)G(O#R^?#FD#H5y;&RpDYL#rTZaqk7j2Jrpn)OWV2=Zk2{EW3c`Od~=+sBLXly}n&%MLub3LR`AB?CT}V&A2nJHRKe{=%|7@e^toD-ri!&1Pg;Dqnu?|j#~V&Hjzsa-oOK=~_Md@W}5+{#l|7_IU$ zm$LweOuAU_q#K0NjspXPi!Vv5t_LsyLo)>A|5S$D;7gRzvC zQCOJvAp6CAh8N_~iYiUyX*i&OqM??rvJzA_keWC8b+75Z)1ICG6Ub7UUUoacYQ90w zC`|QOeV9covs?G7R>Cnriyce=#awzvST3sy=!IFlgu=a`4OC&~^Dfr28 zP+$v78i0JB{aOu(C{l}}9Aa7g(>zM#f&tFX)BQ;4$50?S(-?|n0h{4AEX^^X<1+Tg zm70YXfcvhk0Tf70+$~u)vw;HmAz{ljtwENEV)1Z`KxSryt(qqq!1pL5BrvsvEGmJ5 z7+m*j7};bT_Vl5D(;=^qKd@=K=3#7ci~*E{;8J zA#{{5_SU=Z)?F5Y#6rvXNd&69gvZ;yD@?gl>@z{Rn*lXHz<|jNC`j#k z1t%Rw4Y^8t7rU7I42GPSC@omZl67V zcR_0BCtRf%hqhglb9paa5o!xkIXjSzsOE$Y<@V_tC95-P^iGi zxjdSw=f?Q;-rmb-@dTo5*8YA!?x2xx1fX0O6_s(Q*1*p5qz^rFQfxG9-5}-c+IKHw z_~AUHU(d{W$q|e95i+3VK4sS=J}bZ)Mhw}QQ468f54d=Fa`Z5U$jJ-(xfFKIdG+k6DxeL z+y^Zuw~7HtNf_wu&UW6#tyvxQnwQvT_5mo3>6r&&|7B>U8AjJxs2Bl|!9nmh(uX0> zoB_Nod6%N0g2Ql8w@MT^SVNINs^YNvr;p1(;dxr25VeLbUHq_(Z9yqPJl#4dZm$?D z{tr+%iS7e*A`eR3a|XGqIyKCT>iQ43F#THDOjZa-^RVa}**m(bsM2`<%s-$Y7%v$< z-oWcY%W}UjRcBHItX==}59q3v&i(XhTVoa?vq#}e{RecMJeBQPO_EBOizs_`j&W8) zBfT+u`t1#WAL$ChNqF{nrF<(e%d@KnitTRTQEj3@hDDTqORw(m;T$UOO`6O#msWPH z*2xI9&~;~Sc}CEs~XIQ~7H#Qt)_Q8xFhNF6X@gDZ3<6!tKY+rY?Z-gL^WE z>F?z|3Ee+6QWziYtujNoJ%38Sj7@X^G{OB47vR?AZTU!gLAWK#w$|_kla|w~`Dz-; zrvwd+Egmatd1p2dk^@v@&fI)LaNEhYeUn?vMG!*6acNaDm($nx=%OpZI!f7K?YJF6 zAm~|JDuP&mnU`!M-*5D$N5$JLn|+Cup@YQ<%XTuK1-iBGFYht=8jj-G2Tfgghb?JO zRla1I!;v!&AKp9qPCquFvR-cK9}0^GV?>*!hOQr*duin3fJdS^3pS`-=?@6=rsiLW zxz|7YFg4ARAL74!M5Pyg(65YV|AKa7XDzS{D5xFy^|>`l@4}Z5#SMp(xZDNs8P{qk zsHyZSX0W(gr3d<7gD6KUWO)4PerZlUmzj9F$Q-kve6Ww6)phZJtZuIvU;pl=uQ2^z zq0xBL^9f$br}b>$!e0(aXWIftV-( zoJg{q4;qZs@zdw3QXE^cCh;+)GFD;`PiSTfq*73`U!|ma63fcpAajEv7QbjoCNipJH`U2gUw9QkhA5H-mxun+C)`U80cD7uvDOJnUalGLBT|-r%w^ zIbxo-;ni+A20iiE0c8G6;xd%6xCBvmw{%RIkX4p6kT+E^8h)U{S7HjufqLWvBsba&|pOIxki9 zmgROUac<=OJ~1+!NDteuydmj)WG@!`=IsT;+xM{SP2ksR`A9h?VN?tCflA=9ED2D% zxg7i;i+^?=HqI^_15%4BsywX*VDX`WeULoh(w8OVN}zar83+kaQ_e#I%jPC=wiqtd zUa@R?S9%*kSS`8;dJ1r}^I;+71TcxFz&*+qhRKl$Q`Krx(*WglHYmXsBjF?YSt6Vm zs=K^(V%(BsgJ3T@?~iee(N(p%f5jsU^Vb0|Yw0K_W_RyVO<`CA9%mmWfHx`i_Z~w~ zoAmp(CsXy6m%>L0BEGFZFd>9PhjdZJ2Aw<-GF-VGXz1hfh{evR12!;U7@Q?`jx2Id z%=P1D+I{Cl!X#hw-dSx{HVtY56126=soOZz-8k_|MY&TQzFiM5h^4NLn~E|?;-z0U zRv+c5CMzoJs;icANC3Q9e2F0kNw)yqnk*-)xPzrS9 zK1kQg0ZErbWEfjiww3TS?{e1cEcs8|=B;xCK=XXefM>ATOfWJ16XkO2ad6aW`@=z& zI`oS6;K_N3=A5O8(B;CC)3QcAU0O$jKr~V!$CFINS>v`n?LdRV10{g`)e6-f=!-$p z2olvwm7D3(R{(G=*CX_DO01QqpVpxemHL$BJb>LHd_2E#9s*XIOlrax1hp4vW5F2< zWf`7KDv94E<~L!H!1@Dc(av3vGyG7zdd)(`1Wf_!fQiF7AyRo5y-Qgvq~eitw}s*d zX7D>qo`Hj2z-AKi+*sQt*VOCEw`hB7gA26=ZO=Cqq{i&N|338H!3YhMO|xrTuJQ`*RM_9##d45?TQoY zszjDZ&%S-SuB>aYSYH`#c1nFU*7NC=X2y|RJ%zO{H#RQEhbTP#(zUm-f4!(6Ry{jp zEa!sPScH0r>`l@5N_=FagFSV7xdvtd)vGgKm)f2H9nH zbqz{StK53|$7X83{Jzu;H=ua_buf^B?)ybj3^<8h%VDsho0g`hQ?~tmou=q?J8}S@lVLI{W*x(PsNYl|(>Da$g|z;vl|yoSTWuaMFJE$w zst(U@*cdPPX(ts5=wu$3u{hm<<(v(GtyzOVg*b=B@q7(D&y!_x)ndPU&{%|VP1VDPdlV?r8s_Nral%)&GceRDUL^^urMYM3&Syz3PHE4 z{NBfCEZ6d0E!{dxdoOwRo;0q1`U!eD@3(#jp6wrys@~Xyu&s-;{2aukh3ZmX{&{Wh z!@Tzg;r+rtg>%2MpEoxYwcMZ6Hrq+@`1RYMe|W|8<|l%_p3i^R#5>4~_lp$9Y{{P6 zS`I_T=N|stKd{Zo(>(pPmCbDJm;J4;S%zcUrbgogl;r(F-lDBiQk1u@3B2jU=T`e= zw~e-ed(oQqAMZv!RJwNgAAk&?_u0;@y0>`X{|udEO%SZNhu=<@Zc! zwcFc+d^n6mZdSt1wQ{F5nn>(tHY38bW;@ls*l+DN_m=7BkgY0;r}{pA4hM&t!$ZJB zO**Qg_KjJo3Fg@V&|H5PGWCJdK5-4vSkC`|&c{#B* zlSN5|^~XXNQ{eN0GL;ENWGVH+d6Kl_13`7%A9D9A9!Ze*D&DyK&;WhH73}E< zb-TrO2o4IU+D;iIf4~jMHBh)x)vr!zEK(w6&n?__y8)Jc_2#~yLzOtK$sk(L6Z1Qo z*&D{C^!jD8WDe%_G?L7o_L`iPJ`jKL{E={tlAFZ*Xk_O*YnXh?5*y(DWzXRDiSJ6X z?nS!stEM7dpH591KY?{hOK>b-m3>%VO1)Vx@a6(f4G2%%G7E~Ou%x?>*a;zlPWj@w zL=5N17t8dn3{oJVmLE8vixg)b*yUL;HJ;~5C<^QI$IQwJBu^)ypEETcPzhZvmnrR3 zLZepA0zu|2#rmHJxWCYVO$zHid@ztg-=csa$9eKfR#4EQ;O7PDj4&JMvdmaZL34Ah zoyK*~TfH&m!e`pDABoOKQMf_hLKcA?GWMnajTT%1s*INFT6XyLo+U?{aP}I8TeMY* zgkF3i{K(w^h}K;(WJzTe(jLxC9fVNj4zXa)?QIbQMwz;zLbO15V!zepD6@IDL=ts~ zn(96O=(_LL21eLq=EIr0{{Z(AnQlIQa60~#$vzMHC@)q9m;$YQr*N~K1eqT^b7IZn z9Jsz)`tpgVwHAID>^JtT6$0EpKV}WZb)r zguWvdBx@@6N)RL49?^5;O>KYj146q_njHw~uvK6T z=-wX(<_EJp69$cqKADGDzyS$)eI3g#CfcoEa+(KoxMgEI+ysbfw}8Pz z!q0>bGxzehPqu+pW_} zjMV2fR&IR*(tp4UKUJ^m7@zKl+KM%PuPuSYh;7J(0^2B}#M5+_{z6wb$@a~!K>$9 zn%#QWioO*=VReYG`zdzymd~p1VQPeaBWT}M5(5|nyGZp%EqD+~A0J*GId{70UEt&+9xaB< zsru{?w>QkGPwrFeBF!ivh-tuVp1h)eTr8xQdivuBZ9%(>NB5A1Rdm?uRlV0mvL%x1 zW1Mu!)3l}d7g-(|RW~zRTVY+ifGcsf(IyTVV? zP`1tWSiRf|LC^w`oSeidqIk1r-8~M7!?NG$_9gPt{A1)wEa3&V21(O*NVV4H5}q74 z2somTYzb-VPVmIL?0)TR%!!N_0SdypR#x?F+ua8+l!*IDPfY)u_NnSq#mO7Kq>nCu z-FL`>)X@kb5eEBBvnOYp6^C#VD){A^z|^MXNZGUkE7VS_;uy) z9r;eSFAkt*zt%rw$?k?^lI94aP-)bG(DwnRErdGG?PreF%AP#3`*}u*!w;P2%kf!u zYAW6sun9R~j6h3mW6Cex;08Fjtiys8wUV$vKHoSC=LAeAvkTXc1bw<^?H0~VD7(*M z(e2T@Fe;6m-W6&}wXkY-@Tv5B2pN=pH2m9s3f3sd`AN;l)&{lYVJfQO?=ft&BaVcReldjo2 zMskt*bdN{!?E)~tHTNf*+H}66&Hp+xW)M$mmaFQbif6U(i7QMx{f|22Bi@?V@0V-G z_-&%vSzRB?{E+Lfuv%LG0K}4UFtg>>v-ne~A7I>c#mPgDN~ zqzCBy17_sNcr2vvX`MK8Bwu?IQqZhTmw_ln!OF#9dXv1xzI<~P?_tfe;ZnNkECe0u z+)aWyFT}~?WQ?E7*`x60MUG!P!VN9^t5*x#{{f;dzgEpGS3OyaxOE^KCR4Pb_YGVh zE}9d4AhI7UJGHDBZ8t@3x7j>Dn}2G4?r>DOEqU^`GDc!9Wl+TXWP$SJq5W)cg;A2q zpchP=9RTOyOP(eu=H`oJa=7gw(wu#^{{eT_ z{z~H)vrw5Hq1nt9Y-W?%bE?C7C|c>WZ`?kGwf|}{Sc;7IE)9Ge(p%yzQNNn^@^eZH zB$UA#DH5#vk_wU8r*K(96hbXtmv@@WT*AI!QC*3pwEa8+F?9CT17b;%)7$tH5Sc;t z>-&{8B5d5D&AaL!v(jXAm8V}zSn`=e7QBWiG4l_jGn*Pbm}*9E!~Ig34X&ax>2fQ+ zHsK6q(pfvRx2O3esc@Xtqc2H93GSL~dxuyEIx_I7vw+RV5`RwF;q?>F)&N?HuW0Cf zTs=Ghk%c;U#R&^efh&{s&sTk zyZeN5ze9Qlmi2pgai?g@bEf0MZYXk}S$-jTsy!tXcKT4pmgP9{2+LyUO*TFQz>1*~ z1vPh>tx~b{BjO@KC`~zg!@>$UT?`?~n-x)mflGG6dG53(*;oo#A}4>DR-(2`VUvA2 z`WVg3pI?4qSpvkDn1y~jKUMdc4eV&7N&%^_IZ$9m6#%BPKWv5%-MRW9gQF{<1}F&y zL0JFRs>QOBz;SzJt%_kWElcu4=GFEY=1U_WlxOD~lz5;Fay~>Z(Xsi<0z)AdPH!^% zyx>PrEDp~D@*M@jY2nj(6FR-A-D`odd3INgfDBQM$R&#INa#IynIR*Ck z3XYN;_D-0t-b2KK2S7f=vc8e+M2W{SYRyGurJzxaw0oj_xB+xISmhOdpD9mTtk#7L z*Bn4A#B^>^3Z6d|X7iH?#RoK*IpNSc^AT$pq3Yibbf%KGmPC~+7-_pw>>%@Sf7K>4 z^9qJBILPucWw6TK)E~OjjRFE7X+GHtVB%syHk%t*;>YkTKQ zf^qW!%x2mF@MSFLId2u9BzCERV0huBA!QyA7>)&JGrVmo%__63RevgQ^nat157ae6 zAxG}{WuTSSI=vbKJk-Qk9dUYR#NmEQPbUDD6Q$C*fKqTnj0{&;IhRwN+aS2!m!52G zo1xsjuAnr#_a~@Fb{3zE;h)MTwPh$NDxr6a-AL0T3zw92A?3>$_OM?xL=!q%ADlh? z!lvA1Vq2^)yz3;DaYfVR!?ysgOV|RXyOOW%F=8h*tH$YZH*c?>{s%~1zOi1b?47xG zU-_%Gxuna$WM+d*(%4e?P=?AKg?5?D#2F~)w7ypTXP&518Ck4z6_y_iA4&V6^m0sB zN!u~SK;gthasmB#3nOqHYj)X=-ynU9`f9I*H*q3b#{Me2I!qvQY`+|FwPC3@b{5N8 zMdV@V-1^|~iSSm)tb3~7A+%#yu=d>=>i6B?!XT1L(HVSJAgDXR+eU_GjisbJ`^;AI zux>Ew3Bmtd;bY>LRw>~I%sexTh#2sHdduSj{yhvkG2ZB^cNf-a{d9Asf^$#(>U=gr z2EIGs0vKw}Lm^ajDNRHCE>=r;w1l{R1u8o{qidxm+nYr8e5~}MV<-M03X~2rQPWw=1So<`UAnKcghSyIb@D-b{#8zJ}m>NkcR=z!~cM{ zC1H1-M(Nys6R-Es8mh=?7^AbkOX1bl?OljBEpd$uv5y_6^35#}niO-27`bnG503nzwWsA5iN$^_M>YKC#>j9|i?HP3dMeJV*j z>LW{9qz7?z;=>b})`Yd!ACQVa@%$D!$?$kh4P2t_eFLKA)BsQ1P#2%c5SNe{dKGix zS!fZLxf~T$_HB{P#E4{V5`M{_6-cqHgr(M9JVo+P>+ZXMM$6F{&M!azB6Ks8bf#X;A*Mtpk~`$MDqL$22-Z%m~WW{LCo%Xe1%uK!Nb zzZ5=BiHk776vKDOkraLo{^-pMT_DTPns;8$WTCgs{{cLI)i<=_dr##EOtq})zAOss zzI*y^rSGr1ZI2S%YXN$dL^LD3c8-DWV_@&CfDN&OZ49b8f zv#&V_oh6tn=Fal%7Av9I98JM;>Ml&K`m!~qdtz8TsLR~Xs}`L6%bRdU47-kdKnXoX zt@BMnqqxpz{0m zf@Hp<)8a-Spw`i&tRD}J7%;G%Y&)+ZB4!3J&>DVT@A=G?F>Th5qE+&8D_YhQ-?At# zV?^t?-pF6~8Aeq4OA2 zdF5a6@-r@m@el@vlX!|>oLTsp1;`j`ON<+2IiN6)pK659U3(=)*ZaCax6QhbZ$dm8I+Co#(!fz}P@^ z!ZAYf6WMJ6O%@oj+`a2S+{n2MXcYwV5%#Po2&NH-WxEG{qLB&~Pq7&0n4!wmRbCd3 z4Ti$w4u|RD+`t%GVg%%6?IT0Xz}vm`d?DCpl4fuwU2m$~&)@GKzy;)5v}Eb!fOo=2 zZi^UZh0v;wE3A5{@P`{|Kt{D^%rdRIJfjSz!$mNQhF@SOljr}Y66E@Skd(B1?Y}l( zEuxgwBOMNCYFkGSnNAEOi!mgWHGCrN$#C*Gg^4Eh4J7tj1W7R>#s<)Q|+=$(8hZsmOM{7!PcL=r*H(f4%jI*g`Q>wo4qHgki>;$*-5nN$=w+r4_TXy141cBiWNP)kJ9>3dW05yc^rKQC-K zjos$E?Pml2#bK=Tj{D_`8M>hfM9{0qX9I4D{P>tMt+bWNUle%qpgJ>M1y=R($*Up# z@7i;2E8-utRtN#tES}vzUfoTb9zPrS2vy`vwRhD1+7^P*pBCw`g5H%2y(~GcySjH6lQpMFa&R(%DYQ$a{f^$h|0nx~`q8y?ff%i+ z8;}Jo(Q`9kh~LF3UpYN3wjY{Xbx|xG~8}@5l2; zn&w5?S74q=+Jd&lZ-m>*I3oSrrby_NHk$kZ4aq?KD5}~NIP?6I3Za{{aGd=VN2vJ6$b40|q@t z8%x)A*5k~t%RL%hL_jwi9?&zqlKD6gwSW_XioR*Q`^sbPLi?(R*ix3uC7>RAN#(V} zP5Y~o`3vXQlTp_tg1?pwnI&?}9&BJF(3|Nrr}yq<(>z-+3+`nh*Zg4wK+;}~f48Jec zn!~5bf7=Dvxayo)?@3R;iL)y{cZ?dx%l`?Cu`vI5rfA+bjDxB;q;`=e2bPnWBgj5E zt{+#zKz=<=cD!=y`}2!8&z;QZo#`)nWX_XlBBoPFEkTAd*f8J{z=iK5mzxG>4@>3~ zP^%(4AH;3=oS#qQP1~N9a;ZD2`neoEfAs=EcLad*W&_-$oNW(CMi}l9s$4>ZlaLFe z^LEPa3nX=Gq~{1}VOg49Kt&D3bnsjyTKrF7DLwO~8M>2SHeR+j6wMP%7=x*hv@^e{ zfeaUcr~;-zDL**n>j!^%;CI>UgN`HBdeE+7hw5I-9iT{}Q;)}+0&FmJh^#O7ol}K2TxOEWI;|w2Sq+#N)0J?ap09nKoaUr8= z=;s6-JZgTXz6!Q%|M*OfCVKfDCFRY0MhD35EffXoW+BM>`^yNapy2ktX(l%@kojQk zDDKBP8mJzs$^1et)1kqZz6jHgI2>s?dz(+@ka-Yv>TEu3aYa|b9NSF|0u~99uKZrDsd z-T$*la~}bUeZZpN0tGBzi%5dc`15DL zd%+%nbZ56*Lo`~xo4JI|8C!H#Q~R#b5S33mLbpQl+ ztybcexdWOI;qf#X)46~z5WVcS^AHLwxX0@3y%5#b^W-lvlCUqJJySb=FqsvH!|)*x z;uz>R&ko;NF8oIz12THo+J=d}ctQ;Zs-DT9dRAhJ?~x_+6-vTiOng5fWFh{so}32^ z+Hsa`)N;p3@vKAlZ9hx4H8iFRTcWenBm)dl2cgFoj_uV4qxqC;YJ@*Kdy#5=9W%Ph#r4l+qedk|c5S_%8=ILv_Y5BO%LKdSJi z?(^h7z$L>lQ+&Zdj-s}3&+Mm*buxijbIjpY>|O&9h?;eG|E=m@Octcs<+l%vhd+dq zs>sunu*G1`$6zBE+%HxdE8?$Hg|c%6OKk!bn{7XTpQ~q}Xp$CR?xbA)9LAKq-f^sD zJ>yu-d*WOq>ME(Js~|9Bb|vYjz5TN(K**O~%3MKX86uOjqKwH&;^@)}AF`oT3{8!Lr%B4^bhLL$TU*HvtA!r}C0C_s)43vS$h-@V?58EEMNcsnq3X z{F|e7p7c=WF2lqwf#Cl*)`UO1Zg`X+mBnObnmsP1nRm@m_2p3j?zh8{YHHUUs&!pH z+o6z{qFYWVtXlov6Qy&?aawU*lt zy8hCeL;m_H+^<1!R(Q=UBRYJ#IL$5^NkfSKtu@pXM9pMqgU4&mwMwCFs}96*n3Ff! z*|9UK(YmTmQaOAaY_W{NuY&T~=LY#=)$4xrN#7J)iPDO!GKh>;=tys?&hc#fZ`_n*RMQU`B+wGZ9IH? zrxWm~8h)+*wEOyX&udT1CrvWCG*yLSME1Y6*o+<7Z1!G0WDpTnMvk5`mM0dG{6`+s zH;0}cojT^P8$8yRB<{uGWXo?AkH1X*b1AlKR@Yh|;bA)n_D+#{;Pc>w+W*2rdX%Q- zx?#n|_l-}^ta5#k#6^nqNvE<3_%Aj)(geM>f^{)Z zo#iaWe?UBes(4?T{Xuf_V0riJo~E0$1jLrrg!@X~)ZWj2%Ue4FphG_3&?$EF+J54e zX1jRUh24hQbJ8Y`1)rkNYaEvA@(&U8EjZ96G}y931g}58z|uRd{QAhG6_F>bX^sT1 z0)tAPC@5(A=Gx68?aDv3v%zT2ym9;+4Kl)Uvu#`w7j(cu|_mfT*fGKS8o?o9HYKnx8`@G!y7Vv8x|8a@kdL2D*lGh zKcLd%_Y$OR!^0uZ)HqA!C0HKDT;T`$%{uC@(vj8v<^9n}HHME%9&|TE*~9AZSN*qN zHY<<+o*g{b^JQI3Q)7$xU$pK&U`oH_*3f@X#LaHdeuZ}eR?zB{?FAMSo%x-K+E_>z z|J`qf`;sERuB$g!`yKV1P)=7i-J>nLzZFsodL*eSg|mGVUv5$FnXs-cSqX%FHnbUEW@H| z*D$(=8cK##kQS8gmKLQH2I+34yL$jhhfa|ckOq-fy1S&L1cvTr$nWg)mmgffwVD0C z_j9lH9PgSheHBTKx>A%>m3-uT6)K@;hTt+>eLl! zPgyZ)S2kk4DrRv>;1r}86BnSG@Ato)U(4^X%DHikcf|wQr%_c%@XpjCYB;s9; zn_imd{-BNxc%R?Ze*G~XrrG7X+i?u_ zSk^rSTR>n0YZ70s2VlD(|FW3|B4hwEbE4O}gFI&jfjJY}|1B8=29RzFQkfI;2;!AV zQ}t{WDnS6@ChwC^yYmtsFg$55*q5~4WfK^E1W;QS?#)L7C+PZI#-Bc;@Io<5QO>5V znQvdPa)dp9?7uWGkV`*?f;p*TI$^#1{uXViQe4*f-BL+$X*b=IDWVIpPQZsr!W=<8 z>jcoTt;+F&B;LBs+XK;gZ!z*HHo~!Xv$0hf(n|94j(tg6>r^pC37m`K6#q*o(js%5 z9DA2<`#XYWxEMWPk&z*ACQd`d4=sExJX1S$J!^uE1-ch?Dxe-f=mWRIY;GtS@QnNc%qcOXK_3x;z{Po0URm3Mufjr z0nqceQZt~c>fW`R64IsM4LznI1{1q2DyBUUPu4o)3;r`x_y+U2_g3DHN=%@sGX>~Z zkl$n=enJT{xyu+1?Q|(j$l`YgSKp}~;||qu+AXEey!j7^%KelaML2eUxdOsEm>%JC zqi_oOfWXN=&e{S$b{dMd40}eaC3izP`y2z;j-}a4nhX*WLfgm4Ar-}Y4LYxJ|5?6v zE$Q1^u8HclJP*uKw%}I7F{Qj;_ActFWjMp_M1jFRsX`V~^(CZz=c4fXeY={o%~N^W zc5TO{Z6a#sMvZJR`G22g`vc3fPd@?qKIE=}CU{S)A%2+Lf6;F`jxphf!mzw(F0K*P zgSqO=I_7*uA1srfJU%~1LnS^^7P|RiFHSkda^BnUQELk;Br{59=pE8(M?2kd<+L3` zMtU$`aUhaZIZ<>`v@n*1DEOZ#G-*$UG+*4E$wutjZ|bz@5GC3fnkbHnR{XBR{489o zpC#HwJhPhC7h#Q|nV`BcpnI0Eml3U)p7>T6`c9og!j?EQHV8kxMpTVxLsCIjhSZ=& z(9+UnpbxsI{@U=+)syKM@8G?R|4$s8MN1HZKU+C#pz0L`QzNx9VQMH7$WUo5%bjmO zQlRMw=7bL|$@8gK&p(0wlLXnoZ)M#7k}by9Qv7?UcIWO&DYrB@9y7;F<5xFDby^-! z4S-KSWOtWD(^Nz*bUDqrpHOvmifkrvhJy4_J0Lb@p^asIDnMbBdogN_@d7z0%ri^X zU&K$Yg6<;9(RX1AvQ!ggcggU#FZUGP1t%#$I2Ja6C?LX&%JKct7=r_+LNy49ze@1` zd#!jhrTL1N35PE!N0k*rOs(D^Omv&Q^^)*+fEX&e=CP$YB|_=wEwlIlbfeejp%y|M z>M!0954DZ?#=Mby6B=8`2S?n$ecMd)rs%O{vXLkWB}M z2Xk*1TE#7|AVv>AeG_WO;VB5Q7*>eqh7HY5R>-kM%RU=a*JLO$#+9trJK;F6GF7n9 zA$Iui9B0vL^CA~E@gFdEbQx_D`3u9_!l;q{IKk!wLKC~V*eyEtn+S5Zw-Y?mMtR4w zHX_$Ce-T?(XeiloUmlD~Fvu1UkSyCD33|XMfZj2BTF6flpi>oP8g0-aRD1)*2j^=D zsiqSJq`MRLj_dBrmbV4FI8g-12+d%CU%pMipzO2 z4`fF-I#FoUnpfll^R7xz)vkugpzc1hnxt>PY&?*HJ|vKS??HT;>CZW>@Y=&htWr#% z))mW-T*5HdVT`-43M{kp1!wQ;kC$V1OytpJm&_+D;ZoG_%79k!16!K6U<>ODhJ^o| zgeLWsYEKg^l1|m@SZ@M=Z7;FAho2K7Z>{Y+LVKef{AJS@0ib{IOTSN0YSd zf{U^YhXsAx$5#vvB*TfOK|f`4VY5Ln-8Y5XFC8-3AG30yVq_>O@v*IE;Ne1wbtZ&1 zX*Ki^E7e1sJj(@=-(@9X^U#M0{mi`>;KTlXUBlqPJj=M9Vz>_FfB@a9Dp2n z{rM@@8{AS}fD+J%+H7?CEd4~#a6GCRTV_9<`^TfFy+HYf7@bA^anFt-D@S|76`Kdz9!MI9!{BHWFj zuaAANR-vC?)F&7ly;w!2da*b2Zyn~iOg1-ON6W0j)f9a1HPLy;3-8eRs|GRj8c5PE zce3EKH!nm@?Z9asPgjM(YFl*CM4h*?3fV_C8S&?FHJCdxG@Y$l2E*4bNV2sd3zo@Nnft^bYiE6W9PjWW=iB-xuGtX}KBPhL!Pcac|9~EzM|XmM zvX2a=n8NBe#XZCelm2QWUUI!vt)H&F-amS#RPpguq5{L<&+OdU&8xn#h+jcnV|2@U zHu^}B8Tf5~qR8U7Wllm%-)UtV3VPtPX7V(=dR!MBq!36MdVBq3DdOD?Y_wVE?^gGu zQsa*SbGM|6Lu(AStraY+u-)Diif>44Drind@(+?U$0w4C2XN{id2S8pw{)x+lJcF@ zw;z?>TSl8|ji2)R>5R>%R2;R_Qw7=T_0CE?X|q?saof0;?DektCNbftz*yY@ICBVe zXV4Z!3;yLia+oo&nYF?4^`bk6a6WCRZ}=`-tUFw@VAxChRA6>tPrE|LLcnw-cC9tw zc)2Fv_(?Cz>*+7wk6Tci)UmC`-u>rS6zA-MI`PaCiVY;H!SPknJQgw}gYv6&zQL)E zilW74PJEP#qK+D|-@l$Qhf%l|<$V3lK5T5P7O=Ji9LNCbeM1bHbZ+5L}r$htTq$USf{utD(pyQ(Z>`jLo!5S-$rxZC#%KGU}^ef7s3*!->eHAwZI~D zpfS(4w1Ipu>h{2L1KCt!<;cq)OqmG3sj`g((rVy>*-Nm7;hleD$0(ml25~ips@SNP z%Xu!&qCA!CdjzbC;){pvPtsi_6qd(k-I7-?F(Vd9=&p2y)gq$!m4(YSybdrQv7$7r zW*iXfE3{br%ahSvC6%l5+M#!)+!>YVrp3*5N*jrVIY18SS8);w8~f_mVWfKB`TG&I zj*9kzr|`Sxm-JhDPwMXu%)(fZ_yrOpQtK)NW@!jh~aH>5{_LnJ`Drv&ww^({XN-T$ilAtZ~z`7O7iWHE-(a2aB*Z%>7~V_trGuZQH2Ar&fhkFAvA z(gqbM_9)41$hK$j6wN7X z)ZOH(b%eA0OD(+%Q7&0M%EwHHRh&VcHP2`N5!SD~Zd-of=|zZGHO0zB%Be2U&lkS}UZFAtStqd z?}26MCHT{Mg~PGW7l^UAR<4(a8ERHg4QA4|$V%??8d}O^WG50U$zWhuF&k@T1>`aRfn;_k*L{6ekcJW|mb%`LzG94m z5S7VO{;X{b>$v#Ax$A&mTA{oNDb>HJI!1WA|1!gJg&=Xo(mn9S zAvOj9x;aS|X7N|Jf4IiDGY88AHd zyDGyVt95irCQ>}lg%lFFAs>A@3ms)|=e~9*?T4zal@!N7I1*uQGnLIN#q=V|Kn7`b ziMUUn*pXtTAukhS1R*Q3vVD|>l*mo}=eJH_944y%JsF};q~xNEk~h=Ee+vOeJZhIe zNt$};gK-GA_JJdf0zYz$-TX>y0N!9{4^Z^!$CD&ug^fwXvZZe0(JHaz*j6($7Oc>a zOr3zpkar{op@H%`*>+&^2KT8jFIB6)JKIkga)&oG)e>Z?oW%7wy6djExmebNnH#z! zi)%&E%xW-+;MwRHC5akGaLT<;HMLF*4g3#C0a(%+D?3iDm_14?)c){LVrD3U;=OhW z!1vEuOsFslw2xVfaTX#Zr7YAX{QfwbItL!e2X1;EI^Np8=3>AO<)Z{UEOIQ>J*C?%4e2tJvg zK+&to_hF}x974)H9DMdM`y^{+g_kMw_>IyApT|%or3JK-t$5@t--@YKR1oqcb-&h#^Kr-^R>LCC42XKYSZnC>zftkuFOh+H6}M% z+WUA}3C|uwe2K1xjgFP19>0I#(q<-6zU%B)yt>={cmDx}s#FmxO;rNus^dO&v?Pkn zU#x6|qGy<|piEF~Znq0*b&?AUy3cO2_;_-eWU(eqx@(=m)fo{zGti~P`X6A^L~y=m z;)E7&_kDtJPd`5(P>F!o%T5Yy#Fa=YRR#YCSn|w2f1pOkJ&?4xuKx#giU%>A{vCV# zlMd7Bwg~y)al=AhCIOaO=|mtY$?GICFb`5TZAdbb*l)JOq@HE}nk7`o>Lem!g(Kgn z?M9Q2=kaOwf52gOV0i20`yTb#S`K>B?JHm7dmplAGe!&M&dZPhgOEx)^;3~Ck~@%ctfT;2ZQ4p}nx zH#iA9ig0ijKEa;c5w5;=S>XJtPa6ZO@Hf8{LJ?V@x|jXZ@0^3GIx50Hw`|0YKI7wvRl2v+42vE_i?KuJ3ekd;@c`V_5s^8=`OpKD<66 z`+CRWV4_sI)$WJN6xA6=ei&W=f{G^s>D@ty2RU|!j-hR>-I z+i7S{D)T6X3^<2r_Cnp;t%*chO$&VuZ^{~dh4AccNl`E}ywiabaK``c-t7Qu{u*;#>#e!h{g6rFdLrR}ItF)^CDlXIWVNV({_?*huts?EL2 zCvUsUacDeH6i;h@T4i2c<>Jx)6lh?^fYO#sP@JB6GyRZc$9qd>m@P_<&i{)^>OAa< z2Ts!%1QZf;E%HYFuCBf*P>!)X0{ zLHp|KP&$70y6FK0Oq>3lUYqamOj1=pR!R!a<7>oAsZA5r5CjLKi}O>31xhg%ihMhM zfq)gbS!SRhoH)*O)F^@rxe~x$?nLuE<*Oed0DyH$?%DO#0gXjE$=%BS5LWYrF&Ui- zy+AYePub~Mv68l5Yk#t%I9=Kgts#j@^(srmUQ*d97!Q{(oZETw_TcHIC1(a^4~J|e ztSLBp3c39^YS?VDXOCaWFwyu%`~L_bN%p15NHy?Yutu)_^kx#$_9B)q;G^Ha*jh#i z@T}?e%OW$uLbX>af<0C%!h?1%FNMhlQ&HH`zllZ!twr7c&MJ`tj!82P6|)Hf>HJO1 z?7$Cw?~TH;7QKE%S%_)OT}q{l8qNz=G_p4tOG-bDP;Cuhckbp>f(_R~X3q;p6bMUP zo(@ngB0&w-8sc#hjrzp68e}0uPEpl57gH>s{L30B-b9gq8R7Q%h9I$l>3ez?jM1_} zaERPyVqvy80vX`IPhyhB6SW*V8x3W;vj#S!rC+jQ_IdSDA3|fh$P<;R!Y2^6N{pSZ zau$U`6nX>z4y*!Ds_}Jhce_%NP-v=7^a9V{Cg#pKk}j`Z9j`l4;MDGmtYNJ^)c&bE znebYMFT^EjCZpVo|L_XSqhOhw-IR2szl2E~ z%GMxt4rIHi6bF867waL}vRR3c6wr90-V;th$EVn%nTnMJa^H%<+Jx6EMKzUE;aJ#a<=pUoCAZnc5=V-tZb?nTylRRC1C?_|5d)r%OT2>r-rVulMW zO)Y-p;;H`QH1%H+Eh^{KlcP^}iH;Q`d{+^C8mAmDo&Gwe3C?^wj+NKE@^|o{UFw4R z=K!av6yKP#67zKf8z;={u2gXqKd(N13+YJ?I4oad0V=vN#2lo7=AyvGRq-^HCf^E4 z2kje9Oc#rUW*Q=aXrP8VE#?$Y6g4&V{&0~(p1=bq%j3mlbtTTkwBKYW6*Yqec*T0m zwMra_fB3NBmI92jj zaWU6hrR)Mof63Apt&m3x5lo<$B}^CTK<&M!(W@$FzmCB-J6{?ys(hBsFUdaTm+q{{ z>~V0Oi}%cg3)k%^yLqyY0HNwy1nPGFge@TC+;$M`-OfJc-6VgIpz`);DU;P0s_g$h zBs*UeQfd?#EW>UT!5qZyZ;IQ24_0$+5iF6oGVyuP>pxK+6I6rx1pA+pkx)85DXP;? zQ5WGX$V9ryJVM&1#p+P8+Zd*~vC_?rC^Q0p9pUdhOP*13;xVx8WdIcMi853dw7dH* zAU6{da5kSi*J`|BAL4>wTgRO(6X4rceFTWMny-VYywDU0mnE%SGk|-nEt4Q-_-J%zTfP)=1+taor zI;BA2++Ayoe0dpdNqCXIZSb?CcDjhFRpX=Mu1ooov~F4Kr78Nkry6F>w|Nn!ex)AL zvFuw1)VJJ9$D!~a)91gx)NwHsM{nBTJY^Fng&ybZ$WZ>PN!tf|2-I~3Q5VA25<>Pe zjR`uB1cF@PPHyw9=wp_y7R=S}U+I$acARZ4Pbw)U0)3!meCs(CuKxi)8zP<^Z*|ZU zl``o3id^gu(2LqS#c0vqh1K@W+EuX!JOcRa)=bc>alsu)UCV4?xSUT1R}p(i^8bLp zWe2QB7K-VkLj)|3npg0TrRRTl(-EC`bxOJ^OELa2(5lDS#KrDR<7YVz-jxN<9>QjB zwb;;|oIMl&z@D61g*#?pJ~Wd_)5t}sdFPt;rY3zmym*T)f5!wz)bM-PY?Z`JeO#%b zwa83HY>o@Fi02t+!T>$CE=aYdj%~fo7OP^s&y*6=yR$m>?H{e)OO<)!hvUOi6K8R^ zH|u+qOC+*3+j$_c_U{vSt=)xYe8}aM=yhHa4e!IZHa-c5l?sK`f6-30Dj#vePx0`# zYN|d$8-;FGT8KD0!6#Z8F>$AL{M%OFl3hZ{jEc7&5XfEcg>S|A0(U5))mB4_!^XQ( z?^*6(rh#6cooN4hQhlRl_52PGYRZk6SSrPp%@AfaUExI+v>J3HTvtLlnwBu%u`50{f*l}gyus8VVgQ{5T=P0I2!<>Pp5etUetf_ zdc!a1*jg(8DA4Q9`94!Z_V~)^SH@tkkzCiA;@G2}Ur$)^MrSY+;`Hw+pvNIuy~?c=e0WJk3Ob&D9ZTn8a=VDw}Ha1sSA!zbwBH0ohohtkbAo` zCzMr>c+Tfmp{A*2VFSvzBpaeN;a=&I^#?)79@rCXb0BCV(xVmVsXw!=mZM{A`HZ0v z-0tWc*kTusZn;%Mr>)7owXtEczTq2ns8}G{d-y{H|07yOZ>bPxMnj}1`Q}Xy2Ul%a z?>OHKf+T5}`sZ7ecuw&M?idFZrTJ^h{v%}_eo{Q@M)6;oQPmpO8^IkN_pBHs91d8e zMPE8f@;{Zav53(J7o!@M7(|zPolS}aFOxoE+;zagf+|y%_A6ly|AMWY4IO{!BDpd< zVPT!LvLacRXT7uhd2Ey{)Ujfvib{k{?H7l3_2~DhIQ?P)t^Do|l(XQKlYV;l~gIb6>!Frxyf7&;A3Vp9V#^!=9Mvp>257dtpm_twxoj zq871@{gqO9pGivHXeYkNOeId2SmKLO@lY9hITa=sR`Ey_zQFr8zP+#7 zEhPO`W_duzYd~6@gf#7RfgSCgg~Kq_26YpN(&(+fCfS5uG2>jz^9F2VwEuGVBoyI0 zWLM0`??~n#ma-3?DSNfeNJ^|X>iklxSh>cDZ&lY}33P^WygPEF=4uLdnE}BhmehU`@$dYS)|gT{Br)BOG0_S*-_i!93`j=hOx-#vIQmf^ z<&kX5Voa5`nLi@e2sIB4L!h7*_4euDr)o^3=~>1=MxO=nNzg}{AF3@h_s->%9J>lfB_Ov32Ch0tfe56={} zPWycpTcmHMAW4O`>N^cD#AI*9T?1P7O0@}dOBRdb?NVDCNS)fLH7(hMxWh^VQZ*bn zHpvDB=zj&UVit}{)p}4B>?woQX-JN*G7MC~LN+s`8C990W!%6H6nR?(3lrG1q@8*{ zu8slZdjMGPbCks`C)I%FN&3mOLdG@3qq*~MF$Gs30TL(F@i&%2fyS#qGv1vc@8aOK zZLI1cK($st&-ohX8XVg$8+YbWGu)h0uz$yUmG9KxTM0xSE_wwf9~>l{(U9C3v0`*F zJdi?;MubEd41L#wRpu0((s{&g{^T1&q`@5c9We*TF_B+}Up;wj^JZzOKN62I_`GB~ zI^YnO3RFbp2#|aQC#)WBjEP{O zg;^L*Pv_4MPt=Rvzww~bl54!n{g~hS(+Cddmv8#jKm(ahYFm>|0bKj@i1tag*YG?dqgb38N}i}Qw0eJ#$(A)HF}F9tNmSA4Z% z{t_VMU*0^8>*r!r)wPO~lj8*{_t{Ss^Z~cfjS@+5fbFfrXKMyURcAJBnO$C&gXQGD zrdE(I5Zk*M$BM@&{`s4&pT6s!T@CH3ypoXZJH?xdzmOa+wkOw+LDWe=R{&BI<->P` zY-UKz5oKJyZ;E0xj)%4kdQ>K~jb<9$y^gw~y)xja5ko1SkmBJ=F4|0eq`iHNrH=i_ zbwc_@pXxNHeYA{R`)&6)X1?zFM=#W!_;mVrM$BStFH=iRMiM#x%D1OYWsj>}zdGaY zje(bliI+dI)VnWfU?n97CcL8)2OVI)rz<*WK?hXM7K51!B^2* zilNQ~BGr;HO4zM`)7&19(Tixv5Lt(k(cRx|SxbB@h$g1GLVR*n<%5S~KXWL#^2-*j zf}?G2rM-vNGIw4i6-w4;E8-k(lYge`zCY?jNK83=(9&jtR*LK7-ARHO%fF~Ae0P-> zdIu>!%_*K>B_n{2W8Wz(r#dLCnU+RGilHyk1AEIp)E++|t!>S2`z-;r!^?SbKSlL< z+}`O}q0ZogXy7jWBrT+F48yj@X8tfsDC^v+JU^T+_loW!jxvgvVk6=Tu5n&9{U1Pg zCvbe!-NJT$?+1@PmGDm_i9p_zc~(VB@jmp=A9a0UnW`msuy_r1;j8@kDX2ETYDx_{ zx+z9e1F18}PF@c)FU4Ad%+Tv4LP@tlH1PHPXa_~vILUt~SFRvr){819I7v{2? zmfxyP;Vc<8i)DA#iUXW4)i5ibE*t#Tt<=k}U&KOY{xCd?^S!4)lO2n!&IGUCiyMzS zSWIs;MJi^5jT5b8H_~^?qUfftyCDO;RAXkbDd$!D2`8(~k1DFdJ%(a_aoq)*CCYV^ zX6L+-9z{rlnwHG-eB zG*(jcxPGwgC%q95Uh)EhvH*YTlOj}5%mcg8K(XPj*W=5btX~f0$oSg8uL|mtDn4&2 z2FHjKh(xm5y(-H|m_MCMDl$cH3HdP=8VXJzxIWm6zQ3ZL3J3!K0TP*NSU7f&8fz{z zp)Mwl|H59EV&Ti-4A93&3C#z3GG&YA5*@8tb&qJQ@*o|A4%lM1(>ae1J4Z-%3xcxW z1Qy3+-B3% zCx=I?2TCD}FZLr1YC}Om?oLK#hH;(#;3f5~Zl%MzUT%sUbEGRJ-6zeJ*obHVy?5Dt zpZ(*^d#~$q-D|31&7^At2m}YrsB`C-sUt}|p<8S>herp^^=IFP2ut5jgv()e;IxUi z*&HEU?>J8cc75HsSR$O(dC0K)>n#S5w;nx!4^d3TlJ&2c!h=sS4n9r{iDGI8>26xJnZ_B?U-bnDVZw`^3r@P2p+t4mG7VzyYU5I zrh%PoSRYhnX>H`~&Uo5`Y8B%A>FqZ3_Wme25U&wbZ@v(RWWVtx4P2BGQyf-tDs0XY z!KDT*2d&$fM-mr3&e9~U!f2h6b3!&qqs34nvk=ZY_qfrKS zl+TTy)tImb2+UqoasF;@YHboQ9AU2E8&cx1%;`l)zD2D1@d#TySreg@9!_^}AD653GiegBaTa7aYPe83(#fpIooFu>T`(>G$}+i>oGBL+|2zUU{^Kuiranf<6;4UBvJPq@pkqHe zt0_-zyIB$pd|5tSNK@Ey*nHa&(f_pM|J$8gW*=VovEujhJ8kZ8HvRVmp>ta_4?-94 zUP;fZ73oiR0;}{muV=h&Vj45n9&oQz1def`v`T`IvxaCXBJZxwW1-O^5PLFk8Ot8e zik2LcHPP~?If?ypVz;VVoxeT4uq`F1Pq0+mXC z_zAu~+S9uKX<)hBqB2}1zxc+@m}yPrW6&e-O?YH0#>A1k2@&VePrpwbnibQtLl$Ox2eQ=q@XO^+lgRp zdGs+K{7sJk10q_*{3T7Io)V^B>W>td3BA>$VKbM$G|LQKG;j5s6!L2$_&2|7lcwSn zfaw%#Z9rJ`A28hm_|kU;(R+tpx}hVyiguk9XM&r{Zpp5UpeH&F(#n~;Vcl~OOjY&KgZnBI$UX( zI`|NxN&0H98YOX}{rC+uWl?e6;-YvSJF+adS3x`s@NYv&6WIn~Ntn?!-L*G*J#lcUiCIKVdweghc1{G-qyTitw{_nrM-sPOX}O|@Pexu%Qu zBOOqht}mIFNvuQ#UiiptQ#Uk3J5V<3IldN$x>?~eW0=*_$~Buld6${lVG0)S1zPbj z8!6UFCJ{`!1g|Y)_)hN{Z%!pkYi&3X%!JKb30DE7ccip~#QX`PI@JZqsnpRCF7XsF zC`bY-#4u~VTTMIi#kVl{^cugrJnqlzWML|A4L`rBDcvV^R!zf10t@PhC3?6oP{ya- z{|f49a$I_5*sS+KN6ncR3f)s>e*uYgrrd}91B=qKZm_|?Ga^~Zz+?#3kWyMeWZyR; zXd&M!j{Ll*qW3ab2Kg>d)rf`p+i}q?bNr0CMt}{!t8xRZ3`P~}ayoWWKnW7d=k8+6 z-a2jK0QO9oB>k5{v&sccMk@)sd>KQ(YWXp1`4gs3;<|QZNUZg1NV$q6fzZY9csvF&5vG~5Q?k&)*-BID$0V6K#$|}3MeT;#R@?M8*z4kwP1cUc;=4~ zJum2UJkNEt;Tr*HCAUYVlGVYMfxyArnIuucrvRVQD4Sc4Ae}XEhxaWJY~U7mAl;^7 z#Y&c+DIeHd`nO+xAERWTUA&~+Q%oeLjEC800KTV+7K67Za4L?@Et*)H1ca z?Dx-%&0GulBIAkpoA>%N>vo>PmdvAgkuP5$Qms?BAMmKaO+07I38yALP^_~f^!BZ+H>&^H8Fz`-5#{1<(`K%x$>g){?mUcWR3ob{MfZ2 z(PT3VQ3MTSBw^eJ#rxkX7-Ar_vXs!tma0p;`!6rhw=Q0+GZnQhQX^BU2**Z-bM_X# z1?J1j*~{Ylq-SWMLYs`f2s*zJ%3z8G_)s6u)u=fABtps{GO;~R-0h4EPQ$~=i?>45 zntZC~){Ak`r*0$PsjFDfoEZ#S1FI81bXfGaUzTZacQO3y|1a}8d*b?v>(+N4uZy<;K`t> zFR5sWSv@0W^+MA4S+u=vKNzXH?g|AP>w=Box19pT=0iw2HOV(5Q5MLaMu&xgm7$<2PqtxX=-bS(huv}?Chh5Qew?k!riY@C*$&(cxpu&N2VIF4=O0g+!5 z!KL|TQXh4BGym0Z?u^NC6@b=KttD;MKS_4;-FDiZ1yLsO8(Z{R4ghqD^vdS48!421 zRDc@hQ}V%8)w}gG&~No>r)!7eUR=(|ayr6ZNvBs${s)BQ zJmw7K_7+~y3{K#Q$2~j<-elt&Tk%ta=91cpbn8E=iaO`Ge{spjRkz4RP;$;hQ5dRp zw~cuku@=`gG!~vMG*wH`{eicMPpKh_iG{uExblUcL;nuzKk8$7j&rBWD)bAf=iZ9D z^Y&u1wcVV-3IYmuN*9M5XRX_j=>^3W2?|U0>-2?y>x-rH-!t{;M_3=9NcN$p8nNe+ zf*TlSvMY)z?%w^59+djvB==zgX3J)q{-j6mx#}6|H9H#roL;PyvPiG@o2__mYIGA zA$jhmn=O3o`4x5aXn8xM0K@NX^1RzL{3G3`rwbGs+B5rt)Ob!p)Q$EP7StJfnXDKH zY3^38JD#aPa_`P9`6=>bXh2IlJ!kcQ00AuM{d|)c+29*fR}l>0$VBO3>K}bG*NGUz zgrJJxE{`4KhZ#zTh27$p@d10Ajr}nQS8B?3(4@tY!j%-9d83j3lRX}Xa*M&ev`1Ub z03l*&IgR*YOpWCV?wt0wL57K=-> z7AD(*`8KHwqwn?M*1wT_|P}|``-h80J5#3d>@RvqAoQUhkj71y> zaroI4oNgp!c2JjGEXoJrpHn+6$cr~J*mxVXXfd9mu!tlS1X>1C=tx_y-K9OzNWqUh!AYHId($9;v_VOD&`iK4Qosd zCHfg;v-6=qVBH^okJs-f4h^O<#f*V zlQ*}o+e03kSH!)$xVMWCaZ_T9e|V5*uIcxB%(6I+x%xYUHG7G6h7I5hj?|WFq|wmj zU?gmluBH@R*`HV;f}a-We=5D7^rB0KFvcvh#;pTeZt66qe3HC@8Z)V{`fRgvZ`RcZ zOR&s-deM18dVt5nqp}=zaC1LRByN8{V_OypsSc|rG9HItp@OJbxG!~73Ot}F#b;GD z{;DKT2p*gKBBfleNR99ITZq%K%8_WC0{#jvgf-07(9EvX$8eS)LzqEo1vv{IkeG5C zl1SaDQy#=6XrRIr`ncU};(QR(Nd42hApF&b>vZPaEy`PPtp}PnU*54wL$tk580 zvGn?~{hnRUg{l5r?Y%7Z*S2v@oc%Pd&cjD7dcU^D)o>6$zi<;%k+?!ojTa;QC;kn% z)Kt;}p2aIo$xVy=PeR<(Z26gh!M~tU4)Of#6TdtYR`3+Pe)W3)M3fF-m4IBinSTDB zAr1?(gGmxwKM}0}i!befYlGuj%Or(o@jaIDG>NLh(|E)V%r8h(U3)Vq?uLJsG43U) z+{&;Hb}?K&Bm+CT6eR033GrDqnuJl*q=Skyj^qt)6iMQWro3A6a+(^zgcIwlxOC*P zHHK((=V<#OlnUDNYk*ra7(f3d7L{%$@A|C|5^ZOj^U)$?9SVf7yOcM02WYw9GeU#+YFq_iQc!ri*>sc8l0Fi zHQ$Xe=UTDM7qGr1#iNa-o<}@KJbsrAeMdAEmcp_KV{lgRB?saV{l*>v1YlGO9AtvS91=MppctpEsb zP^E8CZnHuPh(poT5(7VaIFL?X5g&v zzEJG~FS40BX%M&!gr}l;>gIXO@Fc2Uml3vi_Wh!uBP8t@x^{on5f@qSJB1zdHG%e` z)IE{ZhwcmQo4|6T1?!+Ef%LWZ7Ht!CpAAEJWwmMO&0*_r0(mNa_it!*I5yG`wvOI^ z3bN+eSCR21Fa+1G$^J5T-zgL&8Jg*3+^iZ&7Xq~p&{3(ck)SS2G zb>PljqttaJDP<17KsDFg$2LuA+cCuP-G^hEM7>^Ur2F{Cns_2ZSPRu9(*;Hw&k^U= zpQG;$S;ibG&-MAmw+;)eLQn6p|i-Gv1CxOF5* zrH%(i09BF#qpzQMW1}@uUf>}vo*@fhbyYY% zl}hfb$JNBZnK->F<5OlW3uRKx!4owbmiHJHu5yAUSR5x%%Z z_27|R{gaLJ9?fohP6}f_Rl=fcvBr4Anvl4UpOg@N%W;W$LK?be1oL5ttjvc#V1W|N z4^=VQyo*VvnPdmXC%0tih+6@aO5Jb1(<6tCP?n}%g;S9ELSh7z;0~-z{3$L3Z!`W2 zx9{#$Po8uHJ@xi8o-DA7d3pLGWVcuSovP-R)JTXAT?*L!#0!){TdhrJaAgh7+vd5w z$PoZgOF_+&d!O&?{Q2&ij)RZhy9s}FO*%Z+NRhrFt{S@+f8R9Wf$L;%sG@?T4tQWKZCtRr*J8Dx#t66?j!bWe*+wIE&l`RaYS?~-H+sbc4X+&+Q_8v zyo**}7|`g=%Q9(XWD%?7^M57c zYxNy*a#weK58Sz;OWBAatS&bFYt{p})~68&{iZNW^ywccgSwVm)@!=A@4cJh9L;fe zd)SHoU};_qd{ zhFfY5;Gf0&sXx2LOS1nOEdM6g*SJM4$Dit!P#c$=AVX%5)t>U4Jm;6_k@nOFJ>8`H zf3g>)9}GxRhR8Z3ea@?tj&s_j>AV+I-!6&BG(CRpL^{}NeDW}Q*cJvj4`3x3DbTnG z)(o6J>lrZju5vz}-EVQTD=;ud|Ld+dCJ9HSa~ z|H-e*Ayx2fJe@nP3Z0{&nQiu0y3b}t$Ds_4$o`=Z2Wg2=kFd%+nrqvy6^5ZzV!5zv zDc(EYpJ0|Pzp@L8jfHL%(}dz35MVU`p(+9+%;%qaH$P60XlXK01~?`>DZ_|AMp zWaWj!t5?s?4hn~D`;Z&5m^p67A8uv+X(LwYqYo6LHE+Ks3AjZ%Wxf*C6Du5tHL=amkt-Y0^_TH*BT6=FQYSyl; z#8!>iqbN~()u>s!_EvifF>0^c*utgws7 zSpCdG@zK|2q8+>)Ig$W7Y19`*G;cZ7m|*?ay`P@6K+rV#v%c@r(=BlfrO4XcW@uy* z^-><)^vl2*D?Rr<0EO=ef(VB|R7MrhjQ%mIY`kJWT_lK+jYYk?qr=^WxQ4EZ8eH!i z4d0)xQt7k+A4gK*L@dM+?;lumdb4I8^aizk_|&^SxNzd6l{^fo52u+jOku-T_56!* z04FoS#jLD}wu{6=3P1{th=GRtJ3UCe5B4&~RiVS3WMXucscv#KWf$)qLJ}1H52yhU zz&8UWDxzg56(yH??20WOA%a9e&p2FdEt9wrhY2P;-$h}}?+yiJ6(*xH zSV|aYz@P)29h#f5MrLg{5ahW;T486g{BT??A=nzlw$VJc(yfp&+cb1E|LW2~#KUPSC% z==@R4;&Ek{6FqV2`rrHd%gS_2gzWETCM*OPFjC;5PF6DCkk)}91+-PqHK98yl7NqR zHM=c2-!?36G)x{^CkA@FryTTLs4)XXL8i1LL^N99f~Umbyw5Q4){3mT>|80>g{he zjsxFzMCtZ-`d5=_m4-9OD9cXk{g~l0EmByexV2K@@EcQOSckLofR-pyb!Y1&*lDNu zJI2=D3{@+;X|jY>dxs#10RPjbXXE>jBYive&jga*5L6i}$w;VZrDJ&aQDa!#AY4!c zuVq6*Cm)$z*X88R@HQ0$w)o;s_yMQN^TFNhqOP#)hcbYcL*wTYcp6fq|%-Yu~6}70VZOnKho@FycPD<{qoriv~oRv z?IE6n?;<~7P$d)*L<9!_M3dflE}X6UvPglvf0&W^^Bw?xqkEUI$US94chYB)f{#8q zMV#jgq&nybHHIu*TomwV755DT&XJV-*Y72?XCakqZ{TCkw$|V~6RE--OUqF0EFF2& z;If8imKT6iQ#D~XVEzI-@{#?Q|8o$8ZDWP0Q*2Gq7(N)KL$2o_2AaTq8m*ilW>`lj zM>c3wwvO#}%XnKD8bYJ!pE#f4=>lsfY)AcQMEDXv9;Had)Q$7h(!uVPy|CIqiBP3kEGF!%)$;mabRve%V4 za?WG$;5o^rla(*74VtZP8R6P|H%*$VvazF|9_r3!J1W0CZHGQE89UWmWwN~TiN{?x zLW+@g72g={2Jl9lz&fJR&*>i<*6)%ia+8k70U#oJI_HEu2vOG&LE;>LoV5+wO?A(F zyU#WJS6pX1cu+Ysl)rIiSm5&Y=u!r7ZG0I4?elMEq<4gjEMy~N6XQAn}~-Rl%1IEm)a zUQG7VJ{~*uVz1B$NacV^eU~E9y?;GX3{P%4vJ<_P$-Kz&&bwPv-cyIa7Y&j?U-W=f zx5JQxbZ6O-&6?qo*T)UrW5l~|?Ww7k)nD-s#fazcxRI~tY28F&bT_y9nGQ71RLS0~ zJs2EvLM|AdV^=G6#SapT|NG&zR@e$m;bQPwdQIu2`QGh41ml#UdKM-IwAsda%ZWQR}|C5-{(AOH&+5cT-9&arKxBbO~i0{WM%k`+w z!qd7m1&h~#!T8pOaRnf^Bc|ml)$zMdWdI3Pa>sO!x&t&>80XrN;QTaPQ~bGSKMFXLWIZV#$nW#6Z!CBr$jW(yV@dRxL$~#Jol*2{g8Vc zN_jnU{1#0bcc)vt=;*JI(^dbc>iv}6God(rdehUMpzteC&6dfJrc&lW_Tu)<1?TUf zk6Ik*?z4~(c^bBDx<6T9CC>9Lxb*FM8lWyFx-*^}HYq^Goa;qbqJ9rX?JWh+Tm@iA z_t)0tA_U*Mvyqnk-Kfp6)Nky~F4bN0&Q(9Z<(I(H7lC`^5lktu6Lkq~0|ewUGcu^?`m;7!rl$GT`> zv*~#zE~hv?yX6{l#}~Y&?sBFybudzQkRK_gj1iX>8%NOGYoFL5KQclbj{GWiy)PaW zb6m!riT&}<=`ifb0chGiIV6GlCzKVVp9@;cQ_*>=16^i(u4#)?XYvfxp00Ge{nmy$ z1Xa*VsvWbi9?=vJXB(bBS+#uGD^W{^HV1J0QFPGhW%+@oMwD*I#7i9w0@bN9e}opU znF~SFYpFOHN0qliT;K9$8%qt⪙ryhG)yAM3QJWUX<}$jVh@OjA~B6UpzqyzgMd! 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 X?FX}y+D8jA?gD0Tuhd-7@{jWW9?D;- literal 0 HcmV?d00001 diff --git a/Template/Output/Assets/Fonts/arial/arial.ttf b/Template/Output/Assets/Fonts/arial/arial.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ff0815cd8c64b0a245ec780eb8d21867509155b5 GIT binary patch literal 367112 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≺9Wiv@#qpl#qL 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≪P+Tw+*$qa@!i>|Uj$m6(YG+< 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 literal 0 HcmV?d00001 diff --git a/Template/Output/Assets/Textures/inventory.png b/Template/Output/Assets/Textures/inventory.png new file mode 100644 index 0000000000000000000000000000000000000000..b7f9c4d2733d92a2c824722041a0e8390c96a72f GIT binary patch literal 15791 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�NxXVQ|Y&-}Ist_vN^;b|*jZL}1Ah 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 literal 0 HcmV?d00001 diff --git a/Template/Output/Assets/Textures/slotSelectedHole.png b/Template/Output/Assets/Textures/slotSelectedHole.png new file mode 100644 index 0000000000000000000000000000000000000000..5d714bfab1ebb517fe12f0514bb9c76257dab6fa GIT binary patch literal 396 zcmV;70dxL|P)b@SAur;FmQ+63$P6| z(164?wwM@4u_1|VDX)nYO_+y&Q25l>hAIYPe66f{jiDId>Y5uq^!41Zj6{CXk-lDJ zL18^G)%%EdZ2A6unPli)jy7X%D~*&nT+JpOl#y$UXK4Oj>H_!$dm(&l&8A qM<&`;-093Z9Dn;d8@uZsY)f?$vLO@-uGJT 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ʑpOq_31e^Ud|f>n2!X2 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%0AQnzKt(je(FcAEz1zPBJaB z3%FYXs`=5L%;)v?Y4l!=9?{ zGudXEU)wg*{0z96=9w%r&991^X?}p*O!KSdX1Z9TOEj7vSU2kjHM(4*D>S-Nqxmg* zQ+%_s_bLga?7ccOeD8XV4r_FcM%QU{y+$`^bfZQ$X>_wjw`g>mMz?3uYkRkY5&7AM z)OtszT+Y;*%1h2{o9S*%zel5YY4mQ5-lNfd8ogJe2Q+%0M#nUINTY`}`bZ|dws!=K zba|}pJ(@wM+t;WBOfMRp(C9Itdr!$vy1z_l^teV(X!Kc)p48~`8tuRt7jykMHQJ@o zZjI&{8FP4_M(1gCzDD~sxF4yP^jjq(_kVaQ&bhSpW z*XXcD*JyN|M%Qa}gGM)MbdyFmYjlf7w`p{{MsL^XPL1BF(Onwdt8a=GhM>1)&e=s6HOQq+iE+5U5pU9N= zj%oBMjZSFvcqYBJcLI#`^VjyC&7gZHGxdAVYqSIVw&wQh)M%GRyEWRY(LRmN(`dc} zZhoF$qYE^e@BEqdi!?f*(Zw2FqS2+9^mOB=pr~r&r}FIZYW!3og5JtZd2dLgt2DY= zqt|P6Sfgt+x=y3(HM&8g8#TH~qnkClMWfp^x?Q8UYjmeZ@6_lnjqcXy9*y3m(YrNz zk4E=p(rbJ7f?@VA0~xfu(`dH0SZ4U%A&nl+q}TQy$&7C#Q{H=2qenIRghr2P^eK%_ zX!N*7PiXX6jh@u#^BV2IIVW>@I5pa((Qb|QYP3(I^E5hNqx~9PpwWdIU8KovMTqZ>84Nu!%Jx<#YgG`d}* zw`+8#M(@< zlKD5b_wXsK89rsz&(9onJjB2Fp4F^BoyGlrr9Zn*C#CiMSTVEzG#8hg`Khe5e#WP* zY(MQ}qmS<@S$_)3M&I_+RW|yzpUSe)xBWDijlS)tz&i0CzPE&-ck6hN7enJ_=P6tu z?YICRq`EuL;aK`qX-=avGIIC;>ePj+q+4?qh(chla9`h%!{saM#`MgRjx>xE4s=ZDRW0xc_U@s=qg{N%okmi7b(k&uF8*; zRs)9&aL3CANq^vNyswh%c6kQdFlm()ziX&yko3F@$H8lQFZ-9@BHP%K# zRguLcB4wdNWmRkelD5`Z&fQGo0FAA6$aO>Vdv8cd)D^j^BwFE&TvZya01ieg+>xuw zqZQuBRTa@7(pA|}R)X{zPucj*$l@YCLLPLeEX1c64?D9%9*0V6!l%GcgwDis|8{-~ zPh1+qGdDRPsfK#u)FV8M7TNFF^6amtrk2J|;|-E2eyIv$n)GzU9n2JEWCIMx)hLtfHUt?SK8NCs~b^X zEI<xQ1$))zE6MToU^ZMt-Wr0?aM4g^ANenccEg8t2~i*EmBH;pXvtdFa1AAElA+v z_<{rYg<3aK8B`I@g$(r&s406Z7@zd}CsvUTsO67AXR0(56wW&nq(Saq9C* zjeA`ByfWh+w?41JxW}Wbz7Md9ff(!fy_oIB2Y9u zmS`zX4U95|lYQbY;pb+(!>A$LkqyC5mouX+!{#$%B-<`X#7_>jIYRS2L$vS*pfdKt zxJ%}{wP*l?gE0-y;UJaQiqT3huJq2`Qe5e~v-7rtMd?A8K9oADN_13}=%^~uQB|U& zszgUsiH@og9aSYds!DWJmFTD{(NR^RqpFfr!;wS$rYhhge)kfBYM(BcftD7$#>u+J zxW=j1IE`yudX3At#;w=5jcYu5jYlZzHHH(}<@^I0=v6K)GLpklUIPIbYD}!vt84K$ z(jG|Huc#>zf@ooiRmn(lnigIMiU`N(BgrOud9BirrqYnHcc71;r5=U;GB1AaaH5a- zNq<#VSkhKvzRq9

}H>-Wjy9hoV@#P%$Gh~GzcnH_JYr?CNw z)Mcm&t%y^w1m-mYv+P*`X8KKfo8C)VWPKnmyc8P^DnNh2VtLvsJ-|1ut&+wkO|Nvt z{*2c2;be~3X9~S+g?t?nWwyBW=077e=(BxDFO8@rL z2e;p@^g$a*%pp>oi#FWx(=B~Hn12fnD87vx=;P$z1y-0Q(jCY~f!k_JN`k{15@PPo zSw*}e2lRMgdy=$M&^Lh7djvR((E>9lD_P_^V~Wc-0UF^-(Fj+HMz~Tm!j+;CuJ!6Q zUL&iIyJ~##U)D9+#P|Q{a027(@nKe$=eZ~z=eVWs_!KF`g88^7~ zX>Q{Nk3Q{~!WuV}{TF8b=O2>vbPb>DiP#7H&bX_tF|r|0rgxP1jGEfuKI4v>$brBd{kmFM z5m6yOsVQ#LDn2iUBNM1FhST)xvupJ?Lor8WgD&5}CIh+pI7*i;ZHquEK(G_hf-d$K z00euEevP|p@WaZ^`17ELz8)B+%vThCoJ;tjwmGkG+Gg2>t&57eZ5$J~363AxI0gsd z=!y>ohSjhcE?`*v*4(|tll;y*;|kLs9urenVEl0~T?w#U$Hg?qf-klfU;$5;!qXN1 zGm!j^HH>tY70YYk4DjHxKf!;YMffLp-tZh)?F#xs>s-2r{(m|=2nY@z<_AzyR^h;{ zEa=q24^U2?kp=>%F>OfTo61cjcNaibT`g=U2VZE1iRN@U)wi6r0vioaXx$Li7sY~Q z@G$41ulNeluLG-RtLlVW3**+;1ed>gM8d%Si5z{mX5X+FAk7+5=y2^TEU_yQ7_tyDDd z00CAuuX|n`!c6msyaY2tYn;kn;3Zb{CpeH67VTR> zyQSRP`;?nLA69<}3*0U4Oaop~Zc1%KNdi-_xwm4X^?${Q3H$`^+26=U1o3q|^^I_P z!?(C-ULxN2meXvoCrE}!( zPD^@BZ=tt-+P7F&&ZkqHPnS5KZgD=3seJ`(_)C_9S&ruaqtg_asvM@kW#TNU>is+> zePhV>nGO;e(P9{W(eL}8KAeaRQJsiBjIR`VQeH@WIm*#?ir>@un(}*M=b=2Do;G+Z z$K%h(-uyD&|1P*2oOY7wcvfCA%uJ zpYbcEOXQj)&jzcG&#xnZwBlE=X}A^j$fn_Lj4T;A@&H~6ni^y4@cfUAqlH(Zvh8g@ zf%mV#K)8PaLr(i`&kz<6@{}0@W?Ns2-@)p_e_*r|(3E*D=BlyR!C5wkUi%a{)RV%Y zv08jsUh+7+rn2bRS1cCA#dNkpmiS^n{aNXT@I&Fd&>?tmf!jO+uQa`q2ZUVaj@4hr zx=(;n!MdlIRe#_M=@G~<_22ceukA+`belh0rsgJ{gB9#Y|D_msUkU?b4rnXbZSadu zjQf;44pu!-rDN&LL*e`IRiR#9*l-yQ zvBkghEuEVH|Gqa+-#RUQI|Vp{f1UbU6fxo7L*U;{IJ959+-dp5%9z$aWvcoZRsJ!(8A$YU~(DzMGA-C@xsFDJ-&@hvA7@P+zh zhrm2PQ-FEb_NQ+(E|NJzt1*t_Zp|0Q>m3aU0bzJ+YUlpjm{x;1>W%u8TRhrhE=+7nyy-xwv%WZfFV|s)H25Gn)u(~KmXS9*D&->AmD;mkGK-C z&`$vAUDjxLj4Y-VG=VuDX~O&x{vt@^1~ZyJc}dRy=8=1h;T);9GSO6sxzzgIk#>Y# zg3h={UytAmqDu$$D=_77wk&5+zKDM2$8}R6X>M?Z2VGxO&>cS!VM;)Bj^3ho6uW|Z zi|=p-cSpLB8aP>>!u=GOxx~ua)6+0yDwrAnSoDuQpQHDLctf@^2a_HQh5u%y!sb(q zB#Hwba>Zw0el|_tXWUh*&j91)`4jI$nSE>` zBKq1_ppny>%nWTs&&HkSdjA^w!g2bZ(1#8_4}|{ZD4yf@2hITz{Fs^hL-+grj^GH4 zw_jh^^f78}*tq>*$Jx%GW2$9EI>3A-`Z^H~yF{k*=Ws-wy4!C)yBF#&Sr+<3=KT^s ziT|AAIbeE12i7clM`H6%fj#iB-a@}1{%aX8@}J0FWWxgQvNDXCV|Bw9l!m*9N%}sF zFO#kK5bUFhE|(ftxwI8;8s3OdWJAEKzonp#1F!Cl+au0j2hT?M%8B78_-4Z)XzCje z%c4#bLN3C81x-w9N$#giwqIdS1Tzk#4GES-VefDriN?4HBqy49q?vQ@J56wiRF<1Y z2F&R-vj+BM^~3cjiI4Y$cF*ie>-uC{4CSZ6Z7tM7hf&+8aboN`$GTrZY;kEbQ;^@) zRM6e^$r~K(u3CRh*9?DA^bU#N;oSk*$*SI7EMM!TRQPw6nEm;-nAO52c0`ZO|H)UT|>K? zI)CiyT(`BktELxS@YB8Zt*xt3uI6wT)7v{M1gaXm?d)plZ0?TFeR<1fX=)vc0bZiP zsBEjtD03F~Y7dQvPTJDBr89KsGIp$Q(w1%mf?XLNpk9#J+}_m=jZg?)nFgHw_^NGo zc24rw7|v$>7l%<)U)0MAO=v!+Yv|UGyV|$R@Vh$eoW#2vKZsx>jN}^hk%OW{+RrD_ zd|hwjucvEWd?;XC*Yy_4=i*)eja167dx??kpMAun%-lfP()=swhB-*rURBvrY4G;QOBX*q=!vG3) z$GX?!na^R{v|-C8yytbtyEo#Q+x2$$?oI#PvRP3%lql08oB&~fb|Caqs9oQ_PxH+3 z`|%e_5lz=@jo}?n&HJI2o0S8)M?+~~1>{vDC*ZHvPTi$>w`!+$Yq`y#7LRsHd5?B# zd9OBOjdsIo?WPuO1QJdw?=5Z#Zo%wxWf?eB)Z3PB4t{JXe1$EY@gZ9}3pT_vpf9#` zG8_jJvYjF5vwkT)rxgJX&2u^yyc@m4^Qtg90IO^48VXJX({$GLbX6VhtlQt8yGMd# zA|N0XLBE3~HqQ~hD+Rcvoprrk?MQTC{5eQg;^F>ypNFO~!pVFH5QL;ii*TaRIh-P72Lmia zW1a7SJ<(g?gXLnewASy_!i=pO_1QV1xZGIR)mJy~%#3C~K!a#3%3%iV=dQKX;aZq6 z7F|-KulWwcIRy26(1tGZ&FdLhHrGr2P-#wc$l-K^%)0LPpRc`K>py>myAB=tyPR$M z$6c^T+hCmWJRkC%-Mlly@orZ|n-krq=0$6V(+AJi-);Ud!?E7+_fT(H@OAxp_7z%0 zm>uXI@!DMBxzM;KI1})0&jOIz(o69dka>V0pI$y2>13pj&7<2U4bYW1F4F&QQ%Exs zVIlq4agbI=Rn6gtfONY;y25|{i$J=9NWZ23I~6fNo!$IVhT}+A#aqr$bAP1o&mc=@ z>qm%mo8w66b0AGT^*^Q{9%-8Q?GUgc1-uPFGdBmbj0{phTXHJ6AhrXt2SFp+X5Cu+y@mMZLAFLe@)87C;7aRaT`<4-NK$XX+SUvLXA%}otWwd7iteT zK`+6HaI_Xb!S)um3IH-9#Tb$M7l+pPESG9y=w;iTpQ?0hUgq3Z=D#&7}& zci~q8X7_?@C6L|+(tk=Yj9-%p3J#qJeG@nvtlQ8mWbO(69dPF!gjx-)@sg^srk^q- z1;_8)ff!K-1D_-=K*XvvXgwd^O2h6_bZI>7pTO zJdG^k#@XaX_(;o$&Mg}VV?noLwUJMR$INpUypwrQtLV%S;5&jJMY^GIvbFFNr~`0? zZQ;EYk>===T@S(n(dimjsP}Sh(RWb`RLqU+(ew*ZR0e~bz}+*bhu%>@;&`vx-gj+Rk|>*zb;gI5cPbP5g_LsC5{k0MFv|TQWUl5 zN61ryA3F&|v6bQ-jfWHQ7S0kQ2`wBa9|SOCe2%;jtvrq)>~2>V_zd=XFc-id zIxZs|Jq9Bi@l=O`;m}lHavuDyeOKn_hGk_ z#u6@ALR(q{l?u-Au_T^iEI|$509$!{>1b(EbXkQ4z8Zh*fCn^~Cbq3i@_>zSimgoM z_2-XX$D3j+``Jkv{Kx@q@e7!drP@m$b%1RzPXSk;A5W|qoMN-bHA}^2dg8Ak%ipku zN>HqodQGvPsEGzt3ky?P(9lBc$4tN=k+QLK0EMb<`MlR(haIRgDx@}f5fXSy6M>@! z5$&nN|C;p%$s4%l7E!LuUQWe|hF$!?6B-aot%HT%$B!#1EqsgE;LvJEdIpQ@`8qUj zlP-;f*0^uFxdk<4(B&(3V-ya#T0U0mgP5;|c44wwf$26o83Kc7IJ&NI!S&3>)|##> z7z>(yGzV(=g;)z7x6ufUf+_3veN>ruGAmU{g zr48eX!H~JrnREvxjc%-JVZvo;cD&XuxLn9%c*aya3qH+UANZD76U;P5>hKc)kFmIO z8^#6GnK6%U##_PO%(ns~K#r1He{FD+?IP=K=%nF(f0+ZFc9r=6Y<^c+HXeCe_`g9` zFhJS3A;{FiG$`W;T(DVt`9UI$nNqDkUuIHy7`!@NQniO9oh41Baj+|<|gRwulktvi4#oVKky5mms9A0#jBYVKTz**NE?62U0O zPjTQ&O@uL&m?h@7yADMWvjbmta0y2TKFwsj@dV&2JxZlnS`)? z>&I<@Z?Ey~G5-td@gg1;HS18X37=8b z93}g86FUi944d$Ok(Stxq0OTYiqU#e`USJ)M#X1^#ELUQ$wfnHdLeySzqtZG#RL}7 zKQ-s<0V7x*v9?s=DH-_;z%*fxB_*IxZ$s@I>Non^dT;Y~%nrG8!=DZZ7s~QS-Q!m2 zo6M(rFwNd%r(8ywnoE&}+NCIR8JY<1 zOU5+hcC~MdVM>lc(-x659DuI&?%0;DyKj*6Queu}R^lwxn}=6Roz25*@I+wBW*aXR zP>p#MA^|}KB#=A6rCKAX>;ccB7=D>3!33SL6)Yp5X*A2`0AQKwU~t2~RSi$_m!jcG z5)fi@rLl9^oCS0D`Yl~}FWeTp`vg#zv-?5@96-xlgd9qWv?Y(zQ-OmjhTw}t;8wkZ z^maBDY*4chKtBsXv3mM_7MrC}C2PjbPVg5=1g;@3=}Q#TJtj;Cu$~r9vv>=fKvyp; zd}!AF3qF9-W_5J(mXoDwk`heq1zw{f69v{etDmBpWhp8nEw&S(TfNu(1;|0C?9YT_ zwV@%R0QjQL2W&Jf1SF2QNIZpi(R3nAxvCM zH%{%}VT(=9PaW})0w(F9_U((S|3j~sNMwZCd;gbE!!fqvRq&2LYZrMOPv`b# z>`!+3UC(0o`ZD}}7WZViC6I5&wJF4gX5KQKw5f`{sC~ZwFL=Ylv;6nKwah zN*%$+u?yb`kO-+{(}8ZS@MqDL$zGO*vXFOQ9ab@OC|-mFQE+4?PlW8+3CB=3PkM)-h--RmEeyB4{)MV8G=Y`h$V{#R2{C!_!y0ddems%}Cl8y80~K^~C`rYg zf$@NnE0yFN@Q>o4;dm0-mW$OlP~)h|p1_B8B@*GL;BAOSjO3sNIGZ2T0uwm1Z#YH^ zSE&{BMwDiZ9MR;`Y*6m;beGO(GV@S_VTz?<~D`7 zKO%EWdU!+N2Gj_Y^zC12IP@<-qlHhUx14R) zzdDo>p@ly|sa0u|kqZ9^M?6bg5n|3N%0$ExAb4oMk;l!ik)`5svhO;4;H3TsP1 z1mDEW3wH`DP-2-1T~MUh!7J>5)eNrT zQWfL?X|jh0dWM2Ldkgq3bz!)mDc)x3I|UDD6RnZ#q&XiG?rJxpy22398hpv0!%;m6ho=z5cWM= z`xs-E0;139{{Y4l;9!g+1c8%^y`tWOdjRU)X>|oycUJ~N;OW<2 z7FP4A@s%m;e?c6CKuBIGOR0Xd3nKsg6{gu(}JhQi)?!(r{DmH zzBS-CypOYaC|MH<$Elb4%}H25#Ey?nv?bAc>FwbZ1n)y{$dqu6?0*sZ(1Mo*&N&Yv z|AwMf-7#Tr4D}8V+@>vk1m#1$IdzSJyF$GSweaimeP&&w7JeMB(ds9nHQPgBBK)FL!EMwYvO!6Hd?_D`hGU}QD+Poxf&{$2gk4?wC3xW%6`UOpp$Q2l{GzP92l zn1F^u{{{^fUf6JG8=l%jYw@??5ZPnF56tcz@G5$7@@yD5lAPv446emoBgxL-9&N=? zZN+2^cj$r9@;*PPVr86^Y&9RJM0`JWp-#Qt{WnGLo++#e>Crw)?hQE z=(GU)`syzO6UF|DFL;c~FVnYa;ir%Q10+n;B$nI>_|0L6WP*wQX*ge}gKEJj`oKI> znoiduWgw8YqRLUHtvVIZ4Y45xeDK&CcBb{9v+b8RZy%buHnSr(LeVoi+hB?N#SuZK$ z3vG*PIlzxB=I0YZ@yJymI)Y4*Gx0QnZhhN@W2d3Uh2v^juP3ut3-_X^F?=Szxs{Sf z#Fkay!^o<}Uq`Rw)8+hxdhu)XwU z^0^HZN|$U$r8~A2BZ2kAscyY9_Bn+>w4UAu3glUo$R#D9h0tj(DUN3zpXM)C2|04H z^!M>7#B|}$fFOD6q2{n2?(0j=MpAZh7c#RkiDr9wfjq8eI5`f53egf-L&vf_WrNkR z8!FKe^8={Hl1g{*A5wjI5--?diny|8rD%ioAyhsz@4@Vz^2uq;2e8|$iVeQXcjwHP zju*;2jJ()t{E>kc#6V8g;*?hz#X=PK!jG$lk2eWz7cHAXs=_7;2jQh`nT%|Oze1=6 zMtSXBjtAO#Vzr8_XOJmKwAgO+*4UQ88uI-azm0KZG*VR1pJ=)+e_~E zd*^Qw)QelR@YNU$FkBAE;3jBzCg&q3;u|D0$DD&Q-OB=KSC`fUg~uw+ow;-moG5N& z5sGDsiM5Ih)?5{d%&$QK`)P<0pm^XX{6`@L$lTku?L&MJFq8 zHf{$aXGa$}z&u5fj=+1%NaT{Sv+);6`O-FC3biPOVA&j|uSfaje>okkfTRd}F*}Oa z1|G*2QZ}rG#{+V0#Z7cuZM8InYUx9W0j5dezY_@TlH)?aEHJe(ob0b3HAGjU$wKoC z@I64*B3Fw{TL-8JB|^DQ^0@+}7HSE6c<5=Y9pOFFw4Cr+T?{7<#s66F9sRB551bfw zpT13h3ko_f?vm;-laAg{n*;{9x

P5Z11KFFmbzYw&$GOHWPpH;zpj!-;3?5C=>2 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 z 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¨=sLgEc@yv+$@%!P$A8s3iKW+m^=nSrUliO*c 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

FGa(zaWzlr0)b-AQ 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 literal 0 HcmV?d00001 diff --git a/Template/Output/SDL2_image.dll b/Template/Output/SDL2_image.dll new file mode 100644 index 0000000000000000000000000000000000000000..6bad4d2eb8a8d64132204b82ff6ac5d9d1552b4f GIT binary patch literal 107520 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
w<~D122o`>rC&~!{Ha}(*b)0~ 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 literal 0 HcmV?d00001 diff --git a/Template/Output/SDL2_mixer.dll b/Template/Output/SDL2_mixer.dll new file mode 100644 index 0000000000000000000000000000000000000000..aa6d199a5a44c836c883de987c288fd6284c9941 GIT binary patch literal 184320 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±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

A*imFiYT^UJOr)7G=wyS6{GeHB69x`d`z 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

xjaV>Jm?z>NVTrk(ui1 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 yI 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�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

9<@jP}pKkb3i&*bSeRT78{v*4*e5;v~!&W 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�m#<8F9{7JL@Q+ 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 e + + + + Inventory Management + UPC + + + + + + + + + + + + + + + + + + + + diff --git a/Template/Output/libFLAC-8.dll b/Template/Output/libFLAC-8.dll new file mode 100644 index 0000000000000000000000000000000000000000..170f8e715005f4b22ce889cb62193a457f325788 GIT binary patch literal 367104 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ëPDaSm3N#P{8NLd}iJ?k+03l4xQZI1eK- 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%0DffG`c&PtW!mIiMDQi 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 Q{QHa+_+2~u`F=~_pA!ohg#Z8m literal 0 HcmV?d00001 diff --git a/Template/Output/libmikmod-2.dll b/Template/Output/libmikmod-2.dll new file mode 100644 index 0000000000000000000000000000000000000000..5f2884d3f85e5ca6eeb3fcffd0fe385834f00250 GIT binary patch literal 285184 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�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 mYMen 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

)lARikX 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 literal 0 HcmV?d00001 diff --git a/Template/Output/libogg-0.dll b/Template/Output/libogg-0.dll new file mode 100644 index 0000000000000000000000000000000000000000..74d21813c1386e35d142454f8f8b117a13540e55 GIT binary patch literal 47104 zcmeFa3v?7!);8RgR7eLJs*wgG1Zl?>6N#ACjM5UcB?&|c5+z*ZqBw&Q$BZKB1{6pF z)eSk8g_#*0ol$4x)tO;Fbw)>xfVXr4X+Y6j6cf1^5T%Od52syYdmdEal= zxBm67f2}V{SDo8F`|Pv#KKtx*smZe{E%6qMMZ~{o)MD9yC;fT(?|=VOj^qI&HVv@6 zleFWC4MP5oD+(7pRN`E?=+Ork-T!OnFYkZkkw<;bUp(MkoP$XEadNT z2HpZ<2!Hv zEXfx}TO9i=mgbAZ$D&629$4x_;0uNyLWtUWUOn?H1@lJFzu$L1l5+5mw;gS^tffHD zpVyL6J$jLm@r;D{H}Q{PR`%qfH?L)$cl0kxO6Wb%A3xRfcHv*SWnT5@2MlNFy$}AazaU@r=pjo4M+NDJ!H04mxf9~Q$oF5)T+o+5!mS}`iqDu9Q4*cPnz zH>_KT2)Q#(3Vds17=edY7KEar66yn;v+tc-W3$Mo1s>r)GJhS3qw;gASD7hB9G+$= zFbtVvHSg?IGn?ZQW3^t=UF#0_F0)=i3JgF|9zv@EdjYy9iI5KN@+Y>f8BTbw^S(=M z_YGC1*{MmyxvbD-Ri;^)!xgPZljH=Vgn?=|?(S+mGa8MmRmg8yM>Iz#XiaGVUd`%! zx2>Zdpr~p@v06DIdiE}nltIBp-$?|bjh?-WkF!jdwlIKJCQxpI6iy&e#v4(Q-rUt~ zYZ3@oRBrSjr{4QSOWg`2DhY9W+k%Clij^J-RFsmnp@6PO&qkw2;=OQ6M#NEyKpD{} zW5GjfLxNF|NT9bM3u{+DxEcWq_+k+TG=k-Orhz-NdJ?ves^c!m?GJW!9S5B$LDXWx6@+*)k{K&aVKxl>qj z1A(G`CNOvY6peDul7d@MR$XjyH%2~`y96oNWrVfaqm9~QMMfDlqbq9st9Z`GQP=tS zC7Ae~hxXZ@8)%;w9X=C{x*Lff(3;@&CcIdU+j_B)hOrXAqe^Fdn5sps9% zyM1eoqF~kF)qu*;9eN?U1TVWAp1zSf$V8DdEhv>~B2lA1iBu5E>_7Q%ic;uug%ccL zWRQ#`4;-KGN>y@PPHi|c%bQamk?K1mDH#G_)2_Z25{Z|{SEMiI){-JH;jQzc_aHRc zNHA29p$AO&&|9h`wg`LLDMKm?M&jszpxxb0+ZkpaK5 z=Wp7K>73IXN`Y%^fs^ICL`nS$h$#!~O8&E!_AR0mY(SX!>7RH?Rma)qD-Y7RvvMB> zcgxDNFpDfGX!Va|IWC)ABTzx9DpdYm+(ybL<(?Ai#!)Wceo(;{+~vDbv9e`01w@U{ zvnlK601jJbRW{6|mwrl~gFT$WmL)4$4N7r?$Vx=E%+4NmfR18to9|N8AuP1X<&<5J zE2+4J6}Y&_%9|aW$qjv>_)wx<3g)7hBi|HNA{82%ga9xu1b|%8$cMe?4}3)hjq!@L zl@#3_PLNv#(6e_qPO7S|jr8v!F5Y^lix)|s;clEh6`AacRjRtJzf^UPO?tJ)8fvw& zuaat|SHH2cy@>1=`rgV;C!J)?(yL!1=RJLqBdNAKm~?KC%J)i5L{O@_y$?lEN{E24 ztsp}!$ImWRjhCdVJM2gd?XxFs#rpuM>h6I_TSNPklj>`G_`5s*AmnlM%6|#+556!z zZ=6lRuqaiP3=OvX2D=;G+sc;@8WxqF4N*UC_3SJ=GW*_Iv%f%Z@N<6!%3XQ}g{nK6 zYd28081$b3ApqMrgHd0hl8BsE2F?HbQZVd9dn~wy2OY8CQUp7~#3P#);MYH?BTQoK z&twhm>X07SUK4lnHUAKKzu-^gBlvx_b&1AUeqXJ-S`Nn*v59Aq?AsUlz9)PrF7i<& zGXCp9IV?n8Gw_Ev(P%#h7(!q|sHVMEVBheHrQoXw8K7Im5MuLt!h2yp5{DERoxQe4_nC@~{)eI>L< zt$f&_EEHK=TK(8;YuPwTDod;P)Ro;V>|A;FY*(~QT}_RV?rc-y83dBL?BsG9zkQdo zcy~4An@cV5Gv%|E>alm%v#)!6?5;1_s4u1L-k$n?LG|rL?dk+4DpSRGL1PP)lBj@I zsI=6m^k$Gw6@TnWbWq~`M&fV~kx)uDP>LZG)7R8~jFLwCcUPjfla1c?*$L-4NTa6+ zV5T)_5H2>pgF%qrLEP~hAfUw8d57@dOZjgy|GmtjJS-|V1do*Z*$LrC5}v*+3~32z z$)ST*cSsS{dC>OmPR}9#x2z^~C|P;fhU`}>Q?0_6|8wq&2}6_{SSX}hLz=zf&P$bk z6}KfT@f8J^aoq?Rt&Y4w`i_qe=;18In}V^*1wHQsK^;mw*?S7)2yEuqNXngScI9VuTR8_7d2(%2d1ih`Smi7C0F!p5sae$B>njLeEH&9F3Qr zeh?+3s?1gHsPLmP#Q26OB@P*-1Z8=hsASe*OiqC=u!E(N zy%TfT4~HV~F~LSm>KULA&Q6{3;Db}ulGM8FbW2_KwU&-J8p{C5=@$_el(#wR?S8R* z(zS7ll1B~M=IiT0Yo)*_AO|Yg*-o@R8AEr<#y->(nF`^5OGQqI_uh&~cr>*j- z0sbS3LZZk{poE=$hMMf5vsOYKLzKN@(v4D8zAHI&mbXTEyAXLRCf&p%D<+M>z()!8 z(5YnkY_wvMM+!WP9CDq&cvgZ@mwgMGax4CME$sL?z;EVo>auUMm=(C&D<+LKfoE~x zpd)|>t1Bjrqj+F6zVtHpHWpUIC()X0Xks)-sPmliA7Py!y9>pfOj7#APqMMsa;R;O zifoD%(GIr6#vHD+5ZfARjRT>qXml!@lp@rVFly1I#04ozwj;DZo=*V^UFl482{j0a zS}T%;5*y2MX**zrnWK6Z=gf~#4`&%X=$S%KV?glVFK^B=2Y2GNrzr)z)?R*d)Ym_< zg^%CmS^tXqlR!7mXa19sD!fGA@)WxYB=u=Xu9}IN6B-f*ty9%ZvVkq?f?)`y>su+^ z)F>T*ipg+%>RBmrTXeOcV?G1PUh!IoSEjA&w1 zJq_>b z%JTAZ!lUC5YYTOb5Ke?nC#Kb?;{{Zl4pcIfiI|g0!MOzE1nbmVPer2?F$NJpJRMQv zPE!=eGz#Gz48`od?J~Z%Ct`K2Iq{=7Nf{SYkck*&q+4X z>i-hiQ=v{#wOyH#65IvInNr|pf;_{ardL3b&jIJ0_qK-^z^A5AstRALMT0L6jN~=R7oGkM-;4+4Z zM_J)fk*(pi(rdxrjDSga=anNtEL^cCs5%yG54o&0$4^9y8+k*46v~NY&gj1fr4bpzccC08;6$u9cUjSa^#6fO}ha>L99Ov4w1L zB9;w3PWEI5ujHEUN?b-Isoj-a&Ow38th4pcJ27u1|4(-f2Pwh5ZMOanlBj>E{Q%ov zv14wQsFV}#wOqp)_ARd;878h5Hj-`&dqwJg|Je0${%rOMX2sv035#5{$Tgzp>qRGo z`u0$qFUh@2u7;gD^Q^p2@Fij9Z_ty_LEx=n;O@x#MU?@H?oDZxd^2-c#f~gP~z2ht|y*E;WTI^ZmUj2UWBhiW*FfmqEHX3kftn) zVXX=E5$;`zL#9Xz;l3V%1N&(g_4ia_)(zB!${mCnO$}`Ev#g#^$`aTtD|OEW_94mK z99MxdRaC}OOCGic8}09x&Y_-$ zvItw|V5cK0=idoK)Y2j02}1yen@b=j4di&Zgf{%90v;ae&;w2e`S1557$13JIAQSN zH0{Un@l8R8rZ8BeW91`)Izb3$(?SNH{!j(QhLV^%a0F;T;oesCfS4Azz@EWoN2%X*8_yyX({~{yut+>4AV2e zLCvHEDUFz;d;UxIHjVc=uK8%iJY}X;Nreu{RA$=nNRg`MiWT5>JQF|=_O-k}4q>-c z^)-@R+8f8BQKVrqzhZFcTPr$Zj8v6Nx;iV=YKKFiDt7??9T;j&<}a57+bhsrNEn3Y z^>{k)yaCUlc&18$Ysq*RKqmc_^fuk5OmJcFfhFU+RGEN55M$T`s}%eh+0_%cC;@v| zl2Wh_3V8lRX0H_d9>3+7xZ`yfMN}E%M6y~Sur}?g6Q*5|Dg{3|3hQj`fPXwKT5s0P_q zE?;$qPiF&LC<6RTZIua!<*sB&twz5p6W~+HA2&?7*THIlRtmwUadSe7nzf2a>@>L2 z6&7o$^TRo{T*rcK7*}MRi9c(AaC$IPP?rk8o0U?dU8OWp z7(5iv0XBu%)|>}<yqYTKmH= ze#qNRMFE9MN2+6G-BJBdDEcwj!4mmjX8UOTD-batj0}5?)gdpJxv-b3var|CpI&30 zQEmFpy8S1>jqH!*+^kuAJ_tUW3VWTX5S9mTK)9Tyc07U`E5;jHSjHR49`$yZJ7bMF zZrb8CTux@N5l3b){lNg^8t)u`pA?|wU9yR!Ksmi((ER@ZH&$tQ%VHRs_8MUWnmIVl z25@^%->ez-9GY{^_)YXZH@|zE{v2g~XCxX%%|9o9%zp&O7{<5H9y0ueUvG3Gum2`^ zCjGa<@~Y-mAA}AgMz!c^hSgUSv-)aa&duUhUwmC0SzfR|YlOE(pe&3pUkHUM%Xn__ zy&bF1Sg#~!BmTnK1}7PYkU1!lXAym-T?3q0wv}buVAxR_B6%%*e2o0VY*=smtN?4B zz5$9C2K4zpTuvXJ-e1YHb63$bJuY6@gUCQG1RD)_+e4@0u~;yiHFfM#Q(BZfE1M}Y zyU@U}Xdu4y@;eI_I)!cn>SJoke^P$lMauW!H$*A0vH}}u8YaMGiPPicx&6oU=h-mt z_}|MPqrZ|(EXAGIEe`@X22Y~yzwZuC@}f%9zidoN zhiou!ugrRvsH8duu(M6yv*T8)d^)l8R~xCnVOp}Yqb7+>N9EHJJC12o>0KL1iS$mm zloH}f$802h(mP=UCB&DGP{;<70s%@cv2nhI->0)ltC%1{-vt}h@rlyyHS+$%P-nal zFQC$?@b+?dG}+HniC2z|!@_A<=_Sz5P9sfkf?7s;0v`-XsKA1dkPnKu1-KI&86UsW z;6|{fZYT9h@(MOZM@80{Y>D-_4ZN|1F6XH6qTHESMz(6t;wc6eve)I!DSX-OKcTNl zT%*m$+3BYJpg8+V_)HEZHyvZAK%^wc8W+nAr_5=9*Vw{ zqT@=h;~@1ZYw)4S2Pqftr+iUO)n={tu9T3z3Y{3?+iubgGVqP+L4&-dz94+ zoxy17)v$t6*cSE`21hG(s8n?+4VWq1F%;eDIp+V4Y#%^#u+ENVRSZGCM#5J{vk`0X z2-ZX3)s(6n9+Q43+H{%*;^*e*lRdh2@{t*Iic!P-~>cb}Nrk`>r5qA&l0{KPM46ZzO3awjz1 zZ&8ghOH}T#D_KFV+cM*oIQ5}39&Pz0>LZDvpW@SW&(^YEV{B>n4OH&7u@0{daG_A6EWN-)@Yh)aml3(h>Pc%FBa!4{SX7vMyz#; zhS;|>?N6$Ytmh_8P8h^a0E2%m1l7al+jrlIQ+{W8IaVrKZ<8AO+ zNL3cl4r|?p*<#vm-TNKTFTL__Oe8dW6{wws^9ce## zBBd!|!=hy{0Y&1+-tC2jc>4(&OwPt*2Y|4bWv~L#$iVIY$e%7^kK~E!T>=e!15LJ+ zy*5F%(E2?}#~75`4_to!gZ##PoxFuEkiscT-MFr6X(yDo9 zJfBPI?~qB&P9)`|JYi$UrK&{GxyxEQMXGw#WKN^sy6mM`s(I98PBSjK^lHSJ%xT6s zO9!EUG53GeWKJFrO<=`p0j z!fBs-vRq|@!I`_H;56u)SZ1_?#qqukk2j_t<9Sy_-a1defIc5N(Nx$ywo&AuBO;N- zq7#wglqWELV@9xf)Ip(M}T4 zz-k@wK2EVF4HRS7$H-7rsZL4+W*{+WmbL>cNn(s#wBsa}@86QE3W|c9%|l7%YFFH( zEHY%S4|pLYKnS7PZ945+9oRuA~&dT>T9T1*c^{x4orbI<$|Bb;)VsE!{X z*O1)@qc0x1qeoxRIA(_jR~7lT5^(2#mY>Rdt#JOD<7+Hz?z#b=rFQQT{3lISI%%ma z*_hj7PD3N2_NO_$b`mn=qAcC}2$vcWDde^!`NWfq2wKv}0268pP@2)snPdvhLTp*>ogQ!#rn8e)#8w112|S%BjP1MvwI zY*S+&4BBXF?O`3oQ?Fn|VW$xgFHVcftHq9%sV_u{hN0 z^7RcT@BpZUZKb|}*dpi~E64V;qL%kl+ZHTb*+sv;gV_H>YX))Hyjd$6k^UpSb5na$ z$({gBh{#ridE;EbDe^b0M^x8duwSb8{x{^u&a0k3nm?_33bZ4jIoMFDLVd{9UIv0y zW6w5+PhK7*^L%F70iUoy*BSPGECMzzfj?Tcfd#1AI` zZ1M-N)Qm}<)`E=6wnvC%dwxnh(YE4iwoO~|fH+hFX> z40s8z+*Y~M+?gjQ5Yhq&!V8f}3w&q?F)haiZtKqOzh23$MiTFb+|5KHZTUUG^?@IZ z5x|FShtobaaESbq^OM}^^=(sfo7ELtmEjA38wLh$SbB{P6_wmi4HR>$vGFMenpYxf zmjgOS)$98s@bx{b;v;Sz z;xuN2`IM1*#muWchWN^L$)G(%Akoy1oS%rB!U>cD+FP_d=p0q_s$%eR1m)H?tqv>@ z=G}$}OWI~=m=TD7h1$B|%*P8BUQ0iitV(PDi;8silh!@}SnDX7+W8D(V|&T@PBLYj zh_dfn37e=C7>CU7Q)Wz?A;MB{Ae={Xt!-r&MV1s`jif|Wu>lD=HqtM6UaFdE#YQaz z8A_SwqM$dejql=40s#Y+mO*yK+E z32?aAQM(fmA|EJr#Elw6u|(LFhp0l~G{}kCv}-8O^9q+6;gqpnZ&hxyV$|%-K!;%iM;Q8t^szF$`VSy> zSJdaic9|b}hO#j@7E!f`T2ID2Q_rZIQazc;4St zji_zDJ_h`70)@eNmdGRhv%%-o1bS?G^Rka~HcSB`kv&8ozHK{I$raUUA{#7*fOCSgcEQ3V z(Nc}J;f>n%N+%lmN;*PHF7*<%=9R;U=5ZR@BWmit3=a3K(*6B?o`3o;lTJl_aM z2dChL21SC*n=pr`Sha0aandRF7o#7Rxm*>fFFH6G*_3hRc&Dx8QEbirIqA<>eokvj(I7ue#yo7+GWFzi_;r?rsOy*w+P6C4lwESqs*N zV=A1Vs0B2k05~Fy<^b{-Rcn3Y4ayMCEMCc_QPaSE9ih&K^Is@CP8y?SgbAabGmetf zegx@?Mk>#-e?Si)BPwlANghsyWJGeD==q}#6b24GyK)rIem2voy7GfOJ9_0L!jP{ZtHenGN zeg32v>E?6mZ(D6F{0shqoc`~_2}EAvqi%#8M#n_9o7sJXj7&sl6HrlQckV1R_bzQ4 z#<|F|CO>HJQ|P%EJ5|PevsR9wLyEoxm~usxMJtyk_Y(}SKi?mL{w!KKX7VgEJ@T0e z$ZVfE|G{RP_`9>D_ZIb$-W%_LQ!^(n**DDHSgGXMJS|HS-9ACO7$Eq8A*c-O&(ys5aVl4q9SzoUIM-fukVcT2M{fheXPaP5YQQ zm}Hyk-qiz4?1AJnARXl`lHPm14?#gWP^UXT`J`;V1j5y<{}!Xv5rYmDz38A83dz!Y zxA%c2{@h*NKK^Q_FA-AjkR#{;n7yf5MA3^D=GX?Dy zgHL|}3qjuhP5J4`{s~f5fxzFV`mw9GAdbIJ_m9SVJb%yj{|xUUf4|#51n&u0^WXPP z`KdzR4f3Ik^3zF+M==@`sfOL01N?siiF5dPl4r>MD})!5&Jv*fNaXK=Lxv(4uhjKmT@48s|sVpQP&I5=7 zmbNi!dABs*&1_VvqP8uE`8y5`~OK(;Y>+VJGl zdM)6j#^=qhZQtzmT| zN*kszc&g<euc)m8 zNMstN`VuVc7+hV_M-!viDAE`0_H_7<%2+BABJZ%TH#kv?b`pYtTGaw*AvV=ocCdSU zOSTmyqLI}&z6(5J`D@S3??0&j0=X(@U<3VaHlxkFH8ru;tnkHJauv12KjK_?CFjF~ zLK+SI*p2ty$RHmTaIl~U%hJnY=wzN-yzC%%;Vs4zvw{6v=6GWGud#zEe4CA$<-0|B zNK}`*`qx2Jt_3Y^@^?;myHu5Oz5MMrNs)?_n`lTp8}C1?&WKN|(T1TA20g=pfc3M7 z#EvbrX6qYF5JnLwf)d$aa6!iwFR1I2DAC!S_yT2N;mGey`=0nCi{;j{+*VMJP5XjP zI{+VX?ry$e;Pw#aWa`38+qc+#{fgveDHbWn_hxY>nOrAVOEk&89}}Up&F!IbRAa|V zkpBxz=_=^xM)|%nhOM7~c^2LY)_?>Wqp$$b3OI^1i?qRd@%$0Wews+lgdhp*l(J$s2%z|Pv&pT&_R=d@XWCW)vQT;{ zHnjrlcSZtR3%tgjP~C0O4F8Xw6|Kgc9SnkOh3xdGX{|yHEhaaDqf00Jy_))|k9rdKmO~=Yxt(7)YU}#Q=_qyn&tg)2B_FW}Z4os}XkUgTUNod)Ipv zf2*$o`N5WT7N`CM=*4QFV*5bRp616-gQJLsJ?)X!(h@6Gf$_UqsPjfMdZm^fCa%jC z^(&F7Qpv4XrhU=TEH_#@zBW2juZ1bVSB9m)Iuf(o);dcD03lhgLSnnDzj<3HzngK<Eq{FG<$7jn%_eW&fND2PTrEvoe70$vyRNLf)2$J5$R>2-2zT1YrW zKGY8pRI{+#_z!?t z*xXjurL3?T`Uv)$^ie!Jt;NGV;W-IrMW(qVV8ax@750jgx*;O46WTtI5nhX6b=jd9 zufqSGYyAj(5)J1bK$l0cX^leqgZSb7ugpEb>Usfru?Gl}Xkkq)iAuNErq!wUMs>c# zb~GM{vN{7l>_%+H0o1yQ;L*7UDkh%QT>!04I17pX5}D2=2s;KOz#LZ*_m4A}pDaA# zEXEB_2SM@wXrju|)@cU9w#FoEEB4hx!W#5J_+7<;rB68FvX2AV~B4A2A9uWrKx|d!J#nm(4#gY}t zN|wCT{*$pCP3qP? z#Gd({Q8T5(810n@zKC@qlpF3euxJ93&W}6Nj*-5}1g`yUJXjE;1`ILM`>=5>3RNkp zx%)}!M*#=@Vwc{Vw!er?b>Nt(o`dd^-ka)(oG|slmKp4;>FhID`6S=rypm zjwAf^7!Hn!cYEsmAHz(;4vkF!ZPC6#xyT!)iLw!di&C|86pnyMff0B!#`}N+uj+(2 z&bWk2#~}j5*%vo1NNaxpXORLLfP8E#Mpqnv=?8sJ961@4fi|9yp9rmQL)O>;_tOtx z-5z_Y>>$yy(a3R@_d~Gu?2!plsF4nB^`D8n~&UbkP>-iTU(KAMV z)4a5meI2u*KzlweOMyF3i%z13##{Y=hf@Uf_U*ta3z!3DwUYq`1K-kPk$)Nbg4!H{ z{GoklTT!L{0RqT9ijW*Z$R`7$G2|1x7$A}3)63k|`ywCqN0=l3fs-h@2e1ekDKH<2 zoS*gOh(nJ7yhUG!_w)UIKx78{ayma0IraSqi;9Xc45G&zY%5$gUi26ODQs&;1T%=_ z(5Vrj({ZdR?Gs<}M#{{Z(Yy{l)J5@WU$Z9IyAxA!0uIxG{5Eiar>1Oncp}%j-~fkl z8tV|`ALX>QSXw}KHql1j${M-VxpF%hJ@VFEHbaEg?~i7oSTZ{$Ea7M5v}MG*J^R7Z zYS;{GPj!YQkox=tEY&T=ac0oNUOY=lZDIvEd>7(z~@s$@?fL_>}dl0 zA~>8<#hxM{A!$?YS6@F?65hDMui< z9{8E=6Ek0e6u1ZZidOEAmPvu(G!$Wrv${&C26=Es2eT9T^Z;o!ow6aL6f2y_4zJS~ zwg-B{fqzy5|KsvL$%FJ82nJocRmvwg(`@idSf$s`ilJkCJ&(>utFy4bCW#J(NNYO~ zrqfk&=qCAFXHrW=U#iFdPZq%*QtQ}aI`)4W?2m1`@BmwtWmxsVOR}_fJYt_`hgcoh zViZZdk4^-swm9^YRhrUp71ubO!e!O!^0+>j&X8U+r!%DN8qzTRd=@}HBEH+eRb&`C z4+_jshiThcga4rPal41tM=B1WlhZmoPytzbQm`3CW3CEm?VqS^hCIdi%ysk}2IMn0 z(nUDvV=b2gOHjg~-`5-XIQPR5==&!SyK<6oCF-o9}FqTNS8 zQX#FO;TULP!;XiK(Jgc?&?^1qCwF_(K|Yl@Cgq+LK(v9yaKF(%yklUk$OqQat3L?> zzg`K4{V2t@k*?@-9{~ec(;5JhPf6r`#+2kIJrRg-mH>mW&ZIUeP!BXQ_o$c$aGQu@ z2ubW4ZpSbOOpogyVO%olF%})PBvF}*C9I_j(Err=awtRZPt5~cgG(G9aLSS)?YS6r z?Z`=t6WmoQar(euv#L{ty7Ylv{a_?tCPE@zvAi z5=MKb(SieCkt$YRbUj7rJ$@sk=v7xa-YxS`f>z`n2QrvKWC0Jl6v9hSv^`k~xB|$A zs2sE-S_DbTLm;2ZB0Ur7<#;Uuz6FRc#5={0K|EG(=yj$x5cOdh!Y+Me=N1Nh{_^R# z#r?H~S7QWe72wRMrn7Z(h~F{!#Z5m9(@7~%2?%oMRZ{RdyqGn)8)N9<8AI2ObY87g zHAzqnYsL}S=JTlcv`Qa^%DZN%j|kG5F$v)6s$EgnOO-0za1(%;Nr+1iX-EHbs}`4k|7(B zbp2PLl@Nw?v;$6HR)cXP6Ra@r5P)=nZ_xh{|3I_F9*|QC9E5>oLRA;y1~4ECy905s z)Ihsb)SHTyXEM>XVJYIZLEvrn4o5@(8(^CJfCHv>u^T}t@Dfm?I6)!SDU<@^Q4vMp z3djF4U*j3(I$b>o$kie<+M-VeWYYaCf{L~4xJ#R^yK#aPo5*JRXc0)Q4@0nr-sPu? zrNH;-j2Oku4$xNt8qRq4?hp(^7X4Q}_@lBhK>rzozFVE^MPfH8@DO@#*EK|eT`;u` z>}=X2m@eyo2j~8~V!ya(u^F(r^+jAi5<2Cl7T`)s6JIC}OAOz}{{}Lxe_V(V&5!hC z6k7>Xp&X!Cgoqt)b}eS8;6;=C4XBa!xe#ZkVqU_#3GeAJHq2fVnL!B13b7dS5i6l1 z)3t2k$bXQU=*^L!IG1hN2DD`dB1@)>W8Md_q9Xql?*I0z^U2+F^qdk6q7Z02I3 zJ3o)YTZaz&fOnV_c%-L&@8DIPAu6}>hQ$~fnj}>U+={kSbWa2SKrx+uDKNy4vQ+3x zIs%){U~P^hjT?dztdv1lk@pYv96PFy2J%KH-Y5ljfSt-u-5>>5p$p1OOOnQD^`)`t7RkApI|LnzM-hHxxAG{{sAOg=}3|-@DYF zg(wEEX5e}Bv3y$O_J$N#NncHsug1g5_^1z*s@4YL>OQUT7BbCv=wDx;PsW>%Xf_|!t9284EZL}J|XlT z!EKXw#_@Uq+>Y+DK#1PFND`rsq-T+YQ#Vj=p^^0Ur~@taZlWS6 z>cu10f#^B?C~BcDmbDBf=wG7ym0OXG55A`&h|>YFh}kbh*h!#b+8ixTzc7mj z{8#=dT~S6`2Ka$`J%Q6O9^{ShCa>APy8!WGHB~|XQdiMdcLP&noIuB=>Q$&i`WOT^ z2M?mX;r2?`H-b+fLVnIC=);aVt}OjpG@5-CijH7Q#S2lsgX*dR3w76pcl|D^ZOH6K911QvDNEc^dcJzGlc>p;`G&fv@4uZ+G{~O5X4vf^XtsDGltRF82 znlB<7I)^`!;kIl2oF&pDkv6KYxgRnabp`Dku&cz7V|OD=w6o6A0o;fea7tZ(Q>BAB zT-r_8Ck;>}^lS^33PPO;YStQ*qZoCv1M6Y%6&mv~y3Rw!O-NyO$C;Aj;GE<%92<{| z*iC%~yY@p67DnIrsFJl38ypWyALcx3XVdJV{RxnTRJmJ|OSuf%d-L*c`?b3q zIhA^qqi#XDq*%EF$vx%%T^XocDr1S2d9zm;mF^w`0)(#>JqV%3NR>#FjG23|1&S05 zoGnp_tAjs)|G>9xw}O7@plu3k*aIum9csSH1?XuFEA^j)4#91^`==tjJ0SzVy8vo; z|1o&m8!DyKx-*R!FOO+i?z)#m;@)>{q`&606l3d5q05Emy)8$-(WNz2uy8R`3x)PM z_{C_;T`s!DIFCq3I4ns8Hm*J5j%olTbXvB3qwi^!R_B3Oaxv~3qTI+#+LEMU485n- zkaHXECaJZPpm2d*)swrv^yB zueqXzpMfrh+6T%7+CPTy#*nhlLa)=D298^r-^2d#Ir(%>x*hNGw^kn2e*-bjD8x_@ zTgL+-AcD@$?3aVP0fTQFA(}%LBcp}Lh`C|k7L9t~Ex2%6s*yXrInmV^Lk;@`RdN~6xzcDS)Fx@KG>E$p z*0Yf@9N?Tx020oETgG)j6r|r*>sMl!sRX)Qg!B!t+u`5COpiDgX4={c=oc_L1&LP` zgO|aw`A{u%bia_;S@!}=OZCMV2(eeqL+2Q>OZ~bGbOPyHxg4*V25cgB(6c$xmwxe# z!!KBnym@bHln;i>R59&1Za71Y#hwO9U4#rh zx@CS(C_xHLM+p0SXw}lp!i$w&f@;&@(xz)@)1{}#2M&(%!eSnSfq*oT05ynz8QLHW zJlK1NSJ;um;J>_--tn=ADYamZF=_OhLAU^6FIJ8706K@Pa~FVO`vcAMV8w~r9pGNL zW@%Rw3u}kbPK+rin5@mal+z4Ha{=0$)+PlHqeo3dwBI5pkjuyFG%{m=05HJNP7`8? zi8Tz=_X2Tf)?J__Amx8F0zpWIgyP9`lh%j6)pogk1gMw+EXT-4MfrQ&Kg!zRxbeA) zac>AP!m7V^%P_zuY>MNJhC5Ibt-JA)nodf^JHmNjonQ&D#d|uj5vg$#qc~~pjR=`3 z!H(gK;F1)IK-9v}md~KC4Qhx4So;h$0NPr`D1(EEoWb<}f{YmUNURP($suUC z`3QoCR?Kua8pCHE7@Jb5H}Nba3k}b7{xle!3UZ}2$JMPz4WC}I{uXRLLy%AiT>w`) z*%`0WOCuPC^fOmb9nC=5r4IvYG*qQwwuYp9D$&sb$@c2IVF= z0(Tze*oqu1^MaC)mVZ!69V#srh=oj6(UxF^19KTt+*rJ<%|O%1Zue?yiAE$R-KUE` zrI;GNmZ#i7`)PuEpk#>IsW5~=n}r-C75Zi*R6=CD=x`_m-2%p{)J72sVOFOv1_NRL zsA0KaheR#L1_dkdL;-ddHbz>VC%nSWYTWIk3SC~I(3MX(Q8K7kQ3)y{T+Bf~O=Xc7 zYtTrNgDtv%8cBsjFd0EFYPSvo!|X)>)Z^T)AH<}hHzi&IhXOkDlMq};e9lOed>+f zHg4g@sv@Q`d%~b&%XV(yM*0<1Hg5+BIrWVBPPcw0tDCxrl>A;DJZA6~C;oQ-);(Xt zF5>2NOHFggAgQ#5tcSh(Y2G8P-Vb~Y%aa>1Pj;YPQt&v9xL|r@v_!DqN2 z)TvS5Nwl*d##tqpxf}h1>@H|$j0J6vqvja;4!I#{gaydI!Hp15FA(a441Ez9rq}_67Vffvuz5C&Fca;}=29I& z8tznFLx4qUkVDiS!hnMI8m)k%R3C^&)aeBfh~{dt;*X+$F&C$~&t@_pz&pe_L?*(T zI7nZD1l)6qZe|_&R+4S%TR5}e2%LVSeoZuBF>JE()SZv}1L z!XyM^;@Yiv$84iNO$AY!cC+yCOoT6-*y>}jw?$szfcU7u5&iuusuEb3j7Tab))YMn zv?HF6wUPLqw@;#mPbT+!Fv%F>I0(K*hx1hilWg<=Dvbtp7LWcDG+8ee(Vhma&Sei3 zv?kVA`zawqOz3;(90t^9p=sT?IcV5y=|xQ6Y9hzmR3|Jr%I73NAvbs;mA>ncYT{)K zKQU$+0{Th87H&H3Y1VJ1&H{ZlP+v+pfI_mQN2#`~3+xN0r zfJKUu>j>xmKtO>8*Nk}b%~VKrU`sQC7(UQx+(e~)$4Ib72QTD@=A6*+iORGeuv7VU zO@>Jnwp@eE8-Q>$cAgm9rR2j->M=FPHH?o@v>>r=IUq>ywJT$ygEQ&u7a4)LQqH_9 zL;E>3db6|FM!8=5ugv?x&5~#bho+F7QmBlf87mF#IKBBem|~{89cMc4V4dt3+Y%Wh z)CzUbFBV^(yd@5X&dkNvqF73-V(GnH3*kX};VtwPWMv0$k8EB$&W=$nYz)G52o$GY zDI6vu!S9(h8{S(pa;EBYjRJ-8Asbyd>vJjh-wNUK<>ECK-#EE8&a)iVkK)y1D-cmu zdM_SYpVxkaQTykSa)71Nzo-gun)O8>jXE)^{|ZljKLAk}o8@hapD!cvz0TZ$8@LW~ zt@H`Q8bTN5{(wu?$Y1aWLUl!ou(+gr#SdVoKT;|htmM+HF*?}GI~V(He0OvGyqYwl z!3=aq2Jwmw;{;7$NP&XWXs#%dTIJ>Qd3k=nFkM_hpBAL-bmE=P4%)Wm{4nZqgKcqBs(FaLBKOCO)s1=$CbsI!L5TCR5SsrZdcL7t8X~_(O+;WEU|ww5 z0J29Tvi1(ftzPV`KZ0l=UD1bU(C%@uBdHjm=PSjyBOPBb307}- zox?&riWD2Nz+DfiMx}geAO&`V62@)jjd;VgkdKjk)De9E&b^Br1<3i4fy!iD4=2~f z2_ernY_erB`QyklPFL%o0tbSrcoMEup$*;|nonD`WyXl|F?#hOPgiBh{BSOSlQ4ks zIoIOjN4tVpu_|`m;+p`{EWjbiTUZC0lO7qMNRY^oht7sdi%Ei0ffsElwDQVhHF6J( zO&efTw!H^9-b~>z{0+wU5i-d>9c>U|jw?^eFzK^v(|S&|CQf>)$f$tGPUQFEN$ZlM z87zl&(6I96Ol(5#rC@O$oo)cZr-0;BgGvW(AoYl~oLWIGkUZO$|A4O579f)0b6WUF zlX(7pS0t>Qm|z$uNZ_KH{>GVWkUB{SG*)0n>chQouuSiX!nO|Vsu=2T!(qrcHbgeQ z!cax@HT5Bo7LAqhyfd;UHtlD5BCe#QcIa;cj~@P+55AeF6hN}Z&ag{Q^8jz~KejJ6;;Qwosw1Mo3y zFZ6(uki*kuK50m$FbqxXmkT@ycPD-^1R)<>@y5-M!*H|t zD4Y<+(;?T1=rLyu3@x(>(4L$l*_~%f{thx^k?Qx~g04x23qlh;p^}lx;xoZ^{|FeM z8IgX*`dKo*(ApQtST*s47PSE^u{sG=2E*4XKoKB9F0^?JJ#&PdE${}s3Z!U*o|-E_ zUedvzc66SxpU%J|)AV=YOI^7ZT%dL58Fypa*2}&g1r8gAO>^=Vu^as+`CFV$LbGwC z?M%t1s4N}qkfA!BS8hfdZl*S<LXpQ{Zg5De0+y^9*L)MvP{-G}|8 zgHw?UOT2y7Q3bWeeI8nZS;4XkD{w^XIRi6ZlEdCs>u%)5jks;S1Q76y>&xuQU@JaF zi~S0|JXE)c>vDX}mLk!_8Om_F(F4v|CnAi`3yZEXz1|lx+;XtuEi{~$p&?2Y7pvkH zD!_?ASD^IVregMQXPi;7Z!~t6_=g)GG&X&}xVX$f>ad7JpH9fVW{zV$wM3pLLYeZ* z*RxEt=>j@|D8_ZfaJs+bqWGiFfEFw)fSHCbKH)|;lt{sGHI1BQ^4X-a>y(stTR#OQ zcKIGv;^lEfl{hByIDc*o>R|Kkn#c|O&VAgQdQcTVgiqHJ(&FiZ1dxDXm_I?(Ykl{{ zpwP!jt-kloYtvaXw%Aku$BvRI!!y7E7Xiq=UU{e$Jb_Ejg_@P8onWOUe^kZVS15mE z9c~Z!fPb%*w;os1?DD0_%fzIzbnI$PK)bNt)k7K@z>7$jnyVZ% z55bM1^|E>JhA#0!1r!aE(|QXh`OTQP5*)&*d+JIN&|26BK*ocp{V#ZJc^pde^E0qS zBEJPS|BLtod|@)D*1!i(oS-F5>ZQYNxWCvTn-_t{=)tLx&&LWF2Feob2)BFouCU=F z6MJzr3pb-x@$#_~X^hE~{#=c#8sm+r_Cj6(qOo7H3(%p)GF2~)v8k%9!b3}FStSzN zZd%K@*uQ4UNtJ(nD?{aXlsVO0hnn)dhr8-&v?=jnHptbnOIdJ+-)c?c5f(-M*^cgMFlV|gs0}Py zgHzbBUC3BBu2ke$VtMdggB9vnqHn*^-GCdZ=*H&fgbi;uVHEYHnixsJGiV&Jx(H4> zT@VywW)a>aAQ1LljxT^b2IUPnCR4vc7iIM#&-(>u+!Y=W3|VrRGK%z7mLr zF=&QYfhy~y8LBan1WW}MBQ_G%Vk6O#w#cVo*;e`<1x^-$|84l#75X+# z4mniuGPQ811D~4@;bXCfL>N)ZP*1Y2?XqflD?UrX`5ngiIrkkI_GcDoTL2L$WSC9R z;@Gq3336(U0DDRmx8fIzI1{+T?izSyh_yi0bSaRDB(@aaV6w|~4)tM&`h+7U`P4J2 zxEc>9&PgMd>j5<OF2RE+OOY7e?Aoo6b5Dlz&B98bKYT>>{E?6Hw1 zmxJvoI+lyI86z%qwEi~a1ikqYw+}Wtk&83AG3~$_0u5{;cFj>)?G`df+?bf6kceQ6Pw5hl_ z0R(Q+c!{QiNuA){UNsoGQ7dKb72k6ng>0d8tYUagRYChJv@fxkK>S9NVBV)#AA>!D zU9izIb6Z$LDB@TN$B~^@S92R+hi9LZKG@!L2w&MOaHx+tjWro#;PlOgh~=rzT)qQ( zh+Vqr=hU(j;PQN$r5RsW;Qb2_9k8p8p@R!~SFkVBa7{VWlTI;w_5FC$Ay|s6Ao;RJ ze6@yZvitu+pjRHf9!fXAPRnxWIe#joVcEGS~tfSH>tgxX2_z5)uHo zWc1+Glma`~Yq*~y%nmL7x<|XwHpwMz$SQW=!x{us41%y00HZcT(M+)W-j(_HL*QW3 zB5O@Tn)ZE*mbzev!c#UzNTv1#nLvRIk(1w4`lzEqZ*L zuoc&SLKEVC(Rr}E6-)Phc4UtM8Nwg@Ns|ukA*eWt!%k@ngQ~utR35|uZq*lk< ze12*^x0=t*=Cj&-eqcT;&F50{`Mmjj(R{vYK6jhXR`a>ue7<8o1LpHh^Vw`Z517w- z^ZAAOe3?J#t~UA)oWc)4LJ-6@>8*ja=h+MAr}w(r&6saZxnQ7r~3?I;- z0wE0WE|Xgg^57rhi7dVoTgwi0oJ8-k`q}PA8l64bl9|$nopQ$rKlvp@e3L+0bAY(x z82c=3?`2_(M8=_9^czMCD++V=2R}kyzVY|tc9y%bgFeEb;n{)v209`yAf4(tG@EUu zdbm8MyWV#a=u>H3(8n!I!J;_@1>;o}@MikgX%r zg$TlDXUBJ*ow&5>%SG40iWV1Lg;FA_!$^4)5Ko{CJ|2SdN0aJjvlAQv>=)SS|B8Ld zLZe`I3`=)KwvR=9(yB|KnDycKG39e6r%f{|%#yZ>5`zGM!zntsyL z?BkfIP_s`0{Z9NIiV+C<;pmbpr4RSYCr9{i8jCtNq3srFbr8RvqtdDsctV?gjsot+ z+3sq>l1SD$n;p8h zzG5em!ocE3+!`6igwf{Nx#$|whRE@qXG@9b+36d~I^B)>3^docFHq0NtLbmxh``@Z zn1I7ff6A9na8tP60UyT3mub0$b06doe=p;bVW4QCcY6LOe^iG4>H&kalNbMLKaNJL zZ#6a|5G?GX<(m?qlq@u%e;L|=t|ER5R{>M{|NZ;_F9nJp`o)94{MEJY8%EDBF1Flv z$Kw0$e&E4}N_-D2$}YaYq~w8;|DkD99(-`>|B%J<-tdt4$kY)h*6EELz#5z)H+xD}aJD2n*W0B=S{13xck1mHtWL=r;J&+YhZr3 zu0HSb*5Bp+{inNcd;N{U_YHgVi`g~5e{Q;8nSS@y8!!7+*{J46{@VYAUk*LWM+HcvH9f^MT#~mMN z*VeB%ykz0(%<5lH%(!flIPM?Qw|HLbv+C-UVcA!18D|;2$Qiok^Ox3Mvb224kad5x z4IA?QjuC?*PYSQLPfA!(Z?$gUvCWqF+H*_ateU?3p~}IJ?Nz_<@7nXbhl{K4e)Qe% z2mT_itG?*t34gv9*RalNSTTG?(Y)PLf0^;ZZhy!a%b!J>n6Rq?&C9W%zOVT<;tqx{(k?zt{e5nlh5B+y!JNxb#isc2N?HOme?b8z@Otpyg`*ERA+{g$yEN5($<=E5 z%nK5DAn=TAf}#Y($N-~p0EI#1{cm+A>43cV&O2x3oado9zw_Pu-S6JITUXutRi*I! zc!(Q(MmC(UuX=FZh4yV+-)?>X;ZItvu0MRdY}FV3WsXmuIoP-6^V&1js_&N{{PTtU zeJ{*4?$}p;^S#8aRh!qmJ*{%Zb^W_t>#wgrP`z!<)Xz&-?#Y*4e|FjrZ?2uZd4BJ# z$f6$Igjw&jzceSDT>0WI{@IuQSU&sLL+6f~_`}=n^2}TJSu*Q?pY!+YxsMJ0yu*m4 z)d$o2Oq(%vQGWXL+$<8jI(cW&jrPBFJ=Sf6X92IW^-JC@|8>;sot_>)sq4#ue@o)M z$9tw2-fTUCd%Df!Hoe+keDGw)$5$_)_3uBSF)iz4oK;qhm zGN^RGy50Yo>e|`8*Wd#c0IX?eOc{i*JmDmrD{pRqG@luUuj&> z;hmd{HzihXY;*s!Z=V`0taeG4R(K0HSA9A)vMu4)(w5EUA2zXTLm8+Bb)W%U1wVqH z!2jlk#qK+JWr(x|c-@Kg2Dm+u>44?G34@z3xCsON!4J6!gPSm5-+pCxM10x>B!IS{ zBj^oGU^=+TXay2LThI~o1|~2apoBXgb$Wb)+wF4}Cl^a17mWDAZm-N0+T5Nm$sySucKdyVVjmX>$q|R23(6k9 z-Nw$#1(4Nm_j|Y^IT&J!{*Iw=EdRH83fy5XYNr)5?I|-678A=?) zgMaMEvE`6#Um+Ptd?cc12SGc~7x8!o5z7+$ZDa8U*nb?$6Nt&iGX5{p94mvwWUY)f4+sEOUP?@|Fc%lT^<33) z^=(Y6bTqfGQFoh+*$9w(?XJK)Kmh>(z;vezqUBUWE&yi0%KpmMTz&<@77%~V#xT>f zF~az`eeQ6nGFUtzNgh{V?35@o5w-yQdQG-;zkSWihfIIooBztd*?UaaOW(9Ska5_g z`p2|o-I5ok36n;QV{!c20XGaQNi%-&paKw+H6(|v{zy0w30pC{y|ys1I&V|K@|FYd z8xy>*N7zFB&PM~z$&P+zMUaV6X?`^-XYGp0XRa!;Z01nZkC58Vc16zoWU(UUg9n-9 ztQD5xv!>S*b%Vd2&j)EhW7+cFnMSd*;~L9-}hmA05-?qlU7kb#vA4jxYYxp`~e> zHEWOd{XSb~SaUh!M#ojcvc+>gYPWrI|8)Nb$G|pw*-!K5kJ$OU`|jDYW!r+RE7wea zO~}=b5qk00Mi$SQl=knT>7VCzjr@FOLabJ+$8Kd8jQ}o7*20L-4qcoI8Aqh2>$!m= za>fnf#G$&OJSXsK4WA;Ua0BI%fE>gX&lk4gH+|RkZa>_e4|jhTcdrlsFRqh~_k?+4 z-g=ycTOW@4d9o2^46G$&G+tg0;3*2nzL^E`haikse=R-mWKGQjK^r%7Lyk`y8lO0+~r z^dyy};d9|e>>ABv7#U8|Ne0OzS!4tmN#FtVJDthA;sDF`!SjVp(iGW|?)L_4K{>O; z?y~uuvRN$<>z$Jc%CH7($QZWTJ+dtrQ(#S1;14xN>@L|pB^2?p^>CclkA0&rB0HK@ za(pgl(1u-;9EjINPZn1+Tfq7J%_W4eGP8N&HL<;(ViF1mWt-Qk)Tf1_sq!%khm3%~ zG~TAMZZV5OPbB1uPgfMyLN`2$tXpDcY@g90?k|$x(wn=1 z#n_-VRj^SJYHAnL#8r$%i`k~1wVHL-aI4Kx)FPs8j$yy9OpmCc;!J2xWSg(%mPAcF ze!tS6&9S)BFkO`C8BJudTM`=^)@Tsx&S2-1Lr7X3yCz2u$5(`OIgR^hU84rq zedtP{`?=#H^r|z2^aMP}0#5-CC_)HQ09YGEd;8mpS;Z>m4mKUOQA?D>6i3GTkx zh!Y$2_=91Rtg?muZah*~VR|72ze`miTz+;kR#h03Wt6OPVg~w(2zglr z1Di*-`&n$R${WkEK;@Oab{FQ$LM7yd|M3q>2v>ac5mLQaIgoWK%roUAl`7n7qJ@zi zD%`!5+`Cu^?O`)-4-0!_A0hi#$Y)2Pt?wzehZLRiV4@B`{C^UoGM~uF9IX+Q6(&y8 z1?Tx!;tdtqgW<-rqXKt25~Dt0mdu`Ol!H5&-qrt-dcYm%N!)=%Jj+RHxI5;*q>=p} z+mZ<10gQU_5Ahb>#uxIh@)i6E{vLIbdVpG^9-$ts4yfm;-@?n(C)M@pOX@DdgF+u+ zq>w925`H7h7Iq0b@kMdI_?oy(+#qfdcZ*B(d-a5aj{@cH6qg!K8a^;$V@_rv-kaYm zTovBXq)JV@x$ZW%LP)p&9aPUy zFHvt*f2cm8KCQ+_U)4PXPRJ4Rgr^0k;1Q+@Wx_0Bp76S`Tv#u>FPs$422(=V~Tsp4P0_yr-$r928H8b>eaQ1wBuHqHVQ3wf(gMYB@@4 z)w;CLYhTpP)|P8GXm@J&YY%C^(4N;`(I)6R==$pf-7wu`U5V}$-F)2}y8XIObfQD=`-|JeOO9}-Ks*}!2=cJ2L1IF^I^dp>8D%y^Apoz2#O`<(1NBhx% zbO`0CNVPPLnrQ|dNk>x)&7)7!r)WNPP#5*k0A@f5eV&%lnV1Q4XgOU-U!zND1$~RI zr5k7^-AuR9Dq2lz=w5n&*3u*NI6X=0=vjJ>UZf55GQCO@wOzDH7#R+}P4-eoB18v1 ciSNlH03RKTtN3<&2R>2JFzwyrm)8UT1=y8pMF0Q* literal 0 HcmV?d00001 diff --git a/Template/Output/libpng16-16.dll b/Template/Output/libpng16-16.dll new file mode 100644 index 0000000000000000000000000000000000000000..e0cdc5cd2e56d349ae51a7f876db739301369f5e GIT binary patch literal 200704 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 ^%JA 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 literal 0 HcmV?d00001 diff --git a/Template/Output/libtiff-5.dll b/Template/Output/libtiff-5.dll new file mode 100644 index 0000000000000000000000000000000000000000..76cbe3337b361cccc90d0513ca3758b5a6b4bafd GIT binary patch literal 436224 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%0A5y6P3oC9~#D2m8 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

3_B9 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 literal 0 HcmV?d00001 diff --git a/Template/Output/libvorbisfile-3.dll b/Template/Output/libvorbisfile-3.dll new file mode 100644 index 0000000000000000000000000000000000000000..7b4585a5d8d8bbfd818807f617c9ec060f378b71 GIT binary patch literal 62976 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 literal 0 HcmV?d00001 diff --git a/Template/Output/libwebp-4.dll b/Template/Output/libwebp-4.dll new file mode 100644 index 0000000000000000000000000000000000000000..e34f1b845d1e8b3ba1c3f81997113cbd54f7f659 GIT binary patch literal 271872 zcmeFadwf*I`9HoVyTF25&#EiNcB^ZSxlpkE{Qu*n zIp@sfnP;BcJTvpm?B!RrdAuHv$A|y>`#qj@c=BJd`upjBnvi|+*-xJAd35v(=d3fT zUO1J+<7;BZ{D|m5c%%6Z@lrQc;q|RN9Hx&7@2cpq;$&E$PaFsb^V2(`OKK8 z3%a_@~7U@E@mKyg}g?VY&O=a$}BDZr=3` zH+|Qmc>^AKK8x~!e=9eMVE+GqC#Jwu>%HuhFWQ6>>BzUd9^s3MuJr!*vpk8Nzxs8_ zd-cD%AAjPXNh#J_8?y5{uI|EP9cBCKuC{67pVI*&D5nJyJ&lVV@Oa*~)bZM>EqY$vK@4NciYdQlS>yV)m8u!e4fa)m!hwaK*UvH>zhuQo&fX}qN zZAiilxNvYf65eM5>iBdW z4<6~g$j}u@0_Rl}5&P|@&c%lZ@-jobG+lI06%c_~qDPz_o7-F8SoMIGocN9DGe1B# z7f1aB%PQ>JZ~m14jX3Tu>MZ>eyCf|R5@R_3|4eDE>|Ug zgtm^wZ-k5AF=!t>tkFIuIrXpp{=6Q_1A3FV$c2|_anoQWH%XNJBfScB191toOpQ zCK^qRc=(H2q@a0__^N1*ER9CepGRS9Ll_!qKl){22?YqGAK#nhL9IaVcG`<;x@ZVo zcn{Qrdr+DZWN1_5X#zV>Z-DwfIX9H9hqfYnEQR4@pj2dgbIv?I1)yG z&!&&MW^4Fuga4+@pn0m2@#rjB7o7l6FU$8U(4kKcTu*_tGZoypy2H}{x{NAY3o zElioW{y)5-Sc1wgWoQ(>HkpaJ{Iat7)h|k;xzY;a9d9vd1@LAzpM?^MJ!bP*maK{9 zCVI@~zY`X0$18YRi=#1P!4$JSD7IK{dYcX!tyR(dg%^u09gYtP))C=FgZVv*I{j_Qi4Cb4Tb$ETm-tu@b1HV zu7K^BHPuUuVq$YgI?LMSmA=I0or?0OgL%240ZOtMN)n3#fdGuv;%EV^ACXR3Bmf$u zzKFf%+ULBA2$@E~8b611vM34`fgyF|RB1Fn{ewf`JYJkENTIU-D183#!ljwQ#hJoM ziky}o0{`yt@-dW8hfvnJ3FTA=fpP}>(r6G#ng09J>wlqG5u;AfdcoShn5jm~(11>Z zJ}+;gxiu3e@I;Z{qlgkBEkAXTpT&v&ji;=mepnmo6t&qO*$|zZ*t6taxi}h6^e=e> zLbfQeGyWssut-+=6Pw}_WpzMShGcEFEDnn8*1JcoT}Kl=iyn35uJQMYO-ueav2)3< zjF$=*N9QiS%h*v^8jUYr1?`W68*>$`>M(@;3$i!@OH>-2Yp(nuFjYClQI!-oS6-`= z=E}1~IXNG<4hKZJ-)t#kMma~+lVo`{rEw)C6gU%q>+l$JMFA7aqjGWx;3Ia0q0lon z<11U1=WJOV&BkkvET>o%*=0lWb7grD`MJ=M)ky$f-EmG*mS?+fg*Qgbdypdf4%`?) z-C|ju3+XI{0bCp{rGcnIYNZ;E%$DDQzL3+(!kTEY*>acu$~`BEZw&@7ISL;77dg&NbHtR3WhuNP>G~*bR2aTyY8c z1IBBE5FvL#^N793*wPQuHYjx22_j%Ne+$K-J2}9KPvv&wIhWrg0(hST!i2rx8)P7M zT0=D7=s2avNKxb1l~Z03MNy?5RnemKhQBKPXg+`(;00uhM0vF+51K0!lK_UoHaP-d z5pmEC6^JFdXe3)q4~ZM2;>H|1WZHqCSduR$XNx5TjiZc1kgoDDu*s2U$s2ugiC>h{ z(#;j+F#uD#X11)vK;?W3R4;6Z7Mb^SSxdqmidYv)79IFNE-8A3=vs$73xkDy3j^nT zbk1MQ_P;onQrY+S?nSX&F*!8YM0W2lk3$(Xi9>oAut+gQDLf~QIdyg)U!7m#&DFT~xvMhlGfGb~8%|2Nhvf;nWl4=3-_dl0=J-zS1zR#e# z1VFPO%nb}nJR-I|aXN~N)JMOOS5_nSy$8ykj@9Kxx2*z%dtg)x}7jBWO??)l? zp3-PV@=c%pL(mWTIjB=-{M=#+BRCvs?E_q!o<~Ngf$OIh_kbO*H9qi++zk%m07uFQU zqdB*fh<)e7XzuTXmwSZiibCevPNO0uHgD-O*Ct3zqaxd=2+Imi-AOfso&W*@`JX?L|uBWOk_2=!h`c5|Q>%u7g zZ9t-*GYcbZ5TyfF2W7{P|7RkLqZEhFn4q&6&cj3!87Lb<*&s5h9|f#{XR%wjNEI$% zVE}IWQI^L{d<89|NPeQ@|JG#g|E0;|Ax*}wMB^MAqM4qdmp-I%(DsV}y5rZdS>Qi+ zCyK%_CgY#hWS&BKRnnt%5kMm{LD|Jy3~wN`9av|!8)o|zMxvt?V{-gi@tQcAe9LF9 z#TX1FHTHp1F{Mp0vppV-T2E8E4Lej0Ws1hH(7K&`+iR|U4Jie7=&-zps$p!^de?Ld z#`rqr;}x5U&w}^lG6cwD-gcJyI_;4x^S0CQ>Wsu6aQw?+v&&-;Cjz37eSCD3z+NKRh;-{Sbt)`{a{DYCM2amjP#>Vxj8D)+3i(?g- zH!O}eNM)QfYk*(1IC|i9W3L_BGPH1iISMOdf+98E$CLrXxM%y4B)7o4@^2{OoQBrj z@lBbH9U>MTx0e)yg89;w`@pjfSRFG_0J5Zz-T}`EPam0#!s+Y3Mf>4AuLonrq2m%f z;IhYwf!dk*#|{7?u)hhCJ15Q{$p3m0g$UU3?~ zindm)VngwmwIQZ$?Z3g-(A|9J`+Z=6LJrknqjjw|mw$uwD3uMMNl7j`^BEDwdKbr$ zKTwrQO7WT~<*Q9qw+?2R?SJCPZ6=CHngne*|D_TU_f1Z%mL;|Fo)Et6nz3f`kk2k1 zX(s!8g|CSO$6&FVMrp}NaSxwzbvFJMZpQa&=7J?FHv*zv=Cg0fha1b;OBl}({x1g6 zi)H;RPSy9J5I#fZGxc$mJhuT8J+JpBA4DNLZo4|@7@fZE<-74hvNZnG0xAY&0x#Kq%tb=*9x%lK-Ldk@#jTWbhEU#Q3S||havlelyx4Uk-Ev}gaNi~koLVVEBg~u5<3RW zp~Moebl)`etZabwdLVb#Z>B5f8(t;{=?K&!D%+Gw^fZR#RCqb@5fp|VYePuvz53cN zt7DOXzghMyR@u6H|K6tMrwSEk%2lj5C~EYOjvz&@qR^x)3NLy_P09}HCpqttzgI%y z`vcxN5Jf~fxoZRn0V>+17i8g?Yp!fYQENS0FaRLNvS)6xl3C{37i^!+Pn6@dF~@9Q zPT3^;@mXMW>eU@PbfwsqeE)1aFqWQT71h>kE`mkEQWBPv=3j_u*gL2ZgfSsC!g)P; z$}2It@s)eZ_GR7Ik>T61=xB7GvK@b4JY~BV2Ie#@3*i~WGnD9$-++}Bm)UK0iK5rE zXY};TrbnUZVOz8m&qj#2)r`OEa`}2!6aJ=37Pp1d@XgH0DIk<>-q&HacUT=+LJ<*3 zQKy>*aRDsEQ^2XP+g!066{WQfUl@aO$fU?btmCSDWRdJ@UI;7BwU+dsffCGoj#_*O z3suu>o=5~OGE6)|$grP988;oo?7aYBa$InV3HZ+Ex03)u7!TJg47h@WSvjdF-p}iS z+mQUHH>K<$3k$0Wu)XB9)rvP`udr_AGcBw(^|TjdAv+gSdn}l(za432*=D5VYZ-tQ z9JH3uZCHJwET`3RwzX@Q-Bt{~!sephh+_N!$><6ch*kIV>k&1__&wcbc*F3ZpEK8P zGuOtW*?^QYD8fcJprVlSd7@$!y_n=XaBSW;o&&fXW4BnvLDCMA-S_-+4k5EqS5VsvXa0`&21a_Nu6$Ms&NJm3HqNM8;`oVJ52BbrU zSDwi>VT|OdoK^AVN+0G``pqw91oc}$%m_(CwB%3&C;CK7j4x##(NdsZkWz$~ru7>E z*JCzUFjcBXFjoGQjaW3KSY|F%xI<#H&0B9nhS^?h&gn4l4|0;XN3`6Da-xMJF5UqR zQWg^*^qx7pEwSov0B@9{a_J%l>X4_`|s?n ze-dy!;^5Y|603HhOng1v=lm$@lDo+Ba2cxq^dOu$Kx_Ons10&J&>zNY%Fh{ z%0Z)$ZF9Zu0G$4jGCwgBji5JSf%)7vyhQYiMO3liXnNuoNsFY1OBWu&t?2_6F<}p25L zX*@43l5_td=K18@w3z3YbKkR$1jW2SQ!cwvwl$Q0o%(c%OABu6Z{vTqF zPiM$_tolE1bsEM&W_)ZN@*}TtleM8pnE~)ZF;|JKlmooLo(abTY!PL6Q3d}Cv(Qjt zF<3I&T2Br@7QX`9PZ@%2aRoipdq$!~%h5{Yvm=nBBf98G4$sHOOqsyInMO#L`bKhEHzyW(?8Q!T_(CAOUJ zzIC^7odQ{3AIKU%kTrpCPKvWrWpCvgKT;q$*cuZxLVPI?pg@jn z$>AV6QntkS#Et|e`?96LO{C|9MCV_?zFW1utXpBXth-{=GUqAGxnxDQW25Or&j3%J z{!F2!!NgEYE2}`1fMq-87_BFw4?xGEWtD;5-&vG^68-)i= zeEP*V^aQN;+01-Kt(V>z2VdaxkCRd@t8KzeYZW)a@;YE&Ztt+TbgJorS4Kpzk$FG> zPoLXJ0F9)7fChS>;6Rtz|5oEqOtz-U`gQN|@0}mxFT_84+)Kt^#6hv{QI$s|#GMp% z_=Jt}VQxQiQ}X9%N3Mnc1GaQ#HP`@qPNX z>Fv~$j`*7xctXY+k|+G> z(|`{Wkh(sEfZ5~{wkW`<>~!>X#i?vG8J4Xio5M{l&L0p2S>Hj!%Uv3kjA zSu>{uus&uphg~elo6TQ@m{^ApL-19Uvkv*pX1dhYp%L*~u>%W`dP>};xYNXD#%=cA zLDB$=0-G}g_*7WFO|SYHs`ZT$UGX}$^a|l#47j(U?bJw+#MAr7)JP&C|48D=dkO9Q zdllqoh$UyAXQROQduxD#X;H?3!8+DaXi#kA*hfaN2Z@W(Tl(uO2tajEK0}C7VK**i z^^Z1J6tYk_ORgY9kTT<11ptx~=0h+1bkP!(ia?1`pXi~#;}#X|sS-?50up-+f} z@CZh(IPc=k)&F~my1jyB04ztA_*iriaMvEo_*L1+GVKJcvNmmUeGDnq2gW(u6CHMF zsr}Ga%Bk6mFcD9o@;R1%(J4ognvZbwz$Vvtl_8WTV%j;#m8)(?mihRlM`uH}^3BIX zlV*bzUz1Y{ER-{G)kZ<}FO(EKElJmEpV1}-`2~Lp-@Vm}m zL9rRXf=m*MYvzixkVQ%VE7FEY`rR}YlXhZ9`v^2kt~i0bbjTb1X7gXb3(eqU+KW{M zYYAC5R*8i3Rhmbz1xNv3U;6Sr)Ks%MN&cvXo|K{}<-x8tG_!;nw@teTg|PQsMI2W4 z0Y#~hKVKm)|47EmYyE{AP3vXi;5PX(i7y?(HG*hnFY*BfXiC>#70@XmMSd?(l zyi}9~@u(CfoFG?;60Yf2ixN)sYD7r{R;kwZEww{k_HxRI_zC|)=j%i@*JEaiYI?x4 z1h&+{EKyD0w?R~67Nhv3+6IsU5oiO*B9|waAX9P@myk0<`t(gkUYaWyfTMKxF;G(L zu3AlYcI)NEN}=?LsA96KxMLPGA|B^bJihoU44~%3ShF>a61Zok1RaKu3bZPm0g>PH^?z6 zdz_aKf=JIS!n-n*SV7Iz+|>i_H6Dx)yN+0WBh18=D3lTZwXAlps;0-i^b^Z872am4 z38K%f)m#fMC>qcO(_$tLJ1bD1T|6Gozk(jPJXbuHW1SyEIa4Dc%}P^ISC)q{;0B=W zez{^Xv4`GEZJ)7*Q}lNl0MRANApZ!30X&MRtPP%D%St)g+Q3F6`k21rU-*l$JxrW# z!21xg*O01rZNo|wV()&3yz%$4&H`2T2gA!QVA-2c)_R6s2ZrFk^Pz^n41GHsZJh2$ zj=V;XLrJVQYktveJ%TR?7Dk}o;SI!VGn-#PCp7iAQsi+ehSm5chzv(RN7woazlNB@ z$-T;PX-}0<#6dz$O2-QrW_t;?t)^xrclncV1xIf-+fNhst^;b~8R}JPB)H}oy*Zg4 zVONe3%04E(f z%H368`fn%z107S@D=BQEGGM$aDud1&Xa+2f2VE14Jm@a~X9yI3M{%|Hjeqy2*)cBH zz?Ch=mJX|?muXzO%;x*>X+Ow$eF|@QUr&8aHPK7rzf==tRKL-{>9@TDZ$wk4QQp-X z+A~laix}zAuPgfLZ&<UM1MZ>(%(T4EnQB%pMr3r zkJ&9X|G)}`#D+W6kfU7`fz>&fja1nsIjlGua)GQuB#pGX7K_^OkogD_qpSmh1QdcK zymDE6>HD$JfQswT)(apK`;mSM9K^cG)4jX3f2Z2l@gi|)(Nv(usZ!D<0i499#tYH~ z)$q{PE47YaU|Xas@%riCAp@vNY@C0b=k>5Z>5~x7?-p*{DlL+ig*PByT8jVpYR6aa zV=S+`f|p_QB?ds`W7<*x?I?ovS>1t!-P|!|``(2$%^mSeF+r+I>|ych#nHM1+WjrwpQclv>Fg&^a#r9*29PK)+YbY;e6f!G2JtFUvsko6 z_*DZxwl$Y;Rq#t5CQZ=2I9XjS82C46m_++JuNSKeL0R9$6_#VXX9tqfheGgUM|Dz z`~$HgJ@Et7>l@LS#(oLp1?)?7qEt$KA;BZhm#dTp?m_I9MGYj2RpjRHsYl-5b1sO% zC!EnnH4^`lK!BgS4)HSW_&;C7NZh}F;XG;4*|S5V#;>A%TX=(9MNkOx!A60*)|vkL zxn7TVJqwOs&r(9Yn=NXuRFxMyysOywxZUaV*o_TEI&#Np*vn2~7BmJ{%J~NVa0vA{ zI9%3$K2|;f%sC%>XL&tCSmI|9VyQu2w zu1STZqLcFvh!GI=uOCj+eWdA6U%=Q%i4!}}R3x3mTuUCq7&7cS6hUJVxtx;$U=&tU zEUgb%4uVnzxda1Q$sUju7$g-|=gP|IfIUoB8YgHupfeD>zeIskZWH||Y+wqYp zI$c~G8=0a|H8xKt?{=2@SNRtv-V_xwJo|rNKH7*vGLxHGQh+lEr>GKZvE( zn+rVgbHM0`{3=Y_xQpcc8adT(?DI|yj-OiFIC9)RC?RyA%X;4sdA++(Uyl!Uz+kQ{ zu7};iprV&2nPg+-%Eo9bYdPA)Wv(1)^^G=fFO7cP>hqy&5mul5__E6xhe&SEP0xX8 zHP@DhkWhd~d{CqSQC?qX6iL;YJ=R-Z>?FhESn^%SSmnBY2yn_B4S^5N9gNMx+$V5x zYv4)jyPdPK@C}x0d=FHf3o6G9$YYf^51+Z9PoO~Q&3(;_Q9%Ifnj z7=xn`uH$6315J!gWM%+_R_;HF76=Aa25@3$uq+M1Fn^C@c6Ek6IcD=;(GZhBpB&I9 zrs-2d`k>cgO${|*r?1x5Hs(?UG5w@SHjEnn+H(zaX(Zm_S~Sk_Ry9?Aa=G~6g1Q$iX?Mwbq*54a#2VYb4fG;YD5qTjv`^v zDNDHOnS)W6x`OReL!^=)oQ;*8jeO_HC_9#g69(8az;S~Rj;eeU;9|65d3(5CJ2@yz zA_$^E3@`x8Q%bXe3?d%BL|NZkl8wsY zp_TuD%5rk{KoQkM7^NaZOSR}GLXCeyf8dK~o3G$&eQS`nMw>uNIWZ{b_~nlf!;B8s z$mVD>Q$2ES$gT}SN~=XLGHT7WuS3@J<)bPeRxhy!g%@MdBk5P3yz9!ghX7?KNU z{tD#8F!GA+{PXZAl|KyNf$;B9#V`v+S@ito~JF#Z`#9DF4ymbR`+mA#eeiQO)tPKr{E2{giozF%z0SbU|9i&2| zg6IaM)8#HkI+;uzQziyae}-XL3?}KghKHAY;8R1ztaEl!`(aWcYPFzfSW%P$kFa%! zF#Zo9*~erxxX{@z030@|8qj?lf^eqE#Q<8&eFLA8JZR}DVN7u=XdVj?@Yj2`(dCxi zau_3oGI>NFCExuVq}Y`;EQin-y2s95K#tWw?1wa|HN$?ESZeu=A-fcuE`}6d>z6n3 z6cGkukSJSD4q#-CDON#wWM$a+3tWw&M9-27^ZLb6pjV9AVXNCvjjD|Sf4YV!LFBw& z@z#dN!~1M}4NDQOQG(yWAng!h8F!<8cHVxlIIR2)5k_1FA*tiJ901a%0F?JS4P@6K z5Zw!nKj-hc`%C(7S7U? z%f+EQL^Xhh1&HV|`0!f?)nI$Eb02wClIwvL(r73S8s9%ewt zuXy4gy2c|%=@?E>0Y5#|vvj5`p00)+6OR^Cy4?UBpIi^+n{FqR2%#$67r1U^SeDw^ zJ5r6e^>XYu`o%PXoZ~|Mx1u$~`M}Fahd~ptlLvW?uKv}t&=L5?<-x)oOE(PB&B6JQ z(hu#A@;GQQ{C5M8sxaDP$qMaMnkz4ag4rta3qomE)FU-UNr(CmdUHURnF2Y$8C1|l8a8HulX5vJZfOE>QEdQ2!_ti9k*Q; z(?p}Iop2IV|2P`Bx|E|U&4p*q)-pwbkarTj2@WAFOxH7g_@`N(!Y;kP!KD=7n=u^M zQft;f4GhXW1_Jyct)(!1etS_+)`n!r_F%GuVJ7CioL*CroQ8vCuhKi{F>l+AKFifj z_{*=q;R)Kr#S!!(?%an@*WYQ`jQ7HpCj8Y%%o~oxA|mlMB0&QHQwyADw5d;JI4;xg zsxK4xUQq=LLw6!5TRsL<)!CL`>o=dQr~w4PD#B1%k?Xw%+x1H)NYy^x{)gR>qr6js z#)so8{pPK8m`qRuemEQ}Wl-*a3JV_NQ2@PCBYQLk2cXit?F^2(kOX-2uq`5eO&5Lp zJy(k~O@%w0x%WRn-o#%RwX+E|ikDQ1Zm}H=YK6!7a=JcsU>Qvk7T2rLMLb34xGr<; zc4J%m_eg*X8&2$8x)oSJxAX#f21aHf+nrA+{~BJeoP^0%{0zudR9+ff)}{0-9F?c0 zzmE>V#fD;bLBEEKSKwT}yex>=0sAI+pdp}P|IpZSG+lria%$9`Qok&vl;AlDp~RBZ zhw0DjEF3c|2@C86d`1Bei?nu0HT-4o-3so&fxMrOYjdPm=2%CJc)4AM{l%;W7h6XH z@j|=opoJ+_-rz(auYX+tHBuJGNB&D$GY8(N>HODw(O?C2BzYazLqEL^MFxcTv6B$D zf*(PMJIv-F7I7?AUaFTvr5{`gn53YjaoQb{Rpz7UMGjvyZ4OL$o~w<2BN-1Ef!m#6E^(xgzz z)Z7#QReF2C@EqHMJD%xecNFJ%tQFv&Xxpwl!jnxa=)x!kprv;eV8sT!%ko*AE-#r0 zd1$~l1+WU>>3q**2yC_C!8Fy9s#I*|Bv-AB7zMS0iDjLy&TEflK>xbQ3#Ir_kt3 zrUzH843zErq404gSe3rq94hn^SdjWt;?odzU7D`Px;q^6y$H}rn6mc7b!NF9NgY4j!knPsGr!JC*AL<9k$ zFSF7eCl5t_IR_bJp&EspBE`|3Dnk8%`q`JM1r8*~@IT|Yd;(S(+MQ8AJoO|SXVQUE zApMyYN>k?oaGi|-o=iz1Fp*JW)KD&Z@!0rggXSwnqofGBq$U^uE#sT7uNvTb%4i!q;PdyqbNJh&3d3rf?rd$EfJKM{o~X>^zBy;uoh_c$ce zR1zl;lU;)*=MYa98%ne?Bm>x>J;l^P4MsIz`krRAkAplMx0=DYxSS2^c0wn0@Xu11v!`0V}6umx=(?MG2x zsyH?iP*cUZb78Sk#raLJ5u!ThnC0)bA^YD5Xp3U!0=wgCTkTB92D<0_H5@cZ>cjNY zRzAY;)@*Hu)P4<0_$gvTN(31^a7a=rpl0c@ z^u0Pw$t;+ZIEu_6WztJ@zH*+Jf2}(cc44Hi)%g*$!Vx`j)-m}P>-=aY|Mg?wpQZEF zmMQDsi+sCcR^BG^J#QxlON#wP*copo-r^O=O3ZwwW=uf-z;A5Bwsq+?BxOIn6fGFr ztfNcKDW9Np6@dpY}6Gy7Hq8h&lUTxYh6^j|Q!ye)ID80V}FEu%B*pQEJSf z1EqkYMr+D8`1F-q&Bt#)RiV|!7-?xQ`uO<~ogZ;F9Us0&=Z77Ed{^sctiu@7uPzaJ zW~SX+Z~xew0;vere=a`&XH{>BU4`%lV55{LVotOv6``c3>K^YO8>#Tie62%ZOx z_$ag8H@4Mx1~v=L_7NJE@0o7{rmoyN$-C}s0F19kJzR=nb!TCtX||YgwD)%~6#urL zP(!CgwlTa|HZfXs&NYFbqA7WK$o92?juF_3nq;qk1cOBr6!DnZdKZ1*vY_bPy1Q_z zx%>h0@0x&$;Z$009bU39WVXv)uVHE!zGv5t-uiKuhfoB54{fwkoz^uxbG0nRLo&@B zw4rA60?Gz0Jyz0DPN^_@jN1-6kQ7E%gr7HbTxCC%)ggN8u>lps{a)ALb{V(PRjSc| zZWM9Lmj}#ennyPMl-GJKS!}k4N7?zf#RIrp9zwqon-=8^bY*@!f-}2}13lhpfvs<2 zK>>Z-s(K`*1$ytr3>f;}%!quuI&1ti-@*mv<9;#CgD`2c{W%pNC!QzVxBScA@?eQ+ z^kyp=B$UfTy?3(*2X;W&^qLDVSn{>{E~fV3VJ1{)8-@^+<4#_Vfj?0nishi#*Ubc@ zHymD~)+R6q%=sP$jmtw0-4~F`zs8m0nF(cy7vYii;V2c5c6e6$n4TfNduv_~P(y6< zvzsh+?+>csP&0u6dldpJX13vrR*Jn*;;UMOwVCpj`6pQ7(`P5Jkq2Z{C_l zQ1U=j~e8sDo9U z9B|LLMzl~k(F1ZO!&XzwqT$din}W`0mYFS+kZeAVazSv;Y=1fVW)RVhqo4nhVpyjv z3yEoJ9T^f!ymy!_9{?`!#!XsUuyyBM8AJKYA$~B1iFesP5Nd7VDZGsFb1DA}DC5Zp z7Re9dJAWkUcm4`FF2$;blYN^eJ3t&#^jfay638airE${JthGh66dn2(PEFXSztGWtz%O}^OP@$A3pljwH(V2#H$duEUJW>)Me~+^I;|2tD)7f_-lFC1aaMMf(QMra zOb0-j%XuP&BJ&y#FewuJWGD&1qiF%mw$(LckQ3(?z&wtqySN9P*-!;nD6S`cDznC4 z4*GDR%6uGpO1S`u%=T`|#asT-8#9_bNT1WGPEf($d{?O;i0bsf*fZ&8I>~vR(bPjo zsIFB59m@hBrPEIWYfE#iR6r(9Aq%zKD%V1xxbW)#8of&fp=ZRcESRxkPCE$%Ow-@d z_M^=G-r;`xQTs&pgg$_FTo``? zgIuHA@Ly`LlVF&;)`cXiD_vOl&Hq{t7Lt%4)zjbBq`C<3`27d>yXI3!B_7mdxESO; z5vi_s%Pjm9a!z#1FjVYBa6Zp6V9V!Rx%`Za-(#PGpYy*OzgfV~^}jj4DuwwfMmu4y zFpQ{yhR~N%OPk>fn5Oo->_z8bybg&JYG5DC=tH4k?|D@F6A#0fGE`vc);fAp{5rG! z?yujE5o*{tJZC`d=RbCg3J)8H@8S7+pC240GumdNBURC0YiXWWgKvDmN}YsY3|taY z2a4b=9A6^(oN|1)>&+C3_$97DALfU;Z2dCITs<4@ONQ;G@*Ps{A6B<_5vAM8f5yp=AXNUIjA?D&<$kvv{ zYFyEayMt4@X*0xj#^6|p>qLAdrh`$j7uS7=PGg_#6UHIiH&I@O2o1Bnz+8K?nl2|l zfbV0rehh$&cc3e`-CW*-;YXmrAv7NWh2if1`?!Mz(WwE@91&?|b3HnS{U7nkl47R@ z?}|R^`qiVV<{iph2Od)+7LK7^7Jwiuk=Q!L*=4i&98{qcfh-~1p9w5UAp9SZzCZYG z$8@JN`PK-7w^VQ$kXzF*&WKo9J3o+oUv)tRV7gt{Hs2EaAO>*ZrUtgYgZq<^u}vGl zsR4&qB6EF81Hm;X^8;AkC7cek^#G)u=jFDGC0}=C zBXV$Ji^D!|&4aI&eG-V4gZ^N2UEQ&&w|>j}3A(MdcF_!~i`j~kD;{j~wuwV%Vt3&_ za|KtEhar4G+#FOZ)F82QkRuf2jm!uFF7S?Iyb4}*jreLfSQO(DjA4wgrYKJh%9|19 zcY+}v^tdeKyaf3Z2S}*x*af{gfHUkbfi*zuopJlbQ86{BMoe`>E#lFLeftbt(Xr2^ z)h{5)!)SFaJMtfCML>-|G~1`(?EZ%?sO6Nvn;8*B&lgcQn)okifS*cw(inN9$($!cl|0*>EiIx4|Kb$^nQ`zY?R{6xgDt71)i`HZ4ZK2O4ww z??e04O$cNkE=gic-99BP(9T=1GQ#pli6}S##am*w_#o6~yVf&TI5%tIbQ}qCbS z#HLl^UEE}bj+6u`Q<|c;p8&$CE`+0mkRpVExzTn)a5Vu^4@hRqUVtL*`||qLV#uFKs|9BR zSwD{q;OV;`Q#mX(?ZhMf#RtG-*rLlq(x-i5US*ksWm^cj*mvNy1dk3?W5EThF1NLh z0r_5;ZLa+a`8Qke0XBc#T)S79l0{chEa>xh&%21i+(GGs1)`AYNXgpecJ3T zq2bv_9J*b@6YOo*6z1{%jJon<(Wg_GAsIjjLi|0j_`gxtr63>pO>$-CgD$zABDp@k z59B({`3w9QsDvLkdnR`)N#kAsCGCLHzC-5nBS4OFvh4|8)CG82FSH#zo~V(c2-h&h z0mRq2@*AR&xQqc5A?H%OQ;?Ny-uezkj~rO&aUY6pXhwVImj#`ZHU2}p%C;$|LoAdy z2=Y!1I@3@(6MvJ=u0`LVoi_)ad+2<_1dPy0&bjXQCo{B37z?e?{FpLCUa^Jhn$P3f zPL527qk|&=e!PIAadY~A1GL<(^17N~s=Agop7Lp>rN_8YJ9o z|10NynDcJYbKWHACcr19($MEGlU~~~0e1%nvH=vl&aoW*eO|rWnX`HEC29jN_^wT3w5-9`&9yHrG!2iI}e$JY;4Wvm! z(rE5MK=MF;S~O+JoIIXFRcwe7rppEg&0)!i4%cb_$*R@?0;PDuG%dB$d75yjZ*xE? zDB5F3Ajmj(G0^B13bxyk8F(k}RY%PBkJ$xa-Yxnd16l&QDFO3?L?8VB1eDgeKSnSv z?j8kZIPPNO00@o_P)ZlXzn~yQemSNP$Z&4e-|$Rh=^L4LGa_U;lyaXlM;$di5&I|H zh2mbd+e3tJKu0!0M1|7_*9%HJu&5IT%5ZhIm1RtxIh7Tg7Zn-5N)7S z`0qs^{WM>sKlI<@`~bZ?0gmZKzW_3)IV%TfyBM;Uq3!KTJ^vGJ(a(^kFS;30PQf8l zg>5OP;8XonF5t_e)tlj#5{%h?26l&=tI&DuTQp$Ed_g38^WF7uj(r)YcZD)pu3wQv z4(uPi2|M~^Pf3pEW{|*t&Mz1p!c_J+V~2POb><&r~H=#Vefs~ z-hY7kLyp*Jwqs~{k~6`rZ`q5_@G4pQ1lLYb^hR9?g2PsG#YY^)t;)0v2ex_V2e!U7 zZo9??y}@|#9OUIhY)js$*j57|Cn|C;i+G)%!iwbet0{)7_+V;=!FkGO+X^4+D=FajzCe3S>cmGNU7SElvp!&?6jG?>gW2wa@#w)XCcRZC%T<{C0V zwf-}#gx z<+{id7+vAB&hS}BOo}jegUsfqaN^JTCO9zY|G0Ra3bvg{Qa@g;dVd2N9TtDK&I4P- zKreTH=(zXwKWtzZ?_*%#|8s+TWB&|y$7;f`8~e}Ujr{@T`nu=caR0vg?EOGD3&(o! zzW!~;+}HnzzOVlV7@6Mtbb0PSqffpZxKeIBM0y=u8myLd#mA+f|B$lcMXBPpPvGVX z1jal+2m8kQK7*7MgW%ymZc5{*AL64SCcbs_Xs`;DC9^*2`uF{DLlDLDkUc1tXh&?7b&G5^+7izv;(5qw(XWACEY% z@qM%XQrysR70&6*!{*?RN5eZwz8xI>s@eY8&4zjm1IXO7;1t2os3O7G`^O(QHH~hrFUJr}dgIn=KaF z5Qm$0#_Q0>puOY>@A0@A*jfD}%@tTB^)&s+dk@0=kOXw;Fy`$C!d{G|sWQd+-ZPLv zFJEPh``JK-wIRm)eG%@70xYTuT#W)^uUi*IG6e=e7agwv&Ies_~Ss_+f7;;_}tG16~6mz^%SG|Ph{4!8u6 zyd`UH!1_rxrq7&7`0VBpsx4oX!KdjlC|!6!-NI#Bub?Y{oGyF4zn|C6n~4ZqZ0i>M zcE{;%M?s){!|0H=|7x*U1-@cE%Sw8IRuDfbWqk)7QcL`euMH*Q%E8KN#{zlOS4BVH zki1{Olr{axhojXq)!T^k%*1rOL24im-x|qTPS@;ZZ}(4_Ev~`!m`HtmXGeNuYgsNn z{AT-)M$d*@AA+9D9u2XWy=+!A)IY&|9BH#f*@Y}1`cMIr0Fapn10W;&Tg&q7iToX! zpeku!W+o5%gdIX>>`MKfO-|te?xb2VDQG9)ih9InQ= z*oq{K2W7=(Vk=6?GMw(j6<>I@ZpnAA+RPIAH&e<&%A4Z&hS@o`7NO$0B&BbtR<& zb7tsacH<7`UbiqETK4iW6oyy617@`ZRffX(1+obLbfnv5`Pj)vJP;-$XnAO{`MOx* zyXY#~v5xv0ccJXIp=GAHWxg<^46Hy{2iTO&g3b+gfDNQSPrR_JA`YM&4x2X&DUkLc zGj9{RH?_6u;s6G5tKZl7dft9rcxcIOjUpIk=^jd{YQ{dUnM#sU1QSV*jA(Q3WAEZm5r;p|HZ-#jExVaPwJ4oR z@Ja+l7`kKoO2C+?mbt_OFwZis*XC|ugKGgAxj~?dNdExanJ?-AB zd=&-=J8={KLJ~?51&Yv4Jh|l<#Q`zhEAa`4QjG3#!LgK2v)$8Liis=!w|1F0Xxha2 ztBw$_!3E4mkDJT**Iblhy%=u(#ELLZG8e#jhZzsfI8AldP+b@t7QQHsAwG)M(vO1n zpxJ$$tu^5Wv;Fzm*2VZ$tRtt zbV=zA1Ffo&o(ncLsFW&J11WJ70p#Q_BUYO2eq`6HfL8KzmU;uFM}fvgq%pb!`0%}X zF*DERWawP=HoDyaA5zi!j6q6&o`K^ioMYbS%XWzk3vxKC@j;ZYBof%=$t}j8uwgxy zWgYRg2F=8Env6X1nx6%xR5yVcRUZGG|Be&rJb2Lu1)hV86G`K|O{l7c-~Vlg@8YdD#Z) zup1|Dwm-(*Tyt$>w!A!|HXzK_PFOHT`*S-ME0yzUo*J{U9kTy;8?j{(F)cfz+~@89 zQ8}_T-pN3$voLT0pJ+F{gp#8fO>Fdc7aK_E$FGVIGyYStDJg|AKc)KRAsoXjmaA!8 za3(2nClPJGht3AV0c>#)`DEu_ok6rlto)M3o9P6~K>E5~d_AkI)q{(LAb zEPoB#(wPnfX<>vz9cPys+5nQO zkc)`34`SR#cyvz`JhS;<1rVg5W(5P8wt2N4@OM` zVtUha$SNIT1EFwXZp&?k=s6ca7zpmPL2!Pe=7QU(Q2Xz}T>IS?; z#_T8ivz%sp3XI|xeiNPrn(qN=_f+Kv`W?uf{`HN)>zQ#n_nh7e#*xK$0}=JZnDT_RnyO7(cQREXl#_jrZ3dl~et zH11lSRE!R2bGplBfzb!{WOWD6bfz-kJ|YkL%;wvv4w@7ov|1k{wKZZ~j!k(f=0NPG zA&6ax4EO#ik(w@ERKE@%fx)GJmd|Y*HFa4#H{zX()yO5~c^%MG*jrf?m7x~#irIcN zxd)3DJ;E{DojH3_6B%Lh#bx;06T;CQ;{*HlGdxW}Px4T(H8c{0#H~J^n6>0f9^?F0 zRP^z8e0G>?C-U-a`7H)#`Eauf&KmQieaHw$xAdt4@qTmVVh#*_d3&r~^j8DO5BFZH z#)CPpE_@6#j}HHw1EXJqm$m7y58$Tz*XO*}gvE?GJ&)oJHv8_ga1DQ!%#S7ypV}I} zaLyad0~$W#Rr~f+n3p_sYHR2#xai+B`PX<&;$V34{ZUD0)X?I_hg|oYO8$nUb3V-At1!i(f%Bn` z!8vabd*gNS(VTrlFn{!`3Ud@l9zE5r`>KIXY&ncRpe5g&11w1h#)pIbuxm~;n7idr zYv}w;j}jN6_5GwOeqfoM!%7{AD1Ci651vZCe{%AJk;~rs7e;bBoIn9A;__qJ+x&}) z*;oc+EWw-<(FYs-bG9jZ_mkdp_7fAMb556f@(vWN@_}cddMKLgJGIp}W=@yl1#K?q z%_LszkS~kzvtIG@Q6ryIS{NN%UojF5XUD>2(^EN^SbpbYJ8{LtDEQEr~L z?=C`tsKy6p`urN3ISMnQ(`+A?K`Vn2R?2~ZT{^tX2<}EN{`;zlSSKfYieH!;JkqrTXlf0WTske?4HSXbh zNmo(f(Z)B)1c6cGORvxp>-E}U@MmB(`n_zB=qmg;2TLA)8N(oc3brDWZUScbl_aK? zVF1-TCr?I!XXB;r_Q{q1VHS;H;JPmMj)7`4zB3UQ3FG@cJkk-UU2iMq+L(g=`HLE2 z{EtKZh~E3BiRaXf7Dci+E*mT5H9W-}6Div_)?7P{mkQBdLTPi7Z)L%*_|uo71ELSV zOt7?n$v5oKvtWD7Zdknt*KIKV^;M80$NIp)DzLRj-x$Xmy?`PuU;1wlU#q{raeF3M z@tFM;y&n*Oarq+-j$Ic25Hhv)HSBd$R)`ozVy@CBK-QM8+qc>NIy>5Hxqq*|8 z;D*EvJUADzHsvkLv2KnV_}R)hmm&Q$YeR^B17lJ#Q3la?5tA$1jzwy^G2no%ovznRa zmMBN!A}kFIA?sr#4uujk3q{sS{8%uh4y28ctj-UpNE$xA`I~Y<9OQR?M9nYJ4RCP{ z8tRe=f;vbac!XTTn2D;haL19XEtbWV<2vbv(AhB8cG-btERcQ)?yXyLrkop)-><}P ztk06Q*>a@0@}DRxr&kwFuQKh?V6U8BBbU@-Epe7P8Gj02xdlO@;~WgV5aF;@c*ImU zR>|_JaUZ}fiHapbJ7CFc^<@LjxGi$5nCu_NJ6dLnYXe&SBDioy@+5ISlX*se1%6Qz zSFP1y7M)m66gZQs#}!2InXt%!F=I)E@d55SqhHVf2LBzpmD782hFg`Sq#Tq`w1*SW+-1#oZmfsw^4oq*`T zjX*PH(`ITQ#}jPI@zxjQ&y)`{RhAdY=_;09mg8qeQ8|0*d04N&Zw%*PLk9-V4veSv zU~LT$P%)Ig?-L+Zj?rrg=@vHL!1Xmz^R^p71aZXKLzM9wBMJ5}7fpEVpQ!e6L!Y^l zzxRRk7}LRy@Swa!a7PfLyTApSUHXmco+2*ot;MxxU{%2}T^j|2(({Pr1avAUD~jYz z`RoD4RJi>Yf#a0hnb>V1o=OO~X08dOhTS;4B9x{apgS+3SPa({0`#Bf zZxtW$RAP7FRkXm%2FWDKn?AWOufX-7X5ugqZ$oCR5RRW|y@yW#sZ5}<**s?izTgZ} zzS4P$FSz<4B=O^Cw3dI^ymj~fWW+4%q;H)Mr&3P!>aIfAqa5N>n6{%a& zh^E*L$RYg99?Y{>U84$QBIe4M(dII!H2_ZN)M5-&CL9D~GV{}&`aC&2R{`ehyV+EWelHU>1C?LWKk4*b}j+N9fpUl_LDH2Ev; z1>-gvooXZm*(PrW$+E@9^Lco>FRO5~dFy?o73CVZkK4$^z2>byK_YzU@PXH`%=A{4 z9r%-)FUc@M!F;0jUxgbRKSHGlp(#y=IkfXRPK66oOMig7y?8YSAsz-?F3T5Vu^Qfj zr+2im)%J}?sjq|5i9O=g`1=RCc~xBFJE+c^etD-%HvKh$YuR|kWj2}#yVaI#LQXCQ zhGIo*WE94+a=3z*z@dH-3{_(l@HKWAZW zyjz6VEKCDmL;)VyZ0t>@v+UAkGzK}&SsFkDYF}%vJQse3NGt-x>o>>tI)~%~P1tKlu^?iJ@A)2hctE=ufei zi|3-3Wz@iI>02i_#%5!$B5c@meRvN8(}Jbn$FJU#bI8cWpdLR7GrC+8r({7kBK|G~ zABdAKSibsHy3lHZHW?MSI=m3MK@tHB7#GIcUQ&dWBAzKoEFs>AF~w~e9u+vkd|_~@ zsX==LN>#Z|a9mZrn5O2_?S;Y99w7mXa}qJ)-9F#Gz%@hIBikz%`Q+DdzG+biF;07t zUyAM(BT{C#Wx9jZL`$1snLexLH{HC);vEC0=Z>{b2O;34%0ht_)xaIrhT~}QF)&Yc zVg5&J2Y6Kq9%Aw-Ajw_XqcaoE$^@mEpxJ3biBYFY1mE89<6ScVoj`{pO`}8)|}`CzGTYx?*O_ zBGNGPm2jhC@>3J_n!)#&3uI)qaz!u0XYXUc!_OlEcxIeBoBI3^WZHS$U2Z=hqfw5-XqeMsPKzt;a(b{)yPW<@k=eY5 z1{t0f$%t2vz-EFoP6x1TVcxZIW6 zuHw4;*Gkv+$}C(NHXw+KMY>6)SWTp$1S=>(*utowfCvf*P{2w2r*h&Z4oKi62JEf` zd%M1l+nBsPZbI@;+w{o`G$jflfVH-fY||LOG++b9=6%;P#xDfqS3Td~%-z*Ww!!43 z^#`- zahIicRj2#)^J#@3g7%6{_wVOYl@y1b83A$4WDZnU(zM?Z(#h1t-?s0j3Sz)BI#Y6b zxMq!oN>hlKc)H_rngj3&BZnIF9KI*5D?P07f2m{C1iog`)zlJZ_9@sj#NPc`hENUP z0cnoM_?p*XENq3~u64U5JUKc=6fl;!nbsS*#JbR3d=2hvQO)NX)8DcHuOJzHp~6ds z6HP^RJGft4O>-b0 zP)uV1S`Bd2$%F+NvF|<`peh)G&)6YYoxW$b`Jy_rOkTIZK5xt;Hnkr5D?{v_L#R6- zV?6 zUWQv!VRHJRO)q(uzD{iR;pFt8O*`nTuAIR6i(*x?CcOwzD<1g`znRaWZZRnCXow#! za+l$FUd@t=AMrJ^Kt(mAn<^cuFmoBrT7CK|3H9zz@TI+dHZx60v@S3qTFC`ekjZYD zAj1+9yj%!~8qc4x^MjFL>V|OkUfyBc>K+b%UZK(bxv+h^-(EVrX;5;=pA#M?=hd1u ztkBQ*b^xA(PxE0WKy`;()ww}Wwb7zse11E4EXe$S45mP`X09at>(j{fA2LMV_Y(nV zx(m1669b2BPW<3$cgWxsfJVsV2Fo_Q&c^fI=yp$_F|Ky_E4!ypExWysl)~}Y2ykcm zN-C>+*6V&q%+&R?Kf+Zc#cQfvps4$IV$G@>FYp{N*nr(1-A6}b0Mn>quOSLa$1-06 zg;t&z6_-B^5jMA1b9bc9t@1oensFP6b_LO&F{RE zb-Qs+s)=TAhBUI7LbE@k)uZwE&>_KCt1+qr^4tWSskC!rE`-FV|B?aQ9n&(gN|5|^ zkYp5glgxZAU|_u#o~G~xqa~)QML^AN+6izg1;lAOtHb!#j@qeVRf$ODry!7zs^S3* zS>i_|xq|@9V41=07#;ErzIa;=n79;Nv~t9~T3yy4aU#%<&t1XNyg z^^3dM#NcFi6zfats2ViYX1>foSmMvvoh<8_3Lmh8tdSo86cW?Z0g?#*nsFjhqhju& zMlh+vVI^)OMsLs4{&ZY*`{^%D*P@Izvi^v7scwtc`n^M4ztUU*AAX-@isp967$JTt1*oQ$sC_5)!^wI>srTTM}2nBPWq zh2I8`cN;#4Jo>Z-vz;3(Q)GV6kc3E$f-KX^MvH+NEhJS9@hxY9+6r$*qZ#51@Rngt zgt9-1>kmR47bh&*j9JDEl&fRdo6+9+K`1I2GB86sLKt(MCj+y|QMG~OH1%a|p^7)> zuy-dIy?|=whtDFR7`)uD$AyUo8t*AkD$7ow7O33r^g}G5!iwE3(yTAT0&{yVQt~0w zBDUliLE~O29jZ?^zl0n$j&qtji;7fTFtLx5)P9TzG6Ln@qu-sXclYvc@PPnt&q6G! ztj&Bk7*modV(;Q|GvE1*1vb#|{>dVBA=h-oT>rNk)|P};V)!G(YpG&aa9`#@*ulMb zt9ScMd`F94K>4JZ`DUw{U-oVHS1qBs4gOa{UWt2|EO*we2NC>jnG_{~+)B~OKxga| zmbA=$P$yG~vta56?U9>(+4Tw>Z%w@6ropZWvQL|?TZv$5b#B?qAaC{CG5qRE$xEM2*Xlpm)$e1;drpk2csORnr99E}{q|z&6th0f%LfmF6cii=i6G&z*9pIGX_g7lRlq{qGNmQ97do zJdoSqn3=61te^O*veEIz&0=5)>{||Rbom#zq(7=1nOq0L2)Tfok{5RlTpU$R_)%m2 z_a*vq=$ZgKD^000DK#)%(|Kzb{(_-rJbIl1C+*xO1>-?k@BF{vL zW<^>)lYb-AXI;kobc5H`=-n0(+Ct#OL;E;=4TV_*2Za=4zsdj2aV3q3Cncxelllwmn47z(x9`z$22bgiLpANKaIr-hCE3{6!LP?||LL?QK@8rZ@wmZ?DE` zR~hKE{E|K*pm#4^rT!RUutaa-^EyMFfAfgGGX?i}Po<+~e{$z4^ZrN(Dyvp*^Te6Q z;wej-YH8-(gpi%CxffmI2N^2wAN+=`a$Zr_&mIwQgFj&fjExfn^e2kHw~a)r-`2uU zqptFr>tET*o&yvkDq<;bM#PH*uOrF^cDrak`2>Fw@i8<=XIq-YDbaa!}F)imK9 z1Q@C9k|YMh6q?Ha<-pSL=4MhABlbcm7cprzEwJjmoOiYEoqN%cDBXg)Ip%iXMR#G^ zQW5Vf?=~{NI(d0Cd9}lxR}=ClPximwrBAPNYUBkt-FsBW3tkF^cKEeVkehQiml9S2 zck}qHySd6;JP8qoySd7`oBx~c(q@%6G~#Yv0vy)eTm^8|$+^}1XeY{OcQZiz;++8T z5s$(01K5YNZ$3x4zWxS~xV=k`>27Yo-MrpdqG0VZ?b#{!)=oiM)va(BF~>J2WhU@lr?WHqSIGbbq>Xy9*20}S& ze%G?CiOr*xkHc-+-reM_8=Pe25sPmXe)PP$C+>K!7M2dbvC{1t`ix-w&MhTia)-m6@R?+X{Io+z z7lqVrV$)ilpO(?|uAmk9X|;lckJhXpjUCb%INbPD4bbA_rZF`UE8^|pRcEbufHXS! zSLJ^tln7rs(S#+2BmmR?cjYGBHI#gfw7)ZZ39W|y4@Bq+?MgJUU(d@XI1($d=bFIPgUk`q_@(vrZmCjpU6r{6Ba_tvUqtJcV@=8OPiH*Pd(p3ljo^yph3!7LB_Ms<$i4_^Df)_a>i=r zNdpZggPp zD#sho7F>k9sn$RX05#H&a_hF;3J{pNnLl=1Z=e#C2qIEXQ>mWo6LcMYW@1DeBIa8Ffg96Q-IqjeG^-hljF1fx9ei| z{}4L{mCoa<##wjF4tHlzcABK7{_#mM00ZbEN?J% zaI*K5`=iHXkF|MeHh>kSo-0gkFAAk5ZHlL&@l6GKOP*$JK`&f+M#F8v@M%ro{r;>m z`f>I9PHFsrZWebJ*dAy3f40cgb0xxRdJE)e^S-CT2&rc8d+Sv#%*X#yoSLY+ivP_` z5y*aRK`0k9g|RF>;N8j@ETZFv2+ z(1vF;dd5)x#|_H#U&!btElAG#QF;P0slQP8vh?vhwdk&OeR7ZVdufo z1ujy7Z>YcxYfJSGg2!f5S(@47onkXc|=E>89QO(q4Dr(2-)fFc%{W~(2OomF0KRulP$!+?C zX=+8Th}-=vJ+;Dnz6LI{h#JiQ>hE(6wWJgFOKg3&=XJhxd%rf$?VUcJ2mmH34{4`( zfWH&85<6fjjt@_CdnQvkUV(~9_f2r`Je3E^g!%ep&Y-rCE~W;O)g&kK%kk9dC-K|B z?*ZBUldKK%rL|e<*g3 zddC&m-6rKt^>(AibswaN+dGHb(N>;n&L&7FEOw$K*9+r1nW2eD;rpP z{uNn(NHo9sWVkDj451$z8XGd)PI*-VUVlj?ZtoWeS2BHE>LnAT4!EI+{u+ur8bADo zdzS{Gv?cFZW+i#UT22QdIH@(GKION%NUbu;zy5E=72N#|h@SucAA|Q_3f|w$dxB-$ z^?r@gJZ?46Q_sbwT-Qnd3<;h&2%))^2SZ2V2Lb;Lrc<}~i!juT@gr!TVZfh}2fox7 z|F+`zD@V9-SU&3(w3jM3-UwUaC1LftC;@zYj^LIk( z<cAt`N%a zr@@yQl`ZM({?$z2xe;q{#k>CWg}mXO&t}dE55Rp{3K}us-nkE@hq@6EkGehg@)C&Y z!SwMc$W;nUqxf@%uKH^b(;pu`>6ViCYZ1fqgx|gE=TxHZgqf^*)A5zsTiyw}=f{u0 z0Tby5war%-xS`1~P_cVwr?k3YXlP4%C({D}vv3BMHMKbD?_rZ^5?HPJA2N(z(0Llp zQgIGy$b9ah;vi4)1YU~I3kVIwUtA0wJ21u~P4JKMDxe!5<@`@sxQ-(*HqG z$z}|+POv#Y^QC}&c7c<;?tN3;ld&qeGTVc(bjxTQ{78jvppc24Ff!jLoVC|~CD(25 zEb$&oZ$$_738%V+2E$AU91H+E{&cw(2&6+#XuBYN72e*!tvKeq0sh4bbYw;3n?tN|_eBJxj376EU1RVz|==*A@rSE(n~SE>G|zkn8P z+xr18OpO$Obf0p&CIz*f4(klwXZ-O+U_p_$g?C_*S5Ovcts43M<)*HIuE(^Fun+~A zI+hPU2nfgj=<~rxZjVH0woCuruaDiHYRS?H{sjI;3%^nMOeaJ?Oy(`mJKG zv0?Br{AB&lJNW|ta{=>(C<#;D0pYl%kOhNzIr42|P&0nY(r7Pq*_pv*{*1;k?fS7*RWcD6D2$S8< z%s381#){zdQ3oG%H3aJA`}5Vyu1K8VZG|_iHIeC#+80Q*Qz&wXeYnYML%3lRDvl(?0 z$k!+f@~g<#qc?#7?`dyuy4m*duPG)>QtY%KiR7grC%psssIm6AgYW+LLAmVsyON?B z4<=lo86N;E+bCw%!YuQ?BIdH69kaYa;^X!j4Ig-~z_gj{yr(?>uzGZoh zi_!JRg7Vf<^u>#dvip*>NVbeG;QJ-~2#e%=TS+HouH#KBjx@Nw9t<^5>>juAKJPNO|Ze+R6rAg@M{(-`u18p;R>YouluM3?h*!PPZ= zaJ;A!gG%M817R-h?JSNPiyHogzxNr#{1>acZVbd`%P6t=A&Jcj-S|_H{s6H#;S<3i zmQEibga=g_`eC6{AChx$(}*yAKGgXr!ZqLc{vr0btn-1vC6v#~KV90Wi#JMA2gB?d z>zu$METVrUw&CwV+@9+)D+m&O;$iXZyo^t_?*uXh^#_>xS7?(_m`V03@jN0b|xyc7mCk{+&;#~o&4(OU; z-6@P)>Xz~GmycjJdB0D+I@ufSe%kH%28F!CxyNpOLrJzd&1Wel-1F+~oqpBXb(#5p zM|L=Lu&yjN|Fhmrieuz>Uv2e1PuRUS@1_XPVeh7r!S{iW`WUTK5s~_u?N6(Iyh~cV zueN!YM7*zZ`8feG-Nnz5ot#@vU_SxNS&j+Gd29u`!}v4pIaJm|ZklO~FYl|fl2bW3 z(LtaF_imOdh`SsI!1Ax1?$=JL+~9F){CA7~fm7{|f9> zBz3r?a&2n3ByG)?(&*;dvgyl88>w$ol_xu@ z{p+3N+!DY3%*w|Yv$MC_HcWf#%-=VZlRBto)Yy@d$}J&+uD;(dJ1=#xC^Y!y$^vlW zZS9=!<|esVx1z}riwh2Pdp{paoRvgZf9!2aCaYqJYjFu(TUhy9FO%9|6nZSEc1yO} zEs0AA@p?&7<(sMDqR``S4wzQ=^ZLou@MLel{A(-9>2qn~k{384((`VhinEhNF*kGZ zP#~9)ks>kOjjwFbj2hpyVEA1nH9I@Z^lBtmSS4(xq#(1ng63z(GvqTf+I&twF0b}) za25_|*v0#u6ie6B54pW1p}lXeFd%LK#Eq!~lf4azFe{XGE4!YHuPm=S*!84jkFEAo zHGO7@p%Ln|xy#$9mAcDor@71LObh$E~|{MCz}rW*B1G$A1(+PuXM9zo!RM#0UVcGnX9rk7;ltOn z&HuU4EA~_l1ncS7pz4PX5)@(lc5cNu%?3t@50!N7jHk-$GF@9uJ^B0T<2z*m5zDQO zFIu*_y-m-#y&W(3(QEzrlOTP|^M2W-sn<9oc7@-0R-xa1GD%{vx4f9zRhSwq^nbiS z1ZtjC$km}jSZ_2IXV*$?EYbFSqUnW1iy(<5TAr&*cWsNWats6({{cOsM=;=9ZFvDOhC#z~OaY9ic{h+B@uN5U z^FLac8ZIQ4=q5S{UVn|>`SC)C4hI&(#wCfCndVKReQgCXHx#8h8vW5Db{jYLa1AS&B$Kil?m zrXTq-y-&291F)vg?*T>OL|c&`y*&r{XZ>bZee|PWGI{$=hnhZPFhVy!XXH6O8`0lQ z|FlR`OP}DA4rtgkS#*>xOCG#7_XW&eh}QI+>E%51`M;346ZUTkZ8$erqGJq-or z)`+qR*}N!Cv|LD7Ke|t98l3_Kp|#o1%&|qiEHiXb@DfqY@BEPcy3D*IE0SnYKzPTm zy~^)APb^9!0ajaP+BaYIJ3kz}0aR1?O98)A*ipqG(7fSPFE8y>C52dJgE-cgbJQE4f zHoX9jOjr%_xBFEe_qzi02`YtvF7c~QN)QWSau!3S6yc-jh9fE>qp2*36Jn0g2{XVW zAkVL=F*OO-Ey9e&TMt{aDXeqUU=13m(`Mw%OthWDj7GnytB9|p0T|37oKGqY zZ8iOeb>8DQf1nWk3nG-8VG;}*xXf~1z-6CJG+7oa&yz=X{Kzu|Q1jrcwqX!)0rQ|f;@MAw`R2kB8!J<_f`(N;(%@7fv?ZSV2h>qIBVz#sCPPq733 z9FENR&0Y54LJLKr<+Da!%rtB_J-#Yz#k7SdpqJp0P-@#|_+64#BA?|yTSRA}qko(IHeh#= z%e)X{NBsKRM?|D$dB6T~S%WhjvsWwe=JTPoTv6g6Do%2kJQwaSKsV{yB@Oe9z`juB z;hK%c;+6l0DoyRS&ONE2q7$q$yC3x!^$nw5g;p;-U|T;IkChgaD+siZh2yNH$I}Na&8ZINsU_R zU&U&K1X$)h3er6VQg^hs0{$AK` z)aR8m8Fi)1pi%Q8b2q+k(?9=C5fQ7KW*R(v;Di1Q$L5tQ?{Ag&eN&!l%!Y_o zW%XdsBK~SN`p%>rjs^>BKVkb5(NEWtNAaH>Uw!7LonU-fE-^f^had>~JOY~? zmp=&62!9-_J~2pW?Z-sGuGdD_xa95XJBB`P5canExN|&x{Am3i=JejSzVPwtvm8N$ z6nTX->IPlJb$J|-&1sy)WVpQ-A@n}Y2)vE-Cyqc;KR(P0ufLLc{F@D@V4tm_8-6>BLvch;biD-dD7^KZZejmo%$^Q+xgGN>tdaPF;L-iC*4XcFH{ry z;IWhH3_h#d*Tt%sb$f`=qx?Tw9jHJhhXjCp>s^HVR(%_vteX zi&OVqAY#7mX#X_-N0^St@z8#MW6*M>QXABnP47G!H8T{fV*XF1n^3PXw7YV%U)JD0 zve00N;GAPH#A)D17FY}|a)lx9&B}qqCm_dN21AYS8a81Edp={Zqr(fI&cz!Qetsjr zmz-P>g-(|H^}i%TqOc-#*bK-jxsJo>*Km@?2SZ&iWf7I#UnUoNb-YiDk%|sc?SN-3 zS(b=j+}?{1xxF_WCT=gP|E(c*mVl6phZF6wce%Zj6U{LKBwx;@uU8-Oe{Aqm79;Zv zFQeXr2mco)cOPjKg8wi$+cE{g;P!eA5%?+cWe#{vbr-pCx{d}@EjmEuI`NykvjdFQ zyNmV$N+q+mXR;InXwf#Zye*Zfpi*0ItpT}RKmkN0SJ32r@iX&9(Dq10-y|EM=`37n zAl)Lsnb!p$ybo~o^KYT{26vHy9P&)+E`5V;yRUMk?_9^%5x>PD+{FmTGgG^dBt%(% z8nFVodAi69fEyT8i%vF_-dDLPaXFO!hA2%P;lvr0OtNuP?&8pmOHhhy8LB13SL}p( z(5bXeJAHaSC0ed3Gt2-OQ<&EoXkxJdqR{#Po*aLTK*m@cXPaQ(%*a@rkk{IH>L0ZJ zviQz&_(99UQOghK1uOwOTs`dVaeKdXIA97HSI`(HVF?bVDe`J#{(V9!8I%3*8uWr_ zPt0Hx_{w#j&<&}D>QNj4g)cW80W+8|qLp~R76(*=0w3b#!beS&88JbYSiI5+3OECH zG3;h(r|tIU79MfNsS#faw^Q}oicB;$(5g@+3ZKq&T_&^+Uo^$(k(_t zxq1We7%CBLHb>V3fW|V(tg|RnVY${hk8&+A=$W`MxDr5RCtFeG_ST+9;dgtP$}JwO zY$X{oEnqAvaSZq739?pq(fbUiHLJogf~?J5RLskKK}OaaViKy#7iDB`BU`+BmdE0! z67Qa35?O&pk%#P;VGBesHpu^x@*}Z@DKk9y%CLJN&3G@Z4_0k=7yVEv&H=iM%!=4k zl`DMblX;@!zR}Y-SO8lN60LHRWZI(fhR+zyiO6{fB62<)KdBfi35ixi1 zux;`Q@nkYf~z_)X;0VFUN`Skm1DlQ=|+|EQdqIiOq0gq(fb2lq)J8W%9~VS)RV{XB3ZiZT6N{~BH1sHEf#z~ya=Stu_-i0BFl>u z>9b#!2T%me$culoFTy!)EYIgg3TXWeZiFvCgAxumlHznmf%mrD2qwf0N3)|NcI0i2 zAMqmOvtxPQObcO}#g3?rmLFqm=7IU(fGT8IQ$R|+2Q&Y>T}dvZ#0)OpHoOuljSd@IO4-<$W@b#wycAYdpt9VM$bT~AR3&>nk-R^ z^;?QyvDTeb845Z`kt$wP7}cgdc5YztJzKes3Bzj2N85QQDP4wnnaGc_^Ux03czG;4 zk5?b#m1@qn^vKTY---zb(9N-Pk!2+ElobW+=F3P$mo(f$>9f;Me zy+?`V;%B3_$mw9`xjs@;9J4MM*n5>v_|aS5%G&dyV1B7J`1Vi0gA+~F$0oo<+&KX~ z9CEN=mVPKutHU;1_MkBUE7v8;&Y)bCjAKkdRAopYZ%}grOXi>S8FpDzw8dVH>p9_^ zVf|}%ek|t>G8l|~lXi5_QC`rEtjW60bb=~NPQ(sOw4!jYtK@*ioyHI}3O8*mrH#Sw z+J;B@=d|Oqh1xCuW>sv>a@P8b1lFHbvBLrTme_MJ74%jMcBS-BkwseE-m0_V)bW_> zZg2g^VO)N>Z=g3y_SxQitd|FjS%l$X0#RrHz#V002kZ;BO*+fI+lV~Cax3(A+}`D* z{1jh->TrVPUyfi~{(a5u{rZS4c0B$?$qo27D*pYoVZHg%ee?Mj*e(B($nq~m0{$Jb z@M0FcEPGO9JFE!YPL9RJ!Q~?yOp%8vLI`<`zZdMRNootJDY!R5WqFo`pY)@5jA7yV zS!ab@7g_#=Rl|5JgyR(dPoNGb5&Zy^iSi1TUHVbO#Z;|qF@C_rk0;7bw@mzX!^Gly zcIS$oiBs~p_~R6URsk2E&cZ!cm{zzwiiA$#W~-}Lz)U%wfFDqc0EQ7|c>yCoO4fNs zy2(ob&y>kr(Drd?Y|>@o2BoctL%c=F$?}91X#r0hEz@#5flu}*nFiudkSDUE?%%NOv3VGY9*nkS58%ko54vcVG{%;$-*g3a4_u+cWdUgK7ZTnb&|7p5D3>sUMkD*`H{gj1w(ScG8zA)SdYtCcv@$6=GrI zpOxC__Fj*wKLdl{Dr)(-CnG=^}9&5(t)w_9RJ+oPPN9K4_nSp4GXO@>4 zpvk#i$2#VDzlQgqEms7I2f%rrS<3tiWsq}C?xKIPa*k9&a*mlAWMo;|Fv5J~%ZdAD zuOIE3y&eQFGpjg8^j$v;gO*l4uK9qe8E-$bY{WBrRi0;dMxp!*MXYrM-dPN=oT1s&+s1mK#<~?rh^6Ga%7N&C5II*87NSRCA=u-wf3ml>W(B)DD%U2Ke4I7C^*i`wE!pln z+4_K^v%zZ~T)=m~xr1*g`mw{T4kZ4u!P(i-SrH#vU|#x(L*&li9v`}ckP?@zA6>3% z^8-t$fr>Z?G5j0dIY5E<(3h!(Ww_42j1TQLul%OD^IwV&x!F2$MY^^c*tte%jalm* zoM_{7ZE-JKt+s~YsKh@A>zy3)@s~(ce&re7)U3&S*Y)DSIN^c91q0)>zq#bubjQHB zQc~+TDpf(Me3Md9QVr&9HL2>o$}1zasy^?Ml^>sy1IlNR{yRx=|bC*%CAA-`M8|=+SWAex4-roY{C2 z=<_^>lLaIDqs()IlUuL0&xdl)W^<9ryw>4d##1#b&e_bRdHmb3BecR>f6m&P)$cWr z>Ck#WHASTdG#&C**YG;`k}Bn&Rr`7$9{bvw9p-)0p=8NXukW|(U-~|*tNq5*9!$I1 zkAo?|$SFzIC9hzo&mk@zTz}4!-d+Pq%~R*>v+#TS>A_PQ(xH^MzGig}(Cb3$*|wA0 zKQ^-8P&@C4jdUnk;63K8OARvP;x!s{dlf3r@iwJ)m8J$uEBAR@7)>>gacCfw%9K{_ zq3n^#HG3-ekh39`;j=Z|0%bG3NURe7SAS|(iI!>ia6n;?zFt?kj(oTGjmjffxSVJ? zJh^6&EZO#AFAAi-sXh(cyHw{E|S{EL4%rS*%yCMiEWkJDvxk~ z;Trey74cxp;<5A-2eg;bztZH?lu;Kl3-<@Lfe&JQ zv4@PF@b&;P$13+OJP^FynA%aA#Mpd+o5Y;db0##v=Hk`Y6+ar}9nj zNb0r8p(7iPgmw`Z#$tdAC7Ia%iwiWp-&P)m7OzeYy|!UEw0~5uK#MNd9H@NKJD@ra zY&Z~FF{)=^_64qVC@J1d*K)nm_AvL}lCAiNylAXu$tuj40Z%$^EM@$OIYW1 z-h8@fQK@8Y{6IZyM7hn6J-gzWwOw1cZr-}(nUh!Z%@!DQ3j#o-&%>Ae)APc(UP_Wp z3UMjrg#lBwiEET_YyXCg(p~ zKxFUwI}y|8JF%{(nINNVbBQR{ovFF&fjD74MRn+`Mde7{>f3hu5!)IgB*nFVXV>)I zxP)!1adx5JUEoDkUEL6o?}>xjA6iLFxbykA>v!3z3_Mp~<<~B$+kNHD9}fI2+$Ym= zD4r_xHhE8`1|zB0O5!iL@mF>iA52_x#M=~qes^lHtoW(A{=^l-w{8HY?DkE&K6z!$ z)1Y_3$7X$Jup`7lt~w44cAgd7od{MOXqBEooMJ)2{yx8KN!{j~_i{#uX5F>kq`}&T3v{0(d&CWmf{WGz< ziAV74nw2W7+^x~rRs>`E$%%yp;;?5U$;h{pwcib`DR^nT&6vhJ9>#d+8i zPd%Fg>MEeFiU+s)8G6z`c|GA_9s7-?ACi);&1F2$<Zw*sf{=JW=Nc$>{3NFjXd zxXmDcE8FA3=vJGv=pW-h9z*}un!bPo{>tM2?WjLOdm7rtk!4HsqbPm|?2e`Q_6dar zQ2IY?OXjx1f=@m0P&ub!uevh*!=l21%2h1i#x|3~w{n>%1j>3Ixk{l8w70RLTpQgx z$o_9-&xv*Tjbw2vJx6?1(tjwXbqn6i{dIw3cbjO3Np(?oY&-9XHQQ~D1=sWu8-eeL z+OT-nIOHC}$A%)}IAJ>E-fQavkU7*RfM)5}ufLO;)RJdozTcpi z*KPEBDqj?A+Rg!Jb&tJ}0|f5Z9*EuU-j<+23U{h7cbodoLb_#+VF&0Ugp0SC zD(8eY^L48?6xz+NqO-PXV-$wmX zOFOV!HsEdZYyVj}W)DX#X0oE1YA;8l;RW$V2^e*H79axnjHqES0byeluy!{eQnVSo z8(cEFnQy=~j8_{Pz`9xdpo%Ea{eB>Bs7x_&X$NMh;#1W#cPf}oDZhLbGrdF+ntaH^ z=|Ee<>%B+cJ6teau<#}R3@0O#AJi{1SLF&^RNm@^&*|9|A>gh`R_?G*8|#B>t)@x92K^2vcCGra;|zQ0n%aLsrex zTXsq0nDD-Sw?WU=acPL)*K(_sq{)LEyVe`J?nlX6xKhJPvgz5BK20l*CXyD2Y-ZQb zw=6S9<+s>SMu@nkZJApXIkQpp1n)Bk3%70toW@X`O*f~wJ=aKN&gaI&`^^vmyPe(; zF{nMarAb05q{e<>fmJ+7Yq`07(dPPY% zUi+ZOP_iPs-vegoc5xPon%fXUd|5G;nvKV!W`C%1#R-uTwu^brnUG%;>bg_#DHd{; zN==qZ7eOUSKCz$9pHplOBSK=sUHtdTu%ghP8-f$3;))D#ps|`2Vt!N;R(su}w@vfQ z3M&Vb&bK%bV>H=#_ac$jJV^i6GxUX-{!2-8Ig*B%A|&gc>RJi7t(_-%yR9p}wClS- z+!=xZ3seuIoTfSfzN52^OpRjDKQ*Hb6FeK~=1dqh6f(PcCv5u^HX|l~pky}cOXdTp zJ;zYHm3qEy8%hLk;)XfhCX93k*x99s}*i{de2cc|^2b8v> z)$~2gr^A`c4S=1e9}QelUMa0fjG1q(IYGR|+iRg>iC_Eo$%$y&ZtqraH5SBXY=nic zXxM9q6e|9j;-S=YB@FawhX|0p=_q|r_Q}GXhoFVzbt&Uxz|I2jsaTw9^sc1Qvg0 zB5ifY%BYLn7(ZMkBrXD$Rs85*Dm|HbQbov=7eW7!*d6+%+4cMce_R{mTnWuQ4mep&)iPfPm{UyNA<7TL%xQNd*{)hRbie+Sqs89>Z$P2FdsHMb0ZC?&5>vh~;v++kG9s$usMoB2p_UZ9hblz2)%t~CGq(e~!gtQ(p&KbKo{hmP&L8h~4@t4&32JTT7EuRA zdgK`|rAwZT@92>}_g?Bv4US{)_G78^IIR(mkdOQ8`W?~BsXNfA1|xMlk`0kNenbGC z+kdHw&kuF|?EDLzt{IuPT`G_8s8qV|+lT1DmL>Y7 zdxcMn!>Pz9t}~+_xt#9U0y^w=|GPTJS^+%4uyeZ?^Gs^4+xd&g5|>k6|9&-k%!wVih;2 zYniD4S{fmrMpj9Dn3>AXK3pYAwFSe)>)qZ><_=LJ{FuS*{E9XuNBCN@fo~=LHf^t5 zQFp+-{7JGU)v%iD3Bl=0+{#4bhc}Y+aE#2HGInX!-{m`Z^Tu!)F*+aNKN)p!lkN4J zD57F2hQ7`=)rWT1_22e6Ql$tq!Z=K@v+g6Bb)R+b{e6~ch$#9nR7dz zhb00LuleIl^h&_$Kon}y0Po7MQ-sys%6x8guxhMoRsi37Z6kC}2XkU{4ut)LL5E2u zOoaxRb(Ek7^HDOQ3%%5oMFudxJvoGzB{KMFl)u07?}N%02yVaZmj<8h;LLuTyr8cB zKkXeC-Z~T!`H=Uyz5C+b_wS}?2yIY&ZRFqzJCG2jCEWN8An~D4a^mgF&c9@+>s#kv za;WQ{1~&)e`}#w5*M!}k@1S!fuOF(r#z~&(_V_%VfBoy+nnMEF+tbaj@sFH;h2!?z zqSsgO)!&iG#QB5b&OMul>Mjj;zBl=9#(z(NltK;K3;94nU>US-&kn7BP17s$!BE|$ zPM7xbAT-oo&kDWY!yjGIx%d>dGl_fEOncOGm@u4!J$963?xLC?`H7L_-;N}kNqXB% zOE?&l*Ex0V=TXTc;8-ZGyBvW2gNMu-E=b|fbo?_%Od zJV;v#CUho#Mo@zZ!#^_ZWNrc_d5?;GnuQ5A1}>xYScQ$Jhp3SEX?}R>vrjwu0p=em zlU!*ll(|QbR+HgLFX_*Z`Eh%aL9N?NXQ(rV%!wSUaa{{thQW^hT6B`0t=Cpn5O zU-JU$IsspE1vH7>b{S6Q+Srn0&cFPI;m02Nmx&R5F78C6aQGbV>AJgM)2`GGw&hI- z9L!G<3<6TdWL%rtqYHUBRy*#l0?0N=jKDKda^qi@lz3%&2>W}pX(oyT+lo6&z~2uUQd&uQR;U8 zhVR|K*EM>KfzET|Lq%Ql&etB#?hiA(DcB68Q|W61a$_!acIxB!s&PWknv{}udaIn1LxLFL9HtX z@Mhgf>-=VY#Ao24N&kFb$o9p6-eYWGHGa91yfw`2cx}47OLtN=a8n6)-@G1CKy}>-OErWL`t=Z`0XQ4! zXe~2KQ)qY37WX2ZNj7w-OSwHCW}3;zX3uDB773d(_l62G&uMdjK5Pi{y*wmDdULxK zIa_I((Ag&Wyz0%^q5W#`5=&maQ?{v{LquBS6rK`7;mL^4|_ zc+dAGxGh2iPjmpq;R;xfE5V;kUV6wj>#fLZFSH?fWstw{c>~XS^R_tUU3v&FNUZCd zkcc^7K1QKQB;u4|XsBnMdr|fnSrcMh`(1TwR8N7lfnfO5U5w^`fH@?2d3cIY4^tY) zbIOnUaAN_w$0m(I-?n~f}n{Mt6ZOPI?&&6xKmP1%Qx}8(I&SMNyZ51r= z%O1#V%JNf_BPZ%Z%&ipB^;PJyrdwSKmg)pIpD<|6NOkXB0sC_jp!OSfAcj4nPha1} znvm|jm+a{zKx$`fZiWSlk@XKN59=w?1~l43+)8up=3dVhRH@ zHCNdIafvecjRBZKuq=Xl>=aRd)=;u?1QnOY9pT2^N+fV24C)aAx&cp6oofyY2#KfK~FA}j~Q zmW&uv@Y73e11q3+-u~;ny^{I!xUo_B>iyu$`EO3)jbC;j`dD1X=Lq}*g-oX`fS(K! z;?GTpzdTgDCvo`^ZCEHm+{K@p9Dja$@rJsUoQA*kv5YPT2v&tu8^o`=`BUD(k@^^} zze~MZ;t``?+oLP=q;L=wi7O30E(ITCCoVnAWL}lHa`@K%!Kmqv6EidxN$-0eq-c8^ zF*nEX1J4Ld*k=?Y&^|BPnsE&9+iF%X!9y(!7EnJE;l}w<>sk2c6p^KoaVcA5j#1ew z@c;eYuQBATJ~9PWKg|w4Jc5W&xalJw319aoXUyw2wS-G-D5+lX4q3 zx%cYieA)PTD!l0h^L6o4M7Qh&y*K0Ov{n|Nw#E&koFPFFP z$d<~U_je4u=%H+J>KMNL79PtrEFGOJAoyt49B;@hGy+a}=s?e!+b>Sm#zNc=l*wSE)PV&x8S7e50=$f}~}NJTB+SDOPa(Ip_g zT6WeCZHW>9jv6OI*is4baOx2y=&-jn{*voG!L>zC%I*D%JA2KfNod0_JH^^iS!9eK z_uf6m4(c0pyl1^l{IFo}Z7Y7#BjVyg_ul?%lv}jKp}bJ0W|1UVHPo59RiG zbSGBR$5T053g|01#b!BQ^)?=n*${#%#$rd}00W1NZ0K4iX8{KjjJAfQl1D!LYDNfVq$6u&6G zN;!P}RSQ$rKLWoX{n$1!4pyiwa+g1p-*~d@mulQye*Z@VBD^0e6OWaq>ZL4|5gG|j zS$b~#Bf!h{{VPD`(zErHxPqOwODEf;h3XqwsE)D^^5MIkxdNQ!!zcecgF1k(*dQn3 z3pr!qiyRZaMLGB`LGCQF@Ld9^iwu1IT=|~3e_^ONh$@TRp#xRy zz3*Ld|UwxAfBWj@MqbCWc@D%xFI@id-bto{XdHhLPWG%{?NNE zvz8G;EM(c>&q#j@-wF*VxftIGe4>Gc?~kT`KK@4YXAVB-uW-jEqKQ zB$kYr;T(#@#=r(%Iz&E zPLXaQ!Fw6w&8bxmI=!Zr|Knr_tl-P}WmZnwhieRpaHEC(kpH6kFDKGnDr zA3Dp*s-*>HI66Is*B!&_saF`VOHG0J<8ErG1Qtp??@U};s&8n%HBrJPVZBZ)F+(;u z7ENatzlsIY;CDBu>CkGL){6O`yz#cY#@Pt4_+dG0Q5%dY0?&XVElaf8WQl)~a>~8c zgAvW|PE08D(lBHb3@IBAyy^f`vfLsM?2z0JK9Y(Y|(wH71#HhvBz`%^jQ?S+vpZAgN<%eAimBe zmbtW})OKfL_nBgZ1hX34m$+CSwFWjebpO4;LD{rhfyCzxzS97(?SA(-D>#74FS}lX zqqo@=dybMGIo?E>8%-hvMv;{wp5mt-gD;KTI4v8u@mJ>WfR1^>JK=f$@rc>d;LomCQk-Xy(8QJ|IBO`}GoBc== z21MA8oaQ@{w#`N?rqV?k6AFZbA1>_I%Ad+LXjrQ|kb4`Ufze?%WC9g>!yqEH9Qdke zZ5D-LtUao(C^||vgH>k_8wG7yjYt9boWrXwf*weNr4xg^SmH`$Vc9M{#bn`GG{Jj} z*nK*2g>LL_hOghPsS$ZG8+TAF8U1IgRV_0kA!u4nzz=7t9$Ka~%z~gLt@TKyyK+2C zV8%kWwZs+5YSB>C?(~spaPk zIQ7_U%9l<)tG2u9GAgd+S6)XF(=i(?&jL(oDg*904uHX)n1&s(%nBOE>gfOy3~MIC z*{XT@B7+BufJFwkiRSah^PFoXF#}|DpJsZk!wK{)F>O3y8xfe!c>Z8nvofPUQT-_y zPasCt@a7>zxoVymXH!=~+NYTNK-Vp?H*l?~4Y41tJzSt1g{ z<&Tq(VJeh-48!;Z#Z1@8M{|kFDEY_^VRXnpv3%^msAxEGQC3FI0T3N1`t!=jpiRli zgQMl7m4xL$5y;0tR2Cs^jw325i_}zs$Wc;Lc$L%)|4~x2wrNCSnyEZpWE4wD&BIn| z68c_Jvr1BP1E+F~I7EC(Mr=e{V(5+XLKx9FMqE;?VzjiJm1y5}C=iWVX&Fsig@jvr zQdV~Hnp6A8-~^|$SeLg#vwxbyxLRZ+W*{jkm=(}SGo)?g3uuv=^!E}Fv~^+rjwZFK={)B1|i|Z1t)V$AUGqt=y9&G#0>Z+ zCpXIy)5KQP9v-%`vpkHjEYqJ-{fX*NiT*^wR)GFpz5oqL548gHE6G5Ba-5ys|Sc3DKbaJV6?^y5_S8(yYHvoPelFg6gy6n8ums8JP-2l)PDo6=_L$I~q-CmPC1!>dwjy((F2y%EO-4ja5G(`2bl zrGDGY#E}NDI7V!*C&9sm;23+oDX*1muh4I!HGP>$I3CCBr?&pb3gBoz z%0D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

HsozJXcB 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 literal 0 HcmV?d00001 diff --git a/Template/Output/save_game.xml b/Template/Output/save_game.xml new file mode 100644 index 0000000..fed4899 --- /dev/null +++ b/Template/Output/save_game.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/Template/Output/smpeg2.dll b/Template/Output/smpeg2.dll new file mode 100644 index 0000000000000000000000000000000000000000..73b30ebe5637b93abba62ae217b9206d027806f6 GIT binary patch literal 301568 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

W3+wq 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 c}v6xRA73dxbwB(h-V9a>>!qvqVCSaDi0i2HTTN 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

Sr| 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 literal 0 HcmV?d00001 diff --git a/Template/Output/zlib1.dll b/Template/Output/zlib1.dll new file mode 100644 index 0000000000000000000000000000000000000000..db286b1853b20a78f9afa1a12b03fb446cc7c5e7 GIT binary patch literal 123904 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%0DRclAl-Z9j364pP^9tJo&1!l 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

eNi}y2#-_VQJXDym6YmYLu$keZ0mf-3y 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 literal 0 HcmV?d00001 From c9605e62afdf0ea04d82513cb5359ed2ec36f09d Mon Sep 17 00:00:00 2001 From: JanNetoLlorens <99729455+JanNetoLlorens@users.noreply.github.com> Date: Tue, 21 Mar 2023 02:32:05 +0100 Subject: [PATCH 2/3] clean --- WebpageAssets/99inv.jpg | Bin 66379 -> 0 bytes WebpageAssets/Fallout3.jpg | Bin 57542 -> 0 bytes WebpageAssets/LostArkInv.png | Bin 391018 -> 0 bytes WebpageAssets/ResidentEvilIV.jpg | Bin 70646 -> 0 bytes WebpageAssets/pokemonInv.png | Bin 20079 -> 0 bytes _config.yml | 4 ---- 6 files changed, 4 deletions(-) delete mode 100644 WebpageAssets/99inv.jpg delete mode 100644 WebpageAssets/Fallout3.jpg delete mode 100644 WebpageAssets/LostArkInv.png delete mode 100644 WebpageAssets/ResidentEvilIV.jpg delete mode 100644 WebpageAssets/pokemonInv.png delete mode 100644 _config.yml diff --git a/WebpageAssets/99inv.jpg b/WebpageAssets/99inv.jpg deleted file mode 100644 index b0a3b74535b4bfef7097434eb2a6bfe9716f87c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66379 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 diff --git a/WebpageAssets/Fallout3.jpg b/WebpageAssets/Fallout3.jpg deleted file mode 100644 index ba542a156b6a54bf9bf72d1409ce3a6a7e1617c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57542 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

)w?3(5 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 YvgXuZyLfx%-W5!h=C+;Y_}`EJ1BGOSU;qFB diff --git a/WebpageAssets/LostArkInv.png b/WebpageAssets/LostArkInv.png deleted file mode 100644 index e921d5b0c369e6bdecafde9a2b9c278352086c15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 391018 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

DGX?L?8F9=_fxW(R&z?1CeG$IgQkEos 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 diff --git a/WebpageAssets/ResidentEvilIV.jpg b/WebpageAssets/ResidentEvilIV.jpg deleted file mode 100644 index 478e08a40394bcedbe2fdfd034797d14999f8288..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70646 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

m# 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 Date: Tue, 21 Mar 2023 04:40:29 +0100 Subject: [PATCH 3/3] improvements --- Template/Game/InventoryManagement.vcxproj | 1 - .../Game/InventoryManagement.vcxproj.filters | 3 -- Template/Game/Source/Inventory.cpp | 4 +- Template/Game/Source/Inventory.h | 17 +----- Template/Game/Source/Item.h | 52 ------------------- 5 files changed, 3 insertions(+), 74 deletions(-) delete mode 100644 Template/Game/Source/Item.h diff --git a/Template/Game/InventoryManagement.vcxproj b/Template/Game/InventoryManagement.vcxproj index 3ef5ddd..f3e2f27 100644 --- a/Template/Game/InventoryManagement.vcxproj +++ b/Template/Game/InventoryManagement.vcxproj @@ -117,7 +117,6 @@ - diff --git a/Template/Game/InventoryManagement.vcxproj.filters b/Template/Game/InventoryManagement.vcxproj.filters index 7b671c1..23e647d 100644 --- a/Template/Game/InventoryManagement.vcxproj.filters +++ b/Template/Game/InventoryManagement.vcxproj.filters @@ -138,9 +138,6 @@ Source\Application\Game\GameModules - - Source\Application\Game\Entities\Items - Source\Application\Game\Entities\Items diff --git a/Template/Game/Source/Inventory.cpp b/Template/Game/Source/Inventory.cpp index c1e38b8..ff6061c 100644 --- a/Template/Game/Source/Inventory.cpp +++ b/Template/Game/Source/Inventory.cpp @@ -188,7 +188,7 @@ void Inventory::MoveThroughInv() currentSlotId += 1; } -bool Inventory::ChangeItemPos() +void Inventory::ChangeItemPos() { if (slots[currentSlotId].filled && slots[currentSlotId].state == SlotState::UNSELECTED && !changingSlot) @@ -221,8 +221,6 @@ bool Inventory::ChangeItemPos() slots[currentSlotId].texture = saveCopy.texture; slots[currentSlotId].state = SlotState::UNSELECTED; } - else - return false; } } diff --git a/Template/Game/Source/Inventory.h b/Template/Game/Source/Inventory.h index 6fcfb92..8d41840 100644 --- a/Template/Game/Source/Inventory.h +++ b/Template/Game/Source/Inventory.h @@ -12,9 +12,7 @@ enum class SlotState NONE = 0, UNSELECTED, SELECTED, - FOCUSED, USE, - DELETE }; @@ -25,18 +23,7 @@ struct InventorySlot int itemsAmount; bool filled; int id; - SlotState state; - - /*bool operator==(InventorySlot& i) const - { - return (i.bounds.x == bounds.x && i.bounds.y == bounds.y && i.bounds.w == bounds.w && i.bounds.h == bounds.h && - i.item->objectType == item->objectType && i.itemsAmount == itemsAmount && i.filled == filled); - } - bool operator!=(InventorySlot& i) const - { - return (i.bounds.x != bounds.x || i.bounds.y != bounds.y || i.bounds.w != bounds.w || i.bounds.h != bounds.h || - i.item->objectType != item->objectType || i.itemsAmount != itemsAmount || i.filled != filled); - }*/ + SlotState state; }; struct SDL_Texture; @@ -66,8 +53,8 @@ class Inventory : public Module void AddItem(Entity* item); void DrawItems(); void MoveThroughInv(); - bool ChangeItemPos(); void DeleteItem(); + void ChangeItemPos(); public: diff --git a/Template/Game/Source/Item.h b/Template/Game/Source/Item.h deleted file mode 100644 index 9a1083b..0000000 --- a/Template/Game/Source/Item.h +++ /dev/null @@ -1,52 +0,0 @@ -#pragma once - -#include "Entity.h" -#include "Point.h" - -enum class ItemType -{ - RING, - AXE, -}; - -class Item : public Entity -{ -public: - //Item() {}; - Item(ItemType type, iPoint pos, SDL_Texture* text, EntityType entType = EntityType::ITEM) : Entity(entType), itemType(type), texture(text), isDragging(false) - { - bounds.x = pos.x; - bounds.y = pos.y; - bounds.w = 32; - bounds.h = 32; - isDropped = false; - } - - virtual ~Item() {} - - //virtual bool Load() override { return true; } - //virtual bool Update(float dt) override; - //virtual void Draw(bool showColliders) {} - //virtual bool UnLoad() override; - - //inline ObjectType GetItemType() const { return objectType; } - - /*bool operator==(Item& it) const - { - return this->objectType == it.objectType; - }*/ - -public: - //ObjectType objectType; - ItemType itemType; - - SDL_Texture* texture; - const char* texturePath; - - SDL_Rect section; - - bool isDragging; // For inventory - //eastl::string mapName; - - bool isDropped; // For dropping items -}; \ No newline at end of file

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⪙iwX$< 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

L9=|pi89E(2H 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�q(5h!6x!Va|c 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 I|5yM18^mNy#sB~S literal 0 HcmV?d00001 diff --git a/Template/Output/libjpeg-9.dll b/Template/Output/libjpeg-9.dll new file mode 100644 index 0000000000000000000000000000000000000000..bebc3d2a9e7d4e0ee0a8333bdafabfd80619950b GIT binary patch literal 223232 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�&rB!j?OYy3>5$AE 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