Copy disabled (too large)
Download .txt
Showing preview only (33,048K chars total). Download the full file to get everything.
Repository: Is-Daouda/is-Engine
Branch: 4.0.x
Commit: 318bbfb6a711
Files: 1788
Total size: 181.0 MB
Directory structure:
gitextract_09tg11nt/
├── .gradle/
│ ├── 5.1.1/
│ │ └── gc.properties
│ ├── buildOutputCleanup/
│ │ └── cache.properties
│ └── vcs-1/
│ └── gc.properties
├── .idea/
│ ├── .gitignore
│ ├── caches/
│ │ └── build_file_checksums.ser
│ ├── codeStyles/
│ │ └── Project.xml
│ ├── compiler.xml
│ ├── encodings.xml
│ ├── gradle.xml
│ ├── is-Engine.iml
│ ├── jarRepositories.xml
│ ├── misc.xml
│ ├── modules/
│ │ ├── app/
│ │ │ └── is-Engine.app.iml
│ │ └── is-Engine.iml
│ ├── modules.xml
│ ├── runConfigurations.xml
│ └── vcs.xml
├── CMakeLists.txt
├── LICENSE.md
├── README.md
├── app/
│ ├── CMakeLists.txt
│ ├── build.gradle
│ └── src/
│ └── main/
│ ├── .vs/
│ │ └── vs-sfml/
│ │ ├── FileContentIndex/
│ │ │ ├── 27af3472-9fff-485a-80f6-a98dd9f34d58.vsidx
│ │ │ ├── 4d722eb7-4652-467b-a888-40e24ffc613c.vsidx
│ │ │ └── 9cbe5ebd-1110-46d2-a43c-740b2c898a99.vsidx
│ │ └── v17/
│ │ ├── .suo
│ │ ├── DocumentLayout.json
│ │ └── ipch/
│ │ └── AutoPCH/
│ │ ├── ee33401603bb6f9/
│ │ │ └── HELLOSCENE.ipch
│ │ └── f64c3c32af64e908/
│ │ └── BASICSFMLMAIN.ipch
│ ├── .vscode/
│ │ ├── _keybindings.json
│ │ ├── c_cpp_properties.json
│ │ ├── launch.json
│ │ ├── settings.json
│ │ └── tasks.json
│ ├── AndroidManifest.xml
│ ├── CMakeLists.txt
│ ├── Makefile
│ ├── Makefile-vscode
│ ├── SDL2 Template.aps
│ ├── SDL2 Template.rc
│ ├── SDL2_SFML.sln
│ ├── SDL2_SFML.vcxproj
│ ├── SDL2_SFML.vcxproj.filters
│ ├── SDL2_SFML.vcxproj.user
│ ├── build.sh
│ ├── cmake/
│ │ ├── app_src.cmake
│ │ ├── isengine.cmake
│ │ └── resource.rc
│ ├── codeblocks/
│ │ └── resource.rc
│ ├── copy_assets.cmd
│ ├── cpp/
│ │ ├── GameDialog.cpp
│ │ ├── GameDisplay.cpp
│ │ ├── GameEngine.cpp
│ │ ├── GameFunction.cpp
│ │ ├── GameKeyData.cpp
│ │ ├── GameSlider.cpp
│ │ ├── GameSystem.cpp
│ │ ├── GameSystemExtended.cpp
│ │ ├── GameTime.cpp
│ │ ├── Main.hpp
│ │ ├── MainObject.cpp
│ │ ├── PCH.hpp
│ │ ├── SDL_android_main.c
│ │ ├── TransitionEffect.cpp
│ │ ├── app_src/
│ │ │ ├── activity/
│ │ │ │ └── GameActivity.h
│ │ │ ├── config/
│ │ │ │ ├── ExtraConfig.h
│ │ │ │ └── GameConfig.h
│ │ │ ├── gamesystem_ext/
│ │ │ │ └── GameSystemExtended.h
│ │ │ ├── language/
│ │ │ │ └── GameLanguage.h
│ │ │ ├── levels/
│ │ │ │ └── Level.h
│ │ │ ├── objects/
│ │ │ │ ├── HelloWorld.h
│ │ │ │ └── widgets/
│ │ │ │ └── GameDialog.h
│ │ │ └── scenes/
│ │ │ └── HelloScene/
│ │ │ └── HelloScene.h
│ │ ├── b2BlockAllocator.cpp
│ │ ├── b2Body.cpp
│ │ ├── b2BroadPhase.cpp
│ │ ├── b2ChainAndCircleContact.cpp
│ │ ├── b2ChainAndPolygonContact.cpp
│ │ ├── b2ChainShape.cpp
│ │ ├── b2CircleContact.cpp
│ │ ├── b2CircleShape.cpp
│ │ ├── b2CollideCircle.cpp
│ │ ├── b2CollideEdge.cpp
│ │ ├── b2CollidePolygon.cpp
│ │ ├── b2Collision.cpp
│ │ ├── b2Contact.cpp
│ │ ├── b2ContactManager.cpp
│ │ ├── b2ContactSolver.cpp
│ │ ├── b2Distance.cpp
│ │ ├── b2DistanceJoint.cpp
│ │ ├── b2Draw.cpp
│ │ ├── b2DynamicTree.cpp
│ │ ├── b2EdgeAndCircleContact.cpp
│ │ ├── b2EdgeAndPolygonContact.cpp
│ │ ├── b2EdgeShape.cpp
│ │ ├── b2Fixture.cpp
│ │ ├── b2FrictionJoint.cpp
│ │ ├── b2GearJoint.cpp
│ │ ├── b2Island.cpp
│ │ ├── b2Joint.cpp
│ │ ├── b2Math.cpp
│ │ ├── b2MotorJoint.cpp
│ │ ├── b2MouseJoint.cpp
│ │ ├── b2PolygonAndCircleContact.cpp
│ │ ├── b2PolygonContact.cpp
│ │ ├── b2PolygonShape.cpp
│ │ ├── b2PrismaticJoint.cpp
│ │ ├── b2PulleyJoint.cpp
│ │ ├── b2RevoluteJoint.cpp
│ │ ├── b2Rope.cpp
│ │ ├── b2RopeJoint.cpp
│ │ ├── b2Settings.cpp
│ │ ├── b2StackAllocator.cpp
│ │ ├── b2TimeOfImpact.cpp
│ │ ├── b2Timer.cpp
│ │ ├── b2WeldJoint.cpp
│ │ ├── b2WheelJoint.cpp
│ │ ├── b2World.cpp
│ │ ├── b2WorldCallbacks.cpp
│ │ ├── basicSFMLmain.cpp
│ │ ├── isEngine/
│ │ │ ├── core/
│ │ │ │ ├── ActivityController.h
│ │ │ │ └── GameEngine.h
│ │ │ ├── ext_lib/
│ │ │ │ ├── Box2D/
│ │ │ │ │ ├── Box2D.h
│ │ │ │ │ ├── Collision/
│ │ │ │ │ │ ├── Shapes/
│ │ │ │ │ │ │ ├── b2ChainShape.h
│ │ │ │ │ │ │ ├── b2CircleShape.h
│ │ │ │ │ │ │ ├── b2EdgeShape.h
│ │ │ │ │ │ │ ├── b2PolygonShape.h
│ │ │ │ │ │ │ └── b2Shape.h
│ │ │ │ │ │ ├── b2BroadPhase.h
│ │ │ │ │ │ ├── b2Collision.h
│ │ │ │ │ │ ├── b2Distance.h
│ │ │ │ │ │ ├── b2DynamicTree.h
│ │ │ │ │ │ └── b2TimeOfImpact.h
│ │ │ │ │ ├── Common/
│ │ │ │ │ │ ├── b2BlockAllocator.h
│ │ │ │ │ │ ├── b2Draw.h
│ │ │ │ │ │ ├── b2GrowableStack.h
│ │ │ │ │ │ ├── b2Math.h
│ │ │ │ │ │ ├── b2Settings.h
│ │ │ │ │ │ ├── b2StackAllocator.h
│ │ │ │ │ │ └── b2Timer.h
│ │ │ │ │ ├── Dynamics/
│ │ │ │ │ │ ├── Contacts/
│ │ │ │ │ │ │ ├── b2ChainAndCircleContact.h
│ │ │ │ │ │ │ ├── b2ChainAndPolygonContact.h
│ │ │ │ │ │ │ ├── b2CircleContact.h
│ │ │ │ │ │ │ ├── b2Contact.h
│ │ │ │ │ │ │ ├── b2ContactSolver.h
│ │ │ │ │ │ │ ├── b2EdgeAndCircleContact.h
│ │ │ │ │ │ │ ├── b2EdgeAndPolygonContact.h
│ │ │ │ │ │ │ ├── b2PolygonAndCircleContact.h
│ │ │ │ │ │ │ └── b2PolygonContact.h
│ │ │ │ │ │ ├── Joints/
│ │ │ │ │ │ │ ├── b2DistanceJoint.h
│ │ │ │ │ │ │ ├── b2FrictionJoint.h
│ │ │ │ │ │ │ ├── b2GearJoint.h
│ │ │ │ │ │ │ ├── b2Joint.h
│ │ │ │ │ │ │ ├── b2MotorJoint.h
│ │ │ │ │ │ │ ├── b2MouseJoint.h
│ │ │ │ │ │ │ ├── b2PrismaticJoint.h
│ │ │ │ │ │ │ ├── b2PulleyJoint.h
│ │ │ │ │ │ │ ├── b2RevoluteJoint.h
│ │ │ │ │ │ │ ├── b2RopeJoint.h
│ │ │ │ │ │ │ ├── b2WeldJoint.h
│ │ │ │ │ │ │ └── b2WheelJoint.h
│ │ │ │ │ │ ├── b2Body.h
│ │ │ │ │ │ ├── b2ContactManager.h
│ │ │ │ │ │ ├── b2Fixture.h
│ │ │ │ │ │ ├── b2Island.h
│ │ │ │ │ │ ├── b2TimeStep.h
│ │ │ │ │ │ ├── b2World.h
│ │ │ │ │ │ └── b2WorldCallbacks.h
│ │ │ │ │ └── Rope/
│ │ │ │ │ └── b2Rope.h
│ │ │ │ ├── TMXLite/
│ │ │ │ │ ├── Config.hpp
│ │ │ │ │ ├── FreeFuncs.cpp
│ │ │ │ │ ├── FreeFuncs.hpp
│ │ │ │ │ ├── ImageLayer.cpp
│ │ │ │ │ ├── ImageLayer.hpp
│ │ │ │ │ ├── Layer.hpp
│ │ │ │ │ ├── LayerGroup.cpp
│ │ │ │ │ ├── LayerGroup.hpp
│ │ │ │ │ ├── Map.cpp
│ │ │ │ │ ├── Map.hpp
│ │ │ │ │ ├── Object.cpp
│ │ │ │ │ ├── Object.hpp
│ │ │ │ │ ├── ObjectGroup.cpp
│ │ │ │ │ ├── ObjectGroup.hpp
│ │ │ │ │ ├── Property.cpp
│ │ │ │ │ ├── Property.hpp
│ │ │ │ │ ├── TileLayer.cpp
│ │ │ │ │ ├── TileLayer.hpp
│ │ │ │ │ ├── Tileset.cpp
│ │ │ │ │ ├── Tileset.hpp
│ │ │ │ │ ├── Types.hpp
│ │ │ │ │ ├── Types.inl
│ │ │ │ │ ├── detail/
│ │ │ │ │ │ ├── Android.hpp
│ │ │ │ │ │ ├── Log.hpp
│ │ │ │ │ │ ├── pugiconfig.hpp
│ │ │ │ │ │ ├── pugixml.LICENSE
│ │ │ │ │ │ ├── pugixml.cpp
│ │ │ │ │ │ └── pugixml.hpp
│ │ │ │ │ ├── miniz.c
│ │ │ │ │ └── miniz.h
│ │ │ │ └── TinyFileDialogs/
│ │ │ │ ├── TinyDialogBox.h
│ │ │ │ ├── tinyfiledialogs.cpp
│ │ │ │ └── tinyfiledialogs.h
│ │ │ └── system/
│ │ │ ├── display/
│ │ │ │ ├── GameDisplay.h
│ │ │ │ ├── SDM.h
│ │ │ │ └── SDMBlitSDLSprite.h
│ │ │ ├── entity/
│ │ │ │ ├── Background.h
│ │ │ │ ├── Button.h
│ │ │ │ ├── Form.h
│ │ │ │ ├── MainObject.h
│ │ │ │ └── parents/
│ │ │ │ ├── DepthObject.h
│ │ │ │ ├── Destructible.h
│ │ │ │ ├── FilePath.h
│ │ │ │ ├── Health.h
│ │ │ │ ├── HurtEffect.h
│ │ │ │ ├── Name.h
│ │ │ │ ├── ScorePoint.h
│ │ │ │ ├── Step.h
│ │ │ │ ├── Type.h
│ │ │ │ └── Visibilty.h
│ │ │ ├── function/
│ │ │ │ ├── GameFunction.h
│ │ │ │ ├── GameKeyData.h
│ │ │ │ ├── GameKeyName.h
│ │ │ │ ├── GameSlider.h
│ │ │ │ ├── GameSystem.h
│ │ │ │ └── GameTime.h
│ │ │ ├── graphic/
│ │ │ │ ├── GRM.h
│ │ │ │ ├── GameFont.h
│ │ │ │ ├── GameTexture.h
│ │ │ │ └── TransitionEffect.h
│ │ │ ├── islibconnect/
│ │ │ │ ├── isEngineSDLWrapper.h
│ │ │ │ ├── isEngineVector2Wrapper.inl
│ │ │ │ ├── isEngineWrapper.h
│ │ │ │ └── isLibConnect.h
│ │ │ └── sound/
│ │ │ ├── GSM.h
│ │ │ ├── GameMusic.h
│ │ │ └── GameSound.h
│ │ ├── isEngineSDLWrapper.cpp
│ │ ├── isEngineWrapper.cpp
│ │ ├── main.cpp
│ │ ├── resource.h
│ │ └── vscode/
│ │ ├── Linux/
│ │ │ ├── LinuxHelper.cpp
│ │ │ └── LinuxHelper.hpp
│ │ ├── MacOS/
│ │ │ ├── MacHelper.cpp
│ │ │ └── MacHelper.hpp
│ │ ├── Utility/
│ │ │ └── Types.hpp
│ │ └── Win32/
│ │ ├── Icon.h
│ │ ├── Icon.rc
│ │ ├── WindowsHelper.cpp
│ │ └── WindowsHelper.hpp
│ ├── env/
│ │ ├── .all.mk
│ │ ├── .debug.mk
│ │ ├── .release.mk
│ │ ├── linux/
│ │ │ └── exec.desktop
│ │ ├── linux.all.mk
│ │ ├── osx/
│ │ │ ├── Info.plist.json
│ │ │ └── dmg.applescript
│ │ ├── osx.all.mk
│ │ ├── osx.debug.mk
│ │ ├── rpi.release.mk
│ │ ├── windows/
│ │ │ ├── win-make_icon_from256.sh
│ │ │ └── win-make_icon_from_all.sh
│ │ ├── windows.all.mk
│ │ ├── windows.debug.mk
│ │ └── windows.release.mk
│ ├── external/
│ │ └── SFML/
│ │ ├── include/
│ │ │ └── SFML/
│ │ │ ├── Audio/
│ │ │ │ ├── AlResource.hpp
│ │ │ │ ├── Export.hpp
│ │ │ │ ├── InputSoundFile.hpp
│ │ │ │ ├── Listener.hpp
│ │ │ │ ├── Music.hpp
│ │ │ │ ├── OutputSoundFile.hpp
│ │ │ │ ├── Sound.hpp
│ │ │ │ ├── SoundBuffer.hpp
│ │ │ │ ├── SoundBufferRecorder.hpp
│ │ │ │ ├── SoundFileFactory.hpp
│ │ │ │ ├── SoundFileFactory.inl
│ │ │ │ ├── SoundFileReader.hpp
│ │ │ │ ├── SoundFileWriter.hpp
│ │ │ │ ├── SoundRecorder.hpp
│ │ │ │ ├── SoundSource.hpp
│ │ │ │ └── SoundStream.hpp
│ │ │ ├── Audio.hpp
│ │ │ ├── Config.hpp
│ │ │ ├── GpuPreference.hpp
│ │ │ ├── Graphics/
│ │ │ │ ├── BlendMode.hpp
│ │ │ │ ├── CircleShape.hpp
│ │ │ │ ├── Color.hpp
│ │ │ │ ├── ConvexShape.hpp
│ │ │ │ ├── Drawable.hpp
│ │ │ │ ├── Export.hpp
│ │ │ │ ├── Font.hpp
│ │ │ │ ├── Glsl.hpp
│ │ │ │ ├── Glsl.inl
│ │ │ │ ├── Glyph.hpp
│ │ │ │ ├── Image.hpp
│ │ │ │ ├── PrimitiveType.hpp
│ │ │ │ ├── Rect.hpp
│ │ │ │ ├── Rect.inl
│ │ │ │ ├── RectangleShape.hpp
│ │ │ │ ├── RenderStates.hpp
│ │ │ │ ├── RenderTarget.hpp
│ │ │ │ ├── RenderTexture.hpp
│ │ │ │ ├── RenderWindow.hpp
│ │ │ │ ├── Shader.hpp
│ │ │ │ ├── Shape.hpp
│ │ │ │ ├── Sprite.hpp
│ │ │ │ ├── Text.hpp
│ │ │ │ ├── Texture.hpp
│ │ │ │ ├── Transform.hpp
│ │ │ │ ├── Transformable.hpp
│ │ │ │ ├── Vertex.hpp
│ │ │ │ ├── VertexArray.hpp
│ │ │ │ ├── VertexBuffer.hpp
│ │ │ │ └── View.hpp
│ │ │ ├── Graphics.hpp
│ │ │ ├── Main.hpp
│ │ │ ├── Network/
│ │ │ │ ├── Export.hpp
│ │ │ │ ├── Ftp.hpp
│ │ │ │ ├── Http.hpp
│ │ │ │ ├── IpAddress.hpp
│ │ │ │ ├── Packet.hpp
│ │ │ │ ├── Socket.hpp
│ │ │ │ ├── SocketHandle.hpp
│ │ │ │ ├── SocketSelector.hpp
│ │ │ │ ├── TcpListener.hpp
│ │ │ │ ├── TcpSocket.hpp
│ │ │ │ └── UdpSocket.hpp
│ │ │ ├── Network.hpp
│ │ │ ├── OpenGL.hpp
│ │ │ ├── System/
│ │ │ │ ├── Clock.hpp
│ │ │ │ ├── Err.hpp
│ │ │ │ ├── Export.hpp
│ │ │ │ ├── FileInputStream.hpp
│ │ │ │ ├── InputStream.hpp
│ │ │ │ ├── Lock.hpp
│ │ │ │ ├── MemoryInputStream.hpp
│ │ │ │ ├── Mutex.hpp
│ │ │ │ ├── NativeActivity.hpp
│ │ │ │ ├── NonCopyable.hpp
│ │ │ │ ├── Sleep.hpp
│ │ │ │ ├── String.hpp
│ │ │ │ ├── String.inl
│ │ │ │ ├── Thread.hpp
│ │ │ │ ├── Thread.inl
│ │ │ │ ├── ThreadLocal.hpp
│ │ │ │ ├── ThreadLocalPtr.hpp
│ │ │ │ ├── ThreadLocalPtr.inl
│ │ │ │ ├── Time.hpp
│ │ │ │ ├── Utf.hpp
│ │ │ │ ├── Utf.inl
│ │ │ │ ├── Vector2.hpp
│ │ │ │ ├── Vector2.inl
│ │ │ │ ├── Vector3.hpp
│ │ │ │ └── Vector3.inl
│ │ │ ├── System.hpp
│ │ │ ├── Window/
│ │ │ │ ├── Clipboard.hpp
│ │ │ │ ├── Context.hpp
│ │ │ │ ├── ContextSettings.hpp
│ │ │ │ ├── Cursor.hpp
│ │ │ │ ├── Event.hpp
│ │ │ │ ├── Export.hpp
│ │ │ │ ├── GlResource.hpp
│ │ │ │ ├── Joystick.hpp
│ │ │ │ ├── Keyboard.hpp
│ │ │ │ ├── Mouse.hpp
│ │ │ │ ├── Sensor.hpp
│ │ │ │ ├── Touch.hpp
│ │ │ │ ├── VideoMode.hpp
│ │ │ │ ├── Vulkan.hpp
│ │ │ │ ├── Window.hpp
│ │ │ │ ├── WindowBase.hpp
│ │ │ │ ├── WindowHandle.hpp
│ │ │ │ └── WindowStyle.hpp
│ │ │ └── Window.hpp
│ │ └── lib/
│ │ ├── Debug/
│ │ │ ├── sfml-audio-s-d.pdb
│ │ │ ├── sfml-audio-s.pdb
│ │ │ ├── sfml-audio.pdb
│ │ │ ├── sfml-graphics-s-d.pdb
│ │ │ ├── sfml-graphics-s.pdb
│ │ │ ├── sfml-graphics.pdb
│ │ │ ├── sfml-main-d.pdb
│ │ │ ├── sfml-main-s.pdb
│ │ │ ├── sfml-network-s-d.pdb
│ │ │ ├── sfml-network-s.pdb
│ │ │ ├── sfml-network.pdb
│ │ │ ├── sfml-system-s-d.pdb
│ │ │ ├── sfml-system-s.pdb
│ │ │ ├── sfml-system.pdb
│ │ │ ├── sfml-window-s-d.pdb
│ │ │ ├── sfml-window-s.pdb
│ │ │ └── sfml-window.pdb
│ │ ├── cmake/
│ │ │ └── SFML/
│ │ │ ├── SFMLConfig.cmake
│ │ │ ├── SFMLConfigDependencies.cmake
│ │ │ ├── SFMLConfigVersion.cmake
│ │ │ ├── SFMLSharedTargets-debug.cmake
│ │ │ ├── SFMLSharedTargets-release.cmake
│ │ │ ├── SFMLSharedTargets.cmake
│ │ │ ├── SFMLStaticTargets-debug.cmake
│ │ │ ├── SFMLStaticTargets-release.cmake
│ │ │ └── SFMLStaticTargets.cmake
│ │ ├── flac.lib
│ │ ├── freetype.lib
│ │ ├── ogg.lib
│ │ ├── openal32.lib
│ │ ├── sfml-audio-d.lib
│ │ ├── sfml-audio-s-d.lib
│ │ ├── sfml-audio-s.lib
│ │ ├── sfml-audio.lib
│ │ ├── sfml-graphics-d.lib
│ │ ├── sfml-graphics-s-d.lib
│ │ ├── sfml-graphics-s.lib
│ │ ├── sfml-graphics.lib
│ │ ├── sfml-main-d.lib
│ │ ├── sfml-main.lib
│ │ ├── sfml-network-d.lib
│ │ ├── sfml-network-s-d.lib
│ │ ├── sfml-network-s.lib
│ │ ├── sfml-network.lib
│ │ ├── sfml-system-d.lib
│ │ ├── sfml-system-s-d.lib
│ │ ├── sfml-system-s.lib
│ │ ├── sfml-system.lib
│ │ ├── sfml-window-d.lib
│ │ ├── sfml-window-s-d.lib
│ │ ├── sfml-window-s.lib
│ │ ├── sfml-window.lib
│ │ ├── vorbis.lib
│ │ ├── vorbisenc.lib
│ │ └── vorbisfile.lib
│ ├── is-Engine-linux-SDL2.cbp
│ ├── is-Engine-linux.cbp
│ ├── is-Engine-windows-SDL2.cbp
│ ├── is-Engine-windows.cbp
│ ├── java/
│ │ └── com/
│ │ └── author/
│ │ └── isengine/
│ │ └── SDLActivity.java
│ ├── lib/
│ │ └── catch2/
│ │ └── catch.hpp
│ ├── qt/
│ │ ├── is-Engine.pro
│ │ └── is-Engine.pro.user
│ ├── res/
│ │ └── values/
│ │ └── strings.xml
│ ├── vs-sfml.sln
│ ├── vs-sfml.vcxproj
│ ├── vs-sfml.vcxproj.filters
│ ├── vs-sfml.vcxproj.user
│ └── web/
│ ├── index.html
│ ├── scripts/
│ │ └── main.js
│ ├── styles/
│ │ └── index.css
│ └── sw.js
├── build.gradle
├── doc/
│ ├── isEngine_api_doc_eng.html
│ └── isEngine_api_doc_fr.html
├── gradle/
│ └── wrapper/
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── libs/
│ ├── SDL2/
│ │ ├── CMakeFiles/
│ │ │ └── SDL2.dir/
│ │ │ └── src/
│ │ │ ├── SDL.c.o
│ │ │ ├── SDL_assert.c.o
│ │ │ ├── SDL_error.c.o
│ │ │ ├── SDL_hints.c.o
│ │ │ ├── SDL_log.c.o
│ │ │ ├── atomic/
│ │ │ │ ├── SDL_atomic.c.o
│ │ │ │ └── SDL_spinlock.c.o
│ │ │ ├── audio/
│ │ │ │ ├── SDL_audio.c.o
│ │ │ │ ├── SDL_audiocvt.c.o
│ │ │ │ ├── SDL_audiodev.c.o
│ │ │ │ ├── SDL_audiotypecvt.c.o
│ │ │ │ ├── SDL_mixer.c.o
│ │ │ │ ├── SDL_wave.c.o
│ │ │ │ ├── android/
│ │ │ │ │ └── SDL_androidaudio.c.o
│ │ │ │ ├── dummy/
│ │ │ │ │ └── SDL_dummyaudio.c.o
│ │ │ │ └── paudio/
│ │ │ │ └── SDL_paudio.c.o
│ │ │ ├── core/
│ │ │ │ └── android/
│ │ │ │ └── SDL_android.c.o
│ │ │ ├── cpuinfo/
│ │ │ │ └── SDL_cpuinfo.c.o
│ │ │ ├── dynapi/
│ │ │ │ └── SDL_dynapi.c.o
│ │ │ ├── events/
│ │ │ │ ├── SDL_clipboardevents.c.o
│ │ │ │ ├── SDL_dropevents.c.o
│ │ │ │ ├── SDL_events.c.o
│ │ │ │ ├── SDL_gesture.c.o
│ │ │ │ ├── SDL_keyboard.c.o
│ │ │ │ ├── SDL_mouse.c.o
│ │ │ │ ├── SDL_quit.c.o
│ │ │ │ ├── SDL_touch.c.o
│ │ │ │ └── SDL_windowevents.c.o
│ │ │ ├── file/
│ │ │ │ └── SDL_rwops.c.o
│ │ │ ├── filesystem/
│ │ │ │ └── android/
│ │ │ │ └── SDL_sysfilesystem.c.o
│ │ │ ├── haptic/
│ │ │ │ ├── SDL_haptic.c.o
│ │ │ │ └── dummy/
│ │ │ │ └── SDL_syshaptic.c.o
│ │ │ ├── joystick/
│ │ │ │ ├── SDL_gamecontroller.c.o
│ │ │ │ ├── SDL_joystick.c.o
│ │ │ │ └── android/
│ │ │ │ └── SDL_sysjoystick.c.o
│ │ │ ├── libm/
│ │ │ │ ├── e_atan2.c.o
│ │ │ │ ├── e_log.c.o
│ │ │ │ ├── e_pow.c.o
│ │ │ │ ├── e_rem_pio2.c.o
│ │ │ │ ├── e_sqrt.c.o
│ │ │ │ ├── k_cos.c.o
│ │ │ │ ├── k_rem_pio2.c.o
│ │ │ │ ├── k_sin.c.o
│ │ │ │ ├── k_tan.c.o
│ │ │ │ ├── s_atan.c.o
│ │ │ │ ├── s_copysign.c.o
│ │ │ │ ├── s_cos.c.o
│ │ │ │ ├── s_fabs.c.o
│ │ │ │ ├── s_floor.c.o
│ │ │ │ ├── s_scalbn.c.o
│ │ │ │ ├── s_sin.c.o
│ │ │ │ └── s_tan.c.o
│ │ │ ├── loadso/
│ │ │ │ └── dlopen/
│ │ │ │ └── SDL_sysloadso.c.o
│ │ │ ├── power/
│ │ │ │ ├── SDL_power.c.o
│ │ │ │ └── android/
│ │ │ │ └── SDL_syspower.c.o
│ │ │ ├── render/
│ │ │ │ ├── SDL_d3dmath.c.o
│ │ │ │ ├── SDL_render.c.o
│ │ │ │ ├── SDL_yuv_mmx.c.o
│ │ │ │ ├── SDL_yuv_sw.c.o
│ │ │ │ ├── opengl/
│ │ │ │ │ ├── SDL_render_gl.c.o
│ │ │ │ │ └── SDL_shaders_gl.c.o
│ │ │ │ ├── opengles/
│ │ │ │ │ └── SDL_render_gles.c.o
│ │ │ │ ├── opengles2/
│ │ │ │ │ ├── SDL_render_gles2.c.o
│ │ │ │ │ └── SDL_shaders_gles2.c.o
│ │ │ │ ├── psp/
│ │ │ │ │ └── SDL_render_psp.c.o
│ │ │ │ └── software/
│ │ │ │ ├── SDL_blendfillrect.c.o
│ │ │ │ ├── SDL_blendline.c.o
│ │ │ │ ├── SDL_blendpoint.c.o
│ │ │ │ ├── SDL_drawline.c.o
│ │ │ │ ├── SDL_drawpoint.c.o
│ │ │ │ ├── SDL_render_sw.c.o
│ │ │ │ └── SDL_rotate.c.o
│ │ │ ├── stdlib/
│ │ │ │ ├── SDL_getenv.c.o
│ │ │ │ ├── SDL_iconv.c.o
│ │ │ │ ├── SDL_malloc.c.o
│ │ │ │ ├── SDL_qsort.c.o
│ │ │ │ ├── SDL_stdlib.c.o
│ │ │ │ └── SDL_string.c.o
│ │ │ ├── test/
│ │ │ │ ├── SDL_test_assert.c.o
│ │ │ │ ├── SDL_test_common.c.o
│ │ │ │ ├── SDL_test_compare.c.o
│ │ │ │ ├── SDL_test_crc32.c.o
│ │ │ │ ├── SDL_test_font.c.o
│ │ │ │ ├── SDL_test_fuzzer.c.o
│ │ │ │ ├── SDL_test_harness.c.o
│ │ │ │ ├── SDL_test_imageBlit.c.o
│ │ │ │ ├── SDL_test_imageBlitBlend.c.o
│ │ │ │ ├── SDL_test_imageFace.c.o
│ │ │ │ ├── SDL_test_imagePrimitives.c.o
│ │ │ │ ├── SDL_test_imagePrimitivesBlend.c.o
│ │ │ │ ├── SDL_test_log.c.o
│ │ │ │ ├── SDL_test_md5.c.o
│ │ │ │ └── SDL_test_random.c.o
│ │ │ ├── thread/
│ │ │ │ ├── SDL_thread.c.o
│ │ │ │ └── pthread/
│ │ │ │ ├── SDL_syscond.c.o
│ │ │ │ ├── SDL_sysmutex.c.o
│ │ │ │ ├── SDL_syssem.c.o
│ │ │ │ ├── SDL_systhread.c.o
│ │ │ │ └── SDL_systls.c.o
│ │ │ ├── timer/
│ │ │ │ ├── SDL_timer.c.o
│ │ │ │ └── unix/
│ │ │ │ └── SDL_systimer.c.o
│ │ │ └── video/
│ │ │ ├── SDL_RLEaccel.c.o
│ │ │ ├── SDL_blit.c.o
│ │ │ ├── SDL_blit_0.c.o
│ │ │ ├── SDL_blit_1.c.o
│ │ │ ├── SDL_blit_A.c.o
│ │ │ ├── SDL_blit_N.c.o
│ │ │ ├── SDL_blit_auto.c.o
│ │ │ ├── SDL_blit_copy.c.o
│ │ │ ├── SDL_blit_slow.c.o
│ │ │ ├── SDL_bmp.c.o
│ │ │ ├── SDL_clipboard.c.o
│ │ │ ├── SDL_egl.c.o
│ │ │ ├── SDL_fillrect.c.o
│ │ │ ├── SDL_pixels.c.o
│ │ │ ├── SDL_rect.c.o
│ │ │ ├── SDL_shape.c.o
│ │ │ ├── SDL_stretch.c.o
│ │ │ ├── SDL_surface.c.o
│ │ │ ├── SDL_video.c.o
│ │ │ └── android/
│ │ │ ├── SDL_androidclipboard.c.o
│ │ │ ├── SDL_androidevents.c.o
│ │ │ ├── SDL_androidgl.c.o
│ │ │ ├── SDL_androidkeyboard.c.o
│ │ │ ├── SDL_androidmessagebox.c.o
│ │ │ ├── SDL_androidmouse.c.o
│ │ │ ├── SDL_androidtouch.c.o
│ │ │ ├── SDL_androidvideo.c.o
│ │ │ └── SDL_androidwindow.c.o
│ │ ├── CMakeLists.txt
│ │ ├── build.gradle
│ │ ├── cmake_install.cmake
│ │ ├── include/
│ │ │ ├── SDL.h
│ │ │ ├── SDL_assert.h
│ │ │ ├── SDL_atomic.h
│ │ │ ├── SDL_audio.h
│ │ │ ├── SDL_bits.h
│ │ │ ├── SDL_blendmode.h
│ │ │ ├── SDL_clipboard.h
│ │ │ ├── SDL_config.h
│ │ │ ├── SDL_config.h.cmake
│ │ │ ├── SDL_config.h.in
│ │ │ ├── SDL_config_android.h
│ │ │ ├── SDL_config_iphoneos.h
│ │ │ ├── SDL_config_macosx.h
│ │ │ ├── SDL_config_minimal.h
│ │ │ ├── SDL_config_pandora.h
│ │ │ ├── SDL_config_psp.h
│ │ │ ├── SDL_config_windows.h
│ │ │ ├── SDL_config_winrt.h
│ │ │ ├── SDL_config_wiz.h
│ │ │ ├── SDL_copying.h
│ │ │ ├── SDL_cpuinfo.h
│ │ │ ├── SDL_egl.h
│ │ │ ├── SDL_endian.h
│ │ │ ├── SDL_error.h
│ │ │ ├── SDL_events.h
│ │ │ ├── SDL_filesystem.h
│ │ │ ├── SDL_gamecontroller.h
│ │ │ ├── SDL_gesture.h
│ │ │ ├── SDL_haptic.h
│ │ │ ├── SDL_hints.h
│ │ │ ├── SDL_joystick.h
│ │ │ ├── SDL_keyboard.h
│ │ │ ├── SDL_keycode.h
│ │ │ ├── SDL_loadso.h
│ │ │ ├── SDL_log.h
│ │ │ ├── SDL_main.h
│ │ │ ├── SDL_messagebox.h
│ │ │ ├── SDL_mouse.h
│ │ │ ├── SDL_mutex.h
│ │ │ ├── SDL_name.h
│ │ │ ├── SDL_opengl.h
│ │ │ ├── SDL_opengl_glext.h
│ │ │ ├── SDL_opengles.h
│ │ │ ├── SDL_opengles2.h
│ │ │ ├── SDL_opengles2_gl2.h
│ │ │ ├── SDL_opengles2_gl2ext.h
│ │ │ ├── SDL_opengles2_gl2platform.h
│ │ │ ├── SDL_opengles2_khrplatform.h
│ │ │ ├── SDL_pixels.h
│ │ │ ├── SDL_platform.h
│ │ │ ├── SDL_power.h
│ │ │ ├── SDL_quit.h
│ │ │ ├── SDL_rect.h
│ │ │ ├── SDL_render.h
│ │ │ ├── SDL_revision.h
│ │ │ ├── SDL_rwops.h
│ │ │ ├── SDL_scancode.h
│ │ │ ├── SDL_shape.h
│ │ │ ├── SDL_stdinc.h
│ │ │ ├── SDL_surface.h
│ │ │ ├── SDL_system.h
│ │ │ ├── SDL_syswm.h
│ │ │ ├── SDL_test.h
│ │ │ ├── SDL_test_assert.h
│ │ │ ├── SDL_test_common.h
│ │ │ ├── SDL_test_compare.h
│ │ │ ├── SDL_test_crc32.h
│ │ │ ├── SDL_test_font.h
│ │ │ ├── SDL_test_fuzzer.h
│ │ │ ├── SDL_test_harness.h
│ │ │ ├── SDL_test_images.h
│ │ │ ├── SDL_test_log.h
│ │ │ ├── SDL_test_md5.h
│ │ │ ├── SDL_test_random.h
│ │ │ ├── SDL_thread.h
│ │ │ ├── SDL_timer.h
│ │ │ ├── SDL_touch.h
│ │ │ ├── SDL_types.h
│ │ │ ├── SDL_version.h
│ │ │ ├── SDL_video.h
│ │ │ ├── begin_code.h
│ │ │ └── close_code.h
│ │ └── src/
│ │ ├── SDL.c
│ │ ├── SDL_assert.c
│ │ ├── SDL_assert_c.h
│ │ ├── SDL_error.c
│ │ ├── SDL_error_c.h
│ │ ├── SDL_hints.c
│ │ ├── SDL_internal.h
│ │ ├── SDL_log.c
│ │ ├── atomic/
│ │ │ ├── SDL_atomic.c
│ │ │ └── SDL_spinlock.c
│ │ ├── audio/
│ │ │ ├── SDL_audio.c
│ │ │ ├── SDL_audio_c.h
│ │ │ ├── SDL_audiocvt.c
│ │ │ ├── SDL_audiodev.c
│ │ │ ├── SDL_audiodev_c.h
│ │ │ ├── SDL_audiotypecvt.c
│ │ │ ├── SDL_mixer.c
│ │ │ ├── SDL_sysaudio.h
│ │ │ ├── SDL_wave.c
│ │ │ ├── SDL_wave.h
│ │ │ ├── android/
│ │ │ │ ├── SDL_androidaudio.c
│ │ │ │ └── SDL_androidaudio.h
│ │ │ ├── dummy/
│ │ │ │ ├── SDL_dummyaudio.c
│ │ │ │ └── SDL_dummyaudio.h
│ │ │ ├── paudio/
│ │ │ │ ├── SDL_paudio.c
│ │ │ │ └── SDL_paudio.h
│ │ │ └── sdlgenaudiocvt.pl
│ │ ├── core/
│ │ │ └── android/
│ │ │ ├── SDL_android.c
│ │ │ └── SDL_android.h
│ │ ├── cpuinfo/
│ │ │ └── SDL_cpuinfo.c
│ │ ├── dynapi/
│ │ │ ├── SDL_dynapi.c
│ │ │ ├── SDL_dynapi.h
│ │ │ ├── SDL_dynapi_overrides.h
│ │ │ ├── SDL_dynapi_procs.h
│ │ │ └── gendynapi.pl
│ │ ├── events/
│ │ │ ├── SDL_clipboardevents.c
│ │ │ ├── SDL_clipboardevents_c.h
│ │ │ ├── SDL_dropevents.c
│ │ │ ├── SDL_dropevents_c.h
│ │ │ ├── SDL_events.c
│ │ │ ├── SDL_events_c.h
│ │ │ ├── SDL_gesture.c
│ │ │ ├── SDL_gesture_c.h
│ │ │ ├── SDL_keyboard.c
│ │ │ ├── SDL_keyboard_c.h
│ │ │ ├── SDL_mouse.c
│ │ │ ├── SDL_mouse_c.h
│ │ │ ├── SDL_quit.c
│ │ │ ├── SDL_sysevents.h
│ │ │ ├── SDL_touch.c
│ │ │ ├── SDL_touch_c.h
│ │ │ ├── SDL_windowevents.c
│ │ │ ├── SDL_windowevents_c.h
│ │ │ ├── blank_cursor.h
│ │ │ ├── default_cursor.h
│ │ │ ├── scancodes_darwin.h
│ │ │ ├── scancodes_linux.h
│ │ │ ├── scancodes_windows.h
│ │ │ └── scancodes_xfree86.h
│ │ ├── file/
│ │ │ └── SDL_rwops.c
│ │ ├── filesystem/
│ │ │ └── android/
│ │ │ └── SDL_sysfilesystem.c
│ │ ├── haptic/
│ │ │ ├── SDL_haptic.c
│ │ │ ├── SDL_haptic_c.h
│ │ │ ├── SDL_syshaptic.h
│ │ │ └── dummy/
│ │ │ └── SDL_syshaptic.c
│ │ ├── joystick/
│ │ │ ├── SDL_gamecontroller.c
│ │ │ ├── SDL_gamecontrollerdb.h
│ │ │ ├── SDL_joystick.c
│ │ │ ├── SDL_joystick_c.h
│ │ │ ├── SDL_sysjoystick.h
│ │ │ ├── android/
│ │ │ │ ├── SDL_sysjoystick.c
│ │ │ │ └── SDL_sysjoystick_c.h
│ │ │ └── sort_controllers.py
│ │ ├── libm/
│ │ │ ├── e_atan2.c
│ │ │ ├── e_log.c
│ │ │ ├── e_pow.c
│ │ │ ├── e_rem_pio2.c
│ │ │ ├── e_sqrt.c
│ │ │ ├── k_cos.c
│ │ │ ├── k_rem_pio2.c
│ │ │ ├── k_sin.c
│ │ │ ├── k_tan.c
│ │ │ ├── math_libm.h
│ │ │ ├── math_private.h
│ │ │ ├── s_atan.c
│ │ │ ├── s_copysign.c
│ │ │ ├── s_cos.c
│ │ │ ├── s_fabs.c
│ │ │ ├── s_floor.c
│ │ │ ├── s_scalbn.c
│ │ │ ├── s_sin.c
│ │ │ └── s_tan.c
│ │ ├── loadso/
│ │ │ └── dlopen/
│ │ │ └── SDL_sysloadso.c
│ │ ├── power/
│ │ │ ├── SDL_power.c
│ │ │ └── android/
│ │ │ └── SDL_syspower.c
│ │ ├── render/
│ │ │ ├── SDL_d3dmath.c
│ │ │ ├── SDL_d3dmath.h
│ │ │ ├── SDL_render.c
│ │ │ ├── SDL_sysrender.h
│ │ │ ├── SDL_yuv_mmx.c
│ │ │ ├── SDL_yuv_sw.c
│ │ │ ├── SDL_yuv_sw_c.h
│ │ │ ├── mmx.h
│ │ │ ├── opengl/
│ │ │ │ ├── SDL_glfuncs.h
│ │ │ │ ├── SDL_render_gl.c
│ │ │ │ ├── SDL_shaders_gl.c
│ │ │ │ └── SDL_shaders_gl.h
│ │ │ ├── opengles/
│ │ │ │ ├── SDL_glesfuncs.h
│ │ │ │ └── SDL_render_gles.c
│ │ │ ├── opengles2/
│ │ │ │ ├── SDL_gles2funcs.h
│ │ │ │ ├── SDL_render_gles2.c
│ │ │ │ ├── SDL_shaders_gles2.c
│ │ │ │ └── SDL_shaders_gles2.h
│ │ │ ├── psp/
│ │ │ │ └── SDL_render_psp.c
│ │ │ └── software/
│ │ │ ├── SDL_blendfillrect.c
│ │ │ ├── SDL_blendfillrect.h
│ │ │ ├── SDL_blendline.c
│ │ │ ├── SDL_blendline.h
│ │ │ ├── SDL_blendpoint.c
│ │ │ ├── SDL_blendpoint.h
│ │ │ ├── SDL_draw.h
│ │ │ ├── SDL_drawline.c
│ │ │ ├── SDL_drawline.h
│ │ │ ├── SDL_drawpoint.c
│ │ │ ├── SDL_drawpoint.h
│ │ │ ├── SDL_render_sw.c
│ │ │ ├── SDL_render_sw_c.h
│ │ │ ├── SDL_rotate.c
│ │ │ └── SDL_rotate.h
│ │ ├── stdlib/
│ │ │ ├── SDL_getenv.c
│ │ │ ├── SDL_iconv.c
│ │ │ ├── SDL_malloc.c
│ │ │ ├── SDL_qsort.c
│ │ │ ├── SDL_stdlib.c
│ │ │ └── SDL_string.c
│ │ ├── test/
│ │ │ ├── SDL_test_assert.c
│ │ │ ├── SDL_test_common.c
│ │ │ ├── SDL_test_compare.c
│ │ │ ├── SDL_test_crc32.c
│ │ │ ├── SDL_test_font.c
│ │ │ ├── SDL_test_fuzzer.c
│ │ │ ├── SDL_test_harness.c
│ │ │ ├── SDL_test_imageBlit.c
│ │ │ ├── SDL_test_imageBlitBlend.c
│ │ │ ├── SDL_test_imageFace.c
│ │ │ ├── SDL_test_imagePrimitives.c
│ │ │ ├── SDL_test_imagePrimitivesBlend.c
│ │ │ ├── SDL_test_log.c
│ │ │ ├── SDL_test_md5.c
│ │ │ └── SDL_test_random.c
│ │ ├── thread/
│ │ │ ├── SDL_systhread.h
│ │ │ ├── SDL_thread.c
│ │ │ ├── SDL_thread_c.h
│ │ │ └── pthread/
│ │ │ ├── SDL_syscond.c
│ │ │ ├── SDL_sysmutex.c
│ │ │ ├── SDL_sysmutex_c.h
│ │ │ ├── SDL_syssem.c
│ │ │ ├── SDL_systhread.c
│ │ │ ├── SDL_systhread_c.h
│ │ │ └── SDL_systls.c
│ │ ├── timer/
│ │ │ ├── SDL_timer.c
│ │ │ ├── SDL_timer_c.h
│ │ │ └── unix/
│ │ │ └── SDL_systimer.c
│ │ └── video/
│ │ ├── SDL_RLEaccel.c
│ │ ├── SDL_RLEaccel_c.h
│ │ ├── SDL_blit.c
│ │ ├── SDL_blit.h
│ │ ├── SDL_blit_0.c
│ │ ├── SDL_blit_1.c
│ │ ├── SDL_blit_A.c
│ │ ├── SDL_blit_N.c
│ │ ├── SDL_blit_auto.c
│ │ ├── SDL_blit_auto.h
│ │ ├── SDL_blit_copy.c
│ │ ├── SDL_blit_copy.h
│ │ ├── SDL_blit_slow.c
│ │ ├── SDL_blit_slow.h
│ │ ├── SDL_bmp.c
│ │ ├── SDL_clipboard.c
│ │ ├── SDL_egl.c
│ │ ├── SDL_egl_c.h
│ │ ├── SDL_fillrect.c
│ │ ├── SDL_pixels.c
│ │ ├── SDL_pixels_c.h
│ │ ├── SDL_rect.c
│ │ ├── SDL_rect_c.h
│ │ ├── SDL_shape.c
│ │ ├── SDL_shape_internals.h
│ │ ├── SDL_stretch.c
│ │ ├── SDL_surface.c
│ │ ├── SDL_sysvideo.h
│ │ ├── SDL_video.c
│ │ ├── android/
│ │ │ ├── SDL_androidclipboard.c
│ │ │ ├── SDL_androidclipboard.h
│ │ │ ├── SDL_androidevents.c
│ │ │ ├── SDL_androidevents.h
│ │ │ ├── SDL_androidgl.c
│ │ │ ├── SDL_androidkeyboard.c
│ │ │ ├── SDL_androidkeyboard.h
│ │ │ ├── SDL_androidmessagebox.c
│ │ │ ├── SDL_androidmessagebox.h
│ │ │ ├── SDL_androidmouse.c
│ │ │ ├── SDL_androidmouse.h
│ │ │ ├── SDL_androidtouch.c
│ │ │ ├── SDL_androidtouch.h
│ │ │ ├── SDL_androidvideo.c
│ │ │ ├── SDL_androidvideo.h
│ │ │ ├── SDL_androidwindow.c
│ │ │ └── SDL_androidwindow.h
│ │ └── sdlgenblit.pl
│ ├── SDL2_gfx/
│ │ ├── CMakeFiles/
│ │ │ └── SDL2_gfx.dir/
│ │ │ └── src/
│ │ │ ├── SDL2_framerate.c.o
│ │ │ ├── SDL2_gfxPrimitives.c.o
│ │ │ ├── SDL2_imageFilter.c.o
│ │ │ └── SDL2_rotozoom.c.o
│ │ ├── CMakeLists.txt
│ │ ├── build.gradle
│ │ ├── cmake_install.cmake
│ │ ├── include/
│ │ │ ├── SDL2_framerate.h
│ │ │ ├── SDL2_gfxPrimitives.h
│ │ │ ├── SDL2_gfxPrimitives_font.h
│ │ │ ├── SDL2_imageFilter.h
│ │ │ └── SDL2_rotozoom.h
│ │ └── src/
│ │ ├── SDL2_framerate.c
│ │ ├── SDL2_gfxPrimitives.c
│ │ ├── SDL2_imageFilter.c
│ │ └── SDL2_rotozoom.c
│ ├── SDL2_image/
│ │ ├── CMakeFiles/
│ │ │ └── SDL2_image.dir/
│ │ │ └── src/
│ │ │ ├── IMG.c.o
│ │ │ ├── IMG_bmp.c.o
│ │ │ ├── IMG_gif.c.o
│ │ │ ├── IMG_jpg.c.o
│ │ │ ├── IMG_lbm.c.o
│ │ │ ├── IMG_pcx.c.o
│ │ │ ├── IMG_png.c.o
│ │ │ ├── IMG_pnm.c.o
│ │ │ ├── IMG_tga.c.o
│ │ │ ├── IMG_tif.c.o
│ │ │ ├── IMG_webp.c.o
│ │ │ ├── IMG_xcf.c.o
│ │ │ ├── IMG_xpm.c.o
│ │ │ ├── IMG_xv.c.o
│ │ │ ├── IMG_xxx.c.o
│ │ │ └── showimage.c.o
│ │ ├── CMakeLists.txt
│ │ ├── build.gradle
│ │ ├── cmake_install.cmake
│ │ ├── include/
│ │ │ ├── SDL_image.h
│ │ │ └── miniz.h
│ │ └── src/
│ │ ├── IMG.c
│ │ ├── IMG_bmp.c
│ │ ├── IMG_gif.c
│ │ ├── IMG_jpg.c
│ │ ├── IMG_lbm.c
│ │ ├── IMG_pcx.c
│ │ ├── IMG_png.c
│ │ ├── IMG_pnm.c
│ │ ├── IMG_tga.c
│ │ ├── IMG_tif.c
│ │ ├── IMG_webp.c
│ │ ├── IMG_xcf.c
│ │ ├── IMG_xpm.c
│ │ ├── IMG_xv.c
│ │ ├── IMG_xxx.c
│ │ └── showimage.c
│ ├── SDL2_jpeg/
│ │ ├── CMakeFiles/
│ │ │ └── SDL2_jpeg.dir/
│ │ │ └── src/
│ │ │ ├── cdjpeg.c.o
│ │ │ ├── jaricom.c.o
│ │ │ ├── jcapimin.c.o
│ │ │ ├── jcapistd.c.o
│ │ │ ├── jcarith.c.o
│ │ │ ├── jccoefct.c.o
│ │ │ ├── jccolor.c.o
│ │ │ ├── jcdctmgr.c.o
│ │ │ ├── jchuff.c.o
│ │ │ ├── jcinit.c.o
│ │ │ ├── jcmainct.c.o
│ │ │ ├── jcmarker.c.o
│ │ │ ├── jcmaster.c.o
│ │ │ ├── jcomapi.c.o
│ │ │ ├── jcparam.c.o
│ │ │ ├── jcprepct.c.o
│ │ │ ├── jcsample.c.o
│ │ │ ├── jctrans.c.o
│ │ │ ├── jdapimin.c.o
│ │ │ ├── jdapistd.c.o
│ │ │ ├── jdarith.c.o
│ │ │ ├── jdatadst.c.o
│ │ │ ├── jdatasrc.c.o
│ │ │ ├── jdcoefct.c.o
│ │ │ ├── jdcolor.c.o
│ │ │ ├── jddctmgr.c.o
│ │ │ ├── jdhuff.c.o
│ │ │ ├── jdinput.c.o
│ │ │ ├── jdmainct.c.o
│ │ │ ├── jdmarker.c.o
│ │ │ ├── jdmaster.c.o
│ │ │ ├── jdmerge.c.o
│ │ │ ├── jdpostct.c.o
│ │ │ ├── jdsample.c.o
│ │ │ ├── jdtrans.c.o
│ │ │ ├── jerror.c.o
│ │ │ ├── jfdctflt.c.o
│ │ │ ├── jfdctfst.c.o
│ │ │ ├── jfdctint.c.o
│ │ │ ├── jidctflt.c.o
│ │ │ ├── jidctfst.c.o
│ │ │ ├── jidctint.c.o
│ │ │ ├── jmem-android.c.o
│ │ │ ├── jmemmgr.c.o
│ │ │ ├── jquant1.c.o
│ │ │ ├── jquant2.c.o
│ │ │ ├── jutils.c.o
│ │ │ ├── rdbmp.c.o
│ │ │ ├── rdcolmap.c.o
│ │ │ ├── rdgif.c.o
│ │ │ ├── rdppm.c.o
│ │ │ ├── rdrle.c.o
│ │ │ ├── rdswitch.c.o
│ │ │ ├── rdtarga.c.o
│ │ │ ├── transupp.c.o
│ │ │ ├── wrbmp.c.o
│ │ │ ├── wrgif.c.o
│ │ │ ├── wrjpgcom.c.o
│ │ │ ├── wrppm.c.o
│ │ │ ├── wrrle.c.o
│ │ │ └── wrtarga.c.o
│ │ ├── CMakeLists.txt
│ │ ├── build.gradle
│ │ ├── cmake_install.cmake
│ │ ├── include/
│ │ │ ├── cderror.h
│ │ │ ├── cdjpeg.h
│ │ │ ├── jconfig.h
│ │ │ ├── jdct.h
│ │ │ ├── jerror.h
│ │ │ ├── jinclude.h
│ │ │ ├── jmemsys.h
│ │ │ ├── jmorecfg.h
│ │ │ ├── jpegint.h
│ │ │ ├── jpeglib.h
│ │ │ ├── jversion.h
│ │ │ └── transupp.h
│ │ └── src/
│ │ ├── cdjpeg.c
│ │ ├── cjpeg.c
│ │ ├── ckconfig.c
│ │ ├── djpeg.c
│ │ ├── example.c
│ │ ├── jaricom.c
│ │ ├── jcapimin.c
│ │ ├── jcapistd.c
│ │ ├── jcarith.c
│ │ ├── jccoefct.c
│ │ ├── jccolor.c
│ │ ├── jcdctmgr.c
│ │ ├── jchuff.c
│ │ ├── jcinit.c
│ │ ├── jcmainct.c
│ │ ├── jcmarker.c
│ │ ├── jcmaster.c
│ │ ├── jcomapi.c
│ │ ├── jcparam.c
│ │ ├── jcprepct.c
│ │ ├── jcsample.c
│ │ ├── jctrans.c
│ │ ├── jdapimin.c
│ │ ├── jdapistd.c
│ │ ├── jdarith.c
│ │ ├── jdatadst.c
│ │ ├── jdatasrc.c
│ │ ├── jdcoefct.c
│ │ ├── jdcolor.c
│ │ ├── jddctmgr.c
│ │ ├── jdhuff.c
│ │ ├── jdinput.c
│ │ ├── jdmainct.c
│ │ ├── jdmarker.c
│ │ ├── jdmaster.c
│ │ ├── jdmerge.c
│ │ ├── jdpostct.c
│ │ ├── jdsample.c
│ │ ├── jdtrans.c
│ │ ├── jerror.c
│ │ ├── jfdctflt.c
│ │ ├── jfdctfst.c
│ │ ├── jfdctint.c
│ │ ├── jidctflt.c
│ │ ├── jidctfst.c
│ │ ├── jidctint.c
│ │ ├── jmem-android.c
│ │ ├── jmemansi.c
│ │ ├── jmemdos.c
│ │ ├── jmemmac.c
│ │ ├── jmemmgr.c
│ │ ├── jmemname.c
│ │ ├── jmemnobs.c
│ │ ├── jpegtran.c
│ │ ├── jquant1.c
│ │ ├── jquant2.c
│ │ ├── jutils.c
│ │ ├── rdbmp.c
│ │ ├── rdcolmap.c
│ │ ├── rdgif.c
│ │ ├── rdjpgcom.c
│ │ ├── rdppm.c
│ │ ├── rdrle.c
│ │ ├── rdswitch.c
│ │ ├── rdtarga.c
│ │ ├── transupp.c
│ │ ├── wrbmp.c
│ │ ├── wrgif.c
│ │ ├── wrjpgcom.c
│ │ ├── wrppm.c
│ │ ├── wrrle.c
│ │ └── wrtarga.c
│ ├── SDL2_mixer/
│ │ ├── CMakeFiles/
│ │ │ └── SDL2_mixer.dir/
│ │ │ └── src/
│ │ │ ├── dynamic_flac.c.o
│ │ │ ├── dynamic_fluidsynth.c.o
│ │ │ ├── dynamic_mod.c.o
│ │ │ ├── dynamic_modplug.c.o
│ │ │ ├── dynamic_mp3.c.o
│ │ │ ├── dynamic_ogg.c.o
│ │ │ ├── effect_position.c.o
│ │ │ ├── effect_stereoreverse.c.o
│ │ │ ├── effects_internal.c.o
│ │ │ ├── fluidsynth.c.o
│ │ │ ├── load_aiff.c.o
│ │ │ ├── load_flac.c.o
│ │ │ ├── load_mp3.c.o
│ │ │ ├── load_ogg.c.o
│ │ │ ├── load_voc.c.o
│ │ │ ├── mixer.c.o
│ │ │ ├── music.c.o
│ │ │ ├── music_cmd.c.o
│ │ │ ├── music_flac.c.o
│ │ │ ├── music_mad.c.o
│ │ │ ├── music_mod.c.o
│ │ │ ├── music_modplug.c.o
│ │ │ ├── music_ogg.c.o
│ │ │ ├── playmus.c.o
│ │ │ └── wavestream.c.o
│ │ ├── CMakeLists.txt
│ │ ├── build.gradle
│ │ ├── cmake_install.cmake
│ │ ├── include/
│ │ │ ├── SDL_mixer.h
│ │ │ ├── dynamic_flac.h
│ │ │ ├── dynamic_fluidsynth.h
│ │ │ ├── dynamic_mod.h
│ │ │ ├── dynamic_modplug.h
│ │ │ ├── dynamic_mp3.h
│ │ │ ├── dynamic_ogg.h
│ │ │ ├── effects_internal.h
│ │ │ ├── fluidsynth.h
│ │ │ ├── load_aiff.h
│ │ │ ├── load_flac.h
│ │ │ ├── load_mp3.h
│ │ │ ├── load_ogg.h
│ │ │ ├── load_voc.h
│ │ │ ├── music_cmd.h
│ │ │ ├── music_flac.h
│ │ │ ├── music_mad.h
│ │ │ ├── music_mod.h
│ │ │ ├── music_modplug.h
│ │ │ ├── music_ogg.h
│ │ │ └── wavestream.h
│ │ └── src/
│ │ ├── dynamic_flac.c
│ │ ├── dynamic_fluidsynth.c
│ │ ├── dynamic_mod.c
│ │ ├── dynamic_modplug.c
│ │ ├── dynamic_mp3.c
│ │ ├── dynamic_ogg.c
│ │ ├── effect_position.c
│ │ ├── effect_stereoreverse.c
│ │ ├── effects_internal.c
│ │ ├── fluidsynth.c
│ │ ├── load_aiff.c
│ │ ├── load_flac.c
│ │ ├── load_mp3.c
│ │ ├── load_ogg.c
│ │ ├── load_voc.c
│ │ ├── mixer.c
│ │ ├── music.c
│ │ ├── music_cmd.c
│ │ ├── music_flac.c
│ │ ├── music_mad.c
│ │ ├── music_mod.c
│ │ ├── music_modplug.c
│ │ ├── music_ogg.c
│ │ ├── playmus.c
│ │ ├── playwave.c
│ │ └── wavestream.c
│ ├── SDL2_png/
│ │ ├── CMakeFiles/
│ │ │ └── SDL2_png.dir/
│ │ │ └── src/
│ │ │ ├── png.c.o
│ │ │ ├── pngerror.c.o
│ │ │ ├── pngget.c.o
│ │ │ ├── pngmem.c.o
│ │ │ ├── pngpread.c.o
│ │ │ ├── pngread.c.o
│ │ │ ├── pngrio.c.o
│ │ │ ├── pngrtran.c.o
│ │ │ ├── pngrutil.c.o
│ │ │ ├── pngset.c.o
│ │ │ ├── pngtrans.c.o
│ │ │ ├── pngwio.c.o
│ │ │ ├── pngwrite.c.o
│ │ │ ├── pngwtran.c.o
│ │ │ └── pngwutil.c.o
│ │ ├── CMakeLists.txt
│ │ ├── build.gradle
│ │ ├── cmake_install.cmake
│ │ ├── include/
│ │ │ ├── config.h
│ │ │ ├── png.h
│ │ │ ├── pngconf.h
│ │ │ ├── pngdebug.h
│ │ │ ├── pnginfo.h
│ │ │ ├── pnglibconf.h
│ │ │ ├── pngprefix.h
│ │ │ ├── pngpriv.h
│ │ │ └── pngstruct.h
│ │ └── src/
│ │ ├── png.c
│ │ ├── pngerror.c
│ │ ├── pngget.c
│ │ ├── pngmem.c
│ │ ├── pngpread.c
│ │ ├── pngread.c
│ │ ├── pngrio.c
│ │ ├── pngrtran.c
│ │ ├── pngrutil.c
│ │ ├── pngset.c
│ │ ├── pngtest.c
│ │ ├── pngtrans.c
│ │ ├── pngwio.c
│ │ ├── pngwrite.c
│ │ ├── pngwtran.c
│ │ └── pngwutil.c
│ ├── SDL2_ttf/
│ │ ├── CMakeFiles/
│ │ │ └── SDL2_ttf.dir/
│ │ │ └── src/
│ │ │ ├── SDL_ttf.c.o
│ │ │ └── glfont.c.o
│ │ ├── CMakeLists.txt
│ │ ├── build.gradle
│ │ ├── cmake_install.cmake
│ │ ├── include/
│ │ │ └── SDL_ttf.h
│ │ └── src/
│ │ ├── SDL_ttf.c
│ │ ├── glfont.c
│ │ └── showfont.c
│ └── freetype/
│ ├── CMakeFiles/
│ │ └── freetype.dir/
│ │ └── src/
│ │ ├── base/
│ │ │ ├── ftapi.c.o
│ │ │ ├── ftbase.c.o
│ │ │ ├── ftbbox.c.o
│ │ │ ├── ftbdf.c.o
│ │ │ ├── ftbitmap.c.o
│ │ │ ├── ftcid.c.o
│ │ │ ├── ftdebug.c.o
│ │ │ ├── ftfstype.c.o
│ │ │ ├── ftgasp.c.o
│ │ │ ├── ftglyph.c.o
│ │ │ ├── ftgxval.c.o
│ │ │ ├── ftinit.c.o
│ │ │ ├── ftlcdfil.c.o
│ │ │ ├── ftmm.c.o
│ │ │ ├── ftotval.c.o
│ │ │ ├── ftpatent.c.o
│ │ │ ├── ftpfr.c.o
│ │ │ ├── ftstroke.c.o
│ │ │ ├── ftsynth.c.o
│ │ │ ├── ftsystem.c.o
│ │ │ ├── fttype1.c.o
│ │ │ ├── ftwinfnt.c.o
│ │ │ ├── ftxf86.c.o
│ │ │ └── md5.c.o
│ │ ├── bzip2/
│ │ │ └── ftbzip2.c.o
│ │ ├── raster/
│ │ │ ├── ftraster.c.o
│ │ │ ├── ftrend1.c.o
│ │ │ └── rastpic.c.o
│ │ ├── sfnt/
│ │ │ ├── sfdriver.c.o
│ │ │ ├── sfntpic.c.o
│ │ │ ├── sfobjs.c.o
│ │ │ ├── ttbdf.c.o
│ │ │ ├── ttcmap.c.o
│ │ │ ├── ttkern.c.o
│ │ │ ├── ttload.c.o
│ │ │ ├── ttmtx.c.o
│ │ │ ├── ttpost.c.o
│ │ │ └── ttsbit.c.o
│ │ ├── smooth/
│ │ │ ├── ftgrays.c.o
│ │ │ ├── ftsmooth.c.o
│ │ │ └── ftspic.c.o
│ │ └── truetype/
│ │ ├── ttdriver.c.o
│ │ ├── ttgload.c.o
│ │ ├── ttgxvar.c.o
│ │ ├── ttinterp.c.o
│ │ ├── ttobjs.c.o
│ │ ├── ttpic.c.o
│ │ ├── ttpload.c.o
│ │ └── ttsubpix.c.o
│ ├── CMakeLists.txt
│ ├── build.gradle
│ ├── cmake_install.cmake
│ ├── include/
│ │ ├── freetype/
│ │ │ ├── config/
│ │ │ │ ├── ftconfig.h
│ │ │ │ ├── ftheader.h
│ │ │ │ ├── ftmodule.h
│ │ │ │ ├── ftoption.h
│ │ │ │ └── ftstdlib.h
│ │ │ ├── freetype.h
│ │ │ ├── ftadvanc.h
│ │ │ ├── ftautoh.h
│ │ │ ├── ftbbox.h
│ │ │ ├── ftbdf.h
│ │ │ ├── ftbitmap.h
│ │ │ ├── ftbzip2.h
│ │ │ ├── ftcache.h
│ │ │ ├── ftcffdrv.h
│ │ │ ├── ftchapters.h
│ │ │ ├── ftcid.h
│ │ │ ├── fterrdef.h
│ │ │ ├── fterrors.h
│ │ │ ├── ftgasp.h
│ │ │ ├── ftglyph.h
│ │ │ ├── ftgxval.h
│ │ │ ├── ftgzip.h
│ │ │ ├── ftimage.h
│ │ │ ├── ftincrem.h
│ │ │ ├── ftlcdfil.h
│ │ │ ├── ftlist.h
│ │ │ ├── ftlzw.h
│ │ │ ├── ftmac.h
│ │ │ ├── ftmm.h
│ │ │ ├── ftmodapi.h
│ │ │ ├── ftmoderr.h
│ │ │ ├── ftotval.h
│ │ │ ├── ftoutln.h
│ │ │ ├── ftpfr.h
│ │ │ ├── ftrender.h
│ │ │ ├── ftsizes.h
│ │ │ ├── ftsnames.h
│ │ │ ├── ftstroke.h
│ │ │ ├── ftsynth.h
│ │ │ ├── ftsystem.h
│ │ │ ├── fttrigon.h
│ │ │ ├── fttypes.h
│ │ │ ├── ftwinfnt.h
│ │ │ ├── ftxf86.h
│ │ │ ├── internal/
│ │ │ │ ├── autohint.h
│ │ │ │ ├── ftcalc.h
│ │ │ │ ├── ftdebug.h
│ │ │ │ ├── ftdriver.h
│ │ │ │ ├── ftgloadr.h
│ │ │ │ ├── ftmemory.h
│ │ │ │ ├── ftobjs.h
│ │ │ │ ├── ftpic.h
│ │ │ │ ├── ftrfork.h
│ │ │ │ ├── ftserv.h
│ │ │ │ ├── ftstream.h
│ │ │ │ ├── fttrace.h
│ │ │ │ ├── ftvalid.h
│ │ │ │ ├── internal.h
│ │ │ │ ├── psaux.h
│ │ │ │ ├── pshints.h
│ │ │ │ ├── services/
│ │ │ │ │ ├── svbdf.h
│ │ │ │ │ ├── svcid.h
│ │ │ │ │ ├── svgldict.h
│ │ │ │ │ ├── svgxval.h
│ │ │ │ │ ├── svkern.h
│ │ │ │ │ ├── svmm.h
│ │ │ │ │ ├── svotval.h
│ │ │ │ │ ├── svpfr.h
│ │ │ │ │ ├── svpostnm.h
│ │ │ │ │ ├── svprop.h
│ │ │ │ │ ├── svpscmap.h
│ │ │ │ │ ├── svpsinfo.h
│ │ │ │ │ ├── svsfnt.h
│ │ │ │ │ ├── svttcmap.h
│ │ │ │ │ ├── svtteng.h
│ │ │ │ │ ├── svttglyf.h
│ │ │ │ │ ├── svwinfnt.h
│ │ │ │ │ └── svxf86nm.h
│ │ │ │ ├── sfnt.h
│ │ │ │ ├── t1types.h
│ │ │ │ └── tttypes.h
│ │ │ ├── t1tables.h
│ │ │ ├── ttnameid.h
│ │ │ ├── tttables.h
│ │ │ ├── tttags.h
│ │ │ └── ttunpat.h
│ │ ├── ft2build.h
│ │ ├── ftconfig.h
│ │ └── ftmodule.h
│ └── src/
│ ├── Jamfile
│ ├── autofit/
│ │ ├── Jamfile
│ │ ├── afangles.c
│ │ ├── afangles.h
│ │ ├── afcjk.c
│ │ ├── afcjk.h
│ │ ├── afdummy.c
│ │ ├── afdummy.h
│ │ ├── aferrors.h
│ │ ├── afglobal.c
│ │ ├── afglobal.h
│ │ ├── afhints.c
│ │ ├── afhints.h
│ │ ├── afindic.c
│ │ ├── afindic.h
│ │ ├── aflatin.c
│ │ ├── aflatin.h
│ │ ├── aflatin2.c
│ │ ├── aflatin2.h
│ │ ├── afloader.c
│ │ ├── afloader.h
│ │ ├── afmodule.c
│ │ ├── afmodule.h
│ │ ├── afpic.c
│ │ ├── afpic.h
│ │ ├── aftypes.h
│ │ ├── afwarp.c
│ │ ├── afwarp.h
│ │ ├── autofit.c
│ │ ├── module.mk
│ │ └── rules.mk
│ ├── base/
│ │ ├── Jamfile
│ │ ├── basepic.c
│ │ ├── basepic.h
│ │ ├── ftadvanc.c
│ │ ├── ftapi.c
│ │ ├── ftbase.c
│ │ ├── ftbase.h
│ │ ├── ftbbox.c
│ │ ├── ftbdf.c
│ │ ├── ftbitmap.c
│ │ ├── ftcalc.c
│ │ ├── ftcid.c
│ │ ├── ftdbgmem.c
│ │ ├── ftdebug.c
│ │ ├── ftfstype.c
│ │ ├── ftgasp.c
│ │ ├── ftgloadr.c
│ │ ├── ftglyph.c
│ │ ├── ftgxval.c
│ │ ├── ftinit.c
│ │ ├── ftlcdfil.c
│ │ ├── ftmac.c
│ │ ├── ftmm.c
│ │ ├── ftobjs.c
│ │ ├── ftotval.c
│ │ ├── ftoutln.c
│ │ ├── ftpatent.c
│ │ ├── ftpfr.c
│ │ ├── ftpic.c
│ │ ├── ftrfork.c
│ │ ├── ftsnames.c
│ │ ├── ftstream.c
│ │ ├── ftstroke.c
│ │ ├── ftsynth.c
│ │ ├── ftsystem.c
│ │ ├── fttrigon.c
│ │ ├── fttype1.c
│ │ ├── ftutil.c
│ │ ├── ftwinfnt.c
│ │ ├── ftxf86.c
│ │ ├── md5.c
│ │ ├── md5.h
│ │ └── rules.mk
│ ├── bdf/
│ │ ├── Jamfile
│ │ ├── README
│ │ ├── bdf.c
│ │ ├── bdf.h
│ │ ├── bdfdrivr.c
│ │ ├── bdfdrivr.h
│ │ ├── bdferror.h
│ │ ├── bdflib.c
│ │ ├── module.mk
│ │ └── rules.mk
│ ├── bzip2/
│ │ ├── Jamfile
│ │ ├── ftbzip2.c
│ │ └── rules.mk
│ ├── cache/
│ │ ├── Jamfile
│ │ ├── ftcache.c
│ │ ├── ftcbasic.c
│ │ ├── ftccache.c
│ │ ├── ftccache.h
│ │ ├── ftccback.h
│ │ ├── ftccmap.c
│ │ ├── ftcerror.h
│ │ ├── ftcglyph.c
│ │ ├── ftcglyph.h
│ │ ├── ftcimage.c
│ │ ├── ftcimage.h
│ │ ├── ftcmanag.c
│ │ ├── ftcmanag.h
│ │ ├── ftcmru.c
│ │ ├── ftcmru.h
│ │ ├── ftcsbits.c
│ │ ├── ftcsbits.h
│ │ └── rules.mk
│ ├── cff/
│ │ ├── Jamfile
│ │ ├── cf2arrst.c
│ │ ├── cf2arrst.h
│ │ ├── cf2blues.c
│ │ ├── cf2blues.h
│ │ ├── cf2error.c
│ │ ├── cf2error.h
│ │ ├── cf2fixed.h
│ │ ├── cf2font.c
│ │ ├── cf2font.h
│ │ ├── cf2ft.c
│ │ ├── cf2ft.h
│ │ ├── cf2glue.h
│ │ ├── cf2hints.c
│ │ ├── cf2hints.h
│ │ ├── cf2intrp.c
│ │ ├── cf2intrp.h
│ │ ├── cf2read.c
│ │ ├── cf2read.h
│ │ ├── cf2stack.c
│ │ ├── cf2stack.h
│ │ ├── cf2types.h
│ │ ├── cff.c
│ │ ├── cffcmap.c
│ │ ├── cffcmap.h
│ │ ├── cffdrivr.c
│ │ ├── cffdrivr.h
│ │ ├── cfferrs.h
│ │ ├── cffgload.c
│ │ ├── cffgload.h
│ │ ├── cffload.c
│ │ ├── cffload.h
│ │ ├── cffobjs.c
│ │ ├── cffobjs.h
│ │ ├── cffparse.c
│ │ ├── cffparse.h
│ │ ├── cffpic.c
│ │ ├── cffpic.h
│ │ ├── cfftoken.h
│ │ ├── cfftypes.h
│ │ ├── module.mk
│ │ └── rules.mk
│ ├── cid/
│ │ ├── Jamfile
│ │ ├── ciderrs.h
│ │ ├── cidgload.c
│ │ ├── cidgload.h
│ │ ├── cidload.c
│ │ ├── cidload.h
│ │ ├── cidobjs.c
│ │ ├── cidobjs.h
│ │ ├── cidparse.c
│ │ ├── cidparse.h
│ │ ├── cidriver.c
│ │ ├── cidriver.h
│ │ ├── cidtoken.h
│ │ ├── module.mk
│ │ ├── rules.mk
│ │ └── type1cid.c
│ ├── gxvalid/
│ │ ├── Jamfile
│ │ ├── README
│ │ ├── gxvalid.c
│ │ ├── gxvalid.h
│ │ ├── gxvbsln.c
│ │ ├── gxvcommn.c
│ │ ├── gxvcommn.h
│ │ ├── gxverror.h
│ │ ├── gxvfeat.c
│ │ ├── gxvfeat.h
│ │ ├── gxvfgen.c
│ │ ├── gxvjust.c
│ │ ├── gxvkern.c
│ │ ├── gxvlcar.c
│ │ ├── gxvmod.c
│ │ ├── gxvmod.h
│ │ ├── gxvmort.c
│ │ ├── gxvmort.h
│ │ ├── gxvmort0.c
│ │ ├── gxvmort1.c
│ │ ├── gxvmort2.c
│ │ ├── gxvmort4.c
│ │ ├── gxvmort5.c
│ │ ├── gxvmorx.c
│ │ ├── gxvmorx.h
│ │ ├── gxvmorx0.c
│ │ ├── gxvmorx1.c
│ │ ├── gxvmorx2.c
│ │ ├── gxvmorx4.c
│ │ ├── gxvmorx5.c
│ │ ├── gxvopbd.c
│ │ ├── gxvprop.c
│ │ ├── gxvtrak.c
│ │ ├── module.mk
│ │ └── rules.mk
│ ├── gzip/
│ │ ├── Jamfile
│ │ ├── adler32.c
│ │ ├── ftgzip.c
│ │ ├── infblock.c
│ │ ├── infblock.h
│ │ ├── infcodes.c
│ │ ├── infcodes.h
│ │ ├── inffixed.h
│ │ ├── inflate.c
│ │ ├── inftrees.c
│ │ ├── inftrees.h
│ │ ├── infutil.c
│ │ ├── infutil.h
│ │ ├── rules.mk
│ │ ├── zconf.h
│ │ ├── zlib.h
│ │ ├── zutil.c
│ │ └── zutil.h
│ ├── lzw/
│ │ ├── Jamfile
│ │ ├── ftlzw.c
│ │ ├── ftzopen.c
│ │ ├── ftzopen.h
│ │ └── rules.mk
│ ├── otvalid/
│ │ ├── Jamfile
│ │ ├── module.mk
│ │ ├── otvalid.c
│ │ ├── otvalid.h
│ │ ├── otvbase.c
│ │ ├── otvcommn.c
│ │ ├── otvcommn.h
│ │ ├── otverror.h
│ │ ├── otvgdef.c
│ │ ├── otvgpos.c
│ │ ├── otvgpos.h
│ │ ├── otvgsub.c
│ │ ├── otvjstf.c
│ │ ├── otvmath.c
│ │ ├── otvmod.c
│ │ ├── otvmod.h
│ │ └── rules.mk
│ ├── pcf/
│ │ ├── Jamfile
│ │ ├── README
│ │ ├── module.mk
│ │ ├── pcf.c
│ │ ├── pcf.h
│ │ ├── pcfdrivr.c
│ │ ├── pcfdrivr.h
│ │ ├── pcferror.h
│ │ ├── pcfread.c
│ │ ├── pcfread.h
│ │ ├── pcfutil.c
│ │ ├── pcfutil.h
│ │ └── rules.mk
│ ├── pfr/
│ │ ├── Jamfile
│ │ ├── module.mk
│ │ ├── pfr.c
│ │ ├── pfrcmap.c
│ │ ├── pfrcmap.h
│ │ ├── pfrdrivr.c
│ │ ├── pfrdrivr.h
│ │ ├── pfrerror.h
│ │ ├── pfrgload.c
│ │ ├── pfrgload.h
│ │ ├── pfrload.c
│ │ ├── pfrload.h
│ │ ├── pfrobjs.c
│ │ ├── pfrobjs.h
│ │ ├── pfrsbit.c
│ │ ├── pfrsbit.h
│ │ ├── pfrtypes.h
│ │ └── rules.mk
│ ├── psaux/
│ │ ├── Jamfile
│ │ ├── afmparse.c
│ │ ├── afmparse.h
│ │ ├── module.mk
│ │ ├── psaux.c
│ │ ├── psauxerr.h
│ │ ├── psauxmod.c
│ │ ├── psauxmod.h
│ │ ├── psconv.c
│ │ ├── psconv.h
│ │ ├── psobjs.c
│ │ ├── psobjs.h
│ │ ├── rules.mk
│ │ ├── t1cmap.c
│ │ ├── t1cmap.h
│ │ ├── t1decode.c
│ │ └── t1decode.h
│ ├── pshinter/
│ │ ├── Jamfile
│ │ ├── module.mk
│ │ ├── pshalgo.c
│ │ ├── pshalgo.h
│ │ ├── pshglob.c
│ │ ├── pshglob.h
│ │ ├── pshinter.c
│ │ ├── pshmod.c
│ │ ├── pshmod.h
│ │ ├── pshnterr.h
│ │ ├── pshpic.c
│ │ ├── pshpic.h
│ │ ├── pshrec.c
│ │ ├── pshrec.h
│ │ └── rules.mk
│ ├── psnames/
│ │ ├── Jamfile
│ │ ├── module.mk
│ │ ├── psmodule.c
│ │ ├── psmodule.h
│ │ ├── psnamerr.h
│ │ ├── psnames.c
│ │ ├── pspic.c
│ │ ├── pspic.h
│ │ ├── pstables.h
│ │ └── rules.mk
│ ├── raster/
│ │ ├── Jamfile
│ │ ├── ftmisc.h
│ │ ├── ftraster.c
│ │ ├── ftraster.h
│ │ ├── ftrend1.c
│ │ ├── ftrend1.h
│ │ ├── module.mk
│ │ ├── raster.c
│ │ ├── rasterrs.h
│ │ ├── rastpic.c
│ │ ├── rastpic.h
│ │ └── rules.mk
│ ├── sfnt/
│ │ ├── Jamfile
│ │ ├── module.mk
│ │ ├── rules.mk
│ │ ├── sfdriver.c
│ │ ├── sfdriver.h
│ │ ├── sferrors.h
│ │ ├── sfnt.c
│ │ ├── sfntpic.c
│ │ ├── sfntpic.h
│ │ ├── sfobjs.c
│ │ ├── sfobjs.h
│ │ ├── ttbdf.c
│ │ ├── ttbdf.h
│ │ ├── ttcmap.c
│ │ ├── ttcmap.h
│ │ ├── ttcmapc.h
│ │ ├── ttkern.c
│ │ ├── ttkern.h
│ │ ├── ttload.c
│ │ ├── ttload.h
│ │ ├── ttmtx.c
│ │ ├── ttmtx.h
│ │ ├── ttpost.c
│ │ ├── ttpost.h
│ │ ├── ttsbit.c
│ │ ├── ttsbit.h
│ │ └── ttsbit0.c
│ ├── smooth/
│ │ ├── Jamfile
│ │ ├── ftgrays.c
│ │ ├── ftgrays.h
│ │ ├── ftsmerrs.h
│ │ ├── ftsmooth.c
│ │ ├── ftsmooth.h
│ │ ├── ftspic.c
│ │ ├── ftspic.h
│ │ ├── module.mk
│ │ ├── rules.mk
│ │ └── smooth.c
│ ├── tools/
│ │ ├── Jamfile
│ │ ├── apinames.c
│ │ ├── chktrcmp.py
│ │ ├── cordic.py
│ │ ├── docmaker/
│ │ │ ├── content.py
│ │ │ ├── docbeauty.py
│ │ │ ├── docmaker.py
│ │ │ ├── formatter.py
│ │ │ ├── sources.py
│ │ │ ├── tohtml.py
│ │ │ └── utils.py
│ │ ├── ftrandom/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ └── ftrandom.c
│ │ ├── glnames.py
│ │ ├── test_afm.c
│ │ ├── test_bbox.c
│ │ └── test_trig.c
│ ├── truetype/
│ │ ├── Jamfile
│ │ ├── module.mk
│ │ ├── rules.mk
│ │ ├── truetype.c
│ │ ├── ttdriver.c
│ │ ├── ttdriver.h
│ │ ├── tterrors.h
│ │ ├── ttgload.c
│ │ ├── ttgload.h
│ │ ├── ttgxvar.c
│ │ ├── ttgxvar.h
│ │ ├── ttinterp.c
│ │ ├── ttinterp.h
│ │ ├── ttobjs.c
│ │ ├── ttobjs.h
│ │ ├── ttpic.c
│ │ ├── ttpic.h
│ │ ├── ttpload.c
│ │ ├── ttpload.h
│ │ ├── ttsubpix.c
│ │ └── ttsubpix.h
│ ├── type1/
│ │ ├── Jamfile
│ │ ├── module.mk
│ │ ├── rules.mk
│ │ ├── t1afm.c
│ │ ├── t1afm.h
│ │ ├── t1driver.c
│ │ ├── t1driver.h
│ │ ├── t1errors.h
│ │ ├── t1gload.c
│ │ ├── t1gload.h
│ │ ├── t1load.c
│ │ ├── t1load.h
│ │ ├── t1objs.c
│ │ ├── t1objs.h
│ │ ├── t1parse.c
│ │ ├── t1parse.h
│ │ ├── t1tokens.h
│ │ └── type1.c
│ ├── type42/
│ │ ├── Jamfile
│ │ ├── module.mk
│ │ ├── rules.mk
│ │ ├── t42drivr.c
│ │ ├── t42drivr.h
│ │ ├── t42error.h
│ │ ├── t42objs.c
│ │ ├── t42objs.h
│ │ ├── t42parse.c
│ │ ├── t42parse.h
│ │ ├── t42types.h
│ │ └── type42.c
│ └── winfonts/
│ ├── Jamfile
│ ├── fnterrs.h
│ ├── module.mk
│ ├── rules.mk
│ ├── winfnt.c
│ └── winfnt.h
├── local.properties
├── open_codeblocks.bat
├── open_codeblocks_sdl.bat
├── open_qt_creator.bat
├── open_vscode.bat
└── settings.gradle
================================================
FILE CONTENTS
================================================
================================================
FILE: .gradle/5.1.1/gc.properties
================================================
================================================
FILE: .gradle/buildOutputCleanup/cache.properties
================================================
#Tue Mar 02 01:28:27 UTC 2021
gradle.version=5.1.1
================================================
FILE: .gradle/vcs-1/gc.properties
================================================
================================================
FILE: .idea/.gitignore
================================================
# Default ignored files
/shelf/
/workspace.xml
================================================
FILE: .idea/codeStyles/Project.xml
================================================
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<codeStyleSettings language="XML">
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
</indentOptions>
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>ANDROID_ATTRIBUTE_ORDER</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
</code_scheme>
</component>
================================================
FILE: .idea/compiler.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="11" />
</component>
</project>
================================================
FILE: .idea/encodings.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="PROJECT" charset="UTF-8" />
</component>
</project>
================================================
FILE: .idea/gradle.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="PLATFORM" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome" value="$USER_HOME$/.gradle/wrapper/dists/gradle-3.3-all/55gk2rcmfc6p2dg9u9ohc3hw9/gradle-3.3/bin" />
<option name="gradleJvm" value="1.8" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
</GradleProjectSettings>
</option>
</component>
</project>
================================================
FILE: .idea/is-Engine.iml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="is-Engine" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="java-gradle" name="Java-Gradle">
<configuration>
<option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
<option name="BUILDABLE" value="false" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
================================================
FILE: .idea/jarRepositories.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="Google" />
<option name="name" value="Google" />
<option name="url" value="https://maven.google.com/" />
</remote-repository>
<remote-repository>
<option name="id" value="BintrayJCenter" />
<option name="name" value="BintrayJCenter" />
<option name="url" value="https://jcenter.bintray.com/" />
</remote-repository>
</component>
</project>
================================================
FILE: .idea/misc.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
</project>
================================================
FILE: .idea/modules/app/is-Engine.app.iml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id=":app" external.linked.project.path="$MODULE_DIR$/../../../app" external.root.project.path="$MODULE_DIR$/../../.." external.system.id="GRADLE" external.system.module.group="is-Engine" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android-gradle" name="Android-Gradle">
<configuration>
<option name="GRADLE_PROJECT_PATH" value=":app" />
<option name="LAST_SUCCESSFUL_SYNC_AGP_VERSION" value="3.4.2" />
<option name="LAST_KNOWN_AGP_VERSION" value="3.4.2" />
</configuration>
</facet>
<facet type="native-android-gradle" name="Native-Android-Gradle">
<configuration>
<option name="SELECTED_ABI" />
<option name="SELECTED_VARIANT" />
</configuration>
</facet>
<facet type="android" name="Android">
<configuration>
<option name="SELECTED_BUILD_VARIANT" value="debug" />
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
<afterSyncTasks>
<task>generateDebugSources</task>
</afterSyncTasks>
<option name="ALLOW_USER_CONFIGURATION" value="false" />
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/../../../app/src/main/res;file://$MODULE_DIR$/../../../app/src/debug/res;file://$MODULE_DIR$/../../../app/build/generated/res/rs/debug;file://$MODULE_DIR$/../../../app/build/generated/res/resValues/debug" />
<option name="TEST_RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/../../../app/src/androidTest/res;file://$MODULE_DIR$/../../../app/src/androidTestDebug/res;file://$MODULE_DIR$/../../../app/build/generated/res/rs/androidTest/debug;file://$MODULE_DIR$/../../../app/build/generated/res/resValues/androidTest/debug" />
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
<output url="file://$MODULE_DIR$/../../../app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes" />
<output-test url="file://$MODULE_DIR$/../../../app/build/intermediates/javac/debugUnitTest/compileDebugUnitTestJavaWithJavac/classes" />
<exclude-output />
<content url="file://$MODULE_DIR$/../../../app">
<sourceFolder url="file://$MODULE_DIR$/../../../app/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/src/main/assets" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/src/main/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/res/resValues/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/source/apt/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/src/main/cpp" />
<excludeFolder url="file://$MODULE_DIR$/../../../app/.cxx" />
<excludeFolder url="file://$MODULE_DIR$/../../../app/.externalNativeBuild" />
<excludeFolder url="file://$MODULE_DIR$/../../../app/.gradle" />
<excludeFolder url="file://$MODULE_DIR$/../../../app/build" />
</content>
<content url="file://$MODULE_DIR$/../../../libs">
<sourceFolder url="file://$MODULE_DIR$/../../../libs" />
</content>
<orderEntry type="jdk" jdkName="Android API 30 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
================================================
FILE: .idea/modules/is-Engine.iml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="is-Engine" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="java-gradle" name="Java-Gradle">
<configuration>
<option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/../../build" />
<option name="BUILDABLE" value="false" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$/../..">
<excludeFolder url="file://$MODULE_DIR$/../../.gradle" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
================================================
FILE: .idea/modules.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/is-Engine.iml" filepath="$PROJECT_DIR$/.idea/is-Engine.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/app/is-Engine.app.iml" filepath="$PROJECT_DIR$/.idea/modules/app/is-Engine.app.iml" />
</modules>
</component>
</project>
================================================
FILE: .idea/runConfigurations.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
</set>
</option>
</component>
</project>
================================================
FILE: .idea/vcs.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/app/src/main/bin-web/_deps/freetype2-src" vcs="Git" />
<mapping directory="$PROJECT_DIR$/app/src/main/bin-web/_deps/glm-src" vcs="Git" />
<mapping directory="$PROJECT_DIR$/app/src/main/bin-web/_deps/libnyquist-src" vcs="Git" />
<mapping directory="$PROJECT_DIR$/app/src/main/bin-web/_deps/smk-src" vcs="Git" />
</component>
</project>
================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required (VERSION 3.1)
project(isengine)
set(ISENGINE_PC true) # This confirms that we are using is::Engine to develop on PC (Windows / Linux)
set(ISENGINE_MAIN_DIR "${CMAKE_CURRENT_SOURCE_DIR}/app/src/main")
set(ISENGINE_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/app/src/main/cpp")
set(ISENGINE_CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/app/src/main/cmake")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY bin)
# SFML on Windows OS
if (WIN32)
set (SFML_DIR "C:/SFML/lib/cmake/SFML")
set(SFML_STATIC_LIBRARIES TRUE)
# OpenAL lib
file(COPY "C:/SFML/bin/openal32.dll" DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
endif()
# Find SFML
find_package(SFML REQUIRED COMPONENTS system window graphics network audio)
include(${ISENGINE_CMAKE_DIR}/isengine.cmake)
include(${ISENGINE_CMAKE_DIR}/app_src.cmake)
# game resources files (image, sound, music, ...)
file(COPY ${ISENGINE_MAIN_DIR}/assets DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
add_executable(isengine
${isengine}
${app_src}
${ISENGINE_CMAKE_DIR}/resource.rc # application icon
)
target_include_directories(isengine PRIVATE include)
target_link_libraries(isengine sfml-system sfml-window sfml-graphics sfml-network sfml-audio)
================================================
FILE: LICENSE.md
================================================
# zlib license
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: README.md
================================================

----------------------------
# is::Engine (Infinity Solutions::Engine) 4.0.1
Open source C++ framework which uses the mechanisms of **SFML 2** and which also allows to develop with several libraries at the same time **(SDL 2, Emscripten)** in order to easily export your games / applications on the **Nintendo Switch, Web (HTML 5), Mobile** and **PC (Windows, Linux, macOS)**.
## Contents
- [Features](#features)
- [What's new in this version](#whats-new-in-this-version)
- [Extras](#extras)
- [Game Engine User Guide and Youtube Tutorial](#game-engine-user-guide-and-youtube-tutorial)
- [Example of a project created with the engine](#example-of-a-project-created-with-the-engine)
- [Hello Scene Example](#hello-scene-example)
- [Prerequisites](#prerequisites)
- [How to use is::Engine with the different development tools](#how-to-use-isengine-with-the-different-development-tools)
- [Description of the project structure](#description-of-the-project-structure)
- [How to update an is::Engine project](#how-to-update-an-isengine-project)
- [Special things to know about the engine](#special-things-to-know-about-the-engine)
- [How to activate the use of Admob](#how-to-activate-the-use-of-admob)
- [Contribute](#contribute)
##
[](https://www.sfml-dev.org) [](https://www.libsdl.org/)  [](https://github.com/erincatto/box2d) [](https://www.mapeditor.org) [](https://admob.google.com/) [](https://github.com/native-toolkit/tinyfiledialogs) [](https://visualstudio.microsoft.com/fr/vs/community/)
## Features
- Run SFML game / application on SDL 2 (Like an Emulator)
- Language manager (English and French language support by default)
- Scene System
- Automatic management of a window
- Multi support for development tools ([Nintendo-Switch](#-nintendo-switch),
[Android Studio](#-android-studio),
[Qt](#-qt),
[CMake](#-cmake),
[Emscripten](#-web-html-5---css-3),
[Visual Studio Code](#-visual-studio-code),
[Code::Block](#-codeblocks),
[Visual Studio](#-visual-studio)
- [is::LibConnect](#islibconnect)
- [Web Push Notification](#-web-push-notification)
- SDM (Step and Draw Manager)
- GSM (Game Sound Manager)
- GRM (Graphics Resources Manager)
- CFF (CMake Files Fusion)
- [TMX Lite](https://github.com/Is-Daouda/is-Engine-Example-Pack/tree/main/is-Engine-TMXLite)
- [TMX Loader (Old version)](https://github.com/Is-Daouda/is-Engine-TMXLoader)
- Entity system
- Object Event System
- [Button System](https://github.com/Is-Daouda/is-Engine-Example-Pack/tree/main/is-Engine-TinyFileDialog)
- Background System
- [Game Slider](https://github.com/Is-Daouda/is-Engine-Example-Pack/tree/main/is-Engine-GameSlider)
- [Sprite Animation](https://github.com/Is-Daouda/is-Engine-Example-Pack/tree/main/is-Engine-GameSlider)
- Basic collision engine
- [2D physic engine (Box 2D)](https://github.com/Is-Daouda/is-Engine-Example-Pack/tree/main/is-Engine-Box2D)
- Message Box System (Modifiable appearance via Sprites and Font)
- Dialog Box System (as for RPG games)
- [[Windows, Linux] Tiny File Dialogs to manage the dialog boxes of type: Message, File Save, Load File, Folder Selection](https://github.com/Is-Daouda/is-Engine-Example-Pack/tree/main/is-Engine-TinyFileDialog)
- [Game Configuration System (sound, music, language, keyboard key, file path, ...)](./app/src/main/cpp/app_src/config/GameConfig.h)
- Game Save System
- [[Android] Virtual Game Pad with 6 keys (multi directional cross and A - B button)](https://github.com/Is-Daouda/is-Engine-Example-Pack/tree/main/is-Engine-VirtualGamePad)
- [[Android] Virtual Game Pad Configuration (Adjust Position, transparency, ...)](https://github.com/Is-Daouda/is-Engine-Example-Pack/tree/main/is-Engine-VirtualGamePad)
- [[Android] Show Ad Banner](https://github.com/Is-Daouda/is-Engine-Example-Pack/tree/main/is-Engine-Admob)
- [[Android] Show Reward Video](https://github.com/Is-Daouda/is-Engine-Example-Pack/tree/main/is-Engine-Admob)
## What's new in this version
- [Using Visual Studio and SDL 2 to develop with SFML.](#-visual-studio-sdl-2)
- Bug Fixes
### 4.0.1
- Nintendo Switch Support
- The **[Demo](https://github.com/Is-Daouda/is-Engine-Demo)** and **[tutorials](https://github.com/Is-Daouda/is-Engine-Tutorial)** are compatible with the Nintendo Switch.
- Visual Studio 2022 can be used with all projects.
- Vertex Arrays support (Simulation with SDL 2).<br>
When you want to use a texture with vertices, you must set the optional parameter **useWithVertices** to **true** in the **loadFromFile()** function, which is necessary when using SFML with SDL2.
```cpp
sf::Texture texture;
texture.loadFromFile("image.png", true);
```
## Extras
- Here is a **Web Game : Arkanoid** created thanks to the **[game engine tutorial](https://youtu.be/wo2-ofNB7Hw)**.<br>
**It's a Web Game so it's playable on PC and mobile.**
[](https://is-daouda.github.io/)
- The engine comes with a **[Demo (2D Platform Game)](https://github.com/Is-Daouda/is-Engine-Demo)** that uses only the functions of the engine, in order to show you its power and how to use it. Now imagine what you can do when you use Box 2D and the other tools!
[](https://github.com/Is-Daouda/is-Engine-Demo)
- [Example Pack](https://github.com/Is-Daouda/is-Engine-Example-Pack) that show how to use the various features of the game engine.
## Game Engine User Guide and Youtube Tutorial
- [English version](./doc/isEngine_api_doc_eng.html)
- [French version](./doc/isEngine_api_doc_fr.html)
- [Youtube tutorial : How to import an SFML project into is::Engine](https://youtu.be/x_YQLHoPMbc)
- [Youtube tutorial : How to create a game (Arkanoid) with the game engine](https://youtu.be/wo2-ofNB7Hw)
## Example of a project created with the engine
- [I Can Transform](https://www.gamepix.com/play/i-can-transform)
- [GravytX The Gravytoid](https://www.gamepix.com/play/Gravytx-the-gravytoid)
## Hello Scene Example
Here is an example code of a Scene (the place where the game objects come to life).
**In less than 50 lines of code, the engine allows to:**
- Change the language of the game (English / French)
- Display an RPG type message with interaction
- Animate an **[object](./app/src/main/cpp/app_src/objects/HelloWorld.h)** with the possibility of interacting with it (by clicking / touching it)
- Load resources (Textures, Music)
- Play music
- Display a background that scrolls vertically and horizontally with a speed
- Manages the display depth of each object
- Automatically manages the game window (closing confirmation, events, ...)
- Change the background color of the window (scene color)
```cpp
class HelloScene : public is::GameDisplay {
public:
HelloScene(is::GameSystemExtended &gameSysExt):
GameDisplay(gameSysExt, sf::Color::White /* => scene color*/) {}
void loadResources() {
m_gameSysExt.m_gameLanguage = is::lang::ENGLISH; // set default game language
// uncomment to change English language in French
// m_gameSysExt.m_gameLanguage = is::lang::FRANCAIS;
// load font and texture
GameDisplay::loadParentResources(); // allows to load system resource (very important never forgot to call him)
GRMaddTexture("hello_world", is::GameConfig::SPRITES_DIR + "hello_world.png");
auto &texBg = GRMaddTexture("background", is::GameConfig::TILES_DIR + "background.png");
auto &texDialog = GRMaddTexture("dialog_box", is::GameConfig::GUI_DIR + "dialog_box.png");
// add a background to the position x = 0, y = 0 which will fill the scene and which will be scrolled (scrolling speed = 0.5)
SDMaddSceneObject(std::make_shared<is::Background>(texBg, 0.f, 0.f, this, 0.5f, -0.5f, false, false));
// add an object at position x = 0, y = 0 which will be updated and displayed in the scene
SDMaddSceneObject(std::make_shared<HelloWorld>(0.f, 0.f, this));
// add RPG style game dialog
auto gameDialog = std::make_shared<is::GameDialog>(texDialog, GRMgetFont("font_msg"), this);
gameDialog->setDepth(-2); // the display depth (make it appear on all objects. The object with the smallest value appears on the others)
gameDialog->setDialog(is::GameDialog::DialogIndex::DIALOG_HELLO); // set the corresponding dialog (See GameDialog.h and GameLanguage.h for more details on creating a message for dialogue)
SDMaddSceneObject(gameDialog);
GSMaddSound("game_music", is::GameConfig::MUSIC_DIR + "game_music.wav"); // add music
GSMplaySound("game_music"); // play music
}
};
```
## Prerequisites
- [SFML Library (2.4 +)](https://www.sfml-dev.org/download.php)
- [SDL 2 (2.0.12 +)]()
- GCC Compiler (7.3 +)
---
## How to use is::Engine with the different development tools:
##  Nintendo Switch
This project uses the template of **[carstene1ns](https://github.com/carstene1ns/switch-sdl2-demo)**.
**1. Prerequisites**
- DevkitPro with MSYS2
##  Very important
- Not affiliated with Nintendo.
- All your source files (only .cpp or .c) must be located in the root of the **[cpp](./app/src/main/cpp/)** folder otherwise the compiler will not find them!
- The Switch uses the same touch functions as Android.
- The engine has been configured so that you can use the PC functions **keyIsPressed(is::GameConfig::KEY_UP)** or **keyIsPressed(is::GameConfig::KEY_A), etc.** on the Switch.
- Some SFML functions like: **Render Texture** are not yet supported. These additions will be made soon!
**2. Installation**
##### Windows
1. Download [devkitPro](https://github.com/devkitPro/installer/releases/download/v3.0.3/devkitProUpdater-3.0.3.exe) and install it in **C:/devkitPro/**.
2. During installation:
- Check "devkitA64" (for Switch)
- Check "MSYS2 Base System"
- Check "portlibs" if available
3. Once installed, open the MSYS2 terminal (C:\devkitPro\msys2\msys2.exe)
4. Enter these commands in the console to download libraries:
```bash
pacman -Syu
pacman -S switch-sdl2 switch-sdl2_image switch-sdl2_mixer switch-sdl2_net switch-sdl2_ttf
```
6. Move the **is-Engine** project to your **C:/ (C:/is-Engine)**.
7. Run the file **[copy_assets.cmd](./app/src/main/copy_assets.cmd)** so that it transfers your resources which are in the **[assets](./app/src/main/assets) folder** to romfs (this folder will be created when executing the copy_assets.cmd file) necessary for the compilation.
8. Enter these commands in the console:
```bash
cd c:/is-Engine/app/src/main/
make
```
If all goes well you will have a **main.nro file** in the [main](./app/src/main/) folder that you can launch via Nintendo Switch emulators (Yuzu, Ryujinx, ...).

**Enjoy!**
---
##  Android Studio
This project uses the template of **[Georgik](https://github.com/georgik/sdl2-android-example)** and **[Lauchmelder23](https://github.com/Lauchmelder23/SDLU)**.
**1. Prerequisites**
- Android Studio (4.0.1 +)
- Android SDK and NDK (r20b)
##  Very important
- On Android SFML games run with SDL library. If you want to use SDL functions in your source code, use the **IS_ENGINE_SDL_2 macro**.
- The audio format supported at the moment is **.WAV**
- Some SFML functions like: **Render Texture** are not yet supported. These additions will be made soon!
- **Your help to improve the engine will be welcome!**
- [Please read this](#Contribute).
**2. Installation**
##### Windows
1. Download [Android Studio 3.x](https://developer.android.com/studio) (recommended version 4.0.1).
2. Download the [Android SDK](https://developer.android.com/studio) and install it in **C:/Android/SDK**.
3. Download [Android NDK android-ndk-r20b-windows-x86_64](https://developer.android.com/ndk/downloads/older_releases.html) and create a folder on your disk as follows **C:/Android/NDK** then extract the contents of the zip in this folder.
4. Set the environment variable **ANDROID_NDK** with the path **C:/Android/NDK**.
6. Move the **is-Engine** project to your **C:/ (C:/is-Engine)**.
7. Open the **is-Engine** folder with **Android Studio** and start the compilation.
If all goes well you will have a **Hello World Screen** on your **Android emulator**.

**Enjoy!**
**2. How to replace the package name (com.author.isengine) of the application**
- Follow these steps carefully. A single error and the application will crash wonderfully when launching on emulator / mobile!
1. Replace this line in the [gradle.app](./app/build.gradle#L32) file.
2. Replace this line in the [AndroidManifest.xml](./app/src/main/AndroidManifest.xml#L3) file.
3. Replace this line in the [SDLActivity.java](./app/src/main/java/com/author/isengine/SDLActivity.java#L1) file.
4. Replace the abresence **[com/author/isengine](./app/src/main/java/com/author/isengine/)** in which is the file [SDLActivity.java](./app/src/main/java/com/author/isengine/SDLActivity.java#L1) that you have just modified at the top by yours (example **com/yourname/yourgamename**).
5. Replace this part **..._ com_author_isengine _...** of line [20](./app/src/main/cpp/SDL_android_main.c#L20) and [23](./app/src/main/cpp/SDL_android_main.c#L23) in the file [SDL_android_main.c](./app/src/main/cpp/SDL_android_main.c#L20) by yours (example **com_yourname_yourgamename)**.
6. Replace this part **..._ com_author_isengine _...** on the 23 lines of the file [SDL_android.c](./libs/SDL2/src/core/android/SDL_android.c#L156) by yours (example **com_yourname_yourgamename**).
- **I strongly advise you to use the replace function of your text editor** (on Notepad++ we use Ctrl + F + Replace option).
7. Replace this line in the [GameConfig.h](./app/src/main/cpp/app_src/config/GameConfig.h#L148) file.
- Note that this part is only required if you want to use the game engine data save / load functions.
**3. Adding Source Files**
- So that Android Studio can detect your source files (.cpp) you must include them in the **[app_src.cmake](./app/src/main/cmake/app_src.cmake) or [isengine.cmake](./app/src/main/cmake/isengine.cmake)** file which is located in the **[is-Engine/app/src/main/cmake](./app/src/main/cmake/)** location.
**4. Application location**
- The application can be found in **is-Engine/app/build/outputs/apk**.
---
##  Web (HTML 5 - CSS 3)
If you want to make your SFML project compatible with the Web (Be able to run it in a web browser), please watch this **[video tutorial](https://youtu.be/x_YQLHoPMbc)**.<br>
 Now you can put texts and geometric shapes (Rectangle, Circle) in Outline on the Web **(It was not available in the old versions)**!
**1. Prerequisites**
- Emscripen (1.39.7 +)
- Python (3.8.1 +)
- CMake (3.1 +)
- Java
- SDL 2 **(It is downloaded with the internet connection when executing commands)**
**2. Installation**
##### Windows
1. Download [Emscripten](https://github.com/emscripten-core/emsdk) and install it in **C:/emsdk**, define its path in the environment variable **Path**
2. Download [Python](https://www.python.org/downloads/release/python-381/) after installation, define its path in the environment variable **Path**
3. Download [CMake](https://cmake.org/download/) after installation, define its path in the environment variable **Path**
4. Download [Java](https://www.oracle.com/java/technologies/javase-jre8-downloads.html) after installation, define its path in the environment variable **Path**
5. Move the **is-Engine** project to your **C:/ (C:/is-Engine)**.
6. Execute this command :
```bash
cd c:/is-Engine/app/src/main
mkdir bin-web
cd bin-web
emsdk activate latest
emcmake cmake ..
make -j3
python -m http.server
```
7. Visit this url **localhost:8000** in your **Web Browser**.
If all goes well you will have a **Hello World Screen** on your **Web Browser**.

**Enjoy!**
**3. Adding Source Files**
- In order for CMake to detect your source files (.cpp) you must include them in the **[app_src.cmake](./app/src/main/cmake/app_src.cmake) or [isengine.cmake](./app/src/main/cmake/isengine.cmake)** file which is located in the **[is-Engine/app/src/main/cmake](./app/src/main/cmake/)** location.
##  Very important
- **is::Engine** works on the Web thanks to **SDL 2**.
- These libraries: **TMXLite, TMXLoader, TinyFileDialog** are not supported in the web version of is::Engine.
- If you want to use SDL functions in your source code, use the **IS_ENGINE_SDL_2 macro**.
- Note that some SFML functions like: **Render Texture** are not yet supported. These additions will be made soon!
---
##  Web Push Notification
- If you want to make your SFML project compatible with the Web (Be able to run it in a web browser), please watch this **[video tutorial](https://youtu.be/x_YQLHoPMbc)**.
- <br>
By default the web push notification has been disabled. Because to make it work you must have an internet connection. In case there is no internet access and it is not well launched, it can prevent the execution of the web program.<br>
To enable it, please modify these lines in **[index.html](./app/src/main/web/index.html)** : **[7](./app/src/main/web/index.html#L7), [23](./app/src/main/web/index.html#L23), [108](./app/src/main/web/index.html#L108)**
#### Installation
- This shows how to test the push notification. Note that normally to use it, you have to associate it with a database (backend). But here we will use it with the **Push Companion** site **(It will serve as a backend for us!)**.
- For more information on Push Notification please see this [page](https://developers.google.com/web/fundamentals/codelabs/push-notifications).
1. Web browser ([preferably Google Chrome](https://www.google.fr/chrome/?brand=CHBD&brand=XXVF&gclid=EAIaIQobChMI7a315b6c7gIVEKSyCh0O8QJjEAAYASABEgJfd_D_BwE&gclsrc=aw.ds))
2. [Web server for Chrome](https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb) or your own web server.
3. Define the **Application Server Keys** in the [main.js](./app/src/main/web/scripts/main.js#L25) file. You can get this keys (We will use the public key) [here](https://web-push-codelab.glitch.me/).
4. Launch the **[web](./app/src/main/web)** or **bin-web folder (generate using emscripten)** via the web server.
5. Click on the **"Enable Push Messaging" button** to activate the sending of Push Notifications. Once done you will have a code (which can be used to send you push notifications).
6. Go to this [site](https://web-push-codelab.glitch.me/) and enter the code in the **"Subscription to Send To" text field** followed by your message in **"Text to Send" text field**. Click on the **"Send Push Message" button**.
7. If all goes well you will have a push notification followed by the message you sent in the console (development tool) of your browser.

#### Configure the Push Notification
1. To change the **information (title, details, ...)** of the Push Notification you must refer to the [sw.js](./app/src/main/web/sw.js#L28) file.
2. To change the **Push Notification image** files, refer to the [images](./app/src/main/web/images) folder.
3. To change the **page that is launched** when you click on the notification, refer to the [sw.js](./app/src/main/web/sw.js#L45) file.
---
##  CMake
**1. Prerequisites**
- CMake (3.1 +)
**2. Installation**
#### Windows
1. Compile SFML with CMake to have **static libraries** and put on **C:/ (C:/SFML)**.
2. Move the **is-Engine** project to your **C:/ (C:/is-Engine)**.
3. Execute this command :
```bash
cmake -S "C:/is-Engine" -B "C:/build"
cd build
make
```
#### Linux
1. Install SFML 2.5.1 on your machine.
2. Move the **is-Engine** project to **/home/user/ (/home/user/is-Engine)**.
3. Execute this command :
```bash
sudo cmake -S "is-Engine" -B "build"
cd build
sudo make
```
**3. After installation**
- You will have a **bin** folder in which the engine demo is located.
**5. Adding Source Files**
- In order for CMake to detect your source files (.cpp) you must include them in the **[app_src.cmake](./app/src/main/cmake/app_src.cmake) or [isengine.cmake](./app/src/main/cmake/isengine.cmake)** file which is located in the **[is-Engine/app/src/main/cmake](./app/src/main/cmake/)** location.
---
##  Visual Studio
**1. Installation**
#### Windows
Download Visual Studio Community 2022 [here](https://visualstudio.microsoft.com/fr/vs/community/) and install it.
**2. Opening the project with the IDE:**
#### Windows
Open the file **vs-sfml.sln** in the location **[is-Engine/app/src/main/](./app/src/main/)**
---
##  Visual Studio SDL 2
**1. Installation**
#### Windows
1. Download Visual Studio Community 2022 [here](https://visualstudio.microsoft.com/fr/vs/community/) and install it.
2. Download this [file](https://github.com/GlowCheese/SDL2-Setup/releases/download/v1.1.0/SDL2.Compiler.zip) and extract it to C:\ (**the location of the folder must be C:\SDL2-2.26.3. Otherwise it will not work.**).
**2. Opening the project with the IDE:**
#### Windows
Open the file **SDL2_SFML.sln** in the location **[is-Engine/app/src/main/](./app/src/main/)**
---
##  Qt
**1. Installation**
#### Windows
1. Download Qt 5.12.9 MinGW [here](http://qtproject.mirror.liquidtelecom.com/archive/qt/5.12/5.12.9/qt-opensource-windows-x86-5.12.9.exe) and install it.
2. Download this [version of SFML](https://github.com/Is-Daouda/SFML_Qt_MinGW) already compiled for Qt 5.12.9 and extract it in **C:/ (C:/SFML_Qt_MinGW)**.
**2. Opening the project with the IDE:**
#### Windows
1. Run the file **open_qt_creator.bat** in the main directory *(Make sure you have included the path to the Qt executable in your PATH environment variable)*.
2. Or open the file **is-Engine.pro** in the location **[is-Engine/app/src/main/qt](./app/src/main/qt/)**
**3. Executable location**
- The compiler files can be found in **is-Engine/app/src/main/bin-Qt**.
---
##  Visual Studio Code
This project uses the template of **andrew-r-king**. For more information on this template [click here](https://github.com/andrew-r-king/sfml-vscode-boilerplate).
**1. Prerequisites**
#### Windows
- [SFML 2.5.1 - GCC 7.3.0 MinGW (DW2) 32-bit](https://www.sfml-dev.org/files/SFML-2.5.1-windows-gcc-7.3.0-mingw-32-bit.zip)
- [GCC 7.3.0 MinGW (DW2) 32-bit](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/7.3.0/threads-posix/dwarf/i686-7.3.0-release-posix-dwarf-rt_v5-rev0.7z/download)
- [Git Bash](https://git-scm.com/downloads)
#### Linux
- Get SFML 2.5.1 from your distro if it has it, or compile from source.
**2. Installation**
#### Windows
1. Download & Extract SFML 2.5.1 to **C:/SFML/** where the bin/lib/include folders are contained within.
2. Download & Extract MinGW to **C:/mingw32/** where the bin/lib/include folders are contained within.
#### Linux
1. Ensure the GCC Toolchain is installed (**sudo apt install build-essential**).
2. Run **sudo apt install libsfml-dev**. The SFML version you got will vary depending on the distro. 2.5.1 is included in [Ubuntu 19.04 Disco Dingo](http://cdimage.ubuntu.com/daily-live/current/HEADER.html) for example.
**3. Opening the project with the IDE:**
- Rename the **Makefile-vscode** file to **Makefile** in **[is-Engine/app/src/main/](./app/src/main/)**.
#### Windows
1. Run the file **open_vscode.bat** in the main directory.
#### Linux
2. Execute this command in the main directory:
```bash
code -n "./app/src/main"
```
#### All
3. Or open the **[is-Engine/app/src/main](./app/src/main/)** folder with **Solution Explorer**.
**4. Executable location**
- The compiler files can be found in **is-Engine/app/src/main/bin-vscode**.
---
##  Code::Blocks
**1. Installation**
#### Windows
1. Download Code::Blocks 20.03 MinGW [here](https://sourceforge.net/projects/codeblocks/files/Binaries/20.03/Windows/codeblocks-20.03mingw-setup.exe/download) and install it.
2. Download this [version of SFML](https://github.com/Is-Daouda/SFML_CB_MinGW) already compiled for Code::Blocks 20.03 and extract it in **C:/ (C:/SFML_CB_MinGW)**.
#### Linux
1. Download Code::Blocks 20.03 and install it.
2. Ensure the GCC Toolchain is installed (**sudo apt install build-essential**).
3. Run **sudo apt install libsfml-dev**. The SFML version you got will vary depending on the distro. 2.5.1 is included in [Ubuntu 19.04 Disco Dingo](http://cdimage.ubuntu.com/daily-live/current/HEADER.html) for example.
**2. Opening the project with the IDE:**
#### Windows
1. Run the file **open_codeblocks.bat** in the main directory *(Make sure you have included the path to the Code::Blocks executable in your PATH environment variable)*.
2. Or open the file **is-Engine-windows.cbp** in the location **[is-Engine/app/src/main](./app/src/main/)**
#### Linux
1. Execute this command in the main directory:
```bash
codeblocks "./app/src/main/is-Engine-linux.cbp"
```
2. Or open the file **is-Engine-linux.cbp** in the location **[is-Engine/app/src/main](./app/src/main/)**.
**3. Executable location**
- The compiler files can be found in **is-Engine/app/src/main/bin-codeblocks**.
---
##  Develop SFML games with SDL 2
**1. Installation**
#### Windows
1. Download Code::Blocks 20.03 MinGW [here](https://sourceforge.net/projects/codeblocks/files/Binaries/20.03/Windows/codeblocks-20.03mingw-setup.exe/download) and install it.
2. Download this [version of SDL 2](https://github.com/Is-Daouda/SDL2) and extract it in **C:/ (C:/SDL2)**.
3. Put the **.dll files** which is in the **bin** folder of SDL2 in the **[main](./app/src/main/)** folder.
#### Linux
1. Download Code::Blocks 20.03 and install it.
2. Ensure the GCC Toolchain is installed (**sudo apt install build-essential**).
3. Run **sudo apt install libsdl2-2.0-0 libsdl2-gfx-1.0-0 libsdl2-image-2.0-0 libsdl2-mixer-2.0-0 libsdl2-net-2.0-0 libsdl2-ttf-2.0-0** to install all SDL 2 libraries.
**2. Opening the project with the IDE:**
#### Windows
1. Run the file **open_codeblocks_sdl.bat** in the main directory *(Make sure you have included the path to the Code::Blocks executable in your PATH environment variable)*.
2. Or open the file **is-Engine-windows-SDL2.cbp** in the location **[is-Engine/app/src/main](./app/src/main/)**
#### Linux
1. Execute this command in the main directory:
```bash
codeblocks "./app/src/main/is-Engine-linux-SDL2.cbp"
```
2. Or open the file **is-Engine-linux-SDL2.cbp** in the location **[is-Engine/app/src/main](./app/src/main/)**.
**3. Executable location**
- The compiler files can be found in **is-Engine/app/src/main/bin-codeblocks**.
##  Very important
- If you want to use SDL functions in your source code, use the **IS_ENGINE_SDL_2 macro**.
- Note that some SFML functions like: **Render Texture** are not yet supported. These additions will be made soon!
---
##  Change application icon:
#### Nintendo Switch
- To change the icon of the application you must go to the location **[is-Engine/app/src/main/](./app/src/main/)**.
#### Android
- To change the icon of the application you must go to the location **[is-Engine/app/src/main/res](./app/src/main/res/)** replace all the images (PNG) which are in the **drawable** subfolders.
#### Web (HTML 5 - CSS 3)
- To change the icon of the application you must go to the location **[is-Engine/app/src/main/web](./app/src/main/web/)**.
#### Windows
- To change the icon of the application you must go to the location **[is-Engine/app/src/main/env/windows](./app/src/main/env/windows)** replace all the images **(Attention CMake uses the same resources).**
#### Linux
- To change the icon of the application you must go to the location **[is-Engine/app/src/main/env/linux](./app/src/main/env/linux)**.
---
## Description of the project structure:

----------------------------
- The source files of the project can be found in the **[is-Engine/app/src/main/cpp](./app/src/main/cpp/)** location.
#### 1. [main.cpp](./app/src/main/cpp/main.cpp) file
Contains the entry point of the program, inside there are two instructions :
- `game.play()`: Launches the engine rendering loop which allows to manage the introduction screen, main menu, level and game over.
- `game.basicSFMLmain()` (disabled by default): Launches the display of a classic SFML window. The implementation is in the **[basicSFMLmain.cpp](./app/src/main/cpp/basicSFMLmain.cpp)** file. *Very useful if you already have a project under development and you want to associate it with the engine. You can also use it to implement your own components to the engine.*
----------------------------
#### 2. [app_src](./app/src/main/cpp/app_src/) folder
Contains the source code of the game.
Description of these sub-directories:
- **[activity](./app/src/main/cpp/app_src/activity/)** : Contains the **[Activity](./app/src/main/cpp/app_src/activity/GameActivity.h)** class which allows the interaction of the different scenes of the game.
- **[config](./app/src/main/cpp/app_src/config/)** : Contains the **[GameConfig.h](./app/src/main/cpp/app_src/config/GameConfig.h)** file which allows to define the general parameters of the game. It also contains the file **[ExtraConfig.h](./app/src/main/cpp/app_src/config/ExtraConfig.h)** which allows to activate / deactivate certain engine functionality (Engine optimization, SDM, Admob, Main Render Loop, ...).
- **[gamesystem_ext](./app/src/main/cpp/app_src/gamesystem_ext/)** : Contains **[GameSystemExtended](./app/src/main/cpp/app_src/gamesystem_ext/GameSystemExtended.h)** a class derived from **[GameSystem](./app/src/main/cpp/isEngine/system/function/GameSystem.h)** which allows to manipulate game data (save, load, ...).
- **[language](./app/src/main/cpp/app_src/language/)** : Contains the **[GameLanguage.h](./app/src/main/cpp/app_src/language/GameLanguage.h)** file which allows to manage everything related to game languages.
- **[levels](./app/src/main/cpp/app_src/levels/)** : Contains game levels and the **[Level.h](./app/src/main/cpp/app_src/levels/Level.h)** file which allows to integrate them into the game.
- **[objects](./app/src/main/cpp/app_src/objects/)** : Contains the objects that will be used in the different scenes.
- **[scenes](./app/src/main/cpp/app_src/scenes/)** : Contains the different scenes of the game (Introduction, Main menu, ...).
----------------------------
#### 3. [assets](./app/src/main/assets/) folder
Contains game resource files (music, sound sfx, image, ...)
----------------------------
#### 4. [isEngine](./app/src/main/cpp/isEngine/) folder
Contains the source code of the game engine
---
## Special things to know about the engine
### is::LibConnect
With the is::LibConnect you can write code for a specific library. Here is how to do it:
```cpp
sf::Text text;
text.setString(
// on PC (Windows / Linux)
#if define(IS_ENGINE_SFML)
"We use SFML 2 library"
// When we develop for the Nintendo Switch
#elif define(IS_ENGINE_SWITCH)
"SFML 2 on Switch"
// on Android or when you use SDL to create SFML games on PC (only for Code::Block at the moment)
#elif define(IS_ENGINE_SDL_2)
"Run SFML 2 with SDL 2"
// When we develop for the web (HTML 5) with Emscripten
#elif define(IS_ENGINE_HTML_5)
"SFML 2 on Web"
#endif
);
```
#### If you have discovered another way to use the game engine, don't hesitate to share it! We will put it in this Special section so that other people can benefit from it!
---
## How to update an is::Engine project
1. First of all the part of is::Engine that changes most often during updates is the [isEngine](./app/src/main/cpp/isEngine/) folder. But it also happens that these files can be modified:
- [GameActivity.h](./app/src/main/cpp/app_src/activity/GameActivity.h)
- [GameConfig.h](./app/src/main/cpp/app_src/language/GameLanguage.h)
- [ExtraConfig.h](./app/src/main/cpp/app_src/config/ExtraConfig.h)
- [GameSystemExtended.h](./app/src/main/cpp/app_src/gamesystem_ext/GameSystemExtended.h)
- [basicSFMLmain.cpp](./app/src/main/cpp/basicSFMLmain.cpp)
- [GameLanguage.h](./app/src/main/cpp/app_src/language/GameLanguage.h)
- And the files which is in [cmake](./app/src/main/cmake) and [web](./app/src/main/web) folder.
-  **So watch them carefully in case you encounter any errors during migration!**
2. To update your old project with a new version of is::Engine: the files (.h and .cpp) you need to move are in [objects](./app/src/main/cpp/app_src/objects/) and [scenes](./app/src/main/cpp/app_src/scenes/). **Note that these folders never change whatever the version!**
---
## How to activate the use of Admob?
Coming soon!
---
## Contribute
- If you want to participate in the development of the project to help me improve the engine, please note that you are welcome! Together we go further!
- One of the objectives of this project is to create a large community that can work on the engine to allow many people around the world to easily realize their dream games / applications!
## Contacts
* For any help please contact me on my [email address](mailto:isdaouda.n@gmail.com)
* You can follow me on Twitter for more informations on my activities [@Is Daouda Games](https://twitter.com/IsDaouda_Games)
================================================
FILE: app/CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.4.1)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2/include
# SDL_internal.h is located in src required by SDL_android_main.c bridge
${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2/src
${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2_image/include
${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2_gfx/include
${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2_mixer/include
${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2_ttf/include
)
set(ISENGINE_ANDROID true) # This confirms that we are using is::Engine to develop on Android
set(ISENGINE_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp")
set(ISENGINE_CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/main/cmake")
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2/ ${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2_image/ ${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2_image)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2_gfx/ ${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2_gfx)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2_mixer/ ${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2_mixer)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2_ttf/ ${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2_ttf)
#include_directories(${FIREBASE_INCLUDE_DIR})
#link_directories("${FIREBASE_LIBRARY_DIR}${ANDROID_ABI}/c++/")
include(${ISENGINE_CMAKE_DIR}/isengine.cmake)
include(${ISENGINE_CMAKE_DIR}/app_src.cmake)
add_library(
isengine
SHARED
# Provides a relative path to your source file(s).
${isengine}
${app_src}
)
find_library( # Sets the name of the path variable.
log-lib
# Specifies the name of the NDK library that
# you want CMake to locate.
log )
target_link_libraries( # Specifies the target library.
isengine
SDL2
SDL2_image
SDL2_gfx
SDL2_mixer
SDL2_ttf
#admob
#app
${log-lib} )
================================================
FILE: app/build.gradle
================================================
buildscript {
repositories {
google()
mavenLocal()
maven {url 'https://maven.google.com'}
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
//classpath 'com.google.gms:google-services:4.0.1'
}
}
apply plugin: 'com.android.application'
/*
def ndkDir = System.getenv("ANDROID_NDK")
def propertiesFile = project.rootProject.file('local.properties')
if (propertiesFile.exists()) {
Properties properties = new Properties()
properties.load(propertiesFile.newDataInputStream())
ndkDir = properties.getProperty('ndk.dir')
}
*/
android {
compileSdkVersion 30
buildToolsVersion '28.0.3'
defaultConfig {
applicationId = 'com.author.isengine'
//Replace this with your real package name (e.g. com.StudioName.GameName)
minSdkVersion 19
targetSdkVersion 30
versionCode 1
versionName "1.0"
//multiDexEnabled true
externalNativeBuild {
cmake {
cppFlags "-std=c++1z -std=c++14 -std=c++17 -frtti -fexceptions"
arguments "-DANDROID_STL=c++_shared",
"-DANDROID_TOOLCHAIN=clang" //,
//"-DFIREBASE_INCLUDE_DIR=${ndkDir}/sources/firebase_cpp_sdk/include",
//"-DFIREBASE_LIBRARY_DIR=${ndkDir}/sources/firebase_cpp_sdk/libs/android/"
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'
}
}
}
buildTypes {
debug {
minifyEnabled false
jniDebuggable true
debuggable false
}
release {
minifyEnabled = false
proguardFiles.add(file('proguard-rules.txt'))
//proguardFile file("${ndkDir}/sources/firebase_cpp_sdk/libs/android/app.pro")
//proguardFile file("${ndkDir}/sources/firebase_cpp_sdk/libs/android/admob.pro")
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
version "3.10.2"
}
}
/*sourceSets {
main {
// let gradle pack the shared library into apk
jniLibs.srcDirs = [
"${ndkDir}/sources/firebase_cpp_sdk/libs/android/"
]
}
}*/
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
//implementation 'com.android.support:multidex:1.0.3'
}
================================================
FILE: app/src/main/.vs/vs-sfml/v17/DocumentLayout.json
================================================
{
"Version": 1,
"WorkspaceRootPath": "C:\\is-Engine\\app\\src\\main\\",
"Documents": [],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": []
}
]
}
================================================
FILE: app/src/main/.vs/vs-sfml/v17/ipch/AutoPCH/ee33401603bb6f9/HELLOSCENE.ipch
================================================
[File too large to display: 72.1 MB]
================================================
FILE: app/src/main/.vs/vs-sfml/v17/ipch/AutoPCH/f64c3c32af64e908/BASICSFMLMAIN.ipch
================================================
[File too large to display: 77.6 MB]
================================================
FILE: app/src/main/.vscode/_keybindings.json
================================================
// Place your key bindings in this file to overwrite the defaults
[
{
"key": "f8",
"command": "-editor.action.marker.next",
"when": "editorFocus && !editorReadonly"
},
{
"key": "f9",
"command": "-editor.debug.action.toggleBreakpoint",
"when": "editorTextFocus"
},
{
"key": "f10",
"command": "-workbench.action.debug.stepOver",
"when": "inDebugMode"
},
{
"key": "shift+f8",
"command": "-editor.action.marker.prev",
"when": "editorFocus && !editorReadonly"
},
{
"key": "shift+f9",
"command": "-editor.debug.action.toggleInlineBreakpoint",
"when": "editorTextFocus"
},
{
"key": "shift+f10",
"command": "-editor.action.showContextMenu",
"when": "editorTextFocus"
},
{
"key": "f8",
"command": "workbench.action.debug.selectandstart"
},
{
"key": "f9",
"command": "workbench.action.tasks.runTask",
"args": "Build & Run: Release"
},
{
"key": "shift+f9",
"command": "workbench.action.tasks.runTask",
"args": "Run: Release"
},
{
"key": "f10",
"command": "workbench.action.tasks.runTask",
"args": "Build & Run: Debug"
},
{
"key": "shift+f10",
"command": "workbench.action.tasks.runTask",
"args": "Run: Debug"
},
]
================================================
FILE: app/src/main/.vscode/c_cpp_properties.json
================================================
{
"configurations": [
{
"name": "Linux",
"intelliSenseMode": "gcc-x64",
"includePath": [
"${workspaceFolder}/cpp",
"${workspaceFolder}/lib",
"${workspaceFolder}/test",
"~/SFML/include",
"/usr/local/include/**",
"/usr/include/**"
],
"defines": [
"_DEBUG"
],
"cStandard": "c11",
"cppStandard": "c++17",
"forcedInclude": [
"${workspaceFolder}/cpp/PCH.hpp"
]
},
{
"name": "Mac",
"intelliSenseMode": "clang-x64",
"compilerPath": "/usr/bin/clang",
"macFrameworkPath": [
"/Library/Frameworks",
"/System/Library/Frameworks"
],
"includePath": [
"${workspaceFolder}/cpp",
"${workspaceFolder}/lib",
"${workspaceFolder}/test",
"/usr/local/include/**"
],
"defines": [
"_DEBUG"
],
"cStandard": "c11",
"cppStandard": "c++17",
"forcedInclude": [
"${workspaceFolder}/cpp/PCH.hpp"
]
},
{
"name": "Win32",
"intelliSenseMode": "gcc-x64",
"compilerPath": "C:/mingw32/bin/gcc.exe",
"includePath": [
"${workspaceFolder}/cpp",
"${workspaceFolder}/lib",
"C:/SFML/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"cStandard": "c11",
"cppStandard": "c++17",
"forcedInclude": [
"${workspaceFolder}/cpp/PCH.hpp"
]
}
],
"version": 4
}
================================================
FILE: app/src/main/.vscode/launch.json
================================================
{
"version": "0.2.0",
"configurations": [
{
"name": "GDB/LLDB",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/bin-vscode/Debug/${workspaceRootFolderName}.exe",
"args": [
"-exec info registers"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"preLaunchTask": "Build: Debug",
"externalConsole": false,
"internalConsoleOptions": "neverOpen",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"windows": {
"MIMode": "gdb",
"miDebuggerPath": "C:/mingw32/bin/gdb.exe",
"env": {
"Path": "${config:terminal.integrated.env.windows.Path}"
}
},
"linux": {
"program": "${workspaceFolder}/bin-vscode/Debug/${workspaceRootFolderName}",
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"env": {
"PATH": "${config:terminal.integrated.env.linux.PATH}",
}
},
"osx": {
"program": "${workspaceFolder}/bin-vscode/Debug/${workspaceRootFolderName}",
"MIMode": "lldb",
"env": {
"PATH": "${config:terminal.integrated.env.osx.PATH}",
}
},
}
]
}
================================================
FILE: app/src/main/.vscode/settings.json
================================================
{
"C_Cpp.autocomplete": "Default",
"C_Cpp.intelliSenseEngine": "Default",
"C_Cpp.dimInactiveRegions": false,
"C_Cpp.preferredPathSeparator": "Forward Slash",
"C_Cpp.loggingLevel": "Warning",
"C_Cpp.workspaceParsingPriority": "highest",
"C_Cpp.enhancedColorization": "Disabled",
"debug.toolBarLocation": "docked",
"editor.fontFamily": "'Ubuntu Mono', 'Courier Prime Code', 'Courier', 'Courier New', Consolas, monospace",
"editor.tabSize": 4,
"editor.insertSpaces": false,
"files.encoding": "utf8",
"files.trimTrailingWhitespace": true,
"files.eol": "\n",
"files.exclude": {
// hide file
"res": true
"save": true
"CMakeLists.txt": true
"AndroidManifest.xml": true
"codeblocks": true
"cmake": true
"bin-codeblocks": true
"bin-vscode": true
"is-Engine-linux.cbp": true
"is-Engine-linux.layout": true
"is-Engine-linux.depend": true
"is-Engine-windows.cbp": true
"is-Engine-windows.layout": true
"is-Engine-windows.depend": true
".vscode/launch.json": true,
"env/windows/*.sh": true,
"env/osx/dmg.applescript": true,
"Makefile": true,
"build.sh": true,
"gmon.out": true,
"bin/": true,
"build/": true,
"**/*.7z": true,
"**/*.rar": true,
"**/Thumbs.db": true
},
"files.associations": {
"*.json": "jsonc",
"*.stats": "cpp",
"*.desktop": "properties",
".clang-format": "yaml"
},
"terminal.integrated.shell.windows": "C:/Program Files/Git/bin/bash.exe",
"terminal.integrated.env.windows": {
"Path": "C:/mingw32/bin;C:/SFML/bin"
},
"terminal.integrated.env.linux": {
"PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
},
"terminal.integrated.env.osx": {
"PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
},
"workbench.colorCustomizations": {
"statusBar.background": "#8ac242",
"statusBar.foreground": "#ffffff",
"statusBar.debuggingBackground": "#5e9517",
"statusBar.debuggingForeground": "#ffffff",
"terminal.ansiBrightRed": "#ee3355",
"terminal.ansiBrightYellow": "#ffcc55",
"terminal.ansiBrightGreen": "#a5ea4f",
"terminal.ansiBrightBlue": "#5599ff"
},
"[applescript]": {
"files.encoding": "utf8"
}
}
================================================
FILE: app/src/main/.vscode/tasks.json
================================================
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"windows": {
"options": {
"env": {
"Path": "${config:terminal.integrated.env.windows.Path}"
}
}
},
"linux": {
"options": {
"env": {
"PATH": "${config:terminal.integrated.env.linux.PATH}"
}
}
},
"osx": {
"options": {
"env": {
"PATH": "${config:terminal.integrated.env.osx.PATH}"
}
}
},
"presentation": {
"echo": false,
"reveal": "always",
"focus": true,
"panel": "shared",
"clear": false,
"showReuseMessage": true
},
"tasks": [
{
"label": "Build & Run: Release",
"command": "bash ./build.sh buildrun Release vscode",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
],
},
{
"label": "Build: Release",
"command": "bash ./build.sh build Release vscode",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "Run: Release",
"command": "bash ./build.sh run Release vscode",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "Rebuild: Release",
"command": "bash ./build.sh rebuild Release vscode",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "Build & Run: Debug",
"command": "bash ./build.sh buildrun Debug vscode",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "Build: Debug",
"command": "bash ./build.sh build Debug vscode",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "Run: Debug",
"command": "bash ./build.sh run Debug vscode",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "Rebuild: Debug",
"command": "bash ./build.sh rebuild Debug vscode",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "Profile: Debug",
"command": "bash ./build.sh profile Debug vscode",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "Build & Run: Tests",
"command": "bash ./build.sh buildrun Tests vscode '-w NoTests -s'",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "Build: Tests",
"command": "bash ./build.sh build Tests vscode",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "Run: Tests",
"command": "bash ./build.sh run Tests vscode '-w NoTests -s'",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "Rebuild: Tests",
"command": "bash ./build.sh rebuild Tests vscode",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "Build: Production",
"command": "bash ./build.sh buildprod Release vscode",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
}
]
}
================================================
FILE: app/src/main/AndroidManifest.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.author.isengine">
<!--uncomment this line if you want to use this permission-->
<!--uses-permission android:name="android.permission.DISABLE_KEYGUARD"/-->
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<!--android:name="android.support.multidex.MultiDexApplication"-->
<application
android:allowBackup="false"
android:label="@string/app_name"
android:hasCode="true"
android:icon="@drawable/icon"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:hardwareAccelerated="true">
<activity
android:name=".SDLActivity"
android:label="@string/app_name"
android:icon="@drawable/icon"
android:configChanges="keyboardHidden"
android:screenOrientation="sensorLandscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
================================================
FILE: app/src/main/CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.15)
project(isengine)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
if( ${CMAKE_SYSTEM_NAME} MATCHES "Emscripten")
set(USE_FLAGS "-s USE_SDL=2 -s USE_SDL_IMAGE=2 -s SDL2_IMAGE_FORMATS=\"['png']\" -s -s USE_SDL_TTF=2 -s USE_SDL_MIXER=2 -s USE_OGG=1 -s USE_VORBIS=1 -s USE_FREETYPE=1")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${USE_FLAGS}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${USE_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${USE_FLAGS}")
endif()
include_directories(${CMAKE_SOURCE_DIR}/include ${SDL2_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS} ${SDL2_TTF_INCLUDE_DIRS} ${SDL2_MIXER_INCLUDE_DIRS} ${FREETYPE_INCLUDE_DIRS})
set(ISENGINE_HTML_5 true) # This confirms that we are using is::Engine to develop on the Web
set(ISENGINE_SRC_DIR "cpp")
set(ISENGINE_CMAKE_DIR "cmake")
add_compile_definitions(IS_ENGINE_HTML_5)
include(${ISENGINE_CMAKE_DIR}/app_src.cmake)
include(${ISENGINE_CMAKE_DIR}/isengine.cmake)
add_executable(isengine
${app_src}
${isengine}
)
target_link_libraries(isengine ${SDL2_LIBRARIES} ${SDL2IMAGE_LIBRARIES} ${SDL2MIXER_LIBRARIES} ${SDL2TTF_LIBRARIES} ${FREETYPE_LIBRARIES} -lidbfs.js)
set_property(TARGET isengine APPEND_STRING PROPERTY LINK_FLAGS " -s ALLOW_MEMORY_GROWTH=1")
set_property(TARGET isengine APPEND_STRING PROPERTY LINK_FLAGS " -s DISABLE_EXCEPTION_CATCHING=2")
set_property(TARGET isengine APPEND_STRING PROPERTY LINK_FLAGS " -s WASM=1")
set_property(TARGET isengine APPEND_STRING PROPERTY LINK_FLAGS " -s TOTAL_MEMORY=134217728")
# Release flags
set_property(TARGET isengine APPEND_STRING PROPERTY LINK_FLAGS " --emrun")
set_property(TARGET isengine APPEND_STRING PROPERTY LINK_FLAGS " -O3")
set_property(TARGET isengine APPEND_STRING PROPERTY LINK_FLAGS " --bind")
# Copy the web files
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/web/index.html ${CMAKE_CURRENT_BINARY_DIR}/index.html COPYONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/web/sw.js ${CMAKE_CURRENT_BINARY_DIR}/sw.js COPYONLY)
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/web/images DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/web/scripts DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/web/styles DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
# Allow some files to be fetched.
file(GLOB files "./assets/*" "./assets/*/*")
foreach(file ${files})
file(RELATIVE_PATH relative_file ${CMAKE_SOURCE_DIR} ${file})
set_property(TARGET isengine APPEND_STRING PROPERTY LINK_FLAGS " --preload-file ${file}@/${relative_file}")
endforeach()
================================================
FILE: app/src/main/Makefile
================================================
#---------------------------------------------------------------------------------
.SUFFIXES:
#---------------------------------------------------------------------------------
ifeq ($(strip $(DEVKITPRO)),)
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>/devkitpro")
endif
TOPDIR ?= $(CURDIR)
include $(DEVKITPRO)/libnx/switch_rules
#---------------------------------------------------------------------------------
# TARGET is the name of the output
# BUILD is the directory where object files & intermediate files will be placed
# SOURCES is a list of directories containing source code
# DATA is a list of directories containing data files
# INCLUDES is a list of directories containing header files
# ROMFS is the directory containing data to be added to RomFS, relative to the Makefile (Optional)
#
# NO_ICON: if set to anything, do not use icon.
# NO_NACP: if set to anything, no .nacp file is generated.
# APP_TITLE is the name of the app stored in the .nacp file (Optional)
# APP_AUTHOR is the author of the app stored in the .nacp file (Optional)
# APP_VERSION is the version of the app stored in the .nacp file (Optional)
# APP_TITLEID is the titleID of the app stored in the .nacp file (Optional)
# ICON is the filename of the icon (.jpg), relative to the project folder.
# If not set, it attempts to use one of the following (in this order):
# - <Project name>.jpg
# - icon.jpg
# - <libnx folder>/default_icon.jpg
#
# CONFIG_JSON is the filename of the NPDM config file (.json), relative to the project folder.
# If not set, it attempts to use one of the following (in this order):
# - <Project name>.json
# - config.json
# If a JSON file is provided or autodetected, an ExeFS PFS0 (.nsp) is built instead
# of a homebrew executable (.nro). This is intended to be used for sysmodules.
# NACP building is skipped as well.
#---------------------------------------------------------------------------------
TARGET := $(notdir $(CURDIR))
BUILD := build
SOURCES := cpp
DATA := data
INCLUDES := cpp
ROMFS := romfs
APP_TITLE := is::Engine
APP_AUTHOR := author
APP_VERSION := 1.0
ICON := icon.jpg
PC_LIBS := SDL2_image SDL2_mixer SDL2_ttf sdl2
#---------------------------------------------------------------------------------
# options for code generation
#---------------------------------------------------------------------------------
ARCH := -march=armv8-a+crc+crypto -mtune=cortex-a57 -mtp=soft -fPIE
CFLAGS := `$(PREFIX)pkg-config --cflags $(PC_LIBS)` \
-g -Wall -O2 -ffunction-sections \
$(ARCH) $(DEFINES)
CFLAGS += $(INCLUDE) -D__SWITCH__ -DIS_ENGINE_SWITCH
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11 -std=gnu++17
ASFLAGS := -g $(ARCH)
LDFLAGS = -specs=$(DEVKITPRO)/libnx/switch.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
LIBS := `$(PREFIX)pkg-config --libs $(PC_LIBS)` \
-lnx -lm -lstdc++
#---------------------------------------------------------------------------------
# list of directories containing libraries, this must be the top level containing
# include and lib
#---------------------------------------------------------------------------------
LIBDIRS := $(PORTLIBS) $(LIBNX)
#---------------------------------------------------------------------------------
# no real need to edit anything past this point unless you need to add additional
# rules for different file extensions
#---------------------------------------------------------------------------------
ifneq ($(BUILD),$(notdir $(CURDIR)))
#---------------------------------------------------------------------------------
export OUTPUT := $(CURDIR)/$(TARGET)
export TOPDIR := $(CURDIR)
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
$(foreach dir,$(DATA),$(CURDIR)/$(dir))
export DEPSDIR := $(CURDIR)/$(BUILD)
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
#---------------------------------------------------------------------------------
# use CXX for linking C++ projects, CC for standard C
#---------------------------------------------------------------------------------
ifeq ($(strip $(CPPFILES)),)
#---------------------------------------------------------------------------------
export LD := $(CC)
#---------------------------------------------------------------------------------
else
#---------------------------------------------------------------------------------
export LD := $(CXX)
#---------------------------------------------------------------------------------
endif
#---------------------------------------------------------------------------------
export OFILES_BIN := $(addsuffix .o,$(BINFILES))
export OFILES_SRC := $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
export OFILES := $(OFILES_BIN) $(OFILES_SRC)
export HFILES_BIN := $(addsuffix .h,$(subst .,_,$(BINFILES)))
export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
-I$(CURDIR)/$(BUILD)
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib)
ifeq ($(strip $(CONFIG_JSON)),)
jsons := $(wildcard *.json)
ifneq (,$(findstring $(TARGET).json,$(jsons)))
export APP_JSON := $(TOPDIR)/$(TARGET).json
else
ifneq (,$(findstring config.json,$(jsons)))
export APP_JSON := $(TOPDIR)/config.json
endif
endif
else
export APP_JSON := $(TOPDIR)/$(CONFIG_JSON)
endif
ifeq ($(strip $(ICON)),)
icons := $(wildcard *.jpg)
ifneq (,$(findstring $(TARGET).jpg,$(icons)))
export APP_ICON := $(TOPDIR)/$(TARGET).jpg
else
ifneq (,$(findstring icon.jpg,$(icons)))
export APP_ICON := $(TOPDIR)/icon.jpg
endif
endif
else
export APP_ICON := $(TOPDIR)/$(ICON)
endif
ifeq ($(strip $(NO_ICON)),)
export NROFLAGS += --icon=$(APP_ICON)
endif
ifeq ($(strip $(NO_NACP)),)
export NROFLAGS += --nacp=$(CURDIR)/$(TARGET).nacp
endif
ifneq ($(APP_TITLEID),)
export NACPFLAGS += --titleid=$(APP_TITLEID)
endif
ifneq ($(ROMFS),)
export NROFLAGS += --romfsdir=$(CURDIR)/$(ROMFS)
endif
.PHONY: $(BUILD) clean all
#---------------------------------------------------------------------------------
all: $(BUILD)
$(BUILD):
@[ -d $@ ] || mkdir -p $@
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
#---------------------------------------------------------------------------------
clean:
@echo clean ...
ifeq ($(strip $(APP_JSON)),)
@rm -fr $(BUILD) $(TARGET).nro $(TARGET).nacp $(TARGET).elf
else
@rm -fr $(BUILD) $(TARGET).nsp $(TARGET).nso $(TARGET).npdm $(TARGET).elf
endif
#---------------------------------------------------------------------------------
else
.PHONY: all
DEPENDS := $(OFILES:.o=.d)
#---------------------------------------------------------------------------------
# main targets
#---------------------------------------------------------------------------------
ifeq ($(strip $(APP_JSON)),)
all : $(OUTPUT).nro
ifeq ($(strip $(NO_NACP)),)
$(OUTPUT).nro : $(OUTPUT).elf $(OUTPUT).nacp
else
$(OUTPUT).nro : $(OUTPUT).elf
endif
else
all : $(OUTPUT).nsp
$(OUTPUT).nsp : $(OUTPUT).nso $(OUTPUT).npdm
$(OUTPUT).nso : $(OUTPUT).elf
endif
$(OUTPUT).elf : $(OFILES)
$(OFILES_SRC) : $(HFILES_BIN)
#---------------------------------------------------------------------------------
# you need a rule like this for each extension you use as binary data
#---------------------------------------------------------------------------------
%.bin.o %_bin.h : %.bin
#---------------------------------------------------------------------------------
@echo $(notdir $<)
@$(bin2o)
-include $(DEPENDS)
#---------------------------------------------------------------------------------------
endif
#---------------------------------------------------------------------------------------
================================================
FILE: app/src/main/Makefile-vscode
================================================
.SUFFIXES:
SUFFIXES =
.SUFFIXES: .c .cpp .h .hpp .rc .res .inl .o .d .asm
#==============================================================================
MAKEFLAGS += --no-print-directory
#==============================================================================
# Build platform
PLATFORM?=linux
# Build description (Primarily uses Debug/Release)
BUILD?=Release
_BUILDL := $(shell echo $(BUILD) | tr A-Z a-z)
ifeq ($(BUILD),Tests)
_BUILDL := release
endif
# The sub-folder containing the target source files
SRC_TARGET?=
ifneq ($(SRC_TARGET),)
_SRC_TARGET := /$(SRC_TARGET)
endif
# Maximum parallel jobs during build process
MAX_PARALLEL_JOBS?=8
# Dump assembly?
DUMP_ASSEMBLY?=false
# Clean output?
CLEAN_OUTPUT?=true
# If dll, build as a static library?
BUILD_STATIC?=false
# Platform specific environment variables
-include env/.all.mk
-include env/.$(_BUILDL).mk
-include env/$(PLATFORM).all.mk
-include env/$(PLATFORM).$(_BUILDL).mk
# Target specific variables
ifneq ($(SRC_TARGET),)
-include env/$(SRC_TARGET)/.all.mk
-include env/$(SRC_TARGET)/.$(_BUILDL).mk
-include env/$(SRC_TARGET)/$(PLATFORM).all.mk
-include env/$(SRC_TARGET)/$(PLATFORM).$(_BUILDL).mk
endif
#==============================================================================
# File/Folder dependencies for the production build recipe (makeproduction)
PRODUCTION_DEPENDENCIES?=
# Extensions to exclude from production builds
PRODUCTION_EXCLUDE?=
# Folder location (relative or absolute) to place the production build into
PRODUCTION_FOLDER?=build
PRODUCTION_FOLDER_RESOURCES := $(PRODUCTION_FOLDER)
#==============================================================================
# Library directories (separated by spaces)
LIB_DIRS?=
INCLUDE_DIRS?=
# Link libraries (separated by spaces)
LINK_LIBRARIES?=
# Precompiled header filename (no extension)
# This file will be excluded from Rebuild, but if the bin/(build) directory is removed, it will be as well.
PRECOMPILED_HEADER?=
# Build-specific preprocessor macros
BUILD_MACROS?=
# Build-specific compiler flags to be appended to the final build step (with prefix)
BUILD_FLAGS?=
# Build dependencies to copy into the bin/(build) folder - example: openal32.dll
BUILD_DEPENDENCIES?=
# NAME should always be passed as an argument from tasks.json as the root folder name, but uses a fallback of "game.exe"
# This is used for the output filename (game.exe)
NAME?=game.exe
#==============================================================================
# The source file directory
SRC_DIR := cpp$(_SRC_TARGET)
LIB_DIR := lib
# Project .cpp or .rc files (relative to $(SRC_DIR) directory)
SOURCE_FILES := $(patsubst $(SRC_DIR)/%,%,$(shell find $(SRC_DIR) -name '*.cpp' -o -name '*.c' -o -name '*.cc' -o -name '*.rc'))
# Project subdirectories within $(SRC_DIR)/ that contain source files
PROJECT_DIRS := $(patsubst $(SRC_DIR)/%,%,$(shell find $(SRC_DIR) -mindepth 1 -maxdepth 99 -type d))
# Add prefixes to the above variables
_INCLUDE_DIRS := $(patsubst %,-I%,$(SRC_DIR)/ $(LIB_DIR)/ $(INCLUDE_DIRS))
_BUILD_MACROS := $(BUILD_MACROS:%=-D%)
_LINK_LIBRARIES := $(LINK_LIBRARIES:%=-l%)
#==============================================================================
# Unit Testing
TEST_DIR :=
ifeq ($(BUILD),Tests)
TEST_DIR := test
SOURCE_FILES := $(SOURCE_FILES:Main.cpp=)
SOURCE_FILES := $(patsubst $(TEST_DIR)/%,.$(TEST_DIR)/%,$(shell find $(TEST_DIR) -name '*.cpp' -o -name '*.c' -o -name '*.cc' -o -name '*.rc')) $(SOURCE_FILES)
_INCLUDE_DIRS := $(patsubst %,-I%,$(TEST_DIR)/) $(_INCLUDE_DIRS)
PROJECT_DIRS := .$(TEST_DIR) $(PROJECT_DIRS)
BUILD_FLAGS := $(BUILD_FLAGS:-mwindows=)
endif
#==============================================================================
# Linux Specific
PRODUCTION_LINUX_ICON?=icon
# The full working directory
ifeq ($(PLATFORM),linux)
_LINUX_GREP_CWD := $(shell echo $(CURDIR) | sed 's/\//\\\//g')
endif
#==============================================================================
# MacOS Specific
PRODUCTION_MACOS_ICON?=icon
PRODUCTION_MACOS_BUNDLE_COMPANY?=developer
PRODUCTION_MACOS_BUNDLE_DISPLAY_NAME?=App
PRODUCTION_MACOS_BUNDLE_NAME?=App
PRODUCTION_MACOS_MAKE_DMG?=true
PRODUCTION_MACOS_BACKGROUND?=dmg-background
ifeq ($(PLATFORM),osx)
PRODUCTION_MACOS_BUNDLE_COMPANY := '$(PRODUCTION_MACOS_BUNDLE_COMPANY)'
PRODUCTION_MACOS_BUNDLE_DISPLAY_NAME := '$(PRODUCTION_MACOS_BUNDLE_DISPLAY_NAME)'
PRODUCTION_MACOS_BUNDLE_NAME := '$(PRODUCTION_MACOS_BUNDLE_NAME)'
PRODUCTION_FOLDER_MACOS := $(PRODUCTION_FOLDER)
PRODUCTION_FOLDER := $(PRODUCTION_FOLDER)/$(PRODUCTION_MACOS_BUNDLE_NAME).app/Contents
PRODUCTION_FOLDER_RESOURCES := $(PRODUCTION_FOLDER)/Resources
PRODUCTION_DEPENDENCIES := $(PRODUCTION_DEPENDENCIES)
PRODUCTION_MACOS_DYLIBS := $(PRODUCTION_MACOS_DYLIBS:%=%.dylib)
MACOS_FRAMEWORKS?=CoreFoundation
PRODUCTION_MACOS_FRAMEWORKS := $(PRODUCTION_MACOS_FRAMEWORKS:%=%.framework)
PRODUCTION_MACOS_BACKGROUND := env/osx/$(PRODUCTION_MACOS_BACKGROUND)
MACOS_FRAMEWORK_PATHS := $(MACOS_FRAMEWORK_PATHS:%=-F%)
BUILD_FLAGS := $(BUILD_FLAGS) $(MACOS_FRAMEWORK_PATHS) $(MACOS_FRAMEWORKS:%=-framework %)
endif
#==============================================================================
# Directories & Dependencies
BLD_DIR := bin-vscode/$(BUILD)
ifeq ($(BUILD),Tests)
BLD_DIR := bin-vscode/Release
endif
BLD_DIR := $(BLD_DIR:%/=%)
TARGET := $(BLD_DIR)/$(NAME)
_NAMENOEXT := $(NAME:.exe=)
_NAMENOEXT := $(_NAMENOEXT:.dll=)
ifneq ($(SRC_TARGET),)
LIB_DIRS := $(LIB_DIRS) $(BLD_DIR)
endif
_LIB_DIRS := $(LIB_DIR:%=-L%/) $(LIB_DIRS:%=-L%)
_SOURCES_IF_RC := $(if $(filter windows,$(PLATFORM)),$(SOURCE_FILES:.rc=.res),$(SOURCE_FILES:%.rc=))
OBJ_DIR := $(BLD_DIR)/obj$(_SRC_TARGET)
_OBJS := $(_SOURCES_IF_RC:.c=.c.o)
_OBJS := $(_OBJS:.cpp=.cpp.o)
_OBJS := $(_OBJS:.cc=.cc.o)
OBJS := $(_OBJS:%=$(OBJ_DIR)/%)
OBJ_SUBDIRS := $(PROJECT_DIRS:%=$(OBJ_DIR)/%)
DEP_DIR := $(BLD_DIR)/dep$(_SRC_TARGET)
_DEPS := $(_SOURCES_IF_RC)
_DEPS := $(_DEPS:%=%.d)
DEPS := $(_DEPS:%=$(DEP_DIR)/%) $(DEP_DIR)/$(PRECOMPILED_HEADER).d
DEP_SUBDIRS := $(PROJECT_DIRS:%=$(DEP_DIR)/%)
_PCH_HFILE := $(shell find $(SRC_DIR) -name '$(PRECOMPILED_HEADER).hpp' -o -name '$(PRECOMPILED_HEADER).h' -o -name '$(PRECOMPILED_HEADER).hh')
_PCH_HFILE := $(_PCH_HFILE:$(SRC_DIR)/%=%)
_PCH_EXT := $(_PCH_HFILE:$(PRECOMPILED_HEADER).%=%)
_PCH_COMPILER_EXT := $(if $(filter osx,$(PLATFORM)),p,g)ch
_SYMBOLS := $(if $(filter osx,$(PLATFORM)),,$(if $(filter Release,$(BUILD)),-s,))
_PCH := $(_PCH_HFILE:%=$(OBJ_DIR)/%)
ifneq ($(_PCH),)
_PCH_GCH := $(_PCH).$(_PCH_COMPILER_EXT)
endif
ifeq ($(DUMP_ASSEMBLY),true)
ASM_DIR := $(BLD_DIR)/asm$(_SRC_TARGET)
_ASMS := $(_OBJS:%.res=)
_ASMS := $(_ASMS:.o=.o.asm)
ASMS := $(_ASMS:%=$(ASM_DIR)/%)
ASM_SUBDIRS := $(PROJECT_DIRS:%=$(ASM_DIR)/%)
endif
_DIRECTORIES := $(sort bin-vscode $(BLD_DIR) $(OBJ_DIR) $(OBJ_SUBDIRS) $(DEP_DIR) $(DEP_SUBDIRS) $(ASM_DIR) $(ASM_SUBDIRS))
_CLEAN := $(filter true,$(CLEAN_OUTPUT))
# Quiet flag
_Q := $(if $(_CLEAN),@)
#==============================================================================
# Compiler & flags
CC?=g++
RC?=windres.exe
CFLAGS?=-O2 -Wall -fdiagnostics-color=always
CFLAGS_DEPS = -MT $@ -MMD -MP -MF $(DEP_DIR)/$*.Td
CFLAGS_DEPS_T = -MT $@ -MMD -MP -MF $(DEP_DIR)/.$(TEST_DIR)/$*.Td
PCH_COMPILE = $(CC) $(CFLAGS_DEPS) $(_BUILD_MACROS) $(CFLAGS) $(_INCLUDE_DIRS) -o $@ -c $<
ifneq ($(_PCH),)
_INCLUDE_PCH := -include $(_PCH)
endif
OBJ_COMPILE = $(CC) $(CFLAGS_DEPS) $(_BUILD_MACROS) $(_INCLUDE_DIRS) $(_INCLUDE_PCH) $(CFLAGS) -o $@ -c $<
OBJ_COMPILE_T = $(CC) $(CFLAGS_DEPS_T) $(_BUILD_MACROS) $(_INCLUDE_DIRS) $(_INCLUDE_PCH) $(CFLAGS) -o $@ -c $<
RC_COMPILE = -$(RC) -J rc -O coff -i $< -o $@
ifeq ($(PLATFORM),osx)
ASM_COMPILE = otool -tvV $< | c++filt > $@
else
ASM_COMPILE = objdump -d -C -Mintel $< > $@
endif
POST_COMPILE = mv -f $(DEP_DIR)/$*.Td $(DEP_DIR)/$*.d && touch $@
POST_COMPILE_T = mv -f $(DEP_DIR)/.$(TEST_DIR)/$*.Td $(DEP_DIR)/.$(TEST_DIR)/$*.d && touch $@
#==============================================================================
# Build Scripts
all:
@$(MAKE) makepch
@$(MAKE) -j$(MAX_PARALLEL_JOBS) makebuild
.DELETE_ON_ERROR: all
rebuild: clean all
.PHONY: rebuild
buildprod: all makeproduction
.PHONY: buildprod
#==============================================================================
# Functions
color_reset := @tput setaf 4
define compile_with
$(color_reset)
$(if $(_CLEAN),@echo ' $($(2):$(OBJ_DIR)/%=%)')
$(_Q)$(3) && $(4)
endef
MKDIR := $(_Q)mkdir -p
makepch: $(_PCH_GCH)
@echo > /dev/null
.PHONY: makepch
makebuild: $(TARGET)
$(color_reset)
ifeq ($(SRC_TARGET),)
@echo ' Target is up to date.'
else
@echo ' $(NAME): Target is up to date.'
endif
.PHONY: makebuild
#==============================================================================
# Build Recipes
$(OBJ_DIR)/%.o: $(SRC_DIR)/%
$(OBJ_DIR)/%.o: $(SRC_DIR)/% $(_PCH_GCH) $(DEP_DIR)/%.d | $(_DIRECTORIES)
$(call compile_with,@,<,$(OBJ_COMPILE),$(POST_COMPILE))
$(OBJ_DIR)/.$(TEST_DIR)/%.o: $(TEST_DIR)/%
$(OBJ_DIR)/.$(TEST_DIR)/%.o: $(TEST_DIR)/% $(_PCH_GCH) $(DEP_DIR)/.$(TEST_DIR)/%.d | $(_DIRECTORIES)
$(call compile_with,@,<,$(OBJ_COMPILE_T),$(POST_COMPILE_T))
$(OBJ_DIR)/%.$(_PCH_EXT).$(_PCH_COMPILER_EXT) : $(SRC_DIR)/%.$(_PCH_EXT)
$(OBJ_DIR)/%.$(_PCH_EXT).$(_PCH_COMPILER_EXT) : $(SRC_DIR)/%.$(_PCH_EXT) $(DEP_DIR)/%.d | $(_DIRECTORIES)
$(call compile_with,@,<,$(PCH_COMPILE),$(POST_COMPILE))
$(OBJ_DIR)/%.res: $(SRC_DIR)/%.rc
$(OBJ_DIR)/%.res: $(SRC_DIR)/%.rc $(DEP_DIR)/%.d | $(_DIRECTORIES)
$(color_reset)
$(if $(_CLEAN),@echo " $(<:$(OBJ_DIR)/%=%)")
$(_Q)$(RC_COMPILE)
$(ASM_DIR)/%.o.asm: $(OBJ_DIR)/%.o
@tput setaf 6
$(if $(_CLEAN),@echo " $@")
$(_Q)$(ASM_COMPILE)
$(TARGET): $(_PCH_GCH) $(OBJS) $(ASMS) $(TEST_DIR)
$(color_reset)
$(if $(_CLEAN),@echo; printf '\xE2\x87\x9B'; echo ' Linking: $(TARGET)')
ifeq ($(suffix $(TARGET)),.dll)
ifeq ($(BUILD_STATIC),true)
-$(_Q)rm -rf $(BLD_DIR)/lib$(_NAMENOEXT).a
$(_Q)ar.exe -r -s $(BLD_DIR)/lib$(_NAMENOEXT).a $(OBJS)
else
-$(_Q)rm -rf $(BLD_DIR)/lib$(_NAMENOEXT).def $(BLD_DIR)/lib$(_NAMENOEXT).a
$(_Q)$(CC) -shared -Wl,--output-def="$(BLD_DIR)/lib$(_NAMENOEXT).def" -Wl,--out-implib="$(BLD_DIR)/lib$(_NAMENOEXT).a" -Wl,--dll $(_LIB_DIRS) $(OBJS) -o $@ $(_SYMBOLS) $(_LINK_LIBRARIES) $(BUILD_FLAGS)
endif
else
$(_Q)$(CC) $(_LIB_DIRS) $(_SYMBOLS) -o $@ $(OBJS) $(_LINK_LIBRARIES) $(BUILD_FLAGS)
endif
@echo
ifneq ($(BUILD_DEPENDENCIES),)
$(foreach dep,$(BUILD_DEPENDENCIES),$(call copy_to,$(dep),$(BLD_DIR)))
endif
$(_DIRECTORIES):
$(if $(_CLEAN),,$(color_reset))
$(MKDIR) $@
$(if $(_CLEAN),,@echo)
clean:
$(color_reset)
$(if $(_CLEAN),@echo ' Cleaning old build files & folders...'; echo)
$(_Q)$(RM) $(TARGET) $(DEPS) $(OBJS)
.PHONY: clean
#==============================================================================
# Production recipes
rmprod:
$(color_reset)
@echo
-$(_Q)rm -rf $(if $(filter osx,$(PLATFORM)),$(PRODUCTION_FOLDER_MACOS),$(PRODUCTION_FOLDER))
ifeq ($(PLATFORM),linux)
-$(_Q)rm -rf ~/.local/share/applications/$(NAME).desktop
endif
.PHONY: rmprod
mkdirprod:
$(color_reset)
$(MKDIR) $(PRODUCTION_FOLDER)
.PHONY: mkdirprod
define do_copy_to_clean
@printf "\xE2\x9E\xA6"
@echo " Copying \"$(1)\" to \"$(CURDIR)/$(2)\""
$(shell cp -r $(1) $(2))
endef
define do_copy_to
@echo "cp -r $(1) $(2)"
$(shell cp -r $(1) $(2))
endef
define copy_to
$(if $(wildcard $(2)/$(notdir $(1))),,$(if $(_CLEAN),$(call do_copy_to_clean,$(1),$(2)),$(call do_copy_to,$(1),$(2))))
endef
releasetoprod: $(TARGET)
$(color_reset)
ifeq ($(PLATFORM),osx)
@echo ' Creating the MacOS application bundle...'
@echo
$(MKDIR) $(PRODUCTION_FOLDER)/Resources $(PRODUCTION_FOLDER)/Frameworks $(PRODUCTION_FOLDER)/MacOS
ifeq ($(shell brew ls --versions makeicns),)
brew install makeicns
$(color_reset)
endif
$(_Q)makeicns -in env/osx/$(PRODUCTION_MACOS_ICON).png -out $(PRODUCTION_FOLDER)/Resources/$(PRODUCTION_MACOS_ICON).icns
@echo
$(_Q)plutil -convert binary1 env/osx/Info.plist.json -o $(PRODUCTION_FOLDER)/Info.plist
$(_Q)plutil -replace CFBundleExecutable -string $(NAME) $(PRODUCTION_FOLDER)/Info.plist
$(_Q)plutil -replace CFBundleName -string $(PRODUCTION_MACOS_BUNDLE_NAME) $(PRODUCTION_FOLDER)/Info.plist
$(_Q)plutil -replace CFBundleIconFile -string $(PRODUCTION_MACOS_ICON) $(PRODUCTION_FOLDER)/Info.plist
$(_Q)plutil -replace CFBundleDisplayName -string "$(PRODUCTION_MACOS_BUNDLE_DISPLAY_NAME)" $(PRODUCTION_FOLDER)/Info.plist
$(_Q)plutil -replace CFBundleIdentifier -string com.$(PRODUCTION_MACOS_BUNDLE_DEVELOPER).$(PRODUCTION_MACOS_BUNDLE_NAME) $(PRODUCTION_FOLDER)/Info.plist
$(_Q)cp $(TARGET) $(PRODUCTION_FOLDER)/MacOS
$(_Q)chmod +x $(PRODUCTION_FOLDER)/MacOS/$(NAME)
else ifeq ($(PLATFORM),linux)
$(_Q)cp $(TARGET) $(PRODUCTION_FOLDER)
$(_Q)cp env/linux/$(PRODUCTION_LINUX_ICON).png $(PRODUCTION_FOLDER)/$(PRODUCTION_LINUX_ICON).png
$(_Q)cp env/linux/exec.desktop $(PRODUCTION_FOLDER)/$(NAME).desktop
$(_Q)sed -i 's/^Exec=.*/Exec=$(_LINUX_GREP_CWD)\/$(PRODUCTION_FOLDER)\/$(NAME)/' $(PRODUCTION_FOLDER)/$(NAME).desktop
$(_Q)sed -i 's/^Path=.*/Path=$(_LINUX_GREP_CWD)\/$(PRODUCTION_FOLDER)/' $(PRODUCTION_FOLDER)/$(NAME).desktop
$(_Q)sed -i 's/^Name=.*/Name=$(PRODUCTION_LINUX_APP_NAME)/' $(PRODUCTION_FOLDER)/$(NAME).desktop
$(_Q)sed -i 's/^Comment=.*/Comment=$(PRODUCTION_LINUX_APP_COMMENT)/' $(PRODUCTION_FOLDER)/$(NAME).desktop
$(_Q)sed -i 's/^Icon=.*/Icon=$(_LINUX_GREP_CWD)\/$(PRODUCTION_FOLDER)\/$(PRODUCTION_LINUX_ICON).png/' $(PRODUCTION_FOLDER)/$(NAME).desktop
$(_Q)chmod +x $(PRODUCTION_FOLDER)/$(NAME)
$(_Q)chmod +x $(PRODUCTION_FOLDER)/$(NAME).desktop
$(_Q)cp $(PRODUCTION_FOLDER)/$(NAME).desktop ~/.local/share/applications
else
$(_Q)cp $(TARGET) $(PRODUCTION_FOLDER)
$(if $(_CLEAN),,@echo)
endif
.PHONY: releasetoprod
makeproduction: rmprod mkdirprod releasetoprod
$(color_reset)
ifneq ($(PRODUCTION_DEPENDENCIES),)
@echo ' Adding dynamic libraries & project dependencies...'
@echo
$(foreach dep,$(PRODUCTION_DEPENDENCIES),$(call copy_to,$(dep),$(PRODUCTION_FOLDER_RESOURCES)))
$(foreach excl,$(PRODUCTION_EXCLUDE),$(shell find $(PRODUCTION_FOLDER_RESOURCES) -name '$(excl)' -delete))
endif
ifeq ($(PLATFORM),osx)
$(foreach dylib,$(PRODUCTION_MACOS_DYLIBS),$(call copy_to,$(dylib),$(PRODUCTION_FOLDER)/MacOS))
$(_Q)install_name_tool -add_rpath @executable_path/../Frameworks $(PRODUCTION_FOLDER)/MacOS/$(NAME)
$(_Q)install_name_tool -add_rpath @loader_path/.. $(PRODUCTION_FOLDER)/MacOS/$(NAME)
$(foreach dylib,$(PRODUCTION_MACOS_DYLIBS),$(shell install_name_tool -change $(notdir $(dylib)) @rpath/MacOS/$(notdir $(dylib)) $(PRODUCTION_FOLDER)/MacOS/$(NAME)))
$(foreach framework,$(PRODUCTION_MACOS_FRAMEWORKS),$(call copy_to,$(framework),$(PRODUCTION_FOLDER)/Frameworks))
ifeq ($(PRODUCTION_MACOS_MAKE_DMG),true)
$(shell hdiutil detach /Volumes/$(PRODUCTION_MACOS_BUNDLE_NAME)/ &> /dev/null)
@echo
@echo ' Creating the dmg image for the application...'
@echo
$(_Q)hdiutil create -megabytes 54 -fs HFS+ -volname $(PRODUCTION_MACOS_BUNDLE_NAME) $(PRODUCTION_FOLDER_MACOS)/.tmp.dmg > /dev/null
$(_Q)hdiutil attach $(PRODUCTION_FOLDER_MACOS)/.tmp.dmg > /dev/null
$(_Q)cp -r $(PRODUCTION_FOLDER_MACOS)/$(PRODUCTION_MACOS_BUNDLE_NAME).app /Volumes/$(PRODUCTION_MACOS_BUNDLE_NAME)/
-$(_Q)rm -rf /Volumes/$(PRODUCTION_MACOS_BUNDLE_NAME)/.fseventsd
$(MKDIR) /Volumes/$(PRODUCTION_MACOS_BUNDLE_NAME)/.background
$(_Q)tiffutil -cathidpicheck $(PRODUCTION_MACOS_BACKGROUND).png $(PRODUCTION_MACOS_BACKGROUND)@2x.png -out /Volumes/$(PRODUCTION_MACOS_BUNDLE_NAME)/.background/background.tiff
$(_Q)ln -s /Applications /Volumes/$(PRODUCTION_MACOS_BUNDLE_NAME)/Applications
$(_Q)appName=$(PRODUCTION_MACOS_BUNDLE_NAME) osascript env/osx/dmg.applescript
$(_Q)hdiutil detach /Volumes/$(PRODUCTION_MACOS_BUNDLE_NAME)/ > /dev/null
$(_Q)hdiutil convert $(PRODUCTION_FOLDER_MACOS)/.tmp.dmg -format UDZO -o $(PRODUCTION_FOLDER_MACOS)/$(PRODUCTION_MACOS_BUNDLE_NAME).dmg > /dev/null
$(_Q)rm -f $(PRODUCTION_FOLDER_MACOS)/.tmp.dmg
@echo
@echo ' Created $(PRODUCTION_FOLDER_MACOS)/$(PRODUCTION_MACOS_BUNDLE_NAME).dmg'
endif
endif
.PHONY: makeproduction
#==============================================================================
# Dependency recipes
$(DEP_DIR)/%.d: ;
.PRECIOUS: $(DEP_DIR)/%.d
include $(wildcard $(DEPS))
================================================
FILE: app/src/main/SDL2_SFML.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.14.36408.4 d17.14
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2_SFML", "SDL2_SFML.vcxproj", "{5F4AA128-1C3B-458F-9B6D-7E140CBE20A5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5F4AA128-1C3B-458F-9B6D-7E140CBE20A5}.Debug|x64.ActiveCfg = Debug|x64
{5F4AA128-1C3B-458F-9B6D-7E140CBE20A5}.Debug|x64.Build.0 = Debug|x64
{5F4AA128-1C3B-458F-9B6D-7E140CBE20A5}.Debug|x86.ActiveCfg = Debug|Win32
{5F4AA128-1C3B-458F-9B6D-7E140CBE20A5}.Debug|x86.Build.0 = Debug|Win32
{5F4AA128-1C3B-458F-9B6D-7E140CBE20A5}.Release|x64.ActiveCfg = Release|x64
{5F4AA128-1C3B-458F-9B6D-7E140CBE20A5}.Release|x64.Build.0 = Release|x64
{5F4AA128-1C3B-458F-9B6D-7E140CBE20A5}.Release|x86.ActiveCfg = Release|Win32
{5F4AA128-1C3B-458F-9B6D-7E140CBE20A5}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4BC0C116-C5DF-4722-B40C-C405E183D77F}
EndGlobalSection
EndGlobal
================================================
FILE: app/src/main/SDL2_SFML.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{5f4aa128-1c3b-458f-9b6d-7e140cbe20a5}</ProjectGuid>
<RootNamespace>SDL2_SFML</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>IS_ENGINE_SDL_2;IS_ENGINE_VS;_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>IS_ENGINE_SDL_2;IS_ENGINE_VS;_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>C:\SDL2-2.26.3\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>C:\SDL2-2.26.3\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>SDL2.lib;SDL2main.lib;SDL2_image.lib;SDL2_mixer.lib;SDL2_ttf.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="cpp\b2BlockAllocator.cpp" />
<ClCompile Include="cpp\b2Body.cpp" />
<ClCompile Include="cpp\b2BroadPhase.cpp" />
<ClCompile Include="cpp\b2ChainAndCircleContact.cpp" />
<ClCompile Include="cpp\b2ChainAndPolygonContact.cpp" />
<ClCompile Include="cpp\b2ChainShape.cpp" />
<ClCompile Include="cpp\b2CircleContact.cpp" />
<ClCompile Include="cpp\b2CircleShape.cpp" />
<ClCompile Include="cpp\b2CollideCircle.cpp" />
<ClCompile Include="cpp\b2CollideEdge.cpp" />
<ClCompile Include="cpp\b2CollidePolygon.cpp" />
<ClCompile Include="cpp\b2Collision.cpp" />
<ClCompile Include="cpp\b2Contact.cpp" />
<ClCompile Include="cpp\b2ContactManager.cpp" />
<ClCompile Include="cpp\b2ContactSolver.cpp" />
<ClCompile Include="cpp\b2Distance.cpp" />
<ClCompile Include="cpp\b2DistanceJoint.cpp" />
<ClCompile Include="cpp\b2Draw.cpp" />
<ClCompile Include="cpp\b2DynamicTree.cpp" />
<ClCompile Include="cpp\b2EdgeAndCircleContact.cpp" />
<ClCompile Include="cpp\b2EdgeAndPolygonContact.cpp" />
<ClCompile Include="cpp\b2EdgeShape.cpp" />
<ClCompile Include="cpp\b2Fixture.cpp" />
<ClCompile Include="cpp\b2FrictionJoint.cpp" />
<ClCompile Include="cpp\b2GearJoint.cpp" />
<ClCompile Include="cpp\b2Island.cpp" />
<ClCompile Include="cpp\b2Joint.cpp" />
<ClCompile Include="cpp\b2Math.cpp" />
<ClCompile Include="cpp\b2MotorJoint.cpp" />
<ClCompile Include="cpp\b2MouseJoint.cpp" />
<ClCompile Include="cpp\b2PolygonAndCircleContact.cpp" />
<ClCompile Include="cpp\b2PolygonContact.cpp" />
<ClCompile Include="cpp\b2PolygonShape.cpp" />
<ClCompile Include="cpp\b2PrismaticJoint.cpp" />
<ClCompile Include="cpp\b2PulleyJoint.cpp" />
<ClCompile Include="cpp\b2RevoluteJoint.cpp" />
<ClCompile Include="cpp\b2Rope.cpp" />
<ClCompile Include="cpp\b2RopeJoint.cpp" />
<ClCompile Include="cpp\b2Settings.cpp" />
<ClCompile Include="cpp\b2StackAllocator.cpp" />
<ClCompile Include="cpp\b2TimeOfImpact.cpp" />
<ClCompile Include="cpp\b2Timer.cpp" />
<ClCompile Include="cpp\b2WeldJoint.cpp" />
<ClCompile Include="cpp\b2WheelJoint.cpp" />
<ClCompile Include="cpp\b2World.cpp" />
<ClCompile Include="cpp\b2WorldCallbacks.cpp" />
<ClCompile Include="cpp\basicSFMLmain.cpp" />
<ClCompile Include="cpp\GameDialog.cpp" />
<ClCompile Include="cpp\GameDisplay.cpp" />
<ClCompile Include="cpp\GameEngine.cpp" />
<ClCompile Include="cpp\GameFunction.cpp" />
<ClCompile Include="cpp\GameKeyData.cpp" />
<ClCompile Include="cpp\GameSlider.cpp" />
<ClCompile Include="cpp\GameSystem.cpp" />
<ClCompile Include="cpp\GameSystemExtended.cpp" />
<ClCompile Include="cpp\GameTime.cpp" />
<ClCompile Include="cpp\isEngineSDLWrapper.cpp" />
<ClCompile Include="cpp\isEngineWrapper.cpp" />
<ClCompile Include="cpp\main.cpp" />
<ClCompile Include="cpp\MainObject.cpp" />
<ClCompile Include="cpp\TransitionEffect.cpp" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="SDL2 Template.rc" />
</ItemGroup>
<ItemGroup>
<None Include="SDL2 Template.aps" />
<None Include="SDL2.dll" />
<None Include="SDL2_image.dll" />
<None Include="SDL2_mixer.dll" />
<None Include="SDL2_ttf.dll" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
================================================
FILE: app/src/main/SDL2_SFML.vcxproj.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Assets">
<UniqueIdentifier>{685a88e6-fbc8-479e-8305-bfd706b9dc45}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="cpp\b2BlockAllocator.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2Body.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2BroadPhase.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2ChainAndCircleContact.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2ChainAndPolygonContact.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2ChainShape.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2CircleContact.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2CircleShape.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2CollideCircle.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2CollideEdge.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2CollidePolygon.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2Collision.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2Contact.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2ContactManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2ContactSolver.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2Distance.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2DistanceJoint.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2Draw.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2DynamicTree.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2EdgeAndCircleContact.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2EdgeAndPolygonContact.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2EdgeShape.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2Fixture.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2FrictionJoint.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2GearJoint.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2Island.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2Joint.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2Math.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2MotorJoint.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2MouseJoint.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2PolygonAndCircleContact.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2PolygonContact.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2PolygonShape.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2PrismaticJoint.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2PulleyJoint.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2RevoluteJoint.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2Rope.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2RopeJoint.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2Settings.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2StackAllocator.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2TimeOfImpact.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2Timer.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2WeldJoint.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2WheelJoint.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2World.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\b2WorldCallbacks.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\basicSFMLmain.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\GameDialog.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\GameDisplay.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\GameEngine.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\GameFunction.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\GameKeyData.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\GameSlider.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\GameSystem.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\GameSystemExtended.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\GameTime.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\isEngineSDLWrapper.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\isEngineWrapper.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\MainObject.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="cpp\TransitionEffect.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="SDL2 Template.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<None Include="SDL2 Template.aps" />
<None Include="SDL2.dll" />
<None Include="SDL2_image.dll" />
<None Include="SDL2_mixer.dll" />
<None Include="SDL2_ttf.dll" />
</ItemGroup>
</Project>
================================================
FILE: app/src/main/SDL2_SFML.vcxproj.user
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>
================================================
FILE: app/src/main/build.sh
================================================
#!/bin/bash
CMD=$1
BUILD=$2
VSCODE=$3
OPTIONS=$4
cwd=${PWD##*/}
export GCC_COLORS="error=01;31:warning=01;33:note=01;36:locus=00;34"
#==============================================================================
# Function declarations
display_styled_symbol() {
tput setaf $1
tput bold
echo "$2 $3"
tput sgr0
}
build_success() {
echo
display_styled_symbol 2 "✔" "Succeeded!"
echo
}
launch() {
display_styled_symbol 2 " " "Launching bin-vscode/$BUILD/$NAME"
echo
}
build_success_launch() {
echo
display_styled_symbol 2 "✔" "Succeeded!"
launch
}
build_fail() {
echo
display_styled_symbol 1 "✘" "Failed!"
display_styled_symbol 1 " " "Review the compile errors above."
echo
tput sgr0
exit 1
}
build_prod_error() {
echo
display_styled_symbol 1 "⭙" "Error: buildprod must be run on Release build."
tput sgr0
exit 1
}
profiler_done() {
echo
display_styled_symbol 2 "⯌" "Profiler Completed: View $PROF_ANALYSIS_FILE for details"
echo
}
profiler_error() {
echo
display_styled_symbol 1 "⭙" "Error: Profiler must be run on Debug build."
tput sgr0
exit 1
}
profiler_osx() {
display_styled_symbol 1 "⭙" "Error: Profiling (with gprof) is not supported on Mac OSX."
tput sgr0
exit 1
}
buildrun() {
display_styled_symbol 3 "⬤" "Build & Run: $BUILD (target: $NAME)"
echo
BLD=$BUILD
if [[ $BUILD == 'Tests' && $1 != 'main' ]]; then
BLD=Release
fi
if $MAKE_EXEC BUILD=$BLD; then
build_success_launch
if [[ $BUILD == 'Tests' ]]; then
bin-vscode/Release/$NAME $OPTIONS
else
bin-vscode/$BUILD/$NAME $OPTIONS
fi
else
build_fail
fi
}
build() {
display_styled_symbol 3 "⬤" "Build: $BUILD (target: $NAME)"
echo
BLD=$BUILD
if [[ $BUILD == 'Tests' && $1 != 'main' ]]; then
BLD=Release
fi
if $MAKE_EXEC BUILD=$BLD; then
build_success
else
build_fail
fi
}
rebuild() {
display_styled_symbol 3 "⬤" "Rebuild: $BUILD (target: $NAME)"
echo
BLD=$BUILD
if [[ $BUILD == 'Tests' && $1 != 'main' ]]; then
BLD=Release
fi
if $MAKE_EXEC BUILD=$BLD rebuild; then
build_success
else
build_fail
fi
}
run() {
display_styled_symbol 3 "⬤" "Run: $BUILD (target: $NAME)"
echo
launch
if [[ $BUILD == 'Tests' ]]; then
bin-vscode/Release/$NAME $OPTIONS
else
bin-vscode/$BUILD/$NAME $OPTIONS
fi
}
buildprod() {
display_styled_symbol 3 "⬤" "Production Build: $BUILD (target: $NAME)"
echo
if [[ $BUILD == 'Release' ]]; then
RECIPE=buildprod
if [[ $1 != 'main' ]]; then
RECIPE=
fi
if $MAKE_EXEC BUILD=$BUILD $RECIPE; then
build_success
else
build_fail
fi
else
build_prod_error
fi
}
profile() {
display_styled_symbol 3 "⬤" "Profile: $BUILD (target: $NAME)"
echo
if [[ $PLATFORM == 'osx' ]]; then
profiler_osx
elif [[ $BUILD == 'Debug' ]]; then
if $MAKE_EXEC BUILD=$BUILD; then
build_success_launch
tput sgr0
bin-vscode/$BUILD/$NAME
tput setaf 4
gprof bin-vscode/Debug/$NAME gmon.out > $PROF_ANALYSIS_FILE 2> /dev/null
profiler_done
else
build_fail
fi
else
profiler_error
fi
}
#==============================================================================
# Environment
if [[ $CMD == '' ]]; then
CMD=buildprod
fi
if [[ $BUILD == '' ]]; then
BUILD=Release
fi
if [[ $OSTYPE == 'linux-gnu'* || $OSTYPE == 'cygwin'* ]]; then
if [[ $OSTYPE == 'linux-gnueabihf' ]]; then
export PLATFORM=rpi
else
export PLATFORM=linux
fi
elif [[ $OSTYPE == 'darwin'* ]]; then
export PLATFORM=osx
elif [[ $OSTYPE == 'msys' || $OSTYPE == 'win32' ]]; then
export PLATFORM=windows
fi
if [[ $VSCODE != 'vscode' ]]; then
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
if [[ $PLATFORM == 'windows' ]]; then
export PATH="/c/SFML/bin:/c/mingw32/bin:$PATH"
else
if [[ $PLATFORM == 'rpi' ]]; then
export PATH="/usr/local/gcc-8.1.0/bin:$PATH"
fi
fi
echo
echo build.sh PATH=$PATH
echo
fi
export MAKE_EXEC=make
if [[ $PLATFORM == 'windows' ]]; then
if [ $(type -P "mingw32-make.exe") ]; then
export MAKE_EXEC=mingw32-make.exe
elif [ $(type -P "make.exe") ]; then
export MAKE_EXEC=make.exe
fi
fi
if [[ $BUILD != "Release" && $BUILD != 'Debug' && $BUILD != 'Tests' ]]; then
BUILD=Release
fi
PROF_EXEC=gprof
PROF_ANALYSIS_FILE=profiler_analysis.stats
#==============================================================================
# Main script
if [[ $BUILD_TARGETS == '' ]]; then
BUILD_TARGETS=main
NO_SRC_TARGET=1
fi
for target in $BUILD_TARGETS; do
if [[ $PLATFORM == 'windows' ]]; then
if [[ $target == 'main' ]]; then
export NAME=$cwd.exe
if [[ $BUILD == 'Tests' ]]; then
NAME=tests_$NAME
fi
else
if [[ $BUILD == 'Debug' ]]; then
export NAME=$target-d.dll
else
export NAME=$target.dll
fi
fi
else
if [[ $target == 'main' ]]; then
export NAME=$cwd
if [[ $BUILD == 'Tests' ]]; then
NAME=tests_$NAME
fi
else
if [[ $BUILD == 'Debug' ]]; then
export NAME=$target-d.so
else
export NAME=$target.so
fi
fi
fi
if [[ $NO_SRC_TARGET != 1 ]]; then
export SRC_TARGET=$target
fi
CHILD_CMD="$CMD $target"
if [[ $CMD == 'buildrun' && $target != 'main' ]]; then
CHILD_CMD=build
fi
tput setaf 4
if $CHILD_CMD ; then
tput sgr0
else
tput setaf 1
tput bold
echo $dec Error: Command \"$CHILD_CMD\" not recognized. $dec
tput sgr0
exit 1
fi
RESULT=$?
if [[ $RESULT != 0 ]]; then
break
fi
done
exit 0
================================================
FILE: app/src/main/cmake/app_src.cmake
================================================
# game source file
set(
app_src
# game system extended
${ISENGINE_SRC_DIR}/GameSystemExtended.cpp
# game scene
# ${ISENGINE_SRC_DIR}/app_src/scenes/...
# game level objects
# ${ISENGINE_SRC_DIR}/app_src/objects/...
# widgets
${ISENGINE_SRC_DIR}/GameDialog.cpp
)
================================================
FILE: app/src/main/cmake/isengine.cmake
================================================
# box 2d source file
set(
box2d_sources
${ISENGINE_SRC_DIR}/b2BroadPhase.cpp
${ISENGINE_SRC_DIR}/b2CollideCircle.cpp
${ISENGINE_SRC_DIR}/b2CollideEdge.cpp
${ISENGINE_SRC_DIR}/b2CollidePolygon.cpp
${ISENGINE_SRC_DIR}/b2Collision.cpp
${ISENGINE_SRC_DIR}/b2Distance.cpp
${ISENGINE_SRC_DIR}/b2DynamicTree.cpp
${ISENGINE_SRC_DIR}/b2TimeOfImpact.cpp
${ISENGINE_SRC_DIR}/b2CircleShape.cpp
${ISENGINE_SRC_DIR}/b2EdgeShape.cpp
${ISENGINE_SRC_DIR}/b2ChainShape.cpp
${ISENGINE_SRC_DIR}/b2PolygonShape.cpp
${ISENGINE_SRC_DIR}/b2BlockAllocator.cpp
${ISENGINE_SRC_DIR}/b2Draw.cpp
${ISENGINE_SRC_DIR}/b2Math.cpp
${ISENGINE_SRC_DIR}/b2Settings.cpp
${ISENGINE_SRC_DIR}/b2StackAllocator.cpp
${ISENGINE_SRC_DIR}/b2Timer.cpp
${ISENGINE_SRC_DIR}/b2Body.cpp
${ISENGINE_SRC_DIR}/b2ContactManager.cpp
${ISENGINE_SRC_DIR}/b2Fixture.cpp
${ISENGINE_SRC_DIR}/b2Island.cpp
${ISENGINE_SRC_DIR}/b2World.cpp
${ISENGINE_SRC_DIR}/b2WorldCallbacks.cpp
${ISENGINE_SRC_DIR}/b2CircleContact.cpp
${ISENGINE_SRC_DIR}/b2Contact.cpp
${ISENGINE_SRC_DIR}/b2ContactSolver.cpp
${ISENGINE_SRC_DIR}/b2PolygonAndCircleContact.cpp
${ISENGINE_SRC_DIR}/b2EdgeAndCircleContact.cpp
${ISENGINE_SRC_DIR}/b2EdgeAndPolygonContact.cpp
${ISENGINE_SRC_DIR}/b2ChainAndCircleContact.cpp
${ISENGINE_SRC_DIR}/b2ChainAndPolygonContact.cpp
${ISENGINE_SRC_DIR}/b2PolygonContact.cpp
${ISENGINE_SRC_DIR}/b2DistanceJoint.cpp
${ISENGINE_SRC_DIR}/b2FrictionJoint.cpp
${ISENGINE_SRC_DIR}/b2GearJoint.cpp
${ISENGINE_SRC_DIR}/b2Joint.cpp
${ISENGINE_SRC_DIR}/b2MotorJoint.cpp
${ISENGINE_SRC_DIR}/b2MouseJoint.cpp
${ISENGINE_SRC_DIR}/b2PrismaticJoint.cpp
${ISENGINE_SRC_DIR}/b2PulleyJoint.cpp
${ISENGINE_SRC_DIR}/b2RevoluteJoint.cpp
${ISENGINE_SRC_DIR}/b2RopeJoint.cpp
${ISENGINE_SRC_DIR}/b2WeldJoint.cpp
${ISENGINE_SRC_DIR}/b2WheelJoint.cpp
)
# engine source file
set(
commun_sources
${ISENGINE_SRC_DIR}/main.cpp
# Basic SFML rendering loop
${ISENGINE_SRC_DIR}/basicSFMLmain.cpp
# core
${ISENGINE_SRC_DIR}/GameEngine.cpp
# islibconnect
${ISENGINE_SRC_DIR}/isEngineWrapper.cpp
${ISENGINE_SRC_DIR}/isEngineSDLWrapper.cpp
# display
${ISENGINE_SRC_DIR}/GameDisplay.cpp
# entity
${ISENGINE_SRC_DIR}/MainObject.cpp
# graphic
${ISENGINE_SRC_DIR}/TransitionEffect.cpp
# function
${ISENGINE_SRC_DIR}/GameFunction.cpp
${ISENGINE_SRC_DIR}/GameKeyData.cpp
${ISENGINE_SRC_DIR}/GameSlider.cpp
${ISENGINE_SRC_DIR}/GameSystem.cpp
${ISENGINE_SRC_DIR}/GameTime.cpp
# box 2d
${box2d_sources}
)
# tmx lite
set(
tmxlite_sources
${ISENGINE_SRC_DIR}/isEngine/ext_lib/TMXLite/FreeFuncs.cpp
${ISENGINE_SRC_DIR}/isEngine/ext_lib/TMXLite/ImageLayer.cpp
${ISENGINE_SRC_DIR}/isEngine/ext_lib/TMXLite/LayerGroup.cpp
${ISENGINE_SRC_DIR}/isEngine/ext_lib/TMXLite/Map.cpp
${ISENGINE_SRC_DIR}/isEngine/ext_lib/TMXLite/Object.cpp
${ISENGINE_SRC_DIR}/isEngine/ext_lib/TMXLite/ObjectGroup.cpp
${ISENGINE_SRC_DIR}/isEngine/ext_lib/TMXLite/Property.cpp
${ISENGINE_SRC_DIR}/isEngine/ext_lib/TMXLite/TileLayer.cpp
${ISENGINE_SRC_DIR}/isEngine/ext_lib/TMXLite/Tileset.cpp
${ISENGINE_SRC_DIR}/isEngine/ext_lib/TMXLite/detail/pugixml.cpp
${ISENGINE_SRC_DIR}/isEngine/ext_lib/TMXLite/miniz.c
)
# is::Engine Windows & Linux version
if (DEFINED ISENGINE_PC)
set(
isengine
${commun_sources}
${tmxlite_sources}
# tiny file dialogs
${ISENGINE_SRC_DIR}/isEngine/ext_lib/TinyFileDialogs/tinyfiledialogs.cpp
)
# is::Engine Android version
elseif (DEFINED ISENGINE_ANDROID)
set(
isengine
${commun_sources}
${ISENGINE_SRC_DIR}/SDL_android_main.c
#${tmxlite_sources}
)
# is::Engine HTML version
elseif (DEFINED ISENGINE_HTML_5)
set(
isengine
${commun_sources}
)
endif()
================================================
FILE: app/src/main/cmake/resource.rc
================================================
// application icon
MAINICON ICON DISCARDABLE "../env/windows/icon.ico"
================================================
FILE: app/src/main/codeblocks/resource.rc
================================================
// application icon
MAINICON ICON "../env/windows/icon.ico"
================================================
FILE: app/src/main/copy_assets.cmd
================================================
@echo off
setlocal ENABLEEXTENSIONS
REM Define source and destination
set "SOURCE=assets"
set "DEST=romfs"
REM Check if source exists
if not exist "%SOURCE%" (
echo [ERROR] The folder '%SOURCE%' does not exist.
exit /b 1
)
REM Create destination if it doesn't exist
if not exist "%DEST%" (
echo [INFO] The folder '%DEST%' does not exist. Creating it...
mkdir "%DEST%"
)
REM Copy the 'assets' folder itself (and all contents) into 'data'
echo [INFO] Copying the '%SOURCE%' folder into '%DEST%'...
xcopy "%SOURCE%" "%DEST%\%SOURCE%\" /E /I /Y /H >nul
echo [SUCCESS] The folder '%SOURCE%' has been copied to '%DEST%\%SOURCE%\'.
pause
================================================
FILE: app/src/main/cpp/GameDialog.cpp
================================================
#include "app_src/objects/widgets/GameDialog.h"
namespace is
{
GameDialog::GameDialog(sf::Texture &tex, sf::Font &fnt, GameDisplay *m_scene) :
MainObject(),
m_scene(m_scene),
m_showDialog(false),
m_mouseInCollison(false),
m_dialogEnd(false),
m_newLine(true),
m_msgIndex(0),
m_msgIndexMax(0),
m_size(0),
m_blindTime(0.f),
m_dialogIndex(DIALOG_NONE)
{
m_strName = "GameDialog"; // object name
m_imageScale = 0.f;
is::createText(fnt, m_txtDialog, "", m_x, m_y, is::GameConfig::DEFAULT_RPG_DIALOG_TEXT_COLOR, is::GameConfig::DEFAULT_RPG_DIALOG_TEXT_SIZE);
is::createText(fnt, m_txtSkip, is::lang::pad_dialog_skip[m_scene->getGameSystem().m_gameLanguage],
m_x, m_y, is::GameConfig::DEFAULT_RPG_DIALOG_SELECTED_TEXT_COLOR, true, is::GameConfig::DEFAULT_RPG_DIALOG_BUTTON_TEXT_SIZE);
m_strDialog = "";
is::createSprite(tex, m_sprParent, sf::IntRect(0, 0, 480, 96), sf::Vector2f(0.f, 0.f), sf::Vector2f(240.f, 48.f));
is::createSprite(tex, m_sprNext, sf::IntRect(64, 96, 32, 32), sf::Vector2f(0.f, 0.f), sf::Vector2f(16.f, 16.f));
is::createSprite(tex, m_sprSkip, sf::IntRect(0, 96, 64, 24), sf::Vector2f(0.f, 0.f), sf::Vector2f(32.f, 12.f));
is::setSFMLObjScale(m_txtDialog, 0.f);
is::centerSFMLObj(m_txtSkip);
is::setSFMLObjScale(m_txtSkip, 0.f);
is::setSFMLObjScale(m_sprParent, 0.f);
is::setSFMLObjScale(m_sprNext, 0.f);
}
void GameDialog::step(const float &DELTA_TIME)
{
if (m_showDialog)
{
if (!m_scene->getGameSystem().keyIsPressed(is::GameConfig::KEY_A) && !m_scene->getGameSystem().isPressed(is::GameSystem::MOUSE))
m_scene->getGameSystem().m_keyIsPressed = false;
setPosition(m_scene->getViewX(), m_scene->getViewY() + 32.f);
float const _VAL(is::getMSecond(DELTA_TIME));
m_time += (0.8f * is::VALUE_CONVERSION) * DELTA_TIME;
m_blindTime += _VAL;
if (m_blindTime > 30.f) m_blindTime = 0.f;
auto getDialogChar = [this](int index = -1)
{
int n = m_strDialog.length();
wchar_t* char_array = new wchar_t[n + 1];
for (int i(0); i < n; i++) char_array[i] = m_strDialog[i];
auto my_char = char_array[((index == -1) ? m_size + 1: index)];
delete[] char_array;
return my_char;
};
linkArrayToEnum();
if (m_size < static_cast<int>(m_strDialog.size()) - 1)
{
if (m_time > 1.f)
{
std::wstring tempoStr = m_txtDialog.
#if !defined(IS_ENGINE_SFML)
getWString();
#else
getString();
#endif
if (m_newLine)
{
m_scene->GSMplaySound("change_option"); // We play this sound
m_txtDialog.setString(getDialogChar(0));
m_newLine = false;
}
else
{
m_txtDialog.setString(tempoStr + getDialogChar());
m_size++;
}
m_time = 0.f;
}
}
bool mouseInCollisonSkip(false);
if (m_scene->mouseCollision(m_sprSkip)) mouseInCollisonSkip = true;
if (m_scene->getGameSystem().isPressed(is::GameSystem::ValidationButton::MOUSE) && mouseInCollisonSkip &&
!m_dialogEnd)
{
m_scene->GSMplaySound("cancel"); // We play this sound
m_scene->getGameSystem().useVibrate(60);
m_dialogEnd = true;
}
m_mouseInCollison = m_scene->mouseCollision(m_sprParent);
if (!m_mouseInCollison && m_scene->getGameSystem().isPressed(is::GameSystem::MOUSE))
m_scene->getGameSystem().m_keyIsPressed = true;
if ((m_scene->getGameSystem().keyIsPressed(is::GameConfig::KEY_A) ||
(m_scene->getGameSystem().isPressed(is::GameSystem::ValidationButton::MOUSE) && m_mouseInCollison)) &&
!m_scene->getGameSystem().m_keyIsPressed && !m_dialogEnd)
{
m_scene->getGameSystem().m_keyIsPressed = true;
m_scene->getGameSystem().useVibrate(60);
if (m_size < static_cast<int>(m_strDialog.size()) - 1)
{
m_txtDialog.setString(m_strDialog);
m_size = static_cast<int>(m_strDialog.size()) - 1;
}
else
{
m_msgIndex += 2;
if (m_msgIndex == m_msgIndexMax)
{
m_scene->GSMplaySound("cancel"); // We play this sound
m_dialogEnd = true;
}
else
{
m_newLine = true;
m_size = 0;
m_txtDialog.setString("");
}
}
}
if (!m_dialogEnd) is::increaseVar(DELTA_TIME, m_imageScale, 0.1f, 1.f, 1.f);
else
{
is::decreaseVar(DELTA_TIME, m_imageScale, 0.1f, 0.f, 0.f);
if (m_imageScale < 0.05f) m_showDialog = false;
}
is::setSFMLObjX_Y(m_sprParent, m_x, m_y - 90.f);
is::setSFMLObjX_Y(m_txtDialog, is::getSFMLObjX(m_sprParent) - 225.f,
is::getSFMLObjY(m_sprParent) - 38.f);
is::setSFMLObjX_Y(m_sprNext, is::getSFMLObjX(m_sprParent) + 220.f,
is::getSFMLObjY(m_sprParent) + 29.f);
is::setSFMLObjX_Y(m_sprSkip, m_x, m_y + 145.f);
is::setSFMLObjX_Y(m_txtSkip, m_x, is::getSFMLObjY(m_sprSkip));
}
is::setSFMLObjScale(m_txtDialog, m_imageScale);
is::setSFMLObjScale(m_txtSkip, m_imageScale);
is::setSFMLObjScale(m_sprSkip, m_imageScale);
is::setSFMLObjScale(m_sprParent, m_imageScale);
is::setSFMLObjScale(m_sprNext, m_imageScale);
}
void GameDialog::setDialog(DialogIndex dialogIndex)
{
m_dialogEnd = false;
m_msgIndex = 0;
m_size = 0;
m_dialogIndex = dialogIndex;
m_strDialog = "";
m_txtDialog.setString("");
m_showDialog = true;
m_newLine = true;
}
void GameDialog::setMouseInCollison(bool val)
{
m_mouseInCollison = val;
}
void GameDialog::draw(is::Render &surface)
{
if (m_imageScale > 0.05)
{
is::draw(surface, m_sprParent);
is::draw(surface, m_txtDialog);
is::draw(surface, m_txtSkip);
is::draw(surface, m_sprSkip);
if (m_blindTime < 18.f && m_size == (static_cast<int>(m_strDialog.size()) - 1)) is::draw(surface, m_sprNext);
}
}
}
================================================
FILE: app/src/main/cpp/GameDisplay.cpp
================================================
/*
is::Engine (Infinity Solutions Engine)
Copyright (C) 2018-2024 Is Daouda <isdaouda.n@gmail.com>
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 "isEngine/system/display/GameDisplay.h"
#include "app_src/language/GameLanguage.h"
namespace is
{
sf::Vector2f getMapPixelToCoords(GameDisplay const *scene, sf::Vector2i pixelPos)
{
return scene->getRenderWindow().mapPixelToCoords(pixelPos, scene->getView());
}
GameDisplay::GameDisplay(GameSystemExtended &gameSysExt, sf::Color bgColor) :
m_isClosed(false),
m_window(gameSysExt.m_window),
m_view(sf::Vector2f(is::GameConfig::VIEW_WIDTH / 2.f,
is::GameConfig::VIEW_HEIGHT / 2.f),
sf::Vector2f(is::GameConfig::VIEW_WIDTH, is::GameConfig::VIEW_HEIGHT)),
m_surface(gameSysExt.m_window),
m_gameSysExt(gameSysExt),
m_timeVibrateDuration(40),
m_optionIndex(0),
m_waitTime(0),
m_msgWaitTime(0),
m_sceneWidth(is::GameConfig::VIEW_WIDTH),
m_sceneHeight(is::GameConfig::VIEW_HEIGHT),
DELTA_TIME(0.f),
m_viewW(is::GameConfig::VIEW_WIDTH),
m_viewH(is::GameConfig::VIEW_HEIGHT),
m_viewX(m_viewW / 2.f),
m_viewY(m_viewH / 2.f),
m_sprButtonSelectScale(1.f),
m_isRunning(true),
m_windowIsActive(true),
m_isPlaying(true),
m_sceneStart(true),
m_sceneEnd(false),
m_keyBackPressed(false),
m_showMsg(false),
m_mbYesNo(false),
m_msgBoxMouseInCollision(false),
m_mouseInCollision(false)
{
setViewSize(m_viewW, m_viewH);
setView(m_viewX, m_viewY);
m_windowBgColor = bgColor;
}
GameDisplay::~GameDisplay() {}
void GameDisplay::setOptionIndex(int optionIndexValue, bool callWhenClick, float buttonScale)
{
if (m_waitTime == 0) {
m_gameSysExt.useVibrate(m_timeVibrateDuration);
GSMplaySound("change_option");
m_sprButtonSelectScale = buttonScale;
if (!callWhenClick) {
m_optionIndex += optionIndexValue;
m_gameSysExt.m_keyIsPressed = true;
} else m_optionIndex = optionIndexValue;
}
}
void GameDisplay::setOptionIndex(int optionIndexValue)
{
m_optionIndex = optionIndexValue;
}
void GameDisplay::setTextAnimation(sf::Text &txt, sf::Sprite &spr, int val)
{
if (m_optionIndex == val)
{
is::setSFMLObjX_Y(m_sprButtonSelect, is::getSFMLObjX(spr), is::getSFMLObjY(spr));
is::setSFMLObjFillColor(txt, is::GameConfig::DEFAULT_SFML_SELECTED_TEXT_COLOR);
}
else is::setSFMLObjFillColor(txt, is::GameConfig::DEFAULT_SFML_TEXT_COLOR);
}
void GameDisplay::setSprButtonSelectScale(float val)
{
m_sprButtonSelectScale = val;
}
void GameDisplay::setView(sf::Vector2f v)
{
m_view.setCenter(v.x, v.y);
m_surface.setView(m_view);
}
void GameDisplay::setView(float x, float y)
{
m_view.setCenter(x, y);
m_surface.setView(m_view);
}
void GameDisplay::setView()
{
m_view.setCenter(m_viewX, m_viewY);
m_surface.setView(m_view);
}
void GameDisplay::setViewVarX(float val)
{
m_viewX = val;
}
void GameDisplay::setViewVarY(float val)
{
m_viewY = val;
}
void GameDisplay::setViewVarXY(float x, float y)
{
m_viewX = x;
m_viewY = y;
}
void GameDisplay::setViewSize(sf::Vector2f v)
{
m_view.setSize(v.x, v.y);
}
void GameDisplay::setViewSize(float x, float y)
{
m_view.setSize(x, y);
}
void GameDisplay::setWindowSize(sf::Vector2u v, bool updateViewSize)
{
#if defined(__ANDROID__)
m_window.setSize(v);
if (updateViewSize) {
m_viewW = v.x;
m_viewH = v.y;
m_viewX = m_viewW / 2.f;
m_viewY = m_viewH / 2.f;
m_view.setSize(m_viewW, m_viewH);
m_view.setCenter(m_viewX, m_viewY);
m_window.setView(m_view);
m_surface.setView(m_view);
}
#endif
}
void GameDisplay::setWindowTitle(const std::string &title)
{
m_window.setTitle(title);
}
void GameDisplay::setWindowBgColor(sf::Color color)
{
m_windowBgColor = color;
}
void GameDisplay::controlEventFocusClosing(sf::Event &event)
{
// Manage the state of window
if (event.type == sf::Event::GainedFocus) m_windowIsActive = true;
if (event.type == sf::Event::LostFocus) m_windowIsActive = false;
// Closing the application
if (event.type == sf::Event::Closed)
{
m_isRunning = false; // quit the main render loop
m_window.close();
}
}
void GameDisplay::showMessageBox(const std::string &msgBody, bool mbYesNo)
{
setMessageBoxData(mbYesNo);
m_txtMsgBox.setString(msgBody);
}
void GameDisplay::showMessageBox(std::wstring const &msgBody, bool mbYesNo)
{
setMessageBoxData(mbYesNo);
m_txtMsgBox.setString(msgBody);
}
void GameDisplay::setWidgetsPosition()
{
setSFMLObjX_Y(m_recMsgBox, sf::Vector2f(m_view.getCenter().x, m_view.getCenter().y));
setSFMLObjX_Y(m_sprMsgBox, sf::Vector2f(m_view.getCenter().x, m_view.getCenter().y));
const float dim(6.f),
boxXOrigin(is::getSFMLObjOriginX(m_sprMsgBox)),
boxYOrigin(is::getSFMLObjOriginY(m_sprMsgBox));
setSFMLObjX_Y(m_sprMsgBoxButton1,
is::getSFMLObjX(m_sprMsgBox) - boxXOrigin +
is::getSFMLObjOriginX(m_sprMsgBoxButton1) + dim,
is::getSFMLObjY(m_sprMsgBox) + boxYOrigin -
is::getSFMLObjHeight(m_sprMsgBoxButton1) + dim);
setSFMLObjX_Y(m_sprMsgBoxButton2,
is::getSFMLObjX(m_sprMsgBox) + boxXOrigin -
is::getSFMLObjOriginX(m_sprMsgBoxButton2) - dim,
is::getSFMLObjY(m_sprMsgBox) + boxYOrigin -
is::getSFMLObjHeight(m_sprMsgBoxButton2) + dim);
setSFMLObjX_Y(m_sprMsgBoxButton3,
is::getSFMLObjX(m_sprMsgBox),
is::getSFMLObjY(m_sprMsgBox) + boxYOrigin -
is::getSFMLObjHeight(m_sprMsgBoxButton1) + dim);
setSFMLObjX_Y(m_txtMsgBox,
is::getSFMLObjX(m_sprMsgBox) - boxXOrigin + 16.f,
is::getSFMLObjY(m_sprMsgBox) - boxYOrigin + 8.f);
// Adjust the text on button
setSFMLObjX_Y(m_txtMsgBoxYes, is::getSFMLObjX(m_sprMsgBoxButton1),
is::getSFMLObjY(m_sprMsgBoxButton1)
#if defined(IS_ENGINE_SFML)
- is::getSFMLObjHeight(m_txtMsgBoxYes) / 4.f
#endif
);
setSFMLObjX_Y(m_txtMsgBoxNo, is::getSFMLObjX(m_sprMsgBoxButton2),
is::getSFMLObjY(m_sprMsgBoxButton2)
#if defined(IS_ENGINE_SFML)
- is::getSFMLObjHeight(m_txtMsgBoxNo) / 4.f
#endif
);
setSFMLObjX_Y(m_txtMsgBoxOK, is::getSFMLObjX(m_sprMsgBoxButton3),
is::getSFMLObjY(m_sprMsgBoxButton3)
#if defined(IS_ENGINE_SFML)
- is::getSFMLObjHeight(m_txtMsgBoxOK) / 4.f
#endif
);
}
void GameDisplay::setMessageBoxData(bool mbYesNo)
{
m_showMsg = true;
m_mbYesNo = mbYesNo;
if (m_mbYesNo) m_msgAnswer = MsgAnswer::NO;
m_msgWaitTime = 0;
m_msgBoxMouseInCollision = false;
m_txtMsgBoxYes.setString(is::lang::pad_answer_yes[m_gameSysExt.m_gameLanguage]);
m_txtMsgBoxNo.setString(is::lang::pad_answer_no[m_gameSysExt.m_gameLanguage]);
m_txtMsgBoxOK.setString(is::lang::pad_answer_ok[m_gameSysExt.m_gameLanguage]);
centerSFMLObj(m_txtMsgBoxYes);
centerSFMLObj(m_txtMsgBoxNo);
centerSFMLObj(m_txtMsgBoxOK);
setView();
setWidgetsPosition();
is::setSFMLObjAlpha(m_sprMsgBoxButton1, m_msgWaitTime);
is::setSFMLObjAlpha(m_sprMsgBoxButton2, m_msgWaitTime);
is::setSFMLObjAlpha(m_sprMsgBoxButton3, m_msgWaitTime);
is::setSFMLObjAlpha(m_sprMsgBox, m_msgWaitTime);
is::setSFMLObjAlpha2(m_txtMsgBoxNo, m_msgWaitTime);
is::setSFMLObjAlpha2(m_txtMsgBoxYes, m_msgWaitTime);
is::setSFMLObjAlpha2(m_txtMsgBoxOK, m_msgWaitTime);
is::setSFMLObjAlpha2(m_txtMsgBox, m_msgWaitTime);
}
void GameDisplay::updateMsgBox(int sliderDirection, bool rightSideValidation,
sf::Color textDefaultColor, sf::Color selectedTextColor)
{
if (m_msgWaitTime < 240) m_msgWaitTime += static_cast<int>((8.f * is::VALUE_CONVERSION) * DELTA_TIME);
else m_msgWaitTime = 255;
if (!m_gameSysExt.isPressed()) m_gameSysExt.m_keyIsPressed = false;
// Check collision with all objects of message box
if (mouseCollision(m_sprMsgBoxButton1, m_mousePosCurrent) ||
mouseCollision(m_sprMsgBoxButton2, m_mousePosCurrent) ||
mouseCollision(m_sprMsgBoxButton3))
m_msgBoxMouseInCollision = true;
else m_msgBoxMouseInCollision = false;
/*
* sliderDirection is the enum variable found in is::GameSlider. It was not called from the instance
* because its use is not mandatory in a Scene. This avoids the error message which implies that the
* instance has not been declared because here we have implemented are not used in even if it does not exist
* These different values (represents the enum of the class)
SLIDE_NONE = 0,
SLIDE_UP = 1,
SLIDE_DOWN = 2,
SLIDE_RIGHT = 3,
SLIDE_LEFT = 4
*/
// Avoid the long pressing button effect
if (!m_msgBoxMouseInCollision && sliderDirection == 0 &&
m_gameSysExt.isPressed(is::GameSystem::MOUSE))
m_gameSysExt.m_keyIsPressed = true;
if (m_msgWaitTime == 255 && m_windowIsActive)
{
// If it's YES / NO message box
if (m_mbYesNo)
{
if ((m_gameSysExt.keyIsPressed(is::GameConfig::KEY_LEFT) || (sliderDirection == 4) ||
(mouseCollision(m_sprMsgBoxButton1, m_mousePosCurrent) && m_mousePosPrevious != m_mousePosCurrent)) &&
m_msgAnswer != MsgAnswer::YES)
{
if (m_msgBoxMouseInCollision) m_mousePosPrevious = m_mousePosCurrent;
m_gameSysExt.useVibrate(m_timeVibrateDuration);
GSMplaySound("change_option");
m_msgAnswer = MsgAnswer::YES; // answer = yes
}
else if ((m_gameSysExt.keyIsPressed(is::GameConfig::KEY_RIGHT) || (sliderDirection == 3) ||
(mouseCollision(m_sprMsgBoxButton2, m_mousePosCurrent) && m_mousePosPrevious != m_mousePosCurrent)) &&
m_msgAnswer != MsgAnswer::NO)
{
if (m_msgBoxMouseInCollision) m_mousePosPrevious = m_mousePosCurrent;
m_gameSysExt.useVibrate(m_timeVibrateDuration);
GSMplaySound("change_option");
m_msgAnswer = MsgAnswer::NO; // answer = no
}
else if (m_gameSysExt.isPressed(is::GameSystem::KEYBOARD) || (rightSideValidation) ||
((mouseCollision(m_sprMsgBoxButton1, m_mousePosCurrent) ||
mouseCollision(m_sprMsgBoxButton2, m_mousePosCurrent)) &&
m_gameSysExt.isPressed(is::GameSystem::MOUSE) && !m_gameSysExt.m_keyIsPressed))
{
m_showMsg = false;
m_gameSysExt.m_keyIsPressed = true;
}
else if (m_keyBackPressed)
{
m_msgAnswer = MsgAnswer::NO; // answer = no (canceled)
m_showMsg = false;
m_keyBackPressed = false;
}
// Texts animations
if (m_msgAnswer == MsgAnswer::YES)
{
is::setSFMLObjFillColor(m_txtMsgBoxYes, selectedTextColor);
is::setSFMLObjFillColor(m_txtMsgBoxNo, textDefaultColor);
}
else
{
is::setSFMLObjFillColor(m_txtMsgBoxNo, selectedTextColor);
is::setSFMLObjFillColor(m_txtMsgBoxYes, textDefaultColor);
}
}
else // If it's OK message box
{
if (mouseCollision(m_sprMsgBoxButton3) && m_msgAnswer == MsgAnswer::NO)
{
m_gameSysExt.useVibrate(m_timeVibrateDuration);
GSMplaySound("change_option");
m_msgAnswer = MsgAnswer::YES; // answer = OK
is::setSFMLObjFillColor(m_txtMsgBoxOK, selectedTextColor);
}
else if (((m_gameSysExt.isPressed(is::GameSystem::KEYBOARD) || m_keyBackPressed) &&
!mouseCollision(m_sprMsgBoxButton3)) || (rightSideValidation)|| (mouseCollision(m_sprMsgBoxButton3) &&
m_gameSysExt.isPressed(is::GameSystem::MOUSE) && !m_gameSysExt.m_keyIsPressed))
{
m_showMsg = false;
m_keyBackPressed = false;
m_gameSysExt.m_keyIsPressed = true;
}
else if (!mouseCollision(m_sprMsgBoxButton3) && m_msgAnswer == MsgAnswer::YES)
{
m_msgAnswer = MsgAnswer::NO; // answer = NO
is::setSFMLObjFillColor(m_txtMsgBoxOK, textDefaultColor);
}
}
}
if (m_msgWaitTime != 255)
{
if (m_mbYesNo)
{
is::setSFMLObjColor(m_sprMsgBoxButton1, sf::Color(255, 255, 255, m_msgWaitTime));
is::setSFMLObjColor(m_sprMsgBoxButton2, sf::Color(255, 255, 255, m_msgWaitTime));
is::setSFMLObjFillColor(m_txtMsgBoxNo, sf::Color(selectedTextColor.r, selectedTextColor.g, selectedTextColor.b, m_msgWaitTime));
is::setSFMLObjFillColor(m_txtMsgBoxYes, sf::Color(textDefaultColor.r, textDefaultColor.g, textDefaultColor.b, m_msgWaitTime));
}
else
{
is::setSFMLObjColor(m_sprMsgBoxButton3, sf::Color(255, 255, 255, m_msgWaitTime));
is::setSFMLObjFillColor(m_txtMsgBoxOK, sf::Color(textDefaultColor.r, textDefaultColor.g, textDefaultColor.b, m_msgWaitTime));
}
}
is::setSFMLObjColor(m_sprMsgBox, sf::Color(255, 255, 255, m_msgWaitTime));
is::setSFMLObjFillColor(m_txtMsgBox, sf::Color(textDefaultColor.r, textDefaultColor.g, textDefaultColor.b, m_msgWaitTime));
if (!m_showMsg)
{
if (m_msgAnswer == MsgAnswer::NO)
{
// If is OK message box the answer is automatically YES
if (!m_mbYesNo)
{
m_msgAnswer = MsgAnswer::YES;
GSMplaySound("select_option");
m_gameSysExt.useVibrate(m_timeVibrateDuration);
}
else GSMplaySound("cancel");
}
else
{
GSMplaySound("select_option");
m_gameSysExt.useVibrate(m_timeVibrateDuration);
}
}
}
void GameDisplay::updateTimeWait()
{
// Waiting time before validating an option
if (m_waitTime > 0)
{
m_waitTime -= is::getMSecond(DELTA_TIME);
}
else m_waitTime = 0;
}
void GameDisplay::drawMsgBox()
{
if (m_showMsg)
{
is::draw(m_surface, m_recMsgBox);
is::draw(m_surface, m_sprMsgBox);
if (m_mbYesNo)
{
is::draw(m_surface, m_sprMsgBoxButton1);
is::draw(m_surface, m_sprMsgBoxButton2);
is::draw(m_surface, m_txtMsgBoxYes);
is::draw(m_surface, m_txtMsgBoxNo);
}
else
{
is::draw(m_surface, m_sprMsgBoxButton3);
is::draw(m_surface, m_txtMsgBoxOK);
}
is::draw(m_surface, m_txtMsgBox);
}
}
void GameDisplay::drawScreen()
{
is::clear(m_surface, m_windowBgColor);
#if defined(__ANDROID__)
// On Android when the window is no longer active, nothing is displayed just a black screen.
// Its allows to optimize the application
if (m_windowIsActive)
{
#endif
draw();
#if defined(__ANDROID__)
}
#endif
is::display(m_window);
}
void GameDisplay::showTempLoading(float time)
{
float timeToQuit(0.f);
sf::Sprite sprTmploading, sprTmploading2;
is::createSprite(GRMgetTexture("temp_loading"), sprTmploading, sf::Vector2f(m_viewX, m_viewY), sf::Vector2f(320.f, 240.f));
is::createSprite(GRMgetTexture("loading_icon"), sprTmploading2, sf::Vector2f(m_viewX, m_viewY), sf::Vector2f(16.f, 16.f));
while (timeToQuit < time)
{
float dTime = getDeltaTime();
timeToQuit += is::getMSecond(dTime);
sprTmploading2.rotate((5.f * is::VALUE_CONVERSION) * dTime);
sf::Event ev;
while (m_window.pollEvent(ev))
{
if (ev.type == sf::Event::Closed) is::closeApplication();
}
is::clear(m_window, sf::Color::Black);
is::draw(m_surface, sprTmploading);
is::draw(m_surface, sprTmploading2);
is::display(m_window);
}
}
void GameDisplay::loadParentResources()
{
if (!m_gameSysExt.m_loadParentResources)
{
// Load sound
m_gameSysExt.GSMaddSound("change_option", is::GameConfig::SFX_DIR + "change_option" + SND_FILE_EXTENSION);
m_gameSysExt.GSMaddSound("cancel", is::GameConfig::SFX_DIR + "cancel" + SND_FILE_EXTENSION);
m_gameSysExt.GSMaddSound("select_option", is::GameConfig::SFX_DIR + "select_option" + SND_FILE_EXTENSION);
// Load message box sprite
m_gameSysExt.GRMaddTexture("confirm_box", is::GameConfig::GUI_DIR + "confirm_box.png");
m_gameSysExt.GRMaddTexture("confirm_box_button", is::GameConfig::GUI_DIR + "confirm_box_button.png");
// Temporal loading texture
m_gameSysExt.GRMaddTexture("temp_loading", is::GameConfig::GUI_DIR + "temp_loading.png");
m_gameSysExt.GRMaddTexture("loading_icon", is::GameConfig::GUI_DIR + "loading_icon.png");
// Load font
m_gameSysExt.GRMaddFont("font_system", GameConfig::FONT_DIR + "font_system.ttf");
m_gameSysExt.GRMaddFont("font_msg", GameConfig::FONT_DIR + "font_msg.ttf");
m_gameSysExt.m_loadParentResources = true;
}
if (m_gameSysExt.m_loadParentResources)
{
GRMuseGameSystemFont();
GRMuseGameSystemTexture();
GSMuseGameSystemSound();
}
auto &texMsgButton = GRMgetTexture("confirm_box_button");
is::createSprite(GRMgetTexture("confirm_box"), m_sprMsgBox, sf::Vector2f(0.f, 0.f), sf::Vector2f(0.f, 0.f));
is::createSprite(texMsgButton, m_sprMsgBoxButton1, sf::Vector2f(0.f, 0.f), sf::Vector2f(0.f, 0.f));
is::createSprite(texMsgButton, m_sprMsgBoxButton2, sf::Vector2f(0.f, 0.f), sf::Vector2f(0.f, 0.f));
is::createSprite(texMsgButton, m_sprMsgBoxButton3, sf::Vector2f(0.f, 0.f), sf::Vector2f(0.f, 0.f));
is::createRectangle(m_recMsgBox, sf::Vector2f(m_viewW + 40.f, m_viewH + 40.f), sf::Color(0, 0, 0, 200), 0.f, 0.f);
is::centerSFMLObj(m_sprMsgBox);
is::centerSFMLObj(m_sprMsgBoxButton1);
is::centerSFMLObj(m_sprMsgBoxButton2);
is::centerSFMLObj(m_sprMsgBoxButton3);
// Load font
auto &fontSystem = GRMgetFont("font_system");
is::createText(fontSystem, m_txtMsgBox, "", 0.f, 0.f, is::GameConfig::DEFAULT_MSG_BOX_TEXT_SIZE);
#if defined(IS_ENGINE_SDL_2)
m_txtMsgBox.m_SDLaddTextRecWSize += 32;
#endif
is::createText(fontSystem, m_txtMsgBoxYes, is::lang::pad_answer_yes[m_gameSysExt.m_gameLanguage],
0.f, 0.f, true, is::GameConfig::DEFAULT_MSG_BOX_BUTTON_TEXT_SIZE);
is::createText(fontSystem, m_txtMsgBoxNo, is::lang::pad_answer_no[m_gameSysExt.m_gameLanguage],
0.f, 0.f, true, is::GameConfig::DEFAULT_MSG_BOX_BUTTON_TEXT_SIZE);
is::createText(fontSystem, m_txtMsgBoxOK, is::lang::pad_answer_ok[m_gameSysExt.m_gameLanguage],
0.f, 0.f, true, is::GameConfig::DEFAULT_MSG_BOX_BUTTON_TEXT_SIZE);
is::createSprite(GRMgetTexture("temp_loading"), m_sprLoading, sf::Vector2f(m_viewX, m_viewY), sf::Vector2f(320.f, 240.f));
}
void GameDisplay::setIsRunning(bool val)
{
m_isRunning = val;
}
void GameDisplay::setIsPlaying(bool val)
{
m_isPlaying = val;
}
void GameDisplay::quitScene(int nextScene)
{
if (nextScene != -1)
{
m_gameSysExt.m_launchOption = static_cast<is::DisplayOption>(nextScene);
m_isRunning = false;
}
else is::closeApplication();
}
void GameDisplay::setWaitTime(int val)
{
m_waitTime = val;
}
void GameDisplay::setSceneStart(bool val)
{
m_sceneStart = val;
}
void GameDisplay::setSceneEnd(bool val)
{
m_sceneEnd = val;
}
void GameDisplay::setKeyBackPressed(bool val)
{
m_keyBackPressed = val;
}
void GameDisplay::setMouseInCollision()
{
if (m_mousePosCurrent != m_mousePosPrevious)
{
is::setVector2(m_mousePosPrevious, m_mousePosCurrent.x, m_mousePosCurrent.y);
m_mouseInCollision = true;
}
}
float GameDisplay::getDeltaTime()
{
float dt = m_clock.restart().asSeconds();
if (dt > is::MAX_CLOCK_TIME) dt = is::MAX_CLOCK_TIME;
return dt;
}
sf::Vector2f GameDisplay::getCursor(unsigned int finger) const
{
return is::getCursor(m_window, finger);
}
bool GameDisplay::getMouseCurrentEqualToPrevious()
{
return (m_mousePosCurrent == m_mousePosPrevious);
}
bool GameDisplay::inViewRec(is::MainObject *obj, bool useTexRec)
{
is::Rectangle testRec;
if (useTexRec)
{
testRec.m_left = obj->getX();
testRec.m_top = obj->getY();
testRec.m_right = obj->getX() + is::getSFMLObjWidth(obj->getSprite());
testRec.m_bottom = obj->getY() + is::getSFMLObjHeight(obj->getSprite());
}
else testRec = obj->getMask();
bool isCollision = false;
is::Rectangle viewRec;
viewRec.m_left = getViewX() - (getViewW() / 2) - 16;
viewRec.m_right = getViewX() + (getViewW() / 2) + 16;
viewRec.m_top = getViewY() - (getViewH() / 2);
viewRec.m_bottom = getViewY() + (getViewH() / 2);
if (is::collisionTest(testRec, viewRec))
{
isCollision = true;
}
return isCollision;
}
bool GameDisplay::inViewRec(is::MainObject &obj, bool useTexRec)
{
return (inViewRec(&obj, useTexRec));
}
bool GameDisplay::getIsRunning() const
{
return m_isRunning;
}
#if defined(IS_ENGINE_USE_SDM)
void GameDisplay::SDMmanageScene()
{
DELTA_TIME = getDeltaTime();
updateTimeWait();
// even loop
SDMmanageSceneEvents();
// starting mechanism
if (m_sceneStart)
{
// window has focus
if (m_windowIsActive)
{
if (!m_showMsg)
{
SDMstep();
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
// MESSAGE BOX
//////////////////////////////////////////////////////////////////////////////////////////////////////
else
{
updateMsgBox(0, false);
// when user closes message box in update function execute this instruction
// "m_waitTime" allow to disable clicks on objects during a moment when user closes message box
if (!m_showMsg) SDMmanageSceneMsgAnswers();
}
}
}
}
void GameDisplay::SDMmanageSceneEvents()
{
sf::Event event;
while (m_window.pollEvent(event)) // even loop
{
controlEventFocusClosing(event);
if (m_gameSysExt.keyIsPressed(is::GameConfig::KEY_CANCEL))
{
if (!m_showMsg) showMessageBox(is::lang::msg_quit_game[m_gameSysExt.m_gameLanguage]);
else if (m_msgWaitTime == 255) /* Allows to close the message box with the Cancel key when it is visible*/ m_keyBackPressed = true;
}
SDMcallObjectsEvents(event);
}
}
void GameDisplay::SDMmanageSceneMsgAnswers()
{
if (m_msgAnswer == MsgAnswer::YES) // if answers is YES close application
{
m_window.close();
m_isRunning = false;
}
else // if answers is NO continue execution
{
m_waitTime = 20;
}
}
void GameDisplay::SDMcallObjectsEvents(sf::Event &event)
{
if (m_SDMObjectsEvent)
{
// call objects events
for (std::list<std::shared_ptr<MainObject>>::iterator it = m_SDMsceneObjects.begin();
it != m_SDMsceneObjects.end(); ++it)
{
if (is::instanceExist(*it))
{
if ((*it)->m_SDMcallEvent)
{
(*it)->event(event);
}
}
}
}
}
void GameDisplay::SDMstep()
{
if (m_SDMObjectsStep)
{
// update scene objects
for (std::list<std::shared_ptr<MainObject>>::iterator it = m_SDMsceneObjects.begin();
it != m_SDMsceneObjects.end(); ++it)
{
if (is::instanceExist(*it))
{
if ((*it)->m_SDMcallStep)
{
(*it)->step(DELTA_TIME);
}
if (*it != nullptr)
{
if ((*it)->isDestroyed())
{
it->reset();
}
}
}
}
if (m_SDMsortArray)
{
is::sortObjArrayByDepth(m_SDMsceneObjects);
m_SDMsortArray = false;
}
}
}
void GameDisplay::SDMdraw()
{
if (m_SDMObjectsDraw)
{
#if defined(IS_ENGINE_SDL_2)
std::shared_ptr<SDMBlitSDLSprite> obj = nullptr;
#endif
// draw scene objects
for (std::list<std::shared_ptr<MainObject>>::iterator it = m_SDMsceneObjects.begin();
it != m_SDMsceneObjects.end(); ++it)
{
if (is::instanceExist(*it))
{
if ((*it)->m_SDMcallDraw)
{
if ((*it)->m_SDMblitSprTextureName != "")
{
#if defined(IS_ENGINE_SDL_2)
if (obj.get() != nullptr)
{
if (obj->m_strTextureName != (*it)->m_SDMblitSprTextureName)
{
for (unsigned int i(0); i < m_SDMblitSDLSprite.size(); ++i)
{
if (m_SDMblitSDLSprite[i]->m_strTextureName == (*it)->m_SDMblitSprTextureName)
{
obj = m_SDMblitSDLSprite[i];
break;
}
}
}
}
else
{
for (unsigned int i(0); i < m_SDMblitSDLSprite.size(); ++i)
{
if (m_SDMblitSDLSprite[i]->m_strTextureName == (*it)->m_SDMblitSprTextureName)
{
obj = m_SDMblitSDLSprite[i];
break;
}
}
}
obj->m_sprBlit.setTextureRect(sf::IntRect((*it)->getSprite().getTextureRect().left,
(*it)->getSprite().getTextureRect().top,
(*it)->getSprite().getTextureRect().width,
(*it)->getSprite().getTextureRect().height));
obj->m_sprBlit.setPosition(is::getSFMLObjX((*it)->getSprite()), is::getSFMLObjY((*it)->getSprite()));
obj->m_sprBlit.setOrigin(is::getSFMLObjOriginX((*it)->getSprite()), is::getSFMLObjOriginY((*it)->getSprite()));
obj->m_sprBlit.setScale(is::getSFMLObjXScale((*it)->getSprite()), is::getSFMLObjYScale((*it)->getSprite()));
obj->m_sprBlit.setColor((*it)->getSprite().getColor().r, (*it)->getSprite().getColor().g,
(*it)->getSprite().getColor().b, (*it)->getSprite().getColor().a);
#endif
if (inViewRec(it->get(), true))
{
if ((*it)->getVisible()) m_window.draw(
#if defined(IS_ENGINE_SDL_2)
obj->m_sprBlit
#else
(*it)->getSprite()
#endif
);
}
}
else (*it)->draw(m_surface);
}
}
}
}
drawMsgBox();
}
void GameDisplay::createSprite(const std::string &spriteName, is::MainObject &obj, sf::IntRect rec, sf::Vector2f position, sf::Vector2f origin, sf::Vector2f scale, unsigned int alpha)
{
auto &tex = GRMgetTexture(spriteName);
obj.m_SDMblitSprTextureName =
#if !defined(IS_ENGINE_SDL_2)
spriteName;
is::createSprite(tex, obj.getSprite(), rec, sf::Vector2f(position.x, position.y), sf::Vector2f(origin.x, origin.y), false, false);
#else
GRMgetTexture(spriteName).getFileName();
bool exists = false;
for (unsigned int i(0); i < m_SDMblitSDLSprite.size(); ++i)
{
if (m_SDMblitSDLSprite[i]->m_strTextureName == obj.m_SDMblitSprTextureName)
{
exists = true;
break;
}
}
if (!exists) m_SDMblitSDLSprite.push_back(std::make_shared<is::SDMBlitSDLSprite>(obj.m_SDMblitSprTextureName, tex));
obj.getSprite().setTextureRect(sf::IntRect(rec.left, rec.top, rec.width, rec.height));
obj.getSprite().setPosition(position.x, position.y);
obj.getSprite().setOrigin(origin.x, origin.y);
obj.getSprite().setScale(scale.x, scale.y);
obj.getSprite().setColor(255, 255, 255, alpha);
#endif
}
#endif
}
================================================
FILE: app/src/main/cpp/GameEngine.cpp
================================================
/*
is::Engine (Infinity Solutions Engine)
Copyright (C) 2018-2025 Is Daouda <isdaouda.n@gmail.com>
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 "isEngine/core/GameEngine.h"
#if defined(IS_ENGINE_HTML_5)
std::function<void(void)> mainLoop;
void MainLoop()
{
return mainLoop();
}
#endif
namespace is
{
GameEngine::GameEngine():
m_gameSysExt(m_window)
{}
GameEngine::~GameEngine()
{
#if defined(IS_ENGINE_SDL_2)
is::SDL2freeLib();
#endif
};
void GameEngine::initEngine()
{
m_gameSysExt.initSystemData();
m_window.create(sf::VideoMode(is::GameConfig::WINDOW_WIDTH, is::GameConfig::WINDOW_HEIGHT),
is::GameConfig::GAME_NAME,
is::getWindowStyle());
#if !defined(__ANDROID__)
#if defined(IS_ENGINE_SFML)
// load application icon
sf::Image iconTex;
if (iconTex.loadFromFile(is::GameConfig::GUI_DIR + "icon.png"))
m_window.setIcon(iconTex.getSize().x, iconTex.getSize().y, iconTex.getPixelsPtr());
#endif
// create saving directory
#if (!defined(IS_ENGINE_HTML_5) && !defined(IS_ENGINE_SWITCH))
if (!m_gameSysExt.fileExist(is::GameConfig::CONFIG_FILE))
{
#if defined(IS_ENGINE_VS)
_mkdir
#else
mkdir
#endif
(is::GameConfig::DATA_PARENT_DIR.c_str()
#if defined(SFML_SYSTEM_LINUX) || defined(IS_ENGINE_LINUX)
, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH
#endif
);
m_gameSysExt.saveConfig(is::GameConfig::CONFIG_FILE);
}
#endif
#endif // defined
setFPS(m_window, is::GameConfig::FPS);
}
#if defined(IS_ENGINE_HTML_5)
void GameEngine::execMainLoop(std::function<bool(void)> loop)
{
mainLoop = [myLoop = loop] {(void)myLoop();};
emscripten_set_main_loop(&MainLoop, -1, 1);
}
void GameEngine::execMainLoop(std::function<void(void)> loop)
{
mainLoop = loop;
emscripten_set_main_loop(&MainLoop, -1, 1);
}
#endif
bool GameEngine::play()
{
//////////////////////////////////////////////////////////////////////////////////////////////////////
// GAME INTILISATION
//////////////////////////////////////////////////////////////////////////////////////////////////////
initEngine();
//////////////////////////////////////////////////////////////////////////////////////////////////////
// GAME STARTUP
//////////////////////////////////////////////////////////////////////////////////////////////////////
std::unique_ptr<ActivityController> app = nullptr;
#if !defined(IS_ENGINE_HTML_5)
while (m_window.isOpen()
#ifdef __SWITCH__
&& appletMainLoop()
#endif
)
#else
EM_ASM(console.log("Start successfully!");, 0);
execMainLoop([&]
{
if (emscripten_run_script_int("Module.syncdone") == 1)
#endif
{
if (app == nullptr) app = std::make_unique<ActivityController>(m_gameSysExt);
else
{
app->update();
app->draw();
}
}
#if defined(IS_ENGINE_HTML_5)
});
#endif
return true;
}
}
================================================
FILE: app/src/main/cpp/GameFunction.cpp
================================================
/*
is::Engine (Infinity Solutions Engine)
Copyright (C) 2018-2024 Is Daouda <isdaouda.n@gmail.com>
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 "isEngine/system/function/GameFunction.h"
#if defined(IS_ENGINE_HTML_5)
#include <emscripten.h>
#include <emscripten/bind.h>
// Allows to send C++ string vector in javascript code
inline std::vector<std::string> *vectorFromIntPointer(uintptr_t vec) {
return reinterpret_cast<std::vector<std::string> *>(vec);
}
EMSCRIPTEN_BINDINGS(Wrappers) {
emscripten::register_vector<std::string>("VectorString").constructor(&vectorFromIntPointer, emscripten::allow_raw_pointers());
};
#endif
namespace is
{
const float MAX_CLOCK_TIME = 0.018f;
const float VALUE_CONVERSION = 65.f;
const float SECOND = 59.f;
const float VALUE_TIME = 1.538f;
std::string w_chart_tToStr(wchar_t const *val)
{
std::wstring ws(val);
return (std::string(ws.begin(), ws.end()));
}
std::wstring strToWStr(const std::string &str)
{
std::wstring wsTemp(str.begin(), str.end());
return wsTemp;
}
int getMSecond(const float &DELTA_TIME)
{
return static_cast<int>(DELTA_TIME * (VALUE_TIME * VALUE_CONVERSION));
}
std::tm makeTime(int year, int month, int day)
{
std::tm tm = {0};
tm.tm_year = year - 1900; // years count from 1900
tm.tm_mon = month - 1; // months count from January=0
tm.tm_mday = day; // days count from 1
return tm;
}
bool checkDateLimit(int year, int mont, int day)
{
time_t currentTime = time(0);
std::tm tm1 = makeTime(year, mont, day);
std::time_t expirationDate = std::mktime(&tm1);
const int seconds_per_day = 60 * 60 * 24;
return (std::difftime(expirationDate, currentTime) / seconds_per_day < 0.f);
}
void showLog(const std::string& str, bool stopApplication)
{
#if defined(IS_ENGINE_USE_SHOWLOG)
#if !defined(__ANDROID__)
std::cout << str.c_str() << "\n";
#else
__android_log_print(ANDROID_LOG_DEBUG, "LOG_INFO", "%s\n", str.c_str());
#endif
#endif
if (stopApplication) is::closeApplication();
}
bool isIn(unsigned short valNumber, const int var, int x1, int x2, int x3, int x4, int x5, int x6, int x7, int x8, int x9)
{
if (var == x1) return true;
else if (var == x2) return true;
else if (var == x3) return (valNumber > 2);
else if (var == x4) return (valNumber > 3);
else if (var == x5) return (valNumber > 4);
else if (var == x6) return (valNumber > 5);
else if (var == x7) return (valNumber > 6);
else if (var == x8) return (valNumber > 7);
else if (var == x9) return (valNumber > 8);
return false;
}
bool isBetween(float a, float b, float c)
{
if (b <= c) return (b <= a && a <= c);
else return (c <= a && a <= b);
}
int sign(float x)
{
if (x > 0.f) return 1;
else if (x < 0.f) return -1;
else return 0;
}
float pointDirection(float x1, float y1, float x2, float y2)
{
return atan((y1 - y2) / (x1 - x2));
}
float radToDeg(float x)
{
return static_cast<float>((x * 180.f) / 3.14159235f);
}
float degToRad(float x)
{
return static_cast<float>((x * 3.14159235f) / 180.f);
}
float lengthDirX(float dir, float angle, bool useScreenScale)
{
#if defined(IS_ENGINE_SDL_2)
if (useScreenScale)
{
if (static_cast<int>(is::IS_ENGINE_SDL_screenXScale) != 1)
{
float tempDir(dir);
dir += tempDir / is::IS_ENGINE_SDL_screenXScale;
}
return (dir * std::cos(degToRad(angle))) / is::IS_ENGINE_SDL_screenXScale;
}
#endif
return dir * std::cos(degToRad(angle));
}
float lengthDirY(float dir, float angle, bool useScreenScale)
{
#if defined(IS_ENGINE_SDL_2)
if (useScreenScale)
{
if (static_cast<int>(is::IS_ENGINE_SDL_screenXScale) != 1)
{
float tempDir(dir);
dir += tempDir / is::IS_ENGINE_SDL_screenXScale;
return (dir * std::sin(degToRad(angle))) / is::IS_ENGINE_SDL_screenYScale;
}
}
#endif
return dir * std::sin(degToRad(angle));
}
bool collisionTest(Rectangle const &a, Rectangle const &b)
{
if (a.m_bottom <= b.m_top) return false;
if (a.m_top >= b.m_bottom) return false;
if (a.m_right <= b.m_left) return false;
if (a.m_left >= b.m_right) return false;
return true;
}
bool collisionTest(Circle const &a, Circle const &b)
{
auto distanceSquared = [](int x1, int y1, int x2, int y2)
{
int deltaX = x2 - x1;
int deltaY = y2 - y1;
return deltaX * deltaX + deltaY * deltaY;
};
// Calculate total radius squared
int totalRadiusSquared = a.m_raduis + b.m_raduis;
totalRadiusSquared = totalRadiusSquared * totalRadiusSquared;
// If the distance between the centers of the circles is less than the sum of their radii
if (distanceSquared(a.m_x, a.m_y, b.m_x, b.m_y) < totalRadiusSquared) return true; // The circles have collided
return false; // If not
}
bool collisionTest(Circle const &circle, Rectangle const &rec)
{
// temporary variables to set edges for testing
float testX = circle.m_x;
float testY = circle.m_y;
// which edge is closest?
if (circle.m_x < rec.m_left) testX = rec.m_left; // test left edge
else if (circle.m_x > rec.m_right) testX = rec.m_right; // right edge
if (circle.m_y < rec.m_top) testY = rec.m_top; // top edge
else if (circle.m_y > rec.m_bottom) testY = rec.m_bottom; // bottom edge
// get distance from closest edges
float distX = circle.m_x - testX;
float distY = circle.m_y - testY;
float distance = sqrt((distX * distX) + (distY * distY));
// if the distance is less than the radius, collision!
if (distance <= circle.m_raduis) return true;
return false;
}
bool collisionTest(Rectangle const &rec, Circle const &circle)
{
return collisionTest(circle, rec);
}
void setTextAnimation(sf::Text &txt, sf::Sprite &spr, sf::Sprite &sprSelected, int &var, int val)
{
if (var == val)
{
is::setSFMLObjX_Y(sprSelected, is::getSFMLObjX(spr), is::getSFMLObjY(spr));
is::setSFMLObjFillColor(txt, is::GameConfig::DEFAULT_SFML_SELECTED_TEXT_COLOR);
}
else is::setSFMLObjFillColor(txt, is::GameConfig::DEFAULT_SFML_TEXT_COLOR);
}
void setTextAnimation(sf::Text &txt, int &var, int val)
{
if (var == val) is::setSFMLObjFillColor(txt, is::GameConfig::DEFAULT_SFML_SELECTED_TEXT_COLOR);
else is::setSFMLObjFillColor(txt, is::GameConfig::DEFAULT_SFML_TEXT_COLOR);
}
void setFrame(sf::Sprite &sprite, float frame, int subFrame, int frameWidth, int frameHeight, int recWidth, int recHeight)
{
/* Description of the image decoupage algorithm
* be << frame >> number of the image to get (to have it start counting images from 0 to X)
* either << subFrame >> number of images on one line
* be << frameLineIndex >> number of the line corresponding to the image
* (frame / subFrame) returns the number of times there is << frame >> in << subFrame >> to determine the number of the line of the image
* 32 * (frame - (subFrame * frameLineIndex)) returns the position (number) of the image on the X axis can return the value 0 (1st image on the line)
* when the value of << frame >> exceeds the number of image on the X axis (the value of << subFrame >>) then we are on a new line
* (32 * frameLineIndex) gives the position of the image on the Y axis its value varies according to the << frame >>
* example: 32 * frameLineIndex = 1 when frame > subFrame; 32 * frameLineIndex = 2 when frame > subFrame * 2; ...
*/
int frameLineIndex = (frame / subFrame);
setSFMLObjTexRec(sprite, frameWidth * (static_cast<int>(frame) - (subFrame * frameLineIndex)), frameHeight * frameLineIndex, recWidth, recHeight);
}
void setFrame(sf::Sprite &sprite, float frame, int subFrame, int frameSize)
{
setFrame(sprite, frame, subFrame, frameSize, frameSize, frameSize, frameSize);
}
/*
void createRenderTexture(sf::RenderTexture &renderTexture, unsigned int width, unsigned int height)
{
renderTexture.create(width, height);
}*/
void createRectangle(sf::RectangleShape &rec, sf::Vector2f recSize, sf::Color color, float x, float y, bool center)
{
rec.setSize(recSize);
if (center) is::centerSFMLObj(rec);
setSFMLObjFillColor(rec, color);
is::setSFMLObjX_Y(rec, x, y);
}
void textStyleConfig(sf::Text &txt, bool underLined, bool boldText, bool italicText)
{
if (underLined && boldText && italicText) txt.setStyle(sf::Text::Underlined | sf::Text::Bold | sf::Text::Italic);
else if (underLined && boldText) txt.setStyle(sf::Text::Underlined | sf::Text::Bold);
else if (underLined && italicText) txt.setStyle(sf::Text::Underlined | sf::Text::Italic);
else if (boldText && italicText) txt.setStyle(sf::Text::Bold | sf::Text::Italic);
else if (underLined) txt.setStyle(sf::Text::Underlined);
else if (boldText) txt.setStyle(sf::Text::Bold);
else if (italicText) txt.setStyle(sf::Text::Italic);
}
void setSFMLTextOutlineColor(sf::Text &txt, float thickness, sf::Color color)
{
txt.setOutlineColor(color);
txt.setOutlineThickness(thickness);
}
void createSprite(sf::Texture &tex, sf::Sprite &spr, sf::Vector2f position, sf::Vector2f origin, bool smooth)
{
#if defined(IS_ENGINE_SFML)
tex.setSmooth(smooth);
#endif
spr.setTexture(tex);
spr.setOrigin(origin.x, origin.y);
is::setSFMLObjX_Y(spr, position.x, position.y);
}
void createSprite(sf::Texture &tex, sf::Sprite &spr, sf::IntRect rec, sf::Vector2f position, sf::Vector2f origin, bool repeatTexture, bool smooth)
{
createSprite(tex, spr, position, origin, smooth);
is::setSFMLObjTexRec(spr, rec.left, rec.top, rec.width, rec.height);
#if defined(IS_ENGINE_SFML)
if (repeatTexture) tex.setRepeated(true);
#endif
}
void createSprite(sf::Texture &tex, sf::Sprite &spr, sf::IntRect rec, sf::Vector2f position, sf::Vector2f origin, sf::Vector2f scale, unsigned int alpha, bool repeatTexture, bool smooth)
{
createSprite(tex, spr, rec, position, origin, repeatTexture, smooth);
is::setSFMLObjScaleX_Y(spr, scale.x, scale.y);
is::setSFMLObjAlpha(spr, alpha);
}
sf::Vector2f getCursor(sf::RenderWindow &window, unsigned int finger)
{
sf::Vector2i pixelPos =
((IS_ENGINE_MOBILE_OS) ?
sf::Touch::getPosition(finger, window)
:
sf::Mouse::getPosition(window)
);
sf::Vector2f worldPos = window.mapPixelToCoords(pixelPos, window.getView());
float dx = pointDistance(window.getView().getCenter().x, window.getView().getCenter().y,
worldPos.x, window.getView().getCenter().y);
float dy = pointDistance(window.getView().getCenter().x, window.getView().getCenter().y,
window.getView().getCenter().x, worldPos.y);
if (worldPos.x < window.getView().getCenter().x) dx *= -1;
if (worldPos.y < window.getView().getCenter().y) dy *= -1;
return sf::Vector2f(window.getView().getCenter().x + dx, window.getView().getCenter().y + dy);
}
short vibrate(short duration)
{
#if defined(__ANDROID__)
JNIEnv* env = (JNIEnv*)SDL_AndroidGetJNIEnv();
jobject activity = (jobject)SDL_AndroidGetActivity();
jclass clazz(env->GetObjectClass(activity));
JavaVM* vm;
env->GetJavaVM(&vm);
// First, attach this thread to the main thread
JavaVMAttachArgs attachargs;
attachargs.version = JNI_VERSION_1_6;
attachargs.name = "NativeThread";
attachargs.group = NULL;
jint res = vm->AttachCurrentThread(&env, &attachargs);
if (res == JNI_ERR) return EXIT_FAILURE;
// Retrieve class information
jclass natact = env->FindClass("android/app/NativeActivity");
jclass context = env->FindClass("android/content/Context");
// Get the value of a constant
jfieldID fid = env->GetStaticFieldID(context, "VIBRATOR_SERVICE", "Ljava/lang/String;");
jobject svcstr = env->GetStaticObjectField(context, fid);
// Get the method 'getSystemService' and call it
jmethodID getss = env->GetMethodID(natact, "getSystemService", "(Ljava/lang/String;)Ljava/lang/Object;");
jobject vib_obj = env->CallObjectMethod(activity, getss, svcstr);
// Get the object's class and retrieve the member name
jclass vib_cls = env->GetObjectClass(vib_obj);
jmethodID vibrate = env->GetMethodID(vib_cls, "vibrate", "(J)V");
// Determine the timeframe
jlong length = duration;
// Bzzz!
env->CallVoidMethod(vib_obj, vibrate, length);
// Free references
env->DeleteLocalRef(vib_obj);
env->DeleteLocalRef(vib_cls);
env->DeleteLocalRef(svcstr);
env->DeleteLocalRef(context);
env->DeleteLocalRef(natact);
env->DeleteLocalRef(clazz);
// Detach thread again
// this line is comment because it cause a bug
// vm->DetachCurrentThread();
#elif defined(IS_ENGINE_HTML_5)
EM_ASM_ARGS({
navigator.vibrate($0);
}, duration);
#else
is::showLog("Vibrate Called ! Time : " + is::numToStr(duration) + " ms");
#endif
return 1; // EXIT_SUCCESS;
}
void openURL(const std::string& url, OpenURLAction action)
{
std::string urlStr;
switch(action)
{
case OpenURLAction::Http: urlStr = "http://" + url; break;
case OpenURLAction::Tel: urlStr = "tel:" + url; break;
default: urlStr = "mailto:" + url; break;
}
#if defined(__ANDROID__)
JNIEnv* env = (JNIEnv*)SDL_AndroidGetJNIEnv();
jobject activity = (jobject)SDL_AndroidGetActivity();
JavaVM* vm;
env->GetJavaVM(&vm);
vm->AttachCurrentThread(&env, NULL);
// Retrieve class information
jclass activityClass = env->FindClass("android/app/Activity");
jclass intentClass = env->FindClass("android/content/Intent");
jclass uriClass = env->FindClass("android/net/Uri");
// convert URL std::string to jstring
jstring uriString = env->NewStringUTF(urlStr.c_str());
// call parse method
jmethodID uriParse = env->GetStaticMethodID(uriClass, "parse", "(Ljava/lang/String;)Landroid/net/Uri;");
// set URL in method
jobject uri = env->CallStaticObjectMethod(uriClass, uriParse, uriString);
// intent action
jstring actionString =
env->NewStringUTF((action != OpenURLAction::Tel) ? "android.intent.action.VIEW" : "android.intent.action.DIAL");
// call the intent object constructor
jmethodID newIntent = env->GetMethodID(intentClass, "<init>", "(Ljava/lang/String;Landroid/net/Uri;)V");
// create the intent instance
jobject intent = env->AllocObject(intentClass);
// set intent constructor
env->CallVoidMethod(intent, newIntent, actionString, uri);
jmethodID startActivity = env->GetMethodID(activityClass, "startActivity", "(Landroid/content/Intent;)V");
env->CallVoidMethod(activity, startActivity, intent);
env->DeleteLocalRef(activityClass);
env->DeleteLocalRef(intentClass);
env->DeleteLocalRef(uriClass);
env->DeleteLocalRef(intent);
env->DeleteLocalRef(activity);
//vm->DetachCurrentThread();
#elif defined(IS_ENGINE_HTML_5)
std::vector<std::string> vectorArray;
vectorArray.push_back(urlStr);
EM_ASM_ARGS
({
var vectorArray = new Module.VectorString($0);
window.open(vectorArray.get(0));
}, &vectorArray);
#else
std::string op =
#if !defined(SFML_SYSTEM_LINUX)
std::string("start ")
#else
std::string("xdg-open ")
#endif
.append(urlStr);
system(op.c_str());
#endif
}
#if defined(__ANDROID__)
std::string jstring2string(JNIEnv *env, jstring jStr)
{
if (!jStr) return "";
const jclass stringClass = env->GetObjectClass(jStr);
const jmethodID getBytes = env->GetMethodID(stringClass, "getBytes", "(Ljava/lang/String;)[B");
const jbyteArray stringJbytes = (jbyteArray) env->CallObjectMethod(jStr, getBytes, env->NewStringUTF("UTF-8"));
size_t length = (size_t) env->GetArrayLength(stringJbytes);
jbyte* pBytes = env->GetByteArrayElements(stringJbytes, NULL);
std::string ret = std::string((char *)pBytes, length);
env->ReleaseByteArrayElements(stringJbytes, pBytes, JNI_ABORT);
env->DeleteLocalRef(stringJbytes);
env->DeleteLocalRef(stringClass);
return ret;
}
std::string getDeviceId(JNIEnv *env, ANativeActivity *activity)
{
jclass classActivity = env->FindClass("android/app/NativeActivity");
jclass context = env->FindClass("android/content/Context");
jclass telephony = env->FindClass("android/telephony/TelephonyManager");
jfieldID field = env->GetStaticFieldID(context, "TELEPHONY_SERVICE", "Ljava/lang/String;");
jobject staticField = env->GetStaticObjectField(context, field);
jmethodID getSS = env->GetMethodID(classActivity, "getSystemService", "(Ljava/lang/String;)Ljava/lang/Object;");
jobject objTel = env->CallObjectMethod(activity->clazz, getSS, staticField);
jmethodID getId = env->GetMethodID(telephony, "getDeviceId", "()Ljava/lang/String;");
jstring strId = (jstring)env->CallObjectMethod(objTel, getId);
env->DeleteLocalRef(classActivity);
env->DeleteLocalRef(context);
env->DeleteLocalRef(telephony);
return jstring2string(env, strId);
}
#endif
}
================================================
FILE: app/src/main/cpp/GameKeyData.cpp
================================================
/*
is::Engine (Infinity Solutions Engine)
Copyright (C) 2018-2024 Is Daouda <isdaouda.n@gmail.com>
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 "isEngine/system/function/GameKeyData.h"
namespace is
{
GameKeyData::GameKeyData(is::GameDisplay *scene) :
MainObject(),
m_keyPausePressed(false),
m_keyLeftPressed(false),
m_keyRightPressed(false),
m_keyUpPressed(false),
m_keyDownPressed(false),
m_keyAPressed(false),
m_keyBPressed(false),
m_keyAUsed(false),
m_keyBUsed(false),
m_keyLeftUsed(false),
m_keyRightUsed(false),
m_keyUpUsed(false),
m_keyDownUsed(false),
m_disableAllKey(false),
m_hideGamePad(false),
#if defined(__ANDROID__)
m_moveObj(0.f),
#endif
m_scene(scene)
{
m_strName = "GameKeyData";
m_moveKeyPressed = V_KEY_NONE;
m_actionKeyPressed = V_KEY_NONE;
m_keyboardA = &is::GameConfig::KEY_A;
m_keyboardB = &is::GameConfig::KEY_B;
m_keyboardLeft = &is::GameConfig::KEY_LEFT;
m_keyboardRight = &is::GameConfig::KEY_RIGHT;
m_keyboardUp = &is::GameConfig::KEY_UP;
m_keyboardDown = &is::GameConfig::KEY_DOWN;
loadResources();
}
void GameKeyData::loadResources(bool usePadColorBlack)
{
auto &tex = m_scene->GRMaddTexture("game_pad", is::GameConfig::GUI_DIR + "game_pad.png");
is::createSprite(tex, m_sprJoystick[0], sf::IntRect(0, (!usePadColorBlack) ? 0 : 134, 134, 134), sf::Vector2f(0.f, 0.f), sf::Vector2f(67.f, 67.f));
is::createSprite(tex, m_sprJoystick[1], sf::IntRect(134, ((!m_scene->getGameSystem().m_permutePadAB) ? 0 : 67) + ((!usePadColorBlack) ? 0 : 134), 144, 67),
sf::Vector2f(0.f, 0.f), sf::Vector2f(72.f, 37.f));
is::setSFMLObjSize(m_recJoystickMask[0], 134.f, 134.f);
is::setSFMLObjSize(m_recJoystickMask[1], 144.f, 74.f);
for (int i(0); i < 2; i++)
{
is::setSFMLObjFillColor(m_recJoystickMask[i], sf::Color::Blue);
is::centerSFMLObj(m_recJoystickMask[i]);
}
const float OBJ_SIZE(40.f), _ADD_SIZE(24.f), _ADD_ACT_SIZE(24.f), _ADD_W(16.f);
is::setSFMLObjSize(m_recKeyLeftMask, OBJ_SIZE + _ADD_W, OBJ_SIZE + _ADD_SIZE);
is::setSFMLObjSize(m_recKeyRightMask, OBJ_SIZE + _ADD_W, OBJ_SIZE + _ADD_SIZE);
is::setSFMLObjSize(m_recKeyUpMask, OBJ_SIZE + _ADD_SIZE, OBJ_SIZE + _ADD_W);
is::setSFMLObjSize(m_recKeyDownMask, OBJ_SIZE + _ADD_SIZE, OBJ_SIZE + _ADD_W);
is::setSFMLObjSize(m_recKeyAMask, OBJ_SIZE + _ADD_ACT_SIZE, OBJ_SIZE + _ADD_ACT_SIZE);
is::setSFMLObjSize(m_recKeyBMask, OBJ_SIZE + _ADD_ACT_SIZE, OBJ_SIZE + _ADD_ACT_SIZE);
is::centerSFMLObj(m_recKeyLeftMask);
is::centerSFMLObj(m_recKeyRightMask);
is::centerSFMLObj(m_recKeyUpMask);
is::centerSFMLObj(m_recKeyDownMask);
is::centerSFMLObj(m_recKeyAMask);
is::centerSFMLObj(m_recKeyBMask);
}
void GameKeyData::step(const float &DELTA_TIME)
{
if (!keyAPressed()) m_keyAUsed = false;
if (!keyBPressed()) m_keyBUsed = false;
if (!keyLeftPressed()) m_keyLeftUsed = false;
if (!keyRightPressed()) m_keyRightUsed = false;
if (!keyUpPressed()) m_keyUpUsed = false;
if (!keyDownPressed()) m_keyDownUsed = false;
m_keyLeftPressed = keyLeftPressed();
m_keyRightPressed = keyRightPressed();
m_keyUpPressed = keyUpPressed();
m_keyDownPressed = keyDownPressed();
m_keyAPressed = keyAPressed();
m_keyBPressed = keyBPressed();
if (m_keyLeftPressed)
{
m_keyRightPressed = false;
m_keyUpPressed = false;
m_keyDownPressed = false;
if (!IS_ENGINE_MOBILE_OS) m_moveKeyPressed = V_KEY_LEFT;
}
else if (m_keyRightPressed)
{
m_keyLeftPressed = false;
m_keyUpPressed = false;
m_keyDownPressed = false;
if (!IS_ENGINE_MOBILE_OS) m_moveKeyPressed = V_KEY_RIGHT;
}
else if (m_keyUpPressed)
{
m_keyLeftPressed = false;
m_keyRightPressed = false;
m_keyDownPressed = false;
if (!IS_ENGINE_MOBILE_OS) m_moveKeyPressed = V_KEY_UP;
}
else if (m_keyDownPressed)
{
m_keyLeftPressed = false;
m_keyRightPressed = false;
m_keyUpPressed = false;
if (!IS_ENGINE_MOBILE_OS) m_moveKeyPressed = V_KEY_DOWN;
}
if (is::IS_ENGINE_MOBILE_OS)
{
if (m_hideGamePad)
{
if (m_moveObj < 320.f) m_moveObj += (10.f * is::VALUE_CONVERSION) * DELTA_TIME;
}
else
{
is::decreaseVar(DELTA_TIME, m_moveObj, 8.f, 0.f, 10.f);
}
float moveMaskOnX(0.f), _LIMIT(-19.f), _POS(37.f);
const float _W_SIZE(48.f);
if (m_moveKeyPressed == V_KEY_LEFT) moveMaskOnX = -6.f;
if (m_moveKeyPressed == V_KEY_RIGHT) moveMaskOnX = 6.f;
is::setSFMLObjX_Y(m_sprJoystick[0],
m_scene->getViewX() + m_scene->getGameSystem().m_padDirXPos,
m_scene->getViewY() + m_scene->getGameSystem().m_padDirYPos + m_moveObj);
is::setSFMLObjX_Y(m_sprJoystick[1],
m_scene->getViewX() + m_scene->getGameSystem().m_padActionXPos,
m_scene->getViewY() + m_scene->getGameSystem().m_padActionYPos + m_moveObj);
is::setSFMLObjX_Y(m_recKeyLeftMask, (is::getSFMLObjX(m_sprJoystick[0]) - _W_SIZE / 2.f) + _LIMIT,
is::getSFMLObjY(m_sprJoystick[0]));
is::setSFMLObjX_Y(m_recKeyRightMask, (is::getSFMLObjX(m_sprJoystick[0]) + _W_SIZE / 2.f) - _LIMIT,
is::getSFMLObjY(m_sprJoystick[0]));
is::setSFMLObjX_Y(m_recKeyUpMask, is::getSFMLObjX(m_sprJoystick[0]),
(is::getSFMLObjY(m_sprJoystick[0]) - _W_SIZE / 2.f) + _LIMIT);
is::setSFMLObjX_Y(m_recKeyDownMask, is::getSFMLObjX(m_sprJoystick[0]),
(is::getSFMLObjY(m_sprJoystick[0]) + _W_SIZE / 2.f) - _LIMIT);
is::setSFMLObjX_Y(m_recKeyAMask, is::getSFMLObjX(m_sprJoystick[1]) + (_POS * ((!m_scene->getGameSystem().m_permutePadAB) ? -1.f : 1.f)),
is::getSFMLObjY(m_sprJoystick[1]));
is::setSFMLObjX_Y(m_recKeyBMask, is::getSFMLObjX(m_sprJoystick[1]) + (_POS * ((!m_scene->getGameSystem().m_permutePadAB) ? 1.f : -1.f)),
is::getSFMLObjY(m_sprJoystick[1]));
for (int i(0); i < 2; i++)
{
is::setSFMLObjX_Y(m_recJoystickMask[i], is::getSFMLObjX(m_sprJoystick[i]) + ((i == 0) ? moveMaskOnX : 0.f), is::getSFMLObjY(m_sprJoystick[i]));
is::setSFMLObjAlpha(m_sprJoystick[i], m_scene->getGameSystem().m_padAlpha);
}
}
else
{
if (m_keyAPressed) m_actionKeyPressed = V_KEY_A;
else if (m_keyBPressed) m_actionKeyPressed = V_KEY_B;
else m_actionKeyPressed = V_KEY_NONE;
if (!m_keyLeftPressed && !m_keyRightPressed && !m_keyUpPressed && !m_keyDownPressed) m_moveKeyPressed = V_KEY_NONE;
}
}
void GameKeyData::draw(is::Render &surface)
{
if (is::IS_ENGINE_MOBILE_OS)
{
if (m_moveObj < 320.f)
{
/*
* This displays the virtual key mask on the screen
*
for (int i(0); i < 2; i++) surface.draw(m_recJoystickMask[i]);
surface.draw(m_recKeyLeftMask);
surface.draw(m_recKeyRightMask);
surface.draw(m_recKeyUpMask);
surface.draw(m_recKeyDownMask);
surface.draw(m_recKeyAMask);
surface.draw(m_recKeyBMask);
*/
for (int i(0); i < 2; i++)
{
if (m_scene->getIsPlaying()) surface.draw(m_sprJoystick[i]);
}
}
}
}
bool GameKeyData::checkKeyPressed(VirtualKeyIndex virtualKeyIndex, sf::Keyboard::Key *keyboardIndex)
{
if (m_disableAllKey) return false;
//////////////////////////////////////////////////////////
// Mobile version code
//if (is::IS_ENGINE_MOBILE_OS)
//{
if (virtualKeyPressed(virtualKeyIndex)) return true;
//}
else
//{
if (m_scene->getGameSystem().keyIsPressed(*keyboardIndex)) return true;
//}
//////////////////////////////////////////////////////////
return false;
}
bool GameKeyData::keyLeftPressed()
{
return checkKeyPressed(V_KEY_LEFT, m_keyboardLeft);
}
bool GameKeyData::keyRightPressed()
{
return checkKeyPressed(V_KEY_RIGHT, m_keyboardRight);
}
bool GameKeyData::keyUpPressed()
{
return checkKeyPressed(V_KEY_UP, m_keyboardUp);
}
bool GameKeyData::keyDownPressed()
{
return checkKeyPressed(V_KEY_DOWN, m_keyboardDown);
}
bool GameKeyData::keyAPressed()
{
return checkKeyPressed(V_KEY_A, m_keyboardA);
}
bool GameKeyData::keyBPressed()
{
return checkKeyPressed(V_KEY_B, m_keyboardB);
}
bool GameKeyData::virtualKeyPressed(VirtualKeyIndex virtualKeyIndex)
{
// Joystick controller
bool mouseOnLJoystick(false);
bool mouseOnRJoystick(false);
if (virtualKeyIndex == V_KEY_LEFT || virtualKeyIndex == V_KEY_RIGHT || virtualKeyIndex == V_KEY_UP || virtualKeyIndex == V_KEY_DOWN)
{
// Check collision with left joystick
if (m_scene->mouseCollision(m_recJoystickMask[0]) ||
(IS_ENGINE_MOBILE_OS && m_scene->mouseCollision(m_recJoystickMask[0], 1))) mouseOnLJoystick = true;
if (mouseOnLJoystick)
{
if (m_moveKeyPressed != V_KEY_NONE && m_moveKeyPressed != virtualKeyIndex)
{
if (m_scene->mouseCollision(m_recKeyLeftMask) ||
(IS_ENGINE_MOBILE_OS && m_scene->mouseCollision(m_recKeyLeftMask, 1))) m_moveKeyPressed = V_KEY_LEFT;
else if (m_scene->mouseCollision(m_recKeyRightMask) ||
(IS_ENGINE_MOBILE_OS && m_scene->mouseCollision(m_recKeyRightMask, 1))) m_moveKeyPressed = V_KEY_RIGHT;
else if (m_scene->mouseCollision(m_recKeyUpMask) ||
(IS_ENGINE_MOBILE_OS && m_scene->mouseCollision(m_recKeyUpMask, 1))) m_moveKeyPressed = V_KEY_UP;
else if (m_scene->mouseCollision(m_recKeyDownMask) ||
(IS_ENGINE_MOBILE_OS && m_scene->mouseCollision(m_recKeyDownMask, 1))) m_moveKeyPressed = V_KEY_DOWN;
}
switch (m_moveKeyPressed)
{
case V_KEY_LEFT:
return (m_moveKeyPressed == virtualKeyIndex);
break;
case V_KEY_RIGHT:
return (m_moveKeyPressed == virtualKeyIndex);
break;
case V_KEY_UP:
return (m_moveKeyPressed == virtualKeyIndex);
break;
case V_KEY_DOWN:
return (m_moveKeyPressed == virtualKeyIndex);
break;
default: break;
}
}
// If left joystick pressed
if ((m_scene->getGameSystem().isPressed() ||
(IS_ENGINE_MOBILE_OS && m_scene->getGameSystem().isPressed(1))) && mouseOnLJoystick)
{
switch (virtualKeyIndex)
{
case V_KEY_LEFT:
if (m_scene->mouseCollision(m_recKeyLeftMask) ||
(IS_ENGINE_MOBILE_OS && m_scene->mouseCollision(m_recKeyLeftMask, 1)))
{
m_moveKeyPressed = V_KEY_LEFT;
// is::showLog("L Pressed !");
return true;
}
break;
case V_KEY_RIGHT:
if (m_scene->mouseCollision(m_recKeyRightMask) ||
(IS_ENGINE_MOBILE_OS &
gitextract_09tg11nt/ ├── .gradle/ │ ├── 5.1.1/ │ │ └── gc.properties │ ├── buildOutputCleanup/ │ │ └── cache.properties │ └── vcs-1/ │ └── gc.properties ├── .idea/ │ ├── .gitignore │ ├── caches/ │ │ └── build_file_checksums.ser │ ├── codeStyles/ │ │ └── Project.xml │ ├── compiler.xml │ ├── encodings.xml │ ├── gradle.xml │ ├── is-Engine.iml │ ├── jarRepositories.xml │ ├── misc.xml │ ├── modules/ │ │ ├── app/ │ │ │ └── is-Engine.app.iml │ │ └── is-Engine.iml │ ├── modules.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── CMakeLists.txt ├── LICENSE.md ├── README.md ├── app/ │ ├── CMakeLists.txt │ ├── build.gradle │ └── src/ │ └── main/ │ ├── .vs/ │ │ └── vs-sfml/ │ │ ├── FileContentIndex/ │ │ │ ├── 27af3472-9fff-485a-80f6-a98dd9f34d58.vsidx │ │ │ ├── 4d722eb7-4652-467b-a888-40e24ffc613c.vsidx │ │ │ └── 9cbe5ebd-1110-46d2-a43c-740b2c898a99.vsidx │ │ └── v17/ │ │ ├── .suo │ │ ├── DocumentLayout.json │ │ └── ipch/ │ │ └── AutoPCH/ │ │ ├── ee33401603bb6f9/ │ │ │ └── HELLOSCENE.ipch │ │ └── f64c3c32af64e908/ │ │ └── BASICSFMLMAIN.ipch │ ├── .vscode/ │ │ ├── _keybindings.json │ │ ├── c_cpp_properties.json │ │ ├── launch.json │ │ ├── settings.json │ │ └── tasks.json │ ├── AndroidManifest.xml │ ├── CMakeLists.txt │ ├── Makefile │ ├── Makefile-vscode │ ├── SDL2 Template.aps │ ├── SDL2 Template.rc │ ├── SDL2_SFML.sln │ ├── SDL2_SFML.vcxproj │ ├── SDL2_SFML.vcxproj.filters │ ├── SDL2_SFML.vcxproj.user │ ├── build.sh │ ├── cmake/ │ │ ├── app_src.cmake │ │ ├── isengine.cmake │ │ └── resource.rc │ ├── codeblocks/ │ │ └── resource.rc │ ├── copy_assets.cmd │ ├── cpp/ │ │ ├── GameDialog.cpp │ │ ├── GameDisplay.cpp │ │ ├── GameEngine.cpp │ │ ├── GameFunction.cpp │ │ ├── GameKeyData.cpp │ │ ├── GameSlider.cpp │ │ ├── GameSystem.cpp │ │ ├── GameSystemExtended.cpp │ │ ├── GameTime.cpp │ │ ├── Main.hpp │ │ ├── MainObject.cpp │ │ ├── PCH.hpp │ │ ├── SDL_android_main.c │ │ ├── TransitionEffect.cpp │ │ ├── app_src/ │ │ │ ├── activity/ │ │ │ │ └── GameActivity.h │ │ │ ├── config/ │ │ │ │ ├── ExtraConfig.h │ │ │ │ └── GameConfig.h │ │ │ ├── gamesystem_ext/ │ │ │ │ └── GameSystemExtended.h │ │ │ ├── language/ │ │ │ │ └── GameLanguage.h │ │ │ ├── levels/ │ │ │ │ └── Level.h │ │ │ ├── objects/ │ │ │ │ ├── HelloWorld.h │ │ │ │ └── widgets/ │ │ │ │ └── GameDialog.h │ │ │ └── scenes/ │ │ │ └── HelloScene/ │ │ │ └── HelloScene.h │ │ ├── b2BlockAllocator.cpp │ │ ├── b2Body.cpp │ │ ├── b2BroadPhase.cpp │ │ ├── b2ChainAndCircleContact.cpp │ │ ├── b2ChainAndPolygonContact.cpp │ │ ├── b2ChainShape.cpp │ │ ├── b2CircleContact.cpp │ │ ├── b2CircleShape.cpp │ │ ├── b2CollideCircle.cpp │ │ ├── b2CollideEdge.cpp │ │ ├── b2CollidePolygon.cpp │ │ ├── b2Collision.cpp │ │ ├── b2Contact.cpp │ │ ├── b2ContactManager.cpp │ │ ├── b2ContactSolver.cpp │ │ ├── b2Distance.cpp │ │ ├── b2DistanceJoint.cpp │ │ ├── b2Draw.cpp │ │ ├── b2DynamicTree.cpp │ │ ├── b2EdgeAndCircleContact.cpp │ │ ├── b2EdgeAndPolygonContact.cpp │ │ ├── b2EdgeShape.cpp │ │ ├── b2Fixture.cpp │ │ ├── b2FrictionJoint.cpp │ │ ├── b2GearJoint.cpp │ │ ├── b2Island.cpp │ │ ├── b2Joint.cpp │ │ ├── b2Math.cpp │ │ ├── b2MotorJoint.cpp │ │ ├── b2MouseJoint.cpp │ │ ├── b2PolygonAndCircleContact.cpp │ │ ├── b2PolygonContact.cpp │ │ ├── b2PolygonShape.cpp │ │ ├── b2PrismaticJoint.cpp │ │ ├── b2PulleyJoint.cpp │ │ ├── b2RevoluteJoint.cpp │ │ ├── b2Rope.cpp │ │ ├── b2RopeJoint.cpp │ │ ├── b2Settings.cpp │ │ ├── b2StackAllocator.cpp │ │ ├── b2TimeOfImpact.cpp │ │ ├── b2Timer.cpp │ │ ├── b2WeldJoint.cpp │ │ ├── b2WheelJoint.cpp │ │ ├── b2World.cpp │ │ ├── b2WorldCallbacks.cpp │ │ ├── basicSFMLmain.cpp │ │ ├── isEngine/ │ │ │ ├── core/ │ │ │ │ ├── ActivityController.h │ │ │ │ └── GameEngine.h │ │ │ ├── ext_lib/ │ │ │ │ ├── Box2D/ │ │ │ │ │ ├── Box2D.h │ │ │ │ │ ├── Collision/ │ │ │ │ │ │ ├── Shapes/ │ │ │ │ │ │ │ ├── b2ChainShape.h │ │ │ │ │ │ │ ├── b2CircleShape.h │ │ │ │ │ │ │ ├── b2EdgeShape.h │ │ │ │ │ │ │ ├── b2PolygonShape.h │ │ │ │ │ │ │ └── b2Shape.h │ │ │ │ │ │ ├── b2BroadPhase.h │ │ │ │ │ │ ├── b2Collision.h │ │ │ │ │ │ ├── b2Distance.h │ │ │ │ │ │ ├── b2DynamicTree.h │ │ │ │ │ │ └── b2TimeOfImpact.h │ │ │ │ │ ├── Common/ │ │ │ │ │ │ ├── b2BlockAllocator.h │ │ │ │ │ │ ├── b2Draw.h │ │ │ │ │ │ ├── b2GrowableStack.h │ │ │ │ │ │ ├── b2Math.h │ │ │ │ │ │ ├── b2Settings.h │ │ │ │ │ │ ├── b2StackAllocator.h │ │ │ │ │ │ └── b2Timer.h │ │ │ │ │ ├── Dynamics/ │ │ │ │ │ │ ├── Contacts/ │ │ │ │ │ │ │ ├── b2ChainAndCircleContact.h │ │ │ │ │ │ │ ├── b2ChainAndPolygonContact.h │ │ │ │ │ │ │ ├── b2CircleContact.h │ │ │ │ │ │ │ ├── b2Contact.h │ │ │ │ │ │ │ ├── b2ContactSolver.h │ │ │ │ │ │ │ ├── b2EdgeAndCircleContact.h │ │ │ │ │ │ │ ├── b2EdgeAndPolygonContact.h │ │ │ │ │ │ │ ├── b2PolygonAndCircleContact.h │ │ │ │ │ │ │ └── b2PolygonContact.h │ │ │ │ │ │ ├── Joints/ │ │ │ │ │ │ │ ├── b2DistanceJoint.h │ │ │ │ │ │ │ ├── b2FrictionJoint.h │ │ │ │ │ │ │ ├── b2GearJoint.h │ │ │ │ │ │ │ ├── b2Joint.h │ │ │ │ │ │ │ ├── b2MotorJoint.h │ │ │ │ │ │ │ ├── b2MouseJoint.h │ │ │ │ │ │ │ ├── b2PrismaticJoint.h │ │ │ │ │ │ │ ├── b2PulleyJoint.h │ │ │ │ │ │ │ ├── b2RevoluteJoint.h │ │ │ │ │ │ │ ├── b2RopeJoint.h │ │ │ │ │ │ │ ├── b2WeldJoint.h │ │ │ │ │ │ │ └── b2WheelJoint.h │ │ │ │ │ │ ├── b2Body.h │ │ │ │ │ │ ├── b2ContactManager.h │ │ │ │ │ │ ├── b2Fixture.h │ │ │ │ │ │ ├── b2Island.h │ │ │ │ │ │ ├── b2TimeStep.h │ │ │ │ │ │ ├── b2World.h │ │ │ │ │ │ └── b2WorldCallbacks.h │ │ │ │ │ └── Rope/ │ │ │ │ │ └── b2Rope.h │ │ │ │ ├── TMXLite/ │ │ │ │ │ ├── Config.hpp │ │ │ │ │ ├── FreeFuncs.cpp │ │ │ │ │ ├── FreeFuncs.hpp │ │ │ │ │ ├── ImageLayer.cpp │ │ │ │ │ ├── ImageLayer.hpp │ │ │ │ │ ├── Layer.hpp │ │ │ │ │ ├── LayerGroup.cpp │ │ │ │ │ ├── LayerGroup.hpp │ │ │ │ │ ├── Map.cpp │ │ │ │ │ ├── Map.hpp │ │ │ │ │ ├── Object.cpp │ │ │ │ │ ├── Object.hpp │ │ │ │ │ ├── ObjectGroup.cpp │ │ │ │ │ ├── ObjectGroup.hpp │ │ │ │ │ ├── Property.cpp │ │ │ │ │ ├── Property.hpp │ │ │ │ │ ├── TileLayer.cpp │ │ │ │ │ ├── TileLayer.hpp │ │ │ │ │ ├── Tileset.cpp │ │ │ │ │ ├── Tileset.hpp │ │ │ │ │ ├── Types.hpp │ │ │ │ │ ├── Types.inl │ │ │ │ │ ├── detail/ │ │ │ │ │ │ ├── Android.hpp │ │ │ │ │ │ ├── Log.hpp │ │ │ │ │ │ ├── pugiconfig.hpp │ │ │ │ │ │ ├── pugixml.LICENSE │ │ │ │ │ │ ├── pugixml.cpp │ │ │ │ │ │ └── pugixml.hpp │ │ │ │ │ ├── miniz.c │ │ │ │ │ └── miniz.h │ │ │ │ └── TinyFileDialogs/ │ │ │ │ ├── TinyDialogBox.h │ │ │ │ ├── tinyfiledialogs.cpp │ │ │ │ └── tinyfiledialogs.h │ │ │ └── system/ │ │ │ ├── display/ │ │ │ │ ├── GameDisplay.h │ │ │ │ ├── SDM.h │ │ │ │ └── SDMBlitSDLSprite.h │ │ │ ├── entity/ │ │ │ │ ├── Background.h │ │ │ │ ├── Button.h │ │ │ │ ├── Form.h │ │ │ │ ├── MainObject.h │ │ │ │ └── parents/ │ │ │ │ ├── DepthObject.h │ │ │ │ ├── Destructible.h │ │ │ │ ├── FilePath.h │ │ │ │ ├── Health.h │ │ │ │ ├── HurtEffect.h │ │ │ │ ├── Name.h │ │ │ │ ├── ScorePoint.h │ │ │ │ ├── Step.h │ │ │ │ ├── Type.h │ │ │ │ └── Visibilty.h │ │ │ ├── function/ │ │ │ │ ├── GameFunction.h │ │ │ │ ├── GameKeyData.h │ │ │ │ ├── GameKeyName.h │ │ │ │ ├── GameSlider.h │ │ │ │ ├── GameSystem.h │ │ │ │ └── GameTime.h │ │ │ ├── graphic/ │ │ │ │ ├── GRM.h │ │ │ │ ├── GameFont.h │ │ │ │ ├── GameTexture.h │ │ │ │ └── TransitionEffect.h │ │ │ ├── islibconnect/ │ │ │ │ ├── isEngineSDLWrapper.h │ │ │ │ ├── isEngineVector2Wrapper.inl │ │ │ │ ├── isEngineWrapper.h │ │ │ │ └── isLibConnect.h │ │ │ └── sound/ │ │ │ ├── GSM.h │ │ │ ├── GameMusic.h │ │ │ └── GameSound.h │ │ ├── isEngineSDLWrapper.cpp │ │ ├── isEngineWrapper.cpp │ │ ├── main.cpp │ │ ├── resource.h │ │ └── vscode/ │ │ ├── Linux/ │ │ │ ├── LinuxHelper.cpp │ │ │ └── LinuxHelper.hpp │ │ ├── MacOS/ │ │ │ ├── MacHelper.cpp │ │ │ └── MacHelper.hpp │ │ ├── Utility/ │ │ │ └── Types.hpp │ │ └── Win32/ │ │ ├── Icon.h │ │ ├── Icon.rc │ │ ├── WindowsHelper.cpp │ │ └── WindowsHelper.hpp │ ├── env/ │ │ ├── .all.mk │ │ ├── .debug.mk │ │ ├── .release.mk │ │ ├── linux/ │ │ │ └── exec.desktop │ │ ├── linux.all.mk │ │ ├── osx/ │ │ │ ├── Info.plist.json │ │ │ └── dmg.applescript │ │ ├── osx.all.mk │ │ ├── osx.debug.mk │ │ ├── rpi.release.mk │ │ ├── windows/ │ │ │ ├── win-make_icon_from256.sh │ │ │ └── win-make_icon_from_all.sh │ │ ├── windows.all.mk │ │ ├── windows.debug.mk │ │ └── windows.release.mk │ ├── external/ │ │ └── SFML/ │ │ ├── include/ │ │ │ └── SFML/ │ │ │ ├── Audio/ │ │ │ │ ├── AlResource.hpp │ │ │ │ ├── Export.hpp │ │ │ │ ├── InputSoundFile.hpp │ │ │ │ ├── Listener.hpp │ │ │ │ ├── Music.hpp │ │ │ │ ├── OutputSoundFile.hpp │ │ │ │ ├── Sound.hpp │ │ │ │ ├── SoundBuffer.hpp │ │ │ │ ├── SoundBufferRecorder.hpp │ │ │ │ ├── SoundFileFactory.hpp │ │ │ │ ├── SoundFileFactory.inl │ │ │ │ ├── SoundFileReader.hpp │ │ │ │ ├── SoundFileWriter.hpp │ │ │ │ ├── SoundRecorder.hpp │ │ │ │ ├── SoundSource.hpp │ │ │ │ └── SoundStream.hpp │ │ │ ├── Audio.hpp │ │ │ ├── Config.hpp │ │ │ ├── GpuPreference.hpp │ │ │ ├── Graphics/ │ │ │ │ ├── BlendMode.hpp │ │ │ │ ├── CircleShape.hpp │ │ │ │ ├── Color.hpp │ │ │ │ ├── ConvexShape.hpp │ │ │ │ ├── Drawable.hpp │ │ │ │ ├── Export.hpp │ │ │ │ ├── Font.hpp │ │ │ │ ├── Glsl.hpp │ │ │ │ ├── Glsl.inl │ │ │ │ ├── Glyph.hpp │ │ │ │ ├── Image.hpp │ │ │ │ ├── PrimitiveType.hpp │ │ │ │ ├── Rect.hpp │ │ │ │ ├── Rect.inl │ │ │ │ ├── RectangleShape.hpp │ │ │ │ ├── RenderStates.hpp │ │ │ │ ├── RenderTarget.hpp │ │ │ │ ├── RenderTexture.hpp │ │ │ │ ├── RenderWindow.hpp │ │ │ │ ├── Shader.hpp │ │ │ │ ├── Shape.hpp │ │ │ │ ├── Sprite.hpp │ │ │ │ ├── Text.hpp │ │ │ │ ├── Texture.hpp │ │ │ │ ├── Transform.hpp │ │ │ │ ├── Transformable.hpp │ │ │ │ ├── Vertex.hpp │ │ │ │ ├── VertexArray.hpp │ │ │ │ ├── VertexBuffer.hpp │ │ │ │ └── View.hpp │ │ │ ├── Graphics.hpp │ │ │ ├── Main.hpp │ │ │ ├── Network/ │ │ │ │ ├── Export.hpp │ │ │ │ ├── Ftp.hpp │ │ │ │ ├── Http.hpp │ │ │ │ ├── IpAddress.hpp │ │ │ │ ├── Packet.hpp │ │ │ │ ├── Socket.hpp │ │ │ │ ├── SocketHandle.hpp │ │ │ │ ├── SocketSelector.hpp │ │ │ │ ├── TcpListener.hpp │ │ │ │ ├── TcpSocket.hpp │ │ │ │ └── UdpSocket.hpp │ │ │ ├── Network.hpp │ │ │ ├── OpenGL.hpp │ │ │ ├── System/ │ │ │ │ ├── Clock.hpp │ │ │ │ ├── Err.hpp │ │ │ │ ├── Export.hpp │ │ │ │ ├── FileInputStream.hpp │ │ │ │ ├── InputStream.hpp │ │ │ │ ├── Lock.hpp │ │ │ │ ├── MemoryInputStream.hpp │ │ │ │ ├── Mutex.hpp │ │ │ │ ├── NativeActivity.hpp │ │ │ │ ├── NonCopyable.hpp │ │ │ │ ├── Sleep.hpp │ │ │ │ ├── String.hpp │ │ │ │ ├── String.inl │ │ │ │ ├── Thread.hpp │ │ │ │ ├── Thread.inl │ │ │ │ ├── ThreadLocal.hpp │ │ │ │ ├── ThreadLocalPtr.hpp │ │ │ │ ├── ThreadLocalPtr.inl │ │ │ │ ├── Time.hpp │ │ │ │ ├── Utf.hpp │ │ │ │ ├── Utf.inl │ │ │ │ ├── Vector2.hpp │ │ │ │ ├── Vector2.inl │ │ │ │ ├── Vector3.hpp │ │ │ │ └── Vector3.inl │ │ │ ├── System.hpp │ │ │ ├── Window/ │ │ │ │ ├── Clipboard.hpp │ │ │ │ ├── Context.hpp │ │ │ │ ├── ContextSettings.hpp │ │ │ │ ├── Cursor.hpp │ │ │ │ ├── Event.hpp │ │ │ │ ├── Export.hpp │ │ │ │ ├── GlResource.hpp │ │ │ │ ├── Joystick.hpp │ │ │ │ ├── Keyboard.hpp │ │ │ │ ├── Mouse.hpp │ │ │ │ ├── Sensor.hpp │ │ │ │ ├── Touch.hpp │ │ │ │ ├── VideoMode.hpp │ │ │ │ ├── Vulkan.hpp │ │ │ │ ├── Window.hpp │ │ │ │ ├── WindowBase.hpp │ │ │ │ ├── WindowHandle.hpp │ │ │ │ └── WindowStyle.hpp │ │ │ └── Window.hpp │ │ └── lib/ │ │ ├── Debug/ │ │ │ ├── sfml-audio-s-d.pdb │ │ │ ├── sfml-audio-s.pdb │ │ │ ├── sfml-audio.pdb │ │ │ ├── sfml-graphics-s-d.pdb │ │ │ ├── sfml-graphics-s.pdb │ │ │ ├── sfml-graphics.pdb │ │ │ ├── sfml-main-d.pdb │ │ │ ├── sfml-main-s.pdb │ │ │ ├── sfml-network-s-d.pdb │ │ │ ├── sfml-network-s.pdb │ │ │ ├── sfml-network.pdb │ │ │ ├── sfml-system-s-d.pdb │ │ │ ├── sfml-system-s.pdb │ │ │ ├── sfml-system.pdb │ │ │ ├── sfml-window-s-d.pdb │ │ │ ├── sfml-window-s.pdb │ │ │ └── sfml-window.pdb │ │ ├── cmake/ │ │ │ └── SFML/ │ │ │ ├── SFMLConfig.cmake │ │ │ ├── SFMLConfigDependencies.cmake │ │ │ ├── SFMLConfigVersion.cmake │ │ │ ├── SFMLSharedTargets-debug.cmake │ │ │ ├── SFMLSharedTargets-release.cmake │ │ │ ├── SFMLSharedTargets.cmake │ │ │ ├── SFMLStaticTargets-debug.cmake │ │ │ ├── SFMLStaticTargets-release.cmake │ │ │ └── SFMLStaticTargets.cmake │ │ ├── flac.lib │ │ ├── freetype.lib │ │ ├── ogg.lib │ │ ├── openal32.lib │ │ ├── sfml-audio-d.lib │ │ ├── sfml-audio-s-d.lib │ │ ├── sfml-audio-s.lib │ │ ├── sfml-audio.lib │ │ ├── sfml-graphics-d.lib │ │ ├── sfml-graphics-s-d.lib │ │ ├── sfml-graphics-s.lib │ │ ├── sfml-graphics.lib │ │ ├── sfml-main-d.lib │ │ ├── sfml-main.lib │ │ ├── sfml-network-d.lib │ │ ├── sfml-network-s-d.lib │ │ ├── sfml-network-s.lib │ │ ├── sfml-network.lib │ │ ├── sfml-system-d.lib │ │ ├── sfml-system-s-d.lib │ │ ├── sfml-system-s.lib │ │ ├── sfml-system.lib │ │ ├── sfml-window-d.lib │ │ ├── sfml-window-s-d.lib │ │ ├── sfml-window-s.lib │ │ ├── sfml-window.lib │ │ ├── vorbis.lib │ │ ├── vorbisenc.lib │ │ └── vorbisfile.lib │ ├── is-Engine-linux-SDL2.cbp │ ├── is-Engine-linux.cbp │ ├── is-Engine-windows-SDL2.cbp │ ├── is-Engine-windows.cbp │ ├── java/ │ │ └── com/ │ │ └── author/ │ │ └── isengine/ │ │ └── SDLActivity.java │ ├── lib/ │ │ └── catch2/ │ │ └── catch.hpp │ ├── qt/ │ │ ├── is-Engine.pro │ │ └── is-Engine.pro.user │ ├── res/ │ │ └── values/ │ │ └── strings.xml │ ├── vs-sfml.sln │ ├── vs-sfml.vcxproj │ ├── vs-sfml.vcxproj.filters │ ├── vs-sfml.vcxproj.user │ └── web/ │ ├── index.html │ ├── scripts/ │ │ └── main.js │ ├── styles/ │ │ └── index.css │ └── sw.js ├── build.gradle ├── doc/ │ ├── isEngine_api_doc_eng.html │ └── isEngine_api_doc_fr.html ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── libs/ │ ├── SDL2/ │ │ ├── CMakeFiles/ │ │ │ └── SDL2.dir/ │ │ │ └── src/ │ │ │ ├── SDL.c.o │ │ │ ├── SDL_assert.c.o │ │ │ ├── SDL_error.c.o │ │ │ ├── SDL_hints.c.o │ │ │ ├── SDL_log.c.o │ │ │ ├── atomic/ │ │ │ │ ├── SDL_atomic.c.o │ │ │ │ └── SDL_spinlock.c.o │ │ │ ├── audio/ │ │ │ │ ├── SDL_audio.c.o │ │ │ │ ├── SDL_audiocvt.c.o │ │ │ │ ├── SDL_audiodev.c.o │ │ │ │ ├── SDL_audiotypecvt.c.o │ │ │ │ ├── SDL_mixer.c.o │ │ │ │ ├── SDL_wave.c.o │ │ │ │ ├── android/ │ │ │ │ │ └── SDL_androidaudio.c.o │ │ │ │ ├── dummy/ │ │ │ │ │ └── SDL_dummyaudio.c.o │ │ │ │ └── paudio/ │ │ │ │ └── SDL_paudio.c.o │ │ │ ├── core/ │ │ │ │ └── android/ │ │ │ │ └── SDL_android.c.o │ │ │ ├── cpuinfo/ │ │ │ │ └── SDL_cpuinfo.c.o │ │ │ ├── dynapi/ │ │ │ │ └── SDL_dynapi.c.o │ │ │ ├── events/ │ │ │ │ ├── SDL_clipboardevents.c.o │ │ │ │ ├── SDL_dropevents.c.o │ │ │ │ ├── SDL_events.c.o │ │ │ │ ├── SDL_gesture.c.o │ │ │ │ ├── SDL_keyboard.c.o │ │ │ │ ├── SDL_mouse.c.o │ │ │ │ ├── SDL_quit.c.o │ │ │ │ ├── SDL_touch.c.o │ │ │ │ └── SDL_windowevents.c.o │ │ │ ├── file/ │ │ │ │ └── SDL_rwops.c.o │ │ │ ├── filesystem/ │ │ │ │ └── android/ │ │ │ │ └── SDL_sysfilesystem.c.o │ │ │ ├── haptic/ │ │ │ │ ├── SDL_haptic.c.o │ │ │ │ └── dummy/ │ │ │ │ └── SDL_syshaptic.c.o │ │ │ ├── joystick/ │ │ │ │ ├── SDL_gamecontroller.c.o │ │ │ │ ├── SDL_joystick.c.o │ │ │ │ └── android/ │ │ │ │ └── SDL_sysjoystick.c.o │ │ │ ├── libm/ │ │ │ │ ├── e_atan2.c.o │ │ │ │ ├── e_log.c.o │ │ │ │ ├── e_pow.c.o │ │ │ │ ├── e_rem_pio2.c.o │ │ │ │ ├── e_sqrt.c.o │ │ │ │ ├── k_cos.c.o │ │ │ │ ├── k_rem_pio2.c.o │ │ │ │ ├── k_sin.c.o │ │ │ │ ├── k_tan.c.o │ │ │ │ ├── s_atan.c.o │ │ │ │ ├── s_copysign.c.o │ │ │ │ ├── s_cos.c.o │ │ │ │ ├── s_fabs.c.o │ │ │ │ ├── s_floor.c.o │ │ │ │ ├── s_scalbn.c.o │ │ │ │ ├── s_sin.c.o │ │ │ │ └── s_tan.c.o │ │ │ ├── loadso/ │ │ │ │ └── dlopen/ │ │ │ │ └── SDL_sysloadso.c.o │ │ │ ├── power/ │ │ │ │ ├── SDL_power.c.o │ │ │ │ └── android/ │ │ │ │ └── SDL_syspower.c.o │ │ │ ├── render/ │ │ │ │ ├── SDL_d3dmath.c.o │ │ │ │ ├── SDL_render.c.o │ │ │ │ ├── SDL_yuv_mmx.c.o │ │ │ │ ├── SDL_yuv_sw.c.o │ │ │ │ ├── opengl/ │ │ │ │ │ ├── SDL_render_gl.c.o │ │ │ │ │ └── SDL_shaders_gl.c.o │ │ │ │ ├── opengles/ │ │ │ │ │ └── SDL_render_gles.c.o │ │ │ │ ├── opengles2/ │ │ │ │ │ ├── SDL_render_gles2.c.o │ │ │ │ │ └── SDL_shaders_gles2.c.o │ │ │ │ ├── psp/ │ │ │ │ │ └── SDL_render_psp.c.o │ │ │ │ └── software/ │ │ │ │ ├── SDL_blendfillrect.c.o │ │ │ │ ├── SDL_blendline.c.o │ │ │ │ ├── SDL_blendpoint.c.o │ │ │ │ ├── SDL_drawline.c.o │ │ │ │ ├── SDL_drawpoint.c.o │ │ │ │ ├── SDL_render_sw.c.o │ │ │ │ └── SDL_rotate.c.o │ │ │ ├── stdlib/ │ │ │ │ ├── SDL_getenv.c.o │ │ │ │ ├── SDL_iconv.c.o │ │ │ │ ├── SDL_malloc.c.o │ │ │ │ ├── SDL_qsort.c.o │ │ │ │ ├── SDL_stdlib.c.o │ │ │ │ └── SDL_string.c.o │ │ │ ├── test/ │ │ │ │ ├── SDL_test_assert.c.o │ │ │ │ ├── SDL_test_common.c.o │ │ │ │ ├── SDL_test_compare.c.o │ │ │ │ ├── SDL_test_crc32.c.o │ │ │ │ ├── SDL_test_font.c.o │ │ │ │ ├── SDL_test_fuzzer.c.o │ │ │ │ ├── SDL_test_harness.c.o │ │ │ │ ├── SDL_test_imageBlit.c.o │ │ │ │ ├── SDL_test_imageBlitBlend.c.o │ │ │ │ ├── SDL_test_imageFace.c.o │ │ │ │ ├── SDL_test_imagePrimitives.c.o │ │ │ │ ├── SDL_test_imagePrimitivesBlend.c.o │ │ │ │ ├── SDL_test_log.c.o │ │ │ │ ├── SDL_test_md5.c.o │ │ │ │ └── SDL_test_random.c.o │ │ │ ├── thread/ │ │ │ │ ├── SDL_thread.c.o │ │ │ │ └── pthread/ │ │ │ │ ├── SDL_syscond.c.o │ │ │ │ ├── SDL_sysmutex.c.o │ │ │ │ ├── SDL_syssem.c.o │ │ │ │ ├── SDL_systhread.c.o │ │ │ │ └── SDL_systls.c.o │ │ │ ├── timer/ │ │ │ │ ├── SDL_timer.c.o │ │ │ │ └── unix/ │ │ │ │ └── SDL_systimer.c.o │ │ │ └── video/ │ │ │ ├── SDL_RLEaccel.c.o │ │ │ ├── SDL_blit.c.o │ │ │ ├── SDL_blit_0.c.o │ │ │ ├── SDL_blit_1.c.o │ │ │ ├── SDL_blit_A.c.o │ │ │ ├── SDL_blit_N.c.o │ │ │ ├── SDL_blit_auto.c.o │ │ │ ├── SDL_blit_copy.c.o │ │ │ ├── SDL_blit_slow.c.o │ │ │ ├── SDL_bmp.c.o │ │ │ ├── SDL_clipboard.c.o │ │ │ ├── SDL_egl.c.o │ │ │ ├── SDL_fillrect.c.o │ │ │ ├── SDL_pixels.c.o │ │ │ ├── SDL_rect.c.o │ │ │ ├── SDL_shape.c.o │ │ │ ├── SDL_stretch.c.o │ │ │ ├── SDL_surface.c.o │ │ │ ├── SDL_video.c.o │ │ │ └── android/ │ │ │ ├── SDL_androidclipboard.c.o │ │ │ ├── SDL_androidevents.c.o │ │ │ ├── SDL_androidgl.c.o │ │ │ ├── SDL_androidkeyboard.c.o │ │ │ ├── SDL_androidmessagebox.c.o │ │ │ ├── SDL_androidmouse.c.o │ │ │ ├── SDL_androidtouch.c.o │ │ │ ├── SDL_androidvideo.c.o │ │ │ └── SDL_androidwindow.c.o │ │ ├── CMakeLists.txt │ │ ├── build.gradle │ │ ├── cmake_install.cmake │ │ ├── include/ │ │ │ ├── SDL.h │ │ │ ├── SDL_assert.h │ │ │ ├── SDL_atomic.h │ │ │ ├── SDL_audio.h │ │ │ ├── SDL_bits.h │ │ │ ├── SDL_blendmode.h │ │ │ ├── SDL_clipboard.h │ │ │ ├── SDL_config.h │ │ │ ├── SDL_config.h.cmake │ │ │ ├── SDL_config.h.in │ │ │ ├── SDL_config_android.h │ │ │ ├── SDL_config_iphoneos.h │ │ │ ├── SDL_config_macosx.h │ │ │ ├── SDL_config_minimal.h │ │ │ ├── SDL_config_pandora.h │ │ │ ├── SDL_config_psp.h │ │ │ ├── SDL_config_windows.h │ │ │ ├── SDL_config_winrt.h │ │ │ ├── SDL_config_wiz.h │ │ │ ├── SDL_copying.h │ │ │ ├── SDL_cpuinfo.h │ │ │ ├── SDL_egl.h │ │ │ ├── SDL_endian.h │ │ │ ├── SDL_error.h │ │ │ ├── SDL_events.h │ │ │ ├── SDL_filesystem.h │ │ │ ├── SDL_gamecontroller.h │ │ │ ├── SDL_gesture.h │ │ │ ├── SDL_haptic.h │ │ │ ├── SDL_hints.h │ │ │ ├── SDL_joystick.h │ │ │ ├── SDL_keyboard.h │ │ │ ├── SDL_keycode.h │ │ │ ├── SDL_loadso.h │ │ │ ├── SDL_log.h │ │ │ ├── SDL_main.h │ │ │ ├── SDL_messagebox.h │ │ │ ├── SDL_mouse.h │ │ │ ├── SDL_mutex.h │ │ │ ├── SDL_name.h │ │ │ ├── SDL_opengl.h │ │ │ ├── SDL_opengl_glext.h │ │ │ ├── SDL_opengles.h │ │ │ ├── SDL_opengles2.h │ │ │ ├── SDL_opengles2_gl2.h │ │ │ ├── SDL_opengles2_gl2ext.h │ │ │ ├── SDL_opengles2_gl2platform.h │ │ │ ├── SDL_opengles2_khrplatform.h │ │ │ ├── SDL_pixels.h │ │ │ ├── SDL_platform.h │ │ │ ├── SDL_power.h │ │ │ ├── SDL_quit.h │ │ │ ├── SDL_rect.h │ │ │ ├── SDL_render.h │ │ │ ├── SDL_revision.h │ │ │ ├── SDL_rwops.h │ │ │ ├── SDL_scancode.h │ │ │ ├── SDL_shape.h │ │ │ ├── SDL_stdinc.h │ │ │ ├── SDL_surface.h │ │ │ ├── SDL_system.h │ │ │ ├── SDL_syswm.h │ │ │ ├── SDL_test.h │ │ │ ├── SDL_test_assert.h │ │ │ ├── SDL_test_common.h │ │ │ ├── SDL_test_compare.h │ │ │ ├── SDL_test_crc32.h │ │ │ ├── SDL_test_font.h │ │ │ ├── SDL_test_fuzzer.h │ │ │ ├── SDL_test_harness.h │ │ │ ├── SDL_test_images.h │ │ │ ├── SDL_test_log.h │ │ │ ├── SDL_test_md5.h │ │ │ ├── SDL_test_random.h │ │ │ ├── SDL_thread.h │ │ │ ├── SDL_timer.h │ │ │ ├── SDL_touch.h │ │ │ ├── SDL_types.h │ │ │ ├── SDL_version.h │ │ │ ├── SDL_video.h │ │ │ ├── begin_code.h │ │ │ └── close_code.h │ │ └── src/ │ │ ├── SDL.c │ │ ├── SDL_assert.c │ │ ├── SDL_assert_c.h │ │ ├── SDL_error.c │ │ ├── SDL_error_c.h │ │ ├── SDL_hints.c │ │ ├── SDL_internal.h │ │ ├── SDL_log.c │ │ ├── atomic/ │ │ │ ├── SDL_atomic.c │ │ │ └── SDL_spinlock.c │ │ ├── audio/ │ │ │ ├── SDL_audio.c │ │ │ ├── SDL_audio_c.h │ │ │ ├── SDL_audiocvt.c │ │ │ ├── SDL_audiodev.c │ │ │ ├── SDL_audiodev_c.h │ │ │ ├── SDL_audiotypecvt.c │ │ │ ├── SDL_mixer.c │ │ │ ├── SDL_sysaudio.h │ │ │ ├── SDL_wave.c │ │ │ ├── SDL_wave.h │ │ │ ├── android/ │ │ │ │ ├── SDL_androidaudio.c │ │ │ │ └── SDL_androidaudio.h │ │ │ ├── dummy/ │ │ │ │ ├── SDL_dummyaudio.c │ │ │ │ └── SDL_dummyaudio.h │ │ │ ├── paudio/ │ │ │ │ ├── SDL_paudio.c │ │ │ │ └── SDL_paudio.h │ │ │ └── sdlgenaudiocvt.pl │ │ ├── core/ │ │ │ └── android/ │ │ │ ├── SDL_android.c │ │ │ └── SDL_android.h │ │ ├── cpuinfo/ │ │ │ └── SDL_cpuinfo.c │ │ ├── dynapi/ │ │ │ ├── SDL_dynapi.c │ │ │ ├── SDL_dynapi.h │ │ │ ├── SDL_dynapi_overrides.h │ │ │ ├── SDL_dynapi_procs.h │ │ │ └── gendynapi.pl │ │ ├── events/ │ │ │ ├── SDL_clipboardevents.c │ │ │ ├── SDL_clipboardevents_c.h │ │ │ ├── SDL_dropevents.c │ │ │ ├── SDL_dropevents_c.h │ │ │ ├── SDL_events.c │ │ │ ├── SDL_events_c.h │ │ │ ├── SDL_gesture.c │ │ │ ├── SDL_gesture_c.h │ │ │ ├── SDL_keyboard.c │ │ │ ├── SDL_keyboard_c.h │ │ │ ├── SDL_mouse.c │ │ │ ├── SDL_mouse_c.h │ │ │ ├── SDL_quit.c │ │ │ ├── SDL_sysevents.h │ │ │ ├── SDL_touch.c │ │ │ ├── SDL_touch_c.h │ │ │ ├── SDL_windowevents.c │ │ │ ├── SDL_windowevents_c.h │ │ │ ├── blank_cursor.h │ │ │ ├── default_cursor.h │ │ │ ├── scancodes_darwin.h │ │ │ ├── scancodes_linux.h │ │ │ ├── scancodes_windows.h │ │ │ └── scancodes_xfree86.h │ │ ├── file/ │ │ │ └── SDL_rwops.c │ │ ├── filesystem/ │ │ │ └── android/ │ │ │ └── SDL_sysfilesystem.c │ │ ├── haptic/ │ │ │ ├── SDL_haptic.c │ │ │ ├── SDL_haptic_c.h │ │ │ ├── SDL_syshaptic.h │ │ │ └── dummy/ │ │ │ └── SDL_syshaptic.c │ │ ├── joystick/ │ │ │ ├── SDL_gamecontroller.c │ │ │ ├── SDL_gamecontrollerdb.h │ │ │ ├── SDL_joystick.c │ │ │ ├── SDL_joystick_c.h │ │ │ ├── SDL_sysjoystick.h │ │ │ ├── android/ │ │ │ │ ├── SDL_sysjoystick.c │ │ │ │ └── SDL_sysjoystick_c.h │ │ │ └── sort_controllers.py │ │ ├── libm/ │ │ │ ├── e_atan2.c │ │ │ ├── e_log.c │ │ │ ├── e_pow.c │ │ │ ├── e_rem_pio2.c │ │ │ ├── e_sqrt.c │ │ │ ├── k_cos.c │ │ │ ├── k_rem_pio2.c │ │ │ ├── k_sin.c │ │ │ ├── k_tan.c │ │ │ ├── math_libm.h │ │ │ ├── math_private.h │ │ │ ├── s_atan.c │ │ │ ├── s_copysign.c │ │ │ ├── s_cos.c │ │ │ ├── s_fabs.c │ │ │ ├── s_floor.c │ │ │ ├── s_scalbn.c │ │ │ ├── s_sin.c │ │ │ └── s_tan.c │ │ ├── loadso/ │ │ │ └── dlopen/ │ │ │ └── SDL_sysloadso.c │ │ ├── power/ │ │ │ ├── SDL_power.c │ │ │ └── android/ │ │ │ └── SDL_syspower.c │ │ ├── render/ │ │ │ ├── SDL_d3dmath.c │ │ │ ├── SDL_d3dmath.h │ │ │ ├── SDL_render.c │ │ │ ├── SDL_sysrender.h │ │ │ ├── SDL_yuv_mmx.c │ │ │ ├── SDL_yuv_sw.c │ │ │ ├── SDL_yuv_sw_c.h │ │ │ ├── mmx.h │ │ │ ├── opengl/ │ │ │ │ ├── SDL_glfuncs.h │ │ │ │ ├── SDL_render_gl.c │ │ │ │ ├── SDL_shaders_gl.c │ │ │ │ └── SDL_shaders_gl.h │ │ │ ├── opengles/ │ │ │ │ ├── SDL_glesfuncs.h │ │ │ │ └── SDL_render_gles.c │ │ │ ├── opengles2/ │ │ │ │ ├── SDL_gles2funcs.h │ │ │ │ ├── SDL_render_gles2.c │ │ │ │ ├── SDL_shaders_gles2.c │ │ │ │ └── SDL_shaders_gles2.h │ │ │ ├── psp/ │ │ │ │ └── SDL_render_psp.c │ │ │ └── software/ │ │ │ ├── SDL_blendfillrect.c │ │ │ ├── SDL_blendfillrect.h │ │ │ ├── SDL_blendline.c │ │ │ ├── SDL_blendline.h │ │ │ ├── SDL_blendpoint.c │ │ │ ├── SDL_blendpoint.h │ │ │ ├── SDL_draw.h │ │ │ ├── SDL_drawline.c │ │ │ ├── SDL_drawline.h │ │ │ ├── SDL_drawpoint.c │ │ │ ├── SDL_drawpoint.h │ │ │ ├── SDL_render_sw.c │ │ │ ├── SDL_render_sw_c.h │ │ │ ├── SDL_rotate.c │ │ │ └── SDL_rotate.h │ │ ├── stdlib/ │ │ │ ├── SDL_getenv.c │ │ │ ├── SDL_iconv.c │ │ │ ├── SDL_malloc.c │ │ │ ├── SDL_qsort.c │ │ │ ├── SDL_stdlib.c │ │ │ └── SDL_string.c │ │ ├── test/ │ │ │ ├── SDL_test_assert.c │ │ │ ├── SDL_test_common.c │ │ │ ├── SDL_test_compare.c │ │ │ ├── SDL_test_crc32.c │ │ │ ├── SDL_test_font.c │ │ │ ├── SDL_test_fuzzer.c │ │ │ ├── SDL_test_harness.c │ │ │ ├── SDL_test_imageBlit.c │ │ │ ├── SDL_test_imageBlitBlend.c │ │ │ ├── SDL_test_imageFace.c │ │ │ ├── SDL_test_imagePrimitives.c │ │ │ ├── SDL_test_imagePrimitivesBlend.c │ │ │ ├── SDL_test_log.c │ │ │ ├── SDL_test_md5.c │ │ │ └── SDL_test_random.c │ │ ├── thread/ │ │ │ ├── SDL_systhread.h │ │ │ ├── SDL_thread.c │ │ │ ├── SDL_thread_c.h │ │ │ └── pthread/ │ │ │ ├── SDL_syscond.c │ │ │ ├── SDL_sysmutex.c │ │ │ ├── SDL_sysmutex_c.h │ │ │ ├── SDL_syssem.c │ │ │ ├── SDL_systhread.c │ │ │ ├── SDL_systhread_c.h │ │ │ └── SDL_systls.c │ │ ├── timer/ │ │ │ ├── SDL_timer.c │ │ │ ├── SDL_timer_c.h │ │ │ └── unix/ │ │ │ └── SDL_systimer.c │ │ └── video/ │ │ ├── SDL_RLEaccel.c │ │ ├── SDL_RLEaccel_c.h │ │ ├── SDL_blit.c │ │ ├── SDL_blit.h │ │ ├── SDL_blit_0.c │ │ ├── SDL_blit_1.c │ │ ├── SDL_blit_A.c │ │ ├── SDL_blit_N.c │ │ ├── SDL_blit_auto.c │ │ ├── SDL_blit_auto.h │ │ ├── SDL_blit_copy.c │ │ ├── SDL_blit_copy.h │ │ ├── SDL_blit_slow.c │ │ ├── SDL_blit_slow.h │ │ ├── SDL_bmp.c │ │ ├── SDL_clipboard.c │ │ ├── SDL_egl.c │ │ ├── SDL_egl_c.h │ │ ├── SDL_fillrect.c │ │ ├── SDL_pixels.c │ │ ├── SDL_pixels_c.h │ │ ├── SDL_rect.c │ │ ├── SDL_rect_c.h │ │ ├── SDL_shape.c │ │ ├── SDL_shape_internals.h │ │ ├── SDL_stretch.c │ │ ├── SDL_surface.c │ │ ├── SDL_sysvideo.h │ │ ├── SDL_video.c │ │ ├── android/ │ │ │ ├── SDL_androidclipboard.c │ │ │ ├── SDL_androidclipboard.h │ │ │ ├── SDL_androidevents.c │ │ │ ├── SDL_androidevents.h │ │ │ ├── SDL_androidgl.c │ │ │ ├── SDL_androidkeyboard.c │ │ │ ├── SDL_androidkeyboard.h │ │ │ ├── SDL_androidmessagebox.c │ │ │ ├── SDL_androidmessagebox.h │ │ │ ├── SDL_androidmouse.c │ │ │ ├── SDL_androidmouse.h │ │ │ ├── SDL_androidtouch.c │ │ │ ├── SDL_androidtouch.h │ │ │ ├── SDL_androidvideo.c │ │ │ ├── SDL_androidvideo.h │ │ │ ├── SDL_androidwindow.c │ │ │ └── SDL_androidwindow.h │ │ └── sdlgenblit.pl │ ├── SDL2_gfx/ │ │ ├── CMakeFiles/ │ │ │ └── SDL2_gfx.dir/ │ │ │ └── src/ │ │ │ ├── SDL2_framerate.c.o │ │ │ ├── SDL2_gfxPrimitives.c.o │ │ │ ├── SDL2_imageFilter.c.o │ │ │ └── SDL2_rotozoom.c.o │ │ ├── CMakeLists.txt │ │ ├── build.gradle │ │ ├── cmake_install.cmake │ │ ├── include/ │ │ │ ├── SDL2_framerate.h │ │ │ ├── SDL2_gfxPrimitives.h │ │ │ ├── SDL2_gfxPrimitives_font.h │ │ │ ├── SDL2_imageFilter.h │ │ │ └── SDL2_rotozoom.h │ │ └── src/ │ │ ├── SDL2_framerate.c │ │ ├── SDL2_gfxPrimitives.c │ │ ├── SDL2_imageFilter.c │ │ └── SDL2_rotozoom.c │ ├── SDL2_image/ │ │ ├── CMakeFiles/ │ │ │ └── SDL2_image.dir/ │ │ │ └── src/ │ │ │ ├── IMG.c.o │ │ │ ├── IMG_bmp.c.o │ │ │ ├── IMG_gif.c.o │ │ │ ├── IMG_jpg.c.o │ │ │ ├── IMG_lbm.c.o │ │ │ ├── IMG_pcx.c.o │ │ │ ├── IMG_png.c.o │ │ │ ├── IMG_pnm.c.o │ │ │ ├── IMG_tga.c.o │ │ │ ├── IMG_tif.c.o │ │ │ ├── IMG_webp.c.o │ │ │ ├── IMG_xcf.c.o │ │ │ ├── IMG_xpm.c.o │ │ │ ├── IMG_xv.c.o │ │ │ ├── IMG_xxx.c.o │ │ │ └── showimage.c.o │ │ ├── CMakeLists.txt │ │ ├── build.gradle │ │ ├── cmake_install.cmake │ │ ├── include/ │ │ │ ├── SDL_image.h │ │ │ └── miniz.h │ │ └── src/ │ │ ├── IMG.c │ │ ├── IMG_bmp.c │ │ ├── IMG_gif.c │ │ ├── IMG_jpg.c │ │ ├── IMG_lbm.c │ │ ├── IMG_pcx.c │ │ ├── IMG_png.c │ │ ├── IMG_pnm.c │ │ ├── IMG_tga.c │ │ ├── IMG_tif.c │ │ ├── IMG_webp.c │ │ ├── IMG_xcf.c │ │ ├── IMG_xpm.c │ │ ├── IMG_xv.c │ │ ├── IMG_xxx.c │ │ └── showimage.c │ ├── SDL2_jpeg/ │ │ ├── CMakeFiles/ │ │ │ └── SDL2_jpeg.dir/ │ │ │ └── src/ │ │ │ ├── cdjpeg.c.o │ │ │ ├── jaricom.c.o │ │ │ ├── jcapimin.c.o │ │ │ ├── jcapistd.c.o │ │ │ ├── jcarith.c.o │ │ │ ├── jccoefct.c.o │ │ │ ├── jccolor.c.o │ │ │ ├── jcdctmgr.c.o │ │ │ ├── jchuff.c.o │ │ │ ├── jcinit.c.o │ │ │ ├── jcmainct.c.o │ │ │ ├── jcmarker.c.o │ │ │ ├── jcmaster.c.o │ │ │ ├── jcomapi.c.o │ │ │ ├── jcparam.c.o │ │ │ ├── jcprepct.c.o │ │ │ ├── jcsample.c.o │ │ │ ├── jctrans.c.o │ │ │ ├── jdapimin.c.o │ │ │ ├── jdapistd.c.o │ │ │ ├── jdarith.c.o │ │ │ ├── jdatadst.c.o │ │ │ ├── jdatasrc.c.o │ │ │ ├── jdcoefct.c.o │ │ │ ├── jdcolor.c.o │ │ │ ├── jddctmgr.c.o │ │ │ ├── jdhuff.c.o │ │ │ ├── jdinput.c.o │ │ │ ├── jdmainct.c.o │ │ │ ├── jdmarker.c.o │ │ │ ├── jdmaster.c.o │ │ │ ├── jdmerge.c.o │ │ │ ├── jdpostct.c.o │ │ │ ├── jdsample.c.o │ │ │ ├── jdtrans.c.o │ │ │ ├── jerror.c.o │ │ │ ├── jfdctflt.c.o │ │ │ ├── jfdctfst.c.o │ │ │ ├── jfdctint.c.o │ │ │ ├── jidctflt.c.o │ │ │ ├── jidctfst.c.o │ │ │ ├── jidctint.c.o │ │ │ ├── jmem-android.c.o │ │ │ ├── jmemmgr.c.o │ │ │ ├── jquant1.c.o │ │ │ ├── jquant2.c.o │ │ │ ├── jutils.c.o │ │ │ ├── rdbmp.c.o │ │ │ ├── rdcolmap.c.o │ │ │ ├── rdgif.c.o │ │ │ ├── rdppm.c.o │ │ │ ├── rdrle.c.o │ │ │ ├── rdswitch.c.o │ │ │ ├── rdtarga.c.o │ │ │ ├── transupp.c.o │ │ │ ├── wrbmp.c.o │ │ │ ├── wrgif.c.o │ │ │ ├── wrjpgcom.c.o │ │ │ ├── wrppm.c.o │ │ │ ├── wrrle.c.o │ │ │ └── wrtarga.c.o │ │ ├── CMakeLists.txt │ │ ├── build.gradle │ │ ├── cmake_install.cmake │ │ ├── include/ │ │ │ ├── cderror.h │ │ │ ├── cdjpeg.h │ │ │ ├── jconfig.h │ │ │ ├── jdct.h │ │ │ ├── jerror.h │ │ │ ├── jinclude.h │ │ │ ├── jmemsys.h │ │ │ ├── jmorecfg.h │ │ │ ├── jpegint.h │ │ │ ├── jpeglib.h │ │ │ ├── jversion.h │ │ │ └── transupp.h │ │ └── src/ │ │ ├── cdjpeg.c │ │ ├── cjpeg.c │ │ ├── ckconfig.c │ │ ├── djpeg.c │ │ ├── example.c │ │ ├── jaricom.c │ │ ├── jcapimin.c │ │ ├── jcapistd.c │ │ ├── jcarith.c │ │ ├── jccoefct.c │ │ ├── jccolor.c │ │ ├── jcdctmgr.c │ │ ├── jchuff.c │ │ ├── jcinit.c │ │ ├── jcmainct.c │ │ ├── jcmarker.c │ │ ├── jcmaster.c │ │ ├── jcomapi.c │ │ ├── jcparam.c │ │ ├── jcprepct.c │ │ ├── jcsample.c │ │ ├── jctrans.c │ │ ├── jdapimin.c │ │ ├── jdapistd.c │ │ ├── jdarith.c │ │ ├── jdatadst.c │ │ ├── jdatasrc.c │ │ ├── jdcoefct.c │ │ ├── jdcolor.c │ │ ├── jddctmgr.c │ │ ├── jdhuff.c │ │ ├── jdinput.c │ │ ├── jdmainct.c │ │ ├── jdmarker.c │ │ ├── jdmaster.c │ │ ├── jdmerge.c │ │ ├── jdpostct.c │ │ ├── jdsample.c │ │ ├── jdtrans.c │ │ ├── jerror.c │ │ ├── jfdctflt.c │ │ ├── jfdctfst.c │ │ ├── jfdctint.c │ │ ├── jidctflt.c │ │ ├── jidctfst.c │ │ ├── jidctint.c │ │ ├── jmem-android.c │ │ ├── jmemansi.c │ │ ├── jmemdos.c │ │ ├── jmemmac.c │ │ ├── jmemmgr.c │ │ ├── jmemname.c │ │ ├── jmemnobs.c │ │ ├── jpegtran.c │ │ ├── jquant1.c │ │ ├── jquant2.c │ │ ├── jutils.c │ │ ├── rdbmp.c │ │ ├── rdcolmap.c │ │ ├── rdgif.c │ │ ├── rdjpgcom.c │ │ ├── rdppm.c │ │ ├── rdrle.c │ │ ├── rdswitch.c │ │ ├── rdtarga.c │ │ ├── transupp.c │ │ ├── wrbmp.c │ │ ├── wrgif.c │ │ ├── wrjpgcom.c │ │ ├── wrppm.c │ │ ├── wrrle.c │ │ └── wrtarga.c │ ├── SDL2_mixer/ │ │ ├── CMakeFiles/ │ │ │ └── SDL2_mixer.dir/ │ │ │ └── src/ │ │ │ ├── dynamic_flac.c.o │ │ │ ├── dynamic_fluidsynth.c.o │ │ │ ├── dynamic_mod.c.o │ │ │ ├── dynamic_modplug.c.o │ │ │ ├── dynamic_mp3.c.o │ │ │ ├── dynamic_ogg.c.o │ │ │ ├── effect_position.c.o │ │ │ ├── effect_stereoreverse.c.o │ │ │ ├── effects_internal.c.o │ │ │ ├── fluidsynth.c.o │ │ │ ├── load_aiff.c.o │ │ │ ├── load_flac.c.o │ │ │ ├── load_mp3.c.o │ │ │ ├── load_ogg.c.o │ │ │ ├── load_voc.c.o │ │ │ ├── mixer.c.o │ │ │ ├── music.c.o │ │ │ ├── music_cmd.c.o │ │ │ ├── music_flac.c.o │ │ │ ├── music_mad.c.o │ │ │ ├── music_mod.c.o │ │ │ ├── music_modplug.c.o │ │ │ ├── music_ogg.c.o │ │ │ ├── playmus.c.o │ │ │ └── wavestream.c.o │ │ ├── CMakeLists.txt │ │ ├── build.gradle │ │ ├── cmake_install.cmake │ │ ├── include/ │ │ │ ├── SDL_mixer.h │ │ │ ├── dynamic_flac.h │ │ │ ├── dynamic_fluidsynth.h │ │ │ ├── dynamic_mod.h │ │ │ ├── dynamic_modplug.h │ │ │ ├── dynamic_mp3.h │ │ │ ├── dynamic_ogg.h │ │ │ ├── effects_internal.h │ │ │ ├── fluidsynth.h │ │ │ ├── load_aiff.h │ │ │ ├── load_flac.h │ │ │ ├── load_mp3.h │ │ │ ├── load_ogg.h │ │ │ ├── load_voc.h │ │ │ ├── music_cmd.h │ │ │ ├── music_flac.h │ │ │ ├── music_mad.h │ │ │ ├── music_mod.h │ │ │ ├── music_modplug.h │ │ │ ├── music_ogg.h │ │ │ └── wavestream.h │ │ └── src/ │ │ ├── dynamic_flac.c │ │ ├── dynamic_fluidsynth.c │ │ ├── dynamic_mod.c │ │ ├── dynamic_modplug.c │ │ ├── dynamic_mp3.c │ │ ├── dynamic_ogg.c │ │ ├── effect_position.c │ │ ├── effect_stereoreverse.c │ │ ├── effects_internal.c │ │ ├── fluidsynth.c │ │ ├── load_aiff.c │ │ ├── load_flac.c │ │ ├── load_mp3.c │ │ ├── load_ogg.c │ │ ├── load_voc.c │ │ ├── mixer.c │ │ ├── music.c │ │ ├── music_cmd.c │ │ ├── music_flac.c │ │ ├── music_mad.c │ │ ├── music_mod.c │ │ ├── music_modplug.c │ │ ├── music_ogg.c │ │ ├── playmus.c │ │ ├── playwave.c │ │ └── wavestream.c │ ├── SDL2_png/ │ │ ├── CMakeFiles/ │ │ │ └── SDL2_png.dir/ │ │ │ └── src/ │ │ │ ├── png.c.o │ │ │ ├── pngerror.c.o │ │ │ ├── pngget.c.o │ │ │ ├── pngmem.c.o │ │ │ ├── pngpread.c.o │ │ │ ├── pngread.c.o │ │ │ ├── pngrio.c.o │ │ │ ├── pngrtran.c.o │ │ │ ├── pngrutil.c.o │ │ │ ├── pngset.c.o │ │ │ ├── pngtrans.c.o │ │ │ ├── pngwio.c.o │ │ │ ├── pngwrite.c.o │ │ │ ├── pngwtran.c.o │ │ │ └── pngwutil.c.o │ │ ├── CMakeLists.txt │ │ ├── build.gradle │ │ ├── cmake_install.cmake │ │ ├── include/ │ │ │ ├── config.h │ │ │ ├── png.h │ │ │ ├── pngconf.h │ │ │ ├── pngdebug.h │ │ │ ├── pnginfo.h │ │ │ ├── pnglibconf.h │ │ │ ├── pngprefix.h │ │ │ ├── pngpriv.h │ │ │ └── pngstruct.h │ │ └── src/ │ │ ├── png.c │ │ ├── pngerror.c │ │ ├── pngget.c │ │ ├── pngmem.c │ │ ├── pngpread.c │ │ ├── pngread.c │ │ ├── pngrio.c │ │ ├── pngrtran.c │ │ ├── pngrutil.c │ │ ├── pngset.c │ │ ├── pngtest.c │ │ ├── pngtrans.c │ │ ├── pngwio.c │ │ ├── pngwrite.c │ │ ├── pngwtran.c │ │ └── pngwutil.c │ ├── SDL2_ttf/ │ │ ├── CMakeFiles/ │ │ │ └── SDL2_ttf.dir/ │ │ │ └── src/ │ │ │ ├── SDL_ttf.c.o │ │ │ └── glfont.c.o │ │ ├── CMakeLists.txt │ │ ├── build.gradle │ │ ├── cmake_install.cmake │ │ ├── include/ │ │ │ └── SDL_ttf.h │ │ └── src/ │ │ ├── SDL_ttf.c │ │ ├── glfont.c │ │ └── showfont.c │ └── freetype/ │ ├── CMakeFiles/ │ │ └── freetype.dir/ │ │ └── src/ │ │ ├── base/ │ │ │ ├── ftapi.c.o │ │ │ ├── ftbase.c.o │ │ │ ├── ftbbox.c.o │ │ │ ├── ftbdf.c.o │ │ │ ├── ftbitmap.c.o │ │ │ ├── ftcid.c.o │ │ │ ├── ftdebug.c.o │ │ │ ├── ftfstype.c.o │ │ │ ├── ftgasp.c.o │ │ │ ├── ftglyph.c.o │ │ │ ├── ftgxval.c.o │ │ │ ├── ftinit.c.o │ │ │ ├── ftlcdfil.c.o │ │ │ ├── ftmm.c.o │ │ │ ├── ftotval.c.o │ │ │ ├── ftpatent.c.o │ │ │ ├── ftpfr.c.o │ │ │ ├── ftstroke.c.o │ │ │ ├── ftsynth.c.o │ │ │ ├── ftsystem.c.o │ │ │ ├── fttype1.c.o │ │ │ ├── ftwinfnt.c.o │ │ │ ├── ftxf86.c.o │ │ │ └── md5.c.o │ │ ├── bzip2/ │ │ │ └── ftbzip2.c.o │ │ ├── raster/ │ │ │ ├── ftraster.c.o │ │ │ ├── ftrend1.c.o │ │ │ └── rastpic.c.o │ │ ├── sfnt/ │ │ │ ├── sfdriver.c.o │ │ │ ├── sfntpic.c.o │ │ │ ├── sfobjs.c.o │ │ │ ├── ttbdf.c.o │ │ │ ├── ttcmap.c.o │ │ │ ├── ttkern.c.o │ │ │ ├── ttload.c.o │ │ │ ├── ttmtx.c.o │ │ │ ├── ttpost.c.o │ │ │ └── ttsbit.c.o │ │ ├── smooth/ │ │ │ ├── ftgrays.c.o │ │ │ ├── ftsmooth.c.o │ │ │ └── ftspic.c.o │ │ └── truetype/ │ │ ├── ttdriver.c.o │ │ ├── ttgload.c.o │ │ ├── ttgxvar.c.o │ │ ├── ttinterp.c.o │ │ ├── ttobjs.c.o │ │ ├── ttpic.c.o │ │ ├── ttpload.c.o │ │ └── ttsubpix.c.o │ ├── CMakeLists.txt │ ├── build.gradle │ ├── cmake_install.cmake │ ├── include/ │ │ ├── freetype/ │ │ │ ├── config/ │ │ │ │ ├── ftconfig.h │ │ │ │ ├── ftheader.h │ │ │ │ ├── ftmodule.h │ │ │ │ ├── ftoption.h │ │ │ │ └── ftstdlib.h │ │ │ ├── freetype.h │ │ │ ├── ftadvanc.h │ │ │ ├── ftautoh.h │ │ │ ├── ftbbox.h │ │ │ ├── ftbdf.h │ │ │ ├── ftbitmap.h │ │ │ ├── ftbzip2.h │ │ │ ├── ftcache.h │ │ │ ├── ftcffdrv.h │ │ │ ├── ftchapters.h │ │ │ ├── ftcid.h │ │ │ ├── fterrdef.h │ │ │ ├── fterrors.h │ │ │ ├── ftgasp.h │ │ │ ├── ftglyph.h │ │ │ ├── ftgxval.h │ │ │ ├── ftgzip.h │ │ │ ├── ftimage.h │ │ │ ├── ftincrem.h │ │ │ ├── ftlcdfil.h │ │ │ ├── ftlist.h │ │ │ ├── ftlzw.h │ │ │ ├── ftmac.h │ │ │ ├── ftmm.h │ │ │ ├── ftmodapi.h │ │ │ ├── ftmoderr.h │ │ │ ├── ftotval.h │ │ │ ├── ftoutln.h │ │ │ ├── ftpfr.h │ │ │ ├── ftrender.h │ │ │ ├── ftsizes.h │ │ │ ├── ftsnames.h │ │ │ ├── ftstroke.h │ │ │ ├── ftsynth.h │ │ │ ├── ftsystem.h │ │ │ ├── fttrigon.h │ │ │ ├── fttypes.h │ │ │ ├── ftwinfnt.h │ │ │ ├── ftxf86.h │ │ │ ├── internal/ │ │ │ │ ├── autohint.h │ │ │ │ ├── ftcalc.h │ │ │ │ ├── ftdebug.h │ │ │ │ ├── ftdriver.h │ │ │ │ ├── ftgloadr.h │ │ │ │ ├── ftmemory.h │ │ │ │ ├── ftobjs.h │ │ │ │ ├── ftpic.h │ │ │ │ ├── ftrfork.h │ │ │ │ ├── ftserv.h │ │ │ │ ├── ftstream.h │ │ │ │ ├── fttrace.h │ │ │ │ ├── ftvalid.h │ │ │ │ ├── internal.h │ │ │ │ ├── psaux.h │ │ │ │ ├── pshints.h │ │ │ │ ├── services/ │ │ │ │ │ ├── svbdf.h │ │ │ │ │ ├── svcid.h │ │ │ │ │ ├── svgldict.h │ │ │ │ │ ├── svgxval.h │ │ │ │ │ ├── svkern.h │ │ │ │ │ ├── svmm.h │ │ │ │ │ ├── svotval.h │ │ │ │ │ ├── svpfr.h │ │ │ │ │ ├── svpostnm.h │ │ │ │ │ ├── svprop.h │ │ │ │ │ ├── svpscmap.h │ │ │ │ │ ├── svpsinfo.h │ │ │ │ │ ├── svsfnt.h │ │ │ │ │ ├── svttcmap.h │ │ │ │ │ ├── svtteng.h │ │ │ │ │ ├── svttglyf.h │ │ │ │ │ ├── svwinfnt.h │ │ │ │ │ └── svxf86nm.h │ │ │ │ ├── sfnt.h │ │ │ │ ├── t1types.h │ │ │ │ └── tttypes.h │ │ │ ├── t1tables.h │ │ │ ├── ttnameid.h │ │ │ ├── tttables.h │ │ │ ├── tttags.h │ │ │ └── ttunpat.h │ │ ├── ft2build.h │ │ ├── ftconfig.h │ │ └── ftmodule.h │ └── src/ │ ├── Jamfile │ ├── autofit/ │ │ ├── Jamfile │ │ ├── afangles.c │ │ ├── afangles.h │ │ ├── afcjk.c │ │ ├── afcjk.h │ │ ├── afdummy.c │ │ ├── afdummy.h │ │ ├── aferrors.h │ │ ├── afglobal.c │ │ ├── afglobal.h │ │ ├── afhints.c │ │ ├── afhints.h │ │ ├── afindic.c │ │ ├── afindic.h │ │ ├── aflatin.c │ │ ├── aflatin.h │ │ ├── aflatin2.c │ │ ├── aflatin2.h │ │ ├── afloader.c │ │ ├── afloader.h │ │ ├── afmodule.c │ │ ├── afmodule.h │ │ ├── afpic.c │ │ ├── afpic.h │ │ ├── aftypes.h │ │ ├── afwarp.c │ │ ├── afwarp.h │ │ ├── autofit.c │ │ ├── module.mk │ │ └── rules.mk │ ├── base/ │ │ ├── Jamfile │ │ ├── basepic.c │ │ ├── basepic.h │ │ ├── ftadvanc.c │ │ ├── ftapi.c │ │ ├── ftbase.c │ │ ├── ftbase.h │ │ ├── ftbbox.c │ │ ├── ftbdf.c │ │ ├── ftbitmap.c │ │ ├── ftcalc.c │ │ ├── ftcid.c │ │ ├── ftdbgmem.c │ │ ├── ftdebug.c │ │ ├── ftfstype.c │ │ ├── ftgasp.c │ │ ├── ftgloadr.c │ │ ├── ftglyph.c │ │ ├── ftgxval.c │ │ ├── ftinit.c │ │ ├── ftlcdfil.c │ │ ├── ftmac.c │ │ ├── ftmm.c │ │ ├── ftobjs.c │ │ ├── ftotval.c │ │ ├── ftoutln.c │ │ ├── ftpatent.c │ │ ├── ftpfr.c │ │ ├── ftpic.c │ │ ├── ftrfork.c │ │ ├── ftsnames.c │ │ ├── ftstream.c │ │ ├── ftstroke.c │ │ ├── ftsynth.c │ │ ├── ftsystem.c │ │ ├── fttrigon.c │ │ ├── fttype1.c │ │ ├── ftutil.c │ │ ├── ftwinfnt.c │ │ ├── ftxf86.c │ │ ├── md5.c │ │ ├── md5.h │ │ └── rules.mk │ ├── bdf/ │ │ ├── Jamfile │ │ ├── README │ │ ├── bdf.c │ │ ├── bdf.h │ │ ├── bdfdrivr.c │ │ ├── bdfdrivr.h │ │ ├── bdferror.h │ │ ├── bdflib.c │ │ ├── module.mk │ │ └── rules.mk │ ├── bzip2/ │ │ ├── Jamfile │ │ ├── ftbzip2.c │ │ └── rules.mk │ ├── cache/ │ │ ├── Jamfile │ │ ├── ftcache.c │ │ ├── ftcbasic.c │ │ ├── ftccache.c │ │ ├── ftccache.h │ │ ├── ftccback.h │ │ ├── ftccmap.c │ │ ├── ftcerror.h │ │ ├── ftcglyph.c │ │ ├── ftcglyph.h │ │ ├── ftcimage.c │ │ ├── ftcimage.h │ │ ├── ftcmanag.c │ │ ├── ftcmanag.h │ │ ├── ftcmru.c │ │ ├── ftcmru.h │ │ ├── ftcsbits.c │ │ ├── ftcsbits.h │ │ └── rules.mk │ ├── cff/ │ │ ├── Jamfile │ │ ├── cf2arrst.c │ │ ├── cf2arrst.h │ │ ├── cf2blues.c │ │ ├── cf2blues.h │ │ ├── cf2error.c │ │ ├── cf2error.h │ │ ├── cf2fixed.h │ │ ├── cf2font.c │ │ ├── cf2font.h │ │ ├── cf2ft.c │ │ ├── cf2ft.h │ │ ├── cf2glue.h │ │ ├── cf2hints.c │ │ ├── cf2hints.h │ │ ├── cf2intrp.c │ │ ├── cf2intrp.h │ │ ├── cf2read.c │ │ ├── cf2read.h │ │ ├── cf2stack.c │ │ ├── cf2stack.h │ │ ├── cf2types.h │ │ ├── cff.c │ │ ├── cffcmap.c │ │ ├── cffcmap.h │ │ ├── cffdrivr.c │ │ ├── cffdrivr.h │ │ ├── cfferrs.h │ │ ├── cffgload.c │ │ ├── cffgload.h │ │ ├── cffload.c │ │ ├── cffload.h │ │ ├── cffobjs.c │ │ ├── cffobjs.h │ │ ├── cffparse.c │ │ ├── cffparse.h │ │ ├── cffpic.c │ │ ├── cffpic.h │ │ ├── cfftoken.h │ │ ├── cfftypes.h │ │ ├── module.mk │ │ └── rules.mk │ ├── cid/ │ │ ├── Jamfile │ │ ├── ciderrs.h │ │ ├── cidgload.c │ │ ├── cidgload.h │ │ ├── cidload.c │ │ ├── cidload.h │ │ ├── cidobjs.c │ │ ├── cidobjs.h │ │ ├── cidparse.c │ │ ├── cidparse.h │ │ ├── cidriver.c │ │ ├── cidriver.h │ │ ├── cidtoken.h │ │ ├── module.mk │ │ ├── rules.mk │ │ └── type1cid.c │ ├── gxvalid/ │ │ ├── Jamfile │ │ ├── README │ │ ├── gxvalid.c │ │ ├── gxvalid.h │ │ ├── gxvbsln.c │ │ ├── gxvcommn.c │ │ ├── gxvcommn.h │ │ ├── gxverror.h │ │ ├── gxvfeat.c │ │ ├── gxvfeat.h │ │ ├── gxvfgen.c │ │ ├── gxvjust.c │ │ ├── gxvkern.c │ │ ├── gxvlcar.c │ │ ├── gxvmod.c │ │ ├── gxvmod.h │ │ ├── gxvmort.c │ │ ├── gxvmort.h │ │ ├── gxvmort0.c │ │ ├── gxvmort1.c │ │ ├── gxvmort2.c │ │ ├── gxvmort4.c │ │ ├── gxvmort5.c │ │ ├── gxvmorx.c │ │ ├── gxvmorx.h │ │ ├── gxvmorx0.c │ │ ├── gxvmorx1.c │ │ ├── gxvmorx2.c │ │ ├── gxvmorx4.c │ │ ├── gxvmorx5.c │ │ ├── gxvopbd.c │ │ ├── gxvprop.c │ │ ├── gxvtrak.c │ │ ├── module.mk │ │ └── rules.mk │ ├── gzip/ │ │ ├── Jamfile │ │ ├── adler32.c │ │ ├── ftgzip.c │ │ ├── infblock.c │ │ ├── infblock.h │ │ ├── infcodes.c │ │ ├── infcodes.h │ │ ├── inffixed.h │ │ ├── inflate.c │ │ ├── inftrees.c │ │ ├── inftrees.h │ │ ├── infutil.c │ │ ├── infutil.h │ │ ├── rules.mk │ │ ├── zconf.h │ │ ├── zlib.h │ │ ├── zutil.c │ │ └── zutil.h │ ├── lzw/ │ │ ├── Jamfile │ │ ├── ftlzw.c │ │ ├── ftzopen.c │ │ ├── ftzopen.h │ │ └── rules.mk │ ├── otvalid/ │ │ ├── Jamfile │ │ ├── module.mk │ │ ├── otvalid.c │ │ ├── otvalid.h │ │ ├── otvbase.c │ │ ├── otvcommn.c │ │ ├── otvcommn.h │ │ ├── otverror.h │ │ ├── otvgdef.c │ │ ├── otvgpos.c │ │ ├── otvgpos.h │ │ ├── otvgsub.c │ │ ├── otvjstf.c │ │ ├── otvmath.c │ │ ├── otvmod.c │ │ ├── otvmod.h │ │ └── rules.mk │ ├── pcf/ │ │ ├── Jamfile │ │ ├── README │ │ ├── module.mk │ │ ├── pcf.c │ │ ├── pcf.h │ │ ├── pcfdrivr.c │ │ ├── pcfdrivr.h │ │ ├── pcferror.h │ │ ├── pcfread.c │ │ ├── pcfread.h │ │ ├── pcfutil.c │ │ ├── pcfutil.h │ │ └── rules.mk │ ├── pfr/ │ │ ├── Jamfile │ │ ├── module.mk │ │ ├── pfr.c │ │ ├── pfrcmap.c │ │ ├── pfrcmap.h │ │ ├── pfrdrivr.c │ │ ├── pfrdrivr.h │ │ ├── pfrerror.h │ │ ├── pfrgload.c │ │ ├── pfrgload.h │ │ ├── pfrload.c │ │ ├── pfrload.h │ │ ├── pfrobjs.c │ │ ├── pfrobjs.h │ │ ├── pfrsbit.c │ │ ├── pfrsbit.h │ │ ├── pfrtypes.h │ │ └── rules.mk │ ├── psaux/ │ │ ├── Jamfile │ │ ├── afmparse.c │ │ ├── afmparse.h │ │ ├── module.mk │ │ ├── psaux.c │ │ ├── psauxerr.h │ │ ├── psauxmod.c │ │ ├── psauxmod.h │ │ ├── psconv.c │ │ ├── psconv.h │ │ ├── psobjs.c │ │ ├── psobjs.h │ │ ├── rules.mk │ │ ├── t1cmap.c │ │ ├── t1cmap.h │ │ ├── t1decode.c │ │ └── t1decode.h │ ├── pshinter/ │ │ ├── Jamfile │ │ ├── module.mk │ │ ├── pshalgo.c │ │ ├── pshalgo.h │ │ ├── pshglob.c │ │ ├── pshglob.h │ │ ├── pshinter.c │ │ ├── pshmod.c │ │ ├── pshmod.h │ │ ├── pshnterr.h │ │ ├── pshpic.c │ │ ├── pshpic.h │ │ ├── pshrec.c │ │ ├── pshrec.h │ │ └── rules.mk │ ├── psnames/ │ │ ├── Jamfile │ │ ├── module.mk │ │ ├── psmodule.c │ │ ├── psmodule.h │ │ ├── psnamerr.h │ │ ├── psnames.c │ │ ├── pspic.c │ │ ├── pspic.h │ │ ├── pstables.h │ │ └── rules.mk │ ├── raster/ │ │ ├── Jamfile │ │ ├── ftmisc.h │ │ ├── ftraster.c │ │ ├── ftraster.h │ │ ├── ftrend1.c │ │ ├── ftrend1.h │ │ ├── module.mk │ │ ├── raster.c │ │ ├── rasterrs.h │ │ ├── rastpic.c │ │ ├── rastpic.h │ │ └── rules.mk │ ├── sfnt/ │ │ ├── Jamfile │ │ ├── module.mk │ │ ├── rules.mk │ │ ├── sfdriver.c │ │ ├── sfdriver.h │ │ ├── sferrors.h │ │ ├── sfnt.c │ │ ├── sfntpic.c │ │ ├── sfntpic.h │ │ ├── sfobjs.c │ │ ├── sfobjs.h │ │ ├── ttbdf.c │ │ ├── ttbdf.h │ │ ├── ttcmap.c │ │ ├── ttcmap.h │ │ ├── ttcmapc.h │ │ ├── ttkern.c │ │ ├── ttkern.h │ │ ├── ttload.c │ │ ├── ttload.h │ │ ├── ttmtx.c │ │ ├── ttmtx.h │ │ ├── ttpost.c │ │ ├── ttpost.h │ │ ├── ttsbit.c │ │ ├── ttsbit.h │ │ └── ttsbit0.c │ ├── smooth/ │ │ ├── Jamfile │ │ ├── ftgrays.c │ │ ├── ftgrays.h │ │ ├── ftsmerrs.h │ │ ├── ftsmooth.c │ │ ├── ftsmooth.h │ │ ├── ftspic.c │ │ ├── ftspic.h │ │ ├── module.mk │ │ ├── rules.mk │ │ └── smooth.c │ ├── tools/ │ │ ├── Jamfile │ │ ├── apinames.c │ │ ├── chktrcmp.py │ │ ├── cordic.py │ │ ├── docmaker/ │ │ │ ├── content.py │ │ │ ├── docbeauty.py │ │ │ ├── docmaker.py │ │ │ ├── formatter.py │ │ │ ├── sources.py │ │ │ ├── tohtml.py │ │ │ └── utils.py │ │ ├── ftrandom/ │ │ │ ├── Makefile │ │ │ ├── README │ │ │ └── ftrandom.c │ │ ├── glnames.py │ │ ├── test_afm.c │ │ ├── test_bbox.c │ │ └── test_trig.c │ ├── truetype/ │ │ ├── Jamfile │ │ ├── module.mk │ │ ├── rules.mk │ │ ├── truetype.c │ │ ├── ttdriver.c │ │ ├── ttdriver.h │ │ ├── tterrors.h │ │ ├── ttgload.c │ │ ├── ttgload.h │ │ ├── ttgxvar.c │ │ ├── ttgxvar.h │ │ ├── ttinterp.c │ │ ├── ttinterp.h │ │ ├── ttobjs.c │ │ ├── ttobjs.h │ │ ├── ttpic.c │ │ ├── ttpic.h │ │ ├── ttpload.c │ │ ├── ttpload.h │ │ ├── ttsubpix.c │ │ └── ttsubpix.h │ ├── type1/ │ │ ├── Jamfile │ │ ├── module.mk │ │ ├── rules.mk │ │ ├── t1afm.c │ │ ├── t1afm.h │ │ ├── t1driver.c │ │ ├── t1driver.h │ │ ├── t1errors.h │ │ ├── t1gload.c │ │ ├── t1gload.h │ │ ├── t1load.c │ │ ├── t1load.h │ │ ├── t1objs.c │ │ ├── t1objs.h │ │ ├── t1parse.c │ │ ├── t1parse.h │ │ ├── t1tokens.h │ │ └── type1.c │ ├── type42/ │ │ ├── Jamfile │ │ ├── module.mk │ │ ├── rules.mk │ │ ├── t42drivr.c │ │ ├── t42drivr.h │ │ ├── t42error.h │ │ ├── t42objs.c │ │ ├── t42objs.h │ │ ├── t42parse.c │ │ ├── t42parse.h │ │ ├── t42types.h │ │ └── type42.c │ └── winfonts/ │ ├── Jamfile │ ├── fnterrs.h │ ├── module.mk │ ├── rules.mk │ ├── winfnt.c │ └── winfnt.h ├── local.properties ├── open_codeblocks.bat ├── open_codeblocks_sdl.bat ├── open_qt_creator.bat ├── open_vscode.bat └── settings.gradle
Copy disabled (too large)
Download .txt
Showing preview only (296,584K chars total). Download the full file to get everything.
SYMBOL INDEX (11432 symbols across 954 files)
FILE: app/src/main/cpp/GameDialog.cpp
type is (line 3) | namespace is
FILE: app/src/main/cpp/GameDisplay.cpp
type is (line 25) | namespace is
function getMapPixelToCoords (line 27) | sf::Vector2f getMapPixelToCoords(GameDisplay const *scene, sf::Vector2...
FILE: app/src/main/cpp/GameEngine.cpp
function MainLoop (line 26) | void MainLoop()
type is (line 32) | namespace is
FILE: app/src/main/cpp/GameFunction.cpp
function EMSCRIPTEN_BINDINGS (line 32) | EMSCRIPTEN_BINDINGS(Wrappers) {
type is (line 37) | namespace is
function w_chart_tToStr (line 44) | std::string w_chart_tToStr(wchar_t const *val)
function strToWStr (line 50) | std::wstring strToWStr(const std::string &str)
function getMSecond (line 56) | int getMSecond(const float &DELTA_TIME)
function makeTime (line 61) | std::tm makeTime(int year, int month, int day)
function checkDateLimit (line 70) | bool checkDateLimit(int year, int mont, int day)
function showLog (line 79) | void showLog(const std::string& str, bool stopApplication)
function isIn (line 91) | bool isIn(unsigned short valNumber, const int var, int x1, int x2, int...
function isBetween (line 105) | bool isBetween(float a, float b, float c)
function sign (line 111) | int sign(float x)
function pointDirection (line 118) | float pointDirection(float x1, float y1, float x2, float y2)
function radToDeg (line 123) | float radToDeg(float x)
function degToRad (line 128) | float degToRad(float x)
function lengthDirX (line 133) | float lengthDirX(float dir, float angle, bool useScreenScale)
function lengthDirY (line 149) | float lengthDirY(float dir, float angle, bool useScreenScale)
function collisionTest (line 165) | bool collisionTest(Rectangle const &a, Rectangle const &b)
function collisionTest (line 174) | bool collisionTest(Circle const &a, Circle const &b)
function collisionTest (line 192) | bool collisionTest(Circle const &circle, Rectangle const &rec)
function collisionTest (line 214) | bool collisionTest(Rectangle const &rec, Circle const &circle)
function setTextAnimation (line 219) | void setTextAnimation(sf::Text &txt, sf::Sprite &spr, sf::Sprite &sprS...
function setTextAnimation (line 229) | void setTextAnimation(sf::Text &txt, int &var, int val)
function setFrame (line 235) | void setFrame(sf::Sprite &sprite, float frame, int subFrame, int frame...
function setFrame (line 251) | void setFrame(sf::Sprite &sprite, float frame, int subFrame, int frame...
function createRectangle (line 262) | void createRectangle(sf::RectangleShape &rec, sf::Vector2f recSize, sf...
function textStyleConfig (line 270) | void textStyleConfig(sf::Text &txt, bool underLined, bool boldText, bo...
function setSFMLTextOutlineColor (line 281) | void setSFMLTextOutlineColor(sf::Text &txt, float thickness, sf::Color...
function createSprite (line 287) | void createSprite(sf::Texture &tex, sf::Sprite &spr, sf::Vector2f posi...
function createSprite (line 297) | void createSprite(sf::Texture &tex, sf::Sprite &spr, sf::IntRect rec, ...
function createSprite (line 306) | void createSprite(sf::Texture &tex, sf::Sprite &spr, sf::IntRect rec, ...
function getCursor (line 313) | sf::Vector2f getCursor(sf::RenderWindow &window, unsigned int finger)
function vibrate (line 335) | short vibrate(short duration)
function openURL (line 397) | void openURL(const std::string& url, OpenURLAction action)
FILE: app/src/main/cpp/GameKeyData.cpp
type is (line 24) | namespace is
FILE: app/src/main/cpp/GameSlider.cpp
type is (line 24) | namespace is
FILE: app/src/main/cpp/GameSystem.cpp
type is (line 24) | namespace is
function GSMplaySound (line 250) | void GSMplaySound(const std::string& name, std::vector<std::shared_ptr...
function GSMplayMusic (line 269) | void GSMplayMusic(const std::string& name, std::vector<std::shared_ptr<
FILE: app/src/main/cpp/GameSystemExtended.cpp
type is (line 3) | namespace is
FILE: app/src/main/cpp/GameTime.cpp
type is (line 25) | namespace is
function GameTime (line 111) | GameTime& GameTime::operator=(GameTime const &t)
FILE: app/src/main/cpp/MainObject.cpp
type is (line 24) | namespace is
FILE: app/src/main/cpp/SDL_android_main.c
function JNICALL (line 23) | JNICALL Java_com_author_isengine_SDLActivity_nativeInit(JNIEnv* env, jcl...
FILE: app/src/main/cpp/TransitionEffect.cpp
type is (line 24) | namespace is
FILE: app/src/main/cpp/app_src/activity/GameActivity.h
function class (line 12) | class GameActivity
FILE: app/src/main/cpp/app_src/config/ExtraConfig.h
function namespace (line 34) | namespace is
FILE: app/src/main/cpp/app_src/config/GameConfig.h
function namespace (line 6) | namespace is
FILE: app/src/main/cpp/app_src/gamesystem_ext/GameSystemExtended.h
function namespace (line 15) | namespace is
FILE: app/src/main/cpp/app_src/language/GameLanguage.h
function namespace (line 16) | namespace is
FILE: app/src/main/cpp/app_src/levels/Level.h
function namespace (line 12) | namespace is
FILE: app/src/main/cpp/app_src/objects/HelloWorld.h
function class (line 8) | class HelloWorld : public is::MainObject
function step (line 24) | void step(float const &DELTA_TIME)
FILE: app/src/main/cpp/app_src/objects/widgets/GameDialog.h
function namespace (line 12) | namespace is
FILE: app/src/main/cpp/app_src/scenes/HelloScene/HelloScene.h
function class (line 6) | class HelloScene : public is::GameDisplay
FILE: app/src/main/cpp/b2BlockAllocator.cpp
type b2Chunk (line 45) | struct b2Chunk
type b2Block (line 51) | struct b2Block
FILE: app/src/main/cpp/b2Body.cpp
function b2Fixture (line 166) | b2Fixture* b2Body::CreateFixture(const b2FixtureDef* def)
function b2Fixture (line 205) | b2Fixture* b2Body::CreateFixture(const b2Shape* shape, float32 density)
FILE: app/src/main/cpp/b2BroadPhase.cpp
function int32 (line 40) | int32 b2BroadPhase::CreateProxy(const b2AABB& aabb, void* userData)
FILE: app/src/main/cpp/b2ChainAndCircleContact.cpp
function b2Contact (line 27) | b2Contact* b2ChainAndCircleContact::Create(b2Fixture* fixtureA, int32 in...
FILE: app/src/main/cpp/b2ChainAndPolygonContact.cpp
function b2Contact (line 27) | b2Contact* b2ChainAndPolygonContact::Create(b2Fixture* fixtureA, int32 i...
FILE: app/src/main/cpp/b2ChainShape.cpp
function b2Shape (line 89) | b2Shape* b2ChainShape::Clone(b2BlockAllocator* allocator) const
function int32 (line 101) | int32 b2ChainShape::GetChildCount() const
FILE: app/src/main/cpp/b2CircleContact.cpp
function b2Contact (line 28) | b2Contact* b2CircleContact::Create(b2Fixture* fixtureA, int32, b2Fixture...
FILE: app/src/main/cpp/b2CircleShape.cpp
function b2Shape (line 22) | b2Shape* b2CircleShape::Clone(b2BlockAllocator* allocator) const
function int32 (line 30) | int32 b2CircleShape::GetChildCount() const
FILE: app/src/main/cpp/b2CollideCircle.cpp
function b2CollideCircles (line 23) | void b2CollideCircles(
function b2CollidePolygonAndCircle (line 51) | void b2CollidePolygonAndCircle(
FILE: app/src/main/cpp/b2CollideEdge.cpp
function b2CollideEdgeAndCircle (line 26) | void b2CollideEdgeAndCircle(b2Manifold* manifold,
type b2EPAxis (line 154) | struct b2EPAxis
type Type (line 156) | enum Type
type b2TempPolygon (line 169) | struct b2TempPolygon
type b2ReferenceFace (line 177) | struct b2ReferenceFace
type b2EPCollider (line 193) | struct b2EPCollider
type VertexType (line 200) | enum VertexType
function b2EPAxis (line 619) | b2EPAxis b2EPCollider::ComputeEdgeSeparation()
type Type (line 156) | enum Type
function b2EPAxis (line 638) | b2EPAxis b2EPCollider::ComputePolygonSeparation()
type Type (line 156) | enum Type
function b2CollideEdgeAndPolygon (line 691) | void b2CollideEdgeAndPolygon( b2Manifold* manifold,
FILE: app/src/main/cpp/b2CollidePolygon.cpp
function float32 (line 23) | static float32 b2FindMaxSeparation(int32* edgeIndex,
function b2FindIncidentEdge (line 64) | static void b2FindIncidentEdge(b2ClipVertex c[2],
function b2CollidePolygons (line 116) | void b2CollidePolygons(b2Manifold* manifold,
FILE: app/src/main/cpp/b2Collision.cpp
function b2GetPointStates (line 88) | void b2GetPointStates(b2PointState state1[b2_maxManifoldPoints], b2Point...
function int32 (line 201) | int32 b2ClipSegmentToLine(b2ClipVertex vOut[2], const b2ClipVertex vIn[2],
function b2TestOverlap (line 233) | bool b2TestOverlap( const b2Shape* shapeA, int32 indexA,
FILE: app/src/main/cpp/b2Contact.cpp
function b2Contact (line 70) | b2Contact* b2Contact::Create(b2Fixture* fixtureA, int32 indexA, b2Fixtur...
FILE: app/src/main/cpp/b2ContactSolver.cpp
type b2ContactPositionConstraint (line 29) | struct b2ContactPositionConstraint
type b2PositionSolverManifold (line 614) | struct b2PositionSolverManifold
method Initialize (line 616) | void Initialize(b2ContactPositionConstraint* pc, const b2Transform& xf...
FILE: app/src/main/cpp/b2Distance.cpp
type b2SimplexVertex (line 86) | struct b2SimplexVertex
type b2Simplex (line 96) | struct b2Simplex
method ReadCache (line 98) | void ReadCache( const b2SimplexCache* cache,
method WriteCache (line 149) | void WriteCache(b2SimplexCache* cache) const
method b2Vec2 (line 161) | b2Vec2 GetSearchDirection() const
method b2Vec2 (line 190) | b2Vec2 GetClosestPoint() const
method GetWitnessPoints (line 213) | void GetWitnessPoints(b2Vec2* pA, b2Vec2* pB) const
method float32 (line 242) | float32 GetMetric() const
function b2Distance (line 444) | void b2Distance(b2DistanceOutput* output,
FILE: app/src/main/cpp/b2DistanceJoint.cpp
function b2Vec2 (line 223) | b2Vec2 b2DistanceJoint::GetAnchorA() const
function b2Vec2 (line 228) | b2Vec2 b2DistanceJoint::GetAnchorB() const
function b2Vec2 (line 233) | b2Vec2 b2DistanceJoint::GetReactionForce(float32 inv_dt) const
function float32 (line 239) | float32 b2DistanceJoint::GetReactionTorque(float32 inv_dt) const
FILE: app/src/main/cpp/b2Draw.cpp
function uint32 (line 31) | uint32 b2Draw::GetFlags() const
FILE: app/src/main/cpp/b2DynamicTree.cpp
function int32 (line 54) | int32 b2DynamicTree::AllocateNode()
function int32 (line 106) | int32 b2DynamicTree::CreateProxy(const b2AABB& aabb, void* userData)
function int32 (line 378) | int32 b2DynamicTree::Balance(int32 iA)
function int32 (line 521) | int32 b2DynamicTree::GetHeight() const
function float32 (line 532) | float32 b2DynamicTree::GetAreaRatio() const
function int32 (line 559) | int32 b2DynamicTree::ComputeHeight(int32 nodeId) const
function int32 (line 574) | int32 b2DynamicTree::ComputeHeight() const
function int32 (line 673) | int32 b2DynamicTree::GetMaxBalance() const
FILE: app/src/main/cpp/b2EdgeAndCircleContact.cpp
function b2Contact (line 25) | b2Contact* b2EdgeAndCircleContact::Create(b2Fixture* fixtureA, int32, b2...
FILE: app/src/main/cpp/b2EdgeAndPolygonContact.cpp
function b2Contact (line 25) | b2Contact* b2EdgeAndPolygonContact::Create(b2Fixture* fixtureA, int32, b...
FILE: app/src/main/cpp/b2EdgeShape.cpp
function b2Shape (line 30) | b2Shape* b2EdgeShape::Clone(b2BlockAllocator* allocator) const
function int32 (line 38) | int32 b2EdgeShape::GetChildCount() const
FILE: app/src/main/cpp/b2FrictionJoint.cpp
function b2Vec2 (line 195) | b2Vec2 b2FrictionJoint::GetAnchorA() const
function b2Vec2 (line 200) | b2Vec2 b2FrictionJoint::GetAnchorB() const
function b2Vec2 (line 205) | b2Vec2 b2FrictionJoint::GetReactionForce(float32 inv_dt) const
function float32 (line 210) | float32 b2FrictionJoint::GetReactionTorque(float32 inv_dt) const
function float32 (line 221) | float32 b2FrictionJoint::GetMaxForce() const
function float32 (line 232) | float32 b2FrictionJoint::GetMaxTorque() const
FILE: app/src/main/cpp/b2GearJoint.cpp
function b2Vec2 (line 370) | b2Vec2 b2GearJoint::GetAnchorA() const
function b2Vec2 (line 375) | b2Vec2 b2GearJoint::GetAnchorB() const
function b2Vec2 (line 380) | b2Vec2 b2GearJoint::GetReactionForce(float32 inv_dt) const
function float32 (line 386) | float32 b2GearJoint::GetReactionTorque(float32 inv_dt) const
function float32 (line 398) | float32 b2GearJoint::GetRatio() const
FILE: app/src/main/cpp/b2Joint.cpp
function b2Joint (line 37) | b2Joint* b2Joint::Create(const b2JointDef* def, b2BlockAllocator* alloca...
FILE: app/src/main/cpp/b2Math.cpp
function b2Vec3 (line 25) | b2Vec3 b2Mat33::Solve33(const b2Vec3& b) const
function b2Vec2 (line 41) | b2Vec2 b2Mat33::Solve22(const b2Vec2& b) const
FILE: app/src/main/cpp/b2MotorJoint.cpp
function b2Vec2 (line 206) | b2Vec2 b2MotorJoint::GetAnchorA() const
function b2Vec2 (line 211) | b2Vec2 b2MotorJoint::GetAnchorB() const
function b2Vec2 (line 216) | b2Vec2 b2MotorJoint::GetReactionForce(float32 inv_dt) const
function float32 (line 221) | float32 b2MotorJoint::GetReactionTorque(float32 inv_dt) const
function float32 (line 232) | float32 b2MotorJoint::GetMaxForce() const
function float32 (line 243) | float32 b2MotorJoint::GetMaxTorque() const
function float32 (line 254) | float32 b2MotorJoint::GetCorrectionFactor() const
function b2Vec2 (line 269) | const b2Vec2& b2MotorJoint::GetLinearOffset() const
function float32 (line 284) | float32 b2MotorJoint::GetAngularOffset() const
FILE: app/src/main/cpp/b2MouseJoint.cpp
function b2Vec2 (line 61) | const b2Vec2& b2MouseJoint::GetTarget() const
function float32 (line 71) | float32 b2MouseJoint::GetMaxForce() const
function float32 (line 81) | float32 b2MouseJoint::GetFrequency() const
function float32 (line 91) | float32 b2MouseJoint::GetDampingRatio() const
function b2Vec2 (line 199) | b2Vec2 b2MouseJoint::GetAnchorA() const
function b2Vec2 (line 204) | b2Vec2 b2MouseJoint::GetAnchorB() const
function b2Vec2 (line 209) | b2Vec2 b2MouseJoint::GetReactionForce(float32 inv_dt) const
function float32 (line 214) | float32 b2MouseJoint::GetReactionTorque(float32 inv_dt) const
FILE: app/src/main/cpp/b2PolygonAndCircleContact.cpp
function b2Contact (line 25) | b2Contact* b2PolygonAndCircleContact::Create(b2Fixture* fixtureA, int32,...
FILE: app/src/main/cpp/b2PolygonContact.cpp
function b2Contact (line 28) | b2Contact* b2PolygonContact::Create(b2Fixture* fixtureA, int32, b2Fixtur...
FILE: app/src/main/cpp/b2PolygonShape.cpp
function b2Shape (line 22) | b2Shape* b2PolygonShape::Clone(b2BlockAllocator* allocator) const
function int32 (line 69) | int32 b2PolygonShape::GetChildCount() const
function b2Vec2 (line 74) | static b2Vec2 ComputeCentroid(const b2Vec2* vs, int32 count)
FILE: app/src/main/cpp/b2PrismaticJoint.cpp
function b2Vec2 (line 484) | b2Vec2 b2PrismaticJoint::GetAnchorA() const
function b2Vec2 (line 489) | b2Vec2 b2PrismaticJoint::GetAnchorB() const
function b2Vec2 (line 494) | b2Vec2 b2PrismaticJoint::GetReactionForce(float32 inv_dt) const
function float32 (line 499) | float32 b2PrismaticJoint::GetReactionTorque(float32 inv_dt) const
function float32 (line 504) | float32 b2PrismaticJoint::GetJointTranslation() const
function float32 (line 515) | float32 b2PrismaticJoint::GetJointSpeed() const
function float32 (line 552) | float32 b2PrismaticJoint::GetLowerLimit() const
function float32 (line 557) | float32 b2PrismaticJoint::GetUpperLimit() const
function float32 (line 601) | float32 b2PrismaticJoint::GetMotorForce(float32 inv_dt) const
FILE: app/src/main/cpp/b2PulleyJoint.cpp
function b2Vec2 (line 262) | b2Vec2 b2PulleyJoint::GetAnchorA() const
function b2Vec2 (line 267) | b2Vec2 b2PulleyJoint::GetAnchorB() const
function b2Vec2 (line 272) | b2Vec2 b2PulleyJoint::GetReactionForce(float32 inv_dt) const
function float32 (line 278) | float32 b2PulleyJoint::GetReactionTorque(float32 inv_dt) const
function b2Vec2 (line 284) | b2Vec2 b2PulleyJoint::GetGroundAnchorA() const
function b2Vec2 (line 289) | b2Vec2 b2PulleyJoint::GetGroundAnchorB() const
function float32 (line 294) | float32 b2PulleyJoint::GetLengthA() const
function float32 (line 299) | float32 b2PulleyJoint::GetLengthB() const
function float32 (line 304) | float32 b2PulleyJoint::GetRatio() const
function float32 (line 309) | float32 b2PulleyJoint::GetCurrentLengthA() const
function float32 (line 317) | float32 b2PulleyJoint::GetCurrentLengthB() const
FILE: app/src/main/cpp/b2RevoluteJoint.cpp
function b2Vec2 (line 377) | b2Vec2 b2RevoluteJoint::GetAnchorA() const
function b2Vec2 (line 382) | b2Vec2 b2RevoluteJoint::GetAnchorB() const
function b2Vec2 (line 387) | b2Vec2 b2RevoluteJoint::GetReactionForce(float32 inv_dt) const
function float32 (line 393) | float32 b2RevoluteJoint::GetReactionTorque(float32 inv_dt) const
function float32 (line 398) | float32 b2RevoluteJoint::GetJointAngle() const
function float32 (line 405) | float32 b2RevoluteJoint::GetJointSpeed() const
function float32 (line 424) | float32 b2RevoluteJoint::GetMotorTorque(float32 inv_dt) const
function float32 (line 459) | float32 b2RevoluteJoint::GetLowerLimit() const
function float32 (line 464) | float32 b2RevoluteJoint::GetUpperLimit() const
FILE: app/src/main/cpp/b2RopeJoint.cpp
function b2Vec2 (line 196) | b2Vec2 b2RopeJoint::GetAnchorA() const
function b2Vec2 (line 201) | b2Vec2 b2RopeJoint::GetAnchorB() const
function b2Vec2 (line 206) | b2Vec2 b2RopeJoint::GetReactionForce(float32 inv_dt) const
function float32 (line 212) | float32 b2RopeJoint::GetReactionTorque(float32 inv_dt) const
function float32 (line 218) | float32 b2RopeJoint::GetMaxLength() const
function b2LimitState (line 223) | b2LimitState b2RopeJoint::GetLimitState() const
FILE: app/src/main/cpp/b2Settings.cpp
function b2Free (line 32) | void b2Free(void* mem)
function b2Log (line 38) | void b2Log(const char* string, ...)
FILE: app/src/main/cpp/b2StackAllocator.cpp
function int32 (line 80) | int32 b2StackAllocator::GetMaxAllocation() const
FILE: app/src/main/cpp/b2TimeOfImpact.cpp
type b2SeparationFunction (line 33) | struct b2SeparationFunction
type Type (line 35) | enum Type
method float32 (line 44) | float32 Initialize(const b2SimplexCache* cache,
method float32 (line 125) | float32 FindMinSeparation(int32* indexA, int32* indexB, float32 t) const
method float32 (line 194) | float32 Evaluate(int32 indexA, int32 indexB, float32 t) const
function b2TimeOfImpact (line 254) | void b2TimeOfImpact(b2TOIOutput* output, const b2TOIInput* input)
FILE: app/src/main/cpp/b2Timer.cpp
function float32 (line 53) | float32 b2Timer::GetMilliseconds() const
function float32 (line 79) | float32 b2Timer::GetMilliseconds() const
function float32 (line 96) | float32 b2Timer::GetMilliseconds() const
FILE: app/src/main/cpp/b2WeldJoint.cpp
function b2Vec2 (line 292) | b2Vec2 b2WeldJoint::GetAnchorA() const
function b2Vec2 (line 297) | b2Vec2 b2WeldJoint::GetAnchorB() const
function b2Vec2 (line 302) | b2Vec2 b2WeldJoint::GetReactionForce(float32 inv_dt) const
function float32 (line 308) | float32 b2WeldJoint::GetReactionTorque(float32 inv_dt) const
FILE: app/src/main/cpp/b2WheelJoint.cpp
function b2Vec2 (line 329) | b2Vec2 b2WheelJoint::GetAnchorA() const
function b2Vec2 (line 334) | b2Vec2 b2WheelJoint::GetAnchorB() const
function b2Vec2 (line 339) | b2Vec2 b2WheelJoint::GetReactionForce(float32 inv_dt) const
function float32 (line 344) | float32 b2WheelJoint::GetReactionTorque(float32 inv_dt) const
function float32 (line 349) | float32 b2WheelJoint::GetJointTranslation() const
function float32 (line 363) | float32 b2WheelJoint::GetJointSpeed() const
function float32 (line 396) | float32 b2WheelJoint::GetMotorTorque(float32 inv_dt) const
FILE: app/src/main/cpp/b2World.cpp
function b2Body (line 107) | b2Body* b2World::CreateBody(const b2BodyDef* def)
function b2Joint (line 212) | b2Joint* b2World::CreateJoint(const b2JointDef* def)
type b2WorldQueryWrapper (line 974) | struct b2WorldQueryWrapper
method QueryCallback (line 976) | bool QueryCallback(int32 proxyId)
type b2WorldRayCastWrapper (line 994) | struct b2WorldRayCastWrapper
method float32 (line 996) | float32 RayCastCallback(const b2RayCastInput& input, int32 proxyId)
function int32 (line 1239) | int32 b2World::GetProxyCount() const
function int32 (line 1244) | int32 b2World::GetTreeHeight() const
function int32 (line 1249) | int32 b2World::GetTreeBalance() const
function float32 (line 1254) | float32 b2World::GetTreeQuality() const
FILE: app/src/main/cpp/basicSFMLmain.cpp
type is (line 3) | namespace is
FILE: app/src/main/cpp/isEngine/core/ActivityController.h
function class (line 27) | class ActivityController
function update (line 35) | void update()
function draw (line 39) | void draw()
FILE: app/src/main/cpp/isEngine/core/GameEngine.h
function namespace (line 39) | namespace is
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/Shapes/b2ChainShape.h
function int32 (line 62) | int32 GetChildCount() const;
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/Shapes/b2CircleShape.h
function int32 (line 34) | int32 GetChildCount() const;
function int32 (line 72) | inline int32 b2CircleShape::GetSupport(const b2Vec2 &d) const
function b2Vec2 (line 78) | inline const b2Vec2& b2CircleShape::GetSupportVertex(const b2Vec2 &d) const
function b2Vec2 (line 84) | inline const b2Vec2& b2CircleShape::GetVertex(int32 index) const
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/Shapes/b2EdgeShape.h
function int32 (line 39) | int32 GetChildCount() const;
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/Shapes/b2PolygonShape.h
function Validate (line 79) | bool Validate() const;
function b2Vec2 (line 95) | inline const b2Vec2& b2PolygonShape::GetVertex(int32 index) const
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/Shapes/b2Shape.h
type b2MassData (line 27) | struct b2MassData
type Type (line 46) | enum Type
function Type (line 62) | Type GetType() const;
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/b2BroadPhase.h
type b2Pair (line 27) | struct b2Pair
function int32 (line 94) | int32 GetTreeHeight() const;
function TestOverlap (line 152) | inline bool b2BroadPhase::TestOverlap(int32 proxyIdA, int32 proxyIdB) const
function b2AABB (line 159) | inline const b2AABB& b2BroadPhase::GetFatAABB(int32 proxyId) const
function Query (line 241) | void b2BroadPhase::Query(T* callback, const b2AABB& aabb) const
function RayCast (line 247) | void b2BroadPhase::RayCast(T* callback, const b2RayCastInput& input) const
function ShiftOrigin (line 252) | inline void b2BroadPhase::ShiftOrigin(const b2Vec2& newOrigin)
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/b2Collision.h
type b2ContactFeature (line 38) | struct b2ContactFeature
type b2ManifoldPoint (line 69) | struct b2ManifoldPoint
type b2Manifold (line 93) | struct b2Manifold
type b2WorldManifold (line 110) | struct b2WorldManifold
type b2PointState (line 126) | enum b2PointState
type b2ClipVertex (line 140) | struct b2ClipVertex
type b2RayCastInput (line 147) | struct b2RayCastInput
type b2RayCastOutput (line 155) | struct b2RayCastOutput
type b2AABB (line 162) | struct b2AABB
function float32 (line 180) | float32 GetPerimeter() const
function Combine (line 195) | void Combine(const b2AABB& aabb1, const b2AABB& aabb2)
function Contains (line 202) | bool Contains(const b2AABB& aabb) const
function IsValid (line 254) | inline bool b2AABB::IsValid() const
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/b2Distance.h
type b2DistanceProxy (line 29) | struct b2DistanceProxy
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/b2DynamicTree.h
type b2TreeNode (line 28) | struct b2TreeNode
function Validate (line 105) | void Validate() const;
function b2AABB (line 162) | inline const b2AABB& b2DynamicTree::GetFatAABB(int32 proxyId) const
function Query (line 169) | void b2DynamicTree::Query(T* callback, const b2AABB& aabb) const
function RayCast (line 204) | void b2DynamicTree::RayCast(T* callback, const b2RayCastInput& input) const
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/b2TimeOfImpact.h
type b2TOIInput (line 26) | struct b2TOIInput
type b2TOIOutput (line 36) | struct b2TOIOutput
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Common/b2BlockAllocator.h
type b2Block (line 29) | struct b2Block
type b2Chunk (line 30) | struct b2Chunk
function class (line 35) | class b2BlockAllocator
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Common/b2Draw.h
type b2Color (line 25) | struct b2Color
function class (line 35) | class b2Draw
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Common/b2GrowableStack.h
function Push (line 48) | void Push(const T& element)
function T (line 66) | T Pop()
function int32 (line 73) | int32 GetCount()
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Common/b2Math.h
function b2IsValid (line 26) | inline bool b2IsValid(float32 x)
function float32 (line 33) | inline float32 b2InvSqrt(float32 x)
function const (line 53) | struct b2Vec2
function operator (line 83) | void operator += (const b2Vec2& v)
function operator (line 89) | void operator -= (const b2Vec2& v)
function operator (line 95) | void operator *= (float32 a)
function float32 (line 114) | float32 Normalize()
type b2Vec3 (line 144) | struct b2Vec3
type b2Mat22 (line 183) | struct b2Mat22
function SetZero (line 257) | struct b2Mat33
function Set (line 299) | struct b2Rot
function SetIdentity (line 320) | void SetIdentity()
function Set (line 350) | struct b2Transform
type b2Sweep (line 380) | struct b2Sweep
function float32 (line 406) | inline float32 b2Dot(const b2Vec2& a, const b2Vec2& b)
function float32 (line 412) | inline float32 b2Cross(const b2Vec2& a, const b2Vec2& b)
function b2Vec2 (line 419) | inline b2Vec2 b2Cross(const b2Vec2& a, float32 s)
function b2Vec2 (line 426) | inline b2Vec2 b2Cross(float32 s, const b2Vec2& a)
function b2Vec2 (line 433) | inline b2Vec2 b2Mul(const b2Mat22& A, const b2Vec2& v)
function b2Vec2 (line 440) | inline b2Vec2 b2MulT(const b2Mat22& A, const b2Vec2& v)
function b2Vec2 (line 446) | inline b2Vec2 operator + (const b2Vec2& a, const b2Vec2& b)
function b2Vec2 (line 452) | inline b2Vec2 operator - (const b2Vec2& a, const b2Vec2& b)
function b2Vec2 (line 457) | inline b2Vec2 operator * (float32 s, const b2Vec2& a)
function operator (line 462) | inline bool operator == (const b2Vec2& a, const b2Vec2& b)
function float32 (line 467) | inline float32 b2Distance(const b2Vec2& a, const b2Vec2& b)
function float32 (line 473) | inline float32 b2DistanceSquared(const b2Vec2& a, const b2Vec2& b)
function b2Vec3 (line 479) | inline b2Vec3 operator * (float32 s, const b2Vec3& a)
function b2Vec3 (line 485) | inline b2Vec3 operator + (const b2Vec3& a, const b2Vec3& b)
function b2Vec3 (line 491) | inline b2Vec3 operator - (const b2Vec3& a, const b2Vec3& b)
function float32 (line 497) | inline float32 b2Dot(const b2Vec3& a, const b2Vec3& b)
function b2Vec3 (line 503) | inline b2Vec3 b2Cross(const b2Vec3& a, const b2Vec3& b)
function b2Mat22 (line 508) | inline b2Mat22 operator + (const b2Mat22& A, const b2Mat22& B)
function b2Mat22 (line 514) | inline b2Mat22 b2Mul(const b2Mat22& A, const b2Mat22& B)
function b2Mat22 (line 520) | inline b2Mat22 b2MulT(const b2Mat22& A, const b2Mat22& B)
function b2Vec3 (line 528) | inline b2Vec3 b2Mul(const b2Mat33& A, const b2Vec3& v)
function b2Vec2 (line 534) | inline b2Vec2 b2Mul22(const b2Mat33& A, const b2Vec2& v)
function b2Rot (line 540) | inline b2Rot b2Mul(const b2Rot& q, const b2Rot& r)
function b2Rot (line 553) | inline b2Rot b2MulT(const b2Rot& q, const b2Rot& r)
function b2Vec2 (line 566) | inline b2Vec2 b2Mul(const b2Rot& q, const b2Vec2& v)
function b2Vec2 (line 572) | inline b2Vec2 b2MulT(const b2Rot& q, const b2Vec2& v)
function b2Vec2 (line 577) | inline b2Vec2 b2Mul(const b2Transform& T, const b2Vec2& v)
function b2Vec2 (line 585) | inline b2Vec2 b2MulT(const b2Transform& T, const b2Vec2& v)
function b2Transform (line 597) | inline b2Transform b2Mul(const b2Transform& A, const b2Transform& B)
function b2Transform (line 607) | inline b2Transform b2MulT(const b2Transform& A, const b2Transform& B)
function T (line 616) | T b2Abs(T a)
function b2Vec2 (line 621) | inline b2Vec2 b2Abs(const b2Vec2& a)
function b2Mat22 (line 626) | inline b2Mat22 b2Abs(const b2Mat22& A)
function T (line 632) | T b2Min(T a, T b)
function b2Vec2 (line 637) | inline b2Vec2 b2Min(const b2Vec2& a, const b2Vec2& b)
function T (line 643) | T b2Max(T a, T b)
function b2Vec2 (line 648) | inline b2Vec2 b2Max(const b2Vec2& a, const b2Vec2& b)
function T (line 654) | T b2Clamp(T a, T low, T high)
function b2Vec2 (line 659) | inline b2Vec2 b2Clamp(const b2Vec2& a, const b2Vec2& low, const b2Vec2& ...
function uint32 (line 676) | inline uint32 b2NextPowerOfTwo(uint32 x)
function b2IsPowerOfTwo (line 686) | inline bool b2IsPowerOfTwo(uint32 x)
function GetTransform (line 692) | inline void b2Sweep::GetTransform(b2Transform* xf, float32 beta) const
function Advance (line 702) | inline void b2Sweep::Advance(float32 alpha)
function Normalize (line 712) | inline void b2Sweep::Normalize()
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Common/b2Settings.h
type int8 (line 29) | typedef signed char int8;
type int16 (line 30) | typedef signed short int16;
type int32 (line 31) | typedef signed int int32;
type uint8 (line 32) | typedef unsigned char uint8;
type uint16 (line 33) | typedef unsigned short uint16;
type uint32 (line 34) | typedef unsigned int uint32;
type float32 (line 35) | typedef float float32;
type float64 (line 36) | typedef double float64;
type b2Version (line 141) | struct b2Version
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Common/b2StackAllocator.h
type b2StackEntry (line 27) | struct b2StackEntry
function class (line 37) | class b2StackAllocator
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Common/b2Timer.h
function class (line 26) | class b2Timer
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h
function class (line 26) | class b2ChainAndCircleContact : public b2Contact
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h
function class (line 26) | class b2ChainAndPolygonContact : public b2Contact
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2CircleContact.h
function class (line 26) | class b2CircleContact : public b2Contact
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2Contact.h
function float32 (line 37) | inline float32 b2MixFriction(float32 friction1, float32 friction2)
function float32 (line 44) | inline float32 b2MixRestitution(float32 restitution1, float32 restitution2)
type b2Contact (line 49) | typedef b2Contact* b2ContactCreateFcn( b2Fixture* fixtureA, int32 indexA,
type b2ContactRegister (line 54) | struct b2ContactRegister
type b2ContactEdge (line 66) | struct b2ContactEdge
function class (line 77) | class b2Contact
function b2Manifold (line 222) | inline b2Manifold* b2Contact::GetManifold()
function b2Manifold (line 227) | inline const b2Manifold* b2Contact::GetManifold() const
function GetWorldManifold (line 232) | inline void b2Contact::GetWorldManifold(b2WorldManifold* worldManifold) ...
function SetEnabled (line 242) | inline void b2Contact::SetEnabled(bool flag)
function b2Contact (line 264) | inline b2Contact* b2Contact::GetNext()
function b2Contact (line 269) | inline const b2Contact* b2Contact::GetNext() const
function b2Fixture (line 274) | inline b2Fixture* b2Contact::GetFixtureA()
function b2Fixture (line 279) | inline const b2Fixture* b2Contact::GetFixtureA() const
function b2Fixture (line 284) | inline b2Fixture* b2Contact::GetFixtureB()
function b2Fixture (line 294) | inline const b2Fixture* b2Contact::GetFixtureB() const
function FlagForFiltering (line 304) | inline void b2Contact::FlagForFiltering()
function SetFriction (line 309) | inline void b2Contact::SetFriction(float32 friction)
function ResetFriction (line 319) | inline void b2Contact::ResetFriction()
function SetRestitution (line 324) | inline void b2Contact::SetRestitution(float32 restitution)
function ResetRestitution (line 334) | inline void b2Contact::ResetRestitution()
function SetTangentSpeed (line 339) | inline void b2Contact::SetTangentSpeed(float32 speed)
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2ContactSolver.h
type b2ContactPositionConstraint (line 29) | struct b2ContactPositionConstraint
type b2VelocityConstraintPoint (line 31) | struct b2VelocityConstraintPoint
type b2ContactVelocityConstraint (line 42) | struct b2ContactVelocityConstraint
type b2ContactSolverDef (line 59) | struct b2ContactSolverDef
function class (line 69) | class b2ContactSolver
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h
function class (line 26) | class b2EdgeAndCircleContact : public b2Contact
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h
function class (line 26) | class b2EdgeAndPolygonContact : public b2Contact
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h
function class (line 26) | class b2PolygonAndCircleContact : public b2Contact
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2PolygonContact.h
function class (line 26) | class b2PolygonContact : public b2Contact
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2DistanceJoint.h
function b2JointDef (line 30) | struct b2DistanceJointDef : public b2JointDef
function class (line 67) | class b2DistanceJoint : public b2Joint
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2FrictionJoint.h
function b2JointDef (line 25) | struct b2FrictionJointDef : public b2JointDef
function class (line 55) | class b2FrictionJoint : public b2Joint
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2GearJoint.h
function b2JointDef (line 26) | struct b2GearJointDef : public b2JointDef
function class (line 56) | class b2GearJoint : public b2Joint
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2Joint.h
type b2SolverData (line 26) | struct b2SolverData
type b2JointType (line 29) | enum b2JointType
type b2LimitState (line 45) | enum b2LimitState
type b2Jacobian (line 53) | struct b2Jacobian
type b2JointEdge (line 65) | struct b2JointEdge
function class (line 103) | class b2Joint
function b2Body (line 191) | inline b2Body* b2Joint::GetBodyA()
function b2Body (line 196) | inline b2Body* b2Joint::GetBodyB()
function b2Joint (line 201) | inline b2Joint* b2Joint::GetNext()
function b2Joint (line 206) | inline const b2Joint* b2Joint::GetNext() const
function SetUserData (line 216) | inline void b2Joint::SetUserData(void* data)
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2MotorJoint.h
function b2JointDef (line 25) | struct b2MotorJointDef : public b2JointDef
function class (line 59) | class b2MotorJoint : public b2Joint
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2MouseJoint.h
function b2JointDef (line 26) | struct b2MouseJointDef : public b2JointDef
function class (line 60) | class b2MouseJoint : public b2Joint
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2PrismaticJoint.h
function b2JointDef (line 30) | struct b2PrismaticJointDef : public b2JointDef
function class (line 86) | class b2PrismaticJoint : public b2Joint
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2PulleyJoint.h
function b2JointDef (line 28) | struct b2PulleyJointDef : public b2JointDef
function class (line 79) | class b2PulleyJoint : public b2Joint
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2RevoluteJoint.h
function b2JointDef (line 35) | struct b2RevoluteJointDef : public b2JointDef
function class (line 90) | class b2RevoluteJoint : public b2Joint
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2RopeJoint.h
function b2JointDef (line 28) | struct b2RopeJointDef : public b2JointDef
function class (line 58) | class b2RopeJoint : public b2Joint
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2WeldJoint.h
function b2JointDef (line 27) | struct b2WeldJointDef : public b2JointDef
function class (line 62) | class b2WeldJoint : public b2Joint
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2WheelJoint.h
function b2JointDef (line 30) | struct b2WheelJointDef : public b2JointDef
function class (line 79) | class b2WheelJoint : public b2Joint
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/b2Body.h
type b2FixtureDef (line 31) | struct b2FixtureDef
type b2JointEdge (line 32) | struct b2JointEdge
type b2ContactEdge (line 33) | struct b2ContactEdge
type b2BodyType (line 39) | enum b2BodyType
function class (line 126) | class b2Body
function SetAwake (line 633) | inline void b2Body::SetAwake(bool flag)
function SetSleepingAllowed (line 669) | inline void b2Body::SetSleepingAllowed(bool flag)
function b2Fixture (line 687) | inline b2Fixture* b2Body::GetFixtureList()
function b2Fixture (line 692) | inline const b2Fixture* b2Body::GetFixtureList() const
function b2JointEdge (line 697) | inline b2JointEdge* b2Body::GetJointList()
function b2JointEdge (line 702) | inline const b2JointEdge* b2Body::GetJointList() const
function b2ContactEdge (line 707) | inline b2ContactEdge* b2Body::GetContactList()
function b2ContactEdge (line 712) | inline const b2ContactEdge* b2Body::GetContactList() const
function b2Body (line 717) | inline b2Body* b2Body::GetNext()
function b2Body (line 722) | inline const b2Body* b2Body::GetNext() const
function SetUserData (line 727) | inline void b2Body::SetUserData(void* data)
function ApplyForce (line 737) | inline void b2Body::ApplyForce(const b2Vec2& force, const b2Vec2& point,...
function ApplyForceToCenter (line 757) | inline void b2Body::ApplyForceToCenter(const b2Vec2& force, bool wake)
function ApplyTorque (line 776) | inline void b2Body::ApplyTorque(float32 torque, bool wake)
function ApplyLinearImpulse (line 795) | inline void b2Body::ApplyLinearImpulse(const b2Vec2& impulse, const b2Ve...
function ApplyAngularImpulse (line 815) | inline void b2Body::ApplyAngularImpulse(float32 impulse, bool wake)
function SynchronizeTransform (line 834) | inline void b2Body::SynchronizeTransform()
function Advance (line 840) | inline void b2Body::Advance(float32 alpha)
function b2World (line 850) | inline b2World* b2Body::GetWorld()
function b2World (line 855) | inline const b2World* b2Body::GetWorld() const
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/b2ContactManager.h
function class (line 30) | class b2ContactManager
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/b2Fixture.h
type b2FixtureProxy (line 94) | struct b2FixtureProxy
function IsSensor (line 125) | bool IsSensor() const;
function b2Shape (line 243) | inline b2Shape* b2Fixture::GetShape()
function b2Shape (line 248) | inline const b2Shape* b2Fixture::GetShape() const
function SetUserData (line 268) | inline void b2Fixture::SetUserData(void* data)
function b2Body (line 273) | inline b2Body* b2Fixture::GetBody()
function b2Body (line 278) | inline const b2Body* b2Fixture::GetBody() const
function b2Fixture (line 283) | inline b2Fixture* b2Fixture::GetNext()
function b2Fixture (line 288) | inline const b2Fixture* b2Fixture::GetNext() const
function SetDensity (line 293) | inline void b2Fixture::SetDensity(float32 density)
function SetFriction (line 309) | inline void b2Fixture::SetFriction(float32 friction)
function SetRestitution (line 319) | inline void b2Fixture::SetRestitution(float32 restitution)
function TestPoint (line 324) | inline bool b2Fixture::TestPoint(const b2Vec2& p) const
function RayCast (line 329) | inline bool b2Fixture::RayCast(b2RayCastOutput* output, const b2RayCastI...
function GetMassData (line 334) | inline void b2Fixture::GetMassData(b2MassData* massData) const
function b2AABB (line 339) | inline const b2AABB& b2Fixture::GetAABB(int32 childIndex) const
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/b2Island.h
type b2ContactVelocityConstraint (line 30) | struct b2ContactVelocityConstraint
type b2Profile (line 31) | struct b2Profile
function class (line 34) | class b2Island
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/b2TimeStep.h
type b2Profile (line 25) | struct b2Profile
type b2TimeStep (line 38) | struct b2TimeStep
type b2Position (line 49) | struct b2Position
type b2Velocity (line 56) | struct b2Velocity
type b2SolverData (line 63) | struct b2SolverData
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/b2World.h
type b2AABB (line 29) | struct b2AABB
type b2BodyDef (line 30) | struct b2BodyDef
type b2Color (line 31) | struct b2Color
type b2JointDef (line 32) | struct b2JointDef
function class (line 41) | class b2World
function SetAutoClearForces (line 326) | inline void b2World::SetAutoClearForces(bool flag)
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/b2WorldCallbacks.h
type b2Vec2 (line 24) | struct b2Vec2
type b2Transform (line 25) | struct b2Transform
type b2ContactResult (line 30) | struct b2ContactResult
type b2Manifold (line 31) | struct b2Manifold
function class (line 36) | class b2DestructionListener
function class (line 52) | class b2ContactFilter
type b2ContactImpulse (line 65) | struct b2ContactImpulse
function class (line 81) | class b2ContactListener
function class (line 123) | class b2QueryCallback
function class (line 135) | class b2RayCastCallback
FILE: app/src/main/cpp/isEngine/ext_lib/Box2D/Rope/b2Rope.h
function class (line 63) | class b2Rope
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/FreeFuncs.hpp
type tmx (line 64) | namespace tmx
function base64_decode (line 69) | static inline std::string base64_decode(std::string const& encoded_str...
function Colour (line 135) | static inline Colour colourFromString(std::string str)
function resolveFilePath (line 166) | static inline std::string resolveFilePath(std::string path, const std:...
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/ImageLayer.hpp
type tmx (line 34) | namespace tmx
function ImageLayer (line 41) | class TMXLITE_EXPORT_API ImageLayer final : public Layer
function ImageLayer (line 79) | inline ImageLayer& Layer::getLayerAs<ImageLayer>()
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/Layer.hpp
type pugi (line 38) | namespace pugi
class xml_node (line 40) | class xml_node
type tmx (line 43) | namespace tmx
class Map (line 45) | class Map
class TileLayer (line 46) | class TileLayer
class ObjectGroup (line 47) | class ObjectGroup
class ImageLayer (line 48) | class ImageLayer
class LayerGroup (line 49) | class LayerGroup
function Layer (line 55) | class TMXLITE_EXPORT_API Layer
function setOpacity (line 141) | void setOpacity(float opacity) { m_opacity = opacity; }
function setVisible (line 142) | void setVisible(bool visible) { m_visible = visible; }
function setOffset (line 143) | void setOffset(std::int32_t x, std::int32_t y) { m_offset = Vector2i(x...
function setSize (line 144) | void setSize(std::uint32_t width, std::uint32_t height) { m_size = Vec...
function addProperty (line 145) | void addProperty(const pugi::xml_node& node) { m_properties.emplace_ba...
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/LayerGroup.hpp
type tmx (line 35) | namespace tmx
function LayerGroup (line 42) | class TMXLITE_EXPORT_API LayerGroup final : public Layer
function LayerGroup (line 74) | inline LayerGroup& Layer::getLayerAs<LayerGroup>()
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/Map.cpp
function getFilePath (line 45) | std::string getFilePath(const std::string& path)
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/Map.hpp
type tmx (line 41) | namespace tmx
function Version (line 46) | struct TMXLITE_EXPORT_API Version
type Orientation (line 55) | enum class Orientation
type RenderOrder (line 64) | enum class RenderOrder
type StaggerAxis (line 73) | enum class StaggerAxis
type StaggerIndex (line 78) | enum class StaggerIndex
function final (line 92) | class TMXLITE_EXPORT_API Map final
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/Object.hpp
type pugi (line 37) | namespace pugi
class xml_node (line 39) | class xml_node
type tmx (line 42) | namespace tmx
class Map (line 44) | class Map
function final (line 49) | struct TMXLITE_EXPORT_API Text final
function Object (line 83) | class TMXLITE_EXPORT_API Object final
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/ObjectGroup.hpp
type tmx (line 36) | namespace tmx
function ObjectGroup (line 42) | class TMXLITE_EXPORT_API ObjectGroup final : public Layer
function ObjectGroup (line 85) | inline ObjectGroup& Layer::getLayerAs<ObjectGroup>()
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/Property.hpp
type pugi (line 36) | namespace pugi
class xml_node (line 38) | class xml_node
type tmx (line 41) | namespace tmx
function Property (line 50) | class TMXLITE_EXPORT_API Property final
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/TileLayer.hpp
type tmx (line 33) | namespace tmx
function TileLayer (line 38) | class TMXLITE_EXPORT_API TileLayer final : public Layer
function TileLayer (line 105) | inline TileLayer& Layer::getLayerAs<TileLayer>()
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/Tileset.hpp
type pugi (line 38) | namespace pugi
class xml_node (line 40) | class xml_node
type tmx (line 43) | namespace tmx
class Map (line 45) | class Map
function Tileset (line 52) | class TMXLITE_EXPORT_API Tileset final
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/Types.hpp
type tmx (line 34) | namespace tmx
type Vector2 (line 40) | struct Vector2 final
method Vector2 (line 42) | Vector2() : x(0), y(0) {}
method Vector2 (line 43) | Vector2(T x, T y) :x(x), y(y) {}
type Rectangle (line 93) | struct Rectangle final
method Rectangle (line 95) | Rectangle() : left(0), top(0), width(0), height(0) {}
method Rectangle (line 96) | Rectangle(T l, T t, T w, T h) : left(l), top(t), width(w), height(h) {}
method Rectangle (line 97) | Rectangle(Vector2<T> position, Vector2<T> size) : left(position.x), ...
function Colour (line 108) | struct TMXLITE_EXPORT_API Colour final
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/detail/Android.hpp
type std (line 37) | namespace std
function to_string (line 40) | std::string to_string(T value)
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/detail/Log.hpp
type tmx (line 58) | namespace tmx
class Logger (line 65) | class Logger final
type Output (line 68) | enum class Output
type Type (line 75) | enum class Type
method log (line 87) | static void log(const std::string& message, Type type = Type::Info, ...
method updateOutString (line 163) | static void updateOutString(std::size_t maxBuffer)
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/detail/pugixml.cpp
type pugi (line 145) | namespace pugi
type xml_attribute_struct (line 1031) | struct xml_attribute_struct
method xml_attribute_struct (line 1033) | xml_attribute_struct(impl::xml_memory_page* page): header(page, 0), ...
method xml_attribute_struct (line 1078) | xml_attribute_struct(impl::xml_memory_page* page): header(reinterpre...
type xml_node_struct (line 1049) | struct xml_node_struct
method xml_node_struct (line 1051) | xml_node_struct(impl::xml_memory_page* page, xml_node_type type): he...
method xml_node_struct (line 1093) | xml_node_struct(impl::xml_memory_page* page, xml_node_type type): he...
type xml_attribute_struct (line 1076) | struct xml_attribute_struct
method xml_attribute_struct (line 1033) | xml_attribute_struct(impl::xml_memory_page* page): header(page, 0), ...
method xml_attribute_struct (line 1078) | xml_attribute_struct(impl::xml_memory_page* page): header(reinterpre...
type xml_node_struct (line 1091) | struct xml_node_struct
method xml_node_struct (line 1051) | xml_node_struct(impl::xml_memory_page* page, xml_node_type type): he...
method xml_node_struct (line 1093) | xml_node_struct(impl::xml_memory_page* page, xml_node_type type): he...
function PUGI__NS_BEGIN (line 158) | PUGI__NS_BEGIN
function PUGI__FN (line 164) | PUGI__FN void default_deallocate(void* ptr)
type xml_memory_management_function_storage (line 170) | struct xml_memory_management_function_storage
function PUGI__NS_END (line 182) | PUGI__NS_END
function PUGI__FN (line 199) | PUGI__FN bool strequal(const char_t* src, const char_t* dst)
function PUGI__FN (line 211) | PUGI__FN bool strequalrange(const char_t* lhs, const char_t* rhs, size_t...
function PUGI__FN (line 221) | PUGI__FN size_t strlength_wide(const wchar_t* s)
function PUGI__NS_END (line 233) | PUGI__NS_END
function PUGI__NS_BEGIN (line 261) | PUGI__NS_BEGIN
function PUGI__FN_NO_INLINE (line 374) | PUGI__FN_NO_INLINE bool compact_hash_table::rehash()
type xml_allocator (line 440) | struct xml_allocator
method xml_allocator (line 486) | xml_allocator(xml_memory_page* root): _root(root), _busy_size(root->bu...
method xml_memory_page (line 493) | xml_memory_page* allocate_page(size_t data_size)
method deallocate_page (line 517) | static void deallocate_page(xml_memory_page* page)
method deallocate_memory (line 578) | void deallocate_memory(void* ptr, size_t size, xml_memory_page* page)
method char_t (line 622) | char_t* allocate_string(size_t length)
method deallocate_string (line 656) | void deallocate_string(char_t* string)
method reserve (line 675) | bool reserve()
type xml_memory_page (line 442) | struct xml_memory_page
method xml_memory_page (line 444) | static xml_memory_page* construct(void* memory)
type xml_memory_string_header (line 478) | struct xml_memory_string_header
type xml_allocator (line 484) | struct xml_allocator
method xml_allocator (line 486) | xml_allocator(xml_memory_page* root): _root(root), _busy_size(root->bu...
method xml_memory_page (line 493) | xml_memory_page* allocate_page(size_t data_size)
method deallocate_page (line 517) | static void deallocate_page(xml_memory_page* page)
method deallocate_memory (line 578) | void deallocate_memory(void* ptr, size_t size, xml_memory_page* page)
method char_t (line 622) | char_t* allocate_string(size_t length)
method deallocate_string (line 656) | void deallocate_string(char_t* string)
method reserve (line 675) | bool reserve()
function PUGI__FN_NO_INLINE (line 692) | PUGI__FN_NO_INLINE void* xml_allocator::allocate_memory_oob(size_t size,...
class compact_header (line 736) | class compact_header
method compact_header (line 739) | compact_header(xml_memory_page* page, unsigned int flags)
method xml_memory_page (line 765) | xml_memory_page* get_page() const
function PUGI__FN (line 778) | PUGI__FN xml_memory_page* compact_get_page(const void* object, int heade...
function PUGI__FN_NO_INLINE (line 785) | PUGI__FN_NO_INLINE T* compact_get_value(const void* object)
function PUGI__FN_NO_INLINE (line 790) | PUGI__FN_NO_INLINE void compact_set_value(const void* object, T* value)
class compact_pointer (line 795) | class compact_pointer
method compact_pointer (line 798) | compact_pointer(): _data(0)
method T (line 848) | T* operator->() const
class compact_pointer_parent (line 857) | class compact_pointer_parent
method compact_pointer_parent (line 860) | compact_pointer_parent(): _data(0)
method T (line 928) | T* operator->() const
class compact_string (line 937) | class compact_string
method compact_string (line 940) | compact_string(): _data(0)
type pugi (line 1029) | namespace pugi
type xml_attribute_struct (line 1031) | struct xml_attribute_struct
method xml_attribute_struct (line 1033) | xml_attribute_struct(impl::xml_memory_page* page): header(page, 0), ...
method xml_attribute_struct (line 1078) | xml_attribute_struct(impl::xml_memory_page* page): header(reinterpre...
type xml_node_struct (line 1049) | struct xml_node_struct
method xml_node_struct (line 1051) | xml_node_struct(impl::xml_memory_page* page, xml_node_type type): he...
method xml_node_struct (line 1093) | xml_node_struct(impl::xml_memory_page* page, xml_node_type type): he...
type xml_attribute_struct (line 1076) | struct xml_attribute_struct
method xml_attribute_struct (line 1033) | xml_attribute_struct(impl::xml_memory_page* page): header(page, 0), ...
method xml_attribute_struct (line 1078) | xml_attribute_struct(impl::xml_memory_page* page): header(reinterpre...
type xml_node_struct (line 1091) | struct xml_node_struct
method xml_node_struct (line 1051) | xml_node_struct(impl::xml_memory_page* page, xml_node_type type): he...
method xml_node_struct (line 1093) | xml_node_struct(impl::xml_memory_page* page, xml_node_type type): he...
type pugi (line 1074) | namespace pugi
type xml_attribute_struct (line 1031) | struct xml_attribute_struct
method xml_attribute_struct (line 1033) | xml_attribute_struct(impl::xml_memory_page* page): header(page, 0), ...
method xml_attribute_struct (line 1078) | xml_attribute_struct(impl::xml_memory_page* page): header(reinterpre...
type xml_node_struct (line 1049) | struct xml_node_struct
method xml_node_struct (line 1051) | xml_node_struct(impl::xml_memory_page* page, xml_node_type type): he...
method xml_node_struct (line 1093) | xml_node_struct(impl::xml_memory_page* page, xml_node_type type): he...
type xml_attribute_struct (line 1076) | struct xml_attribute_struct
method xml_attribute_struct (line 1033) | xml_attribute_struct(impl::xml_memory_page* page): header(page, 0), ...
method xml_attribute_struct (line 1078) | xml_attribute_struct(impl::xml_memory_page* page): header(reinterpre...
type xml_node_struct (line 1091) | struct xml_node_struct
method xml_node_struct (line 1051) | xml_node_struct(impl::xml_memory_page* page, xml_node_type type): he...
method xml_node_struct (line 1093) | xml_node_struct(impl::xml_memory_page* page, xml_node_type type): he...
function PUGI__NS_BEGIN (line 1114) | PUGI__NS_BEGIN
type xml_document_struct (line 1121) | struct xml_document_struct: public xml_node_struct, public xml_allocator
method xml_document_struct (line 1123) | xml_document_struct(xml_memory_page* page): xml_node_struct(page, node...
function xml_allocator (line 1139) | inline xml_allocator& get_allocator(const Object* object)
method xml_allocator (line 486) | xml_allocator(xml_memory_page* root): _root(root), _busy_size(root->bu...
method xml_memory_page (line 493) | xml_memory_page* allocate_page(size_t data_size)
method deallocate_page (line 517) | static void deallocate_page(xml_memory_page* page)
method deallocate_memory (line 578) | void deallocate_memory(void* ptr, size_t size, xml_memory_page* page)
method char_t (line 622) | char_t* allocate_string(size_t length)
method deallocate_string (line 656) | void deallocate_string(char_t* string)
method reserve (line 675) | bool reserve()
function xml_document_struct (line 1146) | inline xml_document_struct& get_document(const Object* object)
method xml_document_struct (line 1123) | xml_document_struct(xml_memory_page* page): xml_node_struct(page, node...
function PUGI__NS_END (line 1152) | PUGI__NS_END
function xml_node_struct (line 1165) | inline xml_node_struct* allocate_node(xml_allocator& alloc, xml_node_typ...
function destroy_attribute (line 1174) | inline void destroy_attribute(xml_attribute_struct* a, xml_allocator& al...
function destroy_node (line 1185) | inline void destroy_node(xml_node_struct* n, xml_allocator& alloc)
function append_node (line 1214) | inline void append_node(xml_node_struct* child, xml_node_struct* node)
function prepend_node (line 1235) | inline void prepend_node(xml_node_struct* child, xml_node_struct* node)
function insert_node_after (line 1253) | inline void insert_node_after(xml_node_struct* child, xml_node_struct* n...
function insert_node_before (line 1270) | inline void insert_node_before(xml_node_struct* child, xml_node_struct* ...
function remove_node (line 1287) | inline void remove_node(xml_node_struct* node)
function append_attribute (line 1306) | inline void append_attribute(xml_attribute_struct* attr, xml_node_struct...
function prepend_attribute (line 1325) | inline void prepend_attribute(xml_attribute_struct* attr, xml_node_struc...
function insert_attribute_after (line 1341) | inline void insert_attribute_after(xml_attribute_struct* attr, xml_attri...
function insert_attribute_before (line 1353) | inline void insert_attribute_before(xml_attribute_struct* attr, xml_attr...
function remove_attribute (line 1365) | inline void remove_attribute(xml_attribute_struct* attr, xml_node_struct...
function PUGI__FN_NO_INLINE (line 1381) | PUGI__FN_NO_INLINE xml_node_struct* append_new_node(xml_node_struct* nod...
function PUGI__FN_NO_INLINE (line 1393) | PUGI__FN_NO_INLINE xml_attribute_struct* append_new_attribute(xml_node_s...
function PUGI__NS_END (line 1404) | PUGI__NS_END
type opt_true (line 1413) | struct opt_true
function PUGI__NS_END (line 1417) | PUGI__NS_END
function endian_swap (line 1426) | inline uint32_t endian_swap(uint32_t value)
type utf8_counter (line 1431) | struct utf8_counter
method value_type (line 1435) | static value_type low(value_type result, uint32_t ch)
method value_type (line 1445) | static value_type high(value_type result, uint32_t)
type utf8_writer (line 1452) | struct utf8_writer
method value_type (line 1456) | static value_type low(value_type result, uint32_t ch)
method value_type (line 1481) | static value_type high(value_type result, uint32_t ch)
method value_type (line 1491) | static value_type any(value_type result, uint32_t ch)
type utf16_counter (line 1497) | struct utf16_counter
method value_type (line 1501) | static value_type low(value_type result, uint32_t)
method value_type (line 1506) | static value_type high(value_type result, uint32_t)
type utf16_writer (line 1512) | struct utf16_writer
method value_type (line 1516) | static value_type low(value_type result, uint32_t ch)
method value_type (line 1523) | static value_type high(value_type result, uint32_t ch)
method value_type (line 1534) | static value_type any(value_type result, uint32_t ch)
type utf32_counter (line 1540) | struct utf32_counter
method value_type (line 1544) | static value_type low(value_type result, uint32_t)
method value_type (line 1549) | static value_type high(value_type result, uint32_t)
type utf32_writer (line 1555) | struct utf32_writer
method value_type (line 1559) | static value_type low(value_type result, uint32_t ch)
method value_type (line 1566) | static value_type high(value_type result, uint32_t ch)
method value_type (line 1573) | static value_type any(value_type result, uint32_t ch)
type latin1_writer (line 1581) | struct latin1_writer
method value_type (line 1585) | static value_type low(value_type result, uint32_t ch)
method value_type (line 1592) | static value_type high(value_type result, uint32_t ch)
type utf8_decoder (line 1602) | struct utf8_decoder
method process (line 1606) | static inline typename Traits::value_type process(const uint8_t* data,...
type utf16_decoder (line 1669) | struct utf16_decoder
method process (line 1673) | static inline typename Traits::value_type process(const uint16_t* data...
type utf32_decoder (line 1721) | struct utf32_decoder
method process (line 1725) | static inline typename Traits::value_type process(const uint32_t* data...
type latin1_decoder (line 1751) | struct latin1_decoder
method process (line 1755) | static inline typename Traits::value_type process(const uint8_t* data,...
type wchar_selector (line 1768) | struct wchar_selector
type wchar_selector<2> (line 1770) | struct wchar_selector<2>
type wchar_selector<4> (line 1778) | struct wchar_selector<4>
type wchar_decoder (line 1789) | struct wchar_decoder
method process (line 1793) | static inline typename Traits::value_type process(const wchar_t* data,...
function PUGI__FN (line 1802) | PUGI__FN void convert_wchar_endian_swap(wchar_t* result, const wchar_t* ...
type chartypex_t (line 1844) | enum chartypex_t
function PUGI__FN (line 1884) | PUGI__FN bool is_little_endian()
function PUGI__FN (line 1891) | PUGI__FN xml_encoding get_wchar_encoding()
function PUGI__FN (line 1901) | PUGI__FN xml_encoding guess_buffer_encoding(uint8_t d0, uint8_t d1, uint...
function PUGI__FN (line 1925) | PUGI__FN xml_encoding get_buffer_encoding(xml_encoding encoding, const v...
function PUGI__FN (line 1950) | PUGI__FN bool get_mutable_buffer(char_t*& out_buffer, size_t& out_length...
function PUGI__FN (line 1979) | PUGI__FN bool need_endian_swap_utf(xml_encoding le, xml_encoding re)
function PUGI__FN (line 1985) | PUGI__FN bool convert_buffer_endian_swap(char_t*& out_buffer, size_t& ou...
function PUGI__FN (line 2014) | PUGI__FN bool convert_buffer_generic(char_t*& out_buffer, size_t& out_le...
function PUGI__FN (line 2039) | PUGI__FN bool convert_buffer(char_t*& out_buffer, size_t& out_length, xm...
function PUGI__FN (line 2084) | PUGI__FN bool convert_buffer_generic(char_t*& out_buffer, size_t& out_le...
function PUGI__FN (line 2109) | PUGI__FN size_t get_latin1_7bit_prefix_length(const uint8_t* data, size_...
function PUGI__FN (line 2118) | PUGI__FN bool convert_buffer_latin1(char_t*& out_buffer, size_t& out_len...
function PUGI__FN (line 2155) | PUGI__FN bool convert_buffer(char_t*& out_buffer, size_t& out_length, xm...
function PUGI__FN (line 2190) | PUGI__FN size_t as_utf8_begin(const wchar_t* str, size_t length)
function PUGI__FN (line 2196) | PUGI__FN void as_utf8_end(char* buffer, size_t size, const wchar_t* str,...
function PUGI__FN (line 2208) | PUGI__FN std::string as_utf8_impl(const wchar_t* str, size_t length)
function PUGI__FN (line 2223) | PUGI__FN std::basic_string<wchar_t> as_wide_impl(const char* str, size_t...
function strcpy_insitu_allow (line 2249) | inline bool strcpy_insitu_allow(size_t length, const Header& header, uin...
function PUGI__FN (line 2266) | PUGI__FN bool strcpy_insitu(String& dest, Header& header, uintptr_t head...
type gap (line 2314) | struct gap
method gap (line 2319) | gap(): end(0), size(0)
method push (line 2325) | void push(char_t*& s, size_t count)
method char_t (line 2342) | char_t* flush(char_t* s)
function PUGI__FN (line 2356) | PUGI__FN char_t* strconv_escape(char_t* s, gap& g)
function PUGI__FN (line 2509) | PUGI__FN char_t* strconv_comment(char_t* s, char_t endch)
function PUGI__FN (line 2537) | PUGI__FN char_t* strconv_cdata(char_t* s, char_t endch)
type strconv_pcdata_impl (line 2567) | struct strconv_pcdata_impl
method char_t (line 2569) | static char_t* parse(char_t* s)
function PUGI__FN (line 2618) | PUGI__FN strconv_pcdata_t get_strconv_pcdata(unsigned int optmask)
type strconv_attribute_impl (line 2638) | struct strconv_attribute_impl
method char_t (line 2640) | static char_t* parse_wnorm(char_t* s, char_t end_quote)
method char_t (line 2692) | static char_t* parse_wconv(char_t* s, char_t end_quote)
method char_t (line 2728) | static char_t* parse_eol(char_t* s, char_t end_quote)
method char_t (line 2760) | static char_t* parse_simple(char_t* s, char_t end_quote)
function PUGI__FN (line 2787) | PUGI__FN strconv_attribute_t get_strconv_attribute(unsigned int optmask)
function xml_parse_result (line 2813) | inline xml_parse_result make_parse_result(xml_parse_status status, ptrdi...
type xml_parser (line 2822) | struct xml_parser
method xml_parser (line 2829) | xml_parser(xml_allocator* alloc_): alloc(*alloc_), alloc_state(alloc_)...
method char_t (line 2845) | char_t* parse_doctype_primitive(char_t* s)
method char_t (line 2878) | char_t* parse_doctype_ignore(char_t* s)
method char_t (line 2909) | char_t* parse_doctype_group(char_t* s, char_t endch)
method char_t (line 2955) | char_t* parse_exclamation(char_t* s, xml_node_struct* cursor, unsigned...
method char_t (line 3064) | char_t* parse_question(char_t* s, xml_node_struct*& ref_cursor, unsign...
method char_t (line 3158) | char_t* parse_tree(char_t* s, xml_node_struct* root, unsigned int optm...
method char_t (line 3387) | static char_t* parse_skip_bom(char_t* s)
method char_t (line 3393) | static char_t* parse_skip_bom(char_t* s)
method has_element_node_siblings (line 3399) | static bool has_element_node_siblings(xml_node_struct* node)
method xml_parse_result (line 3411) | static xml_parse_result parse(char_t* buffer, size_t length, xml_docum...
function PUGI__FN (line 3460) | PUGI__FN xml_encoding get_write_native_encoding()
function PUGI__FN (line 3469) | PUGI__FN xml_encoding get_write_encoding(xml_encoding encoding)
function PUGI__FN (line 3487) | PUGI__FN size_t convert_buffer_output_generic(typename T::value_type des...
function PUGI__FN (line 3496) | PUGI__FN size_t convert_buffer_output_generic(typename T::value_type des...
function PUGI__FN (line 3512) | PUGI__FN size_t get_valid_length(const char_t* data, size_t length)
function PUGI__FN (line 3520) | PUGI__FN size_t convert_buffer_output(char_t* r_char, uint8_t* r_u8, uin...
function PUGI__FN (line 3558) | PUGI__FN size_t get_valid_length(const char_t* data, size_t length)
function PUGI__FN (line 3574) | PUGI__FN size_t convert_buffer_output(char_t* /* r_char */, uint8_t* r_u...
class xml_buffered_writer (line 3598) | class xml_buffered_writer
method xml_buffered_writer (line 3604) | xml_buffered_writer(xml_writer& writer_, xml_encoding user_encoding): ...
method flush (line 3609) | size_t flush()
method flush (line 3616) | void flush(const char_t* data, size_t size)
method write_direct (line 3634) | void write_direct(const char_t* data, size_t length)
method write_buffer (line 3673) | void write_buffer(const char_t* data, size_t length)
method write_string (line 3688) | void write_string(const char_t* data)
method write (line 3713) | void write(char_t d0)
method write (line 3722) | void write(char_t d0, char_t d1)
method write (line 3732) | void write(char_t d0, char_t d1, char_t d2)
method write (line 3743) | void write(char_t d0, char_t d1, char_t d2, char_t d3)
method write (line 3755) | void write(char_t d0, char_t d1, char_t d2, char_t d3, char_t d4)
method write (line 3768) | void write(char_t d0, char_t d1, char_t d2, char_t d3, char_t d4, char...
function PUGI__FN (line 3812) | PUGI__FN void text_output_escaped(xml_buffered_writer& writer, const cha...
function PUGI__FN (line 3853) | PUGI__FN void text_output(xml_buffered_writer& writer, const char_t* s, ...
function PUGI__FN (line 3861) | PUGI__FN void text_output_cdata(xml_buffered_writer& writer, const char_...
function PUGI__FN (line 3883) | PUGI__FN void text_output_indent(xml_buffered_writer& writer, const char...
function PUGI__FN (line 3923) | PUGI__FN void node_output_comment(xml_buffered_writer& writer, const cha...
function PUGI__FN (line 3948) | PUGI__FN void node_output_pi_value(xml_buffered_writer& writer, const ch...
function PUGI__FN (line 3969) | PUGI__FN void node_output_attributes(xml_buffered_writer& writer, xml_no...
function PUGI__FN (line 3996) | PUGI__FN bool node_output_start(xml_buffered_writer& writer, xml_node_st...
function PUGI__FN (line 4021) | PUGI__FN void node_output_end(xml_buffered_writer& writer, xml_node_stru...
function PUGI__FN (line 4031) | PUGI__FN void node_output_simple(xml_buffered_writer& writer, xml_node_s...
type indent_flags_t (line 4087) | enum indent_flags_t
function PUGI__FN (line 4093) | PUGI__FN void node_output(xml_buffered_writer& writer, xml_node_struct* ...
function PUGI__FN (line 4182) | PUGI__FN bool has_declaration(xml_node_struct* node)
function PUGI__FN (line 4195) | PUGI__FN bool is_attribute_of(xml_attribute_struct* attr, xml_node_struc...
function PUGI__FN (line 4204) | PUGI__FN bool allow_insert_attribute(xml_node_type parent)
function PUGI__FN (line 4209) | PUGI__FN bool allow_insert_child(xml_node_type parent, xml_node_type child)
function PUGI__FN (line 4218) | PUGI__FN bool allow_move(xml_node parent, xml_node child)
function PUGI__FN (line 4243) | PUGI__FN void node_copy_string(String& dest, Header& header, uintptr_t h...
function PUGI__FN (line 4262) | PUGI__FN void node_copy_contents(xml_node_struct* dn, xml_node_struct* s...
function PUGI__FN (line 4279) | PUGI__FN void node_copy_tree(xml_node_struct* dn, xml_node_struct* sn)
function PUGI__FN (line 4324) | PUGI__FN void node_copy_attribute(xml_attribute_struct* da, xml_attribut...
function is_text_node (line 4333) | inline bool is_text_node(xml_node_struct* node)
function U (line 4341) | U string_to_integer(const char_t* value, U minneg, U maxpos)
function PUGI__FN (line 4408) | PUGI__FN int get_value_int(const char_t* value)
function get_value_uint (line 4413) | PUGI__FN unsigned int get_value_uint(const char_t* value)
function PUGI__FN (line 4418) | PUGI__FN double get_value_double(const char_t* value)
function PUGI__FN (line 4427) | PUGI__FN float get_value_float(const char_t* value)
function PUGI__FN (line 4436) | PUGI__FN bool get_value_bool(const char_t* value)
function get_value_llong (line 4446) | PUGI__FN long long get_value_llong(const char_t* value)
function get_value_ullong (line 4451) | PUGI__FN unsigned long long get_value_ullong(const char_t* value)
function PUGI__FN (line 4458) | PUGI__FN char_t* integer_to_string(char_t* begin, char_t* end, U value, ...
function PUGI__FN (line 4480) | PUGI__FN bool set_value_ascii(String& dest, Header& header, uintptr_t he...
function PUGI__FN (line 4495) | PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t ...
function PUGI__FN (line 4505) | PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t ...
function PUGI__FN (line 4515) | PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t ...
function PUGI__FN (line 4524) | PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t ...
function PUGI__FN (line 4533) | PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t ...
function PUGI__FN (line 4540) | PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t ...
function PUGI__FN (line 4550) | PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t ...
function PUGI__FN (line 4560) | PUGI__FN xml_parse_result load_buffer_impl(xml_document_struct* doc, xml...
function PUGI__FN (line 4593) | PUGI__FN xml_parse_status get_file_size(FILE* file, size_t& out_result)
function PUGI__FN (line 4633) | PUGI__FN size_t zero_terminate_buffer(void* buffer, size_t size, xml_enc...
function PUGI__FN (line 4657) | PUGI__FN xml_parse_result load_file_impl(xml_document_struct* doc, FILE*...
type xml_stream_chunk (line 4687) | struct xml_stream_chunk
method xml_stream_chunk (line 4689) | static xml_stream_chunk* create()
method destroy (line 4697) | static void destroy(xml_stream_chunk* chunk)
method xml_stream_chunk (line 4710) | xml_stream_chunk(): next(0), size(0)
function PUGI__FN (line 4720) | PUGI__FN xml_parse_status load_stream_data_noseek(std::basic_istream<T>&...
function PUGI__FN (line 4774) | PUGI__FN xml_parse_status load_stream_data_seek(std::basic_istream<T>& s...
function PUGI__FN (line 4810) | PUGI__FN xml_parse_result load_stream_impl(xml_document_struct* doc, std...
function PUGI__FN (line 4837) | PUGI__FN FILE* open_file_wide(const wchar_t* path, const wchar_t* mode)
function PUGI__FN (line 4842) | PUGI__FN char* convert_path_heap(const wchar_t* str)
function PUGI__FN (line 4863) | PUGI__FN FILE* open_file_wide(const wchar_t* path, const wchar_t* mode)
function PUGI__FN (line 4883) | PUGI__FN bool save_file_impl(const xml_document& doc, FILE* file, const ...
function PUGI__NS_END (line 4892) | PUGI__NS_END
function PUGI__FN (line 6646) | PUGI__FN xml_document::~xml_document()
function PUGI__FN (line 6651) | PUGI__FN void xml_document::reset()
function PUGI__FN (line 6657) | PUGI__FN void xml_document::reset(const xml_document& proto)
function PUGI__FN (line 6665) | PUGI__FN void xml_document::create()
function PUGI__FN (line 6704) | PUGI__FN void xml_document::destroy()
function PUGI__FN (line 6744) | PUGI__FN xml_parse_result xml_document::load(std::basic_istream<char, st...
function PUGI__FN (line 6751) | PUGI__FN xml_parse_result xml_document::load(std::basic_istream<wchar_t,...
function PUGI__FN (line 6759) | PUGI__FN xml_parse_result xml_document::load_string(const char_t* conten...
function PUGI__FN (line 6771) | PUGI__FN xml_parse_result xml_document::load(const char_t* contents, uns...
function PUGI__FN (line 6776) | PUGI__FN xml_parse_result xml_document::load_file(const char* path_, uns...
function PUGI__FN (line 6786) | PUGI__FN xml_parse_result xml_document::load_file(const wchar_t* path_, ...
function PUGI__FN (line 6796) | PUGI__FN xml_parse_result xml_document::load_buffer(const void* contents...
function PUGI__FN (line 6803) | PUGI__FN xml_parse_result xml_document::load_buffer_inplace(void* conten...
function PUGI__FN (line 6810) | PUGI__FN xml_parse_result xml_document::load_buffer_inplace_own(void* co...
function PUGI__FN (line 6817) | PUGI__FN void xml_document::save(xml_writer& writer, const char_t* inden...
function PUGI__FN (line 6846) | PUGI__FN void xml_document::save(std::basic_ostream<char, std::char_trai...
function PUGI__FN (line 6853) | PUGI__FN void xml_document::save(std::basic_ostream<wchar_t, std::char_t...
function PUGI__FN (line 6861) | PUGI__FN bool xml_document::save_file(const char* path_, const char_t* i...
function PUGI__FN (line 6869) | PUGI__FN bool xml_document::save_file(const wchar_t* path_, const char_t...
function PUGI__FN (line 6877) | PUGI__FN xml_node xml_document::document_element() const
function PUGI__FN (line 6889) | PUGI__FN std::string PUGIXML_FUNCTION as_utf8(const wchar_t* str)
function PUGI__FN (line 6896) | PUGI__FN std::string PUGIXML_FUNCTION as_utf8(const std::basic_string<wc...
function PUGI__FN (line 6901) | PUGI__FN std::basic_string<wchar_t> PUGIXML_FUNCTION as_wide(const char*...
function PUGI__FN (line 6908) | PUGI__FN std::basic_string<wchar_t> PUGIXML_FUNCTION as_wide(const std::...
function PUGI__FN (line 6914) | PUGI__FN void PUGIXML_FUNCTION set_memory_management_functions(allocatio...
function PUGI__FN (line 6920) | PUGI__FN allocation_function PUGIXML_FUNCTION get_memory_allocation_func...
function PUGI__FN (line 6925) | PUGI__FN deallocation_function PUGIXML_FUNCTION get_memory_deallocation_...
type std (line 6932) | namespace std
function PUGI__FN (line 6935) | PUGI__FN std::bidirectional_iterator_tag _Iter_cat(const pugi::xml_nod...
function PUGI__FN (line 6940) | PUGI__FN std::bidirectional_iterator_tag _Iter_cat(const pugi::xml_att...
function PUGI__FN (line 6945) | PUGI__FN std::bidirectional_iterator_tag _Iter_cat(const pugi::xml_nam...
function PUGI__FN (line 6956) | PUGI__FN std::bidirectional_iterator_tag __iterator_category(const pug...
function PUGI__FN (line 6961) | PUGI__FN std::bidirectional_iterator_tag __iterator_category(const pug...
function PUGI__FN (line 6966) | PUGI__FN std::bidirectional_iterator_tag __iterator_category(const pug...
type std (line 6953) | namespace std
function PUGI__FN (line 6935) | PUGI__FN std::bidirectional_iterator_tag _Iter_cat(const pugi::xml_nod...
function PUGI__FN (line 6940) | PUGI__FN std::bidirectional_iterator_tag _Iter_cat(const pugi::xml_att...
function PUGI__FN (line 6945) | PUGI__FN std::bidirectional_iterator_tag _Iter_cat(const pugi::xml_nam...
function PUGI__FN (line 6956) | PUGI__FN std::bidirectional_iterator_tag __iterator_category(const pug...
function PUGI__FN (line 6961) | PUGI__FN std::bidirectional_iterator_tag __iterator_category(const pug...
function PUGI__FN (line 6966) | PUGI__FN std::bidirectional_iterator_tag __iterator_category(const pug...
function PUGI__NS_BEGIN (line 6975) | PUGI__NS_BEGIN
type not_equal_to (line 6984) | struct not_equal_to
type less (line 6992) | struct less
type less_equal (line 7000) | struct less_equal
function swap (line 7008) | void swap(T& lhs, T& rhs)
function I (line 7015) | I min_element(I begin, I end, const Pred& pred)
function reverse (line 7026) | void reverse(I begin, I end)
function I (line 7031) | I unique(I begin, I end)
function copy_backwards (line 7054) | void copy_backwards(I begin, I end, I target)
function insertion_sort (line 7059) | void insertion_sort(I begin, I end, const Pred& pred, T*)
function partition (line 7091) | void partition(I begin, I middle, I end, const Pred& pred, I* out_eqbeg,...
function median3 (line 7144) | void median3(I first, I middle, I last, const Pred& pred)
function median (line 7151) | void median(I first, I middle, I last, const Pred& pred)
function sort (line 7170) | void sort(I begin, I end, const Pred& pred)
type xpath_memory_block (line 7213) | struct xpath_memory_block
class xpath_allocator (line 7225) | class xpath_allocator
method xpath_allocator (line 7235) | xpath_allocator(xpath_memory_block* root, size_t root_size = 0): _root...
method revert (line 7337) | void revert(const xpath_allocator& state)
method release (line 7356) | void release()
type xpath_allocator_capture (line 7372) | struct xpath_allocator_capture
method xpath_allocator_capture (line 7374) | xpath_allocator_capture(xpath_allocator* alloc): _target(alloc), _stat...
type xpath_stack (line 7387) | struct xpath_stack
type xpath_stack_data (line 7393) | struct xpath_stack_data
method xpath_stack_data (line 7404) | xpath_stack_data(): result(blocks + 0), temp(blocks + 1)
function PUGI__NS_END (line 7423) | PUGI__NS_END
function xpath_string (line 7454) | static xpath_string from_heap_preallocated(const char_t* begin, const ch...
function xpath_string (line 7461) | static xpath_string from_heap(const char_t* begin, const char_t* end, xp...
function xpath_string (line 7470) | xpath_string(): _buffer(PUGIXML_TEXT("")), _uses_heap(false), _length_he...
function append (line 7474) | void append(const xpath_string& o, xpath_allocator* alloc)
function char_t (line 7509) | const char_t* c_str() const
function length (line 7514) | size_t length() const
function char_t (line 7519) | char_t* data(xpath_allocator* alloc)
function empty (line 7534) | bool empty() const
function uses_heap (line 7549) | bool uses_heap() const
function PUGI__NS_END (line 7554) | PUGI__NS_END
function PUGI__FN (line 7568) | PUGI__FN const char_t* find_char(const char_t* s, char_t c)
function PUGI__FN (line 7577) | PUGI__FN const char_t* find_substring(const char_t* s, const char_t* p)
function PUGI__FN (line 7588) | PUGI__FN char_t tolower_ascii(char_t ch)
function PUGI__FN (line 7593) | PUGI__FN xpath_string string_value(const xpath_node& na, xpath_allocator...
function PUGI__FN (line 7643) | PUGI__FN bool node_is_before_sibling(xml_node_struct* ln, xml_node_struc...
function PUGI__FN (line 7667) | PUGI__FN bool node_is_before(xml_node_struct* ln, xml_node_struct* rn)
function PUGI__FN (line 7710) | PUGI__FN bool node_is_ancestor(xml_node_struct* parent, xml_node_struct*...
function PUGI__FN (line 7717) | PUGI__FN const void* document_buffer_order(const xpath_node& xnode)
type document_order_comparator (line 7748) | struct document_order_comparator
type duplicate_comparator (line 7802) | struct duplicate_comparator
function PUGI__FN (line 7811) | PUGI__FN double gen_nan()
function PUGI__FN (line 7824) | PUGI__FN bool is_nan(double value)
function PUGI__FN (line 7837) | PUGI__FN const char_t* convert_number_to_string_special(double value)
function PUGI__FN (line 7869) | PUGI__FN bool convert_number_to_boolean(double value)
function PUGI__FN (line 7874) | PUGI__FN void truncate_zeros(char* begin, char* end)
function PUGI__FN (line 7883) | PUGI__FN void convert_number_to_mantissa_exponent(double value, char* bu...
function PUGI__FN (line 7897) | PUGI__FN void convert_number_to_mantissa_exponent(double value, char* bu...
function PUGI__FN (line 7928) | PUGI__FN xpath_string convert_number_to_string(double value, xpath_alloc...
function PUGI__FN (line 7995) | PUGI__FN bool check_string_to_number_format(const char_t* string)
function PUGI__FN (line 8025) | PUGI__FN double convert_string_to_number(const char_t* string)
function PUGI__FN (line 8038) | PUGI__FN bool convert_string_to_number_scratch(char_t (&buffer)[32], con...
function PUGI__FN (line 8062) | PUGI__FN double round_nearest(double value)
function PUGI__FN (line 8067) | PUGI__FN double round_nearest_nzero(double value)
function PUGI__FN (line 8074) | PUGI__FN const char_t* qualified_name(const xpath_node& node)
function PUGI__FN (line 8079) | PUGI__FN const char_t* local_name(const xpath_node& node)
type namespace_uri_predicate (line 8087) | struct namespace_uri_predicate
method namespace_uri_predicate (line 8092) | namespace_uri_predicate(const char_t* name)
function PUGI__FN (line 8110) | PUGI__FN const char_t* namespace_uri(xml_node node)
function PUGI__FN (line 8128) | PUGI__FN const char_t* namespace_uri(xml_attribute attr, xml_node parent)
function PUGI__FN (line 8149) | PUGI__FN const char_t* namespace_uri(const xpath_node& node)
function PUGI__FN (line 8154) | PUGI__FN char_t* normalize_space(char_t* buffer)
function PUGI__FN (line 8182) | PUGI__FN char_t* translate(char_t* buffer, const char_t* from, const cha...
function PUGI__FN (line 8238) | PUGI__FN char_t* translate_table(char_t* buffer, const unsigned char* ta...
function is_xpath_attribute (line 8268) | inline bool is_xpath_attribute(const char_t* name)
type xpath_variable_boolean (line 8273) | struct xpath_variable_boolean: xpath_variable
method xpath_variable_boolean (line 8275) | xpath_variable_boolean(): xpath_variable(xpath_type_boolean), value(fa...
type xpath_variable_number (line 8283) | struct xpath_variable_number: xpath_variable
method xpath_variable_number (line 8285) | xpath_variable_number(): xpath_variable(xpath_type_number), value(0)
type xpath_variable_string (line 8293) | struct xpath_variable_string: xpath_variable
method xpath_variable_string (line 8295) | xpath_variable_string(): xpath_variable(xpath_type_string), value(0)
type xpath_variable_node_set (line 8308) | struct xpath_variable_node_set: xpath_variable
method xpath_variable_node_set (line 8310) | xpath_variable_node_set(): xpath_variable(xpath_type_node_set)
function hash_string (line 8320) | PUGI__FN unsigned int hash_string(const char_t* str)
function PUGI__FN (line 8339) | PUGI__FN T* new_xpath_variable(const char_t* name)
function PUGI__FN (line 8355) | PUGI__FN xpath_variable* new_xpath_variable(xpath_value_type type, const...
function PUGI__FN (line 8376) | PUGI__FN void delete_xpath_variable(T* var)
function PUGI__FN (line 8382) | PUGI__FN void delete_xpath_variable(xpath_value_type type, xpath_variabl...
function PUGI__FN (line 8407) | PUGI__FN bool copy_xpath_variable(xpath_variable* lhs, const xpath_varia...
function PUGI__FN (line 8429) | PUGI__FN bool get_variable_scratch(char_t (&buffer)[32], xpath_variable_...
function PUGI__NS_END (line 8452) | PUGI__NS_END
function PUGI__FN (line 8472) | PUGI__FN xpath_node_set::type_t xpath_sort(xpath_node* begin, xpath_node...
function PUGI__FN (line 8495) | PUGI__FN xpath_node xpath_first(const xpath_node* begin, const xpath_nod...
class xpath_node_set_raw (line 8516) | class xpath_node_set_raw
method xpath_node_set_raw (line 8525) | xpath_node_set_raw(): _type(xpath_node_set::type_unsorted), _begin(0),...
method xpath_node (line 8529) | xpath_node* begin() const
method xpath_node (line 8534) | xpath_node* end() const
method empty (line 8539) | bool empty() const
method size (line 8544) | size_t size() const
method xpath_node (line 8549) | xpath_node first() const
method push_back (line 8556) | void push_back(const xpath_node& node, xpath_allocator* alloc)
method append (line 8564) | void append(const xpath_node* begin_, const xpath_node* end_, xpath_al...
method sort_do (line 8588) | void sort_do()
method truncate (line 8593) | void truncate(xpath_node* pos)
method remove_duplicates (line 8600) | void remove_duplicates()
method type (line 8608) | xpath_node_set::type_t type() const
method set_type (line 8613) | void set_type(xpath_node_set::type_t value)
function PUGI__FN_NO_INLINE (line 8619) | PUGI__FN_NO_INLINE void xpath_node_set_raw::push_back_grow(const xpath_n...
function PUGI__NS_END (line 8638) | PUGI__NS_END
type lexeme_t (line 8651) | enum lexeme_t
type xpath_lexer_string (line 8682) | struct xpath_lexer_string
method xpath_lexer_string (line 8687) | xpath_lexer_string(): begin(0), end(0)
class xpath_lexer (line 8699) | class xpath_lexer
method xpath_lexer (line 8708) | explicit xpath_lexer(const char_t* query): _cur(query)
method char_t (line 8713) | const char_t* state() const
method next (line 8718) | void next()
method lexeme_t (line 8987) | lexeme_t current() const
method char_t (line 8992) | const char_t* current_pos() const
method xpath_lexer_string (line 8997) | const xpath_lexer_string& contents() const
type ast_type_t (line 9005) | enum ast_type_t
type axis_t (line 9070) | enum axis_t
type nodetest_t (line 9087) | enum nodetest_t
type predicate_t (line 9100) | enum predicate_t
type nodeset_eval_t (line 9108) | enum nodeset_eval_t
type axis_to_type (line 9115) | struct axis_to_type
class xpath_ast_node (line 9122) | class xpath_ast_node
method compare_eq (line 9157) | static bool compare_eq(xpath_ast_node* lhs, xpath_ast_node* rhs, const...
method eval_once (line 9245) | static bool eval_once(xpath_node_set::type_t type, nodeset_eval_t eval)
method compare_rel (line 9250) | static bool compare_rel(xpath_ast_node* lhs, xpath_ast_node* rhs, cons...
method apply_predicate_boolean (line 9321) | static void apply_predicate_boolean(xpath_node_set_raw& ns, size_t fir...
method apply_predicate_number (line 9347) | static void apply_predicate_number(xpath_node_set_raw& ns, size_t firs...
method apply_predicate_number_const (line 9373) | static void apply_predicate_number_const(xpath_node_set_raw& ns, size_...
method apply_predicate (line 9401) | void apply_predicate(xpath_node_set_raw& ns, size_t first, const xpath...
method apply_predicates (line 9415) | void apply_predicates(xpath_node_set_raw& ns, size_t first, const xpat...
method step_push (line 9425) | bool step_push(xpath_node_set_raw& ns, xml_attribute_struct* a, xml_no...
method step_push (line 9465) | bool step_push(xpath_node_set_raw& ns, xml_node_struct* n, xpath_alloc...
method step_fill (line 9540) | void step_fill(xpath_node_set_raw& ns, xml_node_struct* n, xpath_alloc...
method step_fill (line 9733) | void step_fill(xpath_node_set_raw& ns, xml_attribute_struct* a, xml_no...
method step_fill (line 9814) | void step_fill(xpath_node_set_raw& ns, const xpath_node& xn, xpath_all...
method xpath_node_set_raw (line 9825) | xpath_node_set_raw step_do(const xpath_context& c, const xpath_stack& ...
method xpath_ast_node (line 9872) | xpath_ast_node(ast_type_t type, xpath_value_type rettype_, const char_...
method xpath_ast_node (line 9879) | xpath_ast_node(ast_type_t type, xpath_value_type rettype_, double value):
method xpath_ast_node (line 9886) | xpath_ast_node(ast_type_t type, xpath_value_type rettype_, xpath_varia...
method xpath_ast_node (line 9893) | xpath_ast_node(ast_type_t type, xpath_value_type rettype_, xpath_ast_n...
method xpath_ast_node (line 9898) | xpath_ast_node(ast_type_t type, xpath_ast_node* left, axis_t axis, nod...
method xpath_ast_node (line 9905) | xpath_ast_node(ast_type_t type, xpath_ast_node* left, xpath_ast_node* ...
method set_next (line 9911) | void set_next(xpath_ast_node* value)
method set_right (line 9916) | void set_right(xpath_ast_node* value)
method eval_boolean (line 9921) | bool eval_boolean(const xpath_context& c, const xpath_stack& stack)
method eval_number (line 10059) | double eval_number(const xpath_context& c, const xpath_stack& stack)
method xpath_string (line 10196) | xpath_string eval_string_concat(const xpath_context& c, const xpath_st...
method xpath_string (line 10245) | xpath_string eval_string(const xpath_context& c, const xpath_stack& st...
method xpath_node_set_raw (line 10478) | xpath_node_set_raw eval_node_set(const xpath_context& c, const xpath_s...
method optimize (line 10606) | void optimize(xpath_allocator* alloc)
method optimize_self (line 10615) | void optimize_self(xpath_allocator* alloc)
method is_posinv_expr (line 10675) | bool is_posinv_expr() const
method is_posinv_step (line 10706) | bool is_posinv_step() const
method xpath_value_type (line 10721) | xpath_value_type rettype() const
type xpath_parser (line 10727) | struct xpath_parser
method throw_error (line 10743) | void throw_error(const char* message)
method throw_error_oom (line 10755) | void throw_error_oom()
method char_t (line 10773) | const char_t* alloc_string(const xpath_lexer_string& value)
method xpath_ast_node (line 10791) | xpath_ast_node* parse_function_helper(ast_type_t type0, ast_type_t typ...
method xpath_ast_node (line 10800) | xpath_ast_node* parse_function(const xpath_lexer_string& name, size_t ...
method axis_t (line 10913) | axis_t parse_axis_name(const xpath_lexer_string& name, bool& specified)
method nodetest_t (line 10981) | nodetest_t parse_node_test_type(const xpath_lexer_string& name)
method xpath_ast_node (line 11017) | xpath_ast_node* parse_primary_expression()
method xpath_ast_node (line 11124) | xpath_ast_node* parse_filter_expression()
method xpath_ast_node (line 11152) | xpath_ast_node* parse_step(xpath_ast_node* set)
method xpath_ast_node (line 11296) | xpath_ast_node* parse_relative_location_path(xpath_ast_node* set)
method xpath_ast_node (line 11316) | xpath_ast_node* parse_location_path()
method xpath_ast_node (line 11352) | xpath_ast_node* parse_path_or_unary_expression()
type binary_op_t (line 11411) | struct binary_op_t
method binary_op_t (line 11417) | binary_op_t(): asttype(ast_unknown), rettype(xpath_type_none), prece...
method binary_op_t (line 11421) | binary_op_t(ast_type_t asttype_, xpath_value_type rettype_, int prec...
method binary_op_t (line 11425) | static binary_op_t parse(xpath_lexer& lexer)
method xpath_ast_node (line 11477) | xpath_ast_node* parse_expression_rec(xpath_ast_node* lhs, int limit)
method xpath_ast_node (line 11525) | xpath_ast_node* parse_expression()
method xpath_parser (line 11530) | xpath_parser(const char_t* query, xpath_variable_set* variables, xpath...
method xpath_ast_node (line 11534) | xpath_ast_node* parse()
method xpath_ast_node (line 11547) | static xpath_ast_node* parse(const char_t* query, xpath_variable_set* ...
type xpath_query_impl (line 11561) | struct xpath_query_impl
method xpath_query_impl (line 11563) | static xpath_query_impl* create()
method destroy (line 11571) | static void destroy(xpath_query_impl* impl)
method xpath_query_impl (line 11580) | xpath_query_impl(): root(0), alloc(&block)
function PUGI__FN (line 11591) | PUGI__FN xpath_string evaluate_string_impl(xpath_query_impl* impl, const...
function PUGI__FN (line 11604) | PUGI__FN impl::xpath_ast_node* evaluate_node_set_prepare(xpath_query_imp...
function PUGI__NS_END (line 11622) | PUGI__NS_END
function PUGI__FN (line 12181) | PUGI__FN xpath_query::~xpath_query()
function PUGI__FN (line 12188) | PUGI__FN xpath_query::xpath_query(xpath_query&& rhs)
function PUGI__FN (line 12194) | PUGI__FN xpath_query& xpath_query::operator=(xpath_query&& rhs)
function PUGI__FN (line 12208) | PUGI__FN xpath_value_type xpath_query::return_type() const
function PUGI__FN (line 12215) | PUGI__FN bool xpath_query::evaluate_boolean(const xpath_node& n) const
function PUGI__FN (line 12229) | PUGI__FN double xpath_query::evaluate_number(const xpath_node& n) const
function PUGI__FN (line 12244) | PUGI__FN string_t xpath_query::evaluate_string(const xpath_node& n) const
function PUGI__FN (line 12254) | PUGI__FN size_t xpath_query::evaluate_string(char_t* buffer, size_t capa...
function PUGI__FN (line 12274) | PUGI__FN xpath_node_set xpath_query::evaluate_node_set(const xpath_node&...
function PUGI__FN (line 12291) | PUGI__FN xpath_node xpath_query::evaluate_node(const xpath_node& n) const
function PUGI__FN (line 12308) | PUGI__FN const xpath_parse_result& xpath_query::result() const
function PUGI__FN (line 12313) | PUGI__FN static void unspecified_bool_xpath_query(xpath_query***)
function PUGI__FN (line 12317) | PUGI__FN xpath_query::operator xpath_query::unspecified_bool_type() const
function PUGI__FN (line 12322) | PUGI__FN bool xpath_query::operator!() const
function PUGI__FN (line 12327) | PUGI__FN xpath_node xml_node::select_node(const char_t* query, xpath_var...
function PUGI__FN (line 12333) | PUGI__FN xpath_node xml_node::select_node(const xpath_query& query) const
function PUGI__FN (line 12338) | PUGI__FN xpath_node_set xml_node::select_nodes(const char_t* query, xpat...
function PUGI__FN (line 12344) | PUGI__FN xpath_node_set xml_node::select_nodes(const xpath_query& query)...
function PUGI__FN (line 12349) | PUGI__FN xpath_node xml_node::select_single_node(const char_t* query, xp...
function PUGI__FN (line 12355) | PUGI__FN xpath_node xml_node::select_single_node(const xpath_query& quer...
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/detail/pugixml.hpp
type pugi (line 84) | namespace pugi
type xml_node_type (line 99) | enum xml_node_type
type xml_encoding (line 172) | enum xml_encoding
type xml_attribute_struct (line 214) | struct xml_attribute_struct
type xml_node_struct (line 215) | struct xml_node_struct
class xml_node_iterator (line 217) | class xml_node_iterator
class xml_attribute_iterator (line 218) | class xml_attribute_iterator
class xml_named_node_iterator (line 219) | class xml_named_node_iterator
class xml_tree_walker (line 221) | class xml_tree_walker
type xml_parse_result (line 223) | struct xml_parse_result
class xml_node (line 225) | class xml_node
class xml_text (line 227) | class xml_text
class xpath_node (line 230) | class xpath_node
class xpath_node_set (line 231) | class xpath_node_set
class xpath_query (line 232) | class xpath_query
class xpath_variable_set (line 233) | class xpath_variable_set
class xml_object_range (line 237) | class xml_object_range
method xml_object_range (line 243) | xml_object_range(It b, It e): _begin(b), _end(e)
method It (line 247) | It begin() const { return _begin; }
method It (line 248) | It end() const { return _end; }
function xml_writer (line 255) | class PUGIXML_CLASS xml_writer
function xml_writer_file (line 265) | class PUGIXML_CLASS xml_writer_file: public xml_writer
function xml_writer_stream (line 279) | class PUGIXML_CLASS xml_writer_stream: public xml_writer
function xml_attribute (line 295) | class PUGIXML_CLASS xml_attribute
function xml_node (line 397) | class PUGIXML_CLASS xml_node
function xml_text (line 652) | class PUGIXML_CLASS xml_text
function xml_node_iterator (line 737) | class PUGIXML_CLASS xml_node_iterator
function xml_attribute_iterator (line 779) | class PUGIXML_CLASS xml_attribute_iterator
function xml_named_node_iterator (line 821) | class PUGIXML_CLASS xml_named_node_iterator
function xml_tree_walker (line 864) | class PUGIXML_CLASS xml_tree_walker
type xml_parse_status (line 890) | enum xml_parse_status
function xml_parse_result (line 917) | struct PUGIXML_CLASS xml_parse_result
function xml_document (line 939) | class PUGIXML_CLASS xml_document: public xml_node
type xpath_value_type (line 1012) | enum xpath_value_type
function xpath_parse_result (line 1022) | struct PUGIXML_CLASS xpath_parse_result
function xpath_variable (line 1041) | class PUGIXML_CLASS xpath_variable
function xpath_variable_set (line 1076) | class PUGIXML_CLASS xpath_variable_set
function xpath_query (line 1119) | class PUGIXML_CLASS xpath_query
class PUGIXML_CLASS (line 1194) | class PUGIXML_CLASS
function xpath_node (line 1212) | class PUGIXML_CLASS xpath_node
function xpath_node_set (line 1253) | class PUGIXML_CLASS xpath_node_set
type pugi (line 96) | namespace pugi
type xml_node_type (line 99) | enum xml_node_type
type xml_encoding (line 172) | enum xml_encoding
type xml_attribute_struct (line 214) | struct xml_attribute_struct
type xml_node_struct (line 215) | struct xml_node_struct
class xml_node_iterator (line 217) | class xml_node_iterator
class xml_attribute_iterator (line 218) | class xml_attribute_iterator
class xml_named_node_iterator (line 219) | class xml_named_node_iterator
class xml_tree_walker (line 221) | class xml_tree_walker
type xml_parse_result (line 223) | struct xml_parse_result
class xml_node (line 225) | class xml_node
class xml_text (line 227) | class xml_text
class xpath_node (line 230) | class xpath_node
class xpath_node_set (line 231) | class xpath_node_set
class xpath_query (line 232) | class xpath_query
class xpath_variable_set (line 233) | class xpath_variable_set
class xml_object_range (line 237) | class xml_object_range
method xml_object_range (line 243) | xml_object_range(It b, It e): _begin(b), _end(e)
method It (line 247) | It begin() const { return _begin; }
method It (line 248) | It end() const { return _end; }
function xml_writer (line 255) | class PUGIXML_CLASS xml_writer
function xml_writer_file (line 265) | class PUGIXML_CLASS xml_writer_file: public xml_writer
function xml_writer_stream (line 279) | class PUGIXML_CLASS xml_writer_stream: public xml_writer
function xml_attribute (line 295) | class PUGIXML_CLASS xml_attribute
function xml_node (line 397) | class PUGIXML_CLASS xml_node
function xml_text (line 652) | class PUGIXML_CLASS xml_text
function xml_node_iterator (line 737) | class PUGIXML_CLASS xml_node_iterator
function xml_attribute_iterator (line 779) | class PUGIXML_CLASS xml_attribute_iterator
function xml_named_node_iterator (line 821) | class PUGIXML_CLASS xml_named_node_iterator
function xml_tree_walker (line 864) | class PUGIXML_CLASS xml_tree_walker
type xml_parse_status (line 890) | enum xml_parse_status
function xml_parse_result (line 917) | struct PUGIXML_CLASS xml_parse_result
function xml_document (line 939) | class PUGIXML_CLASS xml_document: public xml_node
type xpath_value_type (line 1012) | enum xpath_value_type
function xpath_parse_result (line 1022) | struct PUGIXML_CLASS xpath_parse_result
function xpath_variable (line 1041) | class PUGIXML_CLASS xpath_variable
function xpath_variable_set (line 1076) | class PUGIXML_CLASS xpath_variable_set
function xpath_query (line 1119) | class PUGIXML_CLASS xpath_query
class PUGIXML_CLASS (line 1194) | class PUGIXML_CLASS
function xpath_node (line 1212) | class PUGIXML_CLASS xpath_node
function xpath_node_set (line 1253) | class PUGIXML_CLASS xpath_node_set
type std (line 1349) | namespace std
type std (line 1359) | namespace std
FILE: app/src/main/cpp/isEngine/ext_lib/TMXLite/miniz.c
type mz_ulong (line 229) | typedef unsigned long mz_ulong;
type mz_internal_state (line 275) | struct mz_internal_state
type mz_stream (line 278) | typedef struct mz_stream_s
type mz_stream (line 300) | typedef mz_stream *mz_streamp;
type Byte (line 393) | typedef unsigned char Byte;
type uInt (line 394) | typedef unsigned int uInt;
type mz_ulong (line 395) | typedef mz_ulong uLong;
type Byte (line 396) | typedef Byte Bytef;
type uInt (line 397) | typedef uInt uIntf;
type charf (line 398) | typedef char charf;
type intf (line 399) | typedef int intf;
type uLong (line 401) | typedef uLong uLongf;
type mz_uint8 (line 469) | typedef unsigned char mz_uint8;
type mz_int16 (line 470) | typedef signed short mz_int16;
type mz_uint16 (line 471) | typedef unsigned short mz_uint16;
type mz_uint32 (line 472) | typedef unsigned int mz_uint32;
type mz_uint (line 473) | typedef unsigned int mz_uint;
type mz_int64 (line 474) | typedef long long mz_int64;
type mz_uint64 (line 475) | typedef unsigned long long mz_uint64;
type mz_bool (line 476) | typedef int mz_bool;
type mz_zip_archive_file_stat (line 499) | typedef struct
type mz_zip_internal_state_tag (line 524) | struct mz_zip_internal_state_tag
type mz_zip_internal_state (line 525) | typedef struct mz_zip_internal_state_tag mz_zip_internal_state;
type mz_zip_mode (line 527) | typedef enum
type mz_zip_archive (line 535) | typedef struct mz_zip_archive_tag
type mz_zip_flags (line 557) | typedef enum
type tinfl_decompressor_tag (line 716) | struct tinfl_decompressor_tag
type tinfl_decompressor (line 716) | typedef struct tinfl_decompressor_tag tinfl_decompressor;
type tinfl_status (line 722) | typedef enum
type tinfl_huff_table (line 747) | typedef struct
type mz_uint64 (line 758) | typedef mz_uint64 tinfl_bit_buf_t;
type mz_uint32 (line 761) | typedef mz_uint32 tinfl_bit_buf_t;
type tinfl_decompressor_tag (line 765) | struct tinfl_decompressor_tag
type mz_bool (line 836) | typedef mz_bool (*tdefl_put_buf_func_ptr)(const void* pBuf, int len, voi...
type tdefl_status (line 851) | typedef enum
type tdefl_flush (line 860) | typedef enum
type tdefl_compressor (line 869) | typedef struct
function mz_ulong (line 977) | mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf...
function mz_ulong (line 993) | mz_ulong mz_crc32(mz_ulong crc, const mz_uint8 *ptr, size_t buf_len)
function mz_free (line 1003) | void mz_free(void *p)
function def_free_func (line 1011) | static void def_free_func(void *opaque, void *address) { (void)opaque, (...
function mz_deflateInit (line 1019) | int mz_deflateInit(mz_streamp pStream, int level)
function mz_deflateInit2 (line 1024) | int mz_deflateInit2(mz_streamp pStream, int level, int method, int windo...
function mz_deflateReset (line 1056) | int mz_deflateReset(mz_streamp pStream)
function mz_deflate (line 1064) | int mz_deflate(mz_streamp pStream, int flush)
function mz_deflateEnd (line 1113) | int mz_deflateEnd(mz_streamp pStream)
function mz_ulong (line 1124) | mz_ulong mz_deflateBound(mz_streamp pStream, mz_ulong source_len)
function mz_compress2 (line 1131) | int mz_compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsign...
function mz_compress (line 1159) | int mz_compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigne...
function mz_ulong (line 1164) | mz_ulong mz_compressBound(mz_ulong source_len)
type inflate_state (line 1169) | typedef struct
function mz_inflateInit2 (line 1177) | int mz_inflateInit2(mz_streamp pStream, int window_bits)
function mz_inflateInit (line 1208) | int mz_inflateInit(mz_streamp pStream)
function mz_inflate (line 1213) | int mz_inflate(mz_streamp pStream, int flush)
function mz_inflateEnd (line 1304) | int mz_inflateEnd(mz_streamp pStream)
function mz_uncompress (line 1316) | int mz_uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsig...
function tinfl_status (line 1428) | tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn...
function tinfl_decompress_mem_to_mem (line 1729) | size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, c...
function tinfl_decompress_mem_to_callback (line 1736) | int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_bu...
type tdefl_sym_freq (line 1818) | typedef struct { mz_uint16 m_key, m_sym_index; } tdefl_sym_freq;
function tdefl_sym_freq (line 1819) | static tdefl_sym_freq* tdefl_radix_sort_syms(mz_uint num_syms, tdefl_sym...
function tdefl_calculate_minimum_redundancy (line 1836) | static void tdefl_calculate_minimum_redundancy(tdefl_sym_freq *A, int n)
function tdefl_huffman_enforce_max_code_size (line 1858) | static void tdefl_huffman_enforce_max_code_size(int *pNum_codes, int cod...
function tdefl_optimize_huffman_table (line 1871) | static void tdefl_optimize_huffman_table(tdefl_compressor *d, int table_...
function tdefl_start_dynamic_block (line 1936) | static void tdefl_start_dynamic_block(tdefl_compressor *d)
function tdefl_start_static_block (line 1998) | static void tdefl_start_static_block(tdefl_compressor *d)
function mz_bool (line 2019) | static mz_bool tdefl_compress_lz_codes(tdefl_compressor *d)
function mz_bool (line 2108) | static mz_bool tdefl_compress_lz_codes(tdefl_compressor *d)
function mz_bool (line 2153) | static mz_bool tdefl_compress_block(tdefl_compressor *d, mz_bool static_...
function tdefl_flush_block (line 2162) | static int tdefl_flush_block(tdefl_compressor *d, int flush)
function MZ_FORCEINLINE (line 2265) | static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint...
function MZ_FORCEINLINE (line 2299) | static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint...
function mz_bool (line 2329) | static mz_bool tdefl_compress_fast(tdefl_compressor *d)
function MZ_FORCEINLINE (line 2467) | static MZ_FORCEINLINE void tdefl_record_literal(tdefl_compressor *d, mz_...
function MZ_FORCEINLINE (line 2475) | static MZ_FORCEINLINE void tdefl_record_match(tdefl_compressor *d, mz_ui...
function mz_bool (line 2497) | static mz_bool tdefl_compress_normal(tdefl_compressor *d)
function tdefl_status (line 2615) | static tdefl_status tdefl_flush_output_buffer(tdefl_compressor *d)
function tdefl_status (line 2636) | tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf, si...
function tdefl_status (line 2692) | tdefl_status tdefl_compress_buffer(tdefl_compressor *d, const void *pIn_...
function tdefl_status (line 2697) | tdefl_status tdefl_init(tdefl_compressor *d, tdefl_put_buf_func_ptr pPut...
function tdefl_status (line 2716) | tdefl_status tdefl_get_prev_return_status(tdefl_compressor *d)
function mz_uint32 (line 2721) | mz_uint32 tdefl_get_adler32(tdefl_compressor *d)
function mz_bool (line 2726) | mz_bool tdefl_compress_mem_to_output(const void *pBuf, size_t buf_len, t...
type tdefl_output_buffer (line 2735) | typedef struct
function mz_bool (line 2742) | static mz_bool tdefl_output_buffer_putter(const void *pBuf, int len, voi...
function tdefl_compress_mem_to_mem (line 2766) | size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, con...
function mz_uint (line 2779) | mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bi...
function FILE (line 2852) | static FILE *mz_fopen(const char *pFilename, const char *pMode)
function FILE (line 2858) | static FILE *mz_freopen(const char *pPath, const char *pMode, FILE *pStr...
type mz_zip_array (line 2969) | typedef struct
type mz_zip_internal_state_tag (line 2976) | struct mz_zip_internal_state_tag
function MZ_FORCEINLINE (line 2990) | static MZ_FORCEINLINE void mz_zip_array_clear(mz_zip_archive *pZip, mz_z...
function mz_bool (line 2996) | static mz_bool mz_zip_array_ensure_capacity(mz_zip_archive *pZip, mz_zip...
function MZ_FORCEINLINE (line 3005) | static MZ_FORCEINLINE mz_bool mz_zip_array_reserve(mz_zip_archive *pZip,...
function MZ_FORCEINLINE (line 3011) | static MZ_FORCEINLINE mz_bool mz_zip_array_resize(mz_zip_archive *pZip, ...
function MZ_FORCEINLINE (line 3018) | static MZ_FORCEINLINE mz_bool mz_zip_array_ensure_room(mz_zip_archive *p...
function MZ_FORCEINLINE (line 3023) | static MZ_FORCEINLINE mz_bool mz_zip_array_push_back(mz_zip_archive *pZi...
function time_t (line 3031) | static time_t mz_zip_dos_to_time_t(int dos_time, int dos_date)
function mz_zip_time_to_dos_time (line 3040) | static void mz_zip_time_to_dos_time(time_t time, mz_uint16 *pDOS_time, m...
function mz_bool (line 3060) | static mz_bool mz_zip_get_file_modified_time(const char *pFilename, mz_u...
function mz_bool (line 3075) | static mz_bool mz_zip_set_file_times(const char *pFilename, time_t acces...
function mz_bool (line 3083) | static mz_bool mz_zip_reader_init_internal(mz_zip_archive *pZip, mz_uint...
function MZ_FORCEINLINE (line 3107) | static MZ_FORCEINLINE mz_bool mz_zip_reader_filename_less(const mz_zip_a...
function mz_zip_reader_sort_central_dir_offsets_by_filename (line 3127) | static void mz_zip_reader_sort_central_dir_offsets_by_filename(mz_zip_ar...
function mz_bool (line 3168) | static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip, mz_u...
function mz_bool (line 3268) | mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size, mz_uint...
function mz_zip_mem_read_func (line 3283) | static size_t mz_zip_mem_read_func(void *pOpaque, mz_uint64 file_ofs, vo...
function mz_bool (line 3291) | mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem, s...
function mz_zip_file_read_func (line 3313) | static size_t mz_zip_file_read_func(void *pOpaque, mz_uint64 file_ofs, v...
function mz_bool (line 3322) | mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilen...
function mz_uint (line 3352) | mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip)
function MZ_FORCEINLINE (line 3357) | static MZ_FORCEINLINE const mz_uint8 *mz_zip_reader_get_cdh(mz_zip_archi...
function mz_bool (line 3364) | mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip, mz_uint fi...
function mz_bool (line 3374) | mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip, mz_uint ...
function mz_bool (line 3399) | mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index...
function mz_uint (line 3434) | mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_in...
function MZ_FORCEINLINE (line 3449) | static MZ_FORCEINLINE mz_bool mz_zip_reader_string_equal(const char *pA,...
function MZ_FORCEINLINE (line 3460) | static MZ_FORCEINLINE int mz_zip_reader_filename_compare(const mz_zip_ar...
function mz_zip_reader_locate_file_binary_search (line 3476) | static int mz_zip_reader_locate_file_binary_search(mz_zip_archive *pZip,...
function mz_zip_reader_locate_file (line 3498) | int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, c...
function mz_bool (line 3538) | mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip, mz_u...
function mz_bool (line 3665) | mz_bool mz_zip_reader_extract_file_to_mem_no_alloc(mz_zip_archive *pZip,...
function mz_bool (line 3673) | mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_...
function mz_bool (line 3678) | mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip, const ch...
function mz_bool (line 3728) | mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip, mz_uint ...
function mz_bool (line 3891) | mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip, con...
function mz_zip_file_write_callback (line 3900) | static size_t mz_zip_file_write_callback(void *pOpaque, mz_uint64 ofs, c...
function mz_bool (line 3905) | mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file...
function mz_bool (line 3926) | mz_bool mz_zip_reader_end(mz_zip_archive *pZip)
function mz_bool (line 3954) | mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip, const c...
function mz_write_le16 (line 3967) | static void mz_write_le16(mz_uint8 *p, mz_uint16 v) { p[0] = (mz_uint8)v...
function mz_write_le32 (line 3968) | static void mz_write_le32(mz_uint8 *p, mz_uint32 v) { p[0] = (mz_uint8)v...
function mz_bool (line 3972) | mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size)
function mz_zip_heap_write_func (line 4002) | static size_t mz_zip_heap_write_func(void *pOpaque, mz_uint64 file_ofs, ...
function mz_bool (line 4026) | mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip, size_t size_to_res...
function mz_zip_file_write_func (line 4045) | static size_t mz_zip_file_write_func(void *pOpaque, mz_uint64 file_ofs, ...
function mz_bool (line 4054) | mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilen...
function mz_bool (line 4085) | mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip, const char ...
function mz_bool (line 4135) | mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive...
type mz_zip_writer_add_state (line 4140) | typedef struct
function mz_bool (line 4147) | static mz_bool mz_zip_writer_add_put_buf_callback(const void* pBuf, int ...
function mz_bool (line 4157) | static mz_bool mz_zip_writer_create_local_dir_header(mz_zip_archive *pZi...
function mz_bool (line 4175) | static mz_bool mz_zip_writer_create_central_dir_header(mz_zip_archive *p...
function mz_bool (line 4196) | static mz_bool mz_zip_writer_add_to_central_dir(mz_zip_archive *pZip, co...
function mz_bool (line 4224) | static mz_bool mz_zip_writer_validate_archive_name(const char *pArchive_...
function mz_uint (line 4238) | static mz_uint mz_zip_writer_compute_padding_needed_for_file_alignment(m...
function mz_bool (line 4247) | static mz_bool mz_zip_writer_write_zeros(mz_zip_archive *pZip, mz_uint64...
function mz_bool (line 4261) | mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, const char *pArch...
function mz_bool (line 4412) | mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchiv...
function mz_bool (line 4590) | mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip, mz_zip_a...
function mz_bool (line 4713) | mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip)
function mz_bool (line 4762) | mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void *...
function mz_bool (line 4778) | mz_bool mz_zip_writer_end(mz_zip_archive *pZip)
function mz_bool (line 4811) | mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filenam...
FILE: app/src/main/cpp/isEngine/ext_lib/TinyFileDialogs/TinyDialogBox.h
type wchar_t (line 34) | typedef wchar_t const* tinyString;
type FileDialogType (line 48) | enum FileDialogType
type DialogType (line 53) | enum DialogType
type IconType (line 59) | enum IconType
function showDialogBox (line 151) | static int showDialogBox(const std::string& title,
FILE: app/src/main/cpp/isEngine/ext_lib/TinyFileDialogs/tinyfiledialogs.cpp
function ensureFinalSlash (line 276) | static void ensureFinalSlash( char * const aioString )
function Hex2RGB (line 289) | static void Hex2RGB( char const aHexRGB [8] ,
function RGB2Hex (line 314) | static void RGB2Hex( unsigned char const aRGB [3] ,
function replaceSubStr (line 338) | static void replaceSubStr( char const * const aSource ,
function filenameValid (line 374) | static int filenameValid( char const * const aFileNameWithoutPath )
function fileExists (line 387) | static int fileExists( char const * const aFilePathAndName )
function fileExists (line 405) | static int fileExists( char const * const aFilePathAndName )
function wipefile (line 428) | static void wipefile(char const * const aFilename)
function replaceChr (line 450) | static int replaceChr( char * const aString ,
function dirExists (line 479) | static int dirExists(char const * const aDirPath)
function tinyfd_beep (line 496) | void tinyfd_beep(void)
function tinyfd_beep (line 503) | void tinyfd_beep(void)
function wipefileW (line 509) | static void wipefileW(wchar_t const * const aFilename)
function wchar_t (line 529) | static wchar_t * getPathWithoutFinalSlashW(
function wchar_t (line 559) | static wchar_t * getLastNameW(
function Hex2RGBW (line 589) | static void Hex2RGBW(wchar_t const aHexRGB[8],
function RGB2HexW (line 615) | static void RGB2HexW(
function sizeUtf16 (line 653) | static int sizeUtf16(char const * const aUtf8string)
function sizeUtf8 (line 660) | static int sizeUtf8(wchar_t const * const aUtf16string)
function sizeMbcs (line 667) | static int sizeMbcs(wchar_t const * const aMbcsString)
function wchar_t (line 676) | static wchar_t * utf8to16(char const * const aUtf8string)
function wchar_t (line 692) | static wchar_t * mbcsTo16(char const * const aMbcsString)
function dirExists (line 740) | static int dirExists(char const * const aDirPath)
function fileExists (line 776) | static int fileExists(char const * const aFilePathAndName)
function replaceWchar (line 812) | static int replaceWchar(wchar_t * const aString,
function EnumThreadWndProc (line 894) | static int __stdcall EnumThreadWndProc(HWND hwnd, LPARAM lParam)
function hiddenConsoleW (line 908) | static void hiddenConsoleW(wchar_t const * const aString, wchar_t const ...
function tinyfd_messageBoxW (line 939) | int tinyfd_messageBoxW(
function messageBoxWinGui8 (line 1007) | static int messageBoxWinGui8(
function tinyfd_notifyPopupW (line 1038) | int tinyfd_notifyPopupW(
function notifyWinGui (line 1106) | static int notifyWinGui(
function wchar_t (line 1471) | wchar_t const * tinyfd_saveFileDialogW(
function wchar_t (line 1621) | wchar_t const * tinyfd_openFileDialogW(
function BOOL (line 1810) | BOOL CALLBACK BrowseCallbackProc_enum(HWND hWndChild, LPARAM lParam)
function BOOL (line 1824) | BOOL CALLBACK BrowseCallbackProcW_enum(HWND hWndChild, LPARAM lParam)
function BrowseCallbackProc (line 1836) | static int __stdcall BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lp,...
function BrowseCallbackProcW (line 1849) | static int __stdcall BrowseCallbackProcW(HWND hwnd, UINT uMsg, LPARAM lp...
function wchar_t (line 1861) | wchar_t const * tinyfd_selectFolderDialogW(
function wchar_t (line 1940) | wchar_t const * tinyfd_colorChooserW(
function messageBoxWinGuiA (line 2039) | static int messageBoxWinGuiA(
function dialogPresent (line 2440) | static int dialogPresent(void)
function messageBoxWinConsole (line 2475) | static int messageBoxWinConsole(
function tinyfd_messageBox (line 2867) | int tinyfd_messageBox(
function tinyfd_notifyPopup (line 2973) | int tinyfd_notifyPopup(
function isDarwin (line 3306) | static int isDarwin(void)
function dirExists (line 3318) | static int dirExists( char const * const aDirPath )
function detectPresence (line 3333) | static int detectPresence( char const * const aExecutable )
function tryCommand (line 3397) | static int tryCommand( char const * const aCommand )
function isTerminalRunning (line 3417) | static int isTerminalRunning(void)
function isDialogVersionBetter09b (line 3449) | int isDialogVersionBetter09b(void)
function whiptailPresentOnly (line 3486) | static int whiptailPresentOnly(void)
function whiptailPresent (line 3639) | static int whiptailPresent(void)
function graphicMode (line 3655) | static int graphicMode(void)
function pactlPresent (line 3663) | static int pactlPresent(void)
function speakertestPresent (line 3674) | static int speakertestPresent(void)
function beepexePresent (line 3685) | static int beepexePresent(void)
function xmessagePresent (line 3696) | static int xmessagePresent(void)
function gxmessagePresent (line 3707) | static int gxmessagePresent(void)
function gmessagePresent (line 3718) | static int gmessagePresent(void)
function notifysendPresent (line 3729) | static int notifysendPresent(void)
function perlPresent (line 3740) | static int perlPresent(void)
function afplayPresent (line 3764) | static int afplayPresent(void)
function xdialogPresent (line 3788) | static int xdialogPresent(void)
function gdialogPresent (line 3799) | static int gdialogPresent(void)
function osascriptPresent (line 3810) | static int osascriptPresent(void)
function qarmaPresent (line 3822) | static int qarmaPresent(void)
function matedialogPresent (line 3833) | static int matedialogPresent(void)
function shellementaryPresent (line 3844) | static int shellementaryPresent(void)
function zenityPresent (line 3855) | static int zenityPresent(void)
function zenity3Present (line 3866) | static int zenity3Present(void)
function kdialogPresent (line 3907) | static int kdialogPresent(void)
function osx9orBetter (line 3960) | static int osx9orBetter(void)
function python2Present (line 3987) | static int python2Present(void)
function python3Present (line 4021) | static int python3Present(void)
function tkinter2Present (line 4055) | static int tkinter2Present(void)
function tkinter3Present (line 4077) | static int tkinter3Present(void)
function pythonDbusPresent (line 4098) | static int pythonDbusPresent(void)
function sigHandler (line 4131) | static void sigHandler(int sig)
function tinyfd_beep (line 4140) | void tinyfd_beep(void)
function tinyfd_messageBox (line 4190) | int tinyfd_messageBox(
function tinyfd_notifyPopup (line 5116) | int tinyfd_notifyPopup(
type termios (line 5332) | struct termios
type termios (line 5333) | struct termios
FILE: app/src/main/cpp/isEngine/system/display/GameDisplay.h
function namespace (line 36) | namespace is
function virtual (line 330) | virtual void GSMplaySound(const std::string& name)
function virtual (line 336) | virtual void GSMplayMusic(const std::string& name)
function virtual (line 348) | virtual void GRMuseGameSystemFont()
function virtual (line 354) | virtual void GRMuseGameSystemTexture()
function virtual (line 360) | virtual void GSMuseGameSystemSound()
function virtual (line 366) | virtual void GSMuseGameSystemMusic()
function virtual (line 376) | virtual void GRMuseGameSystemResources()
function virtual (line 391) | virtual void GRMplaySound(const std::string& name)
function virtual (line 397) | virtual void GRMplayMusic(const std::string& name)
function virtual (line 403) | virtual void GRMuseGameSystemSound()
function virtual (line 409) | virtual void GRMuseGameSystemMusic()
type MsgAnswer (line 429) | enum MsgAnswer
FILE: app/src/main/cpp/isEngine/system/display/SDM.h
function namespace (line 31) | namespace is
function virtual (line 125) | virtual void SDMsetObjDepth(const std::string& name, int depth)
function virtual (line 136) | virtual void SDMsetObjDepth(MainObject *obj, int depth)
FILE: app/src/main/cpp/isEngine/system/display/SDMBlitSDLSprite.h
function namespace (line 26) | namespace is
FILE: app/src/main/cpp/isEngine/system/entity/Background.h
function namespace (line 27) | namespace is
FILE: app/src/main/cpp/isEngine/system/entity/Button.h
function class (line 33) | class Button : public MainObject
FILE: app/src/main/cpp/isEngine/system/entity/Form.h
function namespace (line 25) | namespace is
FILE: app/src/main/cpp/isEngine/system/entity/MainObject.h
function namespace (line 38) | namespace is
FILE: app/src/main/cpp/isEngine/system/entity/parents/DepthObject.h
function namespace (line 25) | namespace is
FILE: app/src/main/cpp/isEngine/system/entity/parents/Destructible.h
function namespace (line 25) | namespace is
FILE: app/src/main/cpp/isEngine/system/entity/parents/FilePath.h
function namespace (line 25) | namespace is
FILE: app/src/main/cpp/isEngine/system/entity/parents/Health.h
function namespace (line 25) | namespace is
FILE: app/src/main/cpp/isEngine/system/entity/parents/HurtEffect.h
function namespace (line 27) | namespace is
FILE: app/src/main/cpp/isEngine/system/entity/parents/Name.h
function namespace (line 27) | namespace is
FILE: app/src/main/cpp/isEngine/system/entity/parents/ScorePoint.h
function namespace (line 25) | namespace is
FILE: app/src/main/cpp/isEngine/system/entity/parents/Step.h
function namespace (line 25) | namespace is
FILE: app/src/main/cpp/isEngine/system/entity/parents/Type.h
function namespace (line 25) | namespace is
FILE: app/src/main/cpp/isEngine/system/entity/parents/Visibilty.h
function namespace (line 25) | namespace is
FILE: app/src/main/cpp/isEngine/system/function/GameFunction.h
function namespace (line 51) | namespace is
function random (line 168) | inline int random(unsigned int limit)
function getSFMLTextureWidth (line 331) | inline int getSFMLTextureWidth(sf::Texture const &obj)
function getSFMLTextureWidth (line 337) | inline int getSFMLTextureWidth(sf::Texture const *obj)
function getSFMLTextureHeight (line 343) | inline int getSFMLTextureHeight(sf::Texture const &obj)
function getSFMLTextureHeight (line 349) | inline int getSFMLTextureHeight(sf::Texture const *obj)
function getSFMLObjAlpha (line 405) | int getSFMLObjAlpha(T *obj)
function setTextAnimation (line 724) | inline void setTextAnimation(sf::Text *txt, int &var, int val)
function setTextAnimation (line 733) | inline void setTextAnimation(sf::Text *txt, sf::Sprite *spr, sf::Sprite ...
function setFrame (line 742) | inline void setFrame(sf::Sprite *sprite, float frame, int subFrame, int ...
function setFrame (line 751) | inline void setFrame(sf::Sprite *sprite, float frame, int subFrame, int ...
function loadSFMLTexture (line 906) | inline void loadSFMLTexture(sf::Texture &obj, const std::string& filePath)
function loadSFMLTexture (line 912) | inline void loadSFMLTexture(sf::Texture *obj, const std::string& filePath)
function loadSFMLSoundBuffer (line 933) | inline void loadSFMLSoundBuffer(sf::SoundBuffer &obj, const std::string&...
function loadSFMLSoundBuffer (line 939) | inline void loadSFMLSoundBuffer(sf::SoundBuffer *obj, const std::string&...
function loadSFMLSoundBufferWithSnd (line 945) | inline void loadSFMLSoundBufferWithSnd(sf::SoundBuffer &sb, sf::Sound &s...
function loadSFMLSoundBufferWithSnd (line 952) | inline void loadSFMLSoundBufferWithSnd(sf::SoundBuffer *sb, sf::Sound *s...
function loadSFMLMusic (line 958) | inline void loadSFMLMusic(sf::Music &obj, const std::string& filePath)
function loadSFMLMusic (line 964) | inline void loadSFMLMusic(sf::Music *obj, const std::string& filePath)
function textStyleConfig (line 1092) | inline void textStyleConfig(sf::Text *txt, bool underLined, bool boldTex...
function setSFMLTextOutlineColor (line 1101) | inline void setSFMLTextOutlineColor(sf::Text *txt, float thickness, sf::...
function getWindowStyle (line 1724) | inline int getWindowStyle()
type OpenURLAction (line 1758) | enum OpenURLAction
FILE: app/src/main/cpp/isEngine/system/function/GameKeyData.h
function namespace (line 27) | namespace is
FILE: app/src/main/cpp/isEngine/system/function/GameKeyName.h
function namespace (line 27) | namespace is
FILE: app/src/main/cpp/isEngine/system/function/GameSlider.h
function namespace (line 28) | namespace is
FILE: app/src/main/cpp/isEngine/system/function/GameSystem.h
function namespace (line 36) | namespace is
FILE: app/src/main/cpp/isEngine/system/function/GameTime.h
function class (line 37) | class GameTime
FILE: app/src/main/cpp/isEngine/system/graphic/GRM.h
function namespace (line 28) | namespace is
function virtual (line 112) | virtual sf::Font& GRMgetFont(const std::string& name) {return *GRM...
function virtual (line 115) | virtual sf::Texture& GRMgetTexture(const std::string& name) {return *GRM...
function virtual (line 118) | virtual sf::Font* GRMgetFontPtr(const std::string& name)
function virtual (line 135) | virtual sf::Texture* GRMgetTexturePtr(const std::string& name)
function GRMdeleteFont (line 152) | void GRMdeleteFont(const std::string& name)
function GRMdeleteTexture (line 175) | void GRMdeleteTexture(const std::string& name)
function GameFont (line 210) | GameFont* fontFileExists(const std::string& filePath) const
FILE: app/src/main/cpp/isEngine/system/graphic/GameFont.h
function namespace (line 29) | namespace is
function virtual (line 45) | virtual ~GameFont() {}
function loadResources (line 47) | void loadResources(const std::string& filePath)
FILE: app/src/main/cpp/isEngine/system/graphic/GameTexture.h
function namespace (line 29) | namespace is
function virtual (line 45) | virtual ~GameTexture() {}
function loadResources (line 47) | void loadResources(const std::string& filePath)
FILE: app/src/main/cpp/isEngine/system/graphic/TransitionEffect.h
function namespace (line 28) | namespace is
FILE: app/src/main/cpp/isEngine/system/islibconnect/isEngineSDLWrapper.h
function namespace (line 55) | namespace is
function namespace (line 111) | namespace sf
function class (line 189) | class Font
function setSDLFontSize (line 201) | void setSDLFontSize(int size) {m_size = size;}
function std (line 203) | const std::string& getFileName() const noexcept {return m_filename;}
function loadFromFile (line 207) | bool loadFromFile(const std::string& filename) {return loadFont(filename);}
function TTF_Font (line 209) | TTF_Font* getSDLFont() const {return m_SDLfont;}
function namespace (line 223) | namespace is
function namespace (line 231) | namespace sf
function Vector2f (line 668) | Vector2f transformPoint(const Vector2f& point) const {
function Transform (line 675) | Transform combine(const Transform& other) const {
function insert (line 694) | struct RenderStates {
function remove (line 720) | void remove(size_t index) {
function clear (line 727) | void clear() {
function reserve (line 735) | void reserve(size_t count) {
function Vertex (line 746) | const Vertex& operator[](size_t index) const {
function resize (line 753) | void resize(size_t vertexCount) {
function setPrimitiveType (line 761) | void setPrimitiveType(PrimitiveType type) {
function create (line 1028) | bool create(unsigned int width, unsigned int height) {
function display (line 1062) | void display() {}
function Texture (line 1064) | const Texture& getTexture() const {
type Key (line 1106) | enum Key
type SizeEvent (line 1230) | struct SizeEvent
type MouseWheelEvent (line 1236) | struct MouseWheelEvent
type KeyEvent (line 1241) | struct KeyEvent
type TouchEvent (line 1246) | struct TouchEvent
type EventType (line 1253) | enum EventType
function clear (line 1327) | void clear() {clear(sf::Color::Black);}
function draw (line 1331) | void draw(Shape &obj) {obj.draw(m_view);}
function close (line 1339) | void close()
function Vector2i (line 1351) | Vector2i getPosition() const;
function class (line 1402) | class Sound : public SoundSource
function SoundSource (line 1453) | SoundSource
function class (line 1500) | class Mouse
function class (line 1525) | class Touch
FILE: app/src/main/cpp/isEngine/system/islibconnect/isEngineWrapper.h
function namespace (line 33) | namespace is
function namespace (line 78) | namespace sf
type Rect (line 157) | typedef Rect IntRect;
type Rect (line 158) | typedef Rect FloatRect;
function class (line 165) | class Time
function class (line 189) | class Clock
function class (line 200) | class SoundSource
type Style (line 215) | enum Style
FILE: app/src/main/cpp/isEngine/system/islibconnect/isLibConnect.h
function namespace (line 34) | namespace is
function namespace (line 50) | namespace is
FILE: app/src/main/cpp/isEngine/system/sound/GSM.h
function namespace (line 28) | namespace is
function virtual (line 121) | virtual void GSMsetSoundLoop(const std::string& name, bool loop)
function virtual (line 138) | virtual void GSMsetMusicLoop(const std::string& name, bool loop)
function virtual (line 222) | virtual void GSMpauseSound(const std::string& name)
function virtual (line 245) | virtual void GSMstopSound(const std::string& name)
function virtual (line 268) | virtual void GSMpauseMusic(const std::string& name)
function virtual (line 295) | virtual void GSMstopMusic(const std::string& name)
function virtual (line 322) | virtual void GSMdeleteSound(const std::string& name)
function virtual (line 345) | virtual void GSMdeleteMusic(const std::string& name)
function virtual (line 384) | virtual void GRMaddSound(const std::string& name, const std::string& fil...
function virtual (line 406) | virtual void GRMaddMusic(const std::string& name, const std::string& fil...
function virtual (line 436) | virtual void GRMsetSoundLoop(const std::string& name, bool loop)
function virtual (line 442) | virtual void GRMsetMusicLoop(const std::string& name, bool loop)
function virtual (line 475) | virtual void GRMpauseSound(const std::string& name)
function virtual (line 481) | virtual void GRMstopSound(const std::string& name)
function virtual (line 487) | virtual void GRMpauseMusic(const std::string& name)
function virtual (line 497) | virtual void GRMstopMusic(const std::string& name)
function virtual (line 507) | virtual void GRMdeleteSound(const std::string& name)
function virtual (line 513) | virtual void GRMdeleteMusic(const std::string& name)
function musicFileExists (line 536) | bool musicFileExists(const std::string& filePath) const
FILE: app/src/main/cpp/isEngine/system/sound/GameMusic.h
function namespace (line 29) | namespace is
function virtual (line 45) | virtual ~GameMusic() {}
function loadResources (line 47) | void loadResources(const std::string&filePath)
FILE: app/src/main/cpp/isEngine/system/sound/GameSound.h
function namespace (line 29) | namespace is
function virtual (line 49) | virtual ~GameSound() {}
function loadResources (line 51) | void loadResources(const std::string& filePath)
FILE: app/src/main/cpp/isEngineSDLWrapper.cpp
type is (line 26) | namespace is
function updateButtonState (line 50) | void updateButtonState() {
function Uint8 (line 56) | const Uint8* getControllerButtonState(int *numButtons) {
function SDL2initLib (line 61) | bool SDL2initLib()
function SDL2freeLib (line 152) | void SDL2freeLib()
function SDL_Color (line 278) | const SDL_Color& Transformable::getSDLColor(bool getAlpha)
function Uint8 (line 356) | const Uint8* Image::getPixelsPtr() const
function Vector2f (line 698) | const Vector2f& View::getCenter() const noexcept
function VideoMode (line 888) | VideoMode VideoMode::getDesktopMode()
function Vector2i (line 1271) | Vector2i RenderWindow::getPosition() const
function Vector2f (line 1278) | Vector2f RenderWindow::mapPixelToCoords(const Vector2i& point, const Vie...
function SoundSource (line 1376) | SoundSource()
FILE: app/src/main/cpp/isEngineWrapper.cpp
type sf (line 25) | namespace sf
function Rect (line 51) | Rect functionGetGlobalBounds(const Vector2f &position, const Vector2f ...
function Time (line 63) | const Time Clock::getElapsedTime()
function Time (line 68) | Time Clock::restart()
function Time (line 79) | Time seconds(float amount)
function Time (line 89) | Time milliseconds(Int32 amount) {return Time(static_cast<Int64>(amount...
function Time (line 90) | Time microseconds(Int64 amount) {return Time(amount);}
function Time (line 105) | inline Time operator -(Time right) {return microseconds(-right.asMicro...
function Time (line 107) | inline Time operator +(Time left, Time right) {return microseconds(lef...
function Time (line 109) | inline Time& operator +=(Time& left, Time right) {return left = left +...
function Time (line 111) | inline Time operator -(Time left, Time right) {return microseconds(lef...
function Time (line 113) | inline Time& operator -=(Time& left, Time right) {return left = left -...
function Time (line 115) | inline Time operator *(Time left, float right) {return seconds(left.as...
function Time (line 117) | inline Time operator *(Time left, Int64 right) {return microseconds(le...
function Time (line 119) | inline Time operator *(float left, Time right) {return right * left;}
function Time (line 121) | inline Time operator *(Int64 left, Time right) {return right * left;}
function Time (line 123) | inline Time& operator *=(Time& left, float right) {return left = left ...
function Time (line 125) | inline Time& operator *=(Time& left, Int64 right) {return left = left ...
function Time (line 127) | inline Time operator /(Time left, float right) {return seconds(left.as...
function Time (line 129) | inline Time operator /(Time left, Int64 right) {return microseconds(le...
function Time (line 131) | inline Time& operator /=(Time& left, float right) {return left = left ...
function Time (line 133) | inline Time& operator /=(Time& left, Int64 right) {return left = left ...
function Time (line 137) | inline Time operator %(Time left, Time right) {return microseconds(lef...
function Time (line 139) | inline Time& operator %=(Time& left, Time right) {return left = left %...
FILE: app/src/main/cpp/main.cpp
function main (line 30) | int main(int argc, char * argv[])
FILE: app/src/main/cpp/vscode/Linux/LinuxHelper.hpp
class LinuxHelper (line 4) | class LinuxHelper
FILE: app/src/main/cpp/vscode/MacOS/MacHelper.hpp
class MacHelper (line 4) | class MacHelper
FILE: app/src/main/cpp/vscode/Win32/WindowsHelper.cpp
function PBYTE (line 36) | PBYTE WindowsHelper::getIconDirectory(const int& inResourceId)
function HICON (line 51) | HICON WindowsHelper::getIconFromIconDirectory(const PBYTE& inIconDirecto...
FILE: app/src/main/cpp/vscode/Win32/WindowsHelper.hpp
class WindowsHelper (line 4) | class WindowsHelper
FILE: app/src/main/external/SFML/include/SFML/Audio/AlResource.hpp
type sf (line 34) | namespace sf
function AlResource (line 40) | class SFML_AUDIO_API AlResource
FILE: app/src/main/external/SFML/include/SFML/Audio/InputSoundFile.hpp
type sf (line 38) | namespace sf
class InputStream (line 40) | class InputStream
class SoundFileReader (line 41) | class SoundFileReader
function InputSoundFile (line 47) | class SFML_AUDIO_API InputSoundFile : NonCopyable
FILE: app/src/main/external/SFML/include/SFML/Audio/Listener.hpp
type sf (line 35) | namespace sf
function Listener (line 42) | class SFML_AUDIO_API Listener
FILE: app/src/main/external/SFML/include/SFML/Audio/Music.hpp
type sf (line 40) | namespace sf
class InputStream (line 42) | class InputStream
function SoundStream (line 48) | class SFML_AUDIO_API Music : public SoundStream
FILE: app/src/main/external/SFML/include/SFML/Audio/OutputSoundFile.hpp
type sf (line 36) | namespace sf
class SoundFileWriter (line 38) | class SoundFileWriter
function OutputSoundFile (line 44) | class SFML_AUDIO_API OutputSoundFile : NonCopyable
FILE: app/src/main/external/SFML/include/SFML/Audio/Sound.hpp
type sf (line 37) | namespace sf
class SoundBuffer (line 39) | class SoundBuffer
function SoundSource (line 45) | class SFML_AUDIO_API Sound : public SoundSource
FILE: app/src/main/external/SFML/include/SFML/Audio/SoundBuffer.hpp
type sf (line 39) | namespace sf
class Sound (line 41) | class Sound
class InputSoundFile (line 42) | class InputSoundFile
class InputStream (line 43) | class InputStream
function SoundBuffer (line 49) | class SFML_AUDIO_API SoundBuffer : AlResource
FILE: app/src/main/external/SFML/include/SFML/Audio/SoundBufferRecorder.hpp
type sf (line 37) | namespace sf
function SoundBufferRecorder (line 44) | class SFML_AUDIO_API SoundBufferRecorder : public SoundRecorder
FILE: app/src/main/external/SFML/include/SFML/Audio/SoundFileFactory.hpp
type sf (line 36) | namespace sf
class InputStream (line 38) | class InputStream
class SoundFileReader (line 39) | class SoundFileReader
class SoundFileWriter (line 40) | class SoundFileWriter
function SoundFileFactory (line 46) | class SFML_AUDIO_API SoundFileFactory
FILE: app/src/main/external/SFML/include/SFML/Audio/SoundFileReader.hpp
type sf (line 35) | namespace sf
class InputStream (line 37) | class InputStream
function SoundFileReader (line 43) | class SFML_AUDIO_API SoundFileReader
FILE: app/src/main/external/SFML/include/SFML/Audio/SoundFileWriter.hpp
type sf (line 35) | namespace sf
function SoundFileWriter (line 41) | class SFML_AUDIO_API SoundFileWriter
FILE: app/src/main/external/SFML/include/SFML/Audio/SoundRecorder.hpp
type sf (line 39) | namespace sf
function SoundRecorder (line 45) | class SFML_AUDIO_API SoundRecorder : AlResource
FILE: app/src/main/external/SFML/include/SFML/Audio/SoundSource.hpp
type sf (line 36) | namespace sf
function SoundSource (line 42) | class SFML_AUDIO_API SoundSource : AlResource
FILE: app/src/main/external/SFML/include/SFML/Audio/SoundStream.hpp
type sf (line 39) | namespace sf
function SoundStream (line 45) | class SFML_AUDIO_API SoundStream : public SoundSource
FILE: app/src/main/external/SFML/include/SFML/Config.hpp
type sf (line 211) | namespace sf
FILE: app/src/main/external/SFML/include/SFML/Graphics/BlendMode.hpp
type sf (line 34) | namespace sf
function BlendMode (line 41) | struct SFML_GRAPHICS_API BlendMode
FILE: app/src/main/external/SFML/include/SFML/Graphics/CircleShape.hpp
type sf (line 35) | namespace sf
function CircleShape (line 41) | class SFML_GRAPHICS_API CircleShape : public Shape
FILE: app/src/main/external/SFML/include/SFML/Graphics/Color.hpp
type sf (line 34) | namespace sf
function Color (line 40) | class SFML_GRAPHICS_API Color
FILE: app/src/main/external/SFML/include/SFML/Graphics/ConvexShape.hpp
type sf (line 36) | namespace sf
function ConvexShape (line 42) | class SFML_GRAPHICS_API ConvexShape : public Shape
FILE: app/src/main/external/SFML/include/SFML/Graphics/Drawable.hpp
type sf (line 35) | namespace sf
class RenderTarget (line 37) | class RenderTarget
function Drawable (line 44) | class SFML_GRAPHICS_API Drawable
FILE: app/src/main/external/SFML/include/SFML/Graphics/Font.hpp
type sf (line 40) | namespace sf
class InputStream (line 42) | class InputStream
function Font (line 48) | class SFML_GRAPHICS_API Font
FILE: app/src/main/external/SFML/include/SFML/Graphics/Glsl.hpp
type sf (line 37) | namespace sf
type priv (line 39) | namespace priv
type Matrix (line 43) | struct Matrix
type Vector4 (line 46) | struct Vector4
type Glsl (line 57) | namespace Glsl
FILE: app/src/main/external/SFML/include/SFML/Graphics/Glyph.hpp
type sf (line 35) | namespace sf
function Glyph (line 41) | class SFML_GRAPHICS_API Glyph
FILE: app/src/main/external/SFML/include/SFML/Graphics/Image.hpp
type sf (line 38) | namespace sf
class InputStream (line 40) | class InputStream
function Image (line 46) | class SFML_GRAPHICS_API Image
FILE: app/src/main/external/SFML/include/SFML/Graphics/PrimitiveType.hpp
type sf (line 28) | namespace sf
type PrimitiveType (line 39) | enum PrimitiveType
FILE: app/src/main/external/SFML/include/SFML/Graphics/Rect.hpp
type sf (line 35) | namespace sf
class Rect (line 42) | class Rect
FILE: app/src/main/external/SFML/include/SFML/Graphics/RectangleShape.hpp
type sf (line 35) | namespace sf
function RectangleShape (line 41) | class SFML_GRAPHICS_API RectangleShape : public Shape
FILE: app/src/main/external/SFML/include/SFML/Graphics/RenderStates.hpp
type sf (line 36) | namespace sf
class Shader (line 38) | class Shader
class Texture (line 39) | class Texture
function RenderStates (line 45) | class SFML_GRAPHICS_API RenderStates
FILE: app/src/main/external/SFML/include/SFML/Graphics/RenderTarget.hpp
type sf (line 43) | namespace sf
class Drawable (line 45) | class Drawable
class VertexBuffer (line 46) | class VertexBuffer
function RenderTarget (line 52) | class SFML_GRAPHICS_API RenderTarget : NonCopyable
FILE: app/src/main/external/SFML/include/SFML/Graphics/RenderTexture.hpp
type sf (line 37) | namespace sf
type priv (line 39) | namespace priv
class RenderTextureImpl (line 41) | class RenderTextureImpl
function RenderTexture (line 48) | class SFML_GRAPHICS_API RenderTexture : public RenderTarget
FILE: app/src/main/external/SFML/include/SFML/Graphics/RenderWindow.hpp
type sf (line 38) | namespace sf
class SFML_GRAPHICS_API (line 44) | class SFML_GRAPHICS_API
FILE: app/src/main/external/SFML/include/SFML/Graphics/Shader.hpp
type sf (line 41) | namespace sf
class Color (line 43) | class Color
class InputStream (line 44) | class InputStream
class Texture (line 45) | class Texture
class Transform (line 46) | class Transform
class SFML_GRAPHICS_API (line 52) | class SFML_GRAPHICS_API
type CurrentTextureType (line 74) | struct CurrentTextureType {}
type UniformBinder (line 737) | struct UniformBinder
FILE: app/src/main/external/SFML/include/SFML/Graphics/Shape.hpp
type sf (line 38) | namespace sf
class SFML_GRAPHICS_API (line 44) | class SFML_GRAPHICS_API
FILE: app/src/main/external/SFML/include/SFML/Graphics/Sprite.hpp
type sf (line 38) | namespace sf
class Texture (line 40) | class Texture
class SFML_GRAPHICS_API (line 47) | class SFML_GRAPHICS_API
FILE: app/src/main/external/SFML/include/SFML/Graphics/Text.hpp
type sf (line 42) | namespace sf
class SFML_GRAPHICS_API (line 48) | class SFML_GRAPHICS_API
FILE: app/src/main/external/SFML/include/SFML/Graphics/Texture.hpp
type sf (line 36) | namespace sf
class InputStream (line 38) | class InputStream
class RenderTarget (line 39) | class RenderTarget
class RenderTexture (line 40) | class RenderTexture
class Text (line 41) | class Text
class Window (line 42) | class Window
function GlResource (line 48) | class SFML_GRAPHICS_API Texture : GlResource
FILE: app/src/main/external/SFML/include/SFML/Graphics/Transform.hpp
type sf (line 36) | namespace sf
function Transform (line 42) | class SFML_GRAPHICS_API Transform
FILE: app/src/main/external/SFML/include/SFML/Graphics/Transformable.hpp
type sf (line 35) | namespace sf
function Transformable (line 41) | class SFML_GRAPHICS_API Transformable
FILE: app/src/main/external/SFML/include/SFML/Graphics/Vertex.hpp
type sf (line 36) | namespace sf
function Vertex (line 42) | class SFML_GRAPHICS_API Vertex
FILE: app/src/main/external/SFML/include/SFML/Graphics/VertexArray.hpp
type sf (line 39) | namespace sf
function VertexArray (line 45) | class SFML_GRAPHICS_API VertexArray : public Drawable
FILE: app/src/main/external/SFML/include/SFML/Graphics/VertexBuffer.hpp
type sf (line 37) | namespace sf
class RenderTarget (line 39) | class RenderTarget
class Vertex (line 40) | class Vertex
class SFML_GRAPHICS_API (line 46) | class SFML_GRAPHICS_API
FILE: app/src/main/external/SFML/include/SFML/Graphics/View.hpp
type sf (line 37) | namespace sf
function View (line 43) | class SFML_GRAPHICS_API View
FILE: app/src/main/external/SFML/include/SFML/Network/Ftp.hpp
type sf (line 39) | namespace sf
class IpAddress (line 41) | class IpAddress
function NonCopyable (line 47) | class SFML_NETWORK_API Ftp : NonCopyable
FILE: app/src/main/external/SFML/include/SFML/Network/Http.hpp
type sf (line 40) | namespace sf
function NonCopyable (line 46) | class SFML_NETWORK_API Http : NonCopyable
function Response (line 193) | class SFML_NETWORK_API Response
FILE: app/src/main/external/SFML/include/SFML/Network/IpAddress.hpp
type sf (line 38) | namespace sf
function IpAddress (line 44) | class SFML_NETWORK_API IpAddress
FILE: app/src/main/external/SFML/include/SFML/Network/Packet.hpp
type sf (line 36) | namespace sf
class String (line 38) | class String
class TcpSocket (line 39) | class TcpSocket
class UdpSocket (line 40) | class UdpSocket
function Packet (line 47) | class SFML_NETWORK_API Packet
FILE: app/src/main/external/SFML/include/SFML/Network/Socket.hpp
type sf (line 37) | namespace sf
class SocketSelector (line 39) | class SocketSelector
function NonCopyable (line 45) | class SFML_NETWORK_API Socket : NonCopyable
FILE: app/src/main/external/SFML/include/SFML/Network/SocketHandle.hpp
type sf (line 38) | namespace sf
FILE: app/src/main/external/SFML/include/SFML/Network/SocketSelector.hpp
type sf (line 35) | namespace sf
class Socket (line 37) | class Socket
function SocketSelector (line 43) | class SFML_NETWORK_API SocketSelector
FILE: app/src/main/external/SFML/include/SFML/Network/TcpListener.hpp
type sf (line 36) | namespace sf
class TcpSocket (line 38) | class TcpSocket
function TcpListener (line 44) | class SFML_NETWORK_API TcpListener : public Socket
FILE: app/src/main/external/SFML/include/SFML/Network/TcpSocket.hpp
type sf (line 36) | namespace sf
class TcpListener (line 38) | class TcpListener
class IpAddress (line 39) | class IpAddress
class Packet (line 40) | class Packet
function TcpSocket (line 46) | class SFML_NETWORK_API TcpSocket : public Socket
FILE: app/src/main/external/SFML/include/SFML/Network/UdpSocket.hpp
type sf (line 37) | namespace sf
class Packet (line 39) | class Packet
function UdpSocket (line 45) | class SFML_NETWORK_API UdpSocket : public Socket
FILE: app/src/main/external/SFML/include/SFML/System/Clock.hpp
type sf (line 35) | namespace sf
function Clock (line 41) | class SFML_SYSTEM_API Clock
FILE: app/src/main/external/SFML/include/SFML/System/Err.hpp
type sf (line 35) | namespace sf
FILE: app/src/main/external/SFML/include/SFML/System/FileInputStream.hpp
type sf (line 39) | namespace sf
type priv (line 41) | namespace priv
class SFML_SYSTEM_API (line 43) | class SFML_SYSTEM_API
class SFML_SYSTEM_API (line 55) | class SFML_SYSTEM_API
type sf (line 49) | namespace sf
type priv (line 41) | namespace priv
class SFML_SYSTEM_API (line 43) | class SFML_SYSTEM_API
class SFML_SYSTEM_API (line 55) | class SFML_SYSTEM_API
FILE: app/src/main/external/SFML/include/SFML/System/InputStream.hpp
type sf (line 35) | namespace sf
function InputStream (line 41) | class SFML_SYSTEM_API InputStream
FILE: app/src/main/external/SFML/include/SFML/System/Lock.hpp
type sf (line 35) | namespace sf
class Mutex (line 37) | class Mutex
function NonCopyable (line 43) | class SFML_SYSTEM_API Lock : NonCopyable
FILE: app/src/main/external/SFML/include/SFML/System/MemoryInputStream.hpp
type sf (line 37) | namespace sf
function MemoryInputStream (line 43) | class SFML_SYSTEM_API MemoryInputStream : public InputStream
FILE: app/src/main/external/SFML/include/SFML/System/Mutex.hpp
type sf (line 35) | namespace sf
type priv (line 37) | namespace priv
class MutexImpl (line 39) | class MutexImpl
function NonCopyable (line 47) | class SFML_SYSTEM_API Mutex : NonCopyable
FILE: app/src/main/external/SFML/include/SFML/System/NativeActivity.hpp
type ANativeActivity (line 40) | struct ANativeActivity
type sf (line 42) | namespace sf
FILE: app/src/main/external/SFML/include/SFML/System/NonCopyable.hpp
type sf (line 34) | namespace sf
function NonCopyable (line 41) | class SFML_SYSTEM_API NonCopyable
FILE: app/src/main/external/SFML/include/SFML/System/Sleep.hpp
type sf (line 35) | namespace sf
FILE: app/src/main/external/SFML/include/SFML/System/String.hpp
type sf (line 38) | namespace sf
function String (line 45) | class SFML_SYSTEM_API String
FILE: app/src/main/external/SFML/include/SFML/System/Thread.hpp
type sf (line 36) | namespace sf
type priv (line 38) | namespace priv
class ThreadImpl (line 40) | class ThreadImpl
type ThreadFunc (line 41) | struct ThreadFunc
function NonCopyable (line 48) | class SFML_SYSTEM_API Thread : NonCopyable
FILE: app/src/main/external/SFML/include/SFML/System/ThreadLocal.hpp
type sf (line 36) | namespace sf
type priv (line 38) | namespace priv
class ThreadLocalImpl (line 40) | class ThreadLocalImpl
function ThreadLocal (line 47) | class SFML_SYSTEM_API ThreadLocal : NonCopyable
FILE: app/src/main/external/SFML/include/SFML/System/ThreadLocalPtr.hpp
type sf (line 34) | namespace sf
class ThreadLocalPtr (line 41) | class ThreadLocalPtr : private ThreadLocal
FILE: app/src/main/external/SFML/include/SFML/System/Time.hpp
type sf (line 34) | namespace sf
function Time (line 40) | class SFML_SYSTEM_API Time
FILE: app/src/main/external/SFML/include/SFML/System/Utf.hpp
type sf (line 38) | namespace sf
class Utf (line 41) | class Utf
class Utf<8> (line 48) | class Utf<8>
class Utf<16> (line 255) | class Utf<16>
class Utf<32> (line 462) | class Utf<32>
FILE: app/src/main/external/SFML/include/SFML/System/Vector2.hpp
type sf (line 29) | namespace sf
class Vector2 (line 37) | class Vector2
FILE: app/src/main/external/SFML/include/SFML/System/Vector3.hpp
type sf (line 29) | namespace sf
class Vector3 (line 37) | class Vector3
FILE: app/src/main/external/SFML/include/SFML/Window/Clipboard.hpp
type sf (line 35) | namespace sf
function Clipboard (line 41) | class SFML_WINDOW_API Clipboard
FILE: app/src/main/external/SFML/include/SFML/Window/Context.hpp
type sf (line 37) | namespace sf
type priv (line 39) | namespace priv
class GlContext (line 41) | class GlContext
class SFML_WINDOW_API (line 50) | class SFML_WINDOW_API
FILE: app/src/main/external/SFML/include/SFML/Window/ContextSettings.hpp
type sf (line 30) | namespace sf
type ContextSettings (line 37) | struct ContextSettings
type Attribute (line 43) | enum Attribute
method ContextSettings (line 62) | explicit ContextSettings(unsigned int depth = 0, unsigned int stenci...
FILE: app/src/main/external/SFML/include/SFML/Window/Cursor.hpp
type sf (line 35) | namespace sf
type priv (line 37) | namespace priv
class CursorImpl (line 39) | class CursorImpl
function NonCopyable (line 46) | class SFML_WINDOW_API Cursor : NonCopyable
FILE: app/src/main/external/SFML/include/SFML/Window/Event.hpp
type sf (line 38) | namespace sf
class Event (line 44) | class Event
type SizeEvent (line 52) | struct SizeEvent
type KeyEvent (line 62) | struct KeyEvent
type TextEvent (line 76) | struct TextEvent
type MouseMoveEvent (line 85) | struct MouseMoveEvent
type MouseButtonEvent (line 96) | struct MouseButtonEvent
type MouseWheelEvent (line 110) | struct MouseWheelEvent
type MouseWheelScrollEvent (line 121) | struct MouseWheelScrollEvent
type JoystickConnectEvent (line 134) | struct JoystickConnectEvent
type JoystickMoveEvent (line 143) | struct JoystickMoveEvent
type JoystickButtonEvent (line 155) | struct JoystickButtonEvent
type TouchEvent (line 165) | struct TouchEvent
type SensorEvent (line 176) | struct SensorEvent
type EventType (line 188) | enum EventType
FILE: app/src/main/external/SFML/include/SFML/Window/GlResource.hpp
type sf (line 35) | namespace sf
class Context (line 38) | class Context
function GlResource (line 46) | class SFML_WINDOW_API GlResource
FILE: app/src/main/external/SFML/include/SFML/Window/Joystick.hpp
type sf (line 35) | namespace sf
function Joystick (line 41) | class SFML_WINDOW_API Joystick
FILE: app/src/main/external/SFML/include/SFML/Window/Keyboard.hpp
type sf (line 34) | namespace sf
class String (line 36) | class String
function Keyboard (line 42) | class SFML_WINDOW_API Keyboard
FILE: app/src/main/external/SFML/include/SFML/Window/Mouse.hpp
type sf (line 35) | namespace sf
class WindowBase (line 37) | class WindowBase
function Mouse (line 43) | class SFML_WINDOW_API Mouse
FILE: app/src/main/external/SFML/include/SFML/Window/Sensor.hpp
type sf (line 36) | namespace sf
function Sensor (line 42) | class SFML_WINDOW_API Sensor
FILE: app/src/main/external/SFML/include/SFML/Window/Touch.hpp
type sf (line 35) | namespace sf
class WindowBase (line 37) | class WindowBase
function Touch (line 43) | class SFML_WINDOW_API Touch
FILE: app/src/main/external/SFML/include/SFML/Window/VideoMode.hpp
type sf (line 35) | namespace sf
function VideoMode (line 41) | class SFML_WINDOW_API VideoMode
FILE: app/src/main/external/SFML/include/SFML/Window/Vulkan.hpp
type VkInstance_T (line 38) | struct VkInstance_T
type VkSurfaceKHR_T (line 42) | struct VkSurfaceKHR_T
type VkAllocationCallbacks (line 50) | struct VkAllocationCallbacks
type sf (line 53) | namespace sf
function Vulkan (line 62) | class SFML_WINDOW_API Vulkan
FILE: app/src/main/external/SFML/include/SFML/Window/Window.hpp
type sf (line 36) | namespace sf
type priv (line 38) | namespace priv
class GlContext (line 40) | class GlContext
class Event (line 43) | class Event
class SFML_WINDOW_API (line 49) | class SFML_WINDOW_API
FILE: app/src/main/external/SFML/include/SFML/Window/WindowBase.hpp
type sf (line 43) | namespace sf
type priv (line 45) | namespace priv
class WindowImpl (line 47) | class WindowImpl
class Event (line 50) | class Event
function NonCopyable (line 56) | class SFML_WINDOW_API WindowBase : NonCopyable
FILE: app/src/main/external/SFML/include/SFML/Window/WindowHandle.hpp
type HWND__ (line 35) | struct HWND__
type sf (line 38) | namespace sf
FILE: app/src/main/external/SFML/include/SFML/Window/WindowStyle.hpp
type sf (line 29) | namespace sf
type Style (line 31) | namespace Style
FILE: app/src/main/java/com/author/isengine/SDLActivity.java
class SDLActivity (line 36) | public class SDLActivity extends Activity {
method getLibraries (line 72) | protected String[] getLibraries() {
method loadLibraries (line 84) | public void loadLibraries() {
method getArguments (line 96) | protected String[] getArguments() {
method initialize (line 100) | public static void initialize() {
method onCreate (line 119) | @Override
method onPause (line 194) | @Override
method onResume (line 206) | @Override
method onWindowFocusChanged (line 219) | @Override
method onLowMemory (line 234) | @Override
method onDestroy (line 246) | @Override
method dispatchKeyEvent (line 278) | @Override
method handlePause (line 302) | public static void handlePause() {
method handleResume (line 314) | public static void handleResume() {
method handleNativeExit (line 323) | public static void handleNativeExit() {
method onUnhandledMessage (line 345) | protected boolean onUnhandledMessage(int command, Object param) {
class SDLCommandHandler (line 354) | protected static class SDLCommandHandler extends Handler {
method handleMessage (line 355) | @Override
method sendCommand (line 405) | boolean sendCommand(int command, Object data) {
method nativeInit (line 413) | public static native int nativeInit(Object arguments);
method nativeLowMemory (line 414) | public static native void nativeLowMemory();
method nativeQuit (line 415) | public static native void nativeQuit();
method nativePause (line 416) | public static native void nativePause();
method nativeResume (line 417) | public static native void nativeResume();
method onNativeDropFile (line 418) | public static native void onNativeDropFile(String filename);
method onNativeResize (line 419) | public static native void onNativeResize(int x, int y, int format, flo...
method onNativePadDown (line 420) | public static native int onNativePadDown(int device_id, int keycode);
method onNativePadUp (line 421) | public static native int onNativePadUp(int device_id, int keycode);
method onNativeJoy (line 422) | public static native void onNativeJoy(int device_id, int axis,
method onNativeHat (line 424) | public static native void onNativeHat(int device_id, int hat_id,
method onNativeKeyDown (line 426) | public static native void onNativeKeyDown(int keycode);
method onNativeKeyUp (line 427) | public static native void onNativeKeyUp(int keycode);
method onNativeKeyboardFocusLost (line 428) | public static native void onNativeKeyboardFocusLost();
method onNativeMouse (line 429) | public static native void onNativeMouse(int button, int action, float ...
method onNativeTouch (line 430) | public static native void onNativeTouch(int touchDevId, int pointerFin...
method onNativeAccel (line 433) | public static native void onNativeAccel(float x, float y, float z);
method onNativeSurfaceChanged (line 434) | public static native void onNativeSurfaceChanged();
method onNativeSurfaceDestroyed (line 435) | public static native void onNativeSurfaceDestroyed();
method nativeAddJoystick (line 436) | public static native int nativeAddJoystick(int device_id, String name,
method nativeRemoveJoystick (line 439) | public static native int nativeRemoveJoystick(int device_id);
method nativeGetHint (line 440) | public static native String nativeGetHint(String name);
method setActivityTitle (line 445) | public static boolean setActivityTitle(String title) {
method sendMessage (line 453) | public static boolean sendMessage(int command, int param) {
method getContext (line 460) | public static Context getContext() {
method getSystemServiceFromUiThread (line 468) | public Object getSystemServiceFromUiThread(final String name) {
class ShowTextInputTask (line 493) | static class ShowTextInputTask implements Runnable {
method ShowTextInputTask (line 503) | public ShowTextInputTask(int x, int y, int w, int h) {
method run (line 510) | @Override
method showTextInput (line 535) | public static boolean showTextInput(int x, int y, int w, int h) {
method getNativeSurface (line 543) | public static Surface getNativeSurface() {
method audioOpen (line 552) | public static int audioOpen(int sampleRate, boolean is16Bit, boolean i...
method audioWriteShortBuffer (line 589) | public static void audioWriteShortBuffer(short[] buffer) {
method audioWriteByteBuffer (line 610) | public static void audioWriteByteBuffer(byte[] buffer) {
method captureOpen (line 631) | public static int captureOpen(int sampleRate, boolean is16Bit, boolean...
method captureReadShortBuffer (line 664) | public static int captureReadShortBuffer(short[] buffer, boolean block...
method captureReadByteBuffer (line 671) | public static int captureReadByteBuffer(byte[] buffer, boolean blockin...
method audioClose (line 679) | public static void audioClose() {
method captureClose (line 688) | public static void captureClose() {
method inputGetInputDeviceIds (line 703) | public static int[] inputGetInputDeviceIds(int sources) {
method handleJoystickMotionEvent (line 717) | public static boolean handleJoystickMotionEvent(MotionEvent event) {
method pollInputDevices (line 724) | public static void pollInputDevices() {
method isDeviceSDLJoystick (line 731) | public static boolean isDeviceSDLJoystick(int deviceId) {
method openAPKExpansionInputStream (line 758) | public InputStream openAPKExpansionInputStream(String fileName) throws...
method messageboxShowMessageBox (line 833) | public int messageboxShowMessageBox(
method onCreateDialog (line 886) | @Override
class SDLMain (line 1024) | class SDLMain implements Runnable {
method run (line 1025) | @Override
class SDLSurface (line 1041) | class SDLSurface extends SurfaceView implements SurfaceHolder.Callback,
method SDLSurface (line 1052) | public SDLSurface(Context context) {
method handlePause (line 1074) | public void handlePause() {
method handleResume (line 1078) | public void handleResume() {
method getNativeSurface (line 1087) | public Surface getNativeSurface() {
method surfaceCreated (line 1092) | @Override
method surfaceDestroyed (line 1099) | @Override
method surfaceChanged (line 1109) | @Override
method onKey (line 1238) | @Override
method onTouch (line 1291) | @Override
method enableSensor (line 1378) | public void enableSensor(int sensortype, boolean enabled) {
method onAccuracyChanged (line 1390) | @Override
method onSensorChanged (line 1395) | @Override
class DummyEdit (line 1427) | class DummyEdit extends View implements View.OnKeyListener {
method DummyEdit (line 1430) | public DummyEdit(Context context) {
method onCheckIsTextEditor (line 1437) | @Override
method onKey (line 1442) | @Override
method onKeyPreIme (line 1465) | @Override
method onCreateInputConnection (line 1481) | @Override
class SDLInputConnection (line 1493) | class SDLInputConnection extends BaseInputConnection {
method SDLInputConnection (line 1495) | public SDLInputConnection(View targetView, boolean fullEditor) {
method sendKeyEvent (line 1500) | @Override
method commitText (line 1522) | @Override
method setComposingText (line 1530) | @Override
method nativeCommitText (line 1538) | public native void nativeCommitText(String text, int newCursorPosition);
method nativeSetComposingText (line 1540) | public native void nativeSetComposingText(String text, int newCursorPo...
method deleteSurroundingText (line 1542) | @Override
class SDLJoystickHandler (line 1556) | class SDLJoystickHandler {
method handleMotionEvent (line 1563) | public boolean handleMotionEvent(MotionEvent event) {
method pollInputDevices (line 1570) | public void pollInputDevices() {
class SDLJoystickHandler_API12 (line 1575) | class SDLJoystickHandler_API12 extends SDLJoystickHandler {
class SDLJoystick (line 1577) | static class SDLJoystick {
class RangeComparator (line 1583) | static class RangeComparator implements Comparator<InputDevice.MotionR...
method compare (line 1584) | @Override
method SDLJoystickHandler_API12 (line 1592) | public SDLJoystickHandler_API12() {
method pollInputDevices (line 1597) | @Override
method getJoystick (line 1662) | protected SDLJoystick getJoystick(int device_id) {
method handleMotionEvent (line 1671) | @Override
class SDLGenericMotionListener_API12 (line 1701) | class SDLGenericMotionListener_API12 implements View.OnGenericMotionList...
method onGenericMotion (line 1703) | @Override
FILE: app/src/main/lib/catch2/catch.hpp
type Catch (line 95) | namespace Catch {
type CaseSensitive (line 419) | struct CaseSensitive { enum Choice {
type Choice (line 419) | enum Choice {
class NonCopyable (line 424) | class NonCopyable {
method NonCopyable (line 425) | NonCopyable( NonCopyable const& ) = delete;
method NonCopyable (line 426) | NonCopyable( NonCopyable && ) = delete;
method NonCopyable (line 427) | NonCopyable& operator = ( NonCopyable const& ) = delete;
method NonCopyable (line 428) | NonCopyable& operator = ( NonCopyable && ) = delete;
type SourceLineInfo (line 435) | struct SourceLineInfo {
method SourceLineInfo (line 437) | SourceLineInfo() = delete;
method SourceLineInfo (line 438) | SourceLineInfo( char const* _file, std::size_t _line ) noexcept
method SourceLineInfo (line 443) | SourceLineInfo( SourceLineInfo const& other ) = default;
method SourceLineInfo (line 444) | SourceLineInfo& operator = ( SourceLineInfo const& ) = default;
method SourceLineInfo (line 445) | SourceLineInfo( SourceLineInfo&& ) noexcept = default;
method SourceLineInfo (line 446) | SourceLineInfo& operator = ( SourceLineInfo&& ) noexcept = default;
type StreamEndStop (line 467) | struct StreamEndStop {
function T (line 471) | T const& operator + ( T const& value, StreamEndStop ) {
type RegistrarForTagAliases (line 482) | struct RegistrarForTagAliases {
class TestSpec (line 502) | class TestSpec
type Pattern (line 4871) | struct Pattern {
class NamePattern (line 4877) | class NamePattern : public Pattern {
class TagPattern (line 4886) | class TagPattern : public Pattern {
class ExcludedPattern (line 4895) | class ExcludedPattern : public Pattern {
type Filter (line 4904) | struct Filter {
type ITestInvoker (line 504) | struct ITestInvoker {
class TestCase (line 509) | class TestCase
type IConfig (line 510) | struct IConfig
type ITestCaseRegistry (line 512) | struct ITestCaseRegistry {
class StringRef (line 540) | class StringRef {
method StringRef (line 557) | StringRef() noexcept
method StringRef (line 561) | StringRef( StringRef const& other ) noexcept
method StringRef (line 566) | StringRef( StringRef&& other ) noexcept
method StringRef (line 576) | StringRef( char const* rawChars, size_type size ) noexcept
method StringRef (line 581) | StringRef( std::string const& stdString ) noexcept
method empty (line 609) | auto empty() const noexcept -> bool {
method size (line 612) | auto size() const noexcept -> size_type {
type is_unique (line 667) | struct is_unique : std::true_type{}
type always_false (line 902) | struct always_false : std::false_type {}
type true_given (line 904) | struct true_given : std::true_type {}
type is_callable_tester (line 905) | struct is_callable_tester {
type is_callable (line 913) | struct is_callable
class TestInvokerAsMethod (line 928) | class TestInvokerAsMethod : public ITestInvoker {
method TestInvokerAsMethod (line 931) | TestInvokerAsMethod( void (C::*testAsMethod)() ) noexcept : m_testAs...
method invoke (line 933) | void invoke() const override {
function makeTestInvoker (line 942) | auto makeTestInvoker( void (C::*testAsMethod)() ) noexcept -> ITestInv...
type NameAndTags (line 946) | struct NameAndTags {
type AutoReg (line 952) | struct AutoReg : NonCopyable {
type ResultWas (line 1307) | struct ResultWas { enum OfType {
type OfType (line 1307) | enum OfType {
type ResultDisposition (line 1331) | struct ResultDisposition { enum Flags {
type Flags (line 1331) | enum Flags {
function isFalseTest (line 1342) | inline bool isFalseTest( int flags ) { return ( flags & ResultDisposit...
type AssertionInfo (line 1350) | struct AssertionInfo
class StringRef (line 1385) | class StringRef
method StringRef (line 557) | StringRef() noexcept
method StringRef (line 561) | StringRef( StringRef const& other ) noexcept
method StringRef (line 566) | StringRef( StringRef&& other ) noexcept
method StringRef (line 576) | StringRef( char const* rawChars, size_type size ) noexcept
method StringRef (line 581) | StringRef( std::string const& stdString ) noexcept
method empty (line 609) | auto empty() const noexcept -> bool {
method size (line 612) | auto size() const noexcept -> size_type {
type IStream (line 1387) | struct IStream {
class ReusableStringStream (line 1394) | class ReusableStringStream {
method get (line 1408) | auto get() -> std::ostream& { return *m_oss; }
type Detail (line 1419) | namespace Detail {
type EnumInfo (line 1420) | struct EnumInfo {
function rawMemoryToString (line 1512) | std::string rawMemoryToString( const T& object ) {
class IsStreamInsertable (line 1517) | class IsStreamInsertable {
function convertUnstreamable (line 1533) | typename std::enable_if<
function convertUnstreamable (line 1539) | typename std::enable_if<
function convertUnstreamable (line 1546) | typename std::enable_if<
function stringify (line 1597) | std::string stringify(const T& e) {
function convertUnknownEnumToString (line 1602) | std::string convertUnknownEnumToString( E e ) {
function rangeToString (line 1776) | std::string rangeToString(InputIterator first, InputIterator last) {
function stringify (line 1806) | inline std::string stringify( NSString* nsstring ) {
type TupleElementPrinter (line 1874) | struct TupleElementPrinter {
method print (line 1875) | static void print(const Tuple& tuple, std::ostream& os) {
type TupleElementPrinter<Tuple, N, false> (line 1886) | struct TupleElementPrinter<Tuple, N, false> {
method print (line 1887) | static void print(const Tuple&, std::ostream&) {}
class Approx (line 2998) | class Approx {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
function Approx (line 7499) | Approx Approx::custom() {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
function Approx (line 7503) | Approx Approx::operator-() const {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
class EnumValuesRegistry (line 10112) | class EnumValuesRegistry : public IMutableEnumValuesRegistry {
function parseEnums (line 10136) | std::vector<std::string> parseEnums( StringRef enums ) {
function StringRef (line 10149) | StringRef EnumInfo::lookup( int value ) const {
function makeEnumInfo (line 10157) | std::unique_ptr<EnumInfo> makeEnumInfo( StringRef enumName, StringRe...
function EnumInfo (line 10171) | EnumInfo const& EnumValuesRegistry::registerEnum( StringRef enumName...
class StreamBufImpl (line 12900) | class StreamBufImpl : public std::streambuf {
method StreamBufImpl (line 12905) | StreamBufImpl() {
method overflow (line 12914) | int overflow( int c ) override {
method sync (line 12926) | int sync() override {
type OutputDebugWriter (line 12937) | struct OutputDebugWriter {
class FileStream (line 12946) | class FileStream : public IStream {
method FileStream (line 12949) | FileStream( StringRef filename ) {
class CoutStream (line 12962) | class CoutStream : public IStream {
method CoutStream (line 12967) | CoutStream() : m_os( Catch::cout().rdbuf() ) {}
class DebugOutStream (line 12976) | class DebugOutStream : public IStream {
method DebugOutStream (line 12980) | DebugOutStream()
type Endianness (line 14094) | struct Endianness {
type Arch (line 14095) | enum Arch { Big, Little }
method Arch (line 14097) | static Arch which() {
function rawMemoryToString (line 14109) | std::string rawMemoryToString( const void *object, std::size_t size ) {
type IMutableEnumValuesRegistry (line 1430) | struct IMutableEnumValuesRegistry {
type Detail (line 1505) | namespace Detail {
type EnumInfo (line 1420) | struct EnumInfo {
function rawMemoryToString (line 1512) | std::string rawMemoryToString( const T& object ) {
class IsStreamInsertable (line 1517) | class IsStreamInsertable {
function convertUnstreamable (line 1533) | typename std::enable_if<
function convertUnstreamable (line 1539) | typename std::enable_if<
function convertUnstreamable (line 1546) | typename std::enable_if<
function stringify (line 1597) | std::string stringify(const T& e) {
function convertUnknownEnumToString (line 1602) | std::string convertUnknownEnumToString( E e ) {
function rangeToString (line 1776) | std::string rangeToString(InputIterator first, InputIterator last) {
function stringify (line 1806) | inline std::string stringify( NSString* nsstring ) {
type TupleElementPrinter (line 1874) | struct TupleElementPrinter {
method print (line 1875) | static void print(const Tuple& tuple, std::ostream& os) {
type TupleElementPrinter<Tuple, N, false> (line 1886) | struct TupleElementPrinter<Tuple, N, false> {
method print (line 1887) | static void print(const Tuple&, std::ostream&) {}
class Approx (line 2998) | class Approx {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
function Approx (line 7499) | Approx Approx::custom() {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
function Approx (line 7503) | Approx Approx::operator-() const {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
class EnumValuesRegistry (line 10112) | class EnumValuesRegistry : public IMutableEnumValuesRegistry {
function parseEnums (line 10136) | std::vector<std::string> parseEnums( StringRef enums ) {
function StringRef (line 10149) | StringRef EnumInfo::lookup( int value ) const {
function makeEnumInfo (line 10157) | std::unique_ptr<EnumInfo> makeEnumInfo( StringRef enumName, StringRe...
function EnumInfo (line 10171) | EnumInfo const& EnumValuesRegistry::registerEnum( StringRef enumName...
class StreamBufImpl (line 12900) | class StreamBufImpl : public std::streambuf {
method StreamBufImpl (line 12905) | StreamBufImpl() {
method overflow (line 12914) | int overflow( int c ) override {
method sync (line 12926) | int sync() override {
type OutputDebugWriter (line 12937) | struct OutputDebugWriter {
class FileStream (line 12946) | class FileStream : public IStream {
method FileStream (line 12949) | FileStream( StringRef filename ) {
class CoutStream (line 12962) | class CoutStream : public IStream {
method CoutStream (line 12967) | CoutStream() : m_os( Catch::cout().rdbuf() ) {}
class DebugOutStream (line 12976) | class DebugOutStream : public IStream {
method DebugOutStream (line 12980) | DebugOutStream()
type Endianness (line 14094) | struct Endianness {
type Arch (line 14095) | enum Arch { Big, Little }
method Arch (line 14097) | static Arch which() {
function rawMemoryToString (line 14109) | std::string rawMemoryToString( const void *object, std::size_t size ) {
type StringMaker (line 1568) | struct StringMaker {
method convert (line 1570) | static
method convert (line 1581) | static
type Detail (line 1592) | namespace Detail {
type EnumInfo (line 1420) | struct EnumInfo {
function rawMemoryToString (line 1512) | std::string rawMemoryToString( const T& object ) {
class IsStreamInsertable (line 1517) | class IsStreamInsertable {
function convertUnstreamable (line 1533) | typename std::enable_if<
function convertUnstreamable (line 1539) | typename std::enable_if<
function convertUnstreamable (line 1546) | typename std::enable_if<
function stringify (line 1597) | std::string stringify(const T& e) {
function convertUnknownEnumToString (line 1602) | std::string convertUnknownEnumToString( E e ) {
function rangeToString (line 1776) | std::string rangeToString(InputIterator first, InputIterator last) {
function stringify (line 1806) | inline std::string stringify( NSString* nsstring ) {
type TupleElementPrinter (line 1874) | struct TupleElementPrinter {
method print (line 1875) | static void print(const Tuple& tuple, std::ostream& os) {
type TupleElementPrinter<Tuple, N, false> (line 1886) | struct TupleElementPrinter<Tuple, N, false> {
method print (line 1887) | static void print(const Tuple&, std::ostream&) {}
class Approx (line 2998) | class Approx {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
function Approx (line 7499) | Approx Approx::custom() {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
function Approx (line 7503) | Approx Approx::operator-() const {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
class EnumValuesRegistry (line 10112) | class EnumValuesRegistry : public IMutableEnumValuesRegistry {
function parseEnums (line 10136) | std::vector<std::string> parseEnums( StringRef enums ) {
function StringRef (line 10149) | StringRef EnumInfo::lookup( int value ) const {
function makeEnumInfo (line 10157) | std::unique_ptr<EnumInfo> makeEnumInfo( StringRef enumName, StringRe...
function EnumInfo (line 10171) | EnumInfo const& EnumValuesRegistry::registerEnum( StringRef enumName...
class StreamBufImpl (line 12900) | class StreamBufImpl : public std::streambuf {
method StreamBufImpl (line 12905) | StreamBufImpl() {
method overflow (line 12914) | int overflow( int c ) override {
method sync (line 12926) | int sync() override {
type OutputDebugWriter (line 12937) | struct OutputDebugWriter {
class FileStream (line 12946) | class FileStream : public IStream {
method FileStream (line 12949) | FileStream( StringRef filename ) {
class CoutStream (line 12962) | class CoutStream : public IStream {
method CoutStream (line 12967) | CoutStream() : m_os( Catch::cout().rdbuf() ) {}
class DebugOutStream (line 12976) | class DebugOutStream : public IStream {
method DebugOutStream (line 12980) | DebugOutStream()
type Endianness (line 14094) | struct Endianness {
type Arch (line 14095) | enum Arch { Big, Little }
method Arch (line 14097) | static Arch which() {
function rawMemoryToString (line 14109) | std::string rawMemoryToString( const void *object, std::size_t size ) {
type StringMaker<std::string> (line 1618) | struct StringMaker<std::string> {
type StringMaker<std::string_view> (line 1624) | struct StringMaker<std::string_view> {
type StringMaker<char const *> (line 1630) | struct StringMaker<char const *> {
type StringMaker<char *> (line 1634) | struct StringMaker<char *> {
type StringMaker<std::wstring> (line 1640) | struct StringMaker<std::wstring> {
type StringMaker<std::wstring_view> (line 1646) | struct StringMaker<std::wstring_view> {
type StringMaker<wchar_t const *> (line 1652) | struct StringMaker<wchar_t const *> {
type StringMaker<wchar_t *> (line 1656) | struct StringMaker<wchar_t *> {
type StringMaker<char[SZ]> (line 1664) | struct StringMaker<char[SZ]> {
method convert (line 1665) | static std::string convert(char const* str) {
type StringMaker<signed char[SZ]> (line 1670) | struct StringMaker<signed char[SZ]> {
method convert (line 1671) | static std::string convert(signed char const* str) {
type StringMaker<unsigned char[SZ]> (line 1676) | struct StringMaker<unsigned char[SZ]> {
method convert (line 1677) | static std::string convert(unsigned char const* str) {
type StringMaker<int> (line 1683) | struct StringMaker<int> {
type StringMaker<long> (line 1687) | struct StringMaker<long> {
type StringMaker<long long> (line 1691) | struct StringMaker<long long> {
type StringMaker<unsigned int> (line 1695) | struct StringMaker<unsigned int> {
type StringMaker<unsigned long> (line 1699) | struct StringMaker<unsigned long> {
type StringMaker<unsigned long long> (line 1703) | struct StringMaker<unsigned long long> {
type StringMaker<bool> (line 1708) | struct StringMaker<bool> {
type StringMaker<char> (line 1713) | struct StringMaker<char> {
type StringMaker<signed char> (line 1717) | struct StringMaker<signed char> {
type StringMaker<unsigned char> (line 1721) | struct StringMaker<unsigned char> {
type StringMaker<std::nullptr_t> (line 1726) | struct StringMaker<std::nullptr_t> {
type StringMaker<float> (line 1731) | struct StringMaker<float> {
type StringMaker<double> (line 1737) | struct StringMaker<double> {
type StringMaker<T*> (line 1743) | struct StringMaker<T*> {
method convert (line 1745) | static std::string convert(U* p) {
type StringMaker<R C::*> (line 1755) | struct StringMaker<R C::*> {
method convert (line 1756) | static std::string convert(R C::* p) {
type StringMaker<T^> (line 1767) | struct StringMaker<T^> {
method convert (line 1768) | static std::string convert( T^ ref ) {
type Detail (line 1774) | namespace Detail {
type EnumInfo (line 1420) | struct EnumInfo {
function rawMemoryToString (line 1512) | std::string rawMemoryToString( const T& object ) {
class IsStreamInsertable (line 1517) | class IsStreamInsertable {
function convertUnstreamable (line 1533) | typename std::enable_if<
function convertUnstreamable (line 1539) | typename std::enable_if<
function convertUnstreamable (line 1546) | typename std::enable_if<
function stringify (line 1597) | std::string stringify(const T& e) {
function convertUnknownEnumToString (line 1602) | std::string convertUnknownEnumToString( E e ) {
function rangeToString (line 1776) | std::string rangeToString(InputIterator first, InputIterator last) {
function stringify (line 1806) | inline std::string stringify( NSString* nsstring ) {
type TupleElementPrinter (line 1874) | struct TupleElementPrinter {
method print (line 1875) | static void print(const Tuple& tuple, std::ostream& os) {
type TupleElementPrinter<Tuple, N, false> (line 1886) | struct TupleElementPrinter<Tuple, N, false> {
method print (line 1887) | static void print(const Tuple&, std::ostream&) {}
class Approx (line 2998) | class Approx {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
function Approx (line 7499) | Approx Approx::custom() {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
function Approx (line 7503) | Approx Approx::operator-() const {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
class EnumValuesRegistry (line 10112) | class EnumValuesRegistry : public IMutableEnumValuesRegistry {
function parseEnums (line 10136) | std::vector<std::string> parseEnums( StringRef enums ) {
function StringRef (line 10149) | StringRef EnumInfo::lookup( int value ) const {
function makeEnumInfo (line 10157) | std::unique_ptr<EnumInfo> makeEnumInfo( StringRef enumName, StringRe...
function EnumInfo (line 10171) | EnumInfo const& EnumValuesRegistry::registerEnum( StringRef enumName...
class StreamBufImpl (line 12900) | class StreamBufImpl : public std::streambuf {
method StreamBufImpl (line 12905) | StreamBufImpl() {
method overflow (line 12914) | int overflow( int c ) override {
method sync (line 12926) | int sync() override {
type OutputDebugWriter (line 12937) | struct OutputDebugWriter {
class FileStream (line 12946) | class FileStream : public IStream {
method FileStream (line 12949) | FileStream( StringRef filename ) {
class CoutStream (line 12962) | class CoutStream : public IStream {
method CoutStream (line 12967) | CoutStream() : m_os( Catch::cout().rdbuf() ) {}
class DebugOutStream (line 12976) | class DebugOutStream : public IStream {
method DebugOutStream (line 12980) | DebugOutStream()
type Endianness (line 14094) | struct Endianness {
type Arch (line 14095) | enum Arch { Big, Little }
method Arch (line 14097) | static Arch which() {
function rawMemoryToString (line 14109) | std::string rawMemoryToString( const void *object, std::size_t size ) {
type StringMaker<NSString*> (line 1791) | struct StringMaker<NSString*> {
method convert (line 1792) | static std::string convert(NSString * nsstring) {
type StringMaker<NSObject*> (line 1799) | struct StringMaker<NSObject*> {
method convert (line 1800) | static std::string convert(NSObject* nsObject) {
type Detail (line 1805) | namespace Detail {
type EnumInfo (line 1420) | struct EnumInfo {
function rawMemoryToString (line 1512) | std::string rawMemoryToString( const T& object ) {
class IsStreamInsertable (line 1517) | class IsStreamInsertable {
function convertUnstreamable (line 1533) | typename std::enable_if<
function convertUnstreamable (line 1539) | typename std::enable_if<
function convertUnstreamable (line 1546) | typename std::enable_if<
function stringify (line 1597) | std::string stringify(const T& e) {
function convertUnknownEnumToString (line 1602) | std::string convertUnknownEnumToString( E e ) {
function rangeToString (line 1776) | std::string rangeToString(InputIterator first, InputIterator last) {
function stringify (line 1806) | inline std::string stringify( NSString* nsstring ) {
type TupleElementPrinter (line 1874) | struct TupleElementPrinter {
method print (line 1875) | static void print(const Tuple& tuple, std::ostream& os) {
type TupleElementPrinter<Tuple, N, false> (line 1886) | struct TupleElementPrinter<Tuple, N, false> {
method print (line 1887) | static void print(const Tuple&, std::ostream&) {}
class Approx (line 2998) | class Approx {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
function Approx (line 7499) | Approx Approx::custom() {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
function Approx (line 7503) | Approx Approx::operator-() const {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
class EnumValuesRegistry (line 10112) | class EnumValuesRegistry : public IMutableEnumValuesRegistry {
function parseEnums (line 10136) | std::vector<std::string> parseEnums( StringRef enums ) {
function StringRef (line 10149) | StringRef EnumInfo::lookup( int value ) const {
function makeEnumInfo (line 10157) | std::unique_ptr<EnumInfo> makeEnumInfo( StringRef enumName, StringRe...
function EnumInfo (line 10171) | EnumInfo const& EnumValuesRegistry::registerEnum( StringRef enumName...
class StreamBufImpl (line 12900) | class StreamBufImpl : public std::streambuf {
method StreamBufImpl (line 12905) | StreamBufImpl() {
method overflow (line 12914) | int overflow( int c ) override {
method sync (line 12926) | int sync() override {
type OutputDebugWriter (line 12937) | struct OutputDebugWriter {
class FileStream (line 12946) | class FileStream : public IStream {
method FileStream (line 12949) | FileStream( StringRef filename ) {
class CoutStream (line 12962) | class CoutStream : public IStream {
method CoutStream (line 12967) | CoutStream() : m_os( Catch::cout().rdbuf() ) {}
class DebugOutStream (line 12976) | class DebugOutStream : public IStream {
method DebugOutStream (line 12980) | DebugOutStream()
type Endianness (line 14094) | struct Endianness {
type Arch (line 14095) | enum Arch { Big, Little }
method Arch (line 14097) | static Arch which() {
function rawMemoryToString (line 14109) | std::string rawMemoryToString( const void *object, std::size_t size ) {
type StringMaker<std::pair<T1, T2> > (line 1832) | struct StringMaker<std::pair<T1, T2> > {
method convert (line 1833) | static std::string convert(const std::pair<T1, T2>& pair) {
type StringMaker<std::optional<T> > (line 1850) | struct StringMaker<std::optional<T> > {
method convert (line 1851) | static std::string convert(const std::optional<T>& optional) {
type Detail (line 1868) | namespace Detail {
type EnumInfo (line 1420) | struct EnumInfo {
function rawMemoryToString (line 1512) | std::string rawMemoryToString( const T& object ) {
class IsStreamInsertable (line 1517) | class IsStreamInsertable {
function convertUnstreamable (line 1533) | typename std::enable_if<
function convertUnstreamable (line 1539) | typename std::enable_if<
function convertUnstreamable (line 1546) | typename std::enable_if<
function stringify (line 1597) | std::string stringify(const T& e) {
function convertUnknownEnumToString (line 1602) | std::string convertUnknownEnumToString( E e ) {
function rangeToString (line 1776) | std::string rangeToString(InputIterator first, InputIterator last) {
function stringify (line 1806) | inline std::string stringify( NSString* nsstring ) {
type TupleElementPrinter (line 1874) | struct TupleElementPrinter {
method print (line 1875) | static void print(const Tuple& tuple, std::ostream& os) {
type TupleElementPrinter<Tuple, N, false> (line 1886) | struct TupleElementPrinter<Tuple, N, false> {
method print (line 1887) | static void print(const Tuple&, std::ostream&) {}
class Approx (line 2998) | class Approx {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
function Approx (line 7499) | Approx Approx::custom() {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
function Approx (line 7503) | Approx Approx::operator-() const {
method Approx (line 3016) | Approx operator()( T const& value ) {
method Approx (line 3025) | explicit Approx( T const& value ): Approx(static_cast<double>(value))
method Approx (line 3070) | Approx& epsilon( T const& newEpsilon ) {
method Approx (line 3077) | Approx& margin( T const& newMargin ) {
method Approx (line 3084) | Approx& scale( T const& newScale ) {
class EnumValuesRegistry (line 10112) | class EnumValuesRegistry : public IMutableEnumValuesRegistry {
function parseEnums (line 10136) | std::vector<std::string> parseEnums( StringRef enums ) {
function StringRef (line 10149) | StringRef EnumInfo::lookup( int value ) const {
function makeEnumInfo (line 10157) | std::unique_ptr<EnumInfo> makeEnumInfo( StringRef enumName, StringRe...
function EnumInfo (line 10171) | EnumInfo const& EnumVa
Copy disabled (too large)
Download .json
Condensed preview — 1788 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (33,930K chars).
[
{
"path": ".gradle/5.1.1/gc.properties",
"chars": 0,
"preview": ""
},
{
"path": ".gradle/buildOutputCleanup/cache.properties",
"chars": 51,
"preview": "#Tue Mar 02 01:28:27 UTC 2021\ngradle.version=5.1.1\n"
},
{
"path": ".gradle/vcs-1/gc.properties",
"chars": 0,
"preview": ""
},
{
"path": ".idea/.gitignore",
"chars": 47,
"preview": "# Default ignored files\n/shelf/\n/workspace.xml\n"
},
{
"path": ".idea/codeStyles/Project.xml",
"chars": 3309,
"preview": "<component name=\"ProjectCodeStyleConfiguration\">\n <code_scheme name=\"Project\" version=\"173\">\n <codeStyleSettings lan"
},
{
"path": ".idea/compiler.xml",
"chars": 169,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"CompilerConfiguration\">\n <bytecodeTar"
},
{
"path": ".idea/encodings.xml",
"chars": 159,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"Encoding\">\n <file url=\"PROJECT\" chars"
},
{
"path": ".idea/gradle.xml",
"chars": 931,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"GradleMigrationSettings\" migrationVersio"
},
{
"path": ".idea/is-Engine.iml",
"chars": 971,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module external.linked.project.id=\"is-Engine\" external.linked.project.path=\"$MOD"
},
{
"path": ".idea/jarRepositories.xml",
"chars": 1037,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"RemoteRepositoriesConfiguration\">\n <r"
},
{
"path": ".idea/misc.xml",
"chars": 214,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"ProjectRootManager\" version=\"2\" language"
},
{
"path": ".idea/modules/app/is-Engine.app.iml",
"chars": 3998,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module external.linked.project.id=\":app\" external.linked.project.path=\"$MODULE_D"
},
{
"path": ".idea/modules/is-Engine.iml",
"chars": 970,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module external.linked.project.id=\"is-Engine\" external.linked.project.path=\"$MOD"
},
{
"path": ".idea/modules.xml",
"chars": 415,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"ProjectModuleManager\">\n <modules>\n "
},
{
"path": ".idea/runConfigurations.xml",
"chars": 337,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"RunConfigurationProducerService\">\n <o"
},
{
"path": ".idea/vcs.xml",
"chars": 489,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"VcsDirectoryMappings\">\n <mapping dire"
},
{
"path": "CMakeLists.txt",
"chars": 1233,
"preview": "cmake_minimum_required (VERSION 3.1) \n\nproject(isengine)\n\nset(ISENGINE_PC true) # This confirms that we are using is::En"
},
{
"path": "LICENSE.md",
"chars": 850,
"preview": "# zlib license\n\nThis software is provided 'as-is', without any express or implied warranty. In\nno event will the authors"
},
{
"path": "README.md",
"chars": 34925,
"preview": "\n----------------------------\n\n# is::Engine (Infinity Solutions::Engine) 4.0.1\nOpe"
},
{
"path": "app/CMakeLists.txt",
"chars": 2158,
"preview": "cmake_minimum_required(VERSION 3.4.1)\n\ninclude_directories(\n ${CMAKE_CURRENT_SOURCE_DIR}/../libs/SDL2/include\n\n "
},
{
"path": "app/build.gradle",
"chars": 2440,
"preview": "buildscript {\n\n repositories {\n google()\n mavenLocal()\n maven {url 'https://maven.google.com'}\n "
},
{
"path": "app/src/main/.vs/vs-sfml/v17/DocumentLayout.json",
"chars": 229,
"preview": "{\n \"Version\": 1,\n \"WorkspaceRootPath\": \"C:\\\\is-Engine\\\\app\\\\src\\\\main\\\\\",\n \"Documents\": [],\n \"DocumentGroupContainer"
},
{
"path": "app/src/main/.vscode/_keybindings.json",
"chars": 1188,
"preview": "// Place your key bindings in this file to overwrite the defaults\n[\n\t{\n\t\t\"key\": \"f8\",\n\t\t\"command\": \"-editor.action.marke"
},
{
"path": "app/src/main/.vscode/c_cpp_properties.json",
"chars": 1324,
"preview": "{\n\t\"configurations\": [\n\t\t{\n\t\t\t\"name\": \"Linux\",\n\t\t\t\"intelliSenseMode\": \"gcc-x64\",\n\t\t\t\"includePath\": [\n\t\t\t\t\"${workspaceFol"
},
{
"path": "app/src/main/.vscode/launch.json",
"chars": 1191,
"preview": "{\n\t\"version\": \"0.2.0\",\n\t\"configurations\": [\n\t\t{\n\t\t\t\"name\": \"GDB/LLDB\",\n\t\t\t\"type\": \"cppdbg\",\n\t\t\t\"request\": \"launch\",\n\t\t\t\""
},
{
"path": "app/src/main/.vscode/settings.json",
"chars": 2119,
"preview": "{\n\t\"C_Cpp.autocomplete\": \"Default\",\n\t\"C_Cpp.intelliSenseEngine\": \"Default\",\n\t\"C_Cpp.dimInactiveRegions\": false,\n\t\"C_Cpp."
},
{
"path": "app/src/main/.vscode/tasks.json",
"chars": 3670,
"preview": "{\n\t// See https://go.microsoft.com/fwlink/?LinkId=733558\n\t// for the documentation about the tasks.json format\n\t\"version"
},
{
"path": "app/src/main/AndroidManifest.xml",
"chars": 1231,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n package="
},
{
"path": "app/src/main/CMakeLists.txt",
"chars": 2610,
"preview": "cmake_minimum_required(VERSION 3.15)\nproject(isengine)\n\nset(CMAKE_CXX_STANDARD 20)\nset(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAG"
},
{
"path": "app/src/main/Makefile",
"chars": 7934,
"preview": "#---------------------------------------------------------------------------------\n.SUFFIXES:\n#-------------------------"
},
{
"path": "app/src/main/Makefile-vscode",
"chars": 16301,
"preview": ".SUFFIXES:\nSUFFIXES =\n.SUFFIXES: .c .cpp .h .hpp .rc .res .inl .o .d .asm\n\n\n#==========================================="
},
{
"path": "app/src/main/SDL2_SFML.sln",
"chars": 1411,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.14.364"
},
{
"path": "app/src/main/SDL2_SFML.vcxproj",
"chars": 10291,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msb"
},
{
"path": "app/src/main/SDL2_SFML.vcxproj.filters",
"chars": 7494,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "app/src/main/SDL2_SFML.vcxproj.user",
"chars": 163,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"Current\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "app/src/main/build.sh",
"chars": 5334,
"preview": "#!/bin/bash\n\nCMD=$1\nBUILD=$2\nVSCODE=$3\nOPTIONS=$4\n\ncwd=${PWD##*/}\n\nexport GCC_COLORS=\"error=01;31:warning=01;33:note=01;"
},
{
"path": "app/src/main/cmake/app_src.cmake",
"chars": 278,
"preview": "# game source file\nset(\n app_src\n\t\n\t# game system extended\n\t${ISENGINE_SRC_DIR}/GameSystemExtended.cpp\n\n\t# game scene"
},
{
"path": "app/src/main/cmake/isengine.cmake",
"chars": 3677,
"preview": "# box 2d source file\nset(\n\tbox2d_sources\n\t\n\t${ISENGINE_SRC_DIR}/b2BroadPhase.cpp\n\t${ISENGINE_SRC_DIR}/b2CollideCircle.cp"
},
{
"path": "app/src/main/cmake/resource.rc",
"chars": 72,
"preview": "// application icon\nMAINICON ICON DISCARDABLE \"../env/windows/icon.ico\"\n"
},
{
"path": "app/src/main/codeblocks/resource.rc",
"chars": 60,
"preview": "// application icon\nMAINICON ICON \"../env/windows/icon.ico\"\n"
},
{
"path": "app/src/main/copy_assets.cmd",
"chars": 652,
"preview": "@echo off\nsetlocal ENABLEEXTENSIONS\n\nREM Define source and destination\nset \"SOURCE=assets\"\nset \"DEST=romfs\"\n\nREM Check i"
},
{
"path": "app/src/main/cpp/GameDialog.cpp",
"chars": 6735,
"preview": "#include \"app_src/objects/widgets/GameDialog.h\"\n\nnamespace is\n{\nGameDialog::GameDialog(sf::Texture &tex, sf::Font &fnt, "
},
{
"path": "app/src/main/cpp/GameDisplay.cpp",
"chars": 30549,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2024 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/GameEngine.cpp",
"chars": 3897,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2025 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/GameFunction.cpp",
"chars": 18179,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2024 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/GameKeyData.cpp",
"chars": 14768,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2024 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/GameSlider.cpp",
"chars": 2485,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2024 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/GameSystem.cpp",
"chars": 9038,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2024 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/GameSystemExtended.cpp",
"chars": 2341,
"preview": "#include \"app_src/gamesystem_ext/GameSystemExtended.h\"\n\nnamespace is\n{\nGameSystemExtended::GameSystemExtended(sf::Render"
},
{
"path": "app/src/main/cpp/GameTime.cpp",
"chars": 3841,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2024 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/Main.hpp",
"chars": 367,
"preview": "#ifndef MAIN_HPP\n#define MAIN_HPP\n\n#ifdef __APPLE__\n\t#include \"vscode/MacOS/MacHelper.hpp\"\n\tMacHelper macHelper;\n#endif "
},
{
"path": "app/src/main/cpp/MainObject.cpp",
"chars": 18701,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2024 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/PCH.hpp",
"chars": 1107,
"preview": "#ifndef PRECOMPILED_HEADER_HPP\n#define PRECOMPILED_HEADER_HPP\n\n// Allow to use icon for Windows OS applications\n#define "
},
{
"path": "app/src/main/cpp/SDL_android_main.c",
"chars": 2533,
"preview": "#if !defined(IS_ENGINE_VS_CODE) && !defined(IS_ENGINE_SWITCH)\n#ifdef __ANDROID__\n/*\n SDL_android_main.c, placed in th"
},
{
"path": "app/src/main/cpp/TransitionEffect.cpp",
"chars": 2581,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2024 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/app_src/activity/GameActivity.h",
"chars": 1758,
"preview": "#ifndef GAMEACTIVITY_H_INCLUDED\n#define GAMEACTIVITY_H_INCLUDED\n\n#include \"../scenes/HelloScene/HelloScene.h\"\n\n// exampl"
},
{
"path": "app/src/main/cpp/app_src/config/ExtraConfig.h",
"chars": 1529,
"preview": "#ifndef EXTRACONFIG_H_INCLUDED\n#define EXTRACONFIG_H_INCLUDED\n\n// Uncomment to enable this function\n// #define IS_ENGINE"
},
{
"path": "app/src/main/cpp/app_src/config/GameConfig.h",
"chars": 7455,
"preview": "#ifndef GAMECONFIG_H_INCLUDED\n#define GAMECONFIG_H_INCLUDED\n\n#include \"ExtraConfig.h\"\n\nnamespace is\n{\n//////////////////"
},
{
"path": "app/src/main/cpp/app_src/gamesystem_ext/GameSystemExtended.h",
"chars": 1497,
"preview": "#ifndef GAMESYSTEMEXTENDED_H_INCLUDED\n#define GAMESYSTEMEXTENDED_H_INCLUDED\n\n#include \"../../isEngine/system/function/Ga"
},
{
"path": "app/src/main/cpp/app_src/language/GameLanguage.h",
"chars": 2581,
"preview": "#ifndef GAMELANGUAGE_H_INCLUDED\n#define GAMELANGUAGE_H_INCLUDED\n\n#include \"../../isEngine/system/function/GameKeyName.h"
},
{
"path": "app/src/main/cpp/app_src/levels/Level.h",
"chars": 1573,
"preview": "#ifndef LEVEL_H_INCLUDED\n#define LEVEL_H_INCLUDED\n\n/*\n * This file allows to include the level header generated by the i"
},
{
"path": "app/src/main/cpp/app_src/objects/HelloWorld.h",
"chars": 2271,
"preview": "#pragma once\n#include \"../../isEngine/system/display/GameDisplay.h\"\n\n///////////////////////////////////////////////////"
},
{
"path": "app/src/main/cpp/app_src/objects/widgets/GameDialog.h",
"chars": 2982,
"preview": "#ifndef GAMEDIALOG_H_INCLUDED\n#define GAMEDIALOG_H_INCLUDED\n\n#include <cstring>\n#include \"../../../isEngine/system/displ"
},
{
"path": "app/src/main/cpp/app_src/scenes/HelloScene/HelloScene.h",
"chars": 2797,
"preview": "#pragma once\n#include \"../../../isEngine/system/entity/Background.h\"\n#include \"../../objects/widgets/GameDialog.h\"\n#incl"
},
{
"path": "app/src/main/cpp/b2BlockAllocator.cpp",
"chars": 4896,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2Body.cpp",
"chars": 12022,
"preview": "/*\n* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2BroadPhase.cpp",
"chars": 3102,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2ChainAndCircleContact.cpp",
"chars": 2364,
"preview": "/*\n* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2ChainAndPolygonContact.cpp",
"chars": 2379,
"preview": "/*\n* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2ChainShape.cpp",
"chars": 4941,
"preview": "/*\n* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2CircleContact.cpp",
"chars": 2163,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2CircleShape.cpp",
"chars": 3075,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2CollideCircle.cpp",
"chars": 4405,
"preview": "/*\n* Copyright (c) 2007-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2CollideEdge.cpp",
"chars": 15571,
"preview": "/*\n * Copyright (c) 2007-2009 Erin Catto http://www.box2d.org\n *\n * This software is provided 'as-is', without any expre"
},
{
"path": "app/src/main/cpp/b2CollidePolygon.cpp",
"chars": 6594,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2Collision.cpp",
"chars": 6458,
"preview": "/*\n* Copyright (c) 2007-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2Contact.cpp",
"chars": 7732,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2ContactManager.cpp",
"chars": 7146,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2ContactSolver.cpp",
"chars": 22862,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2Distance.cpp",
"chars": 13292,
"preview": "/*\n* Copyright (c) 2007-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2DistanceJoint.cpp",
"chars": 7345,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2Draw.cpp",
"chars": 1234,
"preview": "/*\n* Copyright (c) 2011 Erin Catto http://box2d.org\n*\n* This software is provided 'as-is', without any express or implie"
},
{
"path": "app/src/main/cpp/b2DynamicTree.cpp",
"chars": 16906,
"preview": "/*\n* Copyright (c) 2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express or im"
},
{
"path": "app/src/main/cpp/b2EdgeAndCircleContact.cpp",
"chars": 2073,
"preview": "/*\n* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2EdgeAndPolygonContact.cpp",
"chars": 2087,
"preview": "/*\n* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2EdgeShape.cpp",
"chars": 3340,
"preview": "/*\n* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2Fixture.cpp",
"chars": 8419,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2FrictionJoint.cpp",
"chars": 6944,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2GearJoint.cpp",
"chars": 11685,
"preview": "/*\n* Copyright (c) 2007-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2Island.cpp",
"chars": 16763,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2Joint.cpp",
"chars": 5602,
"preview": "/*\n* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2Math.cpp",
"chars": 2738,
"preview": "/*\n* Copyright (c) 2007-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2MotorJoint.cpp",
"chars": 8138,
"preview": "/*\n* Copyright (c) 2006-2012 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2MouseJoint.cpp",
"chars": 5523,
"preview": "/*\n* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2PolygonAndCircleContact.cpp",
"chars": 2115,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2PolygonContact.cpp",
"chars": 2182,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2PolygonShape.cpp",
"chars": 10569,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2PrismaticJoint.cpp",
"chars": 16900,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2PulleyJoint.cpp",
"chars": 8863,
"preview": "/*\n* Copyright (c) 2007 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express or im"
},
{
"path": "app/src/main/cpp/b2RevoluteJoint.cpp",
"chars": 13138,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2Rope.cpp",
"chars": 4938,
"preview": "/*\n* Copyright (c) 2011 Erin Catto http://box2d.org\n*\n* This software is provided 'as-is', without any express or implie"
},
{
"path": "app/src/main/cpp/b2RopeJoint.cpp",
"chars": 6413,
"preview": "/*\n* Copyright (c) 2007-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2Settings.cpp",
"chars": 1374,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2StackAllocator.cpp",
"chars": 2083,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2TimeOfImpact.cpp",
"chars": 11773,
"preview": "/*\n* Copyright (c) 2007-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2Timer.cpp",
"chars": 2311,
"preview": "/*\n* Copyright (c) 2011 Erin Catto http://box2d.org\n*\n* This software is provided 'as-is', without any express or implie"
},
{
"path": "app/src/main/cpp/b2WeldJoint.cpp",
"chars": 8727,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2WheelJoint.cpp",
"chars": 10622,
"preview": "/*\n* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2World.cpp",
"chars": 29958,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/b2WorldCallbacks.cpp",
"chars": 1631,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/basicSFMLmain.cpp",
"chars": 6479,
"preview": "#include \"isEngine/core/GameEngine.h\"\n\nnamespace is\n{\nbool GameEngine::basicSFMLmain()\n{\n///////////////////////////////"
},
{
"path": "app/src/main/cpp/isEngine/core/ActivityController.h",
"chars": 1742,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2025 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/isEngine/core/GameEngine.h",
"chars": 2628,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2025 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Box2D.h",
"chars": 2276,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/Shapes/b2ChainShape.h",
"chars": 3401,
"preview": "/*\n* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/Shapes/b2CircleShape.h",
"chars": 2512,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/Shapes/b2EdgeShape.h",
"chars": 2325,
"preview": "/*\n* Copyright (c) 2006-2010 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/Shapes/b2PolygonShape.h",
"chars": 3460,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/Shapes/b2Shape.h",
"chars": 3483,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/b2BroadPhase.h",
"chars": 6921,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/b2Collision.h",
"chars": 9067,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/b2Distance.h",
"chars": 3772,
"preview": "\n/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/b2DynamicTree.h",
"chars": 7659,
"preview": "/*\n* Copyright (c) 2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express or im"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Collision/b2TimeOfImpact.h",
"chars": 1844,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Common/b2BlockAllocator.h",
"chars": 1943,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Common/b2Draw.h",
"chars": 2778,
"preview": "/*\n* Copyright (c) 2011 Erin Catto http://box2d.org\n*\n* This software is provided 'as-is', without any express or implie"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Common/b2GrowableStack.h",
"chars": 1942,
"preview": "/*\n* Copyright (c) 2010 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express or im"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Common/b2Math.h",
"chars": 16398,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Common/b2Settings.h",
"chars": 5265,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Common/b2StackAllocator.h",
"chars": 1659,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Common/b2Timer.h",
"chars": 1437,
"preview": "/*\n* Copyright (c) 2011 Erin Catto http://box2d.org\n*\n* This software is provided 'as-is', without any express or implie"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h",
"chars": 1515,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h",
"chars": 1520,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2CircleContact.h",
"chars": 1443,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2Contact.h",
"chars": 9298,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2ContactSolver.h",
"chars": 2406,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h",
"chars": 1482,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h",
"chars": 1487,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h",
"chars": 1488,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Contacts/b2PolygonContact.h",
"chars": 1448,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2DistanceJoint.h",
"chars": 4565,
"preview": "/*\n* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2FrictionJoint.h",
"chars": 3267,
"preview": "/*\n* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2GearJoint.h",
"chars": 3441,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2Joint.h",
"chars": 5507,
"preview": "/*\n* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2MotorJoint.h",
"chars": 3672,
"preview": "/*\n* Copyright (c) 2006-2012 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2MouseJoint.h",
"chars": 3666,
"preview": "/*\n* Copyright (c) 2006-2007 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2PrismaticJoint.h",
"chars": 5879,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2PulleyJoint.h",
"chars": 4418,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2RevoluteJoint.h",
"chars": 6163,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2RopeJoint.h",
"chars": 3401,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2WeldJoint.h",
"chars": 3740,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/Joints/b2WheelJoint.h",
"chars": 5889,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/b2Body.h",
"chars": 22726,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/b2ContactManager.h",
"chars": 1521,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/b2Fixture.h",
"chars": 9213,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/b2Island.h",
"chars": 2412,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/b2TimeStep.h",
"chars": 1733,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/b2World.h",
"chars": 10807,
"preview": "/*\n* Copyright (c) 2006-2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Dynamics/b2WorldCallbacks.h",
"chars": 5825,
"preview": "/*\n* Copyright (c) 2006-2009 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/Box2D/Rope/b2Rope.h",
"chars": 1968,
"preview": "/*\n* Copyright (c) 2011 Erin Catto http://www.box2d.org\n*\n* This software is provided 'as-is', without any express or im"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/Config.hpp",
"chars": 1922,
"preview": "/*********************************************************************\nMatt Marchant 2016 - 2020\nhttp://trederia.blogspo"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/FreeFuncs.cpp",
"chars": 3738,
"preview": "/*********************************************************************\nMatt Marchant 2016\nhttp://trederia.blogspot.com\n\n"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/FreeFuncs.hpp",
"chars": 6512,
"preview": "/*********************************************************************\nMatt Marchant 2016\nhttp://trederia.blogspot.com\n\n"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/ImageLayer.cpp",
"chars": 3000,
"preview": "/*********************************************************************\nMatt Marchant 2016\nhttp://trederia.blogspot.com\n\n"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/ImageLayer.hpp",
"chars": 2786,
"preview": "/*********************************************************************\nMatt Marchant 2016 - 2019\nhttp://trederia.blogspo"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/Layer.hpp",
"chars": 4684,
"preview": "/*********************************************************************\nMatt Marchant 2016 - 2019\nhttp://trederia.blogspo"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/LayerGroup.cpp",
"chars": 3178,
"preview": "/*********************************************************************\nGrant Gangi 2019\n\ntmxlite - Zlib license.\n\nThis s"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/LayerGroup.hpp",
"chars": 2451,
"preview": "/*********************************************************************\nGrant Gangi 2019\n\ntmxlite - Zlib license.\n\nThis s"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/Map.cpp",
"chars": 11068,
"preview": "/*********************************************************************\nMatt Marchant 2016\nhttp://trederia.blogspot.com\n\n"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/Map.hpp",
"chars": 9019,
"preview": "/*********************************************************************\nMatt Marchant 2016\nhttp://trederia.blogspot.com\n\n"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/Object.cpp",
"chars": 11168,
"preview": "/*********************************************************************\nMatt Marchant 2016\nhttp://trederia.blogspot.com\n\n"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/Object.hpp",
"chars": 6261,
"preview": "/*********************************************************************\nMatt Marchant 2016 - 2020\nhttp://trederia.blogspo"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/ObjectGroup.cpp",
"chars": 2666,
"preview": "/*********************************************************************\nMatt Marchant 2016\nhttp://trederia.blogspot.com\n\n"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/ObjectGroup.hpp",
"chars": 2838,
"preview": "/*********************************************************************\nMatt Marchant 2016 - 2019\nhttp://trederia.blogspo"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/Property.cpp",
"chars": 2812,
"preview": "/*********************************************************************\nMatt Marchant 2016\nhttp://trederia.blogspot.com\n\n"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/Property.hpp",
"chars": 3673,
"preview": "/*********************************************************************\nMatt Marchant 2016\nhttp://trederia.blogspot.com\n\n"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/TileLayer.cpp",
"chars": 8300,
"preview": "/*********************************************************************\nMatt Marchant 2016\nhttp://trederia.blogspot.com\n\n"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/TileLayer.hpp",
"chars": 3385,
"preview": "/*********************************************************************\nMatt Marchant 2016 - 2019\nhttp://trederia.blogspo"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/Tileset.cpp",
"chars": 12065,
"preview": "/*********************************************************************\nMatt Marchant 2016\nhttp://trederia.blogspot.com\n\n"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/Tileset.hpp",
"chars": 8372,
"preview": "/*********************************************************************\nMatt Marchant 2016\nhttp://trederia.blogspot.com\n\n"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/Types.hpp",
"chars": 3759,
"preview": "/*********************************************************************\nMatt Marchant 2016\nhttp://trederia.blogspot.com\n\n"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/Types.inl",
"chars": 2526,
"preview": "/*********************************************************************\nMatt Marchant 2016-2017\nhttp://trederia.blogspot."
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/detail/Android.hpp",
"chars": 1431,
"preview": "/*********************************************************************\nMatt Marchant 2016\nhttp://trederia.blogspot.com\n\n"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/detail/Log.hpp",
"chars": 6002,
"preview": "/*********************************************************************\nMatt Marchant 2016\nhttp://trederia.blogspot.com\n\n"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/detail/pugiconfig.hpp",
"chars": 2822,
"preview": "/**\n * pugixml parser - version 1.7\n * --------------------------------------------------------\n * Copyright (C) 2006-20"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/detail/pugixml.LICENSE",
"chars": 1508,
"preview": "/**\n * pugixml parser - version 1.7\n * --------------------------------------------------------\n * Copyright (C) 2006-20"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/detail/pugixml.cpp",
"chars": 320268,
"preview": "/**\n * pugixml parser - version 1.7\n * --------------------------------------------------------\n * Copyright (C) 2006-20"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/detail/pugixml.hpp",
"chars": 49761,
"preview": "/**\n * pugixml parser - version 1.7\n * --------------------------------------------------------\n * Copyright (C) 2006-20"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/miniz.c",
"chars": 225884,
"preview": "/* miniz.c v1.15 - public domain deflate/inflate, zlib-subset, ZIP reading/writing/appending, PNG writing\n See \"unlice"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TMXLite/miniz.h",
"chars": 194,
"preview": "/*\nminiz public domain replacement for zlib. See miniz.c\nfor more information.\n*/\n#ifndef MINIZ_HEADER_FILE_ONLY\n#define"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TinyFileDialogs/TinyDialogBox.h",
"chars": 10909,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2021 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TinyFileDialogs/tinyfiledialogs.cpp",
"chars": 276668,
"preview": "/*_________\n / \\ tinyfiledialogs.c v3.4.3 [Dec 8, 2019] zlib licence\n |tiny file| Unique code file created [Nove"
},
{
"path": "app/src/main/cpp/isEngine/ext_lib/TinyFileDialogs/tinyfiledialogs.h",
"chars": 13628,
"preview": "/*_________\n / \\ tinyfiledialogs.h v3.4.3 [Dec 8, 2019] zlib licence\n |tiny file| Unique header file created [No"
},
{
"path": "app/src/main/cpp/isEngine/system/display/GameDisplay.h",
"chars": 15800,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2025 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/isEngine/system/display/SDM.h",
"chars": 5789,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2025 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/isEngine/system/display/SDMBlitSDLSprite.h",
"chars": 1515,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2022 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/isEngine/system/entity/Background.h",
"chars": 2821,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2025 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/isEngine/system/entity/Button.h",
"chars": 6077,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2025 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/isEngine/system/entity/Form.h",
"chars": 1700,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2025 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
},
{
"path": "app/src/main/cpp/isEngine/system/entity/MainObject.h",
"chars": 13981,
"preview": "/*\n is::Engine (Infinity Solutions Engine)\n Copyright (C) 2018-2025 Is Daouda <isdaouda.n@gmail.com>\n\n This software "
}
]
// ... and 1588 more files (download for full content)
About this extraction
This page contains the full source code of the Is-Daouda/is-Engine GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1788 files (181.0 MB), approximately 8.3M tokens, and a symbol index with 11432 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.