From 6064e563276a5934ad3de1641272fa531cabd2b5 Mon Sep 17 00:00:00 2001 From: David Hackbarth Date: Wed, 26 Feb 2025 16:30:42 +0100 Subject: [PATCH] add sfml project add wxWidgets project --- CPlusPlus/CPlusPlus.sln | 22 +- CPlusPlus/sfml/assets/card_clubs_02.png | Bin 0 -> 241 bytes CPlusPlus/sfml/main.cpp | 47 + CPlusPlus/sfml/sfml.vcxproj | 149 +++ CPlusPlus/sfml/sfml.vcxproj.filters | 22 + CPlusPlus/sfml/sfml/include/SFML/Audio.hpp | 55 + .../sfml/include/SFML/Audio/AudioResource.hpp | 93 ++ .../sfml/sfml/include/SFML/Audio/Export.hpp | 44 + .../include/SFML/Audio/InputSoundFile.hpp | 336 ++++++ .../sfml/sfml/include/SFML/Audio/Listener.hpp | 234 ++++ .../sfml/sfml/include/SFML/Audio/Music.hpp | 377 ++++++ .../include/SFML/Audio/OutputSoundFile.hpp | 147 +++ .../include/SFML/Audio/PlaybackDevice.hpp | 110 ++ .../sfml/sfml/include/SFML/Audio/Sound.hpp | 284 +++++ .../sfml/include/SFML/Audio/SoundBuffer.hpp | 451 ++++++++ .../SFML/Audio/SoundBufferRecorder.hpp | 149 +++ .../sfml/include/SFML/Audio/SoundChannel.hpp | 65 ++ .../include/SFML/Audio/SoundFileFactory.hpp | 200 ++++ .../include/SFML/Audio/SoundFileFactory.inl | 96 ++ .../include/SFML/Audio/SoundFileReader.hpp | 167 +++ .../include/SFML/Audio/SoundFileWriter.hpp | 130 +++ .../sfml/include/SFML/Audio/SoundRecorder.hpp | 362 ++++++ .../sfml/include/SFML/Audio/SoundSource.hpp | 686 +++++++++++ .../sfml/include/SFML/Audio/SoundStream.hpp | 385 +++++++ CPlusPlus/sfml/sfml/include/SFML/Config.hpp | 155 +++ .../sfml/sfml/include/SFML/GpuPreference.hpp | 70 ++ CPlusPlus/sfml/sfml/include/SFML/Graphics.hpp | 67 ++ .../sfml/include/SFML/Graphics/BlendMode.hpp | 220 ++++ .../include/SFML/Graphics/CircleShape.hpp | 165 +++ .../sfml/sfml/include/SFML/Graphics/Color.hpp | 274 +++++ .../sfml/sfml/include/SFML/Graphics/Color.inl | 156 +++ .../include/SFML/Graphics/ConvexShape.hpp | 155 +++ .../include/SFML/Graphics/CoordinateType.hpp | 43 + .../sfml/include/SFML/Graphics/Drawable.hpp | 120 ++ .../sfml/include/SFML/Graphics/Export.hpp | 44 + .../sfml/sfml/include/SFML/Graphics/Font.hpp | 531 +++++++++ .../sfml/sfml/include/SFML/Graphics/Glsl.hpp | 224 ++++ .../sfml/sfml/include/SFML/Graphics/Glsl.inl | 177 +++ .../sfml/sfml/include/SFML/Graphics/Glyph.hpp | 67 ++ .../sfml/sfml/include/SFML/Graphics/Image.hpp | 417 +++++++ .../include/SFML/Graphics/PrimitiveType.hpp | 48 + .../sfml/sfml/include/SFML/Graphics/Rect.hpp | 203 ++++ .../sfml/sfml/include/SFML/Graphics/Rect.inl | 130 +++ .../include/SFML/Graphics/RectangleShape.hpp | 143 +++ .../include/SFML/Graphics/RenderStates.hpp | 191 +++ .../include/SFML/Graphics/RenderTarget.hpp | 606 ++++++++++ .../include/SFML/Graphics/RenderTexture.hpp | 342 ++++++ .../include/SFML/Graphics/RenderWindow.hpp | 308 +++++ .../sfml/include/SFML/Graphics/Shader.hpp | 1023 +++++++++++++++++ .../sfml/sfml/include/SFML/Graphics/Shape.hpp | 357 ++++++ .../sfml/include/SFML/Graphics/Sprite.hpp | 278 +++++ .../include/SFML/Graphics/StencilMode.hpp | 256 +++++ .../sfml/sfml/include/SFML/Graphics/Text.hpp | 486 ++++++++ .../sfml/include/SFML/Graphics/Texture.hpp | 874 ++++++++++++++ .../sfml/include/SFML/Graphics/Transform.hpp | 393 +++++++ .../sfml/include/SFML/Graphics/Transform.inl | 236 ++++ .../include/SFML/Graphics/Transformable.hpp | 340 ++++++ .../sfml/include/SFML/Graphics/Vertex.hpp | 122 ++ .../include/SFML/Graphics/VertexArray.hpp | 221 ++++ .../include/SFML/Graphics/VertexBuffer.hpp | 414 +++++++ .../sfml/sfml/include/SFML/Graphics/View.hpp | 357 ++++++ CPlusPlus/sfml/sfml/include/SFML/Main.hpp | 39 + CPlusPlus/sfml/sfml/include/SFML/Network.hpp | 51 + .../sfml/sfml/include/SFML/Network/Export.hpp | 44 + .../sfml/sfml/include/SFML/Network/Ftp.hpp | 629 ++++++++++ .../sfml/sfml/include/SFML/Network/Http.hpp | 480 ++++++++ .../sfml/include/SFML/Network/IpAddress.hpp | 297 +++++ .../sfml/sfml/include/SFML/Network/Packet.hpp | 552 +++++++++ .../sfml/sfml/include/SFML/Network/Socket.hpp | 229 ++++ .../include/SFML/Network/SocketHandle.hpp | 52 + .../include/SFML/Network/SocketSelector.hpp | 273 +++++ .../sfml/include/SFML/Network/TcpListener.hpp | 166 +++ .../sfml/include/SFML/Network/TcpSocket.hpp | 317 +++++ .../sfml/include/SFML/Network/UdpSocket.hpp | 293 +++++ CPlusPlus/sfml/sfml/include/SFML/OpenGL.hpp | 78 ++ CPlusPlus/sfml/sfml/include/SFML/System.hpp | 55 + .../sfml/sfml/include/SFML/System/Angle.hpp | 511 ++++++++ .../sfml/sfml/include/SFML/System/Angle.inl | 274 +++++ .../sfml/sfml/include/SFML/System/Clock.hpp | 196 ++++ .../sfml/sfml/include/SFML/System/Err.hpp | 77 ++ .../sfml/include/SFML/System/Exception.hpp | 46 + .../sfml/sfml/include/SFML/System/Export.hpp | 44 + .../include/SFML/System/FileInputStream.hpp | 212 ++++ .../sfml/include/SFML/System/InputStream.hpp | 166 +++ .../include/SFML/System/MemoryInputStream.hpp | 139 +++ .../include/SFML/System/NativeActivity.hpp | 58 + .../sfml/sfml/include/SFML/System/Sleep.hpp | 57 + .../sfml/sfml/include/SFML/System/String.hpp | 700 +++++++++++ .../sfml/sfml/include/SFML/System/String.inl | 64 ++ .../include/SFML/System/SuspendAwareClock.hpp | 76 ++ .../sfml/sfml/include/SFML/System/Time.hpp | 500 ++++++++ .../sfml/sfml/include/SFML/System/Time.inl | 284 +++++ .../sfml/sfml/include/SFML/System/Utf.hpp | 764 ++++++++++++ .../sfml/sfml/include/SFML/System/Utf.inl | 732 ++++++++++++ .../sfml/sfml/include/SFML/System/Vector2.hpp | 435 +++++++ .../sfml/sfml/include/SFML/System/Vector2.inl | 217 ++++ .../sfml/sfml/include/SFML/System/Vector3.hpp | 356 ++++++ .../sfml/sfml/include/SFML/System/Vector3.inl | 214 ++++ CPlusPlus/sfml/sfml/include/SFML/Window.hpp | 55 + .../sfml/include/SFML/Window/Clipboard.hpp | 114 ++ .../sfml/sfml/include/SFML/Window/Context.hpp | 224 ++++ .../include/SFML/Window/ContextSettings.hpp | 125 ++ .../sfml/sfml/include/SFML/Window/Cursor.hpp | 303 +++++ .../sfml/sfml/include/SFML/Window/Event.hpp | 430 +++++++ .../sfml/sfml/include/SFML/Window/Event.inl | 78 ++ .../sfml/sfml/include/SFML/Window/Export.hpp | 44 + .../sfml/include/SFML/Window/GlResource.hpp | 122 ++ .../sfml/include/SFML/Window/Joystick.hpp | 213 ++++ .../sfml/include/SFML/Window/Keyboard.hpp | 475 ++++++++ .../sfml/sfml/include/SFML/Window/Mouse.hpp | 175 +++ .../sfml/sfml/include/SFML/Window/Sensor.hpp | 139 +++ .../sfml/sfml/include/SFML/Window/Touch.hpp | 131 +++ .../sfml/include/SFML/Window/VideoMode.hpp | 224 ++++ .../sfml/sfml/include/SFML/Window/Vulkan.hpp | 112 ++ .../sfml/sfml/include/SFML/Window/Window.hpp | 422 +++++++ .../sfml/include/SFML/Window/WindowBase.hpp | 653 +++++++++++ .../sfml/include/SFML/Window/WindowBase.inl | 75 ++ .../sfml/include/SFML/Window/WindowEnums.hpp | 60 + .../sfml/include/SFML/Window/WindowHandle.hpp | 98 ++ .../lib/cmake/FLAC/flac-config-version.cmake | 43 + .../sfml/lib/cmake/FLAC/flac-config.cmake | 41 + .../sfml/lib/cmake/FLAC/targets-debug.cmake | 19 + .../sfml/lib/cmake/FLAC/targets-release.cmake | 19 + .../sfml/sfml/lib/cmake/FLAC/targets.cmake | 124 ++ .../sfml/sfml/lib/cmake/Ogg/OggConfig.cmake | 40 + .../sfml/lib/cmake/Ogg/OggConfigVersion.cmake | 65 ++ .../sfml/lib/cmake/Ogg/OggTargets-debug.cmake | 19 + .../lib/cmake/Ogg/OggTargets-release.cmake | 19 + .../sfml/sfml/lib/cmake/Ogg/OggTargets.cmake | 106 ++ .../sfml/sfml/lib/cmake/SFML/FindDRM.cmake | 23 + .../sfml/sfml/lib/cmake/SFML/FindEGL.cmake | 19 + .../sfml/sfml/lib/cmake/SFML/FindFLAC.cmake | 26 + .../sfml/lib/cmake/SFML/FindFreetype.cmake | 163 +++ .../sfml/sfml/lib/cmake/SFML/FindGBM.cmake | 23 + .../sfml/sfml/lib/cmake/SFML/FindGLES.cmake | 19 + .../sfml/sfml/lib/cmake/SFML/FindUDev.cmake | 61 + .../sfml/sfml/lib/cmake/SFML/FindVorbis.cmake | 69 ++ .../cmake/SFML/SFMLAudioDependencies.cmake | 41 + .../SFML/SFMLAudioSharedTargets-debug.cmake | 19 + .../SFML/SFMLAudioSharedTargets-release.cmake | 19 + .../cmake/SFML/SFMLAudioSharedTargets.cmake | 124 ++ .../SFML/SFMLAudioStaticTargets-debug.cmake | 19 + .../SFML/SFMLAudioStaticTargets-release.cmake | 19 + .../cmake/SFML/SFMLAudioStaticTargets.cmake | 125 ++ .../sfml/sfml/lib/cmake/SFML/SFMLConfig.cmake | 191 +++ .../lib/cmake/SFML/SFMLConfigVersion.cmake | 65 ++ .../cmake/SFML/SFMLGraphicsDependencies.cmake | 20 + .../SFMLGraphicsSharedTargets-debug.cmake | 19 + .../SFMLGraphicsSharedTargets-release.cmake | 19 + .../SFML/SFMLGraphicsSharedTargets.cmake | 124 ++ .../SFMLGraphicsStaticTargets-debug.cmake | 19 + .../SFMLGraphicsStaticTargets-release.cmake | 19 + .../SFML/SFMLGraphicsStaticTargets.cmake | 125 ++ .../SFML/SFMLMainSharedTargets-debug.cmake | 19 + .../SFML/SFMLMainSharedTargets-release.cmake | 19 + .../cmake/SFML/SFMLMainSharedTargets.cmake | 107 ++ .../SFML/SFMLMainStaticTargets-debug.cmake | 19 + .../SFML/SFMLMainStaticTargets-release.cmake | 19 + .../cmake/SFML/SFMLMainStaticTargets.cmake | 108 ++ .../SFML/SFMLNetworkSharedTargets-debug.cmake | 19 + .../SFMLNetworkSharedTargets-release.cmake | 19 + .../cmake/SFML/SFMLNetworkSharedTargets.cmake | 124 ++ .../SFML/SFMLNetworkStaticTargets-debug.cmake | 19 + .../SFMLNetworkStaticTargets-release.cmake | 19 + .../cmake/SFML/SFMLNetworkStaticTargets.cmake | 125 ++ .../cmake/SFML/SFMLSystemDependencies.cmake | 13 + .../SFML/SFMLSystemSharedTargets-debug.cmake | 19 + .../SFMLSystemSharedTargets-release.cmake | 19 + .../cmake/SFML/SFMLSystemSharedTargets.cmake | 107 ++ .../SFML/SFMLSystemStaticTargets-debug.cmake | 19 + .../SFMLSystemStaticTargets-release.cmake | 19 + .../cmake/SFML/SFMLSystemStaticTargets.cmake | 109 ++ .../cmake/SFML/SFMLWindowDependencies.cmake | 48 + .../SFML/SFMLWindowSharedTargets-debug.cmake | 19 + .../SFMLWindowSharedTargets-release.cmake | 19 + .../cmake/SFML/SFMLWindowSharedTargets.cmake | 124 ++ .../SFML/SFMLWindowStaticTargets-debug.cmake | 19 + .../SFMLWindowStaticTargets-release.cmake | 19 + .../cmake/SFML/SFMLWindowStaticTargets.cmake | 125 ++ .../sfml/lib/cmake/Vorbis/VorbisConfig.cmake | 43 + .../cmake/Vorbis/VorbisConfigVersion.cmake | 65 ++ .../cmake/Vorbis/VorbisTargets-debug.cmake | 39 + .../cmake/Vorbis/VorbisTargets-release.cmake | 39 + .../sfml/lib/cmake/Vorbis/VorbisTargets.cmake | 139 +++ .../freetype/freetype-config-debug.cmake | 19 + .../freetype/freetype-config-release.cmake | 19 + .../freetype/freetype-config-version.cmake | 65 ++ .../lib/cmake/freetype/freetype-config.cmake | 113 ++ CPlusPlus/wxWidgets/MyApp.cpp | 12 + CPlusPlus/wxWidgets/MyApp.h | 10 + CPlusPlus/wxWidgets/wxWidgets.vcxproj | 142 +++ CPlusPlus/wxWidgets/wxWidgets.vcxproj.filters | 27 + 192 files changed, 32663 insertions(+), 1 deletion(-) create mode 100644 CPlusPlus/sfml/assets/card_clubs_02.png create mode 100644 CPlusPlus/sfml/main.cpp create mode 100644 CPlusPlus/sfml/sfml.vcxproj create mode 100644 CPlusPlus/sfml/sfml.vcxproj.filters create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/AudioResource.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/Export.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/InputSoundFile.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/Listener.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/Music.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/OutputSoundFile.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/PlaybackDevice.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/Sound.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/SoundBuffer.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/SoundBufferRecorder.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/SoundChannel.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/SoundFileFactory.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/SoundFileFactory.inl create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/SoundFileReader.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/SoundFileWriter.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/SoundRecorder.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/SoundSource.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Audio/SoundStream.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Config.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/GpuPreference.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/BlendMode.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/CircleShape.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Color.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Color.inl create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/ConvexShape.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/CoordinateType.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Drawable.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Export.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Font.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Glsl.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Glsl.inl create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Glyph.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Image.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/PrimitiveType.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Rect.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Rect.inl create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/RectangleShape.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/RenderStates.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/RenderTarget.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/RenderTexture.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/RenderWindow.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Shader.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Shape.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Sprite.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/StencilMode.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Text.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Texture.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Transform.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Transform.inl create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Transformable.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/Vertex.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/VertexArray.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/VertexBuffer.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Graphics/View.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Main.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Network.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Network/Export.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Network/Ftp.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Network/Http.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Network/IpAddress.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Network/Packet.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Network/Socket.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Network/SocketHandle.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Network/SocketSelector.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Network/TcpListener.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Network/TcpSocket.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Network/UdpSocket.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/OpenGL.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/Angle.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/Angle.inl create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/Clock.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/Err.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/Exception.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/Export.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/FileInputStream.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/InputStream.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/MemoryInputStream.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/NativeActivity.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/Sleep.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/String.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/String.inl create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/SuspendAwareClock.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/Time.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/Time.inl create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/Utf.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/Utf.inl create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/Vector2.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/Vector2.inl create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/Vector3.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/System/Vector3.inl create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/Clipboard.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/Context.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/ContextSettings.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/Cursor.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/Event.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/Event.inl create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/Export.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/GlResource.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/Joystick.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/Keyboard.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/Mouse.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/Sensor.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/Touch.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/VideoMode.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/Vulkan.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/Window.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/WindowBase.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/WindowBase.inl create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/WindowEnums.hpp create mode 100644 CPlusPlus/sfml/sfml/include/SFML/Window/WindowHandle.hpp create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/FLAC/flac-config-version.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/FLAC/flac-config.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/FLAC/targets-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/FLAC/targets-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/FLAC/targets.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/Ogg/OggConfig.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/Ogg/OggConfigVersion.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/Ogg/OggTargets-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/Ogg/OggTargets-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/Ogg/OggTargets.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/FindDRM.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/FindEGL.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/FindFLAC.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/FindFreetype.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/FindGBM.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/FindGLES.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/FindUDev.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/FindVorbis.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLAudioDependencies.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLAudioSharedTargets-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLAudioSharedTargets-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLAudioSharedTargets.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLAudioStaticTargets-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLAudioStaticTargets-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLAudioStaticTargets.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLConfig.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLConfigVersion.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLGraphicsDependencies.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLGraphicsSharedTargets-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLGraphicsSharedTargets-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLGraphicsSharedTargets.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLGraphicsStaticTargets-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLGraphicsStaticTargets-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLGraphicsStaticTargets.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLMainSharedTargets-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLMainSharedTargets-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLMainSharedTargets.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLMainStaticTargets-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLMainStaticTargets-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLMainStaticTargets.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLNetworkSharedTargets-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLNetworkSharedTargets-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLNetworkSharedTargets.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLNetworkStaticTargets-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLNetworkStaticTargets-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLNetworkStaticTargets.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLSystemDependencies.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLSystemSharedTargets-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLSystemSharedTargets-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLSystemSharedTargets.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLSystemStaticTargets-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLSystemStaticTargets-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLSystemStaticTargets.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLWindowDependencies.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLWindowSharedTargets-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLWindowSharedTargets-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLWindowSharedTargets.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLWindowStaticTargets-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLWindowStaticTargets-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/SFML/SFMLWindowStaticTargets.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/Vorbis/VorbisConfig.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/Vorbis/VorbisConfigVersion.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/Vorbis/VorbisTargets-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/Vorbis/VorbisTargets-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/Vorbis/VorbisTargets.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/freetype/freetype-config-debug.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/freetype/freetype-config-release.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/freetype/freetype-config-version.cmake create mode 100644 CPlusPlus/sfml/sfml/lib/cmake/freetype/freetype-config.cmake create mode 100644 CPlusPlus/wxWidgets/MyApp.cpp create mode 100644 CPlusPlus/wxWidgets/MyApp.h create mode 100644 CPlusPlus/wxWidgets/wxWidgets.vcxproj create mode 100644 CPlusPlus/wxWidgets/wxWidgets.vcxproj.filters diff --git a/CPlusPlus/CPlusPlus.sln b/CPlusPlus/CPlusPlus.sln index 220c1c9..0f407e6 100644 --- a/CPlusPlus/CPlusPlus.sln +++ b/CPlusPlus/CPlusPlus.sln @@ -1,10 +1,14 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.12.35707.178 d17.12 +VisualStudioVersion = 17.12.35707.178 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "intro", "intro\intro.vcxproj", "{17FA2197-138C-4617-AF1E-395E0B95B694}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sfml", "sfml\sfml.vcxproj", "{4D34EFC2-9530-41FA-860A-55158B52A1F7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxWidgets", "wxWidgets\wxWidgets.vcxproj", "{CC08DA67-EF11-44DB-841B-CA550F45A7C1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -21,6 +25,22 @@ Global {17FA2197-138C-4617-AF1E-395E0B95B694}.Release|x64.Build.0 = Release|x64 {17FA2197-138C-4617-AF1E-395E0B95B694}.Release|x86.ActiveCfg = Release|Win32 {17FA2197-138C-4617-AF1E-395E0B95B694}.Release|x86.Build.0 = Release|Win32 + {4D34EFC2-9530-41FA-860A-55158B52A1F7}.Debug|x64.ActiveCfg = Debug|x64 + {4D34EFC2-9530-41FA-860A-55158B52A1F7}.Debug|x64.Build.0 = Debug|x64 + {4D34EFC2-9530-41FA-860A-55158B52A1F7}.Debug|x86.ActiveCfg = Debug|Win32 + {4D34EFC2-9530-41FA-860A-55158B52A1F7}.Debug|x86.Build.0 = Debug|Win32 + {4D34EFC2-9530-41FA-860A-55158B52A1F7}.Release|x64.ActiveCfg = Release|x64 + {4D34EFC2-9530-41FA-860A-55158B52A1F7}.Release|x64.Build.0 = Release|x64 + {4D34EFC2-9530-41FA-860A-55158B52A1F7}.Release|x86.ActiveCfg = Release|Win32 + {4D34EFC2-9530-41FA-860A-55158B52A1F7}.Release|x86.Build.0 = Release|Win32 + {CC08DA67-EF11-44DB-841B-CA550F45A7C1}.Debug|x64.ActiveCfg = Debug|x64 + {CC08DA67-EF11-44DB-841B-CA550F45A7C1}.Debug|x64.Build.0 = Debug|x64 + {CC08DA67-EF11-44DB-841B-CA550F45A7C1}.Debug|x86.ActiveCfg = Debug|Win32 + {CC08DA67-EF11-44DB-841B-CA550F45A7C1}.Debug|x86.Build.0 = Debug|Win32 + {CC08DA67-EF11-44DB-841B-CA550F45A7C1}.Release|x64.ActiveCfg = Release|x64 + {CC08DA67-EF11-44DB-841B-CA550F45A7C1}.Release|x64.Build.0 = Release|x64 + {CC08DA67-EF11-44DB-841B-CA550F45A7C1}.Release|x86.ActiveCfg = Release|Win32 + {CC08DA67-EF11-44DB-841B-CA550F45A7C1}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CPlusPlus/sfml/assets/card_clubs_02.png b/CPlusPlus/sfml/assets/card_clubs_02.png new file mode 100644 index 0000000000000000000000000000000000000000..6dcbe9b63fb6b9d05a22bfab4a9ab2cec47c9293 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0L3?#3!&-4XSEa{HEjtmSN`?>!lvI6-$0X`wF zK>GOgH@@L%|NsAIo0xYM$Y(4G@(X5gcy=QV$Z7U;aSX9I{r0jUUxNYcFvX?H_Bj73;ku9dOuN{+-I{Y4g%UfRJEAV9$g>N3 hYg`i%k6g2B61VwYzmt~p>OpR0@O1TaS?83{1OOXDPeA|x literal 0 HcmV?d00001 diff --git a/CPlusPlus/sfml/main.cpp b/CPlusPlus/sfml/main.cpp new file mode 100644 index 0000000..fb83300 --- /dev/null +++ b/CPlusPlus/sfml/main.cpp @@ -0,0 +1,47 @@ +#include "SFML/Graphics.hpp" + +using namespace sf; + +int main() +{ + RenderWindow window(VideoMode({ 640, 480 }), "Hello World Example"); + + CircleShape circle(100.0f); + circle.setFillColor(Color(200, 0, 0)); + + Texture texture("assets/card_clubs_02.png"); + Sprite sprite(texture); + + while (window.isOpen()) + { + while (const std::optional event = window.pollEvent()) + { + if (event->is()) + { + window.close(); + } + //else if (event->is()) + else if (const Event::KeyPressed* keyPressed = event->getIf()) + { + if (keyPressed->scancode == Keyboard::Scancode::Escape) { + window.close(); + } + } + } + + // move circle + if (Keyboard::isKeyPressed(Keyboard::Scancode::Right)) + { + circle.move(Vector2f(1, 0)); + } + + // clear window to start every from scratch + window.clear(); + + window.draw(circle); + window.draw(sprite); + window.display(); + } + + return 0; +} \ No newline at end of file diff --git a/CPlusPlus/sfml/sfml.vcxproj b/CPlusPlus/sfml/sfml.vcxproj new file mode 100644 index 0000000..7ddd6c6 --- /dev/null +++ b/CPlusPlus/sfml/sfml.vcxproj @@ -0,0 +1,149 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {4d34efc2-9530-41fa-860a-55158b52a1f7} + sfml + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp17 + sfml/include + + + Console + true + sfml/lib + sfml-graphics-d.lib;sfml-window-d.lib;sfml-system-d.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + sfml/include + + + Console + true + true + true + sfml-graphics.lib;sfml-window.lib;sfml-system.lib;%(AdditionalDependencies) + sfml/lib + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp17 + sfml/include + + + Console + true + sfml/lib + sfml-graphics-d.lib;sfml-window-d.lib;sfml-system-d.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + sfml/include + + + Console + true + true + true + sfml-graphics.lib;sfml-window.lib;sfml-system.lib;%(AdditionalDependencies) + sfml/lib + + + + + + + + + \ No newline at end of file diff --git a/CPlusPlus/sfml/sfml.vcxproj.filters b/CPlusPlus/sfml/sfml.vcxproj.filters new file mode 100644 index 0000000..ce0c35c --- /dev/null +++ b/CPlusPlus/sfml/sfml.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/CPlusPlus/sfml/sfml/include/SFML/Audio.hpp b/CPlusPlus/sfml/sfml/include/SFML/Audio.hpp new file mode 100644 index 0000000..f0d262e --- /dev/null +++ b/CPlusPlus/sfml/sfml/include/SFML/Audio.hpp @@ -0,0 +1,55 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2024 Laurent Gomila (laurent@sfml-dev.org) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +#pragma once + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + + +//////////////////////////////////////////////////////////// +/// \defgroup audio Audio module +/// +/// Sounds, streaming (musics or custom sources), recording, +/// spatialization. +/// +//////////////////////////////////////////////////////////// diff --git a/CPlusPlus/sfml/sfml/include/SFML/Audio/AudioResource.hpp b/CPlusPlus/sfml/sfml/include/SFML/Audio/AudioResource.hpp new file mode 100644 index 0000000..3230637 --- /dev/null +++ b/CPlusPlus/sfml/sfml/include/SFML/Audio/AudioResource.hpp @@ -0,0 +1,93 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2024 Laurent Gomila (laurent@sfml-dev.org) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +#pragma once + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// +#include + +#include + + +namespace sf +{ +//////////////////////////////////////////////////////////// +/// \brief Base class for classes that require an audio device +/// +//////////////////////////////////////////////////////////// +class SFML_AUDIO_API AudioResource +{ +public: + //////////////////////////////////////////////////////////// + /// \brief Copy constructor + /// + //////////////////////////////////////////////////////////// + AudioResource(const AudioResource&) = default; + + //////////////////////////////////////////////////////////// + /// \brief Copy assignment + /// + //////////////////////////////////////////////////////////// + AudioResource& operator=(const AudioResource&) = default; + + //////////////////////////////////////////////////////////// + /// \brief Move constructor + /// + //////////////////////////////////////////////////////////// + AudioResource(AudioResource&&) noexcept = default; + + //////////////////////////////////////////////////////////// + /// \brief Move assignment + /// + //////////////////////////////////////////////////////////// + AudioResource& operator=(AudioResource&&) noexcept = default; + +protected: + //////////////////////////////////////////////////////////// + /// \brief Default constructor + /// + //////////////////////////////////////////////////////////// + AudioResource(); + +private: + //////////////////////////////////////////////////////////// + // Member data + //////////////////////////////////////////////////////////// + std::shared_ptr m_device; //!< Sound device +}; + +} // namespace sf + + +//////////////////////////////////////////////////////////// +/// \class sf::AudioResource +/// \ingroup audio +/// +/// This class is for internal use only, it must be the base +/// of every class that requires a valid audio device in +/// order to work. +/// +//////////////////////////////////////////////////////////// diff --git a/CPlusPlus/sfml/sfml/include/SFML/Audio/Export.hpp b/CPlusPlus/sfml/sfml/include/SFML/Audio/Export.hpp new file mode 100644 index 0000000..c50efc0 --- /dev/null +++ b/CPlusPlus/sfml/sfml/include/SFML/Audio/Export.hpp @@ -0,0 +1,44 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2024 Laurent Gomila (laurent@sfml-dev.org) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +#pragma once + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// +#include + + +//////////////////////////////////////////////////////////// +// Portable import / export macros +//////////////////////////////////////////////////////////// +#if defined(SFML_AUDIO_EXPORTS) + +#define SFML_AUDIO_API SFML_API_EXPORT + +#else + +#define SFML_AUDIO_API SFML_API_IMPORT + +#endif diff --git a/CPlusPlus/sfml/sfml/include/SFML/Audio/InputSoundFile.hpp b/CPlusPlus/sfml/sfml/include/SFML/Audio/InputSoundFile.hpp new file mode 100644 index 0000000..523b8e5 --- /dev/null +++ b/CPlusPlus/sfml/sfml/include/SFML/Audio/InputSoundFile.hpp @@ -0,0 +1,336 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2024 Laurent Gomila (laurent@sfml-dev.org) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +#pragma once + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// +#include + +#include + +#include +#include +#include + +#include +#include + + +namespace sf +{ +class Time; +class InputStream; + +//////////////////////////////////////////////////////////// +/// \brief Provide read access to sound files +/// +//////////////////////////////////////////////////////////// +class SFML_AUDIO_API InputSoundFile +{ +public: + //////////////////////////////////////////////////////////// + /// \brief Default constructor + /// + /// Construct an input sound file that is not associated + /// with a file to read. + /// + //////////////////////////////////////////////////////////// + InputSoundFile() = default; + + //////////////////////////////////////////////////////////// + /// \brief Construct a sound file from the disk for reading + /// + /// The supported audio formats are: WAV (PCM only), OGG/Vorbis, FLAC, MP3. + /// The supported sample sizes for FLAC and WAV are 8, 16, 24 and 32 bit. + /// + /// Because of minimp3_ex limitation, for MP3 files with big (>16kb) APEv2 tag, + /// it may not be properly removed, tag data will be treated as MP3 data + /// and there is a low chance of garbage decoded at the end of file. + /// See also: https://github.com/lieff/minimp3 + /// + /// \param filename Path of the sound file to load + /// + /// \throws sf::Exception if opening the file was unsuccessful + /// + //////////////////////////////////////////////////////////// + explicit InputSoundFile(const std::filesystem::path& filename); + + //////////////////////////////////////////////////////////// + /// \brief Construct a sound file in memory for reading + /// + /// The supported audio formats are: WAV (PCM only), OGG/Vorbis, FLAC. + /// The supported sample sizes for FLAC and WAV are 8, 16, 24 and 32 bit. + /// + /// \param data Pointer to the file data in memory + /// \param sizeInBytes Size of the data to load, in bytes + /// + /// \throws sf::Exception if opening the file was unsuccessful + /// + //////////////////////////////////////////////////////////// + InputSoundFile(const void* data, std::size_t sizeInBytes); + + //////////////////////////////////////////////////////////// + /// \brief Construct a sound file from a custom stream for reading + /// + /// The supported audio formats are: WAV (PCM only), OGG/Vorbis, FLAC. + /// The supported sample sizes for FLAC and WAV are 8, 16, 24 and 32 bit. + /// + /// \param stream Source stream to read from + /// + /// \throws sf::Exception if opening the file was unsuccessful + /// + //////////////////////////////////////////////////////////// + explicit InputSoundFile(InputStream& stream); + + //////////////////////////////////////////////////////////// + /// \brief Open a sound file from the disk for reading + /// + /// The supported audio formats are: WAV (PCM only), OGG/Vorbis, FLAC, MP3. + /// The supported sample sizes for FLAC and WAV are 8, 16, 24 and 32 bit. + /// + /// Because of minimp3_ex limitation, for MP3 files with big (>16kb) APEv2 tag, + /// it may not be properly removed, tag data will be treated as MP3 data + /// and there is a low chance of garbage decoded at the end of file. + /// See also: https://github.com/lieff/minimp3 + /// + /// \param filename Path of the sound file to load + /// + /// \return `true` if the file was successfully opened + /// + //////////////////////////////////////////////////////////// + [[nodiscard]] bool openFromFile(const std::filesystem::path& filename); + + //////////////////////////////////////////////////////////// + /// \brief Open a sound file in memory for reading + /// + /// The supported audio formats are: WAV (PCM only), OGG/Vorbis, FLAC. + /// The supported sample sizes for FLAC and WAV are 8, 16, 24 and 32 bit. + /// + /// \param data Pointer to the file data in memory + /// \param sizeInBytes Size of the data to load, in bytes + /// + /// \return `true` if the file was successfully opened + /// + //////////////////////////////////////////////////////////// + [[nodiscard]] bool openFromMemory(const void* data, std::size_t sizeInBytes); + + //////////////////////////////////////////////////////////// + /// \brief Open a sound file from a custom stream for reading + /// + /// The supported audio formats are: WAV (PCM only), OGG/Vorbis, FLAC. + /// The supported sample sizes for FLAC and WAV are 8, 16, 24 and 32 bit. + /// + /// \param stream Source stream to read from + /// + /// \return `true` if the file was successfully opened + /// + //////////////////////////////////////////////////////////// + [[nodiscard]] bool openFromStream(InputStream& stream); + + //////////////////////////////////////////////////////////// + /// \brief Get the total number of audio samples in the file + /// + /// \return Number of samples + /// + //////////////////////////////////////////////////////////// + [[nodiscard]] std::uint64_t getSampleCount() const; + + //////////////////////////////////////////////////////////// + /// \brief Get the number of channels used by the sound + /// + /// \return Number of channels (1 = mono, 2 = stereo) + /// + //////////////////////////////////////////////////////////// + [[nodiscard]] unsigned int getChannelCount() const; + + //////////////////////////////////////////////////////////// + /// \brief Get the sample rate of the sound + /// + /// \return Sample rate, in samples per second + /// + //////////////////////////////////////////////////////////// + [[nodiscard]] unsigned int getSampleRate() const; + + //////////////////////////////////////////////////////////// + /// \brief Get the map of position in sample frame to sound channel + /// + /// This is used to map a sample in the sample stream to a + /// position during spatialization. + /// + /// \return Map of position in sample frame to sound channel + /// + /// \see `getSampleRate`, `getChannelCount`, `getDuration` + /// + //////////////////////////////////////////////////////////// + [[nodiscard]] const std::vector& getChannelMap() const; + + //////////////////////////////////////////////////////////// + /// \brief Get the total duration of the sound file + /// + /// This function is provided for convenience, the duration is + /// deduced from the other sound file attributes. + /// + /// \return Duration of the sound file + /// + //////////////////////////////////////////////////////////// + [[nodiscard]] Time getDuration() const; + + //////////////////////////////////////////////////////////// + /// \brief Get the read offset of the file in time + /// + /// \return Time position + /// + //////////////////////////////////////////////////////////// + [[nodiscard]] Time getTimeOffset() const; + + //////////////////////////////////////////////////////////// + /// \brief Get the read offset of the file in samples + /// + /// \return Sample position + /// + //////////////////////////////////////////////////////////// + [[nodiscard]] std::uint64_t getSampleOffset() const; + + //////////////////////////////////////////////////////////// + /// \brief Change the current read position to the given sample offset + /// + /// This function takes a sample offset to provide maximum + /// precision. If you need to jump to a given time, use the + /// other overload. + /// + /// The sample offset takes the channels into account. + /// If you have a time offset instead, you can easily find + /// the corresponding sample offset with the following formula: + /// `timeInSeconds * sampleRate * channelCount` + /// If the given offset exceeds to total number of samples, + /// this function jumps to the end of the sound file. + /// + /// \param sampleOffset Index of the sample to jump to, relative to the beginning + /// + //////////////////////////////////////////////////////////// + void seek(std::uint64_t sampleOffset); + + //////////////////////////////////////////////////////////// + /// \brief Change the current read position to the given time offset + /// + /// Using a time offset is handy but imprecise. If you need an accurate + /// result, consider using the overload which takes a sample offset. + /// + /// If the given time exceeds to total duration, this function jumps + /// to the end of the sound file. + /// + /// \param timeOffset Time to jump to, relative to the beginning + /// + //////////////////////////////////////////////////////////// + void seek(Time timeOffset); + + //////////////////////////////////////////////////////////// + /// \brief Read audio samples from the open file + /// + /// \param samples Pointer to the sample array to fill + /// \param maxCount Maximum number of samples to read + /// + /// \return Number of samples actually read (may be less than \a maxCount) + /// + //////////////////////////////////////////////////////////// + [[nodiscard]] std::uint64_t read(std::int16_t* samples, std::uint64_t maxCount); + + //////////////////////////////////////////////////////////// + /// \brief Close the current file + /// + //////////////////////////////////////////////////////////// + void close(); + +private: + //////////////////////////////////////////////////////////// + /// \brief Deleter for input streams that only conditionally deletes + /// + //////////////////////////////////////////////////////////// + struct SFML_AUDIO_API StreamDeleter + { + StreamDeleter(bool theOwned); + + // To accept ownership transfer from usual std::unique_ptr + template + StreamDeleter(const std::default_delete&); + + void operator()(InputStream* ptr) const; + + bool owned{true}; + }; + + //////////////////////////////////////////////////////////// + // Member data + //////////////////////////////////////////////////////////// + std::unique_ptr m_reader; //!< Reader that handles I/O on the file's format + std::unique_ptr m_stream{nullptr, false}; //!< Input stream used to access the file's data + std::uint64_t m_sampleOffset{}; //!< Sample Read Position + std::uint64_t m_sampleCount{}; //!< Total number of samples in the file + unsigned int m_sampleRate{}; //!< Number of samples per second + std::vector m_channelMap; //!< The map of position in sample frame to sound channel +}; + +} // namespace sf + + +//////////////////////////////////////////////////////////// +/// \class sf::InputSoundFile +/// \ingroup audio +/// +/// This class decodes audio samples from a sound file. It is +/// used internally by higher-level classes such as `sf::SoundBuffer` +/// and `sf::Music`, but can also be useful if you want to process +/// or analyze audio files without playing them, or if you want to +/// implement your own version of `sf::Music` with more specific +/// features. +/// +/// Usage example: +/// \code +/// // Open a sound file +/// sf::InputSoundFile file("music.ogg"); +/// +/// // Print the sound attributes +/// std::cout << "duration: " << file.getDuration().asSeconds() << '\n' +/// << "channels: " << file.getChannelCount() << '\n' +/// << "sample rate: " << file.getSampleRate() << '\n' +/// << "sample count: " << file.getSampleCount() << std::endl; +/// +/// // Read and process batches of samples until the end of file is reached +/// std::array samples; +/// std::uint64_t count; +/// do +/// { +/// count = file.read(samples.data(), samples.size()); +/// +/// // process, analyze, play, convert, or whatever +/// // you want to do with the samples... +/// } +/// while (count > 0); +/// \endcode +/// +/// \see `sf::SoundFileReader`, `sf::OutputSoundFile` +/// +//////////////////////////////////////////////////////////// diff --git a/CPlusPlus/sfml/sfml/include/SFML/Audio/Listener.hpp b/CPlusPlus/sfml/sfml/include/SFML/Audio/Listener.hpp new file mode 100644 index 0000000..81c1794 --- /dev/null +++ b/CPlusPlus/sfml/sfml/include/SFML/Audio/Listener.hpp @@ -0,0 +1,234 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2024 Laurent Gomila (laurent@sfml-dev.org) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +#pragma once + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// +#include + +#include +#include + + +//////////////////////////////////////////////////////////// +/// \brief The audio listener is the point in the scene +/// from where all the sounds are heard +/// +//////////////////////////////////////////////////////////// +namespace sf::Listener +{ +//////////////////////////////////////////////////////////// +/// \brief Structure defining the properties of a directional cone +/// +/// Sounds will play at gain 1 when they are positioned +/// within the inner angle of the cone. Sounds will play +/// at `outerGain` when they are positioned outside the +/// outer angle of the cone. The gain declines linearly +/// from 1 to `outerGain` as the sound moves from the inner +/// angle to the outer angle. +/// +//////////////////////////////////////////////////////////// +struct Cone +{ + Angle innerAngle; //!< Inner angle + Angle outerAngle; //!< Outer angle + float outerGain{}; //!< Outer gain +}; + +//////////////////////////////////////////////////////////// +/// \brief Change the global volume of all the sounds and musics +/// +/// `volume` is a number between 0 and 100; it is combined +/// with the individual volume of each sound / music. +/// The default value for the volume is 100 (maximum). +/// +/// \param volume New global volume, in the range [0, 100] +/// +/// \see `getGlobalVolume` +/// +//////////////////////////////////////////////////////////// +SFML_AUDIO_API void setGlobalVolume(float volume); + +//////////////////////////////////////////////////////////// +/// \brief Get the current value of the global volume +/// +/// \return Current global volume, in the range [0, 100] +/// +/// \see `setGlobalVolume` +/// +//////////////////////////////////////////////////////////// +[[nodiscard]] SFML_AUDIO_API float getGlobalVolume(); + +//////////////////////////////////////////////////////////// +/// \brief Set the position of the listener in the scene +/// +/// The default listener's position is (0, 0, 0). +/// +/// \param position New listener's position +/// +/// \see `getPosition`, `setDirection` +/// +//////////////////////////////////////////////////////////// +SFML_AUDIO_API void setPosition(const Vector3f& position); + +//////////////////////////////////////////////////////////// +/// \brief Get the current position of the listener in the scene +/// +/// \return Listener's position +/// +/// \see `setPosition` +/// +//////////////////////////////////////////////////////////// +[[nodiscard]] SFML_AUDIO_API Vector3f getPosition(); + +//////////////////////////////////////////////////////////// +/// \brief Set the forward vector of the listener in the scene +/// +/// The direction (also called "at vector") is the vector +/// pointing forward from the listener's perspective. Together +/// with the up vector, it defines the 3D orientation of the +/// listener in the scene. The direction vector doesn't +/// have to be normalized. +/// The default listener's direction is (0, 0, -1). +/// +/// \param direction New listener's direction +/// +/// \see `getDirection`, `setUpVector`, `setPosition` +/// +//////////////////////////////////////////////////////////// +SFML_AUDIO_API void setDirection(const Vector3f& direction); + +//////////////////////////////////////////////////////////// +/// \brief Get the current forward vector of the listener in the scene +/// +/// \return Listener's forward vector (not normalized) +/// +/// \see `setDirection` +/// +//////////////////////////////////////////////////////////// +[[nodiscard]] SFML_AUDIO_API Vector3f getDirection(); + +//////////////////////////////////////////////////////////// +/// \brief Set the velocity of the listener in the scene +/// +/// The default listener's velocity is (0, 0, -1). +/// +/// \param velocity New listener's velocity +/// +/// \see `getVelocity`, `getDirection`, `setUpVector`, `setPosition` +/// +//////////////////////////////////////////////////////////// +SFML_AUDIO_API void setVelocity(const Vector3f& velocity); + +//////////////////////////////////////////////////////////// +/// \brief Get the current forward vector of the listener in the scene +/// +/// \return Listener's velocity +/// +/// \see `setVelocity` +/// +//////////////////////////////////////////////////////////// +[[nodiscard]] SFML_AUDIO_API Vector3f getVelocity(); + +//////////////////////////////////////////////////////////// +/// \brief Set the cone properties of the listener in the audio scene +/// +/// The cone defines how directional attenuation is applied. +/// The default cone of a sound is (2 * PI, 2 * PI, 1). +/// +/// \param cone Cone properties of the listener in the scene +/// +/// \see `getCone` +/// +//////////////////////////////////////////////////////////// +SFML_AUDIO_API void setCone(const Listener::Cone& cone); + +//////////////////////////////////////////////////////////// +/// \brief Get the cone properties of the listener in the audio scene +/// +/// \return Cone properties of the listener +/// +/// \see `setCone` +/// +//////////////////////////////////////////////////////////// +[[nodiscard]] SFML_AUDIO_API Listener::Cone getCone(); + +//////////////////////////////////////////////////////////// +/// \brief Set the upward vector of the listener in the scene +/// +/// The up vector is the vector that points upward from the +/// listener's perspective. Together with the direction, it +/// defines the 3D orientation of the listener in the scene. +/// The up vector doesn't have to be normalized. +/// The default listener's up vector is (0, 1, 0). It is usually +/// not necessary to change it, especially in 2D scenarios. +/// +/// \param upVector New listener's up vector +/// +/// \see `getUpVector`, `setDirection`, `setPosition` +/// +//////////////////////////////////////////////////////////// +SFML_AUDIO_API void setUpVector(const Vector3f& upVector); + +//////////////////////////////////////////////////////////// +/// \brief Get the current upward vector of the listener in the scene +/// +/// \return Listener's upward vector (not normalized) +/// +/// \see `setUpVector` +/// +//////////////////////////////////////////////////////////// +[[nodiscard]] SFML_AUDIO_API Vector3f getUpVector(); +} // namespace sf::Listener + + +//////////////////////////////////////////////////////////// +/// \namespace sf::Listener +/// \ingroup audio +/// +/// The audio listener defines the global properties of the +/// audio environment, it defines where and how sounds and musics +/// are heard. If `sf::View` is the eyes of the user, then +/// `sf::Listener` are their ears (by the way, they are often linked +/// together -- same position, orientation, etc.). +/// +/// `sf::Listener` is a simple interface, which allows to setup the +/// listener in the 3D audio environment (position, direction and +/// up vector), and to adjust the global volume. +/// +/// Usage example: +/// \code +/// // Move the listener to the position (1, 0, -5) +/// sf::Listener::setPosition({1, 0, -5}); +/// +/// // Make it face the right axis (1, 0, 0) +/// sf::Listener::setDirection({1, 0, 0}); +/// +/// // Reduce the global volume +/// sf::Listener::setGlobalVolume(50); +/// \endcode +/// +//////////////////////////////////////////////////////////// diff --git a/CPlusPlus/sfml/sfml/include/SFML/Audio/Music.hpp b/CPlusPlus/sfml/sfml/include/SFML/Audio/Music.hpp new file mode 100644 index 0000000..91a2787 --- /dev/null +++ b/CPlusPlus/sfml/sfml/include/SFML/Audio/Music.hpp @@ -0,0 +1,377 @@ +//////////////////////////////////////////////////////////// +// +// SFML - Simple and Fast Multimedia Library +// Copyright (C) 2007-2024 Laurent Gomila (laurent@sfml-dev.org) +// +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors be held liable for any damages arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it freely, +// subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; +// you must not claim that you wrote the original software. +// If you use this software in a product, an acknowledgment +// in the product documentation would be appreciated but is not required. +// +// 2. Altered source versions must be plainly marked as such, +// and must not be misrepresented as being the original software. +// +// 3. This notice may not be removed or altered from any source distribution. +// +//////////////////////////////////////////////////////////// + +#pragma once + +//////////////////////////////////////////////////////////// +// Headers +//////////////////////////////////////////////////////////// +#include + +#include + +#include +#include +#include + +#include +#include + + +namespace sf +{ +class Time; +class InputStream; +class InputSoundFile; + +//////////////////////////////////////////////////////////// +/// \brief Streamed music played from an audio file +/// +//////////////////////////////////////////////////////////// +class SFML_AUDIO_API Music : public SoundStream +{ +public: + //////////////////////////////////////////////////////////// + /// \brief Structure defining a time range using the template type + /// + //////////////////////////////////////////////////////////// + template + struct Span + { + T offset{}; //!< The beginning offset of the time range + T length{}; //!< The length of the time range + }; + + // Associated `Span` type + using TimeSpan = Span