From bdbfe2b0b586adcbd6436066bdd4564ea52a464c Mon Sep 17 00:00:00 2001 From: Laurent Gomila Date: Wed, 6 Jul 2011 22:42:56 +0200 Subject: [PATCH] Removed the C binding (moved to its own repository) --- bindings/c/CMakeLists.txt | 60 - bindings/c/cmake/Config.cmake | 48 - bindings/c/cmake/Macros.cmake | 95 -- bindings/c/doc/CMakeLists.txt | 50 - bindings/c/doc/doxyfile.in | 1513 ----------------- bindings/c/doc/doxygen.css | 681 -------- bindings/c/doc/footer.htm | 8 - bindings/c/doc/header.htm | 12 - bindings/c/doc/logo-bg.jpg | Bin 22457 -> 0 bytes bindings/c/doc/logo.jpg | Bin 116513 -> 0 bytes bindings/c/doc/mainpage.hpp | 94 - bindings/c/include/SFML/Audio.h | 41 - bindings/c/include/SFML/Audio/Listener.h | 91 - bindings/c/include/SFML/Audio/Music.h | 292 ---- bindings/c/include/SFML/Audio/Sound.h | 278 --- bindings/c/include/SFML/Audio/SoundBuffer.h | 151 -- .../include/SFML/Audio/SoundBufferRecorder.h | 91 - bindings/c/include/SFML/Audio/SoundRecorder.h | 103 -- bindings/c/include/SFML/Audio/SoundStatus.h | 42 - bindings/c/include/SFML/Audio/SoundStream.h | 294 ---- bindings/c/include/SFML/Audio/Types.h | 36 - bindings/c/include/SFML/Config.h | 150 -- bindings/c/include/SFML/Graphics.h | 46 - bindings/c/include/SFML/Graphics/BlendMode.h | 46 - bindings/c/include/SFML/Graphics/Color.h | 107 -- bindings/c/include/SFML/Graphics/Font.h | 132 -- bindings/c/include/SFML/Graphics/Glyph.h | 45 - bindings/c/include/SFML/Graphics/Image.h | 246 --- bindings/c/include/SFML/Graphics/Rect.h | 81 - .../c/include/SFML/Graphics/RenderImage.h | 206 --- .../c/include/SFML/Graphics/RenderWindow.h | 385 ----- bindings/c/include/SFML/Graphics/Shader.h | 157 -- bindings/c/include/SFML/Graphics/Shape.h | 464 ----- bindings/c/include/SFML/Graphics/Sprite.h | 403 ----- bindings/c/include/SFML/Graphics/Text.h | 434 ----- bindings/c/include/SFML/Graphics/Types.h | 40 - bindings/c/include/SFML/Graphics/View.h | 209 --- bindings/c/include/SFML/Network.h | 41 - bindings/c/include/SFML/Network/Ftp.h | 449 ----- bindings/c/include/SFML/Network/Http.h | 257 --- bindings/c/include/SFML/Network/IpAddress.h | 131 -- bindings/c/include/SFML/Network/Packet.h | 158 -- .../c/include/SFML/Network/SocketSelector.h | 118 -- .../c/include/SFML/Network/SocketStatus.h | 43 - bindings/c/include/SFML/Network/TcpListener.h | 97 -- bindings/c/include/SFML/Network/TcpSocket.h | 172 -- bindings/c/include/SFML/Network/Types.h | 43 - bindings/c/include/SFML/Network/UdpSocket.h | 162 -- bindings/c/include/SFML/OpenGL.h | 58 - bindings/c/include/SFML/System.h | 39 - bindings/c/include/SFML/System/Clock.h | 80 - bindings/c/include/SFML/System/Mutex.h | 68 - bindings/c/include/SFML/System/Sleep.h | 43 - bindings/c/include/SFML/System/Thread.h | 80 - bindings/c/include/SFML/System/Types.h | 33 - bindings/c/include/SFML/Window.h | 42 - bindings/c/include/SFML/Window/Context.h | 61 - bindings/c/include/SFML/Window/Event.h | 178 -- bindings/c/include/SFML/Window/Input.h | 102 -- bindings/c/include/SFML/Window/Joystick.h | 135 -- bindings/c/include/SFML/Window/Keyboard.h | 156 -- bindings/c/include/SFML/Window/Mouse.h | 74 - bindings/c/include/SFML/Window/Types.h | 33 - bindings/c/include/SFML/Window/VideoMode.h | 77 - bindings/c/include/SFML/Window/Window.h | 319 ---- bindings/c/include/SFML/Window/WindowHandle.h | 57 - bindings/c/license.txt | 31 - bindings/c/src/SFML/Audio/CMakeLists.txt | 34 - bindings/c/src/SFML/Audio/Listener.cpp | 96 -- bindings/c/src/SFML/Audio/Music.cpp | 297 ---- bindings/c/src/SFML/Audio/MusicStruct.h | 43 - bindings/c/src/SFML/Audio/Sound.cpp | 277 --- bindings/c/src/SFML/Audio/SoundBuffer.cpp | 157 -- .../c/src/SFML/Audio/SoundBufferRecorder.cpp | 90 - .../SFML/Audio/SoundBufferRecorderStruct.h | 45 - bindings/c/src/SFML/Audio/SoundBufferStruct.h | 43 - bindings/c/src/SFML/Audio/SoundRecorder.cpp | 90 - .../c/src/SFML/Audio/SoundRecorderStruct.h | 102 -- bindings/c/src/SFML/Audio/SoundStream.cpp | 265 --- bindings/c/src/SFML/Audio/SoundStreamStruct.h | 97 -- bindings/c/src/SFML/Audio/SoundStruct.h | 45 - bindings/c/src/SFML/CMakeLists.txt | 33 - bindings/c/src/SFML/ConvertEvent.h | 107 -- bindings/c/src/SFML/Graphics/CMakeLists.txt | 46 - bindings/c/src/SFML/Graphics/Color.cpp | 102 -- bindings/c/src/SFML/Graphics/Font.cpp | 148 -- bindings/c/src/SFML/Graphics/FontStruct.h | 46 - bindings/c/src/SFML/Graphics/Image.cpp | 254 --- bindings/c/src/SFML/Graphics/ImageStruct.h | 68 - bindings/c/src/SFML/Graphics/Rect.cpp | 100 -- bindings/c/src/SFML/Graphics/RenderImage.cpp | 248 --- .../c/src/SFML/Graphics/RenderImageStruct.h | 48 - bindings/c/src/SFML/Graphics/RenderWindow.cpp | 481 ------ .../c/src/SFML/Graphics/RenderWindowStruct.h | 46 - bindings/c/src/SFML/Graphics/Shader.cpp | 167 -- bindings/c/src/SFML/Graphics/ShaderStruct.h | 43 - bindings/c/src/SFML/Graphics/Shape.cpp | 469 ----- bindings/c/src/SFML/Graphics/ShapeStruct.h | 43 - bindings/c/src/SFML/Graphics/Sprite.cpp | 405 ----- bindings/c/src/SFML/Graphics/SpriteStruct.h | 47 - bindings/c/src/SFML/Graphics/Text.cpp | 432 ----- bindings/c/src/SFML/Graphics/TextStruct.h | 49 - bindings/c/src/SFML/Graphics/View.cpp | 215 --- bindings/c/src/SFML/Graphics/ViewStruct.h | 43 - bindings/c/src/SFML/Internal.h | 108 -- bindings/c/src/SFML/Main/CMakeLists.txt | 9 - bindings/c/src/SFML/Main/SFML_Main.cpp | 44 - bindings/c/src/SFML/Network/CMakeLists.txt | 37 - bindings/c/src/SFML/Network/Ftp.cpp | 377 ---- bindings/c/src/SFML/Network/FtpStruct.h | 93 - bindings/c/src/SFML/Network/Http.cpp | 213 --- bindings/c/src/SFML/Network/HttpStruct.h | 61 - bindings/c/src/SFML/Network/IpAddress.cpp | 137 -- bindings/c/src/SFML/Network/Packet.cpp | 210 --- bindings/c/src/SFML/Network/PacketStruct.h | 43 - .../c/src/SFML/Network/SocketSelector.cpp | 142 -- .../c/src/SFML/Network/SocketSelectorStruct.h | 43 - bindings/c/src/SFML/Network/TcpListener.cpp | 94 - .../c/src/SFML/Network/TcpListenerStruct.h | 43 - bindings/c/src/SFML/Network/TcpSocket.cpp | 179 -- bindings/c/src/SFML/Network/TcpSocketStruct.h | 43 - bindings/c/src/SFML/Network/UdpSocket.cpp | 184 -- bindings/c/src/SFML/Network/UdpSocketStruct.h | 43 - bindings/c/src/SFML/System/CMakeLists.txt | 24 - bindings/c/src/SFML/System/Clock.cpp | 77 - bindings/c/src/SFML/System/ClockStruct.h | 43 - bindings/c/src/SFML/System/Mutex.cpp | 66 - bindings/c/src/SFML/System/MutexStruct.h | 43 - bindings/c/src/SFML/System/Sleep.cpp | 39 - bindings/c/src/SFML/System/Thread.cpp | 78 - bindings/c/src/SFML/System/ThreadStruct.h | 48 - bindings/c/src/SFML/Window/CMakeLists.txt | 29 - bindings/c/src/SFML/Window/Context.cpp | 57 - bindings/c/src/SFML/Window/ContextStruct.h | 43 - bindings/c/src/SFML/Window/Joystick.cpp | 84 - bindings/c/src/SFML/Window/Keyboard.cpp | 39 - bindings/c/src/SFML/Window/Mouse.cpp | 53 - bindings/c/src/SFML/Window/VideoMode.cpp | 84 - bindings/c/src/SFML/Window/Window.cpp | 346 ---- bindings/c/src/SFML/Window/WindowStruct.h | 43 - 140 files changed, 19088 deletions(-) delete mode 100644 bindings/c/CMakeLists.txt delete mode 100644 bindings/c/cmake/Config.cmake delete mode 100644 bindings/c/cmake/Macros.cmake delete mode 100644 bindings/c/doc/CMakeLists.txt delete mode 100644 bindings/c/doc/doxyfile.in delete mode 100644 bindings/c/doc/doxygen.css delete mode 100644 bindings/c/doc/footer.htm delete mode 100644 bindings/c/doc/header.htm delete mode 100644 bindings/c/doc/logo-bg.jpg delete mode 100644 bindings/c/doc/logo.jpg delete mode 100644 bindings/c/doc/mainpage.hpp delete mode 100644 bindings/c/include/SFML/Audio.h delete mode 100644 bindings/c/include/SFML/Audio/Listener.h delete mode 100644 bindings/c/include/SFML/Audio/Music.h delete mode 100644 bindings/c/include/SFML/Audio/Sound.h delete mode 100644 bindings/c/include/SFML/Audio/SoundBuffer.h delete mode 100644 bindings/c/include/SFML/Audio/SoundBufferRecorder.h delete mode 100644 bindings/c/include/SFML/Audio/SoundRecorder.h delete mode 100644 bindings/c/include/SFML/Audio/SoundStatus.h delete mode 100644 bindings/c/include/SFML/Audio/SoundStream.h delete mode 100644 bindings/c/include/SFML/Audio/Types.h delete mode 100644 bindings/c/include/SFML/Config.h delete mode 100644 bindings/c/include/SFML/Graphics.h delete mode 100644 bindings/c/include/SFML/Graphics/BlendMode.h delete mode 100644 bindings/c/include/SFML/Graphics/Color.h delete mode 100644 bindings/c/include/SFML/Graphics/Font.h delete mode 100644 bindings/c/include/SFML/Graphics/Glyph.h delete mode 100644 bindings/c/include/SFML/Graphics/Image.h delete mode 100644 bindings/c/include/SFML/Graphics/Rect.h delete mode 100644 bindings/c/include/SFML/Graphics/RenderImage.h delete mode 100644 bindings/c/include/SFML/Graphics/RenderWindow.h delete mode 100644 bindings/c/include/SFML/Graphics/Shader.h delete mode 100644 bindings/c/include/SFML/Graphics/Shape.h delete mode 100644 bindings/c/include/SFML/Graphics/Sprite.h delete mode 100644 bindings/c/include/SFML/Graphics/Text.h delete mode 100644 bindings/c/include/SFML/Graphics/Types.h delete mode 100644 bindings/c/include/SFML/Graphics/View.h delete mode 100644 bindings/c/include/SFML/Network.h delete mode 100644 bindings/c/include/SFML/Network/Ftp.h delete mode 100644 bindings/c/include/SFML/Network/Http.h delete mode 100644 bindings/c/include/SFML/Network/IpAddress.h delete mode 100644 bindings/c/include/SFML/Network/Packet.h delete mode 100644 bindings/c/include/SFML/Network/SocketSelector.h delete mode 100644 bindings/c/include/SFML/Network/SocketStatus.h delete mode 100644 bindings/c/include/SFML/Network/TcpListener.h delete mode 100644 bindings/c/include/SFML/Network/TcpSocket.h delete mode 100644 bindings/c/include/SFML/Network/Types.h delete mode 100644 bindings/c/include/SFML/Network/UdpSocket.h delete mode 100644 bindings/c/include/SFML/OpenGL.h delete mode 100644 bindings/c/include/SFML/System.h delete mode 100644 bindings/c/include/SFML/System/Clock.h delete mode 100644 bindings/c/include/SFML/System/Mutex.h delete mode 100644 bindings/c/include/SFML/System/Sleep.h delete mode 100644 bindings/c/include/SFML/System/Thread.h delete mode 100644 bindings/c/include/SFML/System/Types.h delete mode 100644 bindings/c/include/SFML/Window.h delete mode 100644 bindings/c/include/SFML/Window/Context.h delete mode 100644 bindings/c/include/SFML/Window/Event.h delete mode 100644 bindings/c/include/SFML/Window/Input.h delete mode 100644 bindings/c/include/SFML/Window/Joystick.h delete mode 100644 bindings/c/include/SFML/Window/Keyboard.h delete mode 100644 bindings/c/include/SFML/Window/Mouse.h delete mode 100644 bindings/c/include/SFML/Window/Types.h delete mode 100644 bindings/c/include/SFML/Window/VideoMode.h delete mode 100644 bindings/c/include/SFML/Window/Window.h delete mode 100644 bindings/c/include/SFML/Window/WindowHandle.h delete mode 100644 bindings/c/license.txt delete mode 100644 bindings/c/src/SFML/Audio/CMakeLists.txt delete mode 100644 bindings/c/src/SFML/Audio/Listener.cpp delete mode 100644 bindings/c/src/SFML/Audio/Music.cpp delete mode 100644 bindings/c/src/SFML/Audio/MusicStruct.h delete mode 100644 bindings/c/src/SFML/Audio/Sound.cpp delete mode 100644 bindings/c/src/SFML/Audio/SoundBuffer.cpp delete mode 100644 bindings/c/src/SFML/Audio/SoundBufferRecorder.cpp delete mode 100644 bindings/c/src/SFML/Audio/SoundBufferRecorderStruct.h delete mode 100644 bindings/c/src/SFML/Audio/SoundBufferStruct.h delete mode 100644 bindings/c/src/SFML/Audio/SoundRecorder.cpp delete mode 100644 bindings/c/src/SFML/Audio/SoundRecorderStruct.h delete mode 100644 bindings/c/src/SFML/Audio/SoundStream.cpp delete mode 100644 bindings/c/src/SFML/Audio/SoundStreamStruct.h delete mode 100644 bindings/c/src/SFML/Audio/SoundStruct.h delete mode 100644 bindings/c/src/SFML/CMakeLists.txt delete mode 100644 bindings/c/src/SFML/ConvertEvent.h delete mode 100644 bindings/c/src/SFML/Graphics/CMakeLists.txt delete mode 100644 bindings/c/src/SFML/Graphics/Color.cpp delete mode 100644 bindings/c/src/SFML/Graphics/Font.cpp delete mode 100644 bindings/c/src/SFML/Graphics/FontStruct.h delete mode 100644 bindings/c/src/SFML/Graphics/Image.cpp delete mode 100644 bindings/c/src/SFML/Graphics/ImageStruct.h delete mode 100644 bindings/c/src/SFML/Graphics/Rect.cpp delete mode 100644 bindings/c/src/SFML/Graphics/RenderImage.cpp delete mode 100644 bindings/c/src/SFML/Graphics/RenderImageStruct.h delete mode 100644 bindings/c/src/SFML/Graphics/RenderWindow.cpp delete mode 100644 bindings/c/src/SFML/Graphics/RenderWindowStruct.h delete mode 100644 bindings/c/src/SFML/Graphics/Shader.cpp delete mode 100644 bindings/c/src/SFML/Graphics/ShaderStruct.h delete mode 100644 bindings/c/src/SFML/Graphics/Shape.cpp delete mode 100644 bindings/c/src/SFML/Graphics/ShapeStruct.h delete mode 100644 bindings/c/src/SFML/Graphics/Sprite.cpp delete mode 100644 bindings/c/src/SFML/Graphics/SpriteStruct.h delete mode 100644 bindings/c/src/SFML/Graphics/Text.cpp delete mode 100644 bindings/c/src/SFML/Graphics/TextStruct.h delete mode 100644 bindings/c/src/SFML/Graphics/View.cpp delete mode 100644 bindings/c/src/SFML/Graphics/ViewStruct.h delete mode 100644 bindings/c/src/SFML/Internal.h delete mode 100644 bindings/c/src/SFML/Main/CMakeLists.txt delete mode 100644 bindings/c/src/SFML/Main/SFML_Main.cpp delete mode 100644 bindings/c/src/SFML/Network/CMakeLists.txt delete mode 100644 bindings/c/src/SFML/Network/Ftp.cpp delete mode 100644 bindings/c/src/SFML/Network/FtpStruct.h delete mode 100644 bindings/c/src/SFML/Network/Http.cpp delete mode 100644 bindings/c/src/SFML/Network/HttpStruct.h delete mode 100644 bindings/c/src/SFML/Network/IpAddress.cpp delete mode 100644 bindings/c/src/SFML/Network/Packet.cpp delete mode 100644 bindings/c/src/SFML/Network/PacketStruct.h delete mode 100644 bindings/c/src/SFML/Network/SocketSelector.cpp delete mode 100644 bindings/c/src/SFML/Network/SocketSelectorStruct.h delete mode 100644 bindings/c/src/SFML/Network/TcpListener.cpp delete mode 100644 bindings/c/src/SFML/Network/TcpListenerStruct.h delete mode 100644 bindings/c/src/SFML/Network/TcpSocket.cpp delete mode 100644 bindings/c/src/SFML/Network/TcpSocketStruct.h delete mode 100644 bindings/c/src/SFML/Network/UdpSocket.cpp delete mode 100644 bindings/c/src/SFML/Network/UdpSocketStruct.h delete mode 100644 bindings/c/src/SFML/System/CMakeLists.txt delete mode 100644 bindings/c/src/SFML/System/Clock.cpp delete mode 100644 bindings/c/src/SFML/System/ClockStruct.h delete mode 100644 bindings/c/src/SFML/System/Mutex.cpp delete mode 100644 bindings/c/src/SFML/System/MutexStruct.h delete mode 100644 bindings/c/src/SFML/System/Sleep.cpp delete mode 100644 bindings/c/src/SFML/System/Thread.cpp delete mode 100644 bindings/c/src/SFML/System/ThreadStruct.h delete mode 100644 bindings/c/src/SFML/Window/CMakeLists.txt delete mode 100644 bindings/c/src/SFML/Window/Context.cpp delete mode 100644 bindings/c/src/SFML/Window/ContextStruct.h delete mode 100644 bindings/c/src/SFML/Window/Joystick.cpp delete mode 100644 bindings/c/src/SFML/Window/Keyboard.cpp delete mode 100644 bindings/c/src/SFML/Window/Mouse.cpp delete mode 100644 bindings/c/src/SFML/Window/VideoMode.cpp delete mode 100644 bindings/c/src/SFML/Window/Window.cpp delete mode 100644 bindings/c/src/SFML/Window/WindowStruct.h diff --git a/bindings/c/CMakeLists.txt b/bindings/c/CMakeLists.txt deleted file mode 100644 index db4f9e17..00000000 --- a/bindings/c/CMakeLists.txt +++ /dev/null @@ -1,60 +0,0 @@ - -cmake_minimum_required(VERSION 2.8) - -# set a default build type if none was provided -# this has to be done before the project() instruction! -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build (Debug or Release)" FORCE) -endif() - -# project name -project(CSFML) - -# include the configuration file -include(${CMAKE_SOURCE_DIR}/cmake/Config.cmake) - -# setup version numbers -set(VERSION_MAJOR 2) -set(VERSION_MINOR 0) -set(VERSION_PATCH 0) - -# add the CSFML header path -include_directories(${CMAKE_SOURCE_DIR}/include) - -# force dynamic build (static build is not supported) -set(BUILD_SHARED_LIBS TRUE) - -# add an option for building the API documentation -set(BUILD_DOC FALSE CACHE BOOL "TRUE to generate the API documentation, FALSE to ignore it") - -# disable the rpath stuff -set(CMAKE_SKIP_BUILD_RPATH TRUE) - -# define an option for choosing between static and dynamic C runtime (Windows only) -if(WINDOWS) - set(STATIC_STD_LIBS FALSE CACHE BOOL "TRUE to statically link to the standard libraries, FALSE to use them as DLLs") - - # for VC++, we can apply it globally by modifying the compiler flags - if(COMPILER_MSVC AND STATIC_STD_LIBS) - foreach(flag - CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE - CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) - if(${flag} MATCHES "/MD") - string(REGEX REPLACE "/MD" "/MT" ${flag} "${${flag}}") - endif() - endforeach() - endif() -endif() - -# add the subdirectories -add_subdirectory(src/SFML) -if(BUILD_DOC) - add_subdirectory(doc) -endif() - -# setup the install rules -install(DIRECTORY include - DESTINATION . - COMPONENT devel - PATTERN ".svn" EXCLUDE) -install(FILES license.txt DESTINATION ${INSTALL_MISC_DIR}) diff --git a/bindings/c/cmake/Config.cmake b/bindings/c/cmake/Config.cmake deleted file mode 100644 index 6465251c..00000000 --- a/bindings/c/cmake/Config.cmake +++ /dev/null @@ -1,48 +0,0 @@ - -# detect the OS -if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") - set(WINDOWS 1) -elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - set(LINUX 1) -elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - set(MACOSX 1) -else() - message(WARNING "Unsupported operating system") - return() -endif() - -# detect the architecture -# note: this test won't work for cross-compilation -include(CheckTypeSize) -check_type_size(void* SIZEOF_VOID_PTR) -if(${SIZEOF_VOID_PTR} MATCHES "^8$") - set(ARCH_BITS 64) -else() - set(ARCH_BITS 32) -endif() - -# detect the compiler and its version -if(CMAKE_COMPILER_IS_GNUCXX) - set(COMPILER_GCC 1) - execute_process(COMMAND "${CMAKE_CXX_COMPILER}" "-dumpversion" OUTPUT_VARIABLE GCC_VERSION_OUTPUT) - string(REGEX REPLACE "([0-9]+\\.[0-9]+).*" "\\1" GCC_VERSION "${GCC_VERSION_OUTPUT}") -elseif(MSVC_VERSION EQUAL 1400) - set(COMPILER_MSVC 1) - set(MSVC_VERSION 2005) -elseif(MSVC_VERSION EQUAL 1500) - set(COMPILER_MSVC 1) - set(MSVC_VERSION 2008) -elseif(MSVC_VERSION EQUAL 1600) - set(COMPILER_MSVC 1) - set(MSVC_VERSION 2010) -else() - message(WARNING "Unsupported compiler") - return() -endif() - -# define the install directory for miscellaneous files -if(WINDOWS) - set(INSTALL_MISC_DIR .) -elseif(UNIX) - set(INSTALL_MISC_DIR share/CSFML) -endif() diff --git a/bindings/c/cmake/Macros.cmake b/bindings/c/cmake/Macros.cmake deleted file mode 100644 index a89c05eb..00000000 --- a/bindings/c/cmake/Macros.cmake +++ /dev/null @@ -1,95 +0,0 @@ - -# some of these macros are inspired from the boost/cmake macros - -# check if a value is contained in a list -# sets ${var} to TRUE if the value is found -macro(csfml_list_contains var value) - set(${var}) - foreach(value2 ${ARGN}) - if(${value} STREQUAL ${value2}) - set(${var} TRUE) - endif() - endforeach() -endmacro() - -# parse a list of arguments and options -# ex: sfml_parse_arguments(THIS "SOURCES;DEPENDS" "FLAG" FLAG SOURCES s1 s2 s3 DEPENDS d1 d2) -# will define the following variables: -# - THIS_SOURCES (s1 s2 s3) -# - THIS_DEPENDS (d1 d2) -# - THIS_FLAG TRUE -macro(csfml_parse_arguments prefix arg_names option_names) - foreach(arg_name ${arg_names}) - set(${prefix}_${arg_name}) - endforeach() - foreach(option_name ${option_names}) - set(${prefix}_${option_name} FALSE) - endforeach() - set(current_arg_name) - set(current_arg_list) - foreach(arg ${ARGN}) - csfml_list_contains(is_arg_name ${arg} ${arg_names}) - if(is_arg_name) - set(${prefix}_${current_arg_name} ${current_arg_list}) - set(current_arg_name ${arg}) - set(current_arg_list) - else() - csfml_list_contains(is_option ${arg} ${option_names}) - if(is_option) - set(${prefix}_${arg} TRUE) - else() - set(current_arg_list ${current_arg_list} ${arg}) - endif() - endif() - endforeach() - set(${prefix}_${current_arg_name} ${current_arg_list}) -endmacro() - -# add a new target which is a CSFML library -# ex: csfml_add_library(sfml-graphics -# SOURCES sprite.cpp image.cpp ... -# DEPENDS sfml-window sfml-system) -macro(csfml_add_library target) - - # parse the arguments - csfml_parse_arguments(THIS "SOURCES;DEPENDS" "" ${ARGN}) - - # create the target - add_library(${target} ${THIS_SOURCES}) - - # adjust the output file prefix/suffix to match our conventions - if(WINDOWS) - # include the major version number in Windows shared library names (but not import library names) - set_target_properties(${target} PROPERTIES DEBUG_POSTFIX -d) - set_target_properties(${target} PROPERTIES SUFFIX "-${VERSION_MAJOR}${CMAKE_SHARED_LIBRARY_SUFFIX}") - else() - set_target_properties(${target} PROPERTIES DEBUG_POSTFIX -d) - endif() - if (WINDOWS AND COMPILER_GCC) - # on Windows/gcc get rid of "lib" prefix for shared libraries, - # and transform the ".dll.a" suffix into ".a" for import libraries - set_target_properties(${target} PROPERTIES PREFIX "") - set_target_properties(${target} PROPERTIES IMPORT_SUFFIX ".a") - endif() - - # set the version and soversion of the target (for compatible systems -- mostly Linuxes) - set_target_properties(${target} PROPERTIES SOVERSION ${VERSION_MAJOR}) - set_target_properties(${target} PROPERTIES VERSION ${VERSION_MAJOR}.${VERSION_MINOR}) - - # for gcc 4.x on Windows, apply the STATIC_STD_LIBS option if it is enabled - if(WINDOWS AND COMPILER_GCC AND STATIC_STD_LIBS) - if(${GCC_VERSION} MATCHES "4\\..*") - set_target_properties(${target} PROPERTIES LINK_FLAGS "-static-libgcc -static-libstdc++") - endif() - endif() - - # link the target to its external dependencies (C++ SFML libraries) - target_link_libraries(${target} ${THIS_DEPENDS}) - - # add the install rule - install(TARGETS ${target} - RUNTIME DESTINATION bin COMPONENT bin - LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT bin - ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT devel) - -endmacro() diff --git a/bindings/c/doc/CMakeLists.txt b/bindings/c/doc/CMakeLists.txt deleted file mode 100644 index 0eb1c8fa..00000000 --- a/bindings/c/doc/CMakeLists.txt +++ /dev/null @@ -1,50 +0,0 @@ - -# find doxygen -find_package(Doxygen REQUIRED) - -# set the input and output documentation paths -set(DOXYGEN_INPUT_DIR ${CMAKE_SOURCE_DIR}) -set(DOXYGEN_OUTPUT_DIR ${CMAKE_BINARY_DIR}/doc) - -# see if we can generate the CHM documentation -if(WINDOWS) - # if HHC is found, we can generate the CHM (compressed HTML) output - find_program(DOXYGEN_HHC_PROGRAM - NAMES hhc.exe - PATHS "c:/Program Files/HTML Help Workshop" - DOC "HTML Help Compiler program") - if(DOXYGEN_HHC_PROGRAM) - set(DOXYGEN_GENERATE_HTMLHELP YES) - else() - set(DOXYGEN_GENERATE_HTMLHELP NO) - endif() -else() - set(DOXYGEN_HHC_PROGRAM) - set(DOXYGEN_GENERATE_HTMLHELP NO) -endif() - -# configure the source Doxyfile by copying it and replacing all @variables@ -set(DOXYGEN_CONFIGURED_INPUT ${DOXYGEN_OUTPUT_DIR}/doxyfile) -configure_file(${DOXYGEN_INPUT_DIR}/doc/doxyfile.in ${DOXYGEN_CONFIGURED_INPUT} @ONLY) - -# copy the files needed by the documentation -configure_file(${DOXYGEN_INPUT_DIR}/doc/doxygen.css ${DOXYGEN_OUTPUT_DIR}/html/doxygen.css COPYONLY) -configure_file(${DOXYGEN_INPUT_DIR}/doc/logo.jpg ${DOXYGEN_OUTPUT_DIR}/html/logo.jpg COPYONLY) -configure_file(${DOXYGEN_INPUT_DIR}/doc/logo-bg.jpg ${DOXYGEN_OUTPUT_DIR}/html/logo-bg.jpg COPYONLY) - -# target setup -add_custom_target(doc - COMMAND ${CMAKE_COMMAND} -E echo_append "Building API Documentation..." - COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_CONFIGURED_INPUT} - COMMAND ${CMAKE_COMMAND} -E echo "Done." - WORKING_DIRECTORY ${DOXYGEN_INPUT_DIR}) - -# setup install rules -install(DIRECTORY ${DOXYGEN_OUTPUT_DIR}/html - DESTINATION ${INSTALL_MISC_DIR}/doc - COMPONENT doc) -if(DOXYGEN_HHC_PROGRAM) - install(FILES ${DOXYGEN_OUTPUT_DIR}/SFML.chm - DESTINATION ${INSTALL_MISC_DIR}/doc - COMPONENT doc) -endif() diff --git a/bindings/c/doc/doxyfile.in b/bindings/c/doc/doxyfile.in deleted file mode 100644 index 9c94ed88..00000000 --- a/bindings/c/doc/doxyfile.in +++ /dev/null @@ -1,1513 +0,0 @@ -# Doxyfile 1.5.8 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# http://www.gnu.org/software/libiconv for the list of possible encodings. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = SFML - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = @VERSION_MAJOR@.@VERSION_MINOR@ - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = "@DOXYGEN_OUTPUT_DIR@" - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, -# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, -# Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene, -# Spanish, Swedish, and Ukrainian. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = YES - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. - -INLINE_INHERITED_MEMB = YES - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = NO - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like regular Qt-style comments -# (thus requiring an explicit @brief command for a brief description.) - -JAVADOC_AUTOBRIEF = YES - -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will -# interpret the first line (until the first dot) of a Qt-style -# comment as the brief description. If set to NO, the comments -# will behave just like regular Qt-style comments (thus requiring -# an explicit \brief command for a brief description.) - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for -# Java. For instance, namespaces will be presented as packages, qualified -# scopes will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources only. Doxygen will then generate output that is more tailored for -# Fortran. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for -# VHDL. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it parses. -# With this tag you can assign which parser to use for a given extension. -# Doxygen has a built-in mapping, but you can override or extend it using this tag. -# The format is ext=language, where ext is a file extension, and language is one of -# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, -# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat -# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), -# use: inc=Fortran f=C - -EXTENSION_MAPPING = - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. -# Doxygen will parse them like normal C++ but will assume all classes use public -# instead of private inheritance when no explicit protection keyword is present. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate getter -# and setter methods for a property. Setting this option to YES (the default) -# will make doxygen to replace the get and set methods by a property in the -# documentation. This will only work if the methods are indeed getting or -# setting a simple type. If this is not the case, or you want to show the -# methods anyway, you should set this option to NO. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum -# is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically -# be useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. - -TYPEDEF_HIDES_STRUCT = NO - -# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to -# determine which symbols to keep in memory and which to flush to disk. -# When the cache is full, less often used symbols will be written to disk. -# For small to medium size projects (<1000 input files) the default value is -# probably good enough. For larger projects a too small cache size can cause -# doxygen to be busy swapping symbols to and from disk most of the time -# causing a significant performance penality. -# If the system has enough physical memory increasing the cache will improve the -# performance by keeping more symbols in memory. Note that the value works on -# a logarithmic scale so increasing the size by one will rougly double the -# memory usage. The cache size is given by this formula: -# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols - -SYMBOL_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = NO - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base -# name of the file that contains the anonymous namespace. By default -# anonymous namespace are hidden. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the -# hierarchy of group names into alphabetical order. If set to NO (the default) -# the group names will appear in their defined order. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and defines in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. The default is NO. - -SHOW_DIRECTORIES = NO - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. -# This will remove the Files entry from the Quick Index and from the -# Folder Tree View (if specified). The default is YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the -# Namespaces page. This will remove the Namespaces entry from the Quick Index -# and from the Folder Tree View (if specified). The default is YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command , where is the value of -# the FILE_VERSION_FILTER tag, and is the name of an input file -# provided by doxygen. Whatever the program writes to standard output -# is used as the file version. See the manual for examples. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by -# doxygen. The layout file controls the global structure of the generated output files -# in an output format independent way. The create the layout file that represents -# doxygen's defaults, run doxygen with the -l option. You can optionally specify a -# file name after the option, if omitted DoxygenLayout.xml will be used as the name -# of the layout file. - -LAYOUT_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be abled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. - -WARN_NO_PARAMDOC = YES - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = "@DOXYGEN_INPUT_DIR@/include/SFML" \ - "@DOXYGEN_INPUT_DIR@/doc/mainpage.hpp" - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is -# also the default input encoding. Doxygen uses libiconv (or the iconv built -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for -# the list of possible encodings. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx -# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 - -FILE_PATTERNS = *.h \ - *.hpp - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or -# directories that are symbolic links (a Unix filesystem feature) are excluded -# from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* - -EXCLUDE_PATTERNS = .svn - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER -# is applied to all files. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. Otherwise they will link to the documentation. - -REFERENCES_LINK_SOURCE = NO - -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = YES - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .htm - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. - -HTML_HEADER = "@DOXYGEN_INPUT_DIR@/doc/header.htm" - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = "@DOXYGEN_INPUT_DIR@/doc/footer.htm" - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# stylesheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = "@DOXYGEN_INPUT_DIR@/doc/doxygen.css" - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. For this to work a browser that supports -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox -# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). - -HTML_DYNAMIC_SECTIONS = NO - -# If the GENERATE_DOCSET tag is set to YES, additional index files -# will be generated that can be used as input for Apple's Xcode 3 -# integrated development environment, introduced with OSX 10.5 (Leopard). -# To create a documentation set, doxygen will generate a Makefile in the -# HTML output directory. Running make will produce the docset in that -# directory and running "make install" will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find -# it at startup. -# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. - -GENERATE_DOCSET = NO - -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the -# feed. A documentation feed provides an umbrella under which multiple -# documentation sets from a single provider (such as a company or product suite) -# can be grouped. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that -# should uniquely identify the documentation set bundle. This should be a -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen -# will append .docset to the name. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = @DOXYGEN_GENERATE_HTMLHELP@ - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = ../SFML.chm - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = "@DOXYGEN_HHC_PROGRAM@" - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING -# is used to encode HtmlHelp index (hhk), content (hhc) and project file -# content. - -CHM_INDEX_ENCODING = - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER -# are set, an additional index file will be generated that can be used as input for -# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated -# HTML documentation. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can -# be used to specify the file name of the resulting .qch file. -# The path specified is relative to the HTML output folder. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#namespace - -QHP_NAMESPACE = - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#virtual-folders - -QHP_VIRTUAL_FOLDER = doc - -# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. -# For more information please see -# http://doc.trolltech.com/qthelpproject.html#custom-filters - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see -# Qt Help Project / Custom Filters. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's -# filter section matches. -# Qt Help Project / Filter Attributes. - -QHP_SECT_FILTER_ATTRS = - -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can -# be used to specify the location of Qt's qhelpgenerator. -# If non-empty doxygen will try to run qhelpgenerator on the generated -# .qhp file. - -QHG_LOCATION = - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = NO - -# This tag can be used to set the number of enum values (range [1..20]) -# that doxygen will group on one line in the generated HTML documentation. - -ENUM_VALUES_PER_LINE = 1 - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. -# If the tag value is set to FRAME, a side panel will be generated -# containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, -# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are -# probably better off using the HTML help feature. Other possible values -# for this tag are: HIERARCHIES, which will generate the Groups, Directories, -# and Class Hierarchy pages using a tree view instead of an ordered list; -# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which -# disables this behavior completely. For backwards compatibility with previous -# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE -# respectively. - -GENERATE_TREEVIEW = NO - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -# Use this tag to change the font size of Latex formulas included -# as images in the HTML documentation. The default is 10. Note that -# when you change the font size after a successful doxygen run you need -# to manually remove any form_*.png images from the HTML output directory -# to force them to be regenerated. - -FORMULA_FONTSIZE = 10 - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = NO - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = latex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4wide - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = NO - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = NO - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = NO - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_DEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# in the INCLUDE_PATH (see below) will be search if a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator -# instead of the = operator. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all function-like macros that are alone -# on a line, have an all uppercase name, and do not end with a semicolon. Such -# function macros are typically used for boiler-plate code, and will confuse -# the parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option is superseded by the HAVE_DOT option below. This is only a -# fallback. It is recommended to install and use dot, since it yields more -# powerful graphs. - -CLASS_DIAGRAMS = YES - -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see -# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. - -MSCGEN_PATH = D:/Programmes/mscgen - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = NO - -# By default doxygen will write a font called FreeSans.ttf to the output -# directory and reference it in all dot files that doxygen generates. This -# font does not include all possible unicode characters however, so when you need -# these (or just want a differently looking font) you can specify the font name -# using DOT_FONTNAME. You need need to make sure dot is able to find the font, -# which can be done by putting it in a standard location or by setting the -# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory -# containing the font. - -DOT_FONTNAME = FreeSans - -# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. -# The default size is 10pt. - -DOT_FONTSIZE = 10 - -# By default doxygen will tell dot to use the output directory to look for the -# FreeSans.ttf font (which doxygen will put there itself). If you specify a -# different font using DOT_FONTNAME you can set the path where dot -# can find it using this tag. - -DOT_FONTPATH = - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# the CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for groups, showing the direct groups dependencies - -GROUP_GRAPHS = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = NO - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH and HAVE_DOT options are set to YES then -# doxygen will generate a call dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable call graphs -# for selected functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then -# doxygen will generate a caller dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable caller -# graphs for selected functions only using the \callergraph command. - -CALLER_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include -# relations between the files in the directories. - -DIRECTORY_GRAPH = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, jpg, or gif -# If left blank png will be used. - -DOT_IMAGE_FORMAT = png - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found in the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of -# nodes that will be shown in the graph. If the number of nodes in a graph -# becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the -# number of direct children of the root node in a graph is already larger than -# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. - -DOT_GRAPH_MAX_NODES = 50 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes -# that lay further from the root node will be omitted. Note that setting this -# option to 1 or 2 may greatly reduce the computation time needed for large -# code bases. Also note that the size of a graph can be further restricted by -# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. - -MAX_DOT_GRAPH_DEPTH = 0 - -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not -# seem to support this out of the box. Warning: Depending on the platform used, -# enabling this option may lead to badly anti-aliased labels on the edges of -# a graph (i.e. they become hard to read). - -DOT_TRANSPARENT = NO - -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) -# support this, this feature is disabled by default. - -DOT_MULTI_TARGETS = NO - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES - -#--------------------------------------------------------------------------- -# Options related to the search engine -#--------------------------------------------------------------------------- - -# The SEARCHENGINE tag specifies whether or not a search engine should be -# used. If set to NO the values of all tags below this one will be ignored. - -SEARCHENGINE = NO diff --git a/bindings/c/doc/doxygen.css b/bindings/c/doc/doxygen.css deleted file mode 100644 index b4dc5a0c..00000000 --- a/bindings/c/doc/doxygen.css +++ /dev/null @@ -1,681 +0,0 @@ -div#logo -{ - margin-bottom : 1em; - background : url("./logo-bg.jpg") repeat-x; -} - -div#logo a -{ - display : block; -} - -p#footer -{ - text-decoration : overline; - color : #606060; - padding-top : 1em; - text-align : center; - font-size : smaller; -} - -p#footer a -{ - color : #007298; - text-decoration : none; -} - -/* The standard CSS for doxygen */ - -body, table, div, p, dl { - font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; - font-size: 12px; -} - -/* @group Heading Levels */ - -h1 { - font-size: 150%; -} - -h2 { - font-size: 120%; -} - -h3 { - font-size: 100%; -} - -dt { - font-weight: bold; -} - -div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; -} - -p.startli, p.startdd, p.starttd { - margin-top: 2px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - padding: 2px; -} - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: underline; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #ffffff; - border: 1px double #869DCA; -} - -.contents a.qindexHL:visited { - color: #ffffff; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code { - color: #4665A2; -} - -a.codeRef { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -.fragment { - font-family: monospace, fixed; - font-size: 105%; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; -} - -div.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 10px; - margin-right: 10px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memItemLeft, .memItemRight, .memTemplParams { - border-top: 1px solid #C4CFE5; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 3px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.memitem { - padding: 0; - margin-bottom: 10px; -} - -.memname { - white-space: nowrap; - font-weight: bold; - margin-left: 6px; -} - -.memproto { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 8px; - -moz-border-radius-topleft: 8px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 8px; - -webkit-border-top-left-radius: 8px; - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - -} - -.memdoc { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 2px 5px; - background-color: #FBFCFD; - border-top-width: 0; - /* firefox specific markup */ - -moz-border-radius-bottomleft: 8px; - -moz-border-radius-bottomright: 8px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} - -/* @end */ - -/* @group Directory (tree) */ - -/* for the tree view */ - -.ftvtree { - font-family: sans-serif; - margin: 0px; -} - -/* these are for tree view when used as main index */ - -.directory { - font-size: 9pt; - font-weight: bold; - margin: 5px; -} - -.directory h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; -} - -/* -The following two styles can be used to replace the root node title -with an image of your choice. Simply uncomment the next two styles, -specify the name of your image and be sure to set 'height' to the -proper pixel height of your image. -*/ - -/* -.directory h3.swap { - height: 61px; - background-repeat: no-repeat; - background-image: url("yourimage.gif"); -} -.directory h3.swap span { - display: none; -} -*/ - -.directory > h3 { - margin-top: 0; -} - -.directory p { - margin: 0px; - white-space: nowrap; -} - -.directory div { - display: none; - margin: 0px; -} - -.directory img { - vertical-align: -30%; -} - -/* these are for tree view when not used as main index */ - -.directory-alt { - font-size: 100%; - font-weight: bold; -} - -.directory-alt h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; -} - -.directory-alt > h3 { - margin-top: 0; -} - -.directory-alt p { - margin: 0px; - white-space: nowrap; -} - -.directory-alt div { - display: none; - margin: 0px; -} - -.directory-alt img { - vertical-align: -30%; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable { - border-collapse:collapse; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; -} - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right: 15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; -} - -.navpath a:hover -{ - color:#6884BD; -} - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} diff --git a/bindings/c/doc/footer.htm b/bindings/c/doc/footer.htm deleted file mode 100644 index a03c90eb..00000000 --- a/bindings/c/doc/footer.htm +++ /dev/null @@ -1,8 +0,0 @@ - - - - - diff --git a/bindings/c/doc/header.htm b/bindings/c/doc/header.htm deleted file mode 100644 index 0ac39bc0..00000000 --- a/bindings/c/doc/header.htm +++ /dev/null @@ -1,12 +0,0 @@ - - - - SFML - Simple and Fast Multimedia Library - - - - - - diff --git a/bindings/c/doc/logo-bg.jpg b/bindings/c/doc/logo-bg.jpg deleted file mode 100644 index 06ecea2846f3a18601df591ca656bdf995d4e4ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22457 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

Dc+9pjE@Mp@NF1Y27NGlLp1RM{!KY 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%0DouGb|FV0(38t5$Aj3^pYenbU?+yFbNn` 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, as well as source -/// files.
-/// If you are looking for tutorials, you can visit the official website -/// at www.sfml-dev.org. -/// -/// \section example Short example -/// Here is a short example, to show you how simple it is to use SFML in C : -/// -/// \code -/// -/// #include -/// #include -/// -/// int main() -/// { -/// sfVideoMode mode = {800, 600, 32}; -/// sfRenderWindow* window; -/// sfImage* image; -/// sfSprite* sprite; -/// sfFont* font; -/// sfText* text; -/// sfMusic* music; -/// sfEvent event; -/// -/// /* Create the main window */ -/// window = sfRenderWindow_Create(mode, "SFML window", sfResize | sfClose, NULL); -/// if (!window) -/// return EXIT_FAILURE; -/// -/// /* Load a sprite to display */ -/// image = sfImage_CreateFromFile("cute_image.jpg"); -/// if (!image) -/// return EXIT_FAILURE; -/// sprite = sfSprite_Create(); -/// sfSprite_SetImage(sprite, image, sfTrue); -/// -/// /* Create a graphical text to display */ -/// font = sfFont_CreateFromFile("arial.ttf"); -/// if (!font) -/// return EXIT_FAILURE; -/// text = sfText_Create(); -/// sfText_SetString(text, "Hello SFML"); -/// sfText_SetFont(text, font); -/// sfText_SetCharacterSize(text, 50); -/// -/// /* Load a music to play */ -/// music = sfMusic_CreateFromFile("nice_music.ogg"); -/// if (!music) -/// return EXIT_FAILURE; -/// -/// /* Play the music */ -/// sfMusic_Play(music); -/// -/// /* Start the game loop */ -/// while (sfRenderWindow_IsOpened(window)) -/// { -/// /* Process events */ -/// while (sfRenderWindow_GetEvent(window, &event)) -/// { -/// /* Close window : exit */ -/// if (event.Type == sfEvtClosed) -/// sfRenderWindow_Close(window); -/// } -/// -/// /* Clear the screen */ -/// sfRenderWindow_Clear(window, sfBlack); -/// -/// /* Draw the sprite */ -/// sfRenderWindow_DrawSprite(window, sprite); -/// -/// /* Draw the text */ -/// sfRenderWindow_DrawText(window, text); -/// -/// /* Update the window */ -/// sfRenderWindow_Display(window); -/// } -/// -/// /* Cleanup resources */ -/// sfMusic_Destroy(music); -/// sfText_Destroy(text); -/// sfFont_Destroy(font); -/// sfSprite_Destroy(sprite); -/// sfImage_Destroy(image); -/// sfRenderWindow_Destroy(window); -/// -/// return EXIT_SUCCESS; -/// } -/// \endcode -//////////////////////////////////////////////////////////// diff --git a/bindings/c/include/SFML/Audio.h b/bindings/c/include/SFML/Audio.h deleted file mode 100644 index 64254130..00000000 --- a/bindings/c/include/SFML/Audio.h +++ /dev/null @@ -1,41 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_AUDIO_H -#define SFML_AUDIO_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// - -#include -#include -#include -#include -#include -#include -#include - - -#endif // SFML_AUDIO_H diff --git a/bindings/c/include/SFML/Audio/Listener.h b/bindings/c/include/SFML/Audio/Listener.h deleted file mode 100644 index fe3aa4b9..00000000 --- a/bindings/c/include/SFML/Audio/Listener.h +++ /dev/null @@ -1,91 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_LISTENER_H -#define SFML_LISTENER_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -/// Change the global volume of all the sounds -/// -/// \param volume : New global volume, in the range [0, 100] -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfListener_SetGlobalVolume(float volume); - -//////////////////////////////////////////////////////////// -/// Get the current value of the global volume of all the sounds -/// -/// \return Current global volume, in the range [0, 100] -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfListener_GetGlobalVolume(void); - -//////////////////////////////////////////////////////////// -/// Change the position of the listener -/// -/// \param x : X position of the listener in the world -/// \param y : Y position of the listener in the world -/// \param z : Z position of the listener in the world -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfListener_SetPosition(float x, float y, float z); - -//////////////////////////////////////////////////////////// -/// Get the current position of the listener -/// -/// \param x : X position of the listener in the world -/// \param y : Y position of the listener in the world -/// \param z : Z position of the listener in the world -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfListener_GetPosition(float* x, float* y, float* z); - -//////////////////////////////////////////////////////////// -/// Change the orientation of the listener -/// -/// \param x : X component of the listener's direction -/// \param y : Y component of the listener's direction -/// \param z : Z component of the listener's direction -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfListener_SetDirection(float x, float y, float z); - -//////////////////////////////////////////////////////////// -/// Get the current orientation of the listener -/// -/// \param x : X component of the listener's direction -/// \param y : Y component of the listener's direction -/// \param z : Z component of the listener's direction -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfListener_GetDirection(float* x, float* y, float* z); - - -#endif // SFML_LISTENER_H diff --git a/bindings/c/include/SFML/Audio/Music.h b/bindings/c/include/SFML/Audio/Music.h deleted file mode 100644 index 6077bb3d..00000000 --- a/bindings/c/include/SFML/Audio/Music.h +++ /dev/null @@ -1,292 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_MUSIC_H -#define SFML_MUSIC_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new music and load it from a file -/// -/// \param filename : Path of the music file to open -/// -/// \return A new sfMusic object (NULL if failed) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfMusic* sfMusic_CreateFromFile(const char* filename); - -//////////////////////////////////////////////////////////// -/// Create a new music and load it from a file in memory -/// -/// \param data : Pointer to the file data in memory -/// \param sizeInBytes : Size of the data to load, in bytes -/// -/// \return A new sfMusic object (NULL if failed) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfMusic* sfMusic_CreateFromMemory(const void* data, size_t sizeInBytes); - -//////////////////////////////////////////////////////////// -/// Destroy an existing music -/// -/// \param music : Music to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMusic_Destroy(sfMusic* music); - -//////////////////////////////////////////////////////////// -/// Set a music loop state -/// -/// \param music : Music to set the loop state -/// \param loop : sfTrue to play in loop, sfFalse to play once -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMusic_SetLoop(sfMusic* music, sfBool loop); - -//////////////////////////////////////////////////////////// -/// Tell whether or not a music is looping -/// -/// \param music : Music to get the loop state from -/// -/// \return sfTrue if the music is looping, sfFalse otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfMusic_GetLoop(const sfMusic* music); - -//////////////////////////////////////////////////////////// -/// Get a music duration -/// -/// \param music : Music to get the duration from -/// -/// \return Music duration, in milliseconds -/// -//////////////////////////////////////////////////////////// -CSFML_API sfUint32 sfMusic_GetDuration(const sfMusic* music); - -//////////////////////////////////////////////////////////// -/// Start playing a music -/// -/// \param music : Music to play -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMusic_Play(sfMusic* music); - -//////////////////////////////////////////////////////////// -/// Pause a music -/// -/// \param music : Music to pause -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMusic_Pause(sfMusic* music); - -//////////////////////////////////////////////////////////// -/// Stop playing a music -/// -/// \param music : Music to stop -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMusic_Stop(sfMusic* music); - -//////////////////////////////////////////////////////////// -/// Return the number of channels of a music (1 = mono, 2 = stereo) -/// -/// \param music : Music to get the channels count from -/// -/// \return Number of channels -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfMusic_GetChannelsCount(const sfMusic* music); - -//////////////////////////////////////////////////////////// -/// Get the stream sample rate of a music -/// -/// \param music : Music to get the sample rate from -/// -/// \return Stream frequency (number of samples per second) -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfMusic_GetSampleRate(const sfMusic* music); - -//////////////////////////////////////////////////////////// -/// Get the status of a music (stopped, paused, playing) -/// -/// \param music : Music to get the status from -/// -/// \return Current status of the sound -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSoundStatus sfMusic_GetStatus(const sfMusic* music); - -//////////////////////////////////////////////////////////// -/// Get the current playing position of a music -/// -/// \param music : Music to get the position from -/// -/// \return Current playing position, in milliseconds -/// -//////////////////////////////////////////////////////////// -CSFML_API sfUint32 sfMusic_GetPlayingOffset(const sfMusic* music); - -//////////////////////////////////////////////////////////// -/// Set the pitch of a music -/// -/// \param music : Music to modify -/// \param pitch : New pitch -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMusic_SetPitch(sfMusic* music, float pitch); - -//////////////////////////////////////////////////////////// -/// Set the volume of a music -/// -/// \param music : Music to modify -/// \param volume : Volume (in range [0, 100]) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMusic_SetVolume(sfMusic* music, float volume); - -//////////////////////////////////////////////////////////// -/// Set the position of a music -/// -/// \param music : Music to modify -/// \param x : X position of the sound in the world -/// \param y : Y position of the sound in the world -/// \param z : Z position of the sound in the world -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMusic_SetPosition(sfMusic* music, float x, float y, float z); - -//////////////////////////////////////////////////////////// -/// Make the music's position relative to the listener's -/// position, or absolute. -/// The default value is false (absolute) -/// -/// \param music : Music to modify -/// \param relative : True to set the position relative, false to set it absolute -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMusic_SetRelativeToListener(sfMusic* music, sfBool relative); - -//////////////////////////////////////////////////////////// -/// Set the minimum distance - closer than this distance, -/// the listener will hear the music at its maximum volume. -/// The default minimum distance is 1.0 -/// -/// \param music : Music to modify -/// \param distance : New minimum distance for the music -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMusic_SetMinDistance(sfMusic* music, float distance); - -//////////////////////////////////////////////////////////// -/// Set the attenuation factor - the higher the attenuation, the -/// more the sound will be attenuated with distance from listener. -/// The default attenuation factor 1.0 -/// -/// \param music : Music to modify -/// \param attenuation : New attenuation factor for the sound -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMusic_SetAttenuation(sfMusic* music, float attenuation); - -//////////////////////////////////////////////////////////// -/// Set the current playing position of a music -/// -/// \param music : Music to modify -/// \param timeOffset : New playing position, in milliseconds -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMusic_SetPlayingOffset(sfMusic* music, sfUint32 timeOffset); - -//////////////////////////////////////////////////////////// -/// Get the pitch of a music -/// -/// \param music : Music to get the pitch from -/// -/// \return Pitch value -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfMusic_GetPitch(const sfMusic* music); - -//////////////////////////////////////////////////////////// -/// Get the volume of a music -/// -/// \param music : Music to get the volume from -/// -/// \return Volume value (in range [1, 100]) -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfMusic_GetVolume(const sfMusic* music); - -//////////////////////////////////////////////////////////// -/// Get the position of a music -/// -/// \param music : Music to get the position from -/// \param x : X position of the sound in the world -/// \param y : Y position of the sound in the world -/// \param z : Z position of the sound in the world -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMusic_GetPosition(const sfMusic* music, float* x, float* y, float* z); - -//////////////////////////////////////////////////////////// -/// Tell if the music's position is relative to the listener's -/// position, or if it's absolute -/// -/// \param music : Music to check -/// -/// \return sfTrue if the position is relative, sfFalse if it's absolute -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfMusic_IsRelativeToListener(const sfMusic* music); - -//////////////////////////////////////////////////////////// -/// Get the minimum distance of a music -/// -/// \param music : Music to get the minimum distance from -/// -/// \return Minimum distance for the music -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfMusic_GetMinDistance(const sfMusic* music); - -//////////////////////////////////////////////////////////// -/// Get the attenuation factor of a music -/// -/// \param music : Music to get the attenuation factor from -/// -/// \return Attenuation factor for the a music -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfMusic_GetAttenuation(const sfMusic* music); - - -#endif // SFML_MUSIC_H diff --git a/bindings/c/include/SFML/Audio/Sound.h b/bindings/c/include/SFML/Audio/Sound.h deleted file mode 100644 index 3c24b683..00000000 --- a/bindings/c/include/SFML/Audio/Sound.h +++ /dev/null @@ -1,278 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SOUND_H -#define SFML_SOUND_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new sound -/// -/// \return A new sfSound object (NULL if failed) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSound* sfSound_Create(void); - -//////////////////////////////////////////////////////////// -/// Copy an existing sound -/// -/// \param sound : Sound to copy -/// -/// \return Copied object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSound* sfSound_Copy(sfSound* sound); - -//////////////////////////////////////////////////////////// -/// Destroy an existing sound -/// -/// \param sound : Sound to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSound_Destroy(sfSound* sound); - -//////////////////////////////////////////////////////////// -/// Start playing a sound -/// -/// \param sound : Sound to play -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSound_Play(sfSound* sound); - -//////////////////////////////////////////////////////////// -/// Pause a sound -/// -/// \param sound : Sound to pause -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSound_Pause(sfSound* sound); - -//////////////////////////////////////////////////////////// -/// Stop playing a sound -/// -/// \param sound : Sound to stop -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSound_Stop(sfSound* sound); - -//////////////////////////////////////////////////////////// -/// Bind a sound buffer to a sound -/// -/// \param sound : Sound to set the loop state -/// \param buffer : Buffer to bind -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSound_SetBuffer(sfSound* sound, const sfSoundBuffer* buffer); - -//////////////////////////////////////////////////////////// -/// Get the sound buffer bound to a sound -/// -/// \param sound : Sound to get the buffer from -/// -/// \return Pointer to the sound's buffer -/// -//////////////////////////////////////////////////////////// -CSFML_API const sfSoundBuffer* sfSound_GetBuffer(const sfSound* sound); - -//////////////////////////////////////////////////////////// -/// Set a sound loop state -/// -/// \param sound : Sound to set the loop state -/// \param loop : sfTrue to play in loop, sfFalse to play once -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSound_SetLoop(sfSound* sound, sfBool loop); - -//////////////////////////////////////////////////////////// -/// Tell whether or not a sound is looping -/// -/// \param sound : Sound to get the loop state from -/// -/// \return sfTrue if the sound is looping, sfFalse otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfSound_GetLoop(const sfSound* sound); - -//////////////////////////////////////////////////////////// -/// Get the status of a sound (stopped, paused, playing) -/// -/// \param sound : Sound to get the status from -/// -/// \return Current status of the sound -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSoundStatus sfSound_GetStatus(const sfSound* sound); - -//////////////////////////////////////////////////////////// -/// Set the pitch of a sound -/// -/// \param sound : Sound to modify -/// \param pitch : New pitch -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSound_SetPitch(sfSound* sound, float pitch); - -//////////////////////////////////////////////////////////// -/// Set the volume of a sound -/// -/// \param sound : Sound to modify -/// \param volume : Volume (in range [0, 100]) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSound_SetVolume(sfSound* sound, float volume); - -//////////////////////////////////////////////////////////// -/// Set the position of a sound -/// -/// \param sound : Sound to modify -/// \param x : X position of the sound in the world -/// \param y : Y position of the sound in the world -/// \param z : Z position of the sound in the world -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSound_SetPosition(sfSound* sound, float x, float y, float z); - -//////////////////////////////////////////////////////////// -/// Make the sound's position relative to the listener's -/// position, or absolute. -/// The default value is false (absolute) -/// -/// \param sound : Sound to modify -/// \param relative : True to set the position relative, false to set it absolute -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSound_SetRelativeToListener(sfSound* sound, sfBool relative); - -//////////////////////////////////////////////////////////// -/// Set the minimum distance - closer than this distance, -/// the listener will hear the sound at its maximum volume. -/// The default minimum distance is 1.0 -/// -/// \param sound : Sound to modify -/// \param distance : New minimum distance for the sound -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSound_SetMinDistance(sfSound* sound, float distance); - -//////////////////////////////////////////////////////////// -/// Set the attenuation factor - the higher the attenuation, the -/// more the sound will be attenuated with distance from listener. -/// The default attenuation factor is 1.0 -/// -/// \param sound : Sound to modify -/// \param attenuation : New attenuation factor for the sound -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSound_SetAttenuation(sfSound* sound, float attenuation); - -//////////////////////////////////////////////////////////// -/// Set the current playing position of a sound -/// -/// \param sound : Sound to modify -/// \param timeOffset : New playing position, in milliseconds -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSound_SetPlayingOffset(sfSound* sound, sfUint32 timeOffset); - -//////////////////////////////////////////////////////////// -/// Get the pitch of a sound -/// -/// \param sound : Sound to get the pitch from -/// -/// \return Pitch value -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSound_GetPitch(const sfSound* sound); - -//////////////////////////////////////////////////////////// -/// Get the volume of a sound -/// -/// \param sound : Sound to get the volume from -/// -/// \return Volume value (in range [1, 100]) -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSound_GetVolume(const sfSound* sound); - -//////////////////////////////////////////////////////////// -/// Get the position of a sound -/// -/// \param sound : Sound to get the position from -/// \param x : X position of the sound in the world -/// \param y : Y position of the sound in the world -/// \param z : Z position of the sound in the world -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSound_GetPosition(const sfSound* sound, float* x, float* y, float* z); - -//////////////////////////////////////////////////////////// -/// Tell if the sound's position is relative to the listener's -/// position, or if it's absolute -/// -/// \param sound : Sound to check -/// -/// \return sfTrue if the position is relative, sfFalse if it's absolute -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfSound_IsRelativeToListener(const sfSound* sound); - -//////////////////////////////////////////////////////////// -/// Get the minimum distance of a sound -/// -/// \param sound : Sound to get the minimum distance from -/// -/// \return Minimum distance for the sound -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSound_GetMinDistance(const sfSound* sound); - -//////////////////////////////////////////////////////////// -/// Get the attenuation factor of a sound -/// -/// \param sound : Sound to get the attenuation factor from -/// -/// \return Attenuation factor for the sound -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSound_GetAttenuation(const sfSound* sound); - -//////////////////////////////////////////////////////////// -/// Get the current playing position of a sound -/// -/// \param sound : Sound to get the position from -/// -/// \return Current playing position, in milliseconds -/// -//////////////////////////////////////////////////////////// -CSFML_API sfUint32 sfSound_GetPlayingOffset(const sfSound* sound); - - -#endif // SFML_SOUND_H diff --git a/bindings/c/include/SFML/Audio/SoundBuffer.h b/bindings/c/include/SFML/Audio/SoundBuffer.h deleted file mode 100644 index 1b192626..00000000 --- a/bindings/c/include/SFML/Audio/SoundBuffer.h +++ /dev/null @@ -1,151 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SOUNDBUFFER_H -#define SFML_SOUNDBUFFER_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new sound buffer and load it from a file -/// -/// \param filename : Path of the music file to open -/// -/// \return A new sfSoundBuffer object (NULL if failed) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSoundBuffer* sfSoundBuffer_CreateFromFile(const char* filename); - -//////////////////////////////////////////////////////////// -/// Create a new sound buffer and load it from a file in memory -/// -/// \param data : Pointer to the file data in memory -/// \param sizeInBytes : Size of the data to load, in bytes -/// -/// \return A new sfSoundBuffer object (NULL if failed) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSoundBuffer* sfSoundBuffer_CreateFromMemory(const void* data, size_t sizeInBytes); - -//////////////////////////////////////////////////////////// -/// Create a new sound buffer and load it from an array of -/// samples in memory - assumed format for samples is -/// 16 bits signed integer -/// -/// \param samples : Pointer to the samples in memory -/// \param samplesCount : Number of samples pointed by Samples -/// \param channelsCount : Number of channels (1 = mono, 2 = stereo, ...) -/// \param sampleRate : Frequency (number of samples to play per second) -/// -/// \return A new sfSoundBuffer object (NULL if failed) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSoundBuffer* sfSoundBuffer_CreateFromSamples(const sfInt16* samples, size_t samplesCount, unsigned int channelsCount, unsigned int sampleRate); - -//////////////////////////////////////////////////////////// -/// Copy an existing sound buffer -/// -/// \param soundBuffer : Sound buffer to copy -/// -/// \return Copied object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSoundBuffer* sfSoundBuffer_Copy(sfSoundBuffer* soundBuffer); - -//////////////////////////////////////////////////////////// -/// Destroy an existing sound buffer -/// -/// \param soundBuffer : Sound buffer to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundBuffer_Destroy(sfSoundBuffer* soundBuffer); - -//////////////////////////////////////////////////////////// -/// Save a sound buffer to a file -/// -/// \param soundBuffer : Sound buffer to save -/// \param filename : Path of the sound file to write -/// -/// \return sfTrue if saving has been successful -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfSoundBuffer_SaveToFile(const sfSoundBuffer* soundBuffer, const char* filename); - -//////////////////////////////////////////////////////////// -/// Return the samples contained in a sound buffer -/// -/// \param soundBuffer : Sound buffer to get samples from -/// -/// \return Pointer to the array of sound samples, in 16 bits signed integer format -/// -//////////////////////////////////////////////////////////// -CSFML_API const sfInt16* sfSoundBuffer_GetSamples(const sfSoundBuffer* soundBuffer); - -//////////////////////////////////////////////////////////// -/// Return the number of samples contained in a sound buffer -/// -/// \param soundBuffer : Sound buffer to get samples count from -/// -/// \return Number of samples -/// -//////////////////////////////////////////////////////////// -CSFML_API size_t sfSoundBuffer_GetSamplesCount(const sfSoundBuffer* soundBuffer); - -//////////////////////////////////////////////////////////// -/// Get the sample rate of a sound buffer -/// -/// \param soundBuffer : Sound buffer to get sample rate from -/// -/// \return Sound frequency (number of samples per second) -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfSoundBuffer_GetSampleRate(const sfSoundBuffer* soundBuffer); - -//////////////////////////////////////////////////////////// -/// Return the number of channels of a sound buffer (1 = mono, 2 = stereo, ...) -/// -/// \param soundBuffer : Sound buffer to get channels count from -/// -/// \return Number of channels -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfSoundBuffer_GetChannelsCount(const sfSoundBuffer* soundBuffer); - -//////////////////////////////////////////////////////////// -/// Get the duration of a sound buffer -/// -/// \param soundBuffer : Sound buffer to get duration from -/// -/// \return Sound duration, in milliseconds -/// -//////////////////////////////////////////////////////////// -CSFML_API sfUint32 sfSoundBuffer_GetDuration(const sfSoundBuffer* soundBuffer); - - -#endif // SFML_SOUNDBUFFER_H diff --git a/bindings/c/include/SFML/Audio/SoundBufferRecorder.h b/bindings/c/include/SFML/Audio/SoundBufferRecorder.h deleted file mode 100644 index d8bfce22..00000000 --- a/bindings/c/include/SFML/Audio/SoundBufferRecorder.h +++ /dev/null @@ -1,91 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SOUNDBUFFERRECORDER_H -#define SFML_SOUNDBUFFERRECORDER_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new sound buffer recorder -/// -/// \return A new sfSoundBufferRecorder object (NULL if failed) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSoundBufferRecorder* sfSoundBufferRecorder_Create(void); - -//////////////////////////////////////////////////////////// -/// Destroy an existing sound buffer recorder -/// -/// \param soundBufferRecorder : Sound buffer recorder to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundBufferRecorder_Destroy(sfSoundBufferRecorder* soundBufferRecorder); - -//////////////////////////////////////////////////////////// -/// Start the capture. -/// Warning : only one capture can happen at the same time -/// -/// \param soundBufferRecorder : Sound buffer recorder to start -/// \param sampleRate : Sound frequency (the more samples, the higher the quality) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundBufferRecorder_Start(sfSoundBufferRecorder* soundBufferRecorder, unsigned int sampleRate); - -//////////////////////////////////////////////////////////// -/// Stop the capture -/// -/// \param soundBufferRecorder : Sound buffer recorder to stop -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundBufferRecorder_Stop(sfSoundBufferRecorder* soundBufferRecorder); - -//////////////////////////////////////////////////////////// -/// Get the sample rate of a sound buffer recorder -/// -/// \param soundBufferRecorder : Sound buffer recorder to get sample rate from -/// -/// \return Frequency, in samples per second -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfSoundBufferRecorder_GetSampleRate(const sfSoundBufferRecorder* soundBufferRecorder); - -//////////////////////////////////////////////////////////// -/// Get the sound buffer containing the captured audio data -/// of a sound buffer recorder -/// -/// \param soundBufferRecorder : Sound buffer recorder to get the sound buffer from -/// -/// \return Pointer to the sound buffer (you don't need to destroy it after use) -/// -//////////////////////////////////////////////////////////// -CSFML_API const sfSoundBuffer* sfSoundBufferRecorder_GetBuffer(const sfSoundBufferRecorder* soundBufferRecorder); - - -#endif // SFML_SOUNDBUFFERRECORDER_H diff --git a/bindings/c/include/SFML/Audio/SoundRecorder.h b/bindings/c/include/SFML/Audio/SoundRecorder.h deleted file mode 100644 index 16c7677b..00000000 --- a/bindings/c/include/SFML/Audio/SoundRecorder.h +++ /dev/null @@ -1,103 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SOUNDRECORDER_H -#define SFML_SOUNDRECORDER_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -typedef sfBool (*sfSoundRecorderStartCallback)(void*); ///< Type of the callback used when starting a capture -typedef sfBool (*sfSoundRecorderProcessCallback)(const sfInt16*, size_t, void*); ///< Type of the callback used to process audio data -typedef void (*sfSoundRecorderStopCallback)(void*); ///< Type of the callback used when stopping a capture - - -//////////////////////////////////////////////////////////// -/// Construct a new sound recorder with callback functions -/// for processing captured samples -/// -/// \param onStart : Callback function which will be called when a new capture starts (can be NULL) -/// \param onProcess : Callback function which will be called each time there's audio data to process -/// \param onStop : Callback function which will be called when the current capture stops (can be NULL) -/// \param userData : Data to pass to the callback function (can be NULL) -/// -/// \return A new sfSoundRecorder object (NULL if failed) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSoundRecorder* sfSoundRecorder_Create(sfSoundRecorderStartCallback onStart, - sfSoundRecorderProcessCallback onProcess, - sfSoundRecorderStopCallback onStop, - void* userData); - -//////////////////////////////////////////////////////////// -/// Destroy an existing sound recorder -/// -/// \param soundRecorder : Sound recorder to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundRecorder_Destroy(sfSoundRecorder* soundRecorder); - -//////////////////////////////////////////////////////////// -/// Start the capture. -/// Warning : only one capture can happen at the same time -/// -/// \param soundRecorder : Sound recorder to start -/// \param sampleRate : Sound frequency (the more samples, the higher the quality) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundRecorder_Start(sfSoundRecorder* soundRecorder, unsigned int sampleRate); - -//////////////////////////////////////////////////////////// -/// Stop the capture -/// -/// \param soundRecorder : Sound recorder to stop -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundRecorder_Stop(sfSoundRecorder* soundRecorder); - -//////////////////////////////////////////////////////////// -/// Get the sample rate of a sound recorder -/// -/// \param soundRecorder : Sound recorder to get sample rate from -/// -/// \return Frequency, in samples per second -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfSoundRecorder_GetSampleRate(const sfSoundRecorder* soundRecorder); - -//////////////////////////////////////////////////////////// -/// Tell if the system supports sound capture. -/// If not, this class won't be usable -/// -/// \return sfTrue if audio capture is supported -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfSoundRecorder_IsAvailable(void); - - -#endif // SFML_SOUNDRECORDER_H diff --git a/bindings/c/include/SFML/Audio/SoundStatus.h b/bindings/c/include/SFML/Audio/SoundStatus.h deleted file mode 100644 index 80df5fac..00000000 --- a/bindings/c/include/SFML/Audio/SoundStatus.h +++ /dev/null @@ -1,42 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SOUNDSTATUS_H -#define SFML_SOUNDSTATUS_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -typedef enum -{ - sfStopped, ///< Sound / music is not playing - sfPaused, ///< Sound / music is paused - sfPlaying ///< Sound / music is playing -} sfSoundStatus; - - -#endif // SFML_SOUNDSTATUS_H diff --git a/bindings/c/include/SFML/Audio/SoundStream.h b/bindings/c/include/SFML/Audio/SoundStream.h deleted file mode 100644 index 8e2c6811..00000000 --- a/bindings/c/include/SFML/Audio/SoundStream.h +++ /dev/null @@ -1,294 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SOUNDSTREAM_H -#define SFML_SOUNDSTREAM_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// sfSoundStreamChunk defines the data to fill by the -/// OnGetData callback -//////////////////////////////////////////////////////////// -typedef struct -{ - sfInt16* Samples; ///< Pointer to the audio samples - unsigned int NbSamples; ///< Number of samples pointed by Samples -} sfSoundStreamChunk; - -typedef sfBool (*sfSoundStreamGetDataCallback)(sfSoundStreamChunk*, void*); ///< Type of the callback used to get a sound stream data -typedef void (*sfSoundStreamSeekCallback)(sfUint32, void*); ///< Type of the callback used to seek in a sound stream - - -//////////////////////////////////////////////////////////// -/// Construct a new sound stream -/// -/// \param onGetData : Function called when the stream needs more data (can't be NULL) -/// \param onSeek : Function called when the stream seeks (can't be NULL) -/// \param channelsCount : Number of channels to use (1 = mono, 2 = stereo) -/// \param sampleRate : Sample rate of the sound (44100 = CD quality) -/// \param userData : Data to pass to the callback functions -/// -/// \return A new sfSoundStream object (NULL if failed) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSoundStream* sfSoundStream_Create(sfSoundStreamGetDataCallback onGetData, - sfSoundStreamSeekCallback onSeek, - unsigned int channelsCount, - unsigned int sampleRate, - void* userData); - -//////////////////////////////////////////////////////////// -/// Destroy an existing sound stream -/// -/// \param soundStream : Sound stream to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundStream_Destroy(sfSoundStream* soundStream); - -//////////////////////////////////////////////////////////// -/// Start playing a sound stream -/// -/// \param soundStream : Sound stream to play -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundStream_Play(sfSoundStream* soundStream); - -//////////////////////////////////////////////////////////// -/// Pause a sound stream -/// -/// \param soundStream : Sound stream to pause -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundStream_Pause(sfSoundStream* soundStream); - -//////////////////////////////////////////////////////////// -/// Stop playing a sound stream -/// -/// \param soundStream : Sound stream to stop -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundStream_Stop(sfSoundStream* soundStream); - -//////////////////////////////////////////////////////////// -/// Get the status of a sound stream (stopped, paused, playing) -/// -/// \param soundStream : Sound stream to get the status from -/// -/// \return Current status of the sound stream -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSoundStatus sfSoundStream_GetStatus(const sfSoundStream* soundStream); - -//////////////////////////////////////////////////////////// -/// Return the number of channels of a sound stream -/// (1 = mono, 2 = stereo) -/// -/// \param soundStream : Sound stream to get the channels count from -/// -/// \return Number of channels -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfSoundStream_GetChannelsCount(const sfSoundStream* soundStream); - -//////////////////////////////////////////////////////////// -/// Get the sample rate of a sound stream -/// -/// \param soundStream : Sound stream to get the sample rate from -/// -/// \return Stream frequency (number of samples per second) -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfSoundStream_GetSampleRate(const sfSoundStream* soundStream); - -//////////////////////////////////////////////////////////// -/// Set the pitch of a sound stream -/// -/// \param soundStream : Sound stream to modify -/// \param pitch : New pitch -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundStream_SetPitch(sfSoundStream* soundStream, float pitch); - -//////////////////////////////////////////////////////////// -/// Set the volume of a sound stream -/// -/// \param soundStream : Sound stream to modify -/// \param volume : Volume (in range [0, 100]) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundStream_SetVolume(sfSoundStream* soundStream, float volume); - -//////////////////////////////////////////////////////////// -/// Set the position of a sound stream -/// -/// \param soundStream : Sound stream to modify -/// \param x : X position of the sound stream in the world -/// \param y : Y position of the sound stream in the world -/// \param z : Z position of the sound stream in the world -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundStream_SetPosition(sfSoundStream* soundStream, float x, float y, float z); - -//////////////////////////////////////////////////////////// -/// Make the sound stream's position relative to the listener's -/// position, or absolute. -/// The default value is false (absolute) -/// -/// \param soundStream : Sound stream to modify -/// \param relative : True to set the position relative, false to set it absolute -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundStream_SetRelativeToListener(sfSoundStream* soundStream, sfBool relative); - -//////////////////////////////////////////////////////////// -/// Set the minimum distance - closer than this distance, -/// the listener will hear the sound stream at its maximum volume. -/// The default minimum distance is 1.0 -/// -/// \param soundStream : Sound stream to modify -/// \param distance : New minimum distance for the sound stream -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundStream_SetMinDistance(sfSoundStream* soundStream, float distance); - -//////////////////////////////////////////////////////////// -/// Set the attenuation factor - the higher the attenuation, the -/// more the sound stream will be attenuated with distance from listener. -/// The default attenuation factor 1.0 -/// -/// \param soundStream : Sound stream to modify -/// \param attenuation : New attenuation factor for the sound stream -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundStream_SetAttenuation(sfSoundStream* soundStream, float attenuation); - -//////////////////////////////////////////////////////////// -/// Set the current playing position of a stream -/// -/// \param soundStream : Sound stream to modify -/// \param timeOffset : New playing position, in milliseconds -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundStream_SetPlayingOffset(sfSoundStream* soundStream, sfUint32 timeOffset); - -//////////////////////////////////////////////////////////// -/// Set a stream loop state -/// -/// \param soundStream : Stream to set the loop state -/// \param loop : sfTrue to play in loop, sfFalse to play once -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundStream_SetLoop(sfSoundStream* soundStream, sfBool loop); - -//////////////////////////////////////////////////////////// -/// Get the pitch of a sound stream -/// -/// \param soundStream : Sound stream to get the pitch from -/// -/// \return Pitch value -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSoundStream_GetPitch(const sfSoundStream* soundStream); - -//////////////////////////////////////////////////////////// -/// Get the volume of a sound stream -/// -/// \param soundStream : Sound stream to get the volume from -/// -/// \return Volume value (in range [1, 100]) -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSoundStream_GetVolume(const sfSoundStream* soundStream); - -//////////////////////////////////////////////////////////// -/// Get the position of a sound stream -/// -/// \param soundStream : Sound stream to get the position from -/// \param x : X position of the sound stream in the world -/// \param y : Y position of the sound stream in the world -/// \param z : Z position of the sound stream in the world -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSoundStream_GetPosition(const sfSoundStream* soundStream, float* x, float* y, float* z); - -//////////////////////////////////////////////////////////// -/// Tell if the sound stream's position is relative to the listener's -/// position, or if it's absolute -/// -/// \param soundStream : Sound stream to check -/// -/// \return sfTrue if the position is relative, sfFalse if it's absolute -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfSoundStream_IsRelativeToListener(const sfSoundStream* soundStream); - -//////////////////////////////////////////////////////////// -/// Get the minimum distance of a sound stream -/// -/// \param soundStream : Sound stream to get the minimum distance from -/// -/// \return Minimum distance for the sound stream -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSoundStream_GetMinDistance(const sfSoundStream* soundStream); - -//////////////////////////////////////////////////////////// -/// Get the attenuation factor of a sound stream -/// -/// \param soundStream : Sound stream to get the attenuation factor from -/// -/// \return Attenuation factor for the sound stream -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSoundStream_GetAttenuation(const sfSoundStream* soundStream); - -//////////////////////////////////////////////////////////// -/// Tell whether or not a stream is looping -/// -/// \param soundStream : Soundstream to get the loop state from -/// -/// \return sfTrue if the stream is looping, sfFalse otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfSoundStream_GetLoop(const sfSoundStream* soundStream); - -//////////////////////////////////////////////////////////// -/// Get the current playing position of a sound stream -/// -/// \param soundStream : Sound stream to get the position from -/// -/// \return Current playing position, in milliseconds -/// -//////////////////////////////////////////////////////////// -CSFML_API sfUint32 sfSoundStream_GetPlayingOffset(const sfSoundStream* soundStream); - - -#endif // SFML_SOUNDSTREAM_H diff --git a/bindings/c/include/SFML/Audio/Types.h b/bindings/c/include/SFML/Audio/Types.h deleted file mode 100644 index af213606..00000000 --- a/bindings/c/include/SFML/Audio/Types.h +++ /dev/null @@ -1,36 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_AUDIO_TYPES_H -#define SFML_AUDIO_TYPES_H - - -typedef struct sfMusic sfMusic; -typedef struct sfSound sfSound; -typedef struct sfSoundBuffer sfSoundBuffer; -typedef struct sfSoundBufferRecorder sfSoundBufferRecorder; -typedef struct sfSoundRecorder sfSoundRecorder; -typedef struct sfSoundStream sfSoundStream; - - -#endif // SFML_AUDIO_TYPES_H diff --git a/bindings/c/include/SFML/Config.h b/bindings/c/include/SFML/Config.h deleted file mode 100644 index cfc31a9d..00000000 --- a/bindings/c/include/SFML/Config.h +++ /dev/null @@ -1,150 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_CONFIG_H -#define SFML_CONFIG_H - - -//////////////////////////////////////////////////////////// -// Define the CSFML version -//////////////////////////////////////////////////////////// -#define CSFML_VERSION_MAJOR 2 -#define CSFML_VERSION_MINOR 0 - - -//////////////////////////////////////////////////////////// -// Identify the operating system -//////////////////////////////////////////////////////////// -#if defined(_WIN32) || defined(__WIN32__) - - // Windows - #define CSFML_SYSTEM_WINDOWS - -#elif defined(linux) || defined(__linux) - - // Linux - #define CSFML_SYSTEM_LINUX - -#elif defined(__APPLE__) || defined(MACOSX) || defined(macintosh) || defined(Macintosh) - - // MacOS - #define CSFML_SYSTEM_MACOS - -#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) - - // FreeBSD - #define CSFML_SYSTEM_FREEBSD - -#else - - // Unsupported system - #error This operating system is not supported by SFML library - -#endif - - -//////////////////////////////////////////////////////////// -// Define portable import / export macros -//////////////////////////////////////////////////////////// -#if defined(CSFML_SYSTEM_WINDOWS) - - #ifdef CSFML_EXPORTS - - // From DLL side, we must export - #define CSFML_API extern "C" __declspec(dllexport) - - #else - - // From client application side, we must import - #define CSFML_API extern __declspec(dllimport) - - #endif - -#else - - #ifdef CSFML_EXPORTS - - #define CSFML_API extern "C" - - #else - - #define CSFML_API extern - - #endif - -#endif - - -//////////////////////////////////////////////////////////// -// Define a portable boolean type -//////////////////////////////////////////////////////////// -typedef int sfBool; -#define sfFalse 0 -#define sfTrue 1 - - -//////////////////////////////////////////////////////////// -// Define portable types -//////////////////////////////////////////////////////////// -#include -#include - -// 8 bits integer types -#if UCHAR_MAX == 0xFF - typedef signed char sfInt8; - typedef unsigned char sfUint8; -#else - #error No 8 bits integer type for this platform -#endif - -// 16 bits integer types -#if USHRT_MAX == 0xFFFF - typedef signed short sfInt16; - typedef unsigned short sfUint16; -#elif UINT_MAX == 0xFFFF - typedef signed int sfInt16; - typedef unsigned int sfUint16; -#elif ULONG_MAX == 0xFFFF - typedef signed long sfInt16; - typedef unsigned long sfUint16; -#else - #error No 16 bits integer type for this platform -#endif - -// 32 bits integer types -#if USHRT_MAX == 0xFFFFFFFF - typedef signed short sfInt32; - typedef unsigned short sfUint32; -#elif UINT_MAX == 0xFFFFFFFF - typedef signed int sfInt32; - typedef unsigned int sfUint32; -#elif ULONG_MAX == 0xFFFFFFFF - typedef signed long sfInt32; - typedef unsigned long sfUint32; -#else - #error No 32 bits integer type for this platform -#endif - - -#endif // SFML_CONFIG_H diff --git a/bindings/c/include/SFML/Graphics.h b/bindings/c/include/SFML/Graphics.h deleted file mode 100644 index 4ab27187..00000000 --- a/bindings/c/include/SFML/Graphics.h +++ /dev/null @@ -1,46 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_GRAPHICS_H -#define SFML_GRAPHICS_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -#endif // SFML_GRAPHICS_H diff --git a/bindings/c/include/SFML/Graphics/BlendMode.h b/bindings/c/include/SFML/Graphics/BlendMode.h deleted file mode 100644 index d024b0b5..00000000 --- a/bindings/c/include/SFML/Graphics/BlendMode.h +++ /dev/null @@ -1,46 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_BLENDMODE_H -#define SFML_BLENDMODE_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -/// Enumerate the blending modes for drawable objects -//////////////////////////////////////////////////////////// -typedef enum -{ - sfBlendAlpha, ///< Pixel = Src * a + Dest * (1 - a) - sfBlendAdd, ///< Pixel = Src + Dest - sfBlendMultiply, ///< Pixel = Src * Dest - sfBlendNone ///< No blending -} sfBlendMode; - - -#endif // SFML_BLENDMODE_H diff --git a/bindings/c/include/SFML/Graphics/Color.h b/bindings/c/include/SFML/Graphics/Color.h deleted file mode 100644 index 767fa844..00000000 --- a/bindings/c/include/SFML/Graphics/Color.h +++ /dev/null @@ -1,107 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_COLOR_H -#define SFML_COLOR_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -/// sfColor is an utility class for manipulating colors -//////////////////////////////////////////////////////////// -typedef struct -{ - sfUint8 r; - sfUint8 g; - sfUint8 b; - sfUint8 a; -} sfColor; - - -//////////////////////////////////////////////////////////// -/// Define some common colors -//////////////////////////////////////////////////////////// -CSFML_API sfColor sfBlack; -CSFML_API sfColor sfWhite; -CSFML_API sfColor sfRed; -CSFML_API sfColor sfGreen; -CSFML_API sfColor sfBlue; -CSFML_API sfColor sfYellow; -CSFML_API sfColor sfMagenta; -CSFML_API sfColor sfCyan; - - -//////////////////////////////////////////////////////////// -/// Construct a color from its 3 RGB components -/// -/// \param red : Red component (0 .. 255) -/// \param green : Green component (0 .. 255) -/// \param blue : Blue component (0 .. 255) -/// -/// \return sfColor constructed from the components -/// -//////////////////////////////////////////////////////////// -CSFML_API sfColor sfColor_FromRGB(sfUint8 red, sfUint8 green, sfUint8 blue); - -//////////////////////////////////////////////////////////// -/// Construct a color from its 4 RGBA components -/// -/// \param red : Red component (0 .. 255) -/// \param green : Green component (0 .. 255) -/// \param blue : Blue component (0 .. 255) -/// \param alpha : Alpha component (0 .. 255) -/// -/// \return sfColor constructed from the components -/// -//////////////////////////////////////////////////////////// -CSFML_API sfColor sfColor_FromRGBA(sfUint8 red, sfUint8 green, sfUint8 blue, sfUint8 alpha); - -//////////////////////////////////////////////////////////// -/// Add two colors -/// -/// \param color1 : First color -/// \param color2 : Second color -/// -/// \return Component-wise saturated addition of the two colors -/// -//////////////////////////////////////////////////////////// -CSFML_API sfColor sfColor_Add(sfColor color1, sfColor color2); - -//////////////////////////////////////////////////////////// -/// Modulate two colors -/// -/// \param color1 : First color -/// \param color2 : Second color -/// -/// \return Component-wise multiplication of the two colors -/// -//////////////////////////////////////////////////////////// -CSFML_API sfColor sfColor_Modulate(sfColor color1, sfColor color2); - - -#endif // SFML_COLOR_H diff --git a/bindings/c/include/SFML/Graphics/Font.h b/bindings/c/include/SFML/Graphics/Font.h deleted file mode 100644 index 5565f61b..00000000 --- a/bindings/c/include/SFML/Graphics/Font.h +++ /dev/null @@ -1,132 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_FONT_H -#define SFML_FONT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new font from a file -/// -/// \param filename : Path of the font file to load -/// -/// \return A new sfFont object, or NULL if it failed -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFont* sfFont_CreateFromFile(const char* filename); - -//////////////////////////////////////////////////////////// -/// Create a new image font a file in memory -/// -/// \param data : Pointer to the file data in memory -/// \param sizeInBytes : Size of the data to load, in bytes -/// -/// \return A new sfFont object, or NULL if it failed -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFont* sfFont_CreateFromMemory(const void* data, size_t sizeInBytes); - -//////////////////////////////////////////////////////////// -/// Copy an existing font -/// -/// \param font : Font to copy -/// -/// \return Copied object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFont* sfFont_Copy(sfFont* font); - -//////////////////////////////////////////////////////////// -/// Destroy an existing font -/// -/// \param font : Font to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfFont_Destroy(sfFont* font); - -//////////////////////////////////////////////////////////// -/// Get a glyph in a font -/// -/// \param font : Source font -/// \param codePoint : Unicode code point of the character to get -/// \param characterSize : Character size, in pixels -/// \param bold Retrieve the bold version or the regular one? -/// -/// \return The corresponding glyph -/// -//////////////////////////////////////////////////////////// -CSFML_API sfGlyph sfFont_GetGlyph(sfFont* font, sfUint32 codePoint, unsigned int characterSize, sfBool bold); - -//////////////////////////////////////////////////////////// -/// Get the kerning value corresponding to a given pair of characters in a font -/// -/// \param font : Source font -/// \param first : Unicode code point of the first character -/// \param second : Unicode code point of the second character -/// \param characterSize : Character size, in pixels -/// -/// \return Kerning offset, in pixels -/// -//////////////////////////////////////////////////////////// -CSFML_API int sfFont_GetKerning(sfFont* font, sfUint32 first, sfUint32 second, unsigned int characterSize); - -//////////////////////////////////////////////////////////// -/// Get the line spacing value -/// -/// \param font : Source font -/// \param codePoint : Unicode code point of the character to get -/// \param characterSize : Character size, in pixels -/// -/// \return Line spacing, in pixels -/// -//////////////////////////////////////////////////////////// -CSFML_API int sfFont_GetLineSpacing(sfFont* font, unsigned int characterSize); - -//////////////////////////////////////////////////////////// -/// Get the image containing the glyphs of a given size in a font -/// -/// \param font : Source font -/// \param characterSize : Character size, in pixels -/// -/// \return Read-only pointer to the image -/// -//////////////////////////////////////////////////////////// -CSFML_API const sfImage* sfFont_GetImage(sfFont* font, unsigned int characterSize); - -//////////////////////////////////////////////////////////// -/// Get the built-in default font (Arial) -/// -/// \return Pointer to the default font -/// -//////////////////////////////////////////////////////////// -CSFML_API const sfFont* sfFont_GetDefaultFont(void); - - -#endif // SFML_IMAGE_H diff --git a/bindings/c/include/SFML/Graphics/Glyph.h b/bindings/c/include/SFML/Graphics/Glyph.h deleted file mode 100644 index 76f237a2..00000000 --- a/bindings/c/include/SFML/Graphics/Glyph.h +++ /dev/null @@ -1,45 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_GLYPH_H -#define SFML_GLYPH_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -/// sfGlyph describes a glyph (a visual character) -//////////////////////////////////////////////////////////// -typedef struct -{ - int Advance; ///< Offset to move horizontically to the next character - sfIntRect Bounds; ///< Bounding rectangle of the glyph, in coordinates relative to the baseline - sfIntRect SubRect; ///< Texture coordinates of the glyph inside the font's image -} sfGlyph; - - -#endif // SFML_GLYPH_H diff --git a/bindings/c/include/SFML/Graphics/Image.h b/bindings/c/include/SFML/Graphics/Image.h deleted file mode 100644 index f69031dc..00000000 --- a/bindings/c/include/SFML/Graphics/Image.h +++ /dev/null @@ -1,246 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_IMAGE_H -#define SFML_IMAGE_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new image filled with a color -/// -/// \param width : Image width -/// \param height : Image height -/// \param color : Image color -/// -/// \return A new sfImage object, or NULL if it failed -/// -//////////////////////////////////////////////////////////// -CSFML_API sfImage* sfImage_CreateFromColor(unsigned int width, unsigned int height, sfColor color); - -//////////////////////////////////////////////////////////// -/// Create a new image from an array of pixels in memory -/// -/// \param width : Image width -/// \param height : Image height -/// \param data : Pointer to the pixels in memory (assumed format is RGBA) -/// -/// \return A new sfImage object, or NULL if it failed -/// -//////////////////////////////////////////////////////////// -CSFML_API sfImage* sfImage_CreateFromPixels(unsigned int width, unsigned int height, const sfUint8* data); - -//////////////////////////////////////////////////////////// -/// Create a new image from a file -/// -/// \param filename : Path of the image file to load -/// -/// \return A new sfImage object, or NULL if it failed -/// -//////////////////////////////////////////////////////////// -CSFML_API sfImage* sfImage_CreateFromFile(const char* filename); - -//////////////////////////////////////////////////////////// -/// Create a new image from a file in memory -/// -/// \param data : Pointer to the file data in memory -/// \param sizeInBytes : Size of the data to load, in bytes -/// -/// \return A new sfImage object, or NULL if it failed -/// -//////////////////////////////////////////////////////////// -CSFML_API sfImage* sfImage_CreateFromMemory(const void* data, size_t sizeInBytes); - -//////////////////////////////////////////////////////////// -/// Copy an existing image -/// -/// \param image : Image to copy -/// -/// \return Copied object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfImage* sfImage_Copy(sfImage* image); - -//////////////////////////////////////////////////////////// -/// Destroy an existing image -/// -/// \param image : Image to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfImage_Destroy(sfImage* image); - -//////////////////////////////////////////////////////////// -/// Save the content of an image to a file -/// -/// \param image : Image to save -/// \param filename : Path of the file to save (overwritten if already exist) -/// -/// \return sfTrue if saving was successful -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfImage_SaveToFile(const sfImage* image, const char* filename); - -//////////////////////////////////////////////////////////// -/// Create a transparency mask for an image from a specified colorkey -/// -/// \param image : Image to modify -/// \param colorKey : Color to become transparent -/// \param alpha : Alpha value to use for transparent pixels -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfImage_CreateMaskFromColor(sfImage* image, sfColor colorKey, sfUint8 alpha); - -//////////////////////////////////////////////////////////// -/// Copy pixels from another image onto this one. -/// This function does a slow pixel copy and should only -/// be used at initialization time -/// -/// \param image : Destination image -/// \param source : Source image to copy -/// \param destX : X coordinate of the destination position -/// \param destY : Y coordinate of the destination position -/// \param sourceRect : Sub-rectangle of the source image to copy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfImage_CopyImage(sfImage* image, const sfImage* source, unsigned int destX, unsigned int destY, sfIntRect sourceRect); - -//////////////////////////////////////////////////////////// -/// Create the image from the current contents of the -/// given window -/// -/// \param image : Destination image -/// \param window : Window to capture -/// \param sourceRect : Sub-rectangle of the screen to copy (empty by default - entire image) -/// -/// \return True if creation was successful -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfImage_CopyScreen(sfImage* image, sfRenderWindow* window, sfIntRect sourceRect); - -//////////////////////////////////////////////////////////// -/// Change the color of a pixel of an image -/// -/// \param image : Image to modify -/// \param x : X coordinate of pixel in the image -/// \param y : Y coordinate of pixel in the image -/// \param color : New color for pixel (X, Y) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfImage_SetPixel(sfImage* image, unsigned int x, unsigned int y, sfColor color); - -//////////////////////////////////////////////////////////// -/// Get a pixel from an image -/// -/// \param image : Image to read -/// \param x : X coordinate of pixel in the image -/// \param y : Y coordinate of pixel in the image -/// -/// \return Color of pixel (x, y) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfColor sfImage_GetPixel(const sfImage* image, unsigned int x, unsigned int y); - -//////////////////////////////////////////////////////////// -/// Get a read-only pointer to the array of pixels of an image (8 bits integers RGBA) -/// Array size is sfImage_GetWidth(img) x sfImage_GetHeight(img) x 4 -/// This pointer becomes invalid if you reload or resize the image -/// -/// \param image : Image to read -/// -/// \return Pointer to the array of pixels -/// -//////////////////////////////////////////////////////////// -CSFML_API const sfUint8* sfImage_GetPixelsPtr(const sfImage* image); - -//////////////////////////////////////////////////////////// -/// Update a sub-rectangle of the image from an array of pixels -/// -/// Warning: for performances reasons, this function doesn't -/// perform any check; thus you're responsible of ensuring that -/// \a rectangle does not exceed the image size, and that -/// \a pixels contains enough elements. -/// -/// \param image : Image to update -/// \param rectangle : Sub-rectangle of the image to update -/// \param pixels : Array of pixels to write to the image -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfImage_UpdatePixels(const sfImage* image, const sfUint8* pixels, sfIntRect rectangle); - -//////////////////////////////////////////////////////////// -/// Bind the image for rendering -/// -/// \param image : Image to bind -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfImage_Bind(const sfImage* image); - -//////////////////////////////////////////////////////////// -/// Enable or disable image smooth filter -/// -/// \param image : Image to modify -/// \param smooth : sfTrue to enable smoothing filter, false to disable it -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfImage_SetSmooth(sfImage* image, sfBool smooth); - -//////////////////////////////////////////////////////////// -/// Return the width of the image -/// -/// \param image : Image to read -/// -/// \return Width in pixels -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfImage_GetWidth(const sfImage* image); - -//////////////////////////////////////////////////////////// -/// Return the height of the image -/// -/// \param image : Image to read -/// -/// \return Height in pixels -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfImage_GetHeight(const sfImage* image); - -//////////////////////////////////////////////////////////// -/// Tells whether the smoothing filter is enabled or not on an image -/// -/// \param image : Image to read -/// -/// \return sfTrue if the smoothing filter is enabled -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfImage_IsSmooth(const sfImage* image); - - -#endif // SFML_IMAGE_H diff --git a/bindings/c/include/SFML/Graphics/Rect.h b/bindings/c/include/SFML/Graphics/Rect.h deleted file mode 100644 index 2fbc5769..00000000 --- a/bindings/c/include/SFML/Graphics/Rect.h +++ /dev/null @@ -1,81 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_RECT_H -#define SFML_RECT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -/// sfFloatRect and sfIntRect are utility classes for -/// manipulating rectangles. -//////////////////////////////////////////////////////////// -typedef struct -{ - float Left; - float Top; - float Width; - float Height; -} sfFloatRect; - -typedef struct -{ - int Left; - int Top; - int Width; - int Height; -} sfIntRect; - -//////////////////////////////////////////////////////////// -/// Check if a point is inside a rectangle's area -/// -/// \param rect : Rectangle to test -/// \param x : X coordinate of the point to test -/// \param y : Y coordinate of the point to test -/// -/// \return sfTrue if the point is inside -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfFloatRect_Contains(const sfFloatRect* rect, float x, float y); -CSFML_API sfBool sfIntRect_Contains(const sfIntRect* rect, int x, int y); - -//////////////////////////////////////////////////////////// -/// Check intersection between two rectangles -/// -/// \param rect1 : First rectangle to test -/// \param rect2 : Second rectangle to test -/// \param intersection : Rectangle to be filled with overlapping rect (can be NULL) -/// -/// \return sfTrue if rectangles overlap -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfFloatRect_Intersects(const sfFloatRect* rect1, const sfFloatRect* rect2, sfFloatRect* intersection); -CSFML_API sfBool sfIntRect_Intersects(const sfIntRect* rect1, const sfIntRect* rect2, sfIntRect* intersection); - - -#endif // SFML_RECT_H diff --git a/bindings/c/include/SFML/Graphics/RenderImage.h b/bindings/c/include/SFML/Graphics/RenderImage.h deleted file mode 100644 index afd90e41..00000000 --- a/bindings/c/include/SFML/Graphics/RenderImage.h +++ /dev/null @@ -1,206 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_RENDERIMAGE_H -#define SFML_RENDERIMAGE_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new renderimage -/// -/// \param width : Width of the renderimage -/// \param height : Height of the renderimage -/// \param depthBuffer : Do you want a depth-buffer attached? (useful only if you're doing 3D OpenGL on the renderimage) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfRenderImage* sfRenderImage_Create(unsigned int width, unsigned int height, sfBool depthBuffer); - -//////////////////////////////////////////////////////////// -/// Destroy an existing renderimage -/// -/// \param renderImage : renderimage to destroy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderImage_Destroy(sfRenderImage* renderImage); - -//////////////////////////////////////////////////////////// -/// Get the width of the rendering region of a renderimage -/// -/// \param renderImage : Renderimage object -/// -/// \return Width in pixels -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfRenderImage_GetWidth(const sfRenderImage* renderImage); - -//////////////////////////////////////////////////////////// -/// Get the height of the rendering region of a renderimage -/// -/// \param renderImage : Renderimage object -/// -/// \return Height in pixels -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfRenderImage_GetHeight(const sfRenderImage* renderImage); - -//////////////////////////////////////////////////////////// -/// Activate or deactivate a renderimage as the current target for rendering -/// -/// \param renderImage : Renderimage object -/// \param active : sfTrue to activate, sfFalse to deactivate -/// -/// \return True if operation was successful, false otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfRenderImage_SetActive(sfRenderImage* renderImage, sfBool active); - -//////////////////////////////////////////////////////////// -/// Save the current OpenGL render states and matrices -/// -/// \param renderWindow : Renderwindow object -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderImage_SaveGLStates(sfRenderImage* renderImage); - -//////////////////////////////////////////////////////////// -/// Restore the previously saved OpenGL render states and matrices -/// -/// \param renderWindow : Renderwindow object -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderImage_RestoreGLStates(sfRenderImage* renderImage); - -//////////////////////////////////////////////////////////// -/// Update the contents of the target image -/// -/// \param renderImage : Renderimage object -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderImage_Display(sfRenderImage* renderImage); - -//////////////////////////////////////////////////////////// -/// Draw something on a renderimage -/// -/// \param renderImage : Renderimage to draw in -/// \param sprite / text / shape : Object to draw -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderImage_DrawSprite(sfRenderImage* renderImage, const sfSprite* sprite); -CSFML_API void sfRenderImage_DrawShape (sfRenderImage* renderImage, const sfShape* shape); -CSFML_API void sfRenderImage_DrawText (sfRenderImage* renderImage, const sfText* text); - -//////////////////////////////////////////////////////////// -/// Draw something on a renderimage with a shader -/// -/// \param renderImage : Renderimage to draw in -/// \param sprite / text / shape : Object to draw -/// \param shader : Shader to use -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderImage_DrawSpriteWithShader(sfRenderImage* renderImage, const sfSprite* sprite, const sfShader* shader); -CSFML_API void sfRenderImage_DrawShapeWithShader (sfRenderImage* renderImage, const sfShape* shape, const sfShader* shader); -CSFML_API void sfRenderImage_DrawTextWithShader (sfRenderImage* renderImage, const sfText* text, const sfShader* shader); - -//////////////////////////////////////////////////////////// -/// Clear the renderimage with the given color -/// -/// \param renderImage : Renderimage to modify -/// \param color : Fill color -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderImage_Clear(sfRenderImage* renderImage, sfColor color); - -//////////////////////////////////////////////////////////// -/// Change the current active view of a renderimage -/// -/// \param renderImage : Renderimage to modify -/// \param view : Pointer to the new view -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderImage_SetView(sfRenderImage* renderImage, const sfView* view); - -//////////////////////////////////////////////////////////// -/// Get the current active view of a renderimage -/// -/// \param renderImage : Renderimage -/// -/// \return Current active view -/// -//////////////////////////////////////////////////////////// -CSFML_API const sfView* sfRenderImage_GetView(const sfRenderImage* renderImage); - -//////////////////////////////////////////////////////////// -/// Get the default view of a renderimage -/// -/// \param renderImage : Renderimage -/// -/// \return Default view of the renderimage -/// -//////////////////////////////////////////////////////////// -CSFML_API const sfView* sfRenderImage_GetDefaultView(const sfRenderImage* renderImage); - -//////////////////////////////////////////////////////////// -/// Get the viewport of a view applied to this target -/// -/// \param renderImage : Renderimage object -/// \param view : Target view -/// -/// \return Viewport rectangle, expressed in pixels in the current target -/// -//////////////////////////////////////////////////////////// -CSFML_API sfIntRect sfRenderImage_GetViewport(const sfRenderImage* renderImage, const sfView* view); - -//////////////////////////////////////////////////////////// -/// Convert a point in image coordinates into view coordinates -/// -/// \param renderImage : Renderimage object -/// \param windowX : X coordinate of the point to convert, relative to the image -/// \param windowY : Y coordinate of the point to convert, relative to the image -/// \param viewX : Pointer to fill with the X coordinate of the converted point -/// \param viewY : Pointer to fill with the Y coordinate of the converted point -/// \param targetView : Target view to convert the point to (pass NULL to use the current view) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderImage_ConvertCoords(const sfRenderImage* renderImage, unsigned int windowX, unsigned int windowY, float* viewX, float* viewY, const sfView* targetView); - -//////////////////////////////////////////////////////////// -/// Get the target image -/// -/// \param renderImage : Renderimage object -/// -/// \return Pointer to the target image -/// -//////////////////////////////////////////////////////////// -CSFML_API const sfImage* sfRenderImage_GetImage(const sfRenderImage* renderImage); - - -#endif // SFML_RENDERIMAGE_H diff --git a/bindings/c/include/SFML/Graphics/RenderWindow.h b/bindings/c/include/SFML/Graphics/RenderWindow.h deleted file mode 100644 index 489a6279..00000000 --- a/bindings/c/include/SFML/Graphics/RenderWindow.h +++ /dev/null @@ -1,385 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_RENDERWINDOW_H -#define SFML_RENDERWINDOW_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new renderwindow -/// -/// \param mode : Video mode to use -/// \param title : Title of the window -/// \param style : Window style -/// \param settings : Creation settings (pass NULL to use default values) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfRenderWindow* sfRenderWindow_Create(sfVideoMode mode, const char* title, unsigned long style, const sfContextSettings* settings); - -//////////////////////////////////////////////////////////// -/// Construct a renderwindow from an existing control -/// -/// \param handle : Platform-specific handle of the control -/// \param settings : Creation settings (pass NULL to use default values) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfRenderWindow* sfRenderWindow_CreateFromHandle(sfWindowHandle handle, const sfContextSettings* settings); - -//////////////////////////////////////////////////////////// -/// Destroy an existing renderwindow -/// -/// \param renderWindow : Renderwindow to destroy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_Destroy(sfRenderWindow* renderWindow); - -//////////////////////////////////////////////////////////// -/// Close a renderwindow (but doesn't destroy the internal data) -/// -/// \param renderWindow : Renderwindow to close -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_Close(sfRenderWindow* renderWindow); - -//////////////////////////////////////////////////////////// -/// Tell whether or not a renderwindow is opened -/// -/// \param renderWindow : Renderwindow object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfRenderWindow_IsOpened(const sfRenderWindow* renderWindow); - -//////////////////////////////////////////////////////////// -/// Get the width of the rendering region of a window -/// -/// \param renderWindow : Renderwindow object -/// -/// \return Width in pixels -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfRenderWindow_GetWidth(const sfRenderWindow* renderWindow); - -//////////////////////////////////////////////////////////// -/// Get the height of the rendering region of a window -/// -/// \param renderWindow : Renderwindow object -/// -/// \return Height in pixels -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfRenderWindow_GetHeight(const sfRenderWindow* renderWindow); - -//////////////////////////////////////////////////////////// -/// Get the creation settings of a window -/// -/// \param renderWindow : Renderwindow object -/// -/// \return Settings used to create the window -/// -//////////////////////////////////////////////////////////// -CSFML_API sfContextSettings sfRenderWindow_GetSettings(const sfRenderWindow* renderWindow); - -//////////////////////////////////////////////////////////// -/// Get the event on top of events stack of a window, if any, and pop it -/// -/// \param renderWindow : Renderwindow object -/// \param event : Event to fill, if any -/// -/// \return sfTrue if an event was returned, sfFalse if events stack was empty -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfRenderWindow_PollEvent(sfRenderWindow* renderWindow, sfEvent* event); - -//////////////////////////////////////////////////////////// -/// Wait for an event and return it -/// -/// \param renderWindow : Renderwindow object -/// \param event : Event to fill -/// -/// \return sfFalse if an error occured -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfRenderWindow_WaitEvent(sfRenderWindow* renderWindow, sfEvent* event); - -//////////////////////////////////////////////////////////// -/// Enable / disable vertical synchronization on a window -/// -/// \param renderWindow : Renderwindow object -/// \param enabled : sfTrue to enable v-sync, sfFalse to deactivate -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_EnableVerticalSync(sfRenderWindow* renderWindow, sfBool enabled); - -//////////////////////////////////////////////////////////// -/// Show or hide the mouse cursor on a window -/// -/// \param renderWindow : RenderWindow object -/// \param show : sfTrue to show, sfFalse to hide -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_ShowMouseCursor(sfRenderWindow* renderWindow, sfBool show); - -//////////////////////////////////////////////////////////// -/// Change the position of the mouse cursor on a window -/// -/// \param renderWindow : Renderwindow object -/// \param left : Left coordinate of the cursor, relative to the window -/// \param top : Top coordinate of the cursor, relative to the window -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_SetCursorPosition(sfRenderWindow* renderWindow, unsigned int left, unsigned int top); - -//////////////////////////////////////////////////////////// -/// Change the position of a window on screen. -/// Only works for top-level windows -/// -/// \param renderWindow : Renderwindow object -/// \param left : Left position -/// \param top : Top position -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_SetPosition(sfRenderWindow* renderWindow, int left, int top); - -//////////////////////////////////////////////////////////// -/// Change the size of the rendering region of a window -/// -/// \param renderWindow : Renderwindow object -/// \param width : New Width -/// \param height : New Height -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_SetSize(sfRenderWindow* renderWindow, unsigned int width, unsigned int height); - -//////////////////////////////////////////////////////////// -/// Change the title of a window -/// -/// \param renderWindow : Renderwindow object -/// \param title : New title -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_SetTitle(sfRenderWindow* renderWindow, const char* title); - -//////////////////////////////////////////////////////////// -/// Show or hide a window -/// -/// \param renderWindow : Renderwindow object -/// \param show : sfTrue to show, sfFalse to hide -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_Show(sfRenderWindow* renderWindow, sfBool show); - -//////////////////////////////////////////////////////////// -/// Enable or disable automatic key-repeat for keydown events. -/// Automatic key-repeat is enabled by default -/// -/// \param renderWindow : Renderwindow object -/// \param enabled : sfTrue to enable, sfFalse to disable -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_EnableKeyRepeat(sfRenderWindow* renderWindow, sfBool enabled); - -//////////////////////////////////////////////////////////// -/// Change the window's icon -/// -/// \param renderWindow : Renderwindow object -/// \param width : Icon's width, in pixels -/// \param height : Icon's height, in pixels -/// \param pixels : Pointer to the pixels in memory, format must be RGBA 32 bits -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_SetIcon(sfRenderWindow* renderWindow, unsigned int width, unsigned int height, const sfUint8* pixels); - -//////////////////////////////////////////////////////////// -/// Activate or deactivate a window as the current target for rendering -/// -/// \param renderWindow : Renderwindow object -/// \param active : sfTrue to activate, sfFalse to deactivate -/// -/// \return True if operation was successful, false otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfRenderWindow_SetActive(sfRenderWindow* renderWindow, sfBool active); - -//////////////////////////////////////////////////////////// -/// Save the current OpenGL render states and matrices -/// -/// \param renderWindow : Renderwindow object -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_SaveGLStates(sfRenderWindow* renderWindow); - -//////////////////////////////////////////////////////////// -/// Restore the previously saved OpenGL render states and matrices -/// -/// \param renderWindow : Renderwindow object -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_RestoreGLStates(sfRenderWindow* renderWindow); - -//////////////////////////////////////////////////////////// -/// Display a window on screen -/// -/// \param renderWindow : Renderwindow object -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_Display(sfRenderWindow* renderWindow); - -//////////////////////////////////////////////////////////// -/// Limit the framerate to a maximum fixed frequency for a window -/// -/// \param renderWindow : Renderwindow object -/// \param limit : Framerate limit, in frames per seconds (use 0 to disable limit) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_SetFramerateLimit(sfRenderWindow* renderWindow, unsigned int limit); - -//////////////////////////////////////////////////////////// -/// Get time elapsed since last frame of a window -/// -/// \param renderWindow : Renderwindow object -/// -/// \return Time elapsed, in milliseconds -/// -//////////////////////////////////////////////////////////// -CSFML_API sfUint32 sfRenderWindow_GetFrameTime(const sfRenderWindow* renderWindow); - -//////////////////////////////////////////////////////////// -/// Change the joystick threshold, ie. the value below which -/// no move event will be generated -/// -/// \param renderWindow : Renderwindow object -/// \param threshold : New threshold, in range [0, 100] -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_SetJoystickThreshold(sfRenderWindow* renderWindow, float threshold); - -//////////////////////////////////////////////////////////// -/// Retrieve the Os-specific handle of a window -/// -/// \param renderWindow : Renderwindow object -/// -/// \return Window handle -/// -//////////////////////////////////////////////////////////// -CSFML_API sfWindowHandle sfRenderWindow_GetSystemHandle(const sfRenderWindow* renderWindow); - -//////////////////////////////////////////////////////////// -/// Draw something on a renderwindow -/// -/// \param renderWindow : Renderwindow to draw in -/// \param sprite / text / shape : Object to draw -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_DrawSprite(sfRenderWindow* renderWindow, const sfSprite* sprite); -CSFML_API void sfRenderWindow_DrawShape (sfRenderWindow* renderWindow, const sfShape* shape); -CSFML_API void sfRenderWindow_DrawText (sfRenderWindow* renderWindow, const sfText* text); - -//////////////////////////////////////////////////////////// -/// Draw something on a renderwindow with a shader -/// -/// \param renderWindow : Renderwindow to draw in -/// \param sprite / text / shape : Object to draw -/// \param shader : Shader to use -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_DrawSpriteWithShader(sfRenderWindow* renderWindow, const sfSprite* sprite, const sfShader* shader); -CSFML_API void sfRenderWindow_DrawShapeWithShader (sfRenderWindow* renderWindow, const sfShape* shape, const sfShader* shader); -CSFML_API void sfRenderWindow_DrawTextWithShader (sfRenderWindow* renderWindow, const sfText* text, const sfShader* shader); - -//////////////////////////////////////////////////////////// -/// Clear the screen with the given color -/// -/// \param renderWindow : Renderwindow to modify -/// \param color : Fill color -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_Clear(sfRenderWindow* renderWindow, sfColor color); - -//////////////////////////////////////////////////////////// -/// Change the current active view of a renderwindow -/// -/// \param renderWindow : Renderwindow to modify -/// \param view : Pointer to the new view -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_SetView(sfRenderWindow* renderWindow, const sfView* view); - -//////////////////////////////////////////////////////////// -/// Get the current active view of a renderwindow -/// -/// \param renderWindow : Renderwindow -/// -/// \return Current active view -/// -//////////////////////////////////////////////////////////// -CSFML_API const sfView* sfRenderWindow_GetView(const sfRenderWindow* renderWindow); - -//////////////////////////////////////////////////////////// -/// Get the default view of a renderwindow -/// -/// \param renderWindow : Renderwindow -/// -/// \return Default view of the render window -/// -//////////////////////////////////////////////////////////// -CSFML_API const sfView* sfRenderWindow_GetDefaultView(const sfRenderWindow* renderWindow); - -//////////////////////////////////////////////////////////// -/// Get the viewport of a view applied to this target -/// -/// \param renderWindow : Renderwindow -/// \param view : Target view -/// -/// \return Viewport rectangle, expressed in pixels in the current target -/// -//////////////////////////////////////////////////////////// -CSFML_API sfIntRect sfRenderWindow_GetViewport(const sfRenderWindow* renderWindow, const sfView* view); - -//////////////////////////////////////////////////////////// -/// Convert a point in window coordinates into view coordinates -/// -/// \param renderWindow : Target Renderwindow -/// \param windowX : X coordinate of the point to convert, relative to the window -/// \param windowY : Y coordinate of the point to convert, relative to the window -/// \param viewX : Pointer to fill with the X coordinate of the converted point -/// \param viewY : Pointer to fill with the Y coordinate of the converted point -/// \param targetView : Target view to convert the point to (pass NULL to use the current view) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfRenderWindow_ConvertCoords(const sfRenderWindow* renderWindow, unsigned int windowX, unsigned int windowY, float* viewX, float* viewY, const sfView* targetView); - - -#endif // SFML_RENDERWINDOW_H diff --git a/bindings/c/include/SFML/Graphics/Shader.h b/bindings/c/include/SFML/Graphics/Shader.h deleted file mode 100644 index 8d6ab360..00000000 --- a/bindings/c/include/SFML/Graphics/Shader.h +++ /dev/null @@ -1,157 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SHADER_H -#define SFML_SHADER_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new shader from a file -/// -/// \param filename : File to load -/// -/// \return A new sfShader object, or NULL if it failed -/// -//////////////////////////////////////////////////////////// -CSFML_API sfShader* sfShader_CreateFromFile(const char* filename); - -//////////////////////////////////////////////////////////// -/// Create a new shader from an effect source code -/// -/// \param effect : Source code of the effect -/// -/// \return A new sfShader object, or NULL if it failed -/// -//////////////////////////////////////////////////////////// -CSFML_API sfShader* sfShader_CreateFromMemory(const char* effect); - -//////////////////////////////////////////////////////////// -/// Copy an existing shader -/// -/// \param shader : Shader to copy -/// -/// \return Copied object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfShader* sfShader_Copy(sfShader* shader); - -//////////////////////////////////////////////////////////// -/// Destroy an existing shader -/// -/// \param shader : Shader to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShader_Destroy(sfShader* shader); - -//////////////////////////////////////////////////////////// -/// Change a parameter of a shader (1 float) -/// -/// \param shader : Shader to modify -/// \param name : Parameter name in the effect -/// \param x : Value to assign -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShader_SetParameter1(sfShader* shader, const char* name, float x); - -//////////////////////////////////////////////////////////// -/// Change a parameter of a shader (2 floats) -/// -/// \param shader : Shader to modify -/// \param name : Parameter name in the effect -/// \param x, y : Values to assign -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShader_SetParameter2(sfShader* shader, const char* name, float x, float y); - -//////////////////////////////////////////////////////////// -/// Change a parameter of a shader (3 floats) -/// -/// \param shader : Shader to modify -/// \param name : Parameter name in the effect -/// \param x, y, z : Values to assign -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShader_SetParameter3(sfShader* shader, const char* name, float x, float y, float z); - -//////////////////////////////////////////////////////////// -/// Change a parameter of a shader (4 floats) -/// -/// \param shader : Shader to modify -/// \param name : Parameter name in the effect -/// \param x, y, z, w : Values to assign -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShader_SetParameter4(sfShader* shader, const char* name, float x, float y, float z, float w); - -//////////////////////////////////////////////////////////// -/// Set a texture parameter in a shader -/// -/// \param shader : Shader to modify -/// \param name : Texture name in the effect -/// \param texture : Image to set -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShader_SetTexture(sfShader* shader, const char* name, const sfImage* texture); - -//////////////////////////////////////////////////////////// -/// Set the current texture parameter in a shader -/// -/// \param shader : Shader to modify -/// \param name : Texture name in the effect -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShader_SetCurrentTexture(sfShader* shader, const char* name); - -//////////////////////////////////////////////////////////// -/// Bind a shader for rendering -/// -/// \param shader : Shader to bind -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShader_Bind(const sfShader* shader); - -//////////////////////////////////////////////////////////// -/// Unbind a shader -/// -/// \param shader : Shader to unbind -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShader_Unbind(const sfShader* shader); - -//////////////////////////////////////////////////////////// -/// Tell whether or not the system supports shaders -/// -/// \return sfTrue if the system can use shaders -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfShader_IsAvailable(void); - - -#endif // SFML_SHADER_H diff --git a/bindings/c/include/SFML/Graphics/Shape.h b/bindings/c/include/SFML/Graphics/Shape.h deleted file mode 100644 index 4ddb3169..00000000 --- a/bindings/c/include/SFML/Graphics/Shape.h +++ /dev/null @@ -1,464 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SHAPE_H -#define SFML_SHAPE_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new shape -/// -/// \return A new sfShape object, or NULL if it failed -/// -//////////////////////////////////////////////////////////// -CSFML_API sfShape* sfShape_Create(void); - -//////////////////////////////////////////////////////////// -/// Create a new shape made of a single line -/// -/// \param p1x, p1y : Position of the first point -/// \param p2x, p2y : Position second point -/// \param thickness : Line thickness -/// \param color : Color used to draw the line -/// \param outline : Outline thickness -/// \param outlineColor : Color used to draw the outline -/// -//////////////////////////////////////////////////////////// -CSFML_API sfShape* sfShape_CreateLine(float p1x, float p1y, float p2x, float p2y, float thickness, sfColor color, float outline, sfColor outlineColor); - -//////////////////////////////////////////////////////////// -/// Create a new shape made of a single rectangle -/// -/// \param left, top : Top-left corner of the rectangle -/// \param width, height : Size of the rectangle -/// \param color : Color used to fill the rectangle -/// \param outline : Outline thickness -/// \param outlineColor : Color used to draw the outline -/// -//////////////////////////////////////////////////////////// -CSFML_API sfShape* sfShape_CreateRectangle(float left, float top, float width, float height, sfColor color, float outline, sfColor outlineColor); - -//////////////////////////////////////////////////////////// -/// Create a new shape made of a single circle -/// -/// \param x, y : Position of the center -/// \param radius : Radius -/// \param color : Color used to fill the circle -/// \param outline : Outline thickness -/// \param outlineColor : Color used to draw the outline -/// -//////////////////////////////////////////////////////////// -CSFML_API sfShape* sfShape_CreateCircle(float x, float y, float radius, sfColor color, float outline, sfColor outlineColor); - -//////////////////////////////////////////////////////////// -/// Copy an existing shape -/// -/// \param shape : Shape to copy -/// -/// \return Copied object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfShape* sfShape_Copy(sfShape* shape); - -//////////////////////////////////////////////////////////// -/// Destroy an existing Shape -/// -/// \param Shape : Shape to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_Destroy(sfShape* shape); - -//////////////////////////////////////////////////////////// -/// Set the X position of a shape -/// -/// \param shape : Shape to modify -/// \param x : New X coordinate -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_SetX(sfShape* shape, float x); - -//////////////////////////////////////////////////////////// -/// Set the Y position of a shape -/// -/// \param shape : Shape to modify -/// \param y : New Y coordinate -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_SetY(sfShape* shape, float y); - -//////////////////////////////////////////////////////////// -/// Set the position of a shape -/// -/// \param shape : Shape to modify -/// \param x : New X coordinate -/// \param y : New Y coordinate -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_SetPosition(sfShape* shape, float x, float y); - -//////////////////////////////////////////////////////////// -/// Set the horizontal scale of a shape -/// -/// \param shape : Shape to modify -/// \param scale : New scale (must be strictly positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_SetScaleX(sfShape* shape, float scale); - -//////////////////////////////////////////////////////////// -/// Set the vertical scale of a shape -/// -/// \param shape : Shape to modify -/// \param scale : New scale (must be strictly positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_SetScaleY(sfShape* shape, float scale); - -//////////////////////////////////////////////////////////// -/// Set the scale of a shape -/// -/// \param shape : Shape to modify -/// \param scaleX : New horizontal scale (must be strictly positive) -/// \param scaleY : New vertical scale (must be strictly positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_SetScale(sfShape* shape, float scaleX, float scaleY); - -//////////////////////////////////////////////////////////// -/// Set the orientation of a shape -/// -/// \param shape : Shape to modify -/// \param rotation : Angle of rotation, in degrees -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_SetRotation(sfShape* shape, float rotation); - -//////////////////////////////////////////////////////////// -/// Set the local origin of a shape, in coordinates relative to -/// its left-top corner -/// -/// \param shape : Shape to modify -/// \param x : X coordinate of the origin -/// \param y : Y coordinate of the origin -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_SetOrigin(sfShape* shape, float x, float y); - -//////////////////////////////////////////////////////////// -/// Set the color of a shape -/// -/// \param shape : Shape to modify -/// \param color : New color -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_SetColor(sfShape* shape, sfColor color); - -//////////////////////////////////////////////////////////// -/// Set the blending mode for a shape -/// -/// \param shape : Shape to modify -/// \param mode : New blending mode -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_SetBlendMode(sfShape* shape, sfBlendMode mode); - -//////////////////////////////////////////////////////////// -/// Get the X position of a shape -/// -/// \param shape : Shape to read -/// -/// \return Current X position -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfShape_GetX(const sfShape* shape); - -//////////////////////////////////////////////////////////// -/// Get the Y position of a shape -/// -/// \param shape : Shape to read -/// -/// \return Current Y position -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfShape_GetY(const sfShape* shape); - -//////////////////////////////////////////////////////////// -/// Get the horizontal scale of a shape -/// -/// \param shape : Shape to read -/// -/// \return Current X scale factor (always positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfShape_GetScaleX(const sfShape* shape); - -//////////////////////////////////////////////////////////// -/// Get the vertical scale of a shape -/// -/// \param shape : Shape to read -/// -/// \return Current Y scale factor (always positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfShape_GetScaleY(const sfShape* shape); - -//////////////////////////////////////////////////////////// -/// Get the orientation of a shape -/// -/// \param shape : Shape to read -/// -/// \return Current rotation, in degrees -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfShape_GetRotation(const sfShape* shape); - -//////////////////////////////////////////////////////////// -/// Get the X position of the origin a shape -/// -/// \param shape : Shape to read -/// -/// \return Current X origin -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfShape_GetOriginX(const sfShape* shape); - -//////////////////////////////////////////////////////////// -/// Get the Y position of the origin a shape -/// -/// \param shape : Shape to read -/// -/// \return Current Y origin -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfShape_GetOriginY(const sfShape* shape); - -//////////////////////////////////////////////////////////// -/// Get the color of a shape -/// -/// \param shape : Shape to read -/// -/// \return Current color -/// -//////////////////////////////////////////////////////////// -CSFML_API sfColor sfShape_GetColor(const sfShape* shape); - -//////////////////////////////////////////////////////////// -/// Get the current blending mode of a shape -/// -/// \param shape : Shape to read -/// -/// \return Current blending mode -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBlendMode sfShape_GetBlendMode(const sfShape* shape); - -//////////////////////////////////////////////////////////// -/// Move a shape -/// -/// \param shape : Shape to modify -/// \param offsetX : Offset on the X axis -/// \param offsetY : Offset on the Y axis -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_Move(sfShape* shape, float offsetX, float offsetY); - -//////////////////////////////////////////////////////////// -/// Scale a shape -/// -/// \param shape : Shape to modify -/// \param factorX : Horizontal scaling factor (must be strictly positive) -/// \param factorY : Vertical scaling factor (must be strictly positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_Scale(sfShape* shape, float factorX, float factorY); - -//////////////////////////////////////////////////////////// -/// Rotate a shape -/// -/// \param shape : Shape to modify -/// \param angle : Angle of rotation, in degrees -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_Rotate(sfShape* shape, float angle); - -//////////////////////////////////////////////////////////// -/// Transform a point from global coordinates into the shape's local coordinates -/// (ie it applies the inverse of object's origin, translation, rotation and scale to the point) -/// -/// \param shape : Shape object -/// \param pointX : X coordinate of the point to transform -/// \param pointY : Y coordinate of the point to transform -/// \param x : Value to fill with the X coordinate of the converted point -/// \param y : Value to fill with the y coordinate of the converted point -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_TransformToLocal(const sfShape* shape, float pointX, float pointY, float* x, float* y); - -//////////////////////////////////////////////////////////// -/// Transform a point from the shape's local coordinates into global coordinates -/// (ie it applies the object's origin, translation, rotation and scale to the point) -/// -/// \param shape : Shape object -/// \param pointX : X coordinate of the point to transform -/// \param pointY : Y coordinate of the point to transform -/// \param x : Value to fill with the X coordinate of the converted point -/// \param y : Value to fill with the y coordinate of the converted point -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_TransformToGlobal(const sfShape* shape, float pointX, float pointY, float* x, float* y); - -//////////////////////////////////////////////////////////// -/// Add a point to a shape -/// -/// \param shape : Shape to modify -/// \param x, y : Position of the point -/// \param color : Color of the point -/// \param outlineColor : Outline color of the point -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_AddPoint(sfShape* shape, float x, float y, sfColor color, sfColor outlineColor); - -//////////////////////////////////////////////////////////// -/// Enable or disable filling a shape. -/// Fill is enabled by default -/// -/// \param shape : Shape to modify -/// \param enable : True to enable, false to disable -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_EnableFill(sfShape* shape, sfBool enable); - -//////////////////////////////////////////////////////////// -/// Enable or disable drawing a shape outline. -/// Outline is enabled by default -/// -/// \param shape : Shape to modify -/// \param enable : True to enable, false to disable -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_EnableOutline(sfShape* shape, sfBool enable); - -//////////////////////////////////////////////////////////// -/// Change the thickness of a shape outline -/// -/// \param shape : Shape to modify -/// \param thickness : New thickness -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_SetOutlineThickness(sfShape* shape, float thickness); - -//////////////////////////////////////////////////////////// -/// Get the thickness of a shape outline -/// -/// \param shape : Shape to read -/// -/// \param return Current outline thickness -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfShape_GetOutlineThickness(const sfShape* shape); - -//////////////////////////////////////////////////////////// -/// Get the number of points composing a shape -/// -/// \param shape : Shape to read -/// -/// \return Total number of points -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfShape_GetPointsCount(const sfShape* shape); - -//////////////////////////////////////////////////////////// -/// Get a the position of a shape's point -/// -/// \param shape : Shape to read -/// \param index : Index of the point to get -/// \param x : Variable to fill with the X coordinate of the point -/// \param y : Variable to fill with the Y coordinate of the point -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_GetPointPosition(const sfShape* shape, unsigned int index, float* x, float* y); - -//////////////////////////////////////////////////////////// -/// Get a the color of a shape's point -/// -/// \param shape : Shape to read -/// \param index : Index of the point to get -/// -/// \return Color of the point -/// -//////////////////////////////////////////////////////////// -CSFML_API sfColor sfShape_GetPointColor(const sfShape* shape, unsigned int index); - -//////////////////////////////////////////////////////////// -/// Get a the outline color of a shape's point -/// -/// \param shape : Shape to read -/// \param index : Index of the point to get -/// -/// \return Outline color of the point -/// -//////////////////////////////////////////////////////////// -CSFML_API sfColor sfShape_GetPointOutlineColor(const sfShape* shape, unsigned int index); - -//////////////////////////////////////////////////////////// -/// Set a the position of a shape's point -/// -/// \param shape : Shape to read -/// \param index : Index of the point to get -/// \param x : X coordinate of the point -/// \param y : Y coordinate of the point -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_SetPointPosition(sfShape* shape, unsigned int index, float x, float y); - -//////////////////////////////////////////////////////////// -/// Set a the color of a shape's point -/// -/// \param shape : Shape to read -/// \param index : Index of the point to get -/// \param color : Color of the point -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_SetPointColor(sfShape* shape, unsigned int index, sfColor color); - -//////////////////////////////////////////////////////////// -/// Set a the outline color of a shape's point -/// -/// \param shape : Shape to read -/// \param index : Index of the point to get -/// \param color : Outline color of the point -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfShape_SetPointOutlineColor(sfShape* shape, unsigned int index, sfColor color); - - -#endif // SFML_SHAPE_H diff --git a/bindings/c/include/SFML/Graphics/Sprite.h b/bindings/c/include/SFML/Graphics/Sprite.h deleted file mode 100644 index 51eee157..00000000 --- a/bindings/c/include/SFML/Graphics/Sprite.h +++ /dev/null @@ -1,403 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SPRITE_H -#define SFML_SPRITE_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new sprite -/// -/// \return A new sfSprite object, or NULL if it failed -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSprite* sfSprite_Create(void); - -//////////////////////////////////////////////////////////// -/// Copy an existing sprite -/// -/// \param sprite : Sprite to copy -/// -/// \return Copied object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSprite* sfSprite_Copy(sfSprite* sprite); - -//////////////////////////////////////////////////////////// -/// Destroy an existing sprite -/// -/// \param sprite : Sprite to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_Destroy(sfSprite* sprite); - -//////////////////////////////////////////////////////////// -/// Set the X position of a sprite -/// -/// \param sprite : Sprite to modify -/// \param x : New X coordinate -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_SetX(sfSprite* sprite, float x); - -//////////////////////////////////////////////////////////// -/// Set the T position of a sprite -/// -/// \param sprite : Sprite to modify -/// \param y : New Y coordinate -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_SetY(sfSprite* sprite, float y); - -//////////////////////////////////////////////////////////// -/// Set the position of a sprite -/// -/// \param sprite : Sprite to modify -/// \param x : New X coordinate -/// \param y : New Y coordinate -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_SetPosition(sfSprite* sprite, float x, float y); - -//////////////////////////////////////////////////////////// -/// Set the horizontal scale of a sprite -/// -/// \param sprite : Sprite to modify -/// \param scale : New scale (must be strictly positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_SetScaleX(sfSprite* sprite, float scale); - -//////////////////////////////////////////////////////////// -/// Set the vertical scale of a sprite -/// -/// \param sprite : Sprite to modify -/// \param scale : New scale (must be strictly positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_SetScaleY(sfSprite* sprite, float scale); - -//////////////////////////////////////////////////////////// -/// Set the scale of a sprite -/// -/// \param sprite : Sprite to modify -/// \param scaleX : New horizontal scale (must be strictly positive) -/// \param scaleY : New vertical scale (must be strictly positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_SetScale(sfSprite* sprite, float scaleX, float scaleY); - -//////////////////////////////////////////////////////////// -/// Set the orientation of a sprite -/// -/// \param sprite : Sprite to modify -/// \param rotation : Angle of rotation, in degrees -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_SetRotation(sfSprite* sprite, float rotation); - -//////////////////////////////////////////////////////////// -/// Set the local origin of a sprite, in coordinates relative to -/// its left-top corner -/// -/// \param sprite : Sprite to modify -/// \param x : X coordinate of the origin -/// \param y : Y coordinate of the origin -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_SetOrigin(sfSprite* sprite, float x, float y); - -//////////////////////////////////////////////////////////// -/// Set the color of a sprite -/// -/// \param sprite : Sprite to modify -/// \param color : New color -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_SetColor(sfSprite* sprite, sfColor color); - -//////////////////////////////////////////////////////////// -/// Set the blending mode for a sprite -/// -/// \param sprite : Sprite to modify -/// \param mode : New blending mode -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_SetBlendMode(sfSprite* sprite, sfBlendMode mode); - -//////////////////////////////////////////////////////////// -/// Get the X position of a sprite -/// -/// \param sprite : Sprite to read -/// -/// \return Current X position -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSprite_GetX(const sfSprite* sprite); - -//////////////////////////////////////////////////////////// -/// Get the Y position of a sprite -/// -/// \param sprite : Sprite to read -/// -/// \return Current Y position -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSprite_GetY(const sfSprite* sprite); - -//////////////////////////////////////////////////////////// -/// Get the horizontal scale of a sprite -/// -/// \param sprite : Sprite to read -/// -/// \return Current X scale factor (always positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSprite_GetScaleX(const sfSprite* sprite); - -//////////////////////////////////////////////////////////// -/// Get the vertical scale of a sprite -/// -/// \param sprite : Sprite to read -/// -/// \return Current Y scale factor (always positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSprite_GetScaleY(const sfSprite* sprite); - -//////////////////////////////////////////////////////////// -/// Get the orientation of a sprite -/// -/// \param sprite : Sprite to read -/// -/// \return Current rotation, in degrees -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSprite_GetRotation(const sfSprite* sprite); - -//////////////////////////////////////////////////////////// -/// Get the X position of the origin a sprite -/// -/// \param sprite : Sprite to read -/// -/// \return Current X origin -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSprite_GetOriginX(const sfSprite* sprite); - -//////////////////////////////////////////////////////////// -/// Get the Y position of the origin a sprite -/// -/// \param sprite : Sprite to read -/// -/// \return Current Y origin -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSprite_GetOriginY(const sfSprite* sprite); - -//////////////////////////////////////////////////////////// -/// Get the color of a sprite -/// -/// \param sprite : Sprite to read -/// -/// \return Current color -/// -//////////////////////////////////////////////////////////// -CSFML_API sfColor sfSprite_GetColor(const sfSprite* sprite); - -//////////////////////////////////////////////////////////// -/// Get the current blending mode of a sprite -/// -/// \param sprite : Sprite to read -/// -/// \return Current blending mode -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBlendMode sfSprite_GetBlendMode(const sfSprite* sprite); - -//////////////////////////////////////////////////////////// -/// Move a sprite -/// -/// \param sprite : Sprite to modify -/// \param offsetX : Offset on the X axis -/// \param offsetY : Offset on the Y axis -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_Move(sfSprite* sprite, float offsetX, float offsetY); - -//////////////////////////////////////////////////////////// -/// Scale a sprite -/// -/// \param sprite : Sprite to modify -/// \param factorX : Horizontal scaling factor (must be strictly positive) -/// \param factorY : Vertical scaling factor (must be strictly positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_Scale(sfSprite* sprite, float factorX, float factorY); - -//////////////////////////////////////////////////////////// -/// Rotate a sprite -/// -/// \param sprite : Sprite to modify -/// \param angle : Angle of rotation, in degrees -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_Rotate(sfSprite* sprite, float angle); - -//////////////////////////////////////////////////////////// -/// Transform a point from global coordinates into the sprite's local coordinates -/// (ie it applies the inverse of object's origin, translation, rotation and scale to the point) -/// -/// \param sprite : Sprite object -/// \param pointX : X coordinate of the point to transform -/// \param pointY : Y coordinate of the point to transform -/// \param x : Value to fill with the X coordinate of the converted point -/// \param y : Value to fill with the y coordinate of the converted point -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_TransformToLocal(const sfSprite* sprite, float pointX, float pointY, float* x, float* y); - -//////////////////////////////////////////////////////////// -/// Transform a point from the sprite's local coordinates into global coordinates -/// (ie it applies the object's origin, translation, rotation and scale to the point) -/// -/// \param sprite : Sprite object -/// \param pointX : X coordinate of the point to transform -/// \param pointY : Y coordinate of the point to transform -/// \param x : Value to fill with the X coordinate of the converted point -/// \param y : Value to fill with the y coordinate of the converted point -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_TransformToGlobal(const sfSprite* sprite, float pointX, float pointY, float* x, float* y); - -//////////////////////////////////////////////////////////// -/// Change the image of a sprite -/// -/// \param sprite : Sprite to modify -/// \param image : New image -/// \param adjustToNewSize : If true, the SubRect of the sprite will be adjusted to the size of the new image -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_SetImage(sfSprite* sprite, const sfImage* image, sfBool adjustToNewSize); - -//////////////////////////////////////////////////////////// -/// Set the sub-rectangle of a sprite inside the source image -/// -/// \param sprite : Sprite to modify -/// \param rectangle : New sub-rectangle -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_SetSubRect(sfSprite* sprite, sfIntRect rectangle); - -//////////////////////////////////////////////////////////// -/// Resize a sprite (by changing its scale factors) -/// -/// \param sprite : Sprite to modify -/// \param width : New width (must be strictly positive) -/// \param height : New height (must be strictly positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_Resize(sfSprite* sprite, float width, float height); - -//////////////////////////////////////////////////////////// -/// Flip a sprite horizontally -/// -/// \param sprite : Sprite to modify -/// \param flipped : sfTrue to flip the sprite -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_FlipX(sfSprite* sprite, sfBool flipped); - -//////////////////////////////////////////////////////////// -/// Flip a sprite vertically -/// -/// \param sprite : Sprite to modify -/// \param flipped : sfTrue to flip the sprite -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSprite_FlipY(sfSprite* sprite, sfBool flipped); - -//////////////////////////////////////////////////////////// -/// Get the source image of a sprite -/// -/// \param sprite : Sprite to read -/// -/// \return Pointer to the image (can be NULL) -/// -//////////////////////////////////////////////////////////// -CSFML_API const sfImage* sfSprite_GetImage(const sfSprite* sprite); - -//////////////////////////////////////////////////////////// -/// Get the sub-rectangle of a sprite inside the source image -/// -/// \param sprite : Sprite to read -/// -/// \return Sub-rectangle -/// -//////////////////////////////////////////////////////////// -CSFML_API sfIntRect sfSprite_GetSubRect(const sfSprite* sprite); - -//////////////////////////////////////////////////////////// -/// Get a sprite width -/// -/// \param sprite : Sprite to read -/// -/// \return Width of the sprite -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSprite_GetWidth(const sfSprite* sprite); - -//////////////////////////////////////////////////////////// -/// Get a sprite height -/// -/// \param sprite : Sprite to read -/// -/// \return Height of the sprite -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfSprite_GetHeight(const sfSprite* sprite); - -//////////////////////////////////////////////////////////// -/// Get the color of a given pixel in a sprite -/// -/// \param sprite : Sprite to read -/// \param x : X coordinate of the pixel to get -/// \param y : Y coordinate of the pixel to get -/// -/// \return Color of pixel (X, Y) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfColor sfSprite_GetPixel(const sfSprite* sprite, unsigned int x, unsigned int y); - - -#endif // SFML_SPRITE_H diff --git a/bindings/c/include/SFML/Graphics/Text.h b/bindings/c/include/SFML/Graphics/Text.h deleted file mode 100644 index 8e434609..00000000 --- a/bindings/c/include/SFML/Graphics/Text.h +++ /dev/null @@ -1,434 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_TEXT_H -#define SFML_TEXT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// sfText styles -//////////////////////////////////////////////////////////// -typedef enum -{ - sfTextRegular = 0, ///< Regular characters, no style - sfTextBold = 1 << 0, ///< Characters are bold - sfTextItalic = 1 << 1, ///< Characters are in italic - sfTextUnderlined = 1 << 2 ///< Characters are underlined -} sfTextStyle; - - -//////////////////////////////////////////////////////////// -/// Create a new text -/// -/// \return A new sfText object, or NULL if it failed -/// -//////////////////////////////////////////////////////////// -CSFML_API sfText* sfText_Create(void); - -//////////////////////////////////////////////////////////// -/// Copy an existing text -/// -/// \param text : Text to copy -/// -/// \return Copied object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfText* sfText_Copy(sfText* text); - -//////////////////////////////////////////////////////////// -/// Destroy an existing text -/// -/// \param text : Text to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_Destroy(sfText* text); - -//////////////////////////////////////////////////////////// -/// Set the X position of a text -/// -/// \param text : String to modify -/// \param x : New X coordinate -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_SetX(sfText* text, float x); - -//////////////////////////////////////////////////////////// -/// Set the Y position of a text -/// -/// \param text : String to modify -/// \param y : New Y coordinate -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_SetY(sfText* text, float y); - -//////////////////////////////////////////////////////////// -/// Set the position of a text -/// -/// \param text : String to modify -/// \param x : New X coordinate -/// \param y : New Y coordinate -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_SetPosition(sfText* text, float x, float y); - -//////////////////////////////////////////////////////////// -/// Set the horizontal scale of a text -/// -/// \param text : String to modify -/// \param scale : New scale (must be strictly positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_SetScaleX(sfText* text, float scale); - -//////////////////////////////////////////////////////////// -/// Set the vertical scale of a text -/// -/// \param text : String to modify -/// \param scale : New scale (must be strictly positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_SetScaleY(sfText* text, float scale); - -//////////////////////////////////////////////////////////// -/// Set the scale of a text -/// -/// \param text : String to modify -/// \param scaleX : New horizontal scale (must be strictly positive) -/// \param scaleY : New vertical scale (must be strictly positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_SetScale(sfText* text, float scaleX, float scaleY); - -//////////////////////////////////////////////////////////// -/// Set the orientation of a text -/// -/// \param text : String to modify -/// \param rotation : Angle of rotation, in degrees -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_SetRotation(sfText* text, float rotation); - -//////////////////////////////////////////////////////////// -/// Set the local origin of a text, in coordinates -/// relative to its left-top corner -/// -/// \param text : String to modify -/// \param x : X coordinate of the origin -/// \param y : Y coordinate of the origin -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_SetOrigin(sfText* text, float x, float y); - -//////////////////////////////////////////////////////////// -/// Set the color of a text -/// -/// \param text : String to modify -/// \param color : New color -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_SetColor(sfText* text, sfColor color); - -//////////////////////////////////////////////////////////// -/// Set the blending mode for a text -/// -/// \param text : String to modify -/// \param mode : New blending mode -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_SetBlendMode(sfText* text, sfBlendMode mode); - -//////////////////////////////////////////////////////////// -/// Get the X position of a text -/// -/// \param text : String to read -/// -/// \return Current X position -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfText_GetX(const sfText* text); - -//////////////////////////////////////////////////////////// -/// Get the top Y of a text -/// -/// \param text : String to read -/// -/// \return Current Y position -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfText_GetY(const sfText* text); - -//////////////////////////////////////////////////////////// -/// Get the horizontal scale of a text -/// -/// \param text : String to read -/// -/// \return Current X scale factor (always positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfText_GetScaleX(const sfText* text); - -//////////////////////////////////////////////////////////// -/// Get the vertical scale of a text -/// -/// \param text : String to read -/// -/// \return Current Y scale factor (always positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfText_GetScaleY(const sfText* text); - -//////////////////////////////////////////////////////////// -/// Get the orientation of a text -/// -/// \param text : String to read -/// -/// \return Current rotation, in degrees -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfText_GetRotation(const sfText* text); - -//////////////////////////////////////////////////////////// -/// Get the X position of the origin a text -/// -/// \param text : String to read -/// -/// \return Current X origin position -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfText_GetOriginX(const sfText* text); - -//////////////////////////////////////////////////////////// -/// Get the top Y of the origin of a text -/// -/// \param text : String to read -/// -/// \return Current Y origin position -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfText_GetOriginY(const sfText* text); - -//////////////////////////////////////////////////////////// -/// Get the color of a text -/// -/// \param text : String to read -/// -/// \return Current color -/// -//////////////////////////////////////////////////////////// -CSFML_API sfColor sfText_GetColor(const sfText* text); - -//////////////////////////////////////////////////////////// -/// Get the current blending mode of a text -/// -/// \param text : String to read -/// -/// \return Current blending mode -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBlendMode sfText_GetBlendMode(const sfText* text); - -//////////////////////////////////////////////////////////// -/// Move a text -/// -/// \param text : String to modify -/// \param offsetX : Offset on the X axis -/// \param offsetY : Offset on the Y axis -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_Move(sfText* text, float offsetX, float offsetY); - -//////////////////////////////////////////////////////////// -/// Scale a text -/// -/// \param text : String to modify -/// \param factorX : Horizontal scaling factor (must be strictly positive) -/// \param factorY : Vertical scaling factor (must be strictly positive) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_Scale(sfText* text, float factorX, float factorY); - -//////////////////////////////////////////////////////////// -/// Rotate a text -/// -/// \param text : String to modify -/// \param angle : Angle of rotation, in degrees -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_Rotate(sfText* text, float angle); - -//////////////////////////////////////////////////////////// -/// Transform a point from global coordinates into the string's local coordinates -/// (ie it applies the inverse of object's origin, translation, rotation and scale to the point) -/// -/// \param text : String object -/// \param pointX : X coordinate of the point to transform -/// \param pointY : Y coordinate of the point to transform -/// \param x : Value to fill with the X coordinate of the converted point -/// \param y : Value to fill with the y coordinate of the converted point -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_TransformToLocal(const sfText* text, float pointX, float pointY, float* x, float* y); - -//////////////////////////////////////////////////////////// -/// Transform a point from the string's local coordinates into global coordinates -/// (ie it applies the object's origin, translation, rotation and scale to the point) -/// -/// \param text : String object -/// \param pointX : X coordinate of the point to transform -/// \param pointY : Y coordinate of the point to transform -/// \param x : Value to fill with the X coordinate of the converted point -/// \param y : Value to fill with the y coordinate of the converted point -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_TransformToGlobal(const sfText* text, float pointX, float pointY, float* X, float* y); - -//////////////////////////////////////////////////////////// -/// Set the string of a text (from a multibyte string) -/// -/// \param text : Text to modify -/// \param string : New string -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_SetString(sfText* text, const char* string); - -//////////////////////////////////////////////////////////// -/// Set the string of a text (from a unicode string) -/// -/// \param text : Text to modify -/// \param string : New string -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_SetUnicodeString(sfText* text, const sfUint32* string); - -//////////////////////////////////////////////////////////// -/// Set the font of a text -/// -/// \param text : String to modify -/// \param font : Font to use -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_SetFont(sfText* text, const sfFont* font); - -//////////////////////////////////////////////////////////// -/// Set the size of a text -/// -/// \param text : String to modify -/// \param size : New size, in pixels -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_SetCharacterSize(sfText* text, unsigned int size); - -//////////////////////////////////////////////////////////// -/// Set the style of a text -/// -/// \param text : String to modify -/// \param style : New style (see sfTextStyle enum) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_SetStyle(sfText* text, unsigned long style); - -//////////////////////////////////////////////////////////// -/// Get the string of a text (returns a unicode string) -/// -/// \param text : String to read -/// -/// \return String as UTF-32 -/// -//////////////////////////////////////////////////////////// -CSFML_API const sfUint32* sfText_GetUnicodeString(const sfText* text); - -//////////////////////////////////////////////////////////// -/// Get the text of a text (returns an ANSI string) -/// -/// \param text : String to read -/// -/// \return String an a locale-dependant ANSI string -/// -//////////////////////////////////////////////////////////// -CSFML_API const char* sfText_GetString(const sfText* text); - -//////////////////////////////////////////////////////////// -/// Get the font used by a text -/// -/// \param text : String to read -/// -/// \return Pointer to the font -/// -//////////////////////////////////////////////////////////// -CSFML_API const sfFont* sfText_GetFont(const sfText* text); - -//////////////////////////////////////////////////////////// -/// Get the size of the characters of a text -/// -/// \param text : String to read -/// -/// \return Size of the characters -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfText_GetCharacterSize(const sfText* text); - -//////////////////////////////////////////////////////////// -/// Get the style of a text -/// -/// \param text : String to read -/// -/// \return Current string style (see sfTextStyle enum) -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned long sfText_GetStyle(const sfText* text); - -//////////////////////////////////////////////////////////// -/// Return the visual position of the Index-th character of the text, -/// in coordinates relative to the string -/// (note : translation, origin, rotation and scale are not applied) -/// -/// \param text : String to read -/// \param index : Index of the character -/// \param x : Value to fill with the X coordinate of the position -/// \param y : Value to fill with the y coordinate of the position -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfText_GetCharacterPos(const sfText* text, size_t index, float* x, float* y); - -//////////////////////////////////////////////////////////// -/// Get the bounding rectangle of a text on screen -/// -/// \param text : String to read -/// -/// \return Rectangle contaning the string in screen coordinates -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFloatRect sfText_GetRect(const sfText* text); - - -#endif // SFML_TEXT_H diff --git a/bindings/c/include/SFML/Graphics/Types.h b/bindings/c/include/SFML/Graphics/Types.h deleted file mode 100644 index a490128c..00000000 --- a/bindings/c/include/SFML/Graphics/Types.h +++ /dev/null @@ -1,40 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_GRAPHICS_TYPES_H -#define SFML_GRAPHICS_TYPES_H - - -typedef struct sfFont sfFont; -typedef struct sfImage sfImage; -typedef struct sfShader sfShader; -typedef struct sfRenderImage sfRenderImage; -typedef struct sfRenderWindow sfRenderWindow; -typedef struct sfShape sfShape; -typedef struct sfSprite sfSprite; -typedef struct sfText sfText; -typedef struct sfView sfView; - - -#endif // SFML_GRAPHICS_TYPES_H diff --git a/bindings/c/include/SFML/Graphics/View.h b/bindings/c/include/SFML/Graphics/View.h deleted file mode 100644 index 45fcf8a3..00000000 --- a/bindings/c/include/SFML/Graphics/View.h +++ /dev/null @@ -1,209 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_VIEW_H -#define SFML_VIEW_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a default view (1000x1000) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfView* sfView_Create(void); - -//////////////////////////////////////////////////////////// -/// Construct a view from a rectangle -/// -/// \param rectangle : Rectangle defining the bounds of the view -/// -//////////////////////////////////////////////////////////// -CSFML_API sfView* sfView_CreateFromRect(sfFloatRect rectangle); - -//////////////////////////////////////////////////////////// -/// Copy an existing view -/// -/// \param view : View to copy -/// -/// \return Copied object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfView* sfView_Copy(sfView* view); - -//////////////////////////////////////////////////////////// -/// Destroy an existing view -/// -/// \param view : View to destroy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfView_Destroy(sfView* view); - -//////////////////////////////////////////////////////////// -/// Change the center of a view -/// -/// \param view : View to modify -/// \param x : X coordinate of the new center -/// \param y : Y coordinate of the new center -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfView_SetCenter(sfView* view, float x, float y); - -//////////////////////////////////////////////////////////// -/// Change the size of a view -/// -/// \param view : View to modify -/// \param width : New width -/// \param height : New height -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfView_SetSize(sfView* view, float width, float height); - -//////////////////////////////////////////////////////////// -/// Set the angle of rotation of a view -/// -/// \param view : View to modify -/// \param angle : New angle, in degrees -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfView_SetRotation(sfView* view, float angle); - -//////////////////////////////////////////////////////////// -/// Set the target viewport of a view -/// -/// The viewport is the rectangle into which the contents of the -/// view are displayed, expressed as a factor (between 0 and 1) -/// of the size of the RenderTarget to which the view is applied. -/// -/// \param view : View to modify -/// \param viewport : New viewport -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfView_SetViewport(sfView* view, sfFloatRect viewport); - -//////////////////////////////////////////////////////////// -/// Reset a view to the given rectangle. -/// Note: this function resets the rotation angle to 0. -/// -/// \param view : View to modify -/// \param rectangle : Rectangle defining the position and size of the view -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfView_Reset(sfView* view, sfFloatRect rectangle); - -//////////////////////////////////////////////////////////// -/// Get the X coordinate of the center of a view -/// -/// \param view : View to read -/// -/// \return X coordinate of the center of the view -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfView_GetCenterX(const sfView* view); - -//////////////////////////////////////////////////////////// -/// Get the Y coordinate of the center of a view -/// -/// \param view : View to read -/// -/// \return Y coordinate of the center of the view -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfView_GetCenterY(const sfView* view); - -//////////////////////////////////////////////////////////// -/// Get the width of the view -/// -/// \param view : View to read -/// -/// \return Width of the view -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfView_GetWidth(const sfView* view); - -//////////////////////////////////////////////////////////// -/// Get the height of the view -/// -/// \param view : View to read -/// -/// \return Height of the view -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfView_GetHeight(const sfView* view); - -//////////////////////////////////////////////////////////// -/// Get the current rotation of a view -/// -/// \param view : View to read -/// -/// \return Rotation of the view, in degrees -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfView_GetRotation(const sfView* view); - -//////////////////////////////////////////////////////////// -/// Get the target viewport of a view -/// -/// \param view : View to read -/// -/// \return Viewport rectangle, expressed as a factor of the target size -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFloatRect sfView_GetViewport(const sfView* view); - -//////////////////////////////////////////////////////////// -/// Move a view -/// -/// \param view : View to move -/// \param offsetX : Offset to move the view, on X axis -/// \param offsetY : Offset to move the view, on Y axis -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfView_Move(sfView* view, float offsetX, float offsetY); - -//////////////////////////////////////////////////////////// -/// Rotate a view -/// -/// \param view : View to rotate -/// \param angle : Angle in degrees -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfView_Rotate(sfView* view, float angle); - -//////////////////////////////////////////////////////////// -/// Resize a view rectangle to simulate a zoom / unzoom effect -/// -/// \param view : View to zoom -/// \param factor : Zoom factor to apply, relative to the current zoom -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfView_Zoom(sfView* view, float factor); - - -#endif // SFML_VIEW_H diff --git a/bindings/c/include/SFML/Network.h b/bindings/c/include/SFML/Network.h deleted file mode 100644 index b2de323e..00000000 --- a/bindings/c/include/SFML/Network.h +++ /dev/null @@ -1,41 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_NETWORK_H -#define SFML_NETWORK_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// - -#include -#include -#include -#include -#include -#include -#include - - -#endif // SFML_NETWORK_H diff --git a/bindings/c/include/SFML/Network/Ftp.h b/bindings/c/include/SFML/Network/Ftp.h deleted file mode 100644 index b784e23b..00000000 --- a/bindings/c/include/SFML/Network/Ftp.h +++ /dev/null @@ -1,449 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_FTP_H -#define SFML_FTP_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Enumerate all the FTP file transfer modes -//////////////////////////////////////////////////////////// -enum sfFtpTransferMode -{ - sfFtpBinary, ///< Binary mode (file is transfered as a sequence of bytes) - sfFtpAscii, ///< Text mode using ASCII encoding - sfFtpEbcdic ///< Text mode using EBCDIC encoding -}; - - -//////////////////////////////////////////////////////////// -/// Enumerate all the valid status codes returned in -/// a FTP response -//////////////////////////////////////////////////////////// -enum sfFtpStatus -{ - // 1xx: the requested action is being initiated, - // expect another reply before proceeding with a new command - sfFtpRestartMarkerReply = 110, ///< Restart marker reply - sfFtpServiceReadySoon = 120, ///< Service ready in N minutes - sfFtpDataConnectionAlreadyOpened = 125, ///< Data connection already opened, transfer starting - sfFtpOpeningDataConnection = 150, ///< File status ok, about to open data connection - - // 2xx: the requested action has been successfully completed - sfFtpOk = 200, ///< Command ok - sfFtpPointlessCommand = 202, ///< Command not implemented - sfFtpSystemStatus = 211, ///< System status, or system help reply - sfFtpDirectoryStatus = 212, ///< Directory status - sfFtpFileStatus = 213, ///< File status - sfFtpHelpMessage = 214, ///< Help message - sfFtpSystemType = 215, ///< NAME system type, where NAME is an official system name from the list in the Assigned Numbers document - sfFtpServiceReady = 220, ///< Service ready for new user - sfFtpClosingConnection = 221, ///< Service closing control connection - sfFtpDataConnectionOpened = 225, ///< Data connection open, no transfer in progress - sfFtpClosingDataConnection = 226, ///< Closing data connection, requested file action successful - sfFtpEnteringPassiveMode = 227, ///< Entering passive mode - sfFtpLoggedIn = 230, ///< User logged in, proceed. Logged out if appropriate - sfFtpFileActionOk = 250, ///< Requested file action ok - sfFtpDirectoryOk = 257, ///< PATHNAME created - - // 3xx: the command has been accepted, but the requested action - // is dormant, pending receipt of further information - sfFtpNeedPassword = 331, ///< User name ok, need password - sfFtpNeedAccountToLogIn = 332, ///< Need account for login - sfFtpNeedInformation = 350, ///< Requested file action pending further information - - // 4xx: the command was not accepted and the requested action did not take place, - // but the error condition is temporary and the action may be requested again - sfFtpServiceUnavailable = 421, ///< Service not available, closing control connection - sfFtpDataConnectionUnavailable = 425, ///< Can't open data connection - sfFtpTransferAborted = 426, ///< Connection closed, transfer aborted - sfFtpFileActionAborted = 450, ///< Requested file action not taken - sfFtpLocalError = 451, ///< Requested action aborted, local error in processing - sfFtpInsufficientStorageSpace = 452, ///< Requested action not taken; insufficient storage space in system, file unavailable - - // 5xx: the command was not accepted and - // the requested action did not take place - sfFtpCommandUnknown = 500, ///< Syntax error, command unrecognized - sfFtpParametersUnknown = 501, ///< Syntax error in parameters or arguments - sfFtpCommandNotImplemented = 502, ///< Command not implemented - sfFtpBadCommandSequence = 503, ///< Bad sequence of commands - sfFtpParameterNotImplemented = 504, ///< Command not implemented for that parameter - sfFtpNotLoggedIn = 530, ///< Not logged in - sfFtpNeedAccountToStore = 532, ///< Need account for storing files - sfFtpFileUnavailable = 550, ///< Requested action not taken, file unavailable - sfFtpPageTypeUnknown = 551, ///< Requested action aborted, page type unknown - sfFtpNotEnoughMemory = 552, ///< Requested file action aborted, exceeded storage allocation - sfFtpFilenameNotAllowed = 553, ///< Requested action not taken, file name not allowed - - // 10xx: SFML custom codes - sfFtpInvalidResponse = 1000, ///< Response is not a valid FTP one - sfFtpConnectionFailed = 1001, ///< Connection with server failed - sfFtpConnectionClosed = 1002, ///< Connection with server closed - sfFtpInvalidFile = 1003 ///< Invalid file to upload / download -}; - - -//////////////////////////////////////////////////////////// -/// Destroy an existing Ftp listing response -/// -/// \param ftpListingResponse : Ftp listing response to destroy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfFtpListingResponse_Destroy(sfFtpListingResponse* ftpListingResponse); - -//////////////////////////////////////////////////////////// -/// Convenience function to check if the response status code -/// means a success -/// -/// \param ftpListingResponse : Ftp listing response -/// -/// \return sfTrue if status is success (code < 400) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfFtpListingResponse_IsOk(const sfFtpListingResponse* ftpListingResponse); - -//////////////////////////////////////////////////////////// -/// Get the response status code -/// -/// \param ftpListingResponse : Ftp listing response -/// -/// \return Status code -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpStatus sfFtpListingResponse_GetStatus(const sfFtpListingResponse* ftpListingResponse); - -//////////////////////////////////////////////////////////// -/// Get the full message contained in the response -/// -/// \param ftpListingResponse : Ftp listing response -/// -/// \return The response message -/// -//////////////////////////////////////////////////////////// -CSFML_API const char* sfFtpListingResponse_GetMessage(const sfFtpListingResponse* ftpListingResponse); - -//////////////////////////////////////////////////////////// -/// Get the number of filenames in the listing -/// -/// \param ftpListingResponse : Ftp listing response -/// -/// \return Total number of filenames -/// -//////////////////////////////////////////////////////////// -CSFML_API size_t sfFtpListingResponse_GetCount(const sfFtpListingResponse* ftpListingResponse); - -//////////////////////////////////////////////////////////// -/// Get the Index-th filename in the directory -/// -/// \param ftpListingResponse : Ftp listing response -/// \param index : Index of the filename to get -/// -/// \return Index-th filename -/// -//////////////////////////////////////////////////////////// -CSFML_API const char* sfFtpListingResponse_GetFilename(const sfFtpListingResponse* ftpListingResponse, size_t index); - -//////////////////////////////////////////////////////////// -/// Destroy an existing Ftp directory response -/// -/// \param ftpDirectoryResponse : Ftp directory response to destroy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfFtpDirectoryResponse_Destroy(sfFtpDirectoryResponse* ftpDirectoryResponse); - -//////////////////////////////////////////////////////////// -/// Convenience function to check if the response status code -/// means a success -/// -/// \param ftpDirectoryResponse : Ftp directory response -/// -/// \return sfTrue if status is success (code < 400) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfFtpDirectoryResponse_IsOk(const sfFtpDirectoryResponse* ftpDirectoryResponse); - -//////////////////////////////////////////////////////////// -/// Get the response status code -/// -/// \param ftpDirectoryResponse : Ftp directory response -/// -/// \return Status code -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpStatus sfFtpDirectoryResponse_GetStatus(const sfFtpDirectoryResponse* ftpDirectoryResponse); - -//////////////////////////////////////////////////////////// -/// Get the full message contained in the response -/// -/// \param ftpDirectoryResponse : Ftp directory response -/// -/// \return The response message -/// -//////////////////////////////////////////////////////////// -CSFML_API const char* sfFtpDirectoryResponse_GetMessage(const sfFtpDirectoryResponse* ftpDirectoryResponse); - -//////////////////////////////////////////////////////////// -/// Get the directory returned in the response -/// -/// \param ftpDirectoryResponse : Ftp directory response -/// -/// \return Directory name -/// -//////////////////////////////////////////////////////////// -CSFML_API const char* sfFtpDirectoryResponse_GetDirectory(const sfFtpDirectoryResponse* ftpDirectoryResponse); - - -//////////////////////////////////////////////////////////// -/// Destroy an existing Ftp response -/// -/// \param ftpResponse : Ftp response to destroy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfFtpResponse_Destroy(sfFtpResponse* ftpResponse); - -//////////////////////////////////////////////////////////// -/// Convenience function to check if the response status code -/// means a success -/// -/// \param ftpResponse : Ftp response -/// -/// \return sfTrue if status is success (code < 400) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfFtpResponse_IsOk(const sfFtpResponse* ftpResponse); - -//////////////////////////////////////////////////////////// -/// Get the response status code -/// -/// \param ftpResponse : Ftp response -/// -/// \return Status code -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpStatus sfFtpResponse_GetStatus(const sfFtpResponse* ftpResponse); - -//////////////////////////////////////////////////////////// -/// Get the full message contained in the response -/// -/// \param ftpResponse : Ftp response -/// -/// \return The response message -/// -//////////////////////////////////////////////////////////// -CSFML_API const char* sfFtpResponse_GetMessage(const sfFtpResponse* ftpResponse); - -//////////////////////////////////////////////////////////// -/// Construct a new Ftp -/// -/// \return Pointer to the new Ftp -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtp* sfFtp_Create(void); - -//////////////////////////////////////////////////////////// -/// Destroy an existing Ftp -/// -/// \param ftp : Ftp to destroy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfFtp_Destroy(sfFtp* ftp); - -//////////////////////////////////////////////////////////// -/// Connect to the specified FTP server -/// -/// \param ftp : Ftp instance -/// \param server : FTP server to connect to -/// \param port : Port used for connection (21 by default, standard FTP port) -/// \param timeout : Maximum time to wait, in milliseconds (0 to use no timeout) -/// -/// \return Server response to the request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpResponse* sfFtp_Connect(sfFtp* ftp, sfIpAddress server, unsigned short port, sfUint32 timeout); - -//////////////////////////////////////////////////////////// -/// Log in using anonymous account -/// -/// \param ftp : Ftp instance -/// -/// \return Server response to the request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpResponse* sfFtp_LoginAnonymous(sfFtp* ftp); - -//////////////////////////////////////////////////////////// -/// Log in using a username and a password -/// -/// \param ftp : Ftp instance -/// \param userName : User name -/// \param password : Password -/// -/// \return Server response to the request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpResponse* sfFtp_Login(sfFtp* ftp, const char* userName, const char* password); - -//////////////////////////////////////////////////////////// -/// Close the connection with FTP server -/// -/// \param ftp : Ftp instance -/// -/// \return Server response to the request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpResponse* sfFtp_Disconnect(sfFtp* ftp); - -//////////////////////////////////////////////////////////// -/// Send a null command just to prevent from being disconnected -/// -/// \param ftp : Ftp instance -/// -/// \return Server response to the request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpResponse* sfFtp_KeepAlive(sfFtp* ftp); - -//////////////////////////////////////////////////////////// -/// Get the current working directory -/// -/// \param ftp : Ftp instance -/// -/// \return Server response to the request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpDirectoryResponse* sfFtp_GetWorkingDirectory(sfFtp* ftp); - -//////////////////////////////////////////////////////////// -/// Get the contents of the given directory -/// (subdirectories and files) -/// -/// \param ftp : Ftp instance -/// \param directory : Directory to list ("" by default, the current one) -/// -/// \return Server response to the request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpListingResponse* sfFtp_GetDirectoryListing(sfFtp* ftp, const char* directory); - -//////////////////////////////////////////////////////////// -/// Change the current working directory -/// -/// \param ftp : Ftp instance -/// \param directory : New directory, relative to the current one -/// -/// \return Server response to the request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpResponse* sfFtp_ChangeDirectory(sfFtp* ftp, const char* directory); - -//////////////////////////////////////////////////////////// -/// Go to the parent directory of the current one -/// -/// \param ftp : Ftp instance -/// -/// \return Server response to the request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpResponse* sfFtp_ParentDirectory(sfFtp* ftp); - -//////////////////////////////////////////////////////////// -/// Create a new directory -/// -/// \param ftp : Ftp instance -/// \param name : Name of the directory to create -/// -/// \return Server response to the request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpResponse* sfFtp_CreateDirectory(sfFtp* ftp, const char* name); - -//////////////////////////////////////////////////////////// -/// Remove an existing directory -/// -/// \param ftp : Ftp instance -/// \param name : Name of the directory to remove -/// -/// \return Server response to the request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpResponse* sfFtp_DeleteDirectory(sfFtp* ftp, const char* name); - -//////////////////////////////////////////////////////////// -/// Rename a file -/// -/// \param ftp : Ftp instance -/// \param file : File to rename -/// \param newName : New name -/// -/// \return Server response to the request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpResponse* sfFtp_RenameFile(sfFtp* ftp, const char* file, const char* newName); - -//////////////////////////////////////////////////////////// -/// Remove an existing file -/// -/// \param ftp : Ftp instance -/// \param name : File to remove -/// -/// \return Server response to the request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpResponse* sfFtp_DeleteFile(sfFtp* ftp, const char* name); - -//////////////////////////////////////////////////////////// -/// Download a file from the server -/// -/// \param ftp : Ftp instance -/// \param distantFile : Path of the distant file to download -/// \param destPath : Where to put to file on the local computer -/// \param mode : Transfer mode (binary by default) -/// -/// \return Server response to the request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpResponse* sfFtp_Download(sfFtp* ftp, const char* distantFile, const char* destPath, sfFtpTransferMode mode); - -//////////////////////////////////////////////////////////// -/// Upload a file to the server -/// -/// \param ftp : Ftp instance -/// \param localFile : Path of the local file to upload -/// \param destPath : Where to put to file on the server -/// \param mode : Transfer mode (binary by default) -/// -/// \return Server response to the request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfFtpResponse* sfFtp_Upload(sfFtp* ftp, const char* localFile, const char* destPath, sfFtpTransferMode mode); - - -#endif // SFML_FTP_H diff --git a/bindings/c/include/SFML/Network/Http.h b/bindings/c/include/SFML/Network/Http.h deleted file mode 100644 index 773819aa..00000000 --- a/bindings/c/include/SFML/Network/Http.h +++ /dev/null @@ -1,257 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_HTTP_H -#define SFML_HTTP_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -/// Enumerate the available HTTP methods for a request -//////////////////////////////////////////////////////////// -enum sfHttpMethod -{ - sfHttpGet, ///< Request in get mode, standard method to retrieve a page - sfHttpPost, ///< Request in post mode, usually to send data to a page - sfHttpHead ///< Request a page's header only -}; - - -//////////////////////////////////////////////////////////// -/// Enumerate all the valid status codes returned in -/// a HTTP response -//////////////////////////////////////////////////////////// -enum sfHttpStatus -{ - // 2xx: success - sfHttpOk = 200, ///< Most common code returned when operation was successful - sfHttpCreated = 201, ///< The resource has successfully been created - sfHttpAccepted = 202, ///< The request has been accepted, but will be processed later by the server - sfHttpNoContent = 204, ///< Sent when the server didn't send any data in return - - // 3xx: redirection - sfHttpMultipleChoices = 300, ///< The requested page can be accessed from several locations - sfHttpMovedPermanently = 301, ///< The requested page has permanently moved to a new location - sfHttpMovedTemporarily = 302, ///< The requested page has temporarily moved to a new location - sfHttpNotModified = 304, ///< For conditionnal requests, means the requested page hasn't changed and doesn't need to be refreshed - - // 4xx: client error - sfHttpBadRequest = 400, ///< The server couldn't understand the request (syntax error) - sfHttpUnauthorized = 401, ///< The requested page needs an authentification to be accessed - sfHttpForbidden = 403, ///< The requested page cannot be accessed at all, even with authentification - sfHttpNotFound = 404, ///< The requested page doesn't exist - - // 5xx: server error - sfHttpInternalServerError = 500, ///< The server encountered an unexpected error - sfHttpNotImplemented = 501, ///< The server doesn't implement a requested feature - sfHttpBadGateway = 502, ///< The gateway server has received an error from the source server - sfHttpServiceNotAvailable = 503, ///< The server is temporarily unavailable (overloaded, in maintenance, ...) - - // 10xx: SFML custom codes - sfHttpInvalidResponse = 1000, ///< Response is not a valid HTTP one - sfHttpConnectionFailed = 1001 ///< Connection with server failed -}; - - -//////////////////////////////////////////////////////////// -/// Construct a new Http request -/// -/// \return Pointer to the new Http request -/// -//////////////////////////////////////////////////////////// -CSFML_API sfHttpRequest* sfHttpRequest_Create(void); - -//////////////////////////////////////////////////////////// -/// Destroy an existing Http request -/// -/// \param httpRequest : Http request to destroy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfHttpRequest_Destroy(sfHttpRequest* httpRequest); - -//////////////////////////////////////////////////////////// -/// Set the value of a field; the field is added if it doesn't exist -/// -/// \param httpRequest : Http request to modify -/// \param field : Name of the field to set (case-insensitive) -/// \param value : Value of the field -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfHttpRequest_SetField(sfHttpRequest* httpRequest, const char* field, const char* value); - -//////////////////////////////////////////////////////////// -/// Set the request method. -/// This parameter is sfHttpGet by default -/// -/// \param httpRequest : Http request to modify -/// \param method : Method to use for the request -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfHttpRequest_SetMethod(sfHttpRequest* httpRequest, sfHttpMethod method); - -//////////////////////////////////////////////////////////// -/// Set the target URI of the request. -/// This parameter is "/" by default -/// -/// \param httpRequest : Http request to modify -/// \param URI : URI to request, local to the host -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfHttpRequest_SetUri(sfHttpRequest* httpRequest, const char* uri); - -//////////////////////////////////////////////////////////// -/// Set the HTTP version of the request. -/// This parameter is 1.0 by default -/// -/// \param httpRequest : Http request to modify -/// \param major : Major version number -/// \param minor : Minor version number -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfHttpRequest_SetHttpVersion(sfHttpRequest* httpRequest, unsigned int major, unsigned int minor); - -//////////////////////////////////////////////////////////// -/// Set the body of the request. This parameter is optional and -/// makes sense only for POST requests. -/// This parameter is empty by default -/// -/// \param httpRequest : Http request to modify -/// \param body : Content of the request body -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfHttpRequest_SetBody(sfHttpRequest* httpRequest, const char* body); - -//////////////////////////////////////////////////////////// -/// Destroy an existing Http response -/// -/// \param httpResponse : Http response to destroy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfHttpResponse_Destroy(sfHttpResponse* httpResponse); - -//////////////////////////////////////////////////////////// -/// Get the value of a field; returns NULL if the field doesn't exist -/// -/// \param httpResponse : Http response -/// \param field : Field to get -/// -/// \return Value of the field (NULL if it doesn't exist) -/// -//////////////////////////////////////////////////////////// -CSFML_API const char* sfHttpResponse_GetField(const sfHttpResponse* httpResponse, const char* field); - -//////////////////////////////////////////////////////////// -/// Get the status of a response -/// -/// \param httpResponse : Http response -/// -/// \return Status of the response -/// -//////////////////////////////////////////////////////////// -CSFML_API sfHttpStatus sfHttpResponse_GetStatus(const sfHttpResponse* httpResponse); - -//////////////////////////////////////////////////////////// -/// Get the major HTTP version of a response -/// -/// \param httpResponse : Http response -/// -/// \return HTTP major version of the response -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfHttpResponse_GetMajorVersion(const sfHttpResponse* httpResponse); - -//////////////////////////////////////////////////////////// -/// Get the minor HTTP version of a response -/// -/// \param httpResponse : Http response -/// -/// \return HTTP minor version of the response -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfHttpResponse_GetMinorVersion(const sfHttpResponse* httpResponse); - -//////////////////////////////////////////////////////////// -/// Get the body of the response. The body can contain : -/// - the requested page (for GET requests) -/// - a response from the server (for POST requests) -/// - nothing (for HEAD requests) -/// - an error message (in case of an error) -/// -/// \param httpResponse : Http response -/// -/// \return Body of the response (empty string if no body) -/// -//////////////////////////////////////////////////////////// -CSFML_API const char* sfHttpResponse_GetBody(const sfHttpResponse* httpResponse); - -//////////////////////////////////////////////////////////// -/// Construct a new Http object -/// -/// \return Pointer to the new Http -/// -//////////////////////////////////////////////////////////// -CSFML_API sfHttp* sfHttp_Create(void); - -//////////////////////////////////////////////////////////// -/// Destroy an existing Http object -/// -/// \param Http : Http to destroy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfHttp_Destroy(sfHttp* http); - -//////////////////////////////////////////////////////////// -/// Set the target host of a Http server -/// -/// \param http : Http object -/// \param host : Web server to connect to -/// \param port : Port to use for connection (0 to use the standard port of the protocol used) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfHttp_SetHost(sfHttp* http, const char* host, unsigned short port); - -//////////////////////////////////////////////////////////// -/// Send a HTTP request and return the server's response. -/// You must be connected to a host before sending requests. -/// Any missing mandatory header field will be added with an appropriate value. -/// Warning : this function waits for the server's response and may -/// not return instantly; use a thread if you don't want to block your -/// application. -/// -/// \param http : Http object -/// \param request : Request to send -/// \param timeout : Maximum time to wait, in milliseconds (0 to use no timeout) -/// -/// \return Server's response, or NULL if request is invalid -/// -//////////////////////////////////////////////////////////// -CSFML_API sfHttpResponse* sfHttp_SendRequest(sfHttp* http, const sfHttpRequest* request, sfUint32 timeout); - - -#endif // SFML_HTTP_H diff --git a/bindings/c/include/SFML/Network/IpAddress.h b/bindings/c/include/SFML/Network/IpAddress.h deleted file mode 100644 index 71956447..00000000 --- a/bindings/c/include/SFML/Network/IpAddress.h +++ /dev/null @@ -1,131 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_IPADDRESS_H -#define SFML_IPADDRESS_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -/// sfIpAddress provides easy manipulation of IP v4 addresses -//////////////////////////////////////////////////////////// -typedef struct -{ - char Address[16]; -} sfIpAddress; - - -//////////////////////////////////////////////////////////// -/// Construct an address from a string -/// -/// \param string : IP address ("xxx.xxx.xxx.xxx") or network name -/// -/// \return Resulting address -/// -//////////////////////////////////////////////////////////// -CSFML_API sfIpAddress sfIpAddress_FromString(const char* string); - -//////////////////////////////////////////////////////////// -/// Construct an address from 4 bytes -/// -/// \param byte0 : First byte of the address -/// \param byte1 : Second byte of the address -/// \param byte2 : Third byte of the address -/// \param byte3 : Fourth byte of the address -/// -/// \return Resulting address -/// -//////////////////////////////////////////////////////////// -CSFML_API sfIpAddress sfIpAddress_FromBytes(sfUint8 byte0, sfUint8 byte1, sfUint8 byte2, sfUint8 byte3); - -//////////////////////////////////////////////////////////// -/// Construct the address from a 32-bits integer -/// -/// \param address : 4 bytes of the address packed into a 32-bits integer -/// -//////////////////////////////////////////////////////////// -CSFML_API sfIpAddress sfIpAddress_FromInteger(sfUint32 address); - -//////////////////////////////////////////////////////////// -/// Get a string representation of an address -/// -/// \param address : Address to convert -/// \param string : Char array to fill (size must be >= 16) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfIpAddress_ToString(sfIpAddress address, char* string); - -//////////////////////////////////////////////////////////// -/// Get an integer representation of the address -/// -/// \param address : Address to convert -/// -/// \return 32-bits integer containing the 4 bytes of the address, in system endianness -/// -//////////////////////////////////////////////////////////// -CSFML_API sfUint32 sfIpAddress_ToInteger(sfIpAddress address); - -//////////////////////////////////////////////////////////// -/// Get the computer's local IP address (from the LAN point of view) -/// -/// \return Local IP address -/// -//////////////////////////////////////////////////////////// -CSFML_API sfIpAddress sfIpAddress_GetLocalAddress(void); - -//////////////////////////////////////////////////////////// -/// Get the computer's public IP address (from the web point of view). -/// The only way to get a public address is to ask it to a -/// distant website ; as a consequence, this function may be -/// very slow -- use it as few as possible ! -/// -/// \param timeout : Maximum time to wait, in milliseconds (use 0 for no timeout) -/// -/// \return Public IP address -/// -//////////////////////////////////////////////////////////// -CSFML_API sfIpAddress sfIpAddress_GetPublicAddress(sfUint32 timeout); - -//////////////////////////////////////////////////////////// -/// Get the computer's loopback address -/// -/// \return Local host IP address (127.0.0.1, or "localhost") -/// -//////////////////////////////////////////////////////////// -CSFML_API sfIpAddress sfIpAddress_LocalHost(void); - -//////////////////////////////////////////////////////////// -/// Get the empty/invalid address -/// -/// \return Empty object that represents invalid addresses -/// -//////////////////////////////////////////////////////////// -CSFML_API sfIpAddress sfIpAddress_None(void); - - -#endif // SFML_IPADDRESS_H diff --git a/bindings/c/include/SFML/Network/Packet.h b/bindings/c/include/SFML/Network/Packet.h deleted file mode 100644 index 139b0b91..00000000 --- a/bindings/c/include/SFML/Network/Packet.h +++ /dev/null @@ -1,158 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_PACKET_H -#define SFML_PACKET_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new empty packet -/// -/// \return A new sfPacket object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfPacket* sfPacket_Create(void); - -//////////////////////////////////////////////////////////// -/// Copy an existing packet -/// -/// \param packet : Packet to copy -/// -/// \return Copied object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfPacket* sfPacket_Copy(sfPacket* packet); - -//////////////////////////////////////////////////////////// -/// Destroy an existing packet -/// -/// \param packet : Packet to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfPacket_Destroy(sfPacket* packet); - -//////////////////////////////////////////////////////////// -/// Append data to the end of a packet -/// -/// \param packet : Packet to fill -/// \param data : Pointer to the bytes to append -/// \param sizeInBytes : Number of bytes to append -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfPacket_Append(sfPacket* packet, const void* data, size_t sizeInBytes); - -//////////////////////////////////////////////////////////// -/// Clear all the data of a packet -/// -/// \param packet : Packet to clear -/// -/////////////////////////////////////////////////////////// -CSFML_API void sfPacket_Clear(sfPacket* packet); - -//////////////////////////////////////////////////////////// -/// Get a pointer to the data contained in a packet -/// Warning : the returned pointer may be invalid after you -/// append data to the packet -/// -/// \param packet : Packet to get data from -/// -/// \return Pointer to the data -/// -//////////////////////////////////////////////////////////// -CSFML_API const char* sfPacket_GetData(const sfPacket* packet); - -//////////////////////////////////////////////////////////// -/// Get the size of the data contained in a packet -/// -/// \param packet : Packet to get data size from -/// -/// \return Data size, in bytes -/// -//////////////////////////////////////////////////////////// -CSFML_API size_t sfPacket_GetDataSize(const sfPacket* packet); - -//////////////////////////////////////////////////////////// -/// Tell if the reading position has reached the end of the packet -/// -/// \param packet : Packet to check -/// -/// \return sfTrue if all data have been read into the packet -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfPacket_EndOfPacket(const sfPacket* packet); - -//////////////////////////////////////////////////////////// -/// Return the validity of packet -/// -/// \param packet : Packet to check -/// -/// \return sfTrue if last data extraction from packet was successful -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfPacket_CanRead(const sfPacket* packet); - -//////////////////////////////////////////////////////////// -/// Functions to extract data from a packet -/// -/// \param packet : Packet to read -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfPacket_ReadBool(sfPacket* packet); -CSFML_API sfInt8 sfPacket_ReadInt8(sfPacket* packet); -CSFML_API sfUint8 sfPacket_ReadUint8(sfPacket* packet); -CSFML_API sfInt16 sfPacket_ReadInt16(sfPacket* packet); -CSFML_API sfUint16 sfPacket_ReadUint16(sfPacket* packet); -CSFML_API sfInt32 sfPacket_ReadInt32(sfPacket* packet); -CSFML_API sfUint32 sfPacket_ReadUint32(sfPacket* packet); -CSFML_API float sfPacket_ReadFloat(sfPacket* packet); -CSFML_API double sfPacket_ReadDouble(sfPacket* packet); -CSFML_API void sfPacket_ReadString(sfPacket* packet, char* string); -CSFML_API void sfPacket_ReadWideString(sfPacket* packet, wchar_t* string); - -//////////////////////////////////////////////////////////// -/// Functions to insert data into a packet -/// -/// \param packet : Packet to write -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfPacket_WriteBool(sfPacket* packet, sfBool); -CSFML_API void sfPacket_WriteInt8(sfPacket* packet, sfInt8); -CSFML_API void sfPacket_WriteUint8(sfPacket* packet, sfUint8); -CSFML_API void sfPacket_WriteInt16(sfPacket* packet, sfInt16); -CSFML_API void sfPacket_WriteUint16(sfPacket* packet, sfUint16); -CSFML_API void sfPacket_WriteInt32(sfPacket* packet, sfInt32); -CSFML_API void sfPacket_WriteUint32(sfPacket* packet, sfUint32); -CSFML_API void sfPacket_WriteFloat(sfPacket* packet, float); -CSFML_API void sfPacket_WriteDouble(sfPacket* packet, double); -CSFML_API void sfPacket_WriteString(sfPacket* packet, const char* string); -CSFML_API void sfPacket_WriteWideString(sfPacket* packet, const wchar_t* string); - - -#endif // SFML_PACKET_H diff --git a/bindings/c/include/SFML/Network/SocketSelector.h b/bindings/c/include/SFML/Network/SocketSelector.h deleted file mode 100644 index 53ddbffc..00000000 --- a/bindings/c/include/SFML/Network/SocketSelector.h +++ /dev/null @@ -1,118 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SOCKETSELECTOR_H -#define SFML_SOCKETSELECTOR_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new selector -/// -/// \return A new sfSelector object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSocketSelector* sfSocketSelector_Create(void); - -//////////////////////////////////////////////////////////// -/// Copy an existing selector -/// -/// \param selector : Selector to copy -/// -/// \return Copied object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSocketSelector* sfSocketSelector_Copy(sfSocketSelector* selector); - -//////////////////////////////////////////////////////////// -/// Destroy an existing selector -/// -/// \param selector : Selector to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSocketSelector_Destroy(sfSocketSelector* selector); - -//////////////////////////////////////////////////////////// -/// Add a socket to watch to a selector -/// -/// \param selector : Selector to add the socket to -/// \param socket : Socket to add -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSocketSelector_AddTcpListener(sfSocketSelector* selector, sfTcpListener* socket); -CSFML_API void sfSocketSelector_AddTcpSocket(sfSocketSelector* selector, sfTcpSocket* socket); -CSFML_API void sfSocketSelector_AddUdpSocket(sfSocketSelector* selector, sfUdpSocket* socket); - -//////////////////////////////////////////////////////////// -/// Remove a socket from a selector -/// -/// \param selector : Selector to remove the socket from -/// \param socket : Socket to remove -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSocketSelector_RemoveTcpListener(sfSocketSelector* selector, sfTcpListener* socket); -CSFML_API void sfSocketSelector_RemoveTcpSocket(sfSocketSelector* selector, sfTcpSocket* socket); -CSFML_API void sfSocketSelector_RemoveUdpSocket(sfSocketSelector* selector, sfUdpSocket* socket); - -//////////////////////////////////////////////////////////// -/// Remove all sockets from a selector -/// -/// \param selector : Selector to remove the socket from -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSocketSelector_Clear(sfSocketSelector* selector); - -//////////////////////////////////////////////////////////// -/// Wait and collect sockets which are ready for reading. -/// This functions will return either when at least one socket -/// is ready, or when the given timeout is over -/// -/// \param selector : Selector to check -/// \param timeout : Maximum time to wait, in milliseconds (0 to disable timeout) -/// -/// \return sfTrue if there are sockets ready, sfFalse otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfSocketSelector_Wait(sfSocketSelector* selector, sfUint32 timeout); - -//////////////////////////////////////////////////////////// -/// Test a socket to know if it is ready to receive data -/// -/// \param selector : Selector to check -/// \param socket : Socket to test -/// -/// \return sfTrue if the socket is ready to receive data -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfSocketSelector_IsTcpListenerReady(const sfSocketSelector* selector, sfTcpListener* socket); -CSFML_API sfBool sfSocketSelector_IsTcpSocketReady(const sfSocketSelector* selector, sfTcpSocket* socket); -CSFML_API sfBool sfSocketSelector_IsUdpSocketReady(const sfSocketSelector* selector, sfUdpSocket* socket); - - -#endif // SFML_SOCKETSELECTOR_H diff --git a/bindings/c/include/SFML/Network/SocketStatus.h b/bindings/c/include/SFML/Network/SocketStatus.h deleted file mode 100644 index 1ff1f732..00000000 --- a/bindings/c/include/SFML/Network/SocketStatus.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SOCKETSTATUS_H -#define SFML_SOCKETSTATUS_H - - -//////////////////////////////////////////////////////////// -/// Define the status that can be returned by the socket -/// functions -//////////////////////////////////////////////////////////// -typedef enum -{ - sfSocketDone, - sfSocketNotReady, - sfSocketDisconnected, - sfSocketError - -} sfSocketStatus; - - -#endif // SFML_SOCKETSTATUS_H diff --git a/bindings/c/include/SFML/Network/TcpListener.h b/bindings/c/include/SFML/Network/TcpListener.h deleted file mode 100644 index 3e9cb060..00000000 --- a/bindings/c/include/SFML/Network/TcpListener.h +++ /dev/null @@ -1,97 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_TCPLISTENER_H -#define SFML_TCPLISTENER_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new TCP socket -/// -/// \return Pointer to the new socket -/// -//////////////////////////////////////////////////////////// -CSFML_API sfTcpListener* sfTcpListener_Create(void); - -//////////////////////////////////////////////////////////// -/// Destroy an existing TCP socket -/// -/// \param socket : Socket to destroy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfTcpListener_Destroy(sfTcpListener* socket); - -//////////////////////////////////////////////////////////// -/// Change the blocking state of a TCP socket. -/// The default behaviour of a socket is blocking -/// -/// \param socket : Socket to modify -/// \param blocking : Pass sfTrue to set the socket as blocking, or sfFalse for non-blocking -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfTcpListener_SetBlocking(sfTcpListener* socket, sfBool blocking); - -//////////////////////////////////////////////////////////// -/// Get the blocking state of the socket -/// -/// \param socket : Socket to read -/// -/// \Return sfTrue if the socket is blocking, sfFalse otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfTcpListener_IsBlocking(const sfTcpListener* socket); - -//////////////////////////////////////////////////////////// -/// Listen to a specified port for incoming data or connections -/// -/// \param socket : Socket to use for listening -/// \param port : Port to listen to -/// -/// \return Socket status -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSocketStatus sfTcpListener_Listen(sfTcpListener* socket, unsigned short port); - -//////////////////////////////////////////////////////////// -/// Wait for a connection (must be listening to a port). -/// This function is blocking, ie. it won't return before -/// a connection has been accepted -/// -/// \param socket : Socket to use for accepting -/// \param connected : Pointer to a socket pointer that will be filled with the connected client -/// -/// \return Socket status -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSocketStatus sfTcpListener_Accept(sfTcpListener* socket, sfTcpSocket** connected); - - -#endif // SFML_TCPLISTENER_H diff --git a/bindings/c/include/SFML/Network/TcpSocket.h b/bindings/c/include/SFML/Network/TcpSocket.h deleted file mode 100644 index 71ea12f7..00000000 --- a/bindings/c/include/SFML/Network/TcpSocket.h +++ /dev/null @@ -1,172 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_TCPSOCKET_H -#define SFML_TCPSOCKET_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new TCP socket -/// -/// \return Pointer to the new socket -/// -//////////////////////////////////////////////////////////// -CSFML_API sfTcpSocket* sfTcpSocket_Create(void); - -//////////////////////////////////////////////////////////// -/// Destroy an existing TCP socket -/// -/// \param socket : Socket to destroy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfTcpSocket_Destroy(sfTcpSocket* socket); - -//////////////////////////////////////////////////////////// -/// Change the blocking state of a TCP socket. -/// The default behaviour of a socket is blocking -/// -/// \param socket : Socket to modify -/// \param blocking : Pass sfTrue to set the socket as blocking, or false for non-blocking -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfTcpSocket_SetBlocking(sfTcpSocket* socket, sfBool blocking); - -//////////////////////////////////////////////////////////// -/// Get the blocking state of the socket -/// -/// \param socket : Socket to read -/// -/// \Return sfTrue if the socket is blocking, sfFalse otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfTcpSocket_IsBlocking(const sfTcpSocket* socket); - -//////////////////////////////////////////////////////////// -/// Get the port to which a socket is bound locally -/// -/// \param socket : Socket to read -/// -/// \return Port to which the socket is bound -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned short sfTcpSocket_GetLocalPort(const sfTcpSocket* socket); - -//////////////////////////////////////////////////////////// -/// Get the address of the connected peer of a socket -/// -/// \param socket : Socket to read -/// -/// \return Address of the remote peer -/// -//////////////////////////////////////////////////////////// -CSFML_API sfIpAddress sfTcpSocket_GetRemoteAddress(const sfTcpSocket* socket); - -//////////////////////////////////////////////////////////// -/// Get the port of the connected peer to which a socket is connected -/// -/// \param socket : Socket to read -/// -/// \return Remote port to which the socket is connected -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned short sfTcpSocket_GetRemotePort(const sfTcpSocket* socket); - -//////////////////////////////////////////////////////////// -/// Connect a TCP socket to another computer on a specified port -/// -/// \param socket : Socket to connect -/// \param host : IP Address of the host to connect to -/// \param port : Port to use for transfers (warning : ports < 1024 are reserved) -/// \param timeout : Maximum time to wait, in milliseconds (0 to use no timeout) -/// -/// \return sfTrue if operation has been successful -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSocketStatus sfTcpSocket_Connect(sfTcpSocket* socket, sfIpAddress host, unsigned short port, sfUint32 timeout); - -//////////////////////////////////////////////////////////// -/// Disconnect a connect from its remote peer -/// -/// \param socket : Socket to disconnect -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfTcpSocket_Disconnect(sfTcpSocket* socket); - -//////////////////////////////////////////////////////////// -/// Send an array of bytes to the host (must be connected first) -/// -/// \param socket : Socket to use for sending -/// \param data : Pointer to the bytes to send -/// \param size : Number of bytes to send -/// -/// \return Socket status -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSocketStatus sfTcpSocket_Send(sfTcpSocket* socket, const char* data, size_t size); - -//////////////////////////////////////////////////////////// -/// Receive an array of bytes from the host (must be connected first) -/// -/// \param socket : Socket to use for receiving -/// \param data : Pointer to a byte array to fill (make sure it is big enough) -/// \param maxSize : Maximum number of bytes to read -/// \param sizeReceived : Number of bytes received -/// -/// \return Socket status -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSocketStatus sfTcpSocket_Receive(sfTcpSocket* socket, char* data, size_t maxSize, size_t* sizeReceived); - -//////////////////////////////////////////////////////////// -/// Send a packet of data to the host (must be connected first) -/// -/// \param socket : Socket to use for sending -/// \param packet : Packet to send -/// -/// \return Socket status -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSocketStatus sfTcpSocket_SendPacket(sfTcpSocket* socket, sfPacket* packet); - -//////////////////////////////////////////////////////////// -/// Receive a packet from the host (must be connected first) -/// -/// \param socket : Socket to use for receiving -/// \param packet : Packet to fill with received data -/// -/// \return Socket status -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSocketStatus sfTcpSocket_ReceivePacket(sfTcpSocket* socket, sfPacket* packet); - - -#endif // SFML_TCPSOCKET_H diff --git a/bindings/c/include/SFML/Network/Types.h b/bindings/c/include/SFML/Network/Types.h deleted file mode 100644 index 75709310..00000000 --- a/bindings/c/include/SFML/Network/Types.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_NETWORK_TYPES_H -#define SFML_NETWORK_TYPES_H - - -typedef struct sfFtpDirectoryResponse sfFtpDirectoryResponse; -typedef struct sfFtpListingResponse sfFtpListingResponse; -typedef struct sfFtpResponse sfFtpResponse; -typedef struct sfFtp sfFtp; -typedef struct sfHttpRequest sfHttpRequest; -typedef struct sfHttpResponse sfHttpResponse; -typedef struct sfHttp sfHttp; -typedef struct sfPacket sfPacket; -typedef struct sfSocketSelector sfSocketSelector; -typedef struct sfTcpListener sfTcpListener; -typedef struct sfTcpSocket sfTcpSocket; -typedef struct sfUdpSocket sfUdpSocket; - - -#endif // SFML_NETWORK_TYPES_H diff --git a/bindings/c/include/SFML/Network/UdpSocket.h b/bindings/c/include/SFML/Network/UdpSocket.h deleted file mode 100644 index aee41982..00000000 --- a/bindings/c/include/SFML/Network/UdpSocket.h +++ /dev/null @@ -1,162 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_UDPSOCKET_H -#define SFML_UDPSOCKET_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new UDP socket -/// -/// \return Pointer to the new socket -/// -//////////////////////////////////////////////////////////// -CSFML_API sfUdpSocket* sfUdpSocket_Create(void); - -//////////////////////////////////////////////////////////// -/// Destroy an existing UDP socket -/// -/// \param socket : Socket to destroy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfUdpSocket_Destroy(sfUdpSocket* socket); - -//////////////////////////////////////////////////////////// -/// Change the blocking state of a UDP socket. -/// The default behaviour of a socket is blocking -/// -/// \param socket : Socket to modify -/// \param blocking : Pass sfTrue to set the socket as blocking, or false for non-blocking -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfUdpSocket_SetBlocking(sfUdpSocket* socket, sfBool blocking); - -//////////////////////////////////////////////////////////// -/// Get the blocking state of the socket -/// -/// \param socket : Socket to read -/// -/// \Return sfTrue if the socket is blocking, sfFalse otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfUdpSocket_IsBlocking(const sfUdpSocket* socket); - -//////////////////////////////////////////////////////////// -/// Get the port to which a socket is bound locally -/// -/// \param socket : Socket to read -/// -/// \return Port to which the socket is bound -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned short sfUdpSocket_GetLocalPort(const sfUdpSocket* socket); - -//////////////////////////////////////////////////////////// -/// Bind a socket to a specific port -/// -/// \param socket : Socket to bind -/// \param port : Port to bind the socket to -/// -/// \return Socket status -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSocketStatus sfUdpSocket_Bind(sfUdpSocket* socket, unsigned short port); - -//////////////////////////////////////////////////////////// -/// Unbind a socket from its previous port, if any -/// -/// \param socket : Socket to unbind -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfUdpSocket_Unbind(sfUdpSocket* socket); - -//////////////////////////////////////////////////////////// -/// Send an array of bytes -/// -/// \param socket : Socket to use for sending -/// \param data : Pointer to the bytes to send -/// \param size : Number of bytes to send -/// \param address : Address of the computer to send the packet to -/// \param port : Port to use for communication -/// -/// \return Socket status -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSocketStatus sfUdpSocket_Send(sfUdpSocket* socket, const char* data, size_t size, sfIpAddress address, unsigned short port); - -//////////////////////////////////////////////////////////// -/// Receive an array of bytes. -/// This function is blocking, ie. it won't return before some -/// bytes have been received -/// -/// \param socket : Socket to use for receiving -/// \param data : Pointer to a byte array to fill (make sure it is big enough) -/// \param maxSize : Maximum number of bytes to read -/// \param sizeReceived : Number of bytes received -/// \param address : Address of the computer which sent the data -/// \param port : Port on which the remote computer sent the data -/// -/// \return Socket status -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSocketStatus sfUdpSocket_Receive(sfUdpSocket* socket, char* data, size_t maxSize, size_t* sizeReceived, sfIpAddress* address, unsigned short* port); - -//////////////////////////////////////////////////////////// -/// Send a packet of data -/// -/// \param socket : Socket to use for sending -/// \param packet : Packet to send -/// \param address : Address of the computer to send the packet to -/// \param port : Port to use for communication -/// -/// \return Socket status -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSocketStatus sfUdpSocket_SendPacket(sfUdpSocket* socket, sfPacket* packet, sfIpAddress address, unsigned short port); - -//////////////////////////////////////////////////////////// -/// Receive a packet. -/// This function is blocking, ie. it won't return before a -/// packet is received -/// -/// \param socket : Socket to use for receiving -/// \param packet : Packet to fill with received data -/// \param address : Address of the computer which sent the packet -/// \param port : Port on which the remote computer sent the data -/// -/// \return Socket status -/// -//////////////////////////////////////////////////////////// -CSFML_API sfSocketStatus sfUdpSocket_ReceivePacket(sfUdpSocket* socket, sfPacket* packet, sfIpAddress* address, unsigned short* port); - - -#endif // SFML_UDPSOCKET_H diff --git a/bindings/c/include/SFML/OpenGL.h b/bindings/c/include/SFML/OpenGL.h deleted file mode 100644 index 99f6fd73..00000000 --- a/bindings/c/include/SFML/OpenGL.h +++ /dev/null @@ -1,58 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_OPENGL_H -#define SFML_OPENGL_H - - -//////////////////////////////////////////////////////////// -/// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -/// This file just includes the OpenGL (GL and GLU) headers, -/// which have actually different paths on each system -//////////////////////////////////////////////////////////// -#if defined(CSFML_SYSTEM_WINDOWS) - - #include - #include - #include - -#elif defined(CSFML_SYSTEM_LINUX) || defined(CSFML_SYSTEM_FREEBSD) - - #include - #include - -#elif defined(CSFML_SYSTEM_MACOS) - - #include - #include - -#endif - - -#endif // SFML_OPENGL_H diff --git a/bindings/c/include/SFML/System.h b/bindings/c/include/SFML/System.h deleted file mode 100644 index 4e8e3aa5..00000000 --- a/bindings/c/include/SFML/System.h +++ /dev/null @@ -1,39 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SYSTEM_H -#define SFML_SYSTEM_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// - -#include -#include -#include -#include -#include - - -#endif // SFML_SYSTEM_H diff --git a/bindings/c/include/SFML/System/Clock.h b/bindings/c/include/SFML/System/Clock.h deleted file mode 100644 index 2f30da29..00000000 --- a/bindings/c/include/SFML/System/Clock.h +++ /dev/null @@ -1,80 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_CLOCK_H -#define SFML_CLOCK_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new clock and start it -/// -/// \return A new sfClock object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfClock* sfClock_Create(void); - -//////////////////////////////////////////////////////////// -/// Copy an existing clock -/// -/// \param clock : Clock to copy -/// -/// \return Copied object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfClock* sfClock_Copy(sfClock* clock); - -//////////////////////////////////////////////////////////// -/// Destroy an existing clock -/// -/// \param clock : Clock to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfClock_Destroy(sfClock* clock); - -//////////////////////////////////////////////////////////// -/// Get the time elapsed for a clock -/// -/// \param clock : Clock to get time from -/// -/// \return Elapsed time, in milliseconds -/// -//////////////////////////////////////////////////////////// -CSFML_API sfUint32 sfClock_GetTime(const sfClock* clock); - -//////////////////////////////////////////////////////////// -/// Restart a clock -/// -/// \param clock : Clock to restart -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfClock_Reset(sfClock* clock); - - -#endif // SFML_CLOCK_H diff --git a/bindings/c/include/SFML/System/Mutex.h b/bindings/c/include/SFML/System/Mutex.h deleted file mode 100644 index 813bfdc5..00000000 --- a/bindings/c/include/SFML/System/Mutex.h +++ /dev/null @@ -1,68 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_MUTEX_H -#define SFML_MUTEX_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new mutex -/// -/// \return A new sfMutex object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfMutex* sfMutex_Create(void); - -//////////////////////////////////////////////////////////// -/// Destroy an existing mutex -/// -/// \param mutex : Mutex to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMutex_Destroy(sfMutex* mutex); - -//////////////////////////////////////////////////////////// -/// Lock a mutex -/// -/// \param mutex : Mutex to lock -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMutex_Lock(sfMutex* mutex); - -//////////////////////////////////////////////////////////// -/// Unlock a mutex -/// -/// \param mutex : Mutex to unlock -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMutex_Unlock(sfMutex* mutex); - - -#endif // SFML_MUTEX_H diff --git a/bindings/c/include/SFML/System/Sleep.h b/bindings/c/include/SFML/System/Sleep.h deleted file mode 100644 index 783365a0..00000000 --- a/bindings/c/include/SFML/System/Sleep.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SLEEP_H -#define SFML_SLEEP_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -/// Make the current thread sleep for a given duration -/// -/// \param duration : Time to sleep, in milliseconds -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfSleep(sfUint32 duration); - - -#endif // SFML_SLEEP_H diff --git a/bindings/c/include/SFML/System/Thread.h b/bindings/c/include/SFML/System/Thread.h deleted file mode 100644 index 05e485dc..00000000 --- a/bindings/c/include/SFML/System/Thread.h +++ /dev/null @@ -1,80 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_THREAD_H -#define SFML_THREAD_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new thread from a function pointer -/// -/// \param function : Entry point of the thread -/// \param userData : Data to pass to the thread function -/// -//////////////////////////////////////////////////////////// -CSFML_API sfThread* sfThread_Create(void (*function)(void*), void* userData); - -//////////////////////////////////////////////////////////// -/// Destroy an existing thread -/// -/// \param thread : Thread to delete -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfThread_Destroy(sfThread* thread); - -//////////////////////////////////////////////////////////// -/// Run a thread -/// -/// \param thread : Thread to launch -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfThread_Launch(sfThread* thread); - -//////////////////////////////////////////////////////////// -/// Wait until a thread finishes -/// -/// \param thread : Thread to wait for -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfThread_Wait(sfThread* thread); - -//////////////////////////////////////////////////////////// -/// Terminate a thread -/// Terminating a thread with this function is not safe, -/// you should rather try to make the thread function -/// terminate by itself -/// -/// \param thread : Thread to terminate -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfThread_Terminate(sfThread* thread); - - -#endif // SFML_THREAD_H diff --git a/bindings/c/include/SFML/System/Types.h b/bindings/c/include/SFML/System/Types.h deleted file mode 100644 index c071b480..00000000 --- a/bindings/c/include/SFML/System/Types.h +++ /dev/null @@ -1,33 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SYSTEM_TYPES_H -#define SFML_SYSTEM_TYPES_H - - -typedef struct sfClock sfClock; -typedef struct sfMutex sfMutex; -typedef struct sfThread sfThread; - - -#endif // SFML_SYSTEM_TYPES_H diff --git a/bindings/c/include/SFML/Window.h b/bindings/c/include/SFML/Window.h deleted file mode 100644 index 5b002c78..00000000 --- a/bindings/c/include/SFML/Window.h +++ /dev/null @@ -1,42 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SFML_WINDOW_H -#define SFML_SFML_WINDOW_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// - -#include -#include -#include -#include -#include -#include -#include -#include - - -#endif // SFML_SFML_WINDOW_H diff --git a/bindings/c/include/SFML/Window/Context.h b/bindings/c/include/SFML/Window/Context.h deleted file mode 100644 index e9881555..00000000 --- a/bindings/c/include/SFML/Window/Context.h +++ /dev/null @@ -1,61 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_CONTEXT_H -#define SFML_CONTEXT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new context -/// -/// \return New context -/// -//////////////////////////////////////////////////////////// -CSFML_API sfContext* sfContext_Create(void); - -//////////////////////////////////////////////////////////// -/// Destroy an existing context -/// -/// \param context : Context to destroy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfContext_Destroy(sfContext* context); - -//////////////////////////////////////////////////////////// -/// Activate or deactivate a context -/// -/// \param context : Context to activate or deactivate -/// \param active : sfTrue to activate, sfFalse to deactivate -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfContext_SetActive(sfContext* context, sfBool active); - - -#endif // SFML_CONTEXT_H diff --git a/bindings/c/include/SFML/Window/Event.h b/bindings/c/include/SFML/Window/Event.h deleted file mode 100644 index 279b67cc..00000000 --- a/bindings/c/include/SFML/Window/Event.h +++ /dev/null @@ -1,178 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_EVENT_H -#define SFML_EVENT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Definition of all the event types -//////////////////////////////////////////////////////////// -typedef enum -{ - sfEvtClosed, - sfEvtResized, - sfEvtLostFocus, - sfEvtGainedFocus, - sfEvtTextEntered, - sfEvtKeyPressed, - sfEvtKeyReleased, - sfEvtMouseWheelMoved, - sfEvtMouseButtonPressed, - sfEvtMouseButtonReleased, - sfEvtMouseMoved, - sfEvtMouseEntered, - sfEvtMouseLeft, - sfEvtJoystickButtonPressed, - sfEvtJoystickButtonReleased, - sfEvtJoystickMoved, - sfEvtJoystickConnected, - sfEvtJoystickDisconnected -} sfEventType; - - -//////////////////////////////////////////////////////////// -/// Keyboard event parameters -//////////////////////////////////////////////////////////// -struct sfKeyEvent -{ - sfEventType Type; - sfKeyCode Code; - sfBool Alt; - sfBool Control; - sfBool Shift; - sfBool System; -}; - -//////////////////////////////////////////////////////////// -/// Text event parameters -//////////////////////////////////////////////////////////// -struct sfTextEvent -{ - sfEventType Type; - sfUint32 Unicode; -}; - -//////////////////////////////////////////////////////////// -/// Mouse move event parameters -//////////////////////////////////////////////////////////// -struct sfMouseMoveEvent -{ - sfEventType Type; - int X; - int Y; -}; - -//////////////////////////////////////////////////////////// -/// Mouse buttons events parameters -//////////////////////////////////////////////////////////// -struct sfMouseButtonEvent -{ - sfEventType Type; - sfMouseButton Button; - int X; - int Y; -}; - -//////////////////////////////////////////////////////////// -/// Mouse wheel events parameters -//////////////////////////////////////////////////////////// -struct sfMouseWheelEvent -{ - sfEventType Type; - int Delta; - int X; - int Y; -}; - -//////////////////////////////////////////////////////////// -/// Joystick axis move event parameters -//////////////////////////////////////////////////////////// -struct sfJoystickMoveEvent -{ - sfEventType Type; - unsigned int JoystickId; - sfJoystickAxis Axis; - float Position; -}; - -//////////////////////////////////////////////////////////// -/// Joystick buttons events parameters -//////////////////////////////////////////////////////////// -struct sfJoystickButtonEvent -{ - sfEventType Type; - unsigned int JoystickId; - unsigned int Button; -}; - -//////////////////////////////////////////////////////////// -/// Joystick connection/disconnection event parameters -//////////////////////////////////////////////////////////// -struct sfJoystickConnectEvent -{ - sfEventType Type; - unsigned int JoystickId; -}; - -//////////////////////////////////////////////////////////// -/// Size events parameters -//////////////////////////////////////////////////////////// -struct sfSizeEvent -{ - sfEventType Type; - unsigned int Width; - unsigned int Height; -}; - - -//////////////////////////////////////////////////////////// -/// sfEvent defines a system event and its parameters -//////////////////////////////////////////////////////////// -typedef union -{ - //////////////////////////////////////////////////////////// - // Member data - //////////////////////////////////////////////////////////// - sfEventType Type; ///< Type of the event - struct sfSizeEvent Size; - struct sfKeyEvent Key; - struct sfTextEvent Text; - struct sfMouseMoveEvent MouseMove; - struct sfMouseButtonEvent MouseButton; - struct sfMouseWheelEvent MouseWheel; - struct sfJoystickMoveEvent JoystickMove; - struct sfJoystickButtonEvent JoystickButton; - struct sfJoystickConnectEvent JoystickConnect; -} sfEvent; - - -#endif // SFML_EVENT_H diff --git a/bindings/c/include/SFML/Window/Input.h b/bindings/c/include/SFML/Window/Input.h deleted file mode 100644 index e5e1d7dd..00000000 --- a/bindings/c/include/SFML/Window/Input.h +++ /dev/null @@ -1,102 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_INPUT_H -#define SFML_INPUT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Get the state of a key -/// -/// \param input : Input object -/// \param code : Key to check -/// -/// \return sfTrue if key is down, sfFalse if key is up -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfInput_IsKeyDown(const sfInput* input, sfKeyCode code); - -//////////////////////////////////////////////////////////// -/// Get the state of a mouse button -/// -/// \param input : Input object -/// \param button : Button to check -/// -/// \return sfTrue if button is down, sfFalse if button is up -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfInput_IsMouseButtonDown(const sfInput* input, sfMouseButton button); - -//////////////////////////////////////////////////////////// -/// Get the state of a joystick button -/// -/// \param input : Input object -/// \param joyId : Identifier of the joystick to check (0 or 1) -/// \param button : Button to check -/// -/// \return sfTrue if button is down, sfFalse if button is up -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfInput_IsJoystickButtonDown(const sfInput* input, unsigned int joyId, unsigned int button); - -//////////////////////////////////////////////////////////// -/// Get the mouse X position -/// -/// \param input : Input object -/// -/// \return Current mouse left position, relative to owner window -/// -//////////////////////////////////////////////////////////// -CSFML_API int sfInput_GetMouseX(const sfInput* input); - -//////////////////////////////////////////////////////////// -/// Get the mouse Y position -/// -/// \param input : Input object -/// -/// \return Current mouse top position, relative to owner window -/// -//////////////////////////////////////////////////////////// -CSFML_API int sfInput_GetMouseY(const sfInput* input); - -//////////////////////////////////////////////////////////// -/// Get the joystick position on a given axis -/// -/// \param input : Input object -/// \param joyId : Identifier of the joystick to check (0 or 1) -/// \param axis : Identifier of the axis to read -/// -/// \return Current joystick position, in the range [-100, 100] -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfInput_GetJoystickAxis(const sfInput* input, unsigned int joyId, sfJoyAxis axis); - - -#endif // SFML_INPUT_H diff --git a/bindings/c/include/SFML/Window/Joystick.h b/bindings/c/include/SFML/Window/Joystick.h deleted file mode 100644 index 197a6a2b..00000000 --- a/bindings/c/include/SFML/Window/Joystick.h +++ /dev/null @@ -1,135 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_JOYSTICK_H -#define SFML_JOYSTICK_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -/// \brief Global joysticks capabilities -/// -//////////////////////////////////////////////////////////// -enum -{ - sfJoystickCount = 8, ///< Maximum number of supported joysticks - sfJoystickButtonCount = 32, ///< Maximum number of supported buttons - sfJoystickAxisCount = 8 ///< Maximum number of supported axes -}; - - -//////////////////////////////////////////////////////////// -/// \brief Axes supported by SFML joysticks -/// -//////////////////////////////////////////////////////////// -typedef enum -{ - sfJoystickX, ///< The X axis - sfJoystickY, ///< The Y axis - sfJoystickZ, ///< The Z axis - sfJoystickR, ///< The R axis - sfJoystickU, ///< The U axis - sfJoystickV, ///< The V axis - sfJoystickPovX, ///< The X axis of the point-of-view hat - sfJoystickPovY ///< The Y axis of the point-of-view hat -} sfJoystickAxis; - - -//////////////////////////////////////////////////////////// -/// \brief Check if a joystick is connected -/// -/// \param joystick Index of the joystick to check -/// -/// \return sfTrue if the joystick is connected, sfFalse otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfJoystick_IsConnected(unsigned int joystick); - -//////////////////////////////////////////////////////////// -/// \brief Return the number of buttons supported by a joystick -/// -/// If the joystick is not connected, this function returns 0. -/// -/// \param joystick Index of the joystick -/// -/// \return Number of buttons supported by the joystick -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfJoystick_GetButtonCount(unsigned int joystick); - -//////////////////////////////////////////////////////////// -/// \brief Check if a joystick supports a given axis -/// -/// If the joystick is not connected, this function returns false. -/// -/// \param joystick Index of the joystick -/// \param axis Axis to check -/// -/// \return sfTrue if the joystick supports the axis, sfFalse otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfJoystick_HasAxis(unsigned int joystick, sfJoystickAxis axis); - -//////////////////////////////////////////////////////////// -/// \brief Check if a joystick button is pressed -/// -/// If the joystick is not connected, this function returns false. -/// -/// \param joystick Index of the joystick -/// \param button Button to check -/// -/// \return sfTrue if the button is pressed, sfFalse otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfJoystick_IsButtonPressed(unsigned int joystick, unsigned int button); - -//////////////////////////////////////////////////////////// -/// \brief Get the current position of a joystick axis -/// -/// If the joystick is not connected, this function returns 0. -/// -/// \param joystick Index of the joystick -/// \param axis Axis to check -/// -/// \return Current position of the axis, in range [-100 .. 100] -/// -//////////////////////////////////////////////////////////// -CSFML_API float sfJoystick_GetAxisPosition(unsigned int joystick, sfJoystickAxis axis); - -//////////////////////////////////////////////////////////// -/// \brief Update the states of all joysticks -/// -/// This function is used internally by SFML, so you normally -/// don't have to call it explicitely. However, you may need to -/// call it if you have no window yet (or no window at all): -/// in this case the joysticks states are not updated automatically. -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfJoystick_Update(void); - - -#endif // SFML_JOYSTICK_H diff --git a/bindings/c/include/SFML/Window/Keyboard.h b/bindings/c/include/SFML/Window/Keyboard.h deleted file mode 100644 index 1901a236..00000000 --- a/bindings/c/include/SFML/Window/Keyboard.h +++ /dev/null @@ -1,156 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_KEYBOARD_H -#define SFML_KEYBOARD_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -/// \brief Key codes -/// -//////////////////////////////////////////////////////////// -typedef enum -{ - sfKeyA, ///< The A key - sfKeyB, ///< The B key - sfKeyC, ///< The C key - sfKeyD, ///< The D key - sfKeyE, ///< The E key - sfKeyF, ///< The F key - sfKeyG, ///< The G key - sfKeyH, ///< The H key - sfKeyI, ///< The I key - sfKeyJ, ///< The J key - sfKeyK, ///< The K key - sfKeyL, ///< The L key - sfKeyM, ///< The M key - sfKeyN, ///< The N key - sfKeyO, ///< The O key - sfKeyP, ///< The P key - sfKeyQ, ///< The Q key - sfKeyR, ///< The R key - sfKeyS, ///< The S key - sfKeyT, ///< The T key - sfKeyU, ///< The U key - sfKeyV, ///< The V key - sfKeyW, ///< The W key - sfKeyX, ///< The X key - sfKeyY, ///< The Y key - sfKeyZ, ///< The Z key - sfKeyNum0, ///< The 0 key - sfKeyNum1, ///< The 1 key - sfKeyNum2, ///< The 2 key - sfKeyNum3, ///< The 3 key - sfKeyNum4, ///< The 4 key - sfKeyNum5, ///< The 5 key - sfKeyNum6, ///< The 6 key - sfKeyNum7, ///< The 7 key - sfKeyNum8, ///< The 8 key - sfKeyNum9, ///< The 9 key - sfKeyEscape, ///< The Escape key - sfKeyLControl, ///< The left Control key - sfKeyLShift, ///< The left Shift key - sfKeyLAlt, ///< The left Alt key - sfKeyLSystem, ///< The left OS specific key: window (Windows and Linux), apple (MacOS X), ... - sfKeyRControl, ///< The right Control key - sfKeyRShift, ///< The right Shift key - sfKeyRAlt, ///< The right Alt key - sfKeyRSystem, ///< The right OS specific key: window (Windows and Linux), apple (MacOS X), ... - sfKeyMenu, ///< The Menu key - sfKeyLBracket, ///< The [ key - sfKeyRBracket, ///< The ] key - sfKeySemiColon, ///< The ; key - sfKeyComma, ///< The , key - sfKeyPeriod, ///< The . key - sfKeyQuote, ///< The ' key - sfKeySlash, ///< The / key - sfKeyBackSlash, ///< The \ key - sfKeyTilde, ///< The ~ key - sfKeyEqual, ///< The = key - sfKeyDash, ///< The - key - sfKeySpace, ///< The Space key - sfKeyReturn, ///< The Return key - sfKeyBack, ///< The Backspace key - sfKeyTab, ///< The Tabulation key - sfKeyPageUp, ///< The Page up key - sfKeyPageDown, ///< The Page down key - sfKeyEnd, ///< The End key - sfKeyHome, ///< The Home key - sfKeyInsert, ///< The Insert key - sfKeyDelete, ///< The Delete key - sfKeyAdd, ///< + - sfKeySubtract, ///< - - sfKeyMultiply, ///< * - sfKeyDivide, ///< / - sfKeyLeft, ///< Left arrow - sfKeyRight, ///< Right arrow - sfKeyUp, ///< Up arrow - sfKeyDown, ///< Down arrow - sfKeyNumpad0, ///< The numpad 0 key - sfKeyNumpad1, ///< The numpad 1 key - sfKeyNumpad2, ///< The numpad 2 key - sfKeyNumpad3, ///< The numpad 3 key - sfKeyNumpad4, ///< The numpad 4 key - sfKeyNumpad5, ///< The numpad 5 key - sfKeyNumpad6, ///< The numpad 6 key - sfKeyNumpad7, ///< The numpad 7 key - sfKeyNumpad8, ///< The numpad 8 key - sfKeyNumpad9, ///< The numpad 9 key - sfKeyF1, ///< The F1 key - sfKeyF2, ///< The F2 key - sfKeyF3, ///< The F3 key - sfKeyF4, ///< The F4 key - sfKeyF5, ///< The F5 key - sfKeyF6, ///< The F6 key - sfKeyF7, ///< The F7 key - sfKeyF8, ///< The F8 key - sfKeyF9, ///< The F8 key - sfKeyF10, ///< The F10 key - sfKeyF11, ///< The F11 key - sfKeyF12, ///< The F12 key - sfKeyF13, ///< The F13 key - sfKeyF14, ///< The F14 key - sfKeyF15, ///< The F15 key - sfKeyPause, ///< The Pause key - - sfKeyCount ///< Keep last -- the total number of keyboard keys -} sfKeyCode; - - -//////////////////////////////////////////////////////////// -/// \brief Check if a key is pressed -/// -/// \param key Key to check -/// -/// \return sfTrue if the key is pressed, sfFalse otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfKeyboard_IsKeyPressed(sfKeyCode key); - - -#endif // SFML_KEYBOARD_H diff --git a/bindings/c/include/SFML/Window/Mouse.h b/bindings/c/include/SFML/Window/Mouse.h deleted file mode 100644 index 3fb895ef..00000000 --- a/bindings/c/include/SFML/Window/Mouse.h +++ /dev/null @@ -1,74 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_MOUSE_H -#define SFML_MOUSE_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -/// \brief Mouse buttons -/// -//////////////////////////////////////////////////////////// -typedef enum -{ - sfMouseLeft, ///< The left mouse button - sfMouseRight, ///< The right mouse button - sfMouseMiddle, ///< The middle (wheel) mouse button - sfMouseXButton1, ///< The first extra mouse button - sfMouseXButton2, ///< The second extra mouse button - - sfMouseButtonCount ///< Keep last -- the total number of mouse buttons -} sfMouseButton; - - -//////////////////////////////////////////////////////////// -/// \brief Check if a mouse button is pressed -/// -/// \param button Button to check -/// -/// \return sfTrue if the button is pressed, sfFalse otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfMouse_IsButtonPressed(sfMouseButton button); - -//////////////////////////////////////////////////////////// -/// \brief Get the current position of the mouse -/// -/// This function returns the current position of the mouse -/// cursor. -/// If the cursor is over a SFML window, the returned position -/// is relative to this window. Otherwise, the returned position -/// is in desktop coordinates. -/// -/// \return Current position of the mouse -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfMouse_GetPosition(int* x, int* y); - - -#endif // SFML_MOUSE_H diff --git a/bindings/c/include/SFML/Window/Types.h b/bindings/c/include/SFML/Window/Types.h deleted file mode 100644 index 65a488d9..00000000 --- a/bindings/c/include/SFML/Window/Types.h +++ /dev/null @@ -1,33 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_WINDOW_TYPES_H -#define SFML_WINDOW_TYPES_H - - -typedef struct sfContext sfContext; -typedef struct sfWindow sfWindow; - - -#endif // SFML_WINDOW_TYPES_H diff --git a/bindings/c/include/SFML/Window/VideoMode.h b/bindings/c/include/SFML/Window/VideoMode.h deleted file mode 100644 index a31fdcf3..00000000 --- a/bindings/c/include/SFML/Window/VideoMode.h +++ /dev/null @@ -1,77 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_VIDEOMODE_H -#define SFML_VIDEOMODE_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -/// sfVideoMode defines a video mode (width, height, bpp, frequency) -/// and provides functions for getting modes supported -/// by the display device -//////////////////////////////////////////////////////////// -typedef struct -{ - unsigned int Width; ///< Video mode width, in pixels - unsigned int Height; ///< Video mode height, in pixels - unsigned int BitsPerPixel; ///< Video mode pixel depth, in bits per pixels -} sfVideoMode; - - -//////////////////////////////////////////////////////////// -/// Get the current desktop video mode -/// -/// \return Current desktop video mode -/// -//////////////////////////////////////////////////////////// -CSFML_API sfVideoMode sfVideoMode_GetDesktopMode(void); - -//////////////////////////////////////////////////////////// -/// Get all the supported video modes for fullscreen mode. -/// Modes are sorted from best to worst. -/// -/// \param Count : Variable that will be filled with the number of modes -/// -/// \return Pointer to an array of \a count video modes -/// -//////////////////////////////////////////////////////////// -CSFML_API const sfVideoMode* sfVideoMode_GetFullscreenModes(size_t* Count); - -//////////////////////////////////////////////////////////// -/// Tell whether or not a video mode is supported -/// -/// \param mode : Video mode to check -/// -/// -/// \return True if video mode is supported, false otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfVideoMode_IsValid(sfVideoMode mode); - - -#endif // SFML_VIDEOMODE_H diff --git a/bindings/c/include/SFML/Window/Window.h b/bindings/c/include/SFML/Window/Window.h deleted file mode 100644 index dbf3e636..00000000 --- a/bindings/c/include/SFML/Window/Window.h +++ /dev/null @@ -1,319 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_WINDOW_H -#define SFML_WINDOW_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Enumeration of window creation styles -/// -//////////////////////////////////////////////////////////// -enum -{ - sfNone = 0, ///< No border / title bar (this flag and all others are mutually exclusive) - sfTitlebar = 1 << 0, ///< Title bar + fixed border - sfResize = 1 << 1, ///< Titlebar + resizable border + maximize button - sfClose = 1 << 2, ///< Titlebar + close button - sfFullscreen = 1 << 3, ///< Fullscreen mode (this flag and all others are mutually exclusive) - sfDefaultStyle = sfTitlebar | sfResize | sfClose ///< Default window style -}; - - -//////////////////////////////////////////////////////////// -/// Structure defining the window's creation settings -//////////////////////////////////////////////////////////// -typedef struct -{ - unsigned int DepthBits; ///< Bits of the depth buffer - unsigned int StencilBits; ///< Bits of the stencil buffer - unsigned int AntialiasingLevel; ///< Level of antialiasing - unsigned int MajorVersion; ///< Major number of the context version to create - unsigned int MinorVersion; ///< Minor number of the context version to create -} sfContextSettings; - - -//////////////////////////////////////////////////////////// -/// Construct a new window -/// -/// \param mode : Video mode to use -/// \param title : Title of the window -/// \param style : Window style -/// \param settings : Creation settings (pass NULL to use default values) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfWindow* sfWindow_Create(sfVideoMode mode, const char* title, unsigned long style, const sfContextSettings* settings); - -//////////////////////////////////////////////////////////// -/// Construct a window from an existing control -/// -/// \param handle : Platform-specific handle of the control -/// \param settings : Creation settings (pass NULL to use default values) -/// -//////////////////////////////////////////////////////////// -CSFML_API sfWindow* sfWindow_CreateFromHandle(sfWindowHandle handle, const sfContextSettings* settings); - -//////////////////////////////////////////////////////////// -/// Destroy an existing window -/// -/// \param window : Window to destroy -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfWindow_Destroy(sfWindow* window); - -//////////////////////////////////////////////////////////// -/// Close a window (but doesn't destroy the internal data) -/// -/// \param window : Window to close -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfWindow_Close(sfWindow* window); - -//////////////////////////////////////////////////////////// -/// Tell whether or not a window is opened -/// -/// \param window : Window object -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfWindow_IsOpened(const sfWindow* window); - -//////////////////////////////////////////////////////////// -/// Get the width of the rendering region of a window -/// -/// \param window : Window object -/// -/// \return Width in pixels -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfWindow_GetWidth(const sfWindow* window); - -//////////////////////////////////////////////////////////// -/// Get the height of the rendering region of a window -/// -/// \param window : Window object -/// -/// \return Height in pixels -/// -//////////////////////////////////////////////////////////// -CSFML_API unsigned int sfWindow_GetHeight(const sfWindow* window); - -//////////////////////////////////////////////////////////// -/// Get the creation settings of a window -/// -/// \param window : Window object -/// -/// \return Settings used to create the window -/// -//////////////////////////////////////////////////////////// -CSFML_API sfContextSettings sfWindow_GetSettings(const sfWindow* window); - -//////////////////////////////////////////////////////////// -/// Get the event on top of events stack of a window, if any, and pop it -/// -/// \param window : Window object -/// \param event : Event to fill, if any -/// -/// \return sfTrue if an event was returned, sfFalse if events stack was empty -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfWindow_PollEvent(sfWindow* window, sfEvent* event); - -//////////////////////////////////////////////////////////// -/// Wait for an event and return it -/// -/// \param window : Window object -/// \param event : Event to fill -/// -/// \return sfFalse if an error occured -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfWindow_WaitEvent(sfWindow* window, sfEvent* event); - -//////////////////////////////////////////////////////////// -/// Enable / disable vertical synchronization on a window -/// -/// \param window : Window object -/// \param enabled : sfTrue to enable v-sync, sfFalse to deactivate -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfWindow_EnableVerticalSync(sfWindow* window, sfBool enabled); - -//////////////////////////////////////////////////////////// -/// Show or hide the mouse cursor on a window -/// -/// \param window : Window object -/// \param show : sfTrue to show, sfFalse to hide -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfWindow_ShowMouseCursor(sfWindow* window, sfBool show); - -//////////////////////////////////////////////////////////// -/// Change the position of the mouse cursor on a window -/// -/// \param window : Window object -/// \param left : Left coordinate of the cursor, relative to the window -/// \param top : Top coordinate of the cursor, relative to the window -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfWindow_SetCursorPosition(sfWindow* window, unsigned int left, unsigned int top); - -//////////////////////////////////////////////////////////// -/// Get the position of the mouse cursor on a window -/// -/// \param window : Window object -/// \param left : Left coordinate of the cursor, relative to the window -/// \param top : Top coordinate of the cursor, relative to the window -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfWindow_GetCursorPosition(sfWindow* window, int* left, int* top); - -//////////////////////////////////////////////////////////// -/// Change the position of a window on screen. -/// Only works for top-level windows -/// -/// \param window : Window object -/// \param left : Left position -/// \param top : Top position -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfWindow_SetPosition(sfWindow* window, int left, int top); - -//////////////////////////////////////////////////////////// -/// Change the size of the rendering region of a window -/// -/// \param window : Window object -/// \param width : New Width -/// \param height : New Height -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfWindow_SetSize(sfWindow* window, unsigned int width, unsigned int height); - -//////////////////////////////////////////////////////////// -/// Change the title of a window -/// -/// \param window : Window object -/// \param title : New title -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfWindow_SetTitle(sfWindow* window, const char* title); - -//////////////////////////////////////////////////////////// -/// Show or hide a window -/// -/// \param window : Window object -/// \param show : sfTrue to show, sfFalse to hide -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfWindow_Show(sfWindow* window, sfBool show); - -//////////////////////////////////////////////////////////// -/// Enable or disable automatic key-repeat for keydown events. -/// Automatic key-repeat is enabled by default -/// -/// \param window : Window object -/// \param enabled : sfTrue to enable, sfFalse to disable -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfWindow_EnableKeyRepeat(sfWindow* window, sfBool enabled); - -//////////////////////////////////////////////////////////// -/// Change the window's icon -/// -/// \param window : Window object -/// \param width : Icon's width, in pixels -/// \param height : Icon's height, in pixels -/// \param pixels : Pointer to the pixels in memory, format must be RGBA 32 bits -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfWindow_SetIcon(sfWindow* window, unsigned int width, unsigned int height, const sfUint8* pixels); - -//////////////////////////////////////////////////////////// -/// Activate or deactivate a window as the current target for rendering -/// -/// \param window : Window object -/// \param active : sfTrue to activate, sfFalse to deactivate -/// -/// \return True if operation was successful, false otherwise -/// -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfWindow_SetActive(sfWindow* window, sfBool active); - -//////////////////////////////////////////////////////////// -/// Display a window on screen -/// -/// \param window : Window object -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfWindow_Display(sfWindow* window); - -//////////////////////////////////////////////////////////// -/// Limit the framerate to a maximum fixed frequency for a window -/// -/// \param window : Window object -/// \param limit : Framerate limit, in frames per seconds (use 0 to disable limit) -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfWindow_SetFramerateLimit(sfWindow* window, unsigned int limit); - -//////////////////////////////////////////////////////////// -/// Get time elapsed since last frame of a window -/// -/// \param window : Window object -/// -/// \return Time elapsed, in milliseconds -/// -//////////////////////////////////////////////////////////// -CSFML_API sfUint32 sfWindow_GetFrameTime(const sfWindow* window); - -//////////////////////////////////////////////////////////// -/// Change the joystick threshold, ie. the value below which -/// no move event will be generated -/// -/// \param window : Window object -/// \param threshold : New threshold, in range [0, 100] -/// -//////////////////////////////////////////////////////////// -CSFML_API void sfWindow_SetJoystickThreshold(sfWindow* window, float threshold); - -//////////////////////////////////////////////////////////// -/// Retrieve the Os-specific handle of a window -/// -/// \param window : Window object -/// -/// \return Window handle -/// -//////////////////////////////////////////////////////////// -CSFML_API sfWindowHandle sfWindow_GetSystemHandle(const sfWindow* window); - - -#endif // SFML_WINDOW_H diff --git a/bindings/c/include/SFML/Window/WindowHandle.h b/bindings/c/include/SFML/Window/WindowHandle.h deleted file mode 100644 index 171536e5..00000000 --- a/bindings/c/include/SFML/Window/WindowHandle.h +++ /dev/null @@ -1,57 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_WINDOWHANDLE_H -#define SFML_WINDOWHANDLE_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -/// Define a low-level window handle type, specific to -/// each platform -//////////////////////////////////////////////////////////// -#if defined(CSFML_SYSTEM_WINDOWS) - - // Window handle is HWND (HWND__*) on Windows - struct HWND__; - typedef HWND__* sfWindowHandle; - -#elif defined(CSFML_SYSTEM_LINUX) || defined(CSFML_SYSTEM_FREEBSD) - - // Window handle is Window (unsigned long) on Unix - X11 - typedef unsigned long sfWindowHandle; - -#elif defined(CSFML_SYSTEM_MACOS) - - // Window handle is NSWindow (void*) on Mac OS X - Cocoa - typedef void* sfWindowHandle; - -#endif - - -#endif // SFML_WINDOWHANDLE_H diff --git a/bindings/c/license.txt b/bindings/c/license.txt deleted file mode 100644 index a67d6671..00000000 --- a/bindings/c/license.txt +++ /dev/null @@ -1,31 +0,0 @@ -CSFML ------ - -CSFML - Copyright (c) 2007-2009 Laurent Gomila - laurent.gom@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. - - - -External libraries used by CSFML --------------------------------- - -* SFML is under the zlib/png license diff --git a/bindings/c/src/SFML/Audio/CMakeLists.txt b/bindings/c/src/SFML/Audio/CMakeLists.txt deleted file mode 100644 index 47fc107d..00000000 --- a/bindings/c/src/SFML/Audio/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ - -set(INCROOT ${CMAKE_SOURCE_DIR}/include/SFML/Audio) -set(SRCROOT ${CMAKE_SOURCE_DIR}/src/SFML/Audio) - -# all source files -set(SRC - ${SRCROOT}/Listener.cpp - ${INCROOT}/Listener.h - ${SRCROOT}/Music.cpp - ${SRCROOT}/MusicStruct.h - ${INCROOT}/Music.h - ${SRCROOT}/Sound.cpp - ${SRCROOT}/SoundStruct.h - ${INCROOT}/Sound.h - ${SRCROOT}/SoundBuffer.cpp - ${SRCROOT}/SoundBufferStruct.h - ${INCROOT}/SoundBuffer.h - ${SRCROOT}/SoundBufferRecorder.cpp - ${SRCROOT}/SoundBufferRecorderStruct.h - ${INCROOT}/SoundBufferRecorder.h - ${SRCROOT}/SoundRecorder.cpp - ${SRCROOT}/SoundRecorderStruct.h - ${INCROOT}/SoundRecorder.h - ${INCROOT}/SoundStatus.h - ${SRCROOT}/SoundStream.cpp - ${SRCROOT}/SoundStreamStruct.h - ${INCROOT}/SoundStream.h - ${INCROOT}/Types.h -) - -# define the csfml-audio target -csfml_add_library(csfml-audio - SOURCES ${SRC} - DEPENDS ${SFML_AUDIO_LIBRARY} ${SFML_SYSTEM_LIBRARY}) diff --git a/bindings/c/src/SFML/Audio/Listener.cpp b/bindings/c/src/SFML/Audio/Listener.cpp deleted file mode 100644 index 71683940..00000000 --- a/bindings/c/src/SFML/Audio/Listener.cpp +++ /dev/null @@ -1,96 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - - -//////////////////////////////////////////////////////////// -/// Change the global volume of all the sounds -//////////////////////////////////////////////////////////// -void sfListener_SetGlobalVolume(float volume) -{ - sf::Listener::SetGlobalVolume(volume); -} - - -//////////////////////////////////////////////////////////// -/// Get the current value of the global volume of all the sounds -//////////////////////////////////////////////////////////// -float sfListener_GetGlobalVolume(void) -{ - return sf::Listener::GetGlobalVolume(); -} - - -//////////////////////////////////////////////////////////// -/// Change the position of the listener -//////////////////////////////////////////////////////////// -void sfListener_SetPosition(float x, float y, float z) -{ - sf::Listener::SetPosition(x, y, z); -} - - -//////////////////////////////////////////////////////////// -/// Get the current position of the listener -//////////////////////////////////////////////////////////// -void sfListener_GetPosition(float* x, float* y, float* z) -{ - if (x && y && z) - { - sf::Vector3f position = sf::Listener::GetPosition(); - *x = position.x; - *y = position.y; - *z = position.z; - } -} - - -//////////////////////////////////////////////////////////// -/// Change the orientation of the listener -//////////////////////////////////////////////////////////// -void sfListener_SetDirection(float x, float y, float z) -{ - sf::Listener::SetDirection(x, y, z); -} - - -//////////////////////////////////////////////////////////// -/// Get the current orientation of the listener -//////////////////////////////////////////////////////////// -void sfListener_GetDirection(float* x, float* y, float* z) -{ - if (x && y && z) - { - sf::Vector3f direction = sf::Listener::GetDirection(); - *x = direction.x; - *y = direction.y; - *z = direction.z; - } -} diff --git a/bindings/c/src/SFML/Audio/Music.cpp b/bindings/c/src/SFML/Audio/Music.cpp deleted file mode 100644 index 0022562d..00000000 --- a/bindings/c/src/SFML/Audio/Music.cpp +++ /dev/null @@ -1,297 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new music and load it from a file -//////////////////////////////////////////////////////////// -sfMusic* sfMusic_CreateFromFile(const char* filename) -{ - sfMusic* music = new sfMusic; - - if (!music->This.OpenFromFile(filename)) - { - delete music; - music = NULL; - } - - return music; -} - - -//////////////////////////////////////////////////////////// -/// Create a new music and load it from a file in memory -//////////////////////////////////////////////////////////// -sfMusic* sfMusic_CreateFromMemory(const void* data, size_t sizeInBytes) -{ - sfMusic* music = new sfMusic; - - if (!music->This.OpenFromMemory(data, sizeInBytes)) - { - delete music; - music = NULL; - } - - return music; -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing music -//////////////////////////////////////////////////////////// -void sfMusic_Destroy(sfMusic* music) -{ - delete music; -} - - -//////////////////////////////////////////////////////////// -/// Set a music loop state -//////////////////////////////////////////////////////////// -void sfMusic_SetLoop(sfMusic* music, sfBool loop) -{ - CSFML_CALL(music, SetLoop(loop != 0)); -} - - -//////////////////////////////////////////////////////////// -/// Tell whether or not a music is looping -//////////////////////////////////////////////////////////// -sfBool sfMusic_GetLoop(const sfMusic* music) -{ - CSFML_CALL_RETURN(music, GetLoop(), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Get a music duration -//////////////////////////////////////////////////////////// -sfUint32 sfMusic_GetDuration(const sfMusic* music) -{ - CSFML_CALL_RETURN(music, GetDuration(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Start playing a music -//////////////////////////////////////////////////////////// -void sfMusic_Play(sfMusic* music) -{ - CSFML_CALL(music, Play()); -} - - -//////////////////////////////////////////////////////////// -/// Pause a music -//////////////////////////////////////////////////////////// -void sfMusic_Pause(sfMusic* music) -{ - CSFML_CALL(music, Pause()); -} - - -//////////////////////////////////////////////////////////// -/// Stop playing a music -//////////////////////////////////////////////////////////// -void sfMusic_Stop(sfMusic* music) -{ - CSFML_CALL(music, Stop()); -} - - -//////////////////////////////////////////////////////////// -/// Return the number of channels of a music (1 = mono, 2 = stereo) -//////////////////////////////////////////////////////////// -unsigned int sfMusic_GetChannelsCount(const sfMusic* music) -{ - CSFML_CALL_RETURN(music, GetChannelsCount(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Get the stream sample rate of a music -//////////////////////////////////////////////////////////// -unsigned int sfMusic_GetSampleRate(const sfMusic* music) -{ - CSFML_CALL_RETURN(music, GetSampleRate(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Get the status of a music (stopped, paused, playing) -//////////////////////////////////////////////////////////// -sfSoundStatus sfMusic_GetStatus(const sfMusic* music) -{ - CSFML_CHECK_RETURN(music, sfStopped); - - return static_cast(music->This.GetStatus()); -} - - -//////////////////////////////////////////////////////////// -/// Get the current playing position of a music -//////////////////////////////////////////////////////////// -sfUint32 sfMusic_GetPlayingOffset(const sfMusic* music) -{ - CSFML_CALL_RETURN(music, GetPlayingOffset(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Set the pitch of a music -//////////////////////////////////////////////////////////// -void sfMusic_SetPitch(sfMusic* music, float pitch) -{ - CSFML_CALL(music, SetPitch(pitch)); -} - - -//////////////////////////////////////////////////////////// -/// Set the volume of a music -//////////////////////////////////////////////////////////// -void sfMusic_SetVolume(sfMusic* music, float volume) -{ - CSFML_CALL(music, SetVolume(volume)); -} - - -//////////////////////////////////////////////////////////// -/// Set the position of a music -//////////////////////////////////////////////////////////// -void sfMusic_SetPosition(sfMusic* music, float x, float y, float z) -{ - CSFML_CALL(music, SetPosition(sf::Vector3f(x, y, z))); -} - - -//////////////////////////////////////////////////////////// -/// Make the music's position relative to the listener's -/// position, or absolute. -/// The default value is false (absolute) -//////////////////////////////////////////////////////////// -void sfMusic_SetRelativeToListener(sfMusic* music, sfBool relative) -{ - CSFML_CALL(music, SetRelativeToListener(relative == sfTrue)); -} - - -//////////////////////////////////////////////////////////// -/// Set the minimum distance - closer than this distance, -/// the listener will hear the music at its maximum volume. -/// The default minimum distance is 1.0 -//////////////////////////////////////////////////////////// -void sfMusic_SetMinDistance(sfMusic* music, float distance) -{ - CSFML_CALL(music, SetMinDistance(distance)); -} - - -//////////////////////////////////////////////////////////// -/// Set the attenuation factor - the higher the attenuation, the -/// more the sound will be attenuated with distance from listener. -/// The default attenuation factor 1.0 -//////////////////////////////////////////////////////////// -void sfMusic_SetAttenuation(sfMusic* music, float attenuation) -{ - CSFML_CALL(music, SetAttenuation(attenuation)); -} - - -//////////////////////////////////////////////////////////// -/// Set the current playing position of a stream -//////////////////////////////////////////////////////////// -void sfMusic_SetPlayingOffset(sfMusic* music, sfUint32 timeOffset) -{ - CSFML_CALL(music, SetPlayingOffset(timeOffset)); -} - - -//////////////////////////////////////////////////////////// -/// Get the pitch of a music -//////////////////////////////////////////////////////////// -float sfMusic_GetPitch(const sfMusic* music) -{ - CSFML_CALL_RETURN(music, GetPitch(), 0.f); -} - - -//////////////////////////////////////////////////////////// -/// Get the volume of a music -//////////////////////////////////////////////////////////// -float sfMusic_GetVolume(const sfMusic* music) -{ - CSFML_CALL_RETURN(music, GetVolume(), 0.f); -} - - -//////////////////////////////////////////////////////////// -/// Get the position of a music -//////////////////////////////////////////////////////////// -void sfMusic_GetPosition(const sfMusic* music, float* x, float* y, float* z) -{ - CSFML_CHECK(music); - - if (x && y && z) - { - sf::Vector3f position = music->This.GetPosition(); - *x = position.x; - *y = position.y; - *z = position.z; - } -} - - -//////////////////////////////////////////////////////////// -/// Tell if the music's position is relative to the listener's -/// position, or if it's absolute -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfMusic_IsRelativeToListener(const sfMusic* music) -{ - CSFML_CALL_RETURN(music, IsRelativeToListener(), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Get the minimum distance of a music -//////////////////////////////////////////////////////////// -float sfMusic_GetMinDistance(const sfMusic* music) -{ - CSFML_CALL_RETURN(music, GetMinDistance(), 0.f); -} - - -//////////////////////////////////////////////////////////// -/// Get the attenuation factor of a music -//////////////////////////////////////////////////////////// -float sfMusic_GetAttenuation(const sfMusic* music) -{ - CSFML_CALL_RETURN(music, GetAttenuation(), 0.f); -} diff --git a/bindings/c/src/SFML/Audio/MusicStruct.h b/bindings/c/src/SFML/Audio/MusicStruct.h deleted file mode 100644 index 8c82e893..00000000 --- a/bindings/c/src/SFML/Audio/MusicStruct.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_MUSICSTRUCT_H -#define SFML_MUSICSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfMusic -//////////////////////////////////////////////////////////// -struct sfMusic -{ - sf::Music This; -}; - - -#endif // SFML_MUSICSTRUCT_H diff --git a/bindings/c/src/SFML/Audio/Sound.cpp b/bindings/c/src/SFML/Audio/Sound.cpp deleted file mode 100644 index f7b95c5c..00000000 --- a/bindings/c/src/SFML/Audio/Sound.cpp +++ /dev/null @@ -1,277 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new sound -//////////////////////////////////////////////////////////// -sfSound* sfSound_Create(void) -{ - return new sfSound; -} - - -//////////////////////////////////////////////////////////// -/// Copy an existing sound -//////////////////////////////////////////////////////////// -sfSound* sfSound_Copy(sfSound* sound) -{ - CSFML_CHECK_RETURN(sound, NULL); - - return new sfSound(*sound); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing sound -//////////////////////////////////////////////////////////// -void sfSound_Destroy(sfSound* sound) -{ - delete sound; -} - - -//////////////////////////////////////////////////////////// -/// Start playing a sound -//////////////////////////////////////////////////////////// -void sfSound_Play(sfSound* sound) -{ - CSFML_CALL(sound, Play()) -} - - -//////////////////////////////////////////////////////////// -/// Pause a sound -//////////////////////////////////////////////////////////// -void sfSound_Pause(sfSound* sound) -{ - CSFML_CALL(sound, Pause()) -} - - -//////////////////////////////////////////////////////////// -/// Stop playing a sound -//////////////////////////////////////////////////////////// -void sfSound_Stop(sfSound* sound) -{ - CSFML_CALL(sound, Stop()) -} - - -//////////////////////////////////////////////////////////// -/// Bind a sound buffer to a sound -//////////////////////////////////////////////////////////// -void sfSound_SetBuffer(sfSound* sound, const sfSoundBuffer* buffer) -{ - if (buffer) - { - CSFML_CALL(sound, SetBuffer(buffer->This)) - sound->Buffer = buffer; - } -} - - -//////////////////////////////////////////////////////////// -/// Get the sound buffer bound to a sound -//////////////////////////////////////////////////////////// -const sfSoundBuffer* sfSound_GetBuffer(const sfSound* sound) -{ - CSFML_CHECK_RETURN(sound, NULL) - - return sound->Buffer; -} - - -//////////////////////////////////////////////////////////// -/// Set a sound loop state -//////////////////////////////////////////////////////////// -void sfSound_SetLoop(sfSound* sound, sfBool loop) -{ - CSFML_CALL(sound, SetLoop(loop == sfTrue)) -} - - -//////////////////////////////////////////////////////////// -/// Tell whether or not a sound is looping -//////////////////////////////////////////////////////////// -sfBool sfSound_GetLoop(const sfSound* sound) -{ - CSFML_CALL_RETURN(sound, GetLoop(), sfFalse) -} - - -//////////////////////////////////////////////////////////// -/// Get the status of a sound (stopped, paused, playing) -//////////////////////////////////////////////////////////// -sfSoundStatus sfSound_GetStatus(const sfSound* sound) -{ - CSFML_CHECK_RETURN(sound, sfStopped); - - return static_cast(sound->This.GetStatus()); -} - - -//////////////////////////////////////////////////////////// -/// Set the pitch of a sound -//////////////////////////////////////////////////////////// -void sfSound_SetPitch(sfSound* sound, float pitch) -{ - CSFML_CALL(sound, SetPitch(pitch)) -} - - -//////////////////////////////////////////////////////////// -/// Set the volume of a sound -//////////////////////////////////////////////////////////// -void sfSound_SetVolume(sfSound* sound, float volume) -{ - CSFML_CALL(sound, SetVolume(volume)) -} - - -//////////////////////////////////////////////////////////// -/// Set the position of a sound -//////////////////////////////////////////////////////////// -void sfSound_SetPosition(sfSound* sound, float x, float y, float z) -{ - CSFML_CALL(sound, SetPosition(sf::Vector3f(x, y, z))) -} - - -//////////////////////////////////////////////////////////// -/// Make the sound's position relative to the listener's -/// position, or absolute. -/// The default value is false (absolute) -//////////////////////////////////////////////////////////// -void sfSound_SetRelativeToListener(sfSound* sound, sfBool relative) -{ - CSFML_CALL(sound, SetRelativeToListener(relative == sfTrue)); -} - - -//////////////////////////////////////////////////////////// -/// Set the minimum distance - closer than this distance, -/// the listener will hear the sound at its maximum volume. -/// The default minimum distance is 1.0 -//////////////////////////////////////////////////////////// -void sfSound_SetMinDistance(sfSound* sound, float distance) -{ - CSFML_CALL(sound, SetMinDistance(distance)); -} - - -//////////////////////////////////////////////////////////// -/// Set the attenuation factor - the higher the attenuation, the -/// more the sound will be attenuated with distance from listener. -/// The default attenuation factor is 1.0 -//////////////////////////////////////////////////////////// -void sfSound_SetAttenuation(sfSound* sound, float attenuation) -{ - CSFML_CALL(sound, SetAttenuation(attenuation)); -} - - -//////////////////////////////////////////////////////////// -/// Set the current playing position of a sound -//////////////////////////////////////////////////////////// -void sfSound_SetPlayingOffset(sfSound* sound, sfUint32 timeOffset) -{ - CSFML_CALL(sound, SetPlayingOffset(timeOffset)); -} - - -//////////////////////////////////////////////////////////// -/// Get the pitch of a sound -//////////////////////////////////////////////////////////// -float sfSound_GetPitch(const sfSound* sound) -{ - CSFML_CALL_RETURN(sound, GetPitch(), 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the volume of a sound -//////////////////////////////////////////////////////////// -float sfSound_GetVolume(const sfSound* sound) -{ - CSFML_CALL_RETURN(sound, GetVolume(), 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the position of a sound -//////////////////////////////////////////////////////////// -void sfSound_GetPosition(const sfSound* sound, float* x, float* y, float* z) -{ - CSFML_CHECK(sound); - - sf::Vector3f position = sound->This.GetPosition(); - if (x) *x = position.x; - if (y) *y = position.y; - if (z) *z = position.z; -} - - -//////////////////////////////////////////////////////////// -/// Tell if the sound's position is relative to the listener's -/// position, or if it's absolute -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfSound_IsRelativeToListener(const sfSound* sound) -{ - CSFML_CALL_RETURN(sound, IsRelativeToListener(), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Get the minimum distance of a sound -//////////////////////////////////////////////////////////// -float sfSound_GetMinDistance(const sfSound* sound) -{ - CSFML_CALL_RETURN(sound, GetMinDistance(), 0.f); -} - - -//////////////////////////////////////////////////////////// -/// Get the attenuation factor of a sound -//////////////////////////////////////////////////////////// -float sfSound_GetAttenuation(const sfSound* sound) -{ - CSFML_CALL_RETURN(sound, GetAttenuation(), 0.f); -} - - -//////////////////////////////////////////////////////////// -/// Get the current playing position of a sound -//////////////////////////////////////////////////////////// -sfUint32 sfSound_GetPlayingOffset(const sfSound* sound) -{ - CSFML_CALL_RETURN(sound, GetPlayingOffset(), 0) -} diff --git a/bindings/c/src/SFML/Audio/SoundBuffer.cpp b/bindings/c/src/SFML/Audio/SoundBuffer.cpp deleted file mode 100644 index 13157bfd..00000000 --- a/bindings/c/src/SFML/Audio/SoundBuffer.cpp +++ /dev/null @@ -1,157 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new sound buffer and load it from a file -//////////////////////////////////////////////////////////// -sfSoundBuffer* sfSoundBuffer_CreateFromFile(const char* filename) -{ - sfSoundBuffer* buffer = new sfSoundBuffer; - - if (!buffer->This.LoadFromFile(filename)) - { - delete buffer; - buffer = NULL; - } - - return buffer; -} - - -//////////////////////////////////////////////////////////// -/// Create a new sound buffer and load it from a file in memory -//////////////////////////////////////////////////////////// -sfSoundBuffer* sfSoundBuffer_CreateFromMemory(const void* data, size_t sizeInBytes) -{ - sfSoundBuffer* buffer = new sfSoundBuffer; - - if (!buffer->This.LoadFromMemory(data, sizeInBytes)) - { - delete buffer; - buffer = NULL; - } - - return buffer; -} - - -//////////////////////////////////////////////////////////// -/// Create a new sound buffer and load it from an array of -/// samples in memory - assumed format for samples is -/// 16 bits signed integer -//////////////////////////////////////////////////////////// -sfSoundBuffer* sfSoundBuffer_CreateFromSamples(const sfInt16* samples, size_t samplesCount, unsigned int channelsCount, unsigned int sampleRate) -{ - sfSoundBuffer* buffer = new sfSoundBuffer; - - if (!buffer->This.LoadFromSamples(samples, samplesCount, channelsCount, sampleRate)) - { - delete buffer; - buffer = NULL; - } - - return buffer; -} - - -//////////////////////////////////////////////////////////// -/// Copy an existing sound buffer -//////////////////////////////////////////////////////////// -sfSoundBuffer* sfSoundBuffer_Copy(sfSoundBuffer* soundBuffer) -{ - CSFML_CHECK_RETURN(soundBuffer, NULL); - - return new sfSoundBuffer(*soundBuffer); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing sound buffer -//////////////////////////////////////////////////////////// -void sfSoundBuffer_Destroy(sfSoundBuffer* soundBuffer) -{ - delete soundBuffer; -} - - -//////////////////////////////////////////////////////////// -/// Save a sound buffer to a file -//////////////////////////////////////////////////////////// -sfBool sfSoundBuffer_SaveToFile(const sfSoundBuffer* soundBuffer, const char* filename) -{ - CSFML_CALL_RETURN(soundBuffer, SaveToFile(filename), sfFalse) -} - - -//////////////////////////////////////////////////////////// -/// Return the samples contained in a sound buffer -//////////////////////////////////////////////////////////// -const sfInt16* sfSoundBuffer_GetSamples(const sfSoundBuffer* soundBuffer) -{ - CSFML_CALL_RETURN(soundBuffer, GetSamples(), NULL) -} - - -//////////////////////////////////////////////////////////// -/// Return the number of samples contained in a sound buffer -//////////////////////////////////////////////////////////// -size_t sfSoundBuffer_GetSamplesCount(const sfSoundBuffer* soundBuffer) -{ - CSFML_CALL_RETURN(soundBuffer, GetSamplesCount(), 0) -} - - -//////////////////////////////////////////////////////////// -/// Get the sample rate of a sound buffer -//////////////////////////////////////////////////////////// -unsigned int sfSoundBuffer_GetSampleRate(const sfSoundBuffer* soundBuffer) -{ - CSFML_CALL_RETURN(soundBuffer, GetSampleRate(), 0) -} - - -//////////////////////////////////////////////////////////// -/// Return the number of channels of a sound buffer (1 = mono, 2 = stereo, ...) -//////////////////////////////////////////////////////////// -unsigned int sfSoundBuffer_GetChannelsCount(const sfSoundBuffer* soundBuffer) -{ - CSFML_CALL_RETURN(soundBuffer, GetChannelsCount(), 0) -} - - -//////////////////////////////////////////////////////////// -/// Get the duration of a sound buffer -//////////////////////////////////////////////////////////// -sfUint32 sfSoundBuffer_GetDuration(const sfSoundBuffer* soundBuffer) -{ - CSFML_CALL_RETURN(soundBuffer, GetDuration(), 0) -} diff --git a/bindings/c/src/SFML/Audio/SoundBufferRecorder.cpp b/bindings/c/src/SFML/Audio/SoundBufferRecorder.cpp deleted file mode 100644 index 45e06a08..00000000 --- a/bindings/c/src/SFML/Audio/SoundBufferRecorder.cpp +++ /dev/null @@ -1,90 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new sound buffer recorder -//////////////////////////////////////////////////////////// -sfSoundBufferRecorder* sfSoundBufferRecorder_Create(void) -{ - return new sfSoundBufferRecorder; -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing sound buffer recorder -//////////////////////////////////////////////////////////// -void sfSoundBufferRecorder_Destroy(sfSoundBufferRecorder* soundBufferRecorder) -{ - delete soundBufferRecorder; -} - - -//////////////////////////////////////////////////////////// -/// Start the capture. -/// Warning : only one capture can happen at the same time -//////////////////////////////////////////////////////////// -void sfSoundBufferRecorder_Start(sfSoundBufferRecorder* soundBufferRecorder, unsigned int sampleRate) -{ - CSFML_CALL(soundBufferRecorder, Start(sampleRate)); -} - - -//////////////////////////////////////////////////////////// -/// Stop the capture -//////////////////////////////////////////////////////////// -void sfSoundBufferRecorder_Stop(sfSoundBufferRecorder* soundBufferRecorder) -{ - CSFML_CALL(soundBufferRecorder, Stop()); -} - - -//////////////////////////////////////////////////////////// -/// Get the sample rate of a sound buffer recorder -//////////////////////////////////////////////////////////// -unsigned int sfSoundBufferRecorder_GetSampleRate(const sfSoundBufferRecorder* soundBufferRecorder) -{ - CSFML_CALL_RETURN(soundBufferRecorder, GetSampleRate(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Get the sound buffer containing the captured audio data -/// of a sound buffer recorder -//////////////////////////////////////////////////////////// -const sfSoundBuffer* sfSoundBufferRecorder_GetBuffer(const sfSoundBufferRecorder* soundBufferRecorder) -{ - CSFML_CHECK_RETURN(soundBufferRecorder, NULL); - - soundBufferRecorder->SoundBuffer.This = soundBufferRecorder->This.GetBuffer(); - - return &soundBufferRecorder->SoundBuffer; -} diff --git a/bindings/c/src/SFML/Audio/SoundBufferRecorderStruct.h b/bindings/c/src/SFML/Audio/SoundBufferRecorderStruct.h deleted file mode 100644 index 248e1a61..00000000 --- a/bindings/c/src/SFML/Audio/SoundBufferRecorderStruct.h +++ /dev/null @@ -1,45 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SOUNDBUFFERRECORDERSTRUCT_H -#define SFML_SOUNDBUFFERRECORDERSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfSoundBufferRecorder -//////////////////////////////////////////////////////////// -struct sfSoundBufferRecorder -{ - sf::SoundBufferRecorder This; - mutable sfSoundBuffer SoundBuffer; -}; - - -#endif // SFML_SOUNDBUFFERRECORDERSTRUCT_H diff --git a/bindings/c/src/SFML/Audio/SoundBufferStruct.h b/bindings/c/src/SFML/Audio/SoundBufferStruct.h deleted file mode 100644 index 8cadb73e..00000000 --- a/bindings/c/src/SFML/Audio/SoundBufferStruct.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SOUNDBUFFERSTRUCT_H -#define SFML_SOUNDBUFFERSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfSoundBuffer -//////////////////////////////////////////////////////////// -struct sfSoundBuffer -{ - sf::SoundBuffer This; -}; - - -#endif // SFML_SOUNDBUFFERSTRUCT_H diff --git a/bindings/c/src/SFML/Audio/SoundRecorder.cpp b/bindings/c/src/SFML/Audio/SoundRecorder.cpp deleted file mode 100644 index f3f34895..00000000 --- a/bindings/c/src/SFML/Audio/SoundRecorder.cpp +++ /dev/null @@ -1,90 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new sound recorder with callback functions -/// for processing captured samples -//////////////////////////////////////////////////////////// -sfSoundRecorder* sfSoundRecorder_Create(sfSoundRecorderStartCallback onStart, - sfSoundRecorderProcessCallback onProcess, - sfSoundRecorderStopCallback onStop, - void* userData) -{ - return new sfSoundRecorder(onStart, onProcess, onStop, userData); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing sound recorder -//////////////////////////////////////////////////////////// -void sfSoundRecorder_Destroy(sfSoundRecorder* soundRecorder) -{ - delete soundRecorder; -} - - -//////////////////////////////////////////////////////////// -/// Start the capture. -/// Warning : only one capture can happen at the same time -//////////////////////////////////////////////////////////// -void sfSoundRecorder_Start(sfSoundRecorder* soundRecorder, unsigned int sampleRate) -{ - CSFML_CALL(soundRecorder, Start(sampleRate)); -} - - -//////////////////////////////////////////////////////////// -/// Stop the capture -//////////////////////////////////////////////////////////// -void sfSoundRecorder_Stop(sfSoundRecorder* soundRecorder) -{ - CSFML_CALL(soundRecorder, Stop()); -} - - -//////////////////////////////////////////////////////////// -/// Get the sample rate of a sound recorder -//////////////////////////////////////////////////////////// -unsigned int sfSoundRecorder_GetSampleRate(const sfSoundRecorder* soundRecorder) -{ - CSFML_CALL_RETURN(soundRecorder, GetSampleRate(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Tell if the system supports sound capture. -/// If not, this class won't be usable -//////////////////////////////////////////////////////////// -sfBool sfSoundRecorder_IsAvailable(void) -{ - return sf::SoundRecorder::IsAvailable() ? sfTrue : sfFalse; -} diff --git a/bindings/c/src/SFML/Audio/SoundRecorderStruct.h b/bindings/c/src/SFML/Audio/SoundRecorderStruct.h deleted file mode 100644 index 7de0f1ca..00000000 --- a/bindings/c/src/SFML/Audio/SoundRecorderStruct.h +++ /dev/null @@ -1,102 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SOUNDRECORDERSTRUCT_H -#define SFML_SOUNDRECORDERSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -// Helper class implementing the callback forwarding from -// C++ to C in sfSoundRecorder -//////////////////////////////////////////////////////////// -class sfSoundRecorderImpl : public sf::SoundRecorder -{ -public : - - sfSoundRecorderImpl(sfSoundRecorderStartCallback OnStart, - sfSoundRecorderProcessCallback OnProcess, - sfSoundRecorderStopCallback OnStop, - void* UserData) : - myStartCallback (OnStart), - myProcessCallback(OnProcess), - myStopCallback (OnStop), - myUserData (UserData) - { - } - -private : - - virtual bool OnStart() - { - if (myStartCallback) - return myStartCallback(myUserData) == sfTrue; - else - return true; - } - - virtual bool OnProcessSamples(const sf::Int16* Samples, std::size_t SamplesCount) - { - if (myProcessCallback) - return myProcessCallback(Samples, SamplesCount, myUserData) == sfTrue; - else - return true; - } - - virtual void OnStop() - { - if (myStopCallback) - myStopCallback(myUserData); - } - - sfSoundRecorderStartCallback myStartCallback; - sfSoundRecorderProcessCallback myProcessCallback; - sfSoundRecorderStopCallback myStopCallback; - void* myUserData; -}; - - -//////////////////////////////////////////////////////////// -// Internal structure of sfPacket -//////////////////////////////////////////////////////////// -struct sfSoundRecorder -{ - sfSoundRecorder(sfSoundRecorderStartCallback OnStart, - sfSoundRecorderProcessCallback OnProcess, - sfSoundRecorderStopCallback OnStop, - void* UserData) : - This(OnStart, OnProcess, OnStop, UserData) - { - } - - sfSoundRecorderImpl This; -}; - - -#endif // SFML_SOUNDRECORDERSTRUCT_H diff --git a/bindings/c/src/SFML/Audio/SoundStream.cpp b/bindings/c/src/SFML/Audio/SoundStream.cpp deleted file mode 100644 index 6b152f9b..00000000 --- a/bindings/c/src/SFML/Audio/SoundStream.cpp +++ /dev/null @@ -1,265 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new sound stream -//////////////////////////////////////////////////////////// -sfSoundStream* sfSoundStream_Create(sfSoundStreamGetDataCallback onGetData, - sfSoundStreamSeekCallback onSeek, - unsigned int channelsCount, - unsigned int sampleRate, - void* userData) -{ - return new sfSoundStream(onGetData, onSeek, channelsCount, sampleRate, userData); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing sound stream -//////////////////////////////////////////////////////////// -void sfSoundStream_Destroy(sfSoundStream* soundStream) -{ - delete soundStream; -} - - -//////////////////////////////////////////////////////////// -/// Start playing a sound stream -//////////////////////////////////////////////////////////// -void sfSoundStream_Play(sfSoundStream* soundStream) -{ - CSFML_CALL(soundStream, Play()); -} - - -//////////////////////////////////////////////////////////// -/// Pause a sound stream -//////////////////////////////////////////////////////////// -void sfSoundStream_Pause(sfSoundStream* soundStream) -{ - CSFML_CALL(soundStream, Pause()); -} - - -//////////////////////////////////////////////////////////// -/// Stop playing a sound stream -//////////////////////////////////////////////////////////// -void sfSoundStream_Stop(sfSoundStream* soundStream) -{ - CSFML_CALL(soundStream, Stop()); -} - - -//////////////////////////////////////////////////////////// -/// Get the status of a sound stream (stopped, paused, playing) -//////////////////////////////////////////////////////////// -sfSoundStatus sfSoundStream_GetStatus(const sfSoundStream* soundStream) -{ - CSFML_CHECK_RETURN(soundStream, sfStopped); - - return static_cast(soundStream->This.GetStatus()); -} - - -//////////////////////////////////////////////////////////// -/// Return the number of channels of a sound stream -/// (1 = mono, 2 = stereo) -//////////////////////////////////////////////////////////// -unsigned int sfSoundStream_GetChannelsCount(const sfSoundStream* soundStream) -{ - CSFML_CALL_RETURN(soundStream, GetChannelsCount(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Get the sample rate of a sound stream -//////////////////////////////////////////////////////////// -unsigned int sfSoundStream_GetSampleRate(const sfSoundStream* soundStream) -{ - CSFML_CALL_RETURN(soundStream, GetSampleRate(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Set the pitch of a sound stream -//////////////////////////////////////////////////////////// -void sfSoundStream_SetPitch(sfSoundStream* soundStream, float pitch) -{ - CSFML_CALL(soundStream, SetPitch(pitch)); -} - - -//////////////////////////////////////////////////////////// -/// Set the volume of a sound stream -//////////////////////////////////////////////////////////// -void sfSoundStream_SetVolume(sfSoundStream* soundStream, float volume) -{ - CSFML_CALL(soundStream, SetVolume(volume)); -} - - -//////////////////////////////////////////////////////////// -/// Set the position of a sound stream -//////////////////////////////////////////////////////////// -void sfSoundStream_SetPosition(sfSoundStream* soundStream, float x, float y, float z) -{ - CSFML_CALL(soundStream, SetPosition(x, y, z)); -} - - -//////////////////////////////////////////////////////////// -/// Make the sound stream's position relative to the listener's -/// position, or absolute. -/// The default value is false (absolute) -//////////////////////////////////////////////////////////// -void sfSoundStream_SetRelativeToListener(sfSoundStream* soundStream, sfBool relative) -{ - CSFML_CALL(soundStream, SetRelativeToListener(relative == sfTrue)); -} - - -//////////////////////////////////////////////////////////// -/// Set the minimum distance - closer than this distance, -/// the listener will hear the sound stream at its maximum volume. -/// The default minimum distance is 1.0 -//////////////////////////////////////////////////////////// -void sfSoundStream_SetMinDistance(sfSoundStream* soundStream, float distance) -{ - CSFML_CALL(soundStream, SetMinDistance(distance)); -} - - -//////////////////////////////////////////////////////////// -/// Set the attenuation factor - the higher the attenuation, the -/// more the sound stream will be attenuated with distance from listener. -/// The default attenuation factor 1.0 -//////////////////////////////////////////////////////////// -void sfSoundStream_SetAttenuation(sfSoundStream* soundStream, float attenuation) -{ - CSFML_CALL(soundStream, SetAttenuation(attenuation)); -} - - -//////////////////////////////////////////////////////////// -/// Set the current playing position of a stream -//////////////////////////////////////////////////////////// -void sfSoundStream_SetPlayingOffset(sfSoundStream* soundStream, sfUint32 timeOffset) -{ - CSFML_CALL(soundStream, SetPlayingOffset(timeOffset)); -} - - -//////////////////////////////////////////////////////////// -/// Set a stream loop state -//////////////////////////////////////////////////////////// -void sfSoundStream_SetLoop(sfSoundStream* soundStream, sfBool loop) -{ - CSFML_CALL(soundStream, SetLoop(loop == sfTrue)); -} - - -//////////////////////////////////////////////////////////// -/// Get the pitch of a sound stream -//////////////////////////////////////////////////////////// -float sfSoundStream_GetPitch(const sfSoundStream* soundStream) -{ - CSFML_CALL_RETURN(soundStream, GetPitch(), 0.f); -} - - -//////////////////////////////////////////////////////////// -/// Get the volume of a sound stream -//////////////////////////////////////////////////////////// -float sfSoundStream_GetVolume(const sfSoundStream* soundStream) -{ - CSFML_CALL_RETURN(soundStream, GetVolume(), 0.f); -} - - -//////////////////////////////////////////////////////////// -/// Get the position of a sound stream -//////////////////////////////////////////////////////////// -void sfSoundStream_GetPosition(const sfSoundStream* soundStream, float* x, float* y, float* z) -{ - CSFML_CHECK(soundStream); - - sf::Vector3f position = soundStream->This.GetPosition(); - if (x) *x = position.x; - if (y) *y = position.y; - if (z) *z = position.z; -} - - -//////////////////////////////////////////////////////////// -/// Tell if the sound stream's position is relative to the listener's -/// position, or if it's absolute -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfSoundStream_IsRelativeToListener(const sfSoundStream* soundStream) -{ - CSFML_CALL_RETURN(soundStream, IsRelativeToListener(), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Get the minimum distance of a sound stream -//////////////////////////////////////////////////////////// -float sfSoundStream_GetMinDistance(const sfSoundStream* soundStream) -{ - CSFML_CALL_RETURN(soundStream, GetMinDistance(), 0.f); -} - - -//////////////////////////////////////////////////////////// -/// Get the attenuation factor of a sound stream -//////////////////////////////////////////////////////////// -float sfSoundStream_GetAttenuation(const sfSoundStream* soundStream) -{ - CSFML_CALL_RETURN(soundStream, GetAttenuation(), 0.f); -} - - -//////////////////////////////////////////////////////////// -/// Tell whether or not a stream is looping -//////////////////////////////////////////////////////////// -sfBool sfSoundStream_GetLoop(const sfSoundStream* soundStream) -{ - CSFML_CALL_RETURN(soundStream, GetLoop(), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Get the current playing position of a sound stream -//////////////////////////////////////////////////////////// -sfUint32 sfSoundStream_GetPlayingOffset(const sfSoundStream* soundStream) -{ - CSFML_CALL_RETURN(soundStream, GetPlayingOffset(), 0); -} diff --git a/bindings/c/src/SFML/Audio/SoundStreamStruct.h b/bindings/c/src/SFML/Audio/SoundStreamStruct.h deleted file mode 100644 index dba54774..00000000 --- a/bindings/c/src/SFML/Audio/SoundStreamStruct.h +++ /dev/null @@ -1,97 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SOUNDSTREAMSTRUCT_H -#define SFML_SOUNDSTREAMSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Helper class implementing the callback forwarding from -// C++ to C in sfSoundStream -//////////////////////////////////////////////////////////// -class sfSoundStreamImpl : public sf::SoundStream -{ -public : - - sfSoundStreamImpl(sfSoundStreamGetDataCallback OnGetData, - sfSoundStreamSeekCallback OnSeek, - unsigned int ChannelsCount, - unsigned int SampleRate, - void* UserData) : - myGetDataCallback(OnGetData), - mySeekCallback (OnSeek), - myUserData (UserData) - { - Initialize(ChannelsCount, SampleRate); - } - -private : - - virtual bool OnGetData(Chunk& Data) - { - sfSoundStreamChunk Chunk = {NULL, 0}; - bool Continue = (myGetDataCallback(&Chunk, myUserData) == sfTrue); - - Data.Samples = Chunk.Samples; - Data.NbSamples = Chunk.NbSamples; - - return Continue; - } - - virtual void OnSeek(sfUint32 TimeOffset) - { - if (mySeekCallback) - mySeekCallback(TimeOffset, myUserData); - } - - sfSoundStreamGetDataCallback myGetDataCallback; - sfSoundStreamSeekCallback mySeekCallback; - void* myUserData; -}; - - -//////////////////////////////////////////////////////////// -// Internal structure of sfSoundStream -//////////////////////////////////////////////////////////// -struct sfSoundStream -{ - sfSoundStream(sfSoundStreamGetDataCallback OnGetData, - sfSoundStreamSeekCallback OnSeek, - unsigned int ChannelsCount, - unsigned int SampleRate, - void* UserData) : - This(OnGetData, OnSeek, ChannelsCount, SampleRate, UserData) - { - } - - sfSoundStreamImpl This; -}; - - -#endif // SFML_SOUNDSTREAMSTRUCT_H diff --git a/bindings/c/src/SFML/Audio/SoundStruct.h b/bindings/c/src/SFML/Audio/SoundStruct.h deleted file mode 100644 index d0850680..00000000 --- a/bindings/c/src/SFML/Audio/SoundStruct.h +++ /dev/null @@ -1,45 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SOUNDSTRUCT_H -#define SFML_SOUNDSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfSound -//////////////////////////////////////////////////////////// -struct sfSound -{ - sf::Sound This; - const sfSoundBuffer* Buffer; -}; - - -#endif // SFML_SOUNDSTRUCT_H diff --git a/bindings/c/src/SFML/CMakeLists.txt b/bindings/c/src/SFML/CMakeLists.txt deleted file mode 100644 index 7fcfc49f..00000000 --- a/bindings/c/src/SFML/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ - -# include the SFML specific macros -include(${CMAKE_SOURCE_DIR}/cmake/Macros.cmake) - -# add the CSFML sources path -include_directories(${CMAKE_SOURCE_DIR}/src) - -# define the path of our additional CMake modules -set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules/") - -# set the output directory for CSFML libraries -set(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}/lib") - -# define the export symbol -add_definitions(-DCSFML_EXPORTS) - -# find SFML libraries (C++) -if(WINDOWS) - set(SFML_STATIC_LIBRARIES TRUE) - add_definitions(-DSFML_STATIC) -endif() -find_package(SFML 2.0 COMPONENTS system window network graphics audio REQUIRED) -include_directories(${SFML_INCLUDE_DIR}) - -# add the modules subdirectories -add_subdirectory(System) -add_subdirectory(Window) -add_subdirectory(Network) -add_subdirectory(Graphics) -add_subdirectory(Audio) -if(WINDOWS) - add_subdirectory(Main) -endif() diff --git a/bindings/c/src/SFML/ConvertEvent.h b/bindings/c/src/SFML/ConvertEvent.h deleted file mode 100644 index a248b377..00000000 --- a/bindings/c/src/SFML/ConvertEvent.h +++ /dev/null @@ -1,107 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_CONVERTEVENT_H -#define SFML_CONVERTEVENT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -// Define a function to convert a sf::Event ot a sfEvent -//////////////////////////////////////////////////////////// -inline void ConvertEvent(const sf::Event& SFMLEvent, sfEvent* event) -{ - // Convert its type - event->Type = static_cast(SFMLEvent.Type); - - // Fill its fields - switch (event->Type) - { - case sfEvtResized : - event->Size.Width = SFMLEvent.Size.Width; - event->Size.Height = SFMLEvent.Size.Height; - break; - - case sfEvtTextEntered : - event->Text.Unicode = SFMLEvent.Text.Unicode; - break; - - case sfEvtKeyReleased : - case sfEvtKeyPressed : - event->Key.Code = static_cast(SFMLEvent.Key.Code); - event->Key.Alt = SFMLEvent.Key.Alt ? sfTrue : sfFalse; - event->Key.Control = SFMLEvent.Key.Control ? sfTrue : sfFalse; - event->Key.Shift = SFMLEvent.Key.Shift ? sfTrue : sfFalse; - event->Key.System = SFMLEvent.Key.System ? sfTrue : sfFalse; - break; - - case sfEvtMouseWheelMoved : - event->MouseWheel.Delta = SFMLEvent.MouseWheel.Delta; - event->MouseWheel.X = SFMLEvent.MouseWheel.X; - event->MouseWheel.Y = SFMLEvent.MouseWheel.Y; - break; - - case sfEvtMouseButtonPressed : - case sfEvtMouseButtonReleased : - event->MouseButton.Button = static_cast(SFMLEvent.MouseButton.Button); - event->MouseButton.X = SFMLEvent.MouseButton.X; - event->MouseButton.Y = SFMLEvent.MouseButton.Y; - break; - - case sfEvtMouseMoved : - event->MouseMove.X = SFMLEvent.MouseMove.X; - event->MouseMove.Y = SFMLEvent.MouseMove.Y; - break; - - case sfEvtJoystickButtonPressed : - case sfEvtJoystickButtonReleased : - event->JoystickButton.JoystickId = SFMLEvent.JoystickButton.JoystickId; - event->JoystickButton.Button = SFMLEvent.JoystickButton.Button; - break; - - case sfEvtJoystickMoved : - event->JoystickMove.JoystickId = SFMLEvent.JoystickMove.JoystickId; - event->JoystickMove.Axis = static_cast(SFMLEvent.JoystickMove.Axis); - event->JoystickMove.Position = SFMLEvent.JoystickMove.Position; - break; - - case sfEvtJoystickConnected : - event->JoystickConnect.JoystickId = SFMLEvent.JoystickConnect.JoystickId; - break; - - case sfEvtJoystickDisconnected : - event->JoystickConnect.JoystickId = SFMLEvent.JoystickConnect.JoystickId; - break; - - default : - break; - } -} - -#endif // SFML_CONVERTEVENT_H diff --git a/bindings/c/src/SFML/Graphics/CMakeLists.txt b/bindings/c/src/SFML/Graphics/CMakeLists.txt deleted file mode 100644 index bcb54ffd..00000000 --- a/bindings/c/src/SFML/Graphics/CMakeLists.txt +++ /dev/null @@ -1,46 +0,0 @@ - -set(INCROOT ${CMAKE_SOURCE_DIR}/include/SFML/Graphics) -set(SRCROOT ${CMAKE_SOURCE_DIR}/src/SFML/Graphics) - -# all source files -set(SRC - ${INCROOT}/BlendMode.h - ${SRCROOT}/Color.cpp - ${INCROOT}/Color.h - ${SRCROOT}/Font.cpp - ${SRCROOT}/FontStruct.h - ${INCROOT}/Font.h - ${INCROOT}/Glyph.h - ${SRCROOT}/Image.cpp - ${SRCROOT}/ImageStruct.h - ${INCROOT}/Image.h - ${SRCROOT}/Rect.cpp - ${INCROOT}/Rect.h - ${SRCROOT}/RenderImage.cpp - ${SRCROOT}/RenderImageStruct.h - ${INCROOT}/RenderImage.h - ${SRCROOT}/RenderWindow.cpp - ${SRCROOT}/RenderWindowStruct.h - ${INCROOT}/RenderWindow.h - ${SRCROOT}/Shader.cpp - ${SRCROOT}/ShaderStruct.h - ${INCROOT}/Shader.h - ${SRCROOT}/Shape.cpp - ${SRCROOT}/ShapeStruct.h - ${INCROOT}/Shape.h - ${SRCROOT}/Sprite.cpp - ${SRCROOT}/SpriteStruct.h - ${INCROOT}/Sprite.h - ${SRCROOT}/Text.cpp - ${SRCROOT}/TextStruct.h - ${INCROOT}/Text.h - ${INCROOT}/Types.h - ${SRCROOT}/View.cpp - ${SRCROOT}/ViewStruct.h - ${INCROOT}/View.h -) - -# define the csfml-graphics target -csfml_add_library(csfml-graphics - SOURCES ${SRC} - DEPENDS ${SFML_GRAPHICS_LIBRARY} ${SFML_WINDOW_LIBRARY} ${SFML_SYSTEM_LIBRARY}) diff --git a/bindings/c/src/SFML/Graphics/Color.cpp b/bindings/c/src/SFML/Graphics/Color.cpp deleted file mode 100644 index 11dc537c..00000000 --- a/bindings/c/src/SFML/Graphics/Color.cpp +++ /dev/null @@ -1,102 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Define some common colors -//////////////////////////////////////////////////////////// -sfColor sfBlack = sfColor_FromRGB( 0, 0, 0); -sfColor sfWhite = sfColor_FromRGB(255, 255, 255); -sfColor sfRed = sfColor_FromRGB(255, 0, 0); -sfColor sfGreen = sfColor_FromRGB( 0, 255, 0); -sfColor sfBlue = sfColor_FromRGB( 0, 0, 255); -sfColor sfYellow = sfColor_FromRGB(255, 255, 0); -sfColor sfMagenta = sfColor_FromRGB(255, 0, 255); -sfColor sfCyan = sfColor_FromRGB( 0, 255, 255); - - -//////////////////////////////////////////////////////////// -/// Construct a color from its 3 RGB components -//////////////////////////////////////////////////////////// -sfColor sfColor_FromRGB(sfUint8 red, sfUint8 green, sfUint8 blue) -{ - return sfColor_FromRGBA(red, green, blue, 255); -} - - -//////////////////////////////////////////////////////////// -/// Construct a color from its 4 RGBA components -//////////////////////////////////////////////////////////// -sfColor sfColor_FromRGBA(sfUint8 red, sfUint8 green, sfUint8 blue, sfUint8 alpha) -{ - sfColor color; - - color.r = red; - color.g = green; - color.b = blue; - color.a = alpha; - - return color; -} - - -//////////////////////////////////////////////////////////// -/// Add two colors -//////////////////////////////////////////////////////////// -sfColor sfColor_Add(sfColor color1, sfColor color2) -{ - int red = std::min(color1.r + color2.r, 255); - int green = std::min(color1.g + color2.g, 255); - int blue = std::min(color1.b + color2.b, 255); - int alpha = std::min(color1.a + color2.a, 255); - - return sfColor_FromRGBA(static_cast(red), - static_cast(green), - static_cast(blue), - static_cast(alpha)); -} - - -//////////////////////////////////////////////////////////// -/// Modulate two colors -//////////////////////////////////////////////////////////// -sfColor sfColor_Modulate(sfColor color1, sfColor color2) -{ - int red = color1.r * color2.r / 255; - int green = color1.g * color2.g / 255; - int blue = color1.b * color2.b / 255; - int alpha = color1.a * color2.a / 255; - - return sfColor_FromRGBA(static_cast(red), - static_cast(green), - static_cast(blue), - static_cast(alpha)); -} diff --git a/bindings/c/src/SFML/Graphics/Font.cpp b/bindings/c/src/SFML/Graphics/Font.cpp deleted file mode 100644 index e489fcab..00000000 --- a/bindings/c/src/SFML/Graphics/Font.cpp +++ /dev/null @@ -1,148 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new font from a file -//////////////////////////////////////////////////////////// -sfFont* sfFont_CreateFromFile(const char* filename) -{ - sfFont* font = new sfFont; - if (!font->This.LoadFromFile(filename)) - { - delete font; - font = NULL; - } - - return font; -} - - -//////////////////////////////////////////////////////////// -/// Create a new font from a file in memory -//////////////////////////////////////////////////////////// -sfFont* sfFont_CreateFromMemory(const void* data, size_t sizeInBytes) -{ - sfFont* font = new sfFont; - if (!font->This.LoadFromMemory(data, sizeInBytes)) - { - delete font; - font = NULL; - } - - return font; -} - - -//////////////////////////////////////////////////////////// -/// Copy an existing font -//////////////////////////////////////////////////////////// -sfFont* sfFont_Copy(sfFont* font) -{ - CSFML_CHECK_RETURN(font, NULL); - - return new sfFont(*font); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing font -//////////////////////////////////////////////////////////// -void sfFont_Destroy(sfFont* font) -{ - delete font; -} - - -//////////////////////////////////////////////////////////// -/// Get a glyph in a font -//////////////////////////////////////////////////////////// -sfGlyph sfFont_GetGlyph(sfFont* font, sfUint32 codePoint, unsigned int characterSize, sfBool bold) -{ - sfGlyph glyph = {0, {0, 0, 0, 0}, {0, 0, 0, 0}}; - CSFML_CHECK_RETURN(font, glyph); - - sf::Glyph SFMLGlyph = font->This.GetGlyph(codePoint, characterSize, bold == sfTrue); - - glyph.Advance = SFMLGlyph.Advance; - glyph.Bounds.Left = SFMLGlyph.Bounds.Left; - glyph.Bounds.Top = SFMLGlyph.Bounds.Top; - glyph.Bounds.Width = SFMLGlyph.Bounds.Width; - glyph.Bounds.Height = SFMLGlyph.Bounds.Height; - glyph.SubRect.Left = SFMLGlyph.SubRect.Left; - glyph.SubRect.Top = SFMLGlyph.SubRect.Top; - glyph.SubRect.Width = SFMLGlyph.SubRect.Width; - glyph.SubRect.Height = SFMLGlyph.SubRect.Height; - - return glyph; -} - - -//////////////////////////////////////////////////////////// -/// Get the kerning value corresponding to a given pair of characters in a font -//////////////////////////////////////////////////////////// -int sfFont_GetKerning(sfFont* font, sfUint32 first, sfUint32 second, unsigned int characterSize) -{ - CSFML_CALL_RETURN(font, GetKerning(first, second, characterSize), 0); -} - - -//////////////////////////////////////////////////////////// -/// Get the line spacing value -//////////////////////////////////////////////////////////// -int sfFont_GetLineSpacing(sfFont* font, unsigned int characterSize) -{ - CSFML_CALL_RETURN(font, GetLineSpacing(characterSize), 0); -} - - -//////////////////////////////////////////////////////////// -/// Get the image containing the glyphs of a given size in a font -//////////////////////////////////////////////////////////// -const sfImage* sfFont_GetImage(sfFont* font, unsigned int characterSize) -{ - CSFML_CHECK_RETURN(font, NULL); - - *font->Images[characterSize].This = font->This.GetImage(characterSize); - - return &font->Images[characterSize]; -} - - -//////////////////////////////////////////////////////////// -/// Get the built-in default font (Arial) -//////////////////////////////////////////////////////////// -const sfFont* sfFont_GetDefaultFont(void) -{ - static sfFont defaultFont = {sf::Font::GetDefaultFont(), std::map()}; - - return &defaultFont; -} diff --git a/bindings/c/src/SFML/Graphics/FontStruct.h b/bindings/c/src/SFML/Graphics/FontStruct.h deleted file mode 100644 index 019ea773..00000000 --- a/bindings/c/src/SFML/Graphics/FontStruct.h +++ /dev/null @@ -1,46 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_FONTSTRUCT_H -#define SFML_FONTSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfFont -//////////////////////////////////////////////////////////// -struct sfFont -{ - sf::Font This; - std::map Images; -}; - - -#endif // SFML_FONTSTRUCT_H diff --git a/bindings/c/src/SFML/Graphics/Image.cpp b/bindings/c/src/SFML/Graphics/Image.cpp deleted file mode 100644 index 9f088982..00000000 --- a/bindings/c/src/SFML/Graphics/Image.cpp +++ /dev/null @@ -1,254 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new image filled with a color -//////////////////////////////////////////////////////////// -sfImage* sfImage_CreateFromColor(unsigned int width, unsigned int height, sfColor color) -{ - sfImage* image = new sfImage; - - if (!image->This->Create(width, height, sf::Color(color.r, color.g, color.b, color.a))) - { - delete image; - image = NULL; - } - - return image; -} - - -//////////////////////////////////////////////////////////// -/// Create a new image from an array of pixels in memory -//////////////////////////////////////////////////////////// -sfImage* sfImage_CreateFromPixels(unsigned int width, unsigned int height, const sfUint8* data) -{ - sfImage* image = new sfImage; - - if (!image->This->LoadFromPixels(width, height, data)) - { - delete image; - image = NULL; - } - - return image; -} - - -//////////////////////////////////////////////////////////// -/// Create a new image from a file -//////////////////////////////////////////////////////////// -sfImage* sfImage_CreateFromFile(const char* filename) -{ - sfImage* image = new sfImage; - - if (!image->This->LoadFromFile(filename)) - { - delete image; - image = NULL; - } - - return image; -} - - -//////////////////////////////////////////////////////////// -/// Create a new image from a file in memory -//////////////////////////////////////////////////////////// -sfImage* sfImage_CreateFromMemory(const void* data, size_t sizeInBytes) -{ - sfImage* image = new sfImage; - - if (!image->This->LoadFromMemory(data, sizeInBytes)) - { - delete image; - image = NULL; - } - - return image; -} - - -//////////////////////////////////////////////////////////// -/// Copy an existing image -//////////////////////////////////////////////////////////// -sfImage* sfImage_Copy(sfImage* image) -{ - CSFML_CHECK_RETURN(image, NULL); - - return new sfImage(*image); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing image -//////////////////////////////////////////////////////////// -void sfImage_Destroy(sfImage* image) -{ - delete image; -} - - -//////////////////////////////////////////////////////////// -/// Save the content of an image to a file -//////////////////////////////////////////////////////////// -sfBool sfImage_SaveToFile(const sfImage* image, const char* filename) -{ - CSFML_CALL_PTR_RETURN(image, SaveToFile(filename), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Create a transparency mask for an image from a specified colorkey -//////////////////////////////////////////////////////////// -void sfImage_CreateMaskFromColor(sfImage* image, sfColor colorKey, sfUint8 alpha) -{ - sf::Color SFMLColor(colorKey.r, colorKey.g, colorKey.b, colorKey.a); - CSFML_CALL_PTR(image, CreateMaskFromColor(SFMLColor, alpha)); -} - - -//////////////////////////////////////////////////////////// -/// Copy pixels from another image onto this one. -/// This function does a slow pixel copy and should only -/// be used at initialization time -//////////////////////////////////////////////////////////// -void sfImage_CopyImage(sfImage* image, const sfImage* source, unsigned int destX, unsigned int destY, sfIntRect sourceRect) -{ - CSFML_CHECK(source); - sf::IntRect SFMLRect(sourceRect.Left, sourceRect.Top, sourceRect.Width, sourceRect.Height); - CSFML_CALL_PTR(image, Copy(*source->This, destX, destY, SFMLRect)); -} - - -//////////////////////////////////////////////////////////// -/// Create the image from the current contents of the -/// given window -//////////////////////////////////////////////////////////// -CSFML_API sfBool sfImage_CopyScreen(sfImage* image, sfRenderWindow* window, sfIntRect sourceRect) -{ - CSFML_CHECK_RETURN(window, sfFalse); - sf::IntRect SFMLRect(sourceRect.Left, sourceRect.Top, sourceRect.Width, sourceRect.Height); - CSFML_CALL_PTR_RETURN(image, CopyScreen(window->This, SFMLRect), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Change the color of a pixel of an image -/// Don't forget to call Update when you end modifying pixels -//////////////////////////////////////////////////////////// -void sfImage_SetPixel(sfImage* image, unsigned int x, unsigned int y, sfColor color) -{ - sf::Color SFMLColor(color.r, color.g, color.b, color.a); - CSFML_CALL_PTR(image, SetPixel(x, y, SFMLColor)); -} - - -//////////////////////////////////////////////////////////// -/// Get a pixel from an image -//////////////////////////////////////////////////////////// -sfColor sfImage_GetPixel(const sfImage* image, unsigned int x, unsigned int y) -{ - sfColor color = {0, 0, 0, 0}; - CSFML_CHECK_RETURN(image, color); - - sf::Color SFMLColor = image->This->GetPixel(x, y); - - return sfColor_FromRGBA(SFMLColor.r, SFMLColor.g, SFMLColor.b, SFMLColor.a); -} - - -//////////////////////////////////////////////////////////// -/// Get a read-only pointer to the array of pixels of an image (8 bits integers RGBA) -/// Array size is sfImage_GetWidth() x sfImage_GetHeight() x 4 -/// This pointer becomes invalid if you reload or resize the image -//////////////////////////////////////////////////////////// -const sfUint8* sfImage_GetPixelsPtr(const sfImage* image) -{ - CSFML_CALL_PTR_RETURN(image, GetPixelsPtr(), NULL); -} - - -//////////////////////////////////////////////////////////// -/// Update a sub-rectangle of the image from an array of pixels -//////////////////////////////////////////////////////////// -void sfImage_UpdatePixels(const sfImage* image, const sfUint8* pixels, sfIntRect rectangle) -{ - sf::IntRect rect(rectangle.Left, rectangle.Top, rectangle.Width, rectangle.Height); - CSFML_CALL_PTR(image, UpdatePixels(pixels, rect)); -} - - -//////////////////////////////////////////////////////////// -/// Bind the image for rendering -//////////////////////////////////////////////////////////// -void sfImage_Bind(const sfImage* image) -{ - CSFML_CALL_PTR(image, Bind()); -} - - -//////////////////////////////////////////////////////////// -/// Enable or disable image smooth filter -//////////////////////////////////////////////////////////// -void sfImage_SetSmooth(sfImage* image, sfBool smooth) -{ - CSFML_CALL_PTR(image, SetSmooth(smooth == sfTrue)); -} - - -//////////////////////////////////////////////////////////// -/// Return the width of the image -//////////////////////////////////////////////////////////// -unsigned int sfImage_GetWidth(const sfImage* image) -{ - CSFML_CALL_PTR_RETURN(image, GetWidth(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Return the height of the image -//////////////////////////////////////////////////////////// -unsigned int sfImage_GetHeight(const sfImage* image) -{ - CSFML_CALL_PTR_RETURN(image, GetHeight(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Tells whether the smoothing filter is enabled or not on an image -//////////////////////////////////////////////////////////// -sfBool sfImage_IsSmooth(const sfImage* image) -{ - CSFML_CALL_PTR_RETURN(image, IsSmooth(), sfFalse); -} diff --git a/bindings/c/src/SFML/Graphics/ImageStruct.h b/bindings/c/src/SFML/Graphics/ImageStruct.h deleted file mode 100644 index d0032680..00000000 --- a/bindings/c/src/SFML/Graphics/ImageStruct.h +++ /dev/null @@ -1,68 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_IMAGESTRUCT_H -#define SFML_IMAGESTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfImage -//////////////////////////////////////////////////////////// -struct sfImage -{ - sfImage() - { - This = new sf::Image; - OwnInstance = true; - } - - sfImage(sf::Image* image) - { - This = image; - OwnInstance = false; - } - - sfImage(const sfImage& image) - { - This = image.This ? new sf::Image(*image.This) : NULL; - OwnInstance = true; - } - - ~sfImage() - { - if (OwnInstance) - delete This; - } - - sf::Image* This; - bool OwnInstance; -}; - - -#endif // SFML_IMAGESTRUCT_H diff --git a/bindings/c/src/SFML/Graphics/Rect.cpp b/bindings/c/src/SFML/Graphics/Rect.cpp deleted file mode 100644 index 4061315b..00000000 --- a/bindings/c/src/SFML/Graphics/Rect.cpp +++ /dev/null @@ -1,100 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Check if a point is inside a rectangle's area -//////////////////////////////////////////////////////////// -sfBool sfFloatRect_Contains(const sfFloatRect* rect, float x, float y) -{ - CSFML_CHECK_RETURN(rect, sfFalse) - return sf::FloatRect(rect->Left, rect->Top, rect->Width, rect->Height).Contains(x, y); -} -sfBool sfIntRect_Contains(const sfIntRect* rect, int x, int y) -{ - CSFML_CHECK_RETURN(rect, sfFalse) - return sf::IntRect(rect->Left, rect->Top, rect->Width, rect->Height).Contains(x, y); -} - - -//////////////////////////////////////////////////////////// -/// Check intersection between two rectangles -//////////////////////////////////////////////////////////// -sfBool sfFloatRect_Intersects(const sfFloatRect* rect1, const sfFloatRect* rect2, sfFloatRect* intersection) -{ - CSFML_CHECK_RETURN(rect1, sfFalse) - CSFML_CHECK_RETURN(rect2, sfFalse) - - sf::FloatRect SFMLRect1(rect1->Left, rect1->Top, rect1->Width, rect1->Height); - sf::FloatRect SFMLRect2(rect2->Left, rect2->Top, rect2->Width, rect2->Height); - - if (intersection) - { - sf::FloatRect overlap; - bool intersects = SFMLRect1.Intersects(SFMLRect2, overlap); - - intersection->Left = overlap.Left; - intersection->Top = overlap.Top; - intersection->Width = overlap.Width; - intersection->Height = overlap.Height; - - return intersects; - } - else - { - return SFMLRect1.Intersects(SFMLRect2); - } -} -sfBool sfIntRect_Intersects(const sfIntRect* rect1, const sfIntRect* rect2, sfIntRect* intersection) -{ - CSFML_CHECK_RETURN(rect1, sfFalse) - CSFML_CHECK_RETURN(rect2, sfFalse) - - sf::IntRect SFMLRect1(rect1->Left, rect1->Top, rect1->Width, rect1->Height); - sf::IntRect SFMLRect2(rect2->Left, rect2->Top, rect2->Width, rect2->Height); - - if (intersection) - { - sf::IntRect overlap; - bool intersects = SFMLRect1.Intersects(SFMLRect2, overlap); - - intersection->Left = overlap.Left; - intersection->Top = overlap.Top; - intersection->Width = overlap.Width; - intersection->Height = overlap.Height; - - return intersects; - } - else - { - return SFMLRect1.Intersects(SFMLRect2); - } -} diff --git a/bindings/c/src/SFML/Graphics/RenderImage.cpp b/bindings/c/src/SFML/Graphics/RenderImage.cpp deleted file mode 100644 index 92f46d08..00000000 --- a/bindings/c/src/SFML/Graphics/RenderImage.cpp +++ /dev/null @@ -1,248 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new renderimage -//////////////////////////////////////////////////////////// -sfRenderImage* sfRenderImage_Create(unsigned int width, unsigned int height, sfBool depthBuffer) -{ - sfRenderImage* renderImage = new sfRenderImage; - renderImage->This.Create(width, height, depthBuffer == sfTrue); - renderImage->Target = new sfImage(const_cast(&renderImage->This.GetImage())); - renderImage->DefaultView.This = renderImage->This.GetDefaultView(); - renderImage->CurrentView.This = renderImage->This.GetView(); - - return renderImage; -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing renderimage -//////////////////////////////////////////////////////////// -void sfRenderImage_Destroy(sfRenderImage* renderImage) -{ - delete renderImage->Target; - delete renderImage; -} - - -//////////////////////////////////////////////////////////// -/// Get the width of the rendering region of a renderimage -//////////////////////////////////////////////////////////// -unsigned int sfRenderImage_GetWidth(const sfRenderImage* renderImage) -{ - CSFML_CALL_RETURN(renderImage, GetWidth(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Get the height of the rendering region of a renderimage -//////////////////////////////////////////////////////////// -unsigned int sfRenderImage_GetHeight(const sfRenderImage* renderImage) -{ - CSFML_CALL_RETURN(renderImage, GetHeight(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Set a renderimage as the current target for rendering -//////////////////////////////////////////////////////////// -sfBool sfRenderImage_SetActive(sfRenderImage* renderImage, sfBool active) -{ - CSFML_CALL_RETURN(renderImage, SetActive(active == sfTrue), sfFalse) -} - - -//////////////////////////////////////////////////////////// -/// Save the current OpenGL render states and matrices -//////////////////////////////////////////////////////////// -void sfRenderImage_SaveGLStates(sfRenderImage* renderImage) -{ - CSFML_CALL(renderImage, SaveGLStates()); -} - - -//////////////////////////////////////////////////////////// -/// Restore the previously saved OpenGL render states and matrices -//////////////////////////////////////////////////////////// -void sfRenderImage_RestoreGLStates(sfRenderImage* renderImage) -{ - CSFML_CALL(renderImage, RestoreGLStates()); -} - - -//////////////////////////////////////////////////////////// -/// Update the contents of the target image -//////////////////////////////////////////////////////////// -void sfRenderImage_Display(sfRenderImage* renderImage) -{ - CSFML_CALL(renderImage, Display()) -} - - -//////////////////////////////////////////////////////////// -/// Draw something on a renderimage -//////////////////////////////////////////////////////////// -void sfRenderImage_DrawSprite(sfRenderImage* renderImage, const sfSprite* sprite) -{ - CSFML_CHECK(sprite); - CSFML_CALL(renderImage, Draw(sprite->This)); -} -void sfRenderImage_DrawShape(sfRenderImage* renderImage, const sfShape* shape) -{ - CSFML_CHECK(shape); - CSFML_CALL(renderImage, Draw(shape->This)); -} -void sfRenderImage_DrawText(sfRenderImage* renderImage, const sfText* text) -{ - CSFML_CHECK(text); - CSFML_CALL(renderImage, Draw(text->This)); -} - - -//////////////////////////////////////////////////////////// -/// Draw something on a renderimage with a shader -//////////////////////////////////////////////////////////// -void sfRenderImage_DrawSpriteWithShader(sfRenderImage* renderImage, const sfSprite* sprite, const sfShader* shader) -{ - CSFML_CHECK(sprite); - CSFML_CHECK(shader); - CSFML_CALL(renderImage, Draw(sprite->This, shader->This)); -} -void sfRenderImage_DrawShapeWithShader(sfRenderImage* renderImage, const sfShape* shape, const sfShader* shader) -{ - CSFML_CHECK(shape); - CSFML_CHECK(shader); - CSFML_CALL(renderImage, Draw(shape->This, shader->This)); -} -void sfRenderImage_DrawTextWithShader(sfRenderImage* renderImage, const sfText* text, const sfShader* shader) -{ - CSFML_CHECK(text); - CSFML_CHECK(shader); - CSFML_CALL(renderImage, Draw(text->This, shader->This)); -} - - -//////////////////////////////////////////////////////////// -/// Clear the renderimage with the given color -//////////////////////////////////////////////////////////// -void sfRenderImage_Clear(sfRenderImage* renderImage, sfColor color) -{ - sf::Color SFMLColor(color.r, color.g, color.b, color.a); - - CSFML_CALL(renderImage, Clear(SFMLColor)); -} - - -//////////////////////////////////////////////////////////// -/// Change the current active view of a renderimage -//////////////////////////////////////////////////////////// -void sfRenderImage_SetView(sfRenderImage* renderImage, const sfView* view) -{ - CSFML_CHECK(view); - CSFML_CALL(renderImage, SetView(view->This)); - renderImage->CurrentView.This = view->This; -} - - -//////////////////////////////////////////////////////////// -/// Get the current active view of a renderimage -//////////////////////////////////////////////////////////// -const sfView* sfRenderImage_GetView(const sfRenderImage* renderImage) -{ - CSFML_CHECK_RETURN(renderImage, NULL); - - return &renderImage->CurrentView; -} - - -//////////////////////////////////////////////////////////// -/// Get the default view of a renderimage -//////////////////////////////////////////////////////////// -const sfView* sfRenderImage_GetDefaultView(const sfRenderImage* renderImage) -{ - CSFML_CHECK_RETURN(renderImage, NULL); - - return &renderImage->DefaultView; -} - - -//////////////////////////////////////////////////////////// -/// Get the viewport of a view applied to this target -//////////////////////////////////////////////////////////// -sfIntRect sfRenderImage_GetViewport(const sfRenderImage* renderImage, const sfView* view) -{ - sfIntRect rect = {0, 0, 0, 0}; - CSFML_CHECK_RETURN(view, rect); - CSFML_CHECK_RETURN(renderImage, rect); - - sf::IntRect SFMLrect = renderImage->This.GetViewport(view->This); - rect.Left = SFMLrect.Left; - rect.Top = SFMLrect.Top; - rect.Width = SFMLrect.Width; - rect.Height = SFMLrect.Height; - - return rect; -} - - -//////////////////////////////////////////////////////////// -/// Convert a point in image coordinates into view coordinates -//////////////////////////////////////////////////////////// -void sfRenderImage_ConvertCoords(const sfRenderImage* renderImage, unsigned int imageX, unsigned int imageY, float* viewX, float* viewY, const sfView* targetView) -{ - CSFML_CHECK(renderImage); - - sf::Vector2f point; - if (targetView) - point = renderImage->This.ConvertCoords(imageX, imageY, targetView->This); - else - point = renderImage->This.ConvertCoords(imageX, imageY); - - if (viewX) *viewX = point.x; - if (viewY) *viewY = point.y; -} - - -//////////////////////////////////////////////////////////// -/// Get the target image -//////////////////////////////////////////////////////////// -const sfImage* sfRenderImage_GetImage(const sfRenderImage* renderImage) -{ - CSFML_CHECK_RETURN(renderImage, NULL); - - return renderImage->Target; -} diff --git a/bindings/c/src/SFML/Graphics/RenderImageStruct.h b/bindings/c/src/SFML/Graphics/RenderImageStruct.h deleted file mode 100644 index 452c5212..00000000 --- a/bindings/c/src/SFML/Graphics/RenderImageStruct.h +++ /dev/null @@ -1,48 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_RENDERIMAGESTRUCT_H -#define SFML_RENDERIMAGESTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfRenderWindow -//////////////////////////////////////////////////////////// -struct sfRenderImage -{ - sf::RenderImage This; - const sfImage* Target; - sfView DefaultView; - sfView CurrentView; -}; - - -#endif // SFML_RENDERIMAGESTRUCT_H diff --git a/bindings/c/src/SFML/Graphics/RenderWindow.cpp b/bindings/c/src/SFML/Graphics/RenderWindow.cpp deleted file mode 100644 index 6c266ee3..00000000 --- a/bindings/c/src/SFML/Graphics/RenderWindow.cpp +++ /dev/null @@ -1,481 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new renderwindow -//////////////////////////////////////////////////////////// -sfRenderWindow* sfRenderWindow_Create(sfVideoMode mode, const char* title, unsigned long style, const sfContextSettings* settings) -{ - // Convert video mode - sf::VideoMode videoMode(mode.Width, mode.Height, mode.BitsPerPixel); - - // Convert context settings - sf::ContextSettings params; - if (settings) - { - params.DepthBits = settings->DepthBits; - params.StencilBits = settings->StencilBits; - params.AntialiasingLevel = settings->AntialiasingLevel; - params.MajorVersion = settings->MajorVersion; - params.MinorVersion = settings->MinorVersion; - } - - // Create the window - sfRenderWindow* renderWindow = new sfRenderWindow; - renderWindow->This.Create(videoMode, title, style, params); - renderWindow->DefaultView.This = renderWindow->This.GetDefaultView(); - renderWindow->CurrentView.This = renderWindow->This.GetView(); - - return renderWindow; -} - - -//////////////////////////////////////////////////////////// -/// Construct a renderwindow from an existing control -//////////////////////////////////////////////////////////// -sfRenderWindow* sfRenderWindow_CreateFromHandle(sfWindowHandle handle, const sfContextSettings* settings) -{ - // Convert context settings - sf::ContextSettings params; - if (settings) - { - params.DepthBits = settings->DepthBits; - params.StencilBits = settings->StencilBits; - params.AntialiasingLevel = settings->AntialiasingLevel; - params.MajorVersion = settings->MajorVersion; - params.MinorVersion = settings->MinorVersion; - } - - // Create the window - sfRenderWindow* renderWindow = new sfRenderWindow; - renderWindow->This.Create(handle, params); - renderWindow->DefaultView.This = renderWindow->This.GetDefaultView(); - renderWindow->CurrentView.This = renderWindow->This.GetView(); - - return renderWindow; -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing renderwindow -//////////////////////////////////////////////////////////// -void sfRenderWindow_Destroy(sfRenderWindow* renderWindow) -{ - delete renderWindow; -} - -//////////////////////////////////////////////////////////// -/// Close a renderwindow (but doesn't destroy the internal data) -//////////////////////////////////////////////////////////// -void sfRenderWindow_Close(sfRenderWindow* renderWindow) -{ - CSFML_CALL(renderWindow, Close()); -} - - -//////////////////////////////////////////////////////////// -/// Tell whether or not a renderwindow is opened -//////////////////////////////////////////////////////////// -sfBool sfRenderWindow_IsOpened(const sfRenderWindow* renderWindow) -{ - CSFML_CALL_RETURN(renderWindow, IsOpened(), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Get the width of the rendering region of a window -//////////////////////////////////////////////////////////// -unsigned int sfRenderWindow_GetWidth(const sfRenderWindow* renderWindow) -{ - CSFML_CALL_RETURN(renderWindow, GetWidth(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Get the height of the rendering region of a window -//////////////////////////////////////////////////////////// -unsigned int sfRenderWindow_GetHeight(const sfRenderWindow* renderWindow) -{ - CSFML_CALL_RETURN(renderWindow, GetHeight(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Get the creation settings of a window -//////////////////////////////////////////////////////////// -sfContextSettings sfRenderWindow_GetSettings(const sfRenderWindow* renderWindow) -{ - sfContextSettings settings = {0, 0, 0, 2, 0}; - CSFML_CHECK_RETURN(renderWindow, settings); - - const sf::ContextSettings& params = renderWindow->This.GetSettings(); - settings.DepthBits = params.DepthBits; - settings.StencilBits = params.StencilBits; - settings.AntialiasingLevel = params.AntialiasingLevel; - - return settings; -} - - - -//////////////////////////////////////////////////////////// -/// Get the event on top of events stack of a window, if any, and pop it -//////////////////////////////////////////////////////////// -sfBool sfRenderWindow_PollEvent(sfRenderWindow* renderWindow, sfEvent* event) -{ - CSFML_CHECK_RETURN(renderWindow, sfFalse); - CSFML_CHECK_RETURN(event, sfFalse); - - // Get the event - sf::Event SFMLEvent; - sfBool ret = renderWindow->This.PollEvent(SFMLEvent); - - // No event, return - if (!ret) - return sfFalse; - - // Convert the sf::Event event to a sfEvent - ConvertEvent(SFMLEvent, event); - - return sfTrue; -} - - -//////////////////////////////////////////////////////////// -/// Wait for an event and return it -//////////////////////////////////////////////////////////// -sfBool sfRenderWindow_WaitEvent(sfRenderWindow* renderWindow, sfEvent* event) -{ - CSFML_CHECK_RETURN(renderWindow, sfFalse); - CSFML_CHECK_RETURN(event, sfFalse); - - // Get the event - sf::Event SFMLEvent; - sfBool ret = renderWindow->This.WaitEvent(SFMLEvent); - - // Error, return - if (!ret) - return sfFalse; - - // Convert the sf::Event event to a sfEvent - ConvertEvent(SFMLEvent, event); - - return sfTrue; -} - - -//////////////////////////////////////////////////////////// -/// Enable / disable vertical synchronization on a window -//////////////////////////////////////////////////////////// -void sfRenderWindow_EnableVerticalSync(sfRenderWindow* renderWindow, sfBool enabled) -{ - CSFML_CALL(renderWindow, EnableVerticalSync(enabled == sfTrue)); -} - - -//////////////////////////////////////////////////////////// -/// Show or hide the mouse cursor on a window -//////////////////////////////////////////////////////////// -void sfRenderWindow_ShowMouseCursor(sfRenderWindow* renderWindow, sfBool show) -{ - CSFML_CALL(renderWindow, ShowMouseCursor(show == sfTrue)); -} - - -//////////////////////////////////////////////////////////// -/// Change the position of the mouse cursor on a window -//////////////////////////////////////////////////////////// -void sfRenderWindow_SetCursorPosition(sfRenderWindow* renderWindow, unsigned int left, unsigned int top) -{ - CSFML_CALL(renderWindow, SetCursorPosition(left, top)); -} - - -//////////////////////////////////////////////////////////// -/// Change the position of a window on screen. -/// Only works for top-level windows -//////////////////////////////////////////////////////////// -void sfRenderWindow_SetPosition(sfRenderWindow* renderWindow, int left, int top) -{ - CSFML_CALL(renderWindow, SetPosition(left, top)); -} - - -//////////////////////////////////////////////////////////// -/// Change the size of the rendering region of a window -//////////////////////////////////////////////////////////// -void sfRenderWindow_SetSize(sfRenderWindow* renderWindow, unsigned int width, unsigned int height) -{ - CSFML_CALL(renderWindow, SetSize(width, height)) -} - - -//////////////////////////////////////////////////////////// -/// Change the title of a window -//////////////////////////////////////////////////////////// -void sfRenderWindow_SetTitle(sfRenderWindow* renderWindow, const char* title) -{ - CSFML_CALL(renderWindow, SetTitle(title)) -} - - -//////////////////////////////////////////////////////////// -/// Show or hide a window -//////////////////////////////////////////////////////////// -void sfRenderWindow_Show(sfRenderWindow* renderWindow, sfBool show) -{ - CSFML_CALL(renderWindow, Show(show == sfTrue)); -} - - -//////////////////////////////////////////////////////////// -/// Enable or disable automatic key-repeat for keydown events. -/// Automatic key-repeat is enabled by default -//////////////////////////////////////////////////////////// -void sfRenderWindow_EnableKeyRepeat(sfRenderWindow* renderWindow, sfBool enabled) -{ - CSFML_CALL(renderWindow, EnableKeyRepeat(enabled == sfTrue)); -} - - -//////////////////////////////////////////////////////////// -/// Change the window's icon -//////////////////////////////////////////////////////////// -void sfRenderWindow_SetIcon(sfRenderWindow* renderWindow, unsigned int width, unsigned int height, const sfUint8* pixels) -{ - CSFML_CALL(renderWindow, SetIcon(width, height, pixels)) -} - - -//////////////////////////////////////////////////////////// -/// Set a window as the current target for rendering -//////////////////////////////////////////////////////////// -sfBool sfRenderWindow_SetActive(sfRenderWindow* renderWindow, sfBool active) -{ - CSFML_CALL_RETURN(renderWindow, SetActive(active == sfTrue), sfFalse) -} - - -//////////////////////////////////////////////////////////// -/// Save the current OpenGL render states and matrices -//////////////////////////////////////////////////////////// -void sfRenderWindow_SaveGLStates(sfRenderWindow* renderWindow) -{ - CSFML_CALL(renderWindow, SaveGLStates()); -} - - -//////////////////////////////////////////////////////////// -/// Restore the previously saved OpenGL render states and matrices -//////////////////////////////////////////////////////////// -void sfRenderWindow_RestoreGLStates(sfRenderWindow* renderWindow) -{ - CSFML_CALL(renderWindow, RestoreGLStates()); -} - - -//////////////////////////////////////////////////////////// -/// Display a window on screen -//////////////////////////////////////////////////////////// -void sfRenderWindow_Display(sfRenderWindow* renderWindow) -{ - CSFML_CALL(renderWindow, Display()); -} - - -//////////////////////////////////////////////////////////// -/// Limit the framerate to a maximum fixed frequency for a window -//////////////////////////////////////////////////////////// -void sfRenderWindow_SetFramerateLimit(sfRenderWindow* renderWindow, unsigned int limit) -{ - CSFML_CALL(renderWindow, SetFramerateLimit(limit)); -} - - -//////////////////////////////////////////////////////////// -/// Get time elapsed since last frame of a window -//////////////////////////////////////////////////////////// -sfUint32 sfRenderWindow_GetFrameTime(const sfRenderWindow* renderWindow) -{ - CSFML_CALL_RETURN(renderWindow, GetFrameTime(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Change the joystick threshold, ie. the value below which -/// no move event will be generated -//////////////////////////////////////////////////////////// -void sfRenderWindow_SetJoystickThreshold(sfRenderWindow* renderWindow, float threshold) -{ - CSFML_CALL(renderWindow, SetJoystickThreshold(threshold)); -} - - -//////////////////////////////////////////////////////////// -/// Retrieve the Os-specific handle of a window -//////////////////////////////////////////////////////////// -sfWindowHandle sfRenderWindow_GetSystemHandle(const sfRenderWindow* renderWindow) -{ - CSFML_CHECK_RETURN(renderWindow, NULL); - - return (sfWindowHandle)renderWindow->This.GetSystemHandle(); -} - - -//////////////////////////////////////////////////////////// -/// Draw something on a renderwindow -//////////////////////////////////////////////////////////// -void sfRenderWindow_DrawSprite(sfRenderWindow* renderWindow, const sfSprite* sprite) -{ - CSFML_CHECK(sprite); - CSFML_CALL(renderWindow, Draw(sprite->This)); -} -void sfRenderWindow_DrawShape(sfRenderWindow* renderWindow, const sfShape* shape) -{ - CSFML_CHECK(shape); - CSFML_CALL(renderWindow, Draw(shape->This)); -} -void sfRenderWindow_DrawText(sfRenderWindow* renderWindow, const sfText* text) -{ - CSFML_CHECK(text); - CSFML_CALL(renderWindow, Draw(text->This)); -} - - -//////////////////////////////////////////////////////////// -/// Draw something on a renderwindow with a shader -//////////////////////////////////////////////////////////// -void sfRenderWindow_DrawSpriteWithShader(sfRenderWindow* renderWindow, const sfSprite* sprite, const sfShader* shader) -{ - CSFML_CHECK(sprite); - CSFML_CHECK(shader); - CSFML_CALL(renderWindow, Draw(sprite->This, shader->This)); -} -void sfRenderWindow_DrawShapeWithShader(sfRenderWindow* renderWindow, const sfShape* shape, const sfShader* shader) -{ - CSFML_CHECK(shape); - CSFML_CHECK(shader); - CSFML_CALL(renderWindow, Draw(shape->This, shader->This)); -} -void sfRenderWindow_DrawTextWithShader(sfRenderWindow* renderWindow, const sfText* text, const sfShader* shader) -{ - CSFML_CHECK(text); - CSFML_CHECK(shader); - CSFML_CALL(renderWindow, Draw(text->This, shader->This)); -} - - -//////////////////////////////////////////////////////////// -/// Clear the screen with the given color -//////////////////////////////////////////////////////////// -void sfRenderWindow_Clear(sfRenderWindow* renderWindow, sfColor color) -{ - sf::Color SFMLColor(color.r, color.g, color.b, color.a); - - CSFML_CALL(renderWindow, Clear(SFMLColor)); -} - - -//////////////////////////////////////////////////////////// -/// Change the current active view of a renderwindow -//////////////////////////////////////////////////////////// -void sfRenderWindow_SetView(sfRenderWindow* renderWindow, const sfView* view) -{ - CSFML_CHECK(view); - CSFML_CALL(renderWindow, SetView(view->This)); - renderWindow->CurrentView.This = view->This; -} - - -//////////////////////////////////////////////////////////// -/// Get the current active view of a renderwindow -//////////////////////////////////////////////////////////// -const sfView* sfRenderWindow_GetView(const sfRenderWindow* renderWindow) -{ - CSFML_CHECK_RETURN(renderWindow, NULL); - - return &renderWindow->CurrentView; -} - - -//////////////////////////////////////////////////////////// -/// Get the default view of a renderwindow -//////////////////////////////////////////////////////////// -const sfView* sfRenderWindow_GetDefaultView(const sfRenderWindow* renderWindow) -{ - CSFML_CHECK_RETURN(renderWindow, NULL); - - return &renderWindow->DefaultView; -} - - -//////////////////////////////////////////////////////////// -/// Get the viewport of a view applied to this target -//////////////////////////////////////////////////////////// -sfIntRect sfRenderWindow_GetViewport(const sfRenderWindow* renderWindow, const sfView* view) -{ - sfIntRect rect = {0, 0, 0, 0}; - CSFML_CHECK_RETURN(view, rect); - CSFML_CHECK_RETURN(renderWindow, rect); - - sf::IntRect SFMLrect = renderWindow->This.GetViewport(view->This); - rect.Left = SFMLrect.Left; - rect.Top = SFMLrect.Top; - rect.Width = SFMLrect.Width; - rect.Height = SFMLrect.Height; - - return rect; -} - - -//////////////////////////////////////////////////////////// -/// Convert a point in window coordinates into view coordinates -//////////////////////////////////////////////////////////// -void sfRenderWindow_ConvertCoords(const sfRenderWindow* renderWindow, unsigned int windowX, unsigned int windowY, float* viewX, float* viewY, const sfView* targetView) -{ - CSFML_CHECK(renderWindow); - - sf::Vector2f point; - if (targetView) - point = renderWindow->This.ConvertCoords(windowX, windowY, targetView->This); - else - point = renderWindow->This.ConvertCoords(windowX, windowY); - - if (viewX) *viewX = point.x; - if (viewY) *viewY = point.y; -} diff --git a/bindings/c/src/SFML/Graphics/RenderWindowStruct.h b/bindings/c/src/SFML/Graphics/RenderWindowStruct.h deleted file mode 100644 index 2498b234..00000000 --- a/bindings/c/src/SFML/Graphics/RenderWindowStruct.h +++ /dev/null @@ -1,46 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_RENDERWINDOWSTRUCT_H -#define SFML_RENDERWINDOWSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfRenderWindow -//////////////////////////////////////////////////////////// -struct sfRenderWindow -{ - sf::RenderWindow This; - sfView DefaultView; - sfView CurrentView; -}; - - -#endif // SFML_RENDERWINDOWSTRUCT_H diff --git a/bindings/c/src/SFML/Graphics/Shader.cpp b/bindings/c/src/SFML/Graphics/Shader.cpp deleted file mode 100644 index acc93e94..00000000 --- a/bindings/c/src/SFML/Graphics/Shader.cpp +++ /dev/null @@ -1,167 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new shader from a file -//////////////////////////////////////////////////////////// -sfShader* sfShader_CreateFromFile(const char* filename) -{ - sfShader* shader = new sfShader; - - if (!shader->This.LoadFromFile(filename)) - { - delete shader; - shader = NULL; - } - - return shader; -} - - -//////////////////////////////////////////////////////////// -/// Create a new shader from an effect source code -//////////////////////////////////////////////////////////// -sfShader* sfShader_CreateFromMemory(const char* effect) -{ - sfShader* shader = new sfShader; - - if (!shader->This.LoadFromMemory(effect)) - { - delete shader; - shader = NULL; - } - - return shader; -} - - -//////////////////////////////////////////////////////////// -/// Copy an existing clock -//////////////////////////////////////////////////////////// -sfShader* sfShader_Copy(sfShader* shader) -{ - CSFML_CHECK_RETURN(shader, NULL); - - return new sfShader(*shader); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing shader -//////////////////////////////////////////////////////////// -void sfShader_Destroy(sfShader* shader) -{ - delete shader; -} - - -//////////////////////////////////////////////////////////// -/// Change a parameter of a shader (1 float) -//////////////////////////////////////////////////////////// -void sfShader_SetParameter1(sfShader* shader, const char* name, float x) -{ - CSFML_CALL(shader, SetParameter(name, x)) -} - - -//////////////////////////////////////////////////////////// -/// Change a parameter of a shader (2 floats) -//////////////////////////////////////////////////////////// -void sfShader_SetParameter2(sfShader* shader, const char* name, float x, float y) -{ - CSFML_CALL(shader, SetParameter(name, x, y)) -} - - -//////////////////////////////////////////////////////////// -/// Change a parameter of a shader (3 floats) -//////////////////////////////////////////////////////////// -void sfShader_SetParameter3(sfShader* shader, const char* name, float x, float y, float z) -{ - CSFML_CALL(shader, SetParameter(name, x, y, z)) -} - - -//////////////////////////////////////////////////////////// -/// Change a parameter of a shader (4 floats) -//////////////////////////////////////////////////////////// -void sfShader_SetParameter4(sfShader* shader, const char* name, float x, float y, float z, float w) -{ - CSFML_CALL(shader, SetParameter(name, x, y, z, w)) -} - - -//////////////////////////////////////////////////////////// -/// Set a texture parameter in a shader -//////////////////////////////////////////////////////////// -void sfShader_SetTexture(sfShader* shader, const char* name, const sfImage* texture) -{ - CSFML_CHECK(texture); - CSFML_CALL(shader, SetTexture(name, *texture->This)) -} - - -//////////////////////////////////////////////////////////// -/// Set the current texture parameter in a shader -//////////////////////////////////////////////////////////// -void sfShader_SetCurrentTexture(sfShader* shader, const char* name) -{ - CSFML_CALL(shader, SetCurrentTexture(name)) -} - - -//////////////////////////////////////////////////////////// -/// Bind a shader for rendering -//////////////////////////////////////////////////////////// -void sfShader_Bind(const sfShader* shader) -{ - CSFML_CALL(shader, Bind()) -} - - -//////////////////////////////////////////////////////////// -/// Unbind a shader -//////////////////////////////////////////////////////////// -void sfShader_Unbind(const sfShader* shader) -{ - CSFML_CALL(shader, Unbind()) -} - - -//////////////////////////////////////////////////////////// -/// Tell whether or not the system supports shaders -//////////////////////////////////////////////////////////// -sfBool sfShader_IsAvailable(void) -{ - return sf::Shader::IsAvailable() ? sfTrue : sfFalse; -} diff --git a/bindings/c/src/SFML/Graphics/ShaderStruct.h b/bindings/c/src/SFML/Graphics/ShaderStruct.h deleted file mode 100644 index 127f2965..00000000 --- a/bindings/c/src/SFML/Graphics/ShaderStruct.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SHADERSTRUCT_H -#define SFML_SHADERSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfShader -//////////////////////////////////////////////////////////// -struct sfShader -{ - sf::Shader This; -}; - - -#endif // SFML_SHADERSTRUCT_H diff --git a/bindings/c/src/SFML/Graphics/Shape.cpp b/bindings/c/src/SFML/Graphics/Shape.cpp deleted file mode 100644 index 5105cf72..00000000 --- a/bindings/c/src/SFML/Graphics/Shape.cpp +++ /dev/null @@ -1,469 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new shape -//////////////////////////////////////////////////////////// -sfShape* sfShape_Create(void) -{ - return new sfShape; -} - - -//////////////////////////////////////////////////////////// -/// Create a new shape made of a single line -//////////////////////////////////////////////////////////// -sfShape* sfShape_CreateLine(float p1x, float p1y, float p2x, float p2y, float thickness, sfColor color, float outline, sfColor outlineColor) -{ - sf::Color SFMLColor(color.r, color.g, color.b, color.a); - sf::Color SFMLOutlineColor(outlineColor.r, outlineColor.g, outlineColor.b, outlineColor.a); - - sfShape* shape = new sfShape; - shape->This = sf::Shape::Line(p1x, p1y, p2x, p2y, thickness, SFMLColor, outline, SFMLOutlineColor); - return shape; -} - - -//////////////////////////////////////////////////////////// -/// Create a new shape made of a single rectangle -//////////////////////////////////////////////////////////// -sfShape* sfShape_CreateRectangle(float left, float top, float width, float height, sfColor color, float outline, sfColor outlineColor) -{ - sf::Color SFMLColor(color.r, color.g, color.b, color.a); - sf::Color SFMLOutlineColor(outlineColor.r, outlineColor.g, outlineColor.b, outlineColor.a); - - sfShape* shape = new sfShape; - shape->This = sf::Shape::Rectangle(left, top, width, height, SFMLColor, outline, SFMLOutlineColor); - return shape; -} - - -//////////////////////////////////////////////////////////// -/// Create a new shape made of a single circle -//////////////////////////////////////////////////////////// -sfShape* sfShape_CreateCircle(float x, float y, float radius, sfColor color, float outline, sfColor outlineColor) -{ - sf::Color SFMLColor(color.r, color.g, color.b, color.a); - sf::Color SFMLOutlineColor(outlineColor.r, outlineColor.g, outlineColor.b, outlineColor.a); - - sfShape* shape = new sfShape; - shape->This = sf::Shape::Circle(x, y, radius, SFMLColor, outline, SFMLOutlineColor); - return shape; -} - - -//////////////////////////////////////////////////////////// -/// Copy an existing shape -//////////////////////////////////////////////////////////// -sfShape* sfShape_Copy(sfShape* shape) -{ - CSFML_CHECK_RETURN(shape, NULL); - - return new sfShape(*shape); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing shape -//////////////////////////////////////////////////////////// -void sfShape_Destroy(sfShape* shape) -{ - delete shape; -} - - -//////////////////////////////////////////////////////////// -/// Set the X position of a shape -//////////////////////////////////////////////////////////// -void sfShape_SetX(sfShape* shape, float x) -{ - CSFML_CALL(shape, SetX(x)) -} - - -//////////////////////////////////////////////////////////// -/// Set the Y position of a shape -//////////////////////////////////////////////////////////// -void sfShape_SetY(sfShape* shape, float y) -{ - CSFML_CALL(shape, SetY(y)) -} - - -//////////////////////////////////////////////////////////// -/// Set the position of a shape -//////////////////////////////////////////////////////////// -void sfShape_SetPosition(sfShape* shape, float x, float y) -{ - CSFML_CALL(shape, SetPosition(sf::Vector2f(x, y))) -} - - -//////////////////////////////////////////////////////////// -/// Set the horizontal scale of a shape -//////////////////////////////////////////////////////////// -void sfShape_SetScaleX(sfShape* shape, float scale) -{ - CSFML_CALL(shape, SetScaleX(scale)) -} - - -//////////////////////////////////////////////////////////// -/// Set the vertical scale of a shape -//////////////////////////////////////////////////////////// -void sfShape_SetScaleY(sfShape* shape, float scale) -{ - CSFML_CALL(shape, SetScaleY(scale)) -} - - -//////////////////////////////////////////////////////////// -/// Set the scale of a shape -//////////////////////////////////////////////////////////// -void sfShape_SetScale(sfShape* shape, float scaleX, float scaleY) -{ - CSFML_CALL(shape, SetScale(sf::Vector2f(scaleX, scaleY))) -} - - -//////////////////////////////////////////////////////////// -/// Set the orientation of a shape -//////////////////////////////////////////////////////////// -void sfShape_SetRotation(sfShape* shape, float rotation) -{ - CSFML_CALL(shape, SetRotation(rotation)) -} - - -//////////////////////////////////////////////////////////// -/// Set the local origin of a shape, in coordinates -/// relative to its left-top corner -//////////////////////////////////////////////////////////// -void sfShape_SetOrigin(sfShape* shape, float x, float y) -{ - CSFML_CALL(shape, SetOrigin(sf::Vector2f(x, y))) -} - - -//////////////////////////////////////////////////////////// -/// Set the color of a shape -//////////////////////////////////////////////////////////// -void sfShape_SetColor(sfShape* shape, sfColor color) -{ - CSFML_CALL(shape, SetColor(sf::Color(color.r, color.g, color.b, color.a))) -} - - -//////////////////////////////////////////////////////////// -/// Set the blending mode for a shape -//////////////////////////////////////////////////////////// -void sfShape_SetBlendMode(sfShape* shape, sfBlendMode mode) -{ - CSFML_CALL(shape, SetBlendMode(static_cast(mode))) -} - - -//////////////////////////////////////////////////////////// -/// Get the X position of a shape -//////////////////////////////////////////////////////////// -float sfShape_GetX(const sfShape* shape) -{ - CSFML_CALL_RETURN(shape, GetPosition().x, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the Y position of a shape -//////////////////////////////////////////////////////////// -float sfShape_GetY(const sfShape* shape) -{ - CSFML_CALL_RETURN(shape, GetPosition().y, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the horizontal scale of a shape -//////////////////////////////////////////////////////////// -float sfShape_GetScaleX(const sfShape* shape) -{ - CSFML_CALL_RETURN(shape, GetScale().x, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the vertical scale of a shape -//////////////////////////////////////////////////////////// -float sfShape_GetScaleY(const sfShape* shape) -{ - CSFML_CALL_RETURN(shape, GetScale().y, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the orientation of a shape -//////////////////////////////////////////////////////////// -float sfShape_GetRotation(const sfShape* shape) -{ - CSFML_CALL_RETURN(shape, GetRotation(), 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the X position of the origin a shape -//////////////////////////////////////////////////////////// -float sfShape_GetOriginX(const sfShape* shape) -{ - CSFML_CALL_RETURN(shape, GetOrigin().x, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the Y position of the origin a shape -//////////////////////////////////////////////////////////// -float sfShape_GetOriginY(const sfShape* shape) -{ - CSFML_CALL_RETURN(shape, GetOrigin().y, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the color of a shape -//////////////////////////////////////////////////////////// -sfColor sfShape_GetColor(const sfShape* shape) -{ - sfColor color = {0, 0, 0, 0}; - CSFML_CHECK_RETURN(shape, color) - - sf::Color SFMLColor = shape->This.GetColor(); - return sfColor_FromRGBA(SFMLColor.r, SFMLColor.g, SFMLColor.b, SFMLColor.a); -} - - -//////////////////////////////////////////////////////////// -/// Get the current blending mode of a shape -//////////////////////////////////////////////////////////// -sfBlendMode sfShape_GetBlendMode(const sfShape* shape) -{ - CSFML_CHECK_RETURN(shape, sfBlendNone) - - return static_cast(shape->This.GetBlendMode()); -} - - -//////////////////////////////////////////////////////////// -/// Move a shape -//////////////////////////////////////////////////////////// -void sfShape_Move(sfShape* shape, float offsetX, float offsetY) -{ - CSFML_CALL(shape, Move(sf::Vector2f(offsetX, offsetY))) -} - - -//////////////////////////////////////////////////////////// -/// Scale a shape -//////////////////////////////////////////////////////////// -void sfShape_Scale(sfShape* shape, float factorX, float factorY) -{ - CSFML_CALL(shape, Scale(sf::Vector2f(factorX, factorY))) -} - - -//////////////////////////////////////////////////////////// -/// Rotate a shape -//////////////////////////////////////////////////////////// -void sfShape_Rotate(sfShape* shape, float angle) -{ - CSFML_CALL(shape, Rotate(angle)) -} - - -//////////////////////////////////////////////////////////// -/// Transform a point from global coordinates into the shape's local coordinates -/// (ie it applies the inverse of object's origin, translation, rotation and scale to the point) -//////////////////////////////////////////////////////////// -void sfShape_TransformToLocal(const sfShape* shape, float pointX, float pointY, float* x, float* y) -{ - CSFML_CHECK(shape) - - sf::Vector2f point = shape->This.TransformToLocal(sf::Vector2f(pointX, pointY)); - if (x) *x = point.x; - if (y) *y = point.y; -} - - -//////////////////////////////////////////////////////////// -/// Transform a point from the shape's local coordinates into global coordinates -/// (ie it applies the object's origin, translation, rotation and scale to the point) -//////////////////////////////////////////////////////////// -void sfShape_TransformToGlobal(const sfShape* shape, float pointX, float pointY, float* x, float* y) -{ - CSFML_CHECK(shape) - - sf::Vector2f point = shape->This.TransformToGlobal(sf::Vector2f(pointX, pointY)); - if (x) *x = point.x; - if (y) *y = point.y; -} - - -//////////////////////////////////////////////////////////// -/// Add a point to a shape -//////////////////////////////////////////////////////////// -void sfShape_AddPoint(sfShape* shape, float x, float y, sfColor color, sfColor outlineColor) -{ - sf::Color SFMLColor(color.r, color.g, color.b, color.a); - sf::Color SFMLOutlineColor(outlineColor.r, outlineColor.g, outlineColor.b, outlineColor.a); - - CSFML_CALL(shape, AddPoint(x, y, SFMLColor, SFMLOutlineColor)) -} - - -//////////////////////////////////////////////////////////// -/// Enable or disable filling a shape. -/// Fill is enabled by default -//////////////////////////////////////////////////////////// -void sfShape_EnableFill(sfShape* shape, sfBool enable) -{ - CSFML_CALL(shape, EnableFill(enable == sfTrue)) -} - - -//////////////////////////////////////////////////////////// -/// Enable or disable drawing a shape outline. -/// Outline is enabled by default -//////////////////////////////////////////////////////////// -void sfShape_EnableOutline(sfShape* shape, sfBool enable) -{ - CSFML_CALL(shape, EnableOutline(enable == sfTrue)) -} - - -//////////////////////////////////////////////////////////// -/// Change the thickness of a shape outline -//////////////////////////////////////////////////////////// -void sfShape_SetOutlineThickness(sfShape* shape, float thickness) -{ - CSFML_CALL(shape, SetOutlineThickness(thickness)) -} - - -//////////////////////////////////////////////////////////// -/// Get the thickness of a shape outline -//////////////////////////////////////////////////////////// -float sfShape_GetOutlineThickness(const sfShape* shape) -{ - CSFML_CALL_RETURN(shape, GetOutlineThickness(), 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the number of points composing a shape -//////////////////////////////////////////////////////////// -unsigned int sfShape_GetPointsCount(const sfShape* shape) -{ - CSFML_CALL_RETURN(shape, GetPointsCount(), 0) -} - - -//////////////////////////////////////////////////////////// -/// Get a point of a shape -//////////////////////////////////////////////////////////// -void sfShape_GetPointPosition(const sfShape* shape, unsigned int index, float* x, float* y) -{ - CSFML_CHECK(shape) - - sf::Vector2f point = shape->This.GetPointPosition(index); - if (x) *x = point.x; - if (y) *y = point.y; -} - - -//////////////////////////////////////////////////////////// -/// Get a the color of a shape's point -//////////////////////////////////////////////////////////// -sfColor sfShape_GetPointColor(const sfShape* shape, unsigned int index) -{ - sfColor color = {255, 255, 255, 255}; - CSFML_CHECK_RETURN(shape, color) - - const sf::Color& SFMLColor = shape->This.GetPointColor(index); - color.r = SFMLColor.r; - color.g = SFMLColor.g; - color.b = SFMLColor.b; - color.a = SFMLColor.a; - - return color; -} - - -//////////////////////////////////////////////////////////// -/// Get a the outline color of a shape's point -//////////////////////////////////////////////////////////// -sfColor sfShape_GetPointOutlineColor(const sfShape* shape, unsigned int index) -{ - sfColor color = {255, 255, 255, 255}; - CSFML_CHECK_RETURN(shape, color) - - const sf::Color& SFMLColor = shape->This.GetPointOutlineColor(index); - color.r = SFMLColor.r; - color.g = SFMLColor.g; - color.b = SFMLColor.b; - color.a = SFMLColor.a; - - return color; -} - -//////////////////////////////////////////////////////////// -/// Set a the position of a shape's point -//////////////////////////////////////////////////////////// -void sfShape_SetPointPosition(sfShape* shape, unsigned int index, float x, float y) -{ - CSFML_CALL(shape, SetPointPosition(index, x, y)); -} - - -//////////////////////////////////////////////////////////// -/// Set a the color of a shape's point -//////////////////////////////////////////////////////////// -void sfShape_SetPointColor(sfShape* shape, unsigned int index, sfColor color) -{ - CSFML_CALL(shape, SetPointColor(index, sf::Color(color.r, color.g, color.b, color.a))); -} - - -//////////////////////////////////////////////////////////// -/// Set a the outline color of a shape's point -//////////////////////////////////////////////////////////// -void sfShape_SetPointOutlineColor(sfShape* shape, unsigned int index, sfColor color) -{ - CSFML_CALL(shape, SetPointOutlineColor(index, sf::Color(color.r, color.g, color.b, color.a))); -} diff --git a/bindings/c/src/SFML/Graphics/ShapeStruct.h b/bindings/c/src/SFML/Graphics/ShapeStruct.h deleted file mode 100644 index 90825caa..00000000 --- a/bindings/c/src/SFML/Graphics/ShapeStruct.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SHAPESTRUCT_H -#define SFML_SHAPESTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfShape -//////////////////////////////////////////////////////////// -struct sfShape -{ - sf::Shape This; -}; - - -#endif // SFML_SHAPESTRUCT_H diff --git a/bindings/c/src/SFML/Graphics/Sprite.cpp b/bindings/c/src/SFML/Graphics/Sprite.cpp deleted file mode 100644 index 40ccb2c0..00000000 --- a/bindings/c/src/SFML/Graphics/Sprite.cpp +++ /dev/null @@ -1,405 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new sprite -//////////////////////////////////////////////////////////// -sfSprite* sfSprite_Create(void) -{ - sfSprite* sprite = new sfSprite; - sprite->Image = NULL; - sprite->SubRect.Left = sprite->This.GetSubRect().Left; - sprite->SubRect.Top = sprite->This.GetSubRect().Top; - sprite->SubRect.Width = sprite->This.GetSubRect().Width; - sprite->SubRect.Height = sprite->This.GetSubRect().Height; - - return sprite; -} - - -//////////////////////////////////////////////////////////// -/// Copy an existing sprite -//////////////////////////////////////////////////////////// -sfSprite* sfSprite_Copy(sfSprite* sprite) -{ - CSFML_CHECK_RETURN(sprite, NULL); - - return new sfSprite(*sprite); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing sprite -//////////////////////////////////////////////////////////// -void sfSprite_Destroy(sfSprite* sprite) -{ - delete sprite; -} - - -//////////////////////////////////////////////////////////// -/// Set the X position of a sprite -//////////////////////////////////////////////////////////// -void sfSprite_SetX(sfSprite* sprite, float x) -{ - CSFML_CALL(sprite, SetX(x)) -} - - -//////////////////////////////////////////////////////////// -/// Set the Y position of a sprite -//////////////////////////////////////////////////////////// -void sfSprite_SetY(sfSprite* sprite, float y) -{ - CSFML_CALL(sprite, SetY(y)) -} - - -//////////////////////////////////////////////////////////// -/// Set the position of a sprite -//////////////////////////////////////////////////////////// -void sfSprite_SetPosition(sfSprite* sprite, float x, float y) -{ - CSFML_CALL(sprite, SetPosition(sf::Vector2f(x, y))) -} - - -//////////////////////////////////////////////////////////// -/// Set the horizontal scale of a sprite -//////////////////////////////////////////////////////////// -void sfSprite_SetScaleX(sfSprite* sprite, float scale) -{ - CSFML_CALL(sprite, SetScaleX(scale)) -} - - -//////////////////////////////////////////////////////////// -/// Set the vertical scale of a sprite -//////////////////////////////////////////////////////////// -void sfSprite_SetScaleY(sfSprite* sprite, float scale) -{ - CSFML_CALL(sprite, SetScaleY(scale)) -} - - -//////////////////////////////////////////////////////////// -/// Set the scale of a sprite -//////////////////////////////////////////////////////////// -void sfSprite_SetScale(sfSprite* sprite, float scaleX, float scaleY) -{ - CSFML_CALL(sprite, SetScale(sf::Vector2f(scaleX, scaleY))) -} - - -//////////////////////////////////////////////////////////// -/// Set the orientation of a sprite -//////////////////////////////////////////////////////////// -void sfSprite_SetRotation(sfSprite* sprite, float rotation) -{ - CSFML_CALL(sprite, SetRotation(rotation)) -} - - -//////////////////////////////////////////////////////////// -/// Set the local origin of a sprite, in coordinates -/// relative to its left-top corner -//////////////////////////////////////////////////////////// -void sfSprite_SetOrigin(sfSprite* sprite, float x, float y) -{ - CSFML_CALL(sprite, SetOrigin(sf::Vector2f(x, y))) -} - - -//////////////////////////////////////////////////////////// -/// Set the color of a sprite -//////////////////////////////////////////////////////////// -void sfSprite_SetColor(sfSprite* sprite, sfColor color) -{ - CSFML_CALL(sprite, SetColor(sf::Color(color.r, color.g, color.b, color.a))) -} - - -//////////////////////////////////////////////////////////// -/// Set the blending mode for a sprite -//////////////////////////////////////////////////////////// -void sfSprite_SetBlendMode(sfSprite* sprite, sfBlendMode mode) -{ - CSFML_CALL(sprite, SetBlendMode(static_cast(mode))) -} - - -//////////////////////////////////////////////////////////// -/// Get the X position of a sprite -//////////////////////////////////////////////////////////// -float sfSprite_GetX(const sfSprite* sprite) -{ - CSFML_CALL_RETURN(sprite, GetPosition().x, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the Y position of a sprite -//////////////////////////////////////////////////////////// -float sfSprite_GetY(const sfSprite* sprite) -{ - CSFML_CALL_RETURN(sprite, GetPosition().y, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the horizontal scale of a sprite -//////////////////////////////////////////////////////////// -float sfSprite_GetScaleX(const sfSprite* sprite) -{ - CSFML_CALL_RETURN(sprite, GetScale().x, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the vertical scale of a sprite -//////////////////////////////////////////////////////////// -float sfSprite_GetScaleY(const sfSprite* sprite) -{ - CSFML_CALL_RETURN(sprite, GetScale().y, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the orientation of a sprite -//////////////////////////////////////////////////////////// -float sfSprite_GetRotation(const sfSprite* sprite) -{ - CSFML_CALL_RETURN(sprite, GetRotation(), 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the X position of the origin a sprite -//////////////////////////////////////////////////////////// -float sfSprite_GetOriginX(const sfSprite* sprite) -{ - CSFML_CALL_RETURN(sprite, GetOrigin().x, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the Y position of the origin a sprite -//////////////////////////////////////////////////////////// -float sfSprite_GetOriginY(const sfSprite* sprite) -{ - CSFML_CALL_RETURN(sprite, GetOrigin().y, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the color of a sprite -//////////////////////////////////////////////////////////// -sfColor sfSprite_GetColor(const sfSprite* sprite) -{ - sfColor color = {0, 0, 0, 0}; - CSFML_CHECK_RETURN(sprite, color) - - sf::Color SFMLColor = sprite->This.GetColor(); - return sfColor_FromRGBA(SFMLColor.r, SFMLColor.g, SFMLColor.b, SFMLColor.a); -} - - -//////////////////////////////////////////////////////////// -/// Get the current blending mode of a sprite -//////////////////////////////////////////////////////////// -sfBlendMode sfSprite_GetBlendMode(const sfSprite* sprite) -{ - CSFML_CHECK_RETURN(sprite, sfBlendNone) - - return static_cast(sprite->This.GetBlendMode()); -} - - -//////////////////////////////////////////////////////////// -/// Move a sprite -//////////////////////////////////////////////////////////// -void sfSprite_Move(sfSprite* sprite, float offsetX, float offsetY) -{ - CSFML_CALL(sprite, Move(sf::Vector2f(offsetX, offsetY))) -} - - -//////////////////////////////////////////////////////////// -/// Scale a sprite -//////////////////////////////////////////////////////////// -void sfSprite_Scale(sfSprite* sprite, float factorX, float factorY) -{ - CSFML_CALL(sprite, Scale(sf::Vector2f(factorX, factorY))) -} - - -//////////////////////////////////////////////////////////// -/// Rotate a sprite -//////////////////////////////////////////////////////////// -void sfSprite_Rotate(sfSprite* sprite, float angle) -{ - CSFML_CALL(sprite, Rotate(angle)) -} - - -//////////////////////////////////////////////////////////// -/// Transform a point from global coordinates into the sprite's local coordinates -/// (ie it applies the inverse of object's origin, translation, rotation and scale to the point) -//////////////////////////////////////////////////////////// -void sfSprite_TransformToLocal(const sfSprite* sprite, float pointX, float pointY, float* x, float* y) -{ - CSFML_CHECK(sprite) - - sf::Vector2f point = sprite->This.TransformToLocal(sf::Vector2f(pointX, pointY)); - if (x) *x = point.x; - if (y) *y = point.y; -} - - -//////////////////////////////////////////////////////////// -/// Transform a point from the sprite's local coordinates into global coordinates -/// (ie it applies the object's origin, translation, rotation and scale to the point) -//////////////////////////////////////////////////////////// -void sfSprite_TransformToGlobal(const sfSprite* sprite, float pointX, float pointY, float* x, float* y) -{ - CSFML_CHECK(sprite) - - sf::Vector2f point = sprite->This.TransformToGlobal(sf::Vector2f(pointX, pointY)); - if (x) *x = point.x; - if (y) *y = point.y; -} - - -//////////////////////////////////////////////////////////// -/// Change the image of a sprite -//////////////////////////////////////////////////////////// -void sfSprite_SetImage(sfSprite* sprite, const sfImage* image, sfBool adjustToNewSize) -{ - if (image) - { - CSFML_CALL(sprite, SetImage(*image->This, adjustToNewSize == sfTrue)) - sprite->Image = image; - } -} - - -//////////////////////////////////////////////////////////// -/// Set the sub-rectangle of a sprite inside the source image -//////////////////////////////////////////////////////////// -void sfSprite_SetSubRect(sfSprite* sprite, sfIntRect rectangle) -{ - CSFML_CALL(sprite, SetSubRect(sf::IntRect(rectangle.Left, rectangle.Top, rectangle.Width, rectangle.Height))) - sprite->SubRect = rectangle; -} - - -//////////////////////////////////////////////////////////// -/// Resize a sprite (by changing its scale factors) -//////////////////////////////////////////////////////////// -void sfSprite_Resize(sfSprite* sprite, float width, float height) -{ - CSFML_CALL(sprite, Resize(sf::Vector2f(width, height))) -} - - -//////////////////////////////////////////////////////////// -/// Flip a sprite horizontally -//////////////////////////////////////////////////////////// -void sfSprite_FlipX(sfSprite* sprite, sfBool flipped) -{ - CSFML_CALL(sprite, FlipX(flipped == sfTrue)) -} - - -//////////////////////////////////////////////////////////// -/// Flip a sprite vertically -//////////////////////////////////////////////////////////// -void sfSprite_FlipY(sfSprite* sprite, sfBool flipped) -{ - CSFML_CALL(sprite, FlipY(flipped == sfTrue)) -} - - -//////////////////////////////////////////////////////////// -/// Get the source image of a sprite -//////////////////////////////////////////////////////////// -const sfImage* sfSprite_GetImage(const sfSprite* sprite) -{ - CSFML_CHECK_RETURN(sprite, NULL) - - return sprite->Image; -} - - -//////////////////////////////////////////////////////////// -/// Get the sub-rectangle of a sprite inside the source image -//////////////////////////////////////////////////////////// -sfIntRect sfSprite_GetSubRect(const sfSprite* sprite) -{ - sfIntRect rect = {0, 0, 0, 0}; - CSFML_CHECK_RETURN(sprite, rect) - - return sprite->SubRect; -} - - -//////////////////////////////////////////////////////////// -/// Get a sprite width -//////////////////////////////////////////////////////////// -float sfSprite_GetWidth(const sfSprite* sprite) -{ - CSFML_CALL_RETURN(sprite, GetSize().x, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get a sprite height -//////////////////////////////////////////////////////////// -float sfSprite_GetHeight(const sfSprite* sprite) -{ - CSFML_CALL_RETURN(sprite, GetSize().y, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the color of a given pixel in a sprite -//////////////////////////////////////////////////////////// -sfColor sfSprite_GetPixel(const sfSprite* sprite, unsigned int x, unsigned int y) -{ - sfColor color = {0, 0, 0, 0}; - CSFML_CHECK_RETURN(sprite, color) - - sf::Color SFMLColor = sprite->This.GetPixel(x, y); - return sfColor_FromRGBA(SFMLColor.r, SFMLColor.g, SFMLColor.b, SFMLColor.a); -} diff --git a/bindings/c/src/SFML/Graphics/SpriteStruct.h b/bindings/c/src/SFML/Graphics/SpriteStruct.h deleted file mode 100644 index ecb8df98..00000000 --- a/bindings/c/src/SFML/Graphics/SpriteStruct.h +++ /dev/null @@ -1,47 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SPRITESTRUCT_H -#define SFML_SPRITESTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfMusic -//////////////////////////////////////////////////////////// -struct sfSprite -{ - sf::Sprite This; - const sfImage* Image; - sfIntRect SubRect; -}; - - -#endif // SFML_SPRITESTRUCT_H diff --git a/bindings/c/src/SFML/Graphics/Text.cpp b/bindings/c/src/SFML/Graphics/Text.cpp deleted file mode 100644 index 01d8c1f4..00000000 --- a/bindings/c/src/SFML/Graphics/Text.cpp +++ /dev/null @@ -1,432 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new text -//////////////////////////////////////////////////////////// -sfText* sfText_Create(void) -{ - sfText* text = new sfText; - text->Font = sfFont_GetDefaultFont(); - - return text; -} - - -//////////////////////////////////////////////////////////// -/// Copy an existing text -//////////////////////////////////////////////////////////// -sfText* sfText_Copy(sfText* text) -{ - CSFML_CHECK_RETURN(text, NULL); - - return new sfText(*text); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing text -//////////////////////////////////////////////////////////// -void sfText_Destroy(sfText* text) -{ - delete text; -} - - -//////////////////////////////////////////////////////////// -/// Set the X position of a text -//////////////////////////////////////////////////////////// -void sfText_SetX(sfText* text, float x) -{ - CSFML_CALL(text, SetX(x)) -} - - -//////////////////////////////////////////////////////////// -/// Set the Y position of a text -//////////////////////////////////////////////////////////// -void sfText_SetY(sfText* text, float y) -{ - CSFML_CALL(text, SetY(y)) -} - - -//////////////////////////////////////////////////////////// -/// Set the position of a text -//////////////////////////////////////////////////////////// -void sfText_SetPosition(sfText* text, float x, float y) -{ - CSFML_CALL(text, SetPosition(sf::Vector2f(x, y))) -} - - -//////////////////////////////////////////////////////////// -/// Set the horizontal scale of a text -//////////////////////////////////////////////////////////// -void sfText_SetScaleX(sfText* text, float scale) -{ - CSFML_CALL(text, SetScaleX(scale)) -} - - -//////////////////////////////////////////////////////////// -/// Set the vertical scale of a text -//////////////////////////////////////////////////////////// -void sfText_SetScaleY(sfText* text, float scale) -{ - CSFML_CALL(text, SetScaleY(scale)) -} - - -//////////////////////////////////////////////////////////// -/// Set the scale of a text -//////////////////////////////////////////////////////////// -void sfText_SetScale(sfText* text, float scaleX, float scaleY) -{ - CSFML_CALL(text, SetScale(sf::Vector2f(scaleX, scaleY))) -} - - -//////////////////////////////////////////////////////////// -/// Set the orientation of a text -//////////////////////////////////////////////////////////// -void sfText_SetRotation(sfText* text, float rotation) -{ - CSFML_CALL(text, SetRotation(rotation)) -} - - -//////////////////////////////////////////////////////////// -/// Set the local origin of a text, in coordinates -/// relative to its left-top corner -//////////////////////////////////////////////////////////// -void sfText_SetOrigin(sfText* text, float x, float y) -{ - CSFML_CALL(text, SetOrigin(sf::Vector2f(x, y))) -} - - -//////////////////////////////////////////////////////////// -/// Set the color of a text -//////////////////////////////////////////////////////////// -void sfText_SetColor(sfText* text, sfColor color) -{ - CSFML_CALL(text, SetColor(sf::Color(color.r, color.g, color.b, color.a))) -} - - -//////////////////////////////////////////////////////////// -/// Set the blending mode for a text -//////////////////////////////////////////////////////////// -void sfText_SetBlendMode(sfText* text, sfBlendMode mode) -{ - CSFML_CALL(text, SetBlendMode(static_cast(mode))) -} - - -//////////////////////////////////////////////////////////// -/// Get the X position of a text -//////////////////////////////////////////////////////////// -float sfText_GetX(const sfText* text) -{ - CSFML_CALL_RETURN(text, GetPosition().x, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the Y position of a text -//////////////////////////////////////////////////////////// -float sfText_GetY(const sfText* text) -{ - CSFML_CALL_RETURN(text, GetPosition().y, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the horizontal scale of a text -//////////////////////////////////////////////////////////// -float sfText_GetScaleX(const sfText* text) -{ - CSFML_CALL_RETURN(text, GetScale().x, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the vertical scale of a text -//////////////////////////////////////////////////////////// -float sfText_GetScaleY(const sfText* text) -{ - CSFML_CALL_RETURN(text, GetScale().y, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the orientation of a text -//////////////////////////////////////////////////////////// -float sfText_GetRotation(const sfText* text) -{ - CSFML_CALL_RETURN(text, GetRotation(), 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the X position of the origin a text -//////////////////////////////////////////////////////////// -float sfText_GetOriginX(const sfText* text) -{ - CSFML_CALL_RETURN(text, GetOrigin().x, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the top Y of the origin of a text -//////////////////////////////////////////////////////////// -float sfText_GetOriginY(const sfText* text) -{ - CSFML_CALL_RETURN(text, GetOrigin().y, 0.f) -} - - -//////////////////////////////////////////////////////////// -/// Get the color of a text -//////////////////////////////////////////////////////////// -sfColor sfText_GetColor(const sfText* text) -{ - sfColor color = {0, 0, 0, 0}; - CSFML_CHECK_RETURN(text, color) - - sf::Color SFMLColor = text->This.GetColor(); - return sfColor_FromRGBA(SFMLColor.r, SFMLColor.g, SFMLColor.b, SFMLColor.a); -} - - -//////////////////////////////////////////////////////////// -/// Get the current blending mode of a text -//////////////////////////////////////////////////////////// -sfBlendMode sfText_GetBlendMode(const sfText* text) -{ - CSFML_CHECK_RETURN(text, sfBlendNone) - - return static_cast(text->This.GetBlendMode()); -} - - -//////////////////////////////////////////////////////////// -/// Move a text -//////////////////////////////////////////////////////////// -void sfText_Move(sfText* text, float offsetX, float offsetY) -{ - CSFML_CALL(text, Move(sf::Vector2f(offsetX, offsetY))) -} - - -//////////////////////////////////////////////////////////// -/// Scale a text -//////////////////////////////////////////////////////////// -void sfText_Scale(sfText* text, float factorX, float factorY) -{ - CSFML_CALL(text, Scale(sf::Vector2f(factorX, factorY))) -} - - -//////////////////////////////////////////////////////////// -/// Rotate a text -//////////////////////////////////////////////////////////// -void sfText_Rotate(sfText* text, float angle) -{ - CSFML_CALL(text, Rotate(angle)) -} - - -//////////////////////////////////////////////////////////// -/// Transform a point from global coordinates into the text's local coordinates -/// (ie it applies the inverse of object's origin, translation, rotation and scale to the point) -//////////////////////////////////////////////////////////// -void sfText_TransformToLocal(const sfText* text, float pointX, float pointY, float* x, float* y) -{ - CSFML_CHECK(text) - - sf::Vector2f point = text->This.TransformToLocal(sf::Vector2f(pointX, pointY)); - if (x) *x = point.x; - if (y) *y = point.y; -} - - -//////////////////////////////////////////////////////////// -/// Transform a point from the text's local coordinates into global coordinates -/// (ie it applies the object's origin, translation, rotation and scale to the point) -//////////////////////////////////////////////////////////// -void sfText_TransformToGlobal(const sfText* text, float pointX, float pointY, float* x, float* y) -{ - CSFML_CHECK(text) - - sf::Vector2f point = text->This.TransformToGlobal(sf::Vector2f(pointX, pointY)); - if (x) *x = point.x; - if (y) *y = point.y; -} - - -//////////////////////////////////////////////////////////// -/// Set the string of a text (from a multibyte string) -//////////////////////////////////////////////////////////// -void sfText_SetString(sfText* text, const char* string) -{ - CSFML_CALL(text, SetString(string)) -} - - -//////////////////////////////////////////////////////////// -/// Set the string of a text (from a unicode string) -//////////////////////////////////////////////////////////// -void sfText_SetUnicodeString(sfText* text, const sfUint32* string) -{ - sf::String UTF32Text = string; - CSFML_CALL(text, SetString(UTF32Text)) -} - - -//////////////////////////////////////////////////////////// -/// Set the font of a string -//////////////////////////////////////////////////////////// -void sfText_SetFont(sfText* text, const sfFont* font) -{ - CSFML_CHECK(font); - - CSFML_CALL(text, SetFont(font->This)) - text->Font = font; -} - - -//////////////////////////////////////////////////////////// -/// Set the size of a string -//////////////////////////////////////////////////////////// -void sfText_SetCharacterSize(sfText* text, unsigned int size) -{ - CSFML_CALL(text, SetCharacterSize(size)) -} - - -//////////////////////////////////////////////////////////// -/// Set the style of a string -//////////////////////////////////////////////////////////// -void sfText_SetStyle(sfText* text, unsigned long style) -{ - CSFML_CALL(text, SetStyle(style)) -} - - -//////////////////////////////////////////////////////////// -/// Get the string of a text (returns a unicode string) -//////////////////////////////////////////////////////////// -const sfUint32* sfText_GetUnicodeString(const sfText* text) -{ - CSFML_CHECK_RETURN(text, NULL) - - return text->This.GetString().GetData(); -} - - -//////////////////////////////////////////////////////////// -/// Get the string of a text (returns an ANSI string) -//////////////////////////////////////////////////////////// -const char* sfText_GetString(const sfText* text) -{ - CSFML_CHECK_RETURN(text, NULL) - - text->String = text->This.GetString().ToAnsiString(); - - return text->String.c_str(); -} - - -//////////////////////////////////////////////////////////// -/// Get the font used by a text -//////////////////////////////////////////////////////////// -const sfFont* sfText_GetFont(const sfText* text) -{ - CSFML_CHECK_RETURN(text, NULL) - - return text->Font; -} - - -//////////////////////////////////////////////////////////// -/// Get the size of the characters of a text -//////////////////////////////////////////////////////////// -unsigned int sfText_GetCharacterSize(const sfText* text) -{ - CSFML_CALL_RETURN(text, GetCharacterSize(), 0) -} - - -//////////////////////////////////////////////////////////// -/// Get the style of a text -//////////////////////////////////////////////////////////// -unsigned long sfText_GetStyle(const sfText* text) -{ - CSFML_CALL_RETURN(text, GetStyle(), 0) -} - - -//////////////////////////////////////////////////////////// -/// Return the visual position of the Index-th character of the text, -/// in coordinates relative to the text -/// (note : translation, origin, rotation and scale are not applied) -//////////////////////////////////////////////////////////// -void sfText_GetCharacterPos(const sfText* text, size_t index, float* x, float* y) -{ - CSFML_CHECK(text); - - sf::Vector2f pos = text->This.GetCharacterPos(index); - if (x) *x = pos.x; - if (y) *y = pos.y; -} - - -//////////////////////////////////////////////////////////// -/// Get the bounding rectangle of a text on screen -//////////////////////////////////////////////////////////// -sfFloatRect sfText_GetRect(const sfText* text) -{ - sfFloatRect rect = {0.f, 0.f, 0.f, 0.f}; - CSFML_CHECK_RETURN(text, rect) - - sf::FloatRect SFMLRect = text->This.GetRect(); - text->Rect.Left = SFMLRect.Left; - text->Rect.Top = SFMLRect.Top; - text->Rect.Width = SFMLRect.Width; - text->Rect.Height = SFMLRect.Height; - - return text->Rect; -} diff --git a/bindings/c/src/SFML/Graphics/TextStruct.h b/bindings/c/src/SFML/Graphics/TextStruct.h deleted file mode 100644 index 98af9f18..00000000 --- a/bindings/c/src/SFML/Graphics/TextStruct.h +++ /dev/null @@ -1,49 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_TEXTSTRUCT_H -#define SFML_TEXTSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfText -//////////////////////////////////////////////////////////// -struct sfText -{ - sf::Text This; - const sfFont* Font; - mutable std::string String; - mutable sfFloatRect Rect; -}; - - -#endif // SFML_TEXTSTRUCT_H diff --git a/bindings/c/src/SFML/Graphics/View.cpp b/bindings/c/src/SFML/Graphics/View.cpp deleted file mode 100644 index 35793fcb..00000000 --- a/bindings/c/src/SFML/Graphics/View.cpp +++ /dev/null @@ -1,215 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a default view (1000x1000) -//////////////////////////////////////////////////////////// -sfView* sfView_Create(void) -{ - return new sfView; -} - - -//////////////////////////////////////////////////////////// -/// Construct a view from a rectangle -//////////////////////////////////////////////////////////// -sfView* sfView_CreateFromRect(sfFloatRect rectangle) -{ - sfView* view = new sfView; - sfView_Reset(view, rectangle); - - return view; -} - - -//////////////////////////////////////////////////////////// -/// Copy an existing view -//////////////////////////////////////////////////////////// -sfView* sfView_Copy(sfView* view) -{ - CSFML_CHECK_RETURN(view, NULL); - - return new sfView(*view); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing view -//////////////////////////////////////////////////////////// -void sfView_Destroy(sfView* view) -{ - delete view; -} - - -//////////////////////////////////////////////////////////// -/// Change the center of a view -//////////////////////////////////////////////////////////// -void sfView_SetCenter(sfView* view, float x, float y) -{ - CSFML_CALL(view, SetCenter(x, y)); -} - - -//////////////////////////////////////////////////////////// -/// Change the size of a view -//////////////////////////////////////////////////////////// -void sfView_SetSize(sfView* view, float width, float height) -{ - CSFML_CALL(view, SetSize(width, height)); -} - - -//////////////////////////////////////////////////////////// -/// Set the angle of rotation of a view -//////////////////////////////////////////////////////////// -void sfView_SetRotation(sfView* view, float angle) -{ - CSFML_CALL(view, SetRotation(angle)); -} - - -//////////////////////////////////////////////////////////// -/// Set the target viewport of a view -//////////////////////////////////////////////////////////// -void sfView_SetViewport(sfView* view, sfFloatRect viewport) -{ - CSFML_CALL(view, SetViewport(sf::FloatRect(viewport.Left, viewport.Top, viewport.Width, viewport.Height))); -} - - -//////////////////////////////////////////////////////////// -/// Reset a view to the given rectangle. -/// Note: this function resets the rotation angle to 0. -//////////////////////////////////////////////////////////// -void sfView_Reset(sfView* view, sfFloatRect rectangle) -{ - CSFML_CALL(view, Reset(sf::FloatRect(rectangle.Left, rectangle.Top, rectangle.Width, rectangle.Height))); -} - - -//////////////////////////////////////////////////////////// -/// Get the X coordinate of the center of a view -//////////////////////////////////////////////////////////// -float sfView_GetCenterX(const sfView* view) -{ - CSFML_CHECK_RETURN(view, 0.f); - - return view->This.GetCenter().x; -} - - -//////////////////////////////////////////////////////////// -/// Get the Y coordinate of the center of a view -//////////////////////////////////////////////////////////// -float sfView_GetCenterY(const sfView* view) -{ - CSFML_CHECK_RETURN(view, 0.f); - - return view->This.GetCenter().y; -} - - -//////////////////////////////////////////////////////////// -/// Get the width of the view -//////////////////////////////////////////////////////////// -float sfView_GetWidth(const sfView* view) -{ - CSFML_CHECK_RETURN(view, 0.f); - - return view->This.GetSize().x; -} - - -//////////////////////////////////////////////////////////// -/// Get the height of the view -//////////////////////////////////////////////////////////// -float sfView_GetHeight(const sfView* view) -{ - CSFML_CHECK_RETURN(view, 0.f); - - return view->This.GetSize().y; -} - - -//////////////////////////////////////////////////////////// -/// Get the current rotation of a view -//////////////////////////////////////////////////////////// -float sfView_GetRotation(const sfView* view) -{ - CSFML_CALL_RETURN(view, GetRotation(), 0.f); -} - - -//////////////////////////////////////////////////////////// -/// Get the target viewport of a view -//////////////////////////////////////////////////////////// -sfFloatRect sfView_GetViewport(const sfView* view) -{ - sfFloatRect rect = {0, 0, 0, 0}; - CSFML_CHECK_RETURN(view, rect); - - sf::FloatRect SFMLRect = view->This.GetViewport(); - rect.Left = SFMLRect.Left; - rect.Top = SFMLRect.Top; - rect.Width = SFMLRect.Width; - rect.Height = SFMLRect.Height; - - return rect; -} - - -//////////////////////////////////////////////////////////// -/// Move a view -//////////////////////////////////////////////////////////// -void sfView_Move(sfView* view, float offsetX, float offsetY) -{ - CSFML_CALL(view, Move(offsetX, offsetY)); -} - - -//////////////////////////////////////////////////////////// -/// Rotate a view -//////////////////////////////////////////////////////////// -void sfView_Rotate(sfView* view, float angle) -{ - CSFML_CALL(view, Rotate(angle)); -} - - -//////////////////////////////////////////////////////////// -/// Resize a view rectangle to simulate a zoom / unzoom effect -//////////////////////////////////////////////////////////// -void sfView_Zoom(sfView* view, float factor) -{ - CSFML_CALL(view, Zoom(factor)); -} diff --git a/bindings/c/src/SFML/Graphics/ViewStruct.h b/bindings/c/src/SFML/Graphics/ViewStruct.h deleted file mode 100644 index e41b8211..00000000 --- a/bindings/c/src/SFML/Graphics/ViewStruct.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_VIEWSTRUCT_H -#define SFML_VIEWSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfMusic -//////////////////////////////////////////////////////////// -struct sfView -{ - sf::View This; -}; - - -#endif // SFML_VIEWSTRUCT_H diff --git a/bindings/c/src/SFML/Internal.h b/bindings/c/src/SFML/Internal.h deleted file mode 100644 index e6dd6cfc..00000000 --- a/bindings/c/src/SFML/Internal.h +++ /dev/null @@ -1,108 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_INTERNAL_H -#define SFML_INTERNAL_H - -//////////////////////////////////////////////////////////// -// Define macros to check the validity of CSFML objects -// in debug run -//////////////////////////////////////////////////////////// -#include - -#ifndef NDEBUG - - #define CSFML_CHECK(Object) \ - if (Object == NULL) \ - { \ - fprintf(stderr, "SFML warning : trying to use a null " #Object " object\n"); \ - return; \ - } - - #define CSFML_CALL(Object, Function) \ - if (Object) \ - { \ - (Object->This.Function); \ - } \ - else \ - { \ - fprintf(stderr, "SFML warning : trying to use a null " #Object " object\n"); \ - } \ - - #define CSFML_CALL_PTR(Object, Function) \ - if (Object) \ - { \ - (Object->This->Function); \ - } \ - else \ - { \ - fprintf(stderr, "SFML warning : trying to use a null " #Object " object\n"); \ - } \ - - #define CSFML_CHECK_RETURN(Object, Default) \ - if (Object == NULL) \ - { \ - fprintf(stderr, "SFML warning : trying to use a null " #Object " object\n"); \ - return Default; \ - } - - #define CSFML_CALL_RETURN(Object, Function, Default) \ - if (Object) \ - { \ - return (Object->This.Function); \ - } \ - else \ - { \ - fprintf(stderr, "SFML warning : trying to use a null " #Object " object\n"); \ - return Default; \ - } \ - - #define CSFML_CALL_PTR_RETURN(Object, Function, Default) \ - if (Object) \ - { \ - return (Object->This->Function); \ - } \ - else \ - { \ - fprintf(stderr, "SFML warning : trying to use a null " #Object " object\n"); \ - return Default; \ - } \ - -#else - - #define CSFML_CHECK(Object) - - #define CSFML_CALL(Object, Function) (Object->This.Function); - - #define CSFML_CALL_PTR(Object, Function) (Object->This->Function); - - #define CSFML_CHECK_RETURN(Object, Default) (void)Default; - - #define CSFML_CALL_RETURN(Object, Function, Default) (void)Default; return (Object->This.Function); - - #define CSFML_CALL_PTR_RETURN(Object, Function, Default) (void)Default; return (Object->This->Function); - -#endif - -#endif // SFML_INTERNAL_H diff --git a/bindings/c/src/SFML/Main/CMakeLists.txt b/bindings/c/src/SFML/Main/CMakeLists.txt deleted file mode 100644 index 09840094..00000000 --- a/bindings/c/src/SFML/Main/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ - -# define the csfml-main target -add_library(csfml-main STATIC ${CMAKE_SOURCE_DIR}/src/SFML/Main/SFML_Main.cpp) - -# set the debug suffix -set_target_properties(csfml-main PROPERTIES DEBUG_POSTFIX -d) - -# insert the major version number in the output filename -set_target_properties(csfml-main PROPERTIES OUTPUT_NAME "csfml-main") diff --git a/bindings/c/src/SFML/Main/SFML_Main.cpp b/bindings/c/src/SFML/Main/SFML_Main.cpp deleted file mode 100644 index a39d0c10..00000000 --- a/bindings/c/src/SFML/Main/SFML_Main.cpp +++ /dev/null @@ -1,44 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - - -//////////////////////////////////////////////////////////// -// Windows specific : defines the WinMain entry function, -// so that developers can use the standard main function -// even in a Win32 Application project, and keep a portable code -//////////////////////////////////////////////////////////// - - -#if defined(_WIN32) - - #include - - extern int main(int argc, char* argv[]); - - int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, INT) - { - return main(__argc, __argv); - } - -#endif // _WIN32 diff --git a/bindings/c/src/SFML/Network/CMakeLists.txt b/bindings/c/src/SFML/Network/CMakeLists.txt deleted file mode 100644 index 6db20056..00000000 --- a/bindings/c/src/SFML/Network/CMakeLists.txt +++ /dev/null @@ -1,37 +0,0 @@ - -set(INCROOT ${CMAKE_SOURCE_DIR}/include/SFML/Network) -set(SRCROOT ${CMAKE_SOURCE_DIR}/src/SFML/Network) - -# all source files -set(SRC - ${SRCROOT}/Ftp.cpp - ${SRCROOT}/FtpStruct.h - ${INCROOT}/Ftp.h - ${SRCROOT}/Http.cpp - ${SRCROOT}/HttpStruct.h - ${INCROOT}/Http.h - ${SRCROOT}/IpAddress.cpp - ${INCROOT}/IpAddress.h - ${SRCROOT}/Packet.cpp - ${SRCROOT}/PacketStruct.h - ${INCROOT}/Packet.h - ${SRCROOT}/SocketSelector.cpp - ${SRCROOT}/SocketSelectorStruct.h - ${INCROOT}/SocketSelector.h - ${INCROOT}/SocketStatus.h - ${SRCROOT}/TcpListener.cpp - ${SRCROOT}/TcpListenerStruct.h - ${INCROOT}/TcpListener.h - ${SRCROOT}/TcpSocket.cpp - ${SRCROOT}/TcpSocketStruct.h - ${INCROOT}/TcpSocket.h - ${INCROOT}/Types.h - ${SRCROOT}/UdpSocket.cpp - ${SRCROOT}/UdpSocketStruct.h - ${INCROOT}/UdpSocket.h -) - -# define the csfml-network target -csfml_add_library(csfml-network - SOURCES ${SRC} - DEPENDS ${SFML_NETWORK_LIBRARY} ${SFML_SYSTEM_LIBRARY}) diff --git a/bindings/c/src/SFML/Network/Ftp.cpp b/bindings/c/src/SFML/Network/Ftp.cpp deleted file mode 100644 index 2a282ca2..00000000 --- a/bindings/c/src/SFML/Network/Ftp.cpp +++ /dev/null @@ -1,377 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Destroy an existing Ftp directory response -//////////////////////////////////////////////////////////// -void sfFtpListingResponse_Destroy(sfFtpListingResponse* ftpListingResponse) -{ - delete ftpListingResponse; -} - - -//////////////////////////////////////////////////////////// -/// Convenience function to check if the response status code -/// means a success -//////////////////////////////////////////////////////////// -sfBool sfFtpListingResponse_IsOk(const sfFtpListingResponse* ftpListingResponse) -{ - CSFML_CALL_RETURN(ftpListingResponse, IsOk(), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Get the response status code -//////////////////////////////////////////////////////////// -sfFtpStatus sfFtpListingResponse_GetStatus(const sfFtpListingResponse* ftpListingResponse) -{ - CSFML_CHECK_RETURN(ftpListingResponse, sfFtpInvalidResponse); - - return static_cast(ftpListingResponse->This.GetStatus()); -} - - -//////////////////////////////////////////////////////////// -/// Get the full message contained in the response -//////////////////////////////////////////////////////////// -const char* sfFtpListingResponse_GetMessage(const sfFtpListingResponse* ftpListingResponse) -{ - CSFML_CHECK_RETURN(ftpListingResponse, NULL); - - return ftpListingResponse->This.GetMessage().c_str(); -} - - -//////////////////////////////////////////////////////////// -/// Get the number of filenames in the listing -//////////////////////////////////////////////////////////// -size_t sfFtpListingResponse_GetCount(const sfFtpListingResponse* ftpListingResponse) -{ - CSFML_CHECK_RETURN(ftpListingResponse, 0); - - return ftpListingResponse->This.GetFilenames().size(); -} - - -//////////////////////////////////////////////////////////// -/// Get the Index-th filename in the directory -//////////////////////////////////////////////////////////// -const char* sfFtpListingResponse_GetFilename(const sfFtpListingResponse* ftpListingResponse, size_t index) -{ - CSFML_CHECK_RETURN(ftpListingResponse, NULL); - - return ftpListingResponse->This.GetFilenames()[index].c_str(); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing Ftp directory response -//////////////////////////////////////////////////////////// -void sfFtpDirectoryResponse_Destroy(sfFtpDirectoryResponse* ftpDirectoryResponse) -{ - delete ftpDirectoryResponse; -} - - -//////////////////////////////////////////////////////////// -/// Convenience function to check if the response status code -/// means a success -//////////////////////////////////////////////////////////// -sfBool sfFtpDirectoryResponse_IsOk(const sfFtpDirectoryResponse* ftpDirectoryResponse) -{ - CSFML_CALL_RETURN(ftpDirectoryResponse, IsOk(), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Get the response status code -//////////////////////////////////////////////////////////// -sfFtpStatus sfFtpDirectoryResponse_GetStatus(const sfFtpDirectoryResponse* ftpDirectoryResponse) -{ - CSFML_CHECK_RETURN(ftpDirectoryResponse, sfFtpInvalidResponse); - - return static_cast(ftpDirectoryResponse->This.GetStatus()); -} - - -//////////////////////////////////////////////////////////// -/// Get the full message contained in the response -//////////////////////////////////////////////////////////// -const char* sfFtpDirectoryResponse_GetMessage(const sfFtpDirectoryResponse* ftpDirectoryResponse) -{ - CSFML_CHECK_RETURN(ftpDirectoryResponse, NULL); - - return ftpDirectoryResponse->This.GetMessage().c_str(); -} - - -//////////////////////////////////////////////////////////// -/// Get the directory returned in the response -//////////////////////////////////////////////////////////// -const char* sfFtpDirectoryResponse_GetDirectory(const sfFtpDirectoryResponse* ftpDirectoryResponse) -{ - CSFML_CHECK_RETURN(ftpDirectoryResponse, NULL); - - return ftpDirectoryResponse->This.GetDirectory().c_str(); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing Ftp response -//////////////////////////////////////////////////////////// -void sfFtpResponse_Destroy(sfFtpResponse* ftpResponse) -{ - delete ftpResponse; -} - - -//////////////////////////////////////////////////////////// -/// Convenience function to check if the response status code -/// means a success -//////////////////////////////////////////////////////////// -sfBool sfFtpResponse_IsOk(const sfFtpResponse* ftpResponse) -{ - CSFML_CALL_RETURN(ftpResponse, IsOk(), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Get the response status code -//////////////////////////////////////////////////////////// -sfFtpStatus sfFtpResponse_GetStatus(const sfFtpResponse* ftpResponse) -{ - CSFML_CHECK_RETURN(ftpResponse, sfFtpInvalidResponse); - - return static_cast(ftpResponse->This.GetStatus()); -} - - -//////////////////////////////////////////////////////////// -/// Get the full message contained in the response -//////////////////////////////////////////////////////////// -const char* sfFtpResponse_GetMessage(const sfFtpResponse* ftpResponse) -{ - CSFML_CHECK_RETURN(ftpResponse, NULL); - - return ftpResponse->This.GetMessage().c_str(); -} - - -//////////////////////////////////////////////////////////// -/// Construct a new Ftp -//////////////////////////////////////////////////////////// -sfFtp* sfFtp_Create(void) -{ - return new sfFtp; -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing Ftp -//////////////////////////////////////////////////////////// -void sfFtp_Destroy(sfFtp* ftp) -{ - delete ftp; -} - - -//////////////////////////////////////////////////////////// -/// Connect to the specified FTP server -//////////////////////////////////////////////////////////// -sfFtpResponse* sfFtp_Connect(sfFtp* ftp, sfIpAddress server, unsigned short port, sfUint32 timeout) -{ - CSFML_CHECK_RETURN(ftp, NULL); - - sf::IpAddress SFMLServer(server.Address); - - return new sfFtpResponse(ftp->This.Connect(SFMLServer, port, timeout)); -} - - -//////////////////////////////////////////////////////////// -/// Log in using anonymous account -//////////////////////////////////////////////////////////// -sfFtpResponse* sfFtp_LoginAnonymous(sfFtp* ftp) -{ - CSFML_CHECK_RETURN(ftp, NULL); - - return new sfFtpResponse(ftp->This.Login()); -} - - -//////////////////////////////////////////////////////////// -/// Log in using a username and a password -//////////////////////////////////////////////////////////// -sfFtpResponse* sfFtp_Login(sfFtp* ftp, const char* userName, const char* password) -{ - CSFML_CHECK_RETURN(ftp, NULL); - - return new sfFtpResponse(ftp->This.Login(userName ? userName : "", password ? password : "")); -} - - -//////////////////////////////////////////////////////////// -/// Close the connection with FTP server -//////////////////////////////////////////////////////////// -sfFtpResponse* sfFtp_Disconnect(sfFtp* ftp) -{ - CSFML_CHECK_RETURN(ftp, NULL); - - return new sfFtpResponse(ftp->This.Disconnect()); -} - - -//////////////////////////////////////////////////////////// -/// Send a null command just to prevent from being disconnected -//////////////////////////////////////////////////////////// -sfFtpResponse* sfFtp_KeepAlive(sfFtp* ftp) -{ - CSFML_CHECK_RETURN(ftp, NULL); - - return new sfFtpResponse(ftp->This.KeepAlive()); -} - - -//////////////////////////////////////////////////////////// -/// Get the current working directory -//////////////////////////////////////////////////////////// -sfFtpDirectoryResponse* sfFtp_GetWorkingDirectory(sfFtp* ftp) -{ - CSFML_CHECK_RETURN(ftp, NULL); - - return new sfFtpDirectoryResponse(ftp->This.GetWorkingDirectory()); -} - - -//////////////////////////////////////////////////////////// -/// Get the contents of the given directory -/// (subdirectories and files) -//////////////////////////////////////////////////////////// -sfFtpListingResponse* sfFtp_GetDirectoryListing(sfFtp* ftp, const char* directory) -{ - CSFML_CHECK_RETURN(ftp, NULL); - - return new sfFtpListingResponse(ftp->This.GetDirectoryListing(directory ? directory : "")); -} - - -//////////////////////////////////////////////////////////// -/// Change the current working directory -//////////////////////////////////////////////////////////// -sfFtpResponse* sfFtp_ChangeDirectory(sfFtp* ftp, const char* directory) -{ - CSFML_CHECK_RETURN(ftp, NULL); - - return new sfFtpResponse(ftp->This.ChangeDirectory(directory ? directory : "")); -} - - -//////////////////////////////////////////////////////////// -/// Go to the parent directory of the current one -//////////////////////////////////////////////////////////// -sfFtpResponse* sfFtp_ParentDirectory(sfFtp* ftp) -{ - CSFML_CHECK_RETURN(ftp, NULL); - - return new sfFtpResponse(ftp->This.ParentDirectory()); -} - - -//////////////////////////////////////////////////////////// -/// Create a new directory -//////////////////////////////////////////////////////////// -sfFtpResponse* sfFtp_CreateDirectory(sfFtp* ftp, const char* name) -{ - CSFML_CHECK_RETURN(ftp, NULL); - - return new sfFtpResponse(ftp->This.CreateDirectory(name ? name : "")); -} - - -//////////////////////////////////////////////////////////// -/// Remove an existing directory -//////////////////////////////////////////////////////////// -sfFtpResponse* sfFtp_DeleteDirectory(sfFtp* ftp, const char* name) -{ - CSFML_CHECK_RETURN(ftp, NULL); - - return new sfFtpResponse(ftp->This.DeleteDirectory(name ? name : "")); -} - - -//////////////////////////////////////////////////////////// -/// Rename a file -//////////////////////////////////////////////////////////// -sfFtpResponse* sfFtp_RenameFile(sfFtp* ftp, const char* file, const char* newName) -{ - CSFML_CHECK_RETURN(ftp, NULL); - - return new sfFtpResponse(ftp->This.RenameFile(file ? file : "", newName ? newName : "")); -} - - -//////////////////////////////////////////////////////////// -/// Remove an existing file -//////////////////////////////////////////////////////////// -sfFtpResponse* sfFtp_DeleteFile(sfFtp* ftp, const char* name) -{ - CSFML_CHECK_RETURN(ftp, NULL); - - return new sfFtpResponse(ftp->This.DeleteFile(name ? name : "")); -} - - -//////////////////////////////////////////////////////////// -/// Download a file from the server -//////////////////////////////////////////////////////////// -sfFtpResponse* sfFtp_Download(sfFtp* ftp, const char* distantFile, const char* destPath, sfFtpTransferMode mode) -{ - CSFML_CHECK_RETURN(ftp, NULL); - - return new sfFtpResponse(ftp->This.Download(distantFile ? distantFile : "", - destPath ? destPath : "", - static_cast(mode))); -} - - -//////////////////////////////////////////////////////////// -/// Upload a file to the server -//////////////////////////////////////////////////////////// -sfFtpResponse* sfFtp_Upload(sfFtp* ftp, const char* localFile, const char* destPath, sfFtpTransferMode mode) -{ - CSFML_CHECK_RETURN(ftp, NULL); - - return new sfFtpResponse(ftp->This.Upload(localFile ? localFile : "", - destPath ? destPath : "", - static_cast(mode))); -} diff --git a/bindings/c/src/SFML/Network/FtpStruct.h b/bindings/c/src/SFML/Network/FtpStruct.h deleted file mode 100644 index adcacab1..00000000 --- a/bindings/c/src/SFML/Network/FtpStruct.h +++ /dev/null @@ -1,93 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_FTPSTRUCT_H -#define SFML_FTPSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfFtp -//////////////////////////////////////////////////////////// -struct sfFtp -{ - sf::Ftp This; -}; - - -//////////////////////////////////////////////////////////// -// Internal structure of sfFtpResponse -//////////////////////////////////////////////////////////// -struct sfFtpResponse -{ - sfFtpResponse(const sf::Ftp::Response& Response) - : This(Response) - { - } - - sf::Ftp::Response This; -}; - - -//////////////////////////////////////////////////////////// -// Internal structure of sfFtpDirectoryResponse -//////////////////////////////////////////////////////////// -struct sfFtpDirectoryResponse -{ - sfFtpDirectoryResponse(const sf::Ftp::DirectoryResponse& Response) - : This(Response) - { - } - - sf::Ftp::DirectoryResponse This; -}; - - -//////////////////////////////////////////////////////////// -// Internal structure of sfFtpListingResponse -//////////////////////////////////////////////////////////// -struct sfFtpListingResponse -{ - sfFtpListingResponse(const sf::Ftp::ListingResponse& Response) - : This(Response) - { - } - - ~sfFtpListingResponse() - { - for (std::vector::iterator it = Filenames.begin(); it != Filenames.end(); ++it) - delete[] *it; - } - - sf::Ftp::ListingResponse This; - std::vector Filenames; -}; - - -#endif // SFML_FTPSTRUCT_H diff --git a/bindings/c/src/SFML/Network/Http.cpp b/bindings/c/src/SFML/Network/Http.cpp deleted file mode 100644 index 7c1d784f..00000000 --- a/bindings/c/src/SFML/Network/Http.cpp +++ /dev/null @@ -1,213 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new Http request -//////////////////////////////////////////////////////////// -sfHttpRequest* sfHttpRequest_Create(void) -{ - return new sfHttpRequest; -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing Http request -//////////////////////////////////////////////////////////// -void sfHttpRequest_Destroy(sfHttpRequest* httpRequest) -{ - delete httpRequest; -} - - -//////////////////////////////////////////////////////////// -/// Set the value of a field; the field is added if it doesn't exist -//////////////////////////////////////////////////////////// -void sfHttpRequest_SetField(sfHttpRequest* httpRequest, const char* field, const char* value) -{ - CSFML_CHECK(httpRequest); - if (field) - httpRequest->This.SetField(field, value); -} - - -//////////////////////////////////////////////////////////// -/// Set the request method. -/// This parameter is sfHttpGet by default -//////////////////////////////////////////////////////////// -void sfHttpRequest_SetMethod(sfHttpRequest* httpRequest, sfHttpMethod method) -{ - CSFML_CALL(httpRequest, SetMethod(static_cast(method))); -} - - -//////////////////////////////////////////////////////////// -/// Set the target URI of the request. -/// This parameter is "/" by default -//////////////////////////////////////////////////////////// -void sfHttpRequest_SetUri(sfHttpRequest* httpRequest, const char* uri) -{ - CSFML_CALL(httpRequest, SetUri(uri ? uri : "")); -} - - -//////////////////////////////////////////////////////////// -/// Set the HTTP version of the request. -/// This parameter is 1.0 by default -//////////////////////////////////////////////////////////// -void sfHttpRequest_SetHttpVersion(sfHttpRequest* httpRequest, unsigned int major, unsigned int minor) -{ - CSFML_CALL(httpRequest, SetHttpVersion(major, minor)); -} - - -//////////////////////////////////////////////////////////// -/// Set the body of the request. This parameter is optional and -/// makes sense only for POST requests. -/// This parameter is empty by default -//////////////////////////////////////////////////////////// -void sfHttpRequest_SetBody(sfHttpRequest* httpRequest, const char* body) -{ - CSFML_CALL(httpRequest, SetBody(body ? body : "")); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing Http response -//////////////////////////////////////////////////////////// -void sfHttpResponse_Destroy(sfHttpResponse* httpResponse) -{ - delete httpResponse; -} - - -//////////////////////////////////////////////////////////// -/// Get the value of a field; returns NULL if the field doesn't exist -//////////////////////////////////////////////////////////// -const char* sfHttpResponse_GetField(const sfHttpResponse* httpResponse, const char* field) -{ - CSFML_CHECK_RETURN(httpResponse, NULL); - if (!field) - return NULL; - - return httpResponse->This.GetField(field).c_str(); -} - - -//////////////////////////////////////////////////////////// -/// Get the status of a response -//////////////////////////////////////////////////////////// -sfHttpStatus sfHttpResponse_GetStatus(const sfHttpResponse* httpResponse) -{ - CSFML_CHECK_RETURN(httpResponse, sfHttpInvalidResponse); - - return static_cast(httpResponse->This.GetStatus()); -} - - -//////////////////////////////////////////////////////////// -/// Get the major HTTP version of a response -//////////////////////////////////////////////////////////// -unsigned int sfHttpResponse_GetMajorVersion(const sfHttpResponse* httpResponse) -{ - CSFML_CALL_RETURN(httpResponse, GetMajorHttpVersion(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Get the minor HTTP version of a response -//////////////////////////////////////////////////////////// -unsigned int sfHttpResponse_GetMinorVersion(const sfHttpResponse* httpResponse) -{ - CSFML_CALL_RETURN(httpResponse, GetMinorHttpVersion(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Get the body of the response. The body can contain : -/// - the requested page (for GET requests) -/// - a response from the server (for POST requests) -/// - nothing (for HEAD requests) -/// - an error message (in case of an error) -//////////////////////////////////////////////////////////// -const char* sfHttpResponse_GetBody(const sfHttpResponse* httpResponse) -{ - CSFML_CHECK_RETURN(httpResponse, NULL); - - return httpResponse->This.GetBody().c_str(); -} - - -//////////////////////////////////////////////////////////// -/// Construct a new Http object -//////////////////////////////////////////////////////////// -sfHttp* sfHttp_Create(void) -{ - return new sfHttp; -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing Http object -//////////////////////////////////////////////////////////// -void sfHttp_Destroy(sfHttp* http) -{ - delete http; -} - - -//////////////////////////////////////////////////////////// -/// Set the target host of a Http server -//////////////////////////////////////////////////////////// -void sfHttp_SetHost(sfHttp* http, const char* host, unsigned short port) -{ - CSFML_CALL(http, SetHost(host ? host : "", port)); -} - - -//////////////////////////////////////////////////////////// -/// Send a HTTP request and return the server's response. -/// You must be connected to a host before sending requests. -/// Any missing mandatory header field will be added with an appropriate value. -/// Warning : this function waits for the server's response and may -/// not return instantly; use a thread if you don't want to block your -/// application. -//////////////////////////////////////////////////////////// -sfHttpResponse* sfHttp_SendRequest(sfHttp* http, const sfHttpRequest* request, sfUint32 timeout) -{ - CSFML_CHECK_RETURN(http, NULL); - CSFML_CHECK_RETURN(request, NULL); - - sfHttpResponse* response = new sfHttpResponse; - response->This = http->This.SendRequest(request->This, timeout); - - return response; -} diff --git a/bindings/c/src/SFML/Network/HttpStruct.h b/bindings/c/src/SFML/Network/HttpStruct.h deleted file mode 100644 index f1894453..00000000 --- a/bindings/c/src/SFML/Network/HttpStruct.h +++ /dev/null @@ -1,61 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_HTTPSTRUCT_H -#define SFML_HTTPSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfHttp -//////////////////////////////////////////////////////////// -struct sfHttp -{ - sf::Http This; -}; - - -//////////////////////////////////////////////////////////// -// Internal structure of sfHttpRequest -//////////////////////////////////////////////////////////// -struct sfHttpRequest -{ - sf::Http::Request This; -}; - - -//////////////////////////////////////////////////////////// -// Internal structure of sfHttpResponse -//////////////////////////////////////////////////////////// -struct sfHttpResponse -{ - sf::Http::Response This; -}; - - -#endif // SFML_HTTPSTRUCT_H diff --git a/bindings/c/src/SFML/Network/IpAddress.cpp b/bindings/c/src/SFML/Network/IpAddress.cpp deleted file mode 100644 index 985a9a21..00000000 --- a/bindings/c/src/SFML/Network/IpAddress.cpp +++ /dev/null @@ -1,137 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -namespace -{ - //////////////////////////////////////////////////////////// - /// Helper function for converting a SFML address to a CSFML one - //////////////////////////////////////////////////////////// - sfIpAddress FromSFMLAddress(sf::IpAddress address) - { - sfIpAddress result; - strncpy(result.Address, address.ToString().c_str(), 16); - - return result; - } - - //////////////////////////////////////////////////////////// - /// Helper function for converting a CSFML address to a SFML one - //////////////////////////////////////////////////////////// - sf::IpAddress ToSFMLAddress(sfIpAddress address) - { - return sf::IpAddress(address.Address); - } -} - - -//////////////////////////////////////////////////////////// -/// Construct an address from a string -//////////////////////////////////////////////////////////// -sfIpAddress sfIpAddress_FromString(const char* string) -{ - return FromSFMLAddress(sf::IpAddress(string)); -} - - -//////////////////////////////////////////////////////////// -/// Construct an address from 4 bytes -//////////////////////////////////////////////////////////// -sfIpAddress sfIpAddress_FromBytes(sfUint8 byte0, sfUint8 byte1, sfUint8 byte2, sfUint8 byte3) -{ - return FromSFMLAddress(sf::IpAddress(byte0, byte1, byte2, byte3)); -} - - -//////////////////////////////////////////////////////////// -/// Construct the address from a 32-bits integer -//////////////////////////////////////////////////////////// -sfIpAddress sfIpAddress_FromInteger(sfUint32 address) -{ - return FromSFMLAddress(sf::IpAddress(address)); -} - - -//////////////////////////////////////////////////////////// -/// Get a string representation of an address -//////////////////////////////////////////////////////////// -void sfIpAddress_ToString(sfIpAddress address, char* string) -{ - if (string) - strcpy(string, address.Address); -} - - -//////////////////////////////////////////////////////////// -/// Get an integer representation of the address -//////////////////////////////////////////////////////////// -sfUint32 sfIpAddress_ToInteger(sfIpAddress address) -{ - return ToSFMLAddress(address).ToInteger(); -} - - -//////////////////////////////////////////////////////////// -/// Get the computer's local IP address (from the LAN point of view) -//////////////////////////////////////////////////////////// -sfIpAddress sfIpAddress_GetLocalAddress(void) -{ - return FromSFMLAddress(sf::IpAddress::GetLocalAddress()); -} - - -//////////////////////////////////////////////////////////// -/// Get the computer's public IP address (from the web point of view). -/// The only way to get a public address is to ask it to a -/// distant website ; as a consequence, this function may be -/// very slow -- use it as few as possible ! -//////////////////////////////////////////////////////////// -sfIpAddress sfIpAddress_GetPublicAddress(sfUint32 timeout) -{ - return FromSFMLAddress(sf::IpAddress::GetPublicAddress(timeout)); -} - - -//////////////////////////////////////////////////////////// -/// Get the computer's loopback address -//////////////////////////////////////////////////////////// -sfIpAddress sfIpAddress_LocalHost(void) -{ - return FromSFMLAddress(sf::IpAddress::LocalHost); -} - -//////////////////////////////////////////////////////////// -/// Get the empty/invalid address -//////////////////////////////////////////////////////////// -sfIpAddress sfIpAddress_None(void) -{ - return FromSFMLAddress(sf::IpAddress::None); -} diff --git a/bindings/c/src/SFML/Network/Packet.cpp b/bindings/c/src/SFML/Network/Packet.cpp deleted file mode 100644 index 7c7b6c45..00000000 --- a/bindings/c/src/SFML/Network/Packet.cpp +++ /dev/null @@ -1,210 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -namespace -{ - //////////////////////////////////////////////////////////// - /// Helper function to read a variable from a packet - //////////////////////////////////////////////////////////// - template - T PacketRead(sfPacket* packet) - { - CSFML_CHECK_RETURN(packet, 0); - - T value; - packet->This >> value; - return value; - } - - //////////////////////////////////////////////////////////// - /// Helper function to write a variable to a packet - //////////////////////////////////////////////////////////// - template - void PacketWrite(sfPacket* packet, T value) - { - CSFML_CHECK(packet); - - packet->This << value; - } -} - - -//////////////////////////////////////////////////////////// -/// Create a new empty packet -//////////////////////////////////////////////////////////// -sfPacket* sfPacket_Create(void) -{ - return new sfPacket; -} - - -//////////////////////////////////////////////////////////// -/// Copy an existing packet -//////////////////////////////////////////////////////////// -sfPacket* sfPacket_Copy(sfPacket* packet) -{ - CSFML_CHECK_RETURN(packet, NULL); - - return new sfPacket(*packet); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing packet -//////////////////////////////////////////////////////////// -void sfPacket_Destroy(sfPacket* packet) -{ - delete packet; -} - - -//////////////////////////////////////////////////////////// -/// Append data to the end of a packet -//////////////////////////////////////////////////////////// -void sfPacket_Append(sfPacket* packet, const void* data, size_t sizeInBytes) -{ - CSFML_CALL(packet, Append(data, sizeInBytes)); -} - - -//////////////////////////////////////////////////////////// -/// Clear all the data of a packet -/////////////////////////////////////////////////////////// -void sfPacket_Clear(sfPacket* packet) -{ - CSFML_CALL(packet, Clear()); -} - - -//////////////////////////////////////////////////////////// -/// Get a pointer to the data contained in a packet -/// Warning : the returned pointer may be invalid after you -/// append data to the packet -//////////////////////////////////////////////////////////// -const char* sfPacket_GetData(const sfPacket* packet) -{ - CSFML_CALL_RETURN(packet, GetData(), NULL); -} - - -//////////////////////////////////////////////////////////// -/// Get the size of the data contained in a packet -//////////////////////////////////////////////////////////// -size_t sfPacket_GetDataSize(const sfPacket* packet) -{ - CSFML_CALL_RETURN(packet, GetDataSize(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Tell if the reading position has reached the end of the packet -//////////////////////////////////////////////////////////// -sfBool sfPacket_EndOfPacket(const sfPacket* packet) -{ - CSFML_CALL_RETURN(packet, EndOfPacket(), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Check if a packet is in a valid reading state -//////////////////////////////////////////////////////////// -sfBool sfPacket_CanRead(const sfPacket* packet) -{ - CSFML_CHECK_RETURN(packet, sfFalse); - return packet->This ? sfTrue : sfFalse; -} - - -//////////////////////////////////////////////////////////// -/// Functions to extract data from a packet -/// -/// \param Packet : Packet to read -/// -//////////////////////////////////////////////////////////// -sfBool sfPacket_ReadBool(sfPacket* packet) {return PacketRead(packet);} -sfInt8 sfPacket_ReadInt8(sfPacket* packet) {return PacketRead(packet);} -sfUint8 sfPacket_ReadUint8(sfPacket* packet) {return PacketRead(packet);} -sfInt16 sfPacket_ReadInt16(sfPacket* packet) {return PacketRead(packet);} -sfUint16 sfPacket_ReadUint16(sfPacket* packet) {return PacketRead(packet);} -sfInt32 sfPacket_ReadInt32(sfPacket* packet) {return PacketRead(packet);} -sfUint32 sfPacket_ReadUint32(sfPacket* packet) {return PacketRead(packet);} -float sfPacket_ReadFloat(sfPacket* packet) {return PacketRead(packet);} -double sfPacket_ReadDouble(sfPacket* packet) {return PacketRead(packet);} - -void sfPacket_ReadString(sfPacket* packet, char* string) -{ - CSFML_CHECK(packet); - - if (string) - packet->This >> string; -} - -void sfPacket_ReadWideString(sfPacket* packet, wchar_t* string) -{ - CSFML_CHECK(packet); - - if (string) - packet->This >> string; -} - - -//////////////////////////////////////////////////////////// -/// Functions to insert data into a packet -/// -/// \param Packet : Packet to write -/// -//////////////////////////////////////////////////////////// -void sfPacket_WriteBool(sfPacket* packet, sfBool value) {PacketWrite(packet, static_cast(value));} -void sfPacket_WriteInt8(sfPacket* packet, sfInt8 value) {PacketWrite(packet, value);} -void sfPacket_WriteUint8(sfPacket* packet, sfUint8 value) {PacketWrite(packet, value);} -void sfPacket_WriteInt16(sfPacket* packet, sfInt16 value) {PacketWrite(packet, value);} -void sfPacket_WriteUint16(sfPacket* packet, sfUint16 value) {PacketWrite(packet, value);} -void sfPacket_WriteInt32(sfPacket* packet, sfInt32 value) {PacketWrite(packet, value);} -void sfPacket_WriteUint32(sfPacket* packet, sfUint32 value) {PacketWrite(packet, value);} -void sfPacket_WriteFloat(sfPacket* packet, float value) {PacketWrite(packet, value);} -void sfPacket_WriteDouble(sfPacket* packet, double value) {PacketWrite(packet, value);} - -void sfPacket_WriteString(sfPacket* packet, const char* string) -{ - CSFML_CHECK(packet); - - if (string) - packet->This << string; -} - -void sfPacket_WriteWideString(sfPacket* packet, const wchar_t* string) -{ - CSFML_CHECK(packet); - - if (string) - packet->This << string; -} diff --git a/bindings/c/src/SFML/Network/PacketStruct.h b/bindings/c/src/SFML/Network/PacketStruct.h deleted file mode 100644 index b452fc06..00000000 --- a/bindings/c/src/SFML/Network/PacketStruct.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_PACKETSTRUCT_H -#define SFML_PACKETSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfPacket -//////////////////////////////////////////////////////////// -struct sfPacket -{ - sf::Packet This; -}; - - -#endif // SFML_PACKETSTRUCT_H diff --git a/bindings/c/src/SFML/Network/SocketSelector.cpp b/bindings/c/src/SFML/Network/SocketSelector.cpp deleted file mode 100644 index 7418b9d4..00000000 --- a/bindings/c/src/SFML/Network/SocketSelector.cpp +++ /dev/null @@ -1,142 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new selector -//////////////////////////////////////////////////////////// -sfSocketSelector* sfSocketSelector_Create(void) -{ - return new sfSocketSelector; -} - - -//////////////////////////////////////////////////////////// -/// Copy an existing selector -//////////////////////////////////////////////////////////// -sfSocketSelector* sfSocketSelector_Copy(sfSocketSelector* selector) -{ - CSFML_CHECK_RETURN(selector, NULL); - - return new sfSocketSelector(*selector); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing selector -//////////////////////////////////////////////////////////// -void sfSocketSelector_Destroy(sfSocketSelector* selector) -{ - delete selector; -} - - -//////////////////////////////////////////////////////////// -/// Add a socket to watch to a selector -//////////////////////////////////////////////////////////// -void sfSocketSelector_AddTcpListener(sfSocketSelector* selector, sfTcpListener* socket) -{ - CSFML_CHECK(socket); - CSFML_CALL(selector, Add(socket->This)); -} -void sfSocketSelector_AddTcpSocket(sfSocketSelector* selector, sfTcpSocket* socket) -{ - CSFML_CHECK(socket); - CSFML_CALL(selector, Add(socket->This)); -} -void sfSocketSelector_AddUdpSocket(sfSocketSelector* selector, sfUdpSocket* socket) -{ - CSFML_CHECK(socket); - CSFML_CALL(selector, Add(socket->This)); -} - - -//////////////////////////////////////////////////////////// -/// Remove a socket from a selector -//////////////////////////////////////////////////////////// -void sfSocketSelector_RemoveTcpListener(sfSocketSelector* selector, sfTcpListener* socket) -{ - CSFML_CHECK(socket); - CSFML_CALL(selector, Remove(socket->This)); -} -void sfSocketSelector_RemoveTcpSocket(sfSocketSelector* selector, sfTcpSocket* socket) -{ - CSFML_CHECK(socket); - CSFML_CALL(selector, Remove(socket->This)); -} -void sfSocketSelector_RemoveUdpSocket(sfSocketSelector* selector, sfUdpSocket* socket) -{ - CSFML_CHECK(socket); - CSFML_CALL(selector, Remove(socket->This)); -} - - -//////////////////////////////////////////////////////////// -/// Remove all sockets from a selector -//////////////////////////////////////////////////////////// -void sfSocketSelector_Clear(sfSocketSelector* selector) -{ - CSFML_CALL(selector, Clear()); -} - - -//////////////////////////////////////////////////////////// -/// Wait and collect sockets which are ready for reading. -/// This functions will return either when at least one socket -/// is ready, or when the given timeout is over -//////////////////////////////////////////////////////////// -sfBool sfSocketSelector_Wait(sfSocketSelector* selector, sfUint32 timeout) -{ - CSFML_CALL_RETURN(selector, Wait(timeout), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Test a socket to know if it is ready to receive data -//////////////////////////////////////////////////////////// -sfBool sfSocketSelector_IsTcpListenerReady(const sfSocketSelector* selector, sfTcpListener* socket) -{ - CSFML_CHECK_RETURN(socket, sfFalse); - CSFML_CALL_RETURN(selector, IsReady(socket->This), sfFalse); -} -sfBool sfSocketSelector_IsTcpSocketReady(const sfSocketSelector* selector, sfTcpSocket* socket) -{ - CSFML_CHECK_RETURN(socket, sfFalse); - CSFML_CALL_RETURN(selector, IsReady(socket->This), sfFalse); -} -sfBool sfSocketSelector_IsUdpSocketReady(const sfSocketSelector* selector, sfUdpSocket* socket) -{ - CSFML_CHECK_RETURN(socket, sfFalse); - CSFML_CALL_RETURN(selector, IsReady(socket->This), sfFalse); -} diff --git a/bindings/c/src/SFML/Network/SocketSelectorStruct.h b/bindings/c/src/SFML/Network/SocketSelectorStruct.h deleted file mode 100644 index 740aac20..00000000 --- a/bindings/c/src/SFML/Network/SocketSelectorStruct.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_SOCKETSELECTORSTRUCT_H -#define SFML_SOCKETSELECTORSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfSocketSelector -//////////////////////////////////////////////////////////// -struct sfSocketSelector -{ - sf::SocketSelector This; -}; - - -#endif // SFML_SOCKETSELECTORSTRUCT_H diff --git a/bindings/c/src/SFML/Network/TcpListener.cpp b/bindings/c/src/SFML/Network/TcpListener.cpp deleted file mode 100644 index d04bf4f5..00000000 --- a/bindings/c/src/SFML/Network/TcpListener.cpp +++ /dev/null @@ -1,94 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new TCP socket -//////////////////////////////////////////////////////////// -sfTcpListener* sfTcpListener_Create(void) -{ - return new sfTcpListener; -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing TCP socket -//////////////////////////////////////////////////////////// -void sfTcpListener_Destroy(sfTcpListener* socket) -{ - delete socket; -} - - -//////////////////////////////////////////////////////////// -/// Change the blocking state of a TCP socket. -/// The default behaviour of a socket is blocking -//////////////////////////////////////////////////////////// -void sfTcpListener_SetBlocking(sfTcpListener* socket, sfBool blocking) -{ - CSFML_CALL(socket, SetBlocking(blocking == sfTrue)); -} - - -//////////////////////////////////////////////////////////// -/// Get the blocking state of the socket -//////////////////////////////////////////////////////////// -sfBool sfTcpListener_IsBlocking(const sfTcpListener* socket) -{ - CSFML_CALL_RETURN(socket, IsBlocking(), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Listen to a specified port for incoming data or connections -//////////////////////////////////////////////////////////// -sfSocketStatus sfTcpListener_Listen(sfTcpListener* socket, unsigned short port) -{ - CSFML_CHECK_RETURN(socket, sfSocketError); - - return static_cast(socket->This.Listen(port)); -} - - -//////////////////////////////////////////////////////////// -/// Wait for a connection (must be listening to a port). -/// This function is blocking, ie. it won't return before -/// a connection has been accepted -//////////////////////////////////////////////////////////// -sfSocketStatus sfTcpListener_Accept(sfTcpListener* socket, sfTcpSocket** connected) -{ - CSFML_CHECK_RETURN(socket, sfSocketError); - CSFML_CHECK_RETURN(connected, sfSocketError); - - *connected = new sfTcpSocket; - return static_cast(socket->This.Accept((*connected)->This)); -} diff --git a/bindings/c/src/SFML/Network/TcpListenerStruct.h b/bindings/c/src/SFML/Network/TcpListenerStruct.h deleted file mode 100644 index 292dadd6..00000000 --- a/bindings/c/src/SFML/Network/TcpListenerStruct.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_TCPLISTENERSTRUCT_H -#define SFML_TCPLISTENERSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfTcpListener -//////////////////////////////////////////////////////////// -struct sfTcpListener -{ - sf::TcpListener This; -}; - - -#endif // SFML_TCPLISTENERSTRUCT_H diff --git a/bindings/c/src/SFML/Network/TcpSocket.cpp b/bindings/c/src/SFML/Network/TcpSocket.cpp deleted file mode 100644 index 9cba5b82..00000000 --- a/bindings/c/src/SFML/Network/TcpSocket.cpp +++ /dev/null @@ -1,179 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new TCP socket -//////////////////////////////////////////////////////////// -sfTcpSocket* sfTcpSocket_Create(void) -{ - return new sfTcpSocket; -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing TCP socket -//////////////////////////////////////////////////////////// -void sfTcpSocket_Destroy(sfTcpSocket* socket) -{ - delete socket; -} - - -//////////////////////////////////////////////////////////// -/// Change the blocking state of a TCP socket. -/// The default behaviour of a socket is blocking -//////////////////////////////////////////////////////////// -void sfTcpSocket_SetBlocking(sfTcpSocket* socket, sfBool blocking) -{ - CSFML_CALL(socket, SetBlocking(blocking == sfTrue)); -} - - -//////////////////////////////////////////////////////////// -/// Get the blocking state of the socket -//////////////////////////////////////////////////////////// -sfBool sfTcpSocket_IsBlocking(const sfTcpSocket* socket) -{ - CSFML_CALL_RETURN(socket, IsBlocking(), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Get the port to which a socket is bound locally -//////////////////////////////////////////////////////////// -unsigned short sfTcpSocket_GetLocalPort(const sfTcpSocket* socket) -{ - CSFML_CALL_RETURN(socket, GetLocalPort(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Get the address of the connected peer of a socket -//////////////////////////////////////////////////////////// -sfIpAddress sfTcpSocket_GetRemoteAddress(const sfTcpSocket* socket) -{ - sfIpAddress result; - CSFML_CHECK_RETURN(socket, result); - - sf::IpAddress address = socket->This.GetRemoteAddress(); - strncpy(result.Address, address.ToString().c_str(), 16); - - return result; -} - - -//////////////////////////////////////////////////////////// -/// Get the port of the connected peer to which a socket is connected -//////////////////////////////////////////////////////////// -unsigned short sfTcpSocket_GetRemotePort(const sfTcpSocket* socket) -{ - CSFML_CALL_RETURN(socket, GetRemotePort(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Connect a TCP socket to another computer on a specified port -//////////////////////////////////////////////////////////// -sfSocketStatus sfTcpSocket_Connect(sfTcpSocket* socket, sfIpAddress host, unsigned short port, sfUint32 timeout) -{ - sf::IpAddress address(host.Address); - - CSFML_CHECK_RETURN(socket, sfSocketError); - - return static_cast(socket->This.Connect(address, port, timeout)); -} - - -//////////////////////////////////////////////////////////// -/// Disconnect a connect from its remote peer -//////////////////////////////////////////////////////////// -void sfTcpSocket_Disconnect(sfTcpSocket* socket) -{ - CSFML_CALL(socket, Disconnect()); -} - - -//////////////////////////////////////////////////////////// -/// Send an array of bytes to the host (must be connected first) -//////////////////////////////////////////////////////////// -sfSocketStatus sfTcpSocket_Send(sfTcpSocket* socket, const char* data, size_t size) -{ - CSFML_CHECK_RETURN(socket, sfSocketError); - - return static_cast(socket->This.Send(data, size)); -} - - -//////////////////////////////////////////////////////////// -/// Receive an array of bytes from the host (must be connected first) -//////////////////////////////////////////////////////////// -sfSocketStatus sfTcpSocket_Receive(sfTcpSocket* socket, char* data, size_t maxSize, size_t* sizeReceived) -{ - CSFML_CHECK_RETURN(socket, sfSocketError); - - if (sizeReceived) - { - return static_cast(socket->This.Receive(data, maxSize, *sizeReceived)); - } - else - { - std::size_t size = 0; - return static_cast(socket->This.Receive(data, maxSize, size)); - } -} - - -//////////////////////////////////////////////////////////// -/// Send a packet of data to the host (must be connected first) -//////////////////////////////////////////////////////////// -sfSocketStatus sfTcpSocket_SendPacket(sfTcpSocket* socket, sfPacket* packet) -{ - CSFML_CHECK_RETURN(socket, sfSocketError); - CSFML_CHECK_RETURN(packet, sfSocketError); - - return static_cast(socket->This.Send(packet->This)); -} - - -//////////////////////////////////////////////////////////// -/// Receive a packet from the host (must be connected first) -//////////////////////////////////////////////////////////// -sfSocketStatus sfTcpSocket_ReceivePacket(sfTcpSocket* socket, sfPacket* packet) -{ - CSFML_CHECK_RETURN(socket, sfSocketError); - CSFML_CHECK_RETURN(packet, sfSocketError); - - return static_cast(socket->This.Receive(packet->This)); -} diff --git a/bindings/c/src/SFML/Network/TcpSocketStruct.h b/bindings/c/src/SFML/Network/TcpSocketStruct.h deleted file mode 100644 index f3f434bf..00000000 --- a/bindings/c/src/SFML/Network/TcpSocketStruct.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_TCPSOCKETSTRUCT_H -#define SFML_TCPSOCKETSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfTcpSocket -//////////////////////////////////////////////////////////// -struct sfTcpSocket -{ - sf::TcpSocket This; -}; - - -#endif // SFML_TCPSOCKETSTRUCT_H diff --git a/bindings/c/src/SFML/Network/UdpSocket.cpp b/bindings/c/src/SFML/Network/UdpSocket.cpp deleted file mode 100644 index 9f9a405e..00000000 --- a/bindings/c/src/SFML/Network/UdpSocket.cpp +++ /dev/null @@ -1,184 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new UDP socket -//////////////////////////////////////////////////////////// -sfUdpSocket* sfUdpSocket_Create(void) -{ - return new sfUdpSocket; -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing UDP socket -//////////////////////////////////////////////////////////// -void sfUdpSocket_Destroy(sfUdpSocket* socket) -{ - delete socket; -} - - -//////////////////////////////////////////////////////////// -/// Change the blocking state of a UDP socket. -/// The default behaviour of a socket is blocking -//////////////////////////////////////////////////////////// -void sfUdpSocket_SetBlocking(sfUdpSocket* socket, sfBool blocking) -{ - CSFML_CALL(socket, SetBlocking(blocking == sfTrue)); -} - -//////////////////////////////////////////////////////////// -/// Get the blocking state of the socket -//////////////////////////////////////////////////////////// -sfBool sfUdpSocket_IsBlocking(const sfUdpSocket* socket) -{ - CSFML_CALL_RETURN(socket, IsBlocking(), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Get the port to which the socket is bound locally -//////////////////////////////////////////////////////////// -unsigned short sfUdpSocket_GetLocalPort(const sfUdpSocket* socket) -{ - CSFML_CALL_RETURN(socket, GetLocalPort(), 0); -} - - -//////////////////////////////////////////////////////////// -/// Bind a socket to a specific port -//////////////////////////////////////////////////////////// -sfSocketStatus sfUdpSocket_Bind(sfUdpSocket* socket, unsigned short port) -{ - CSFML_CHECK_RETURN(socket, sfSocketError); - - return static_cast(socket->This.Bind(port)); -} - - -//////////////////////////////////////////////////////////// -/// Unbind a socket from its previous port, if any -//////////////////////////////////////////////////////////// -void sfUdpSocket_Unbind(sfUdpSocket* socket) -{ - CSFML_CALL(socket, Unbind()); -} - - -//////////////////////////////////////////////////////////// -/// Send an array of bytes -//////////////////////////////////////////////////////////// -sfSocketStatus sfUdpSocket_Send(sfUdpSocket* socket, const char* data, size_t size, sfIpAddress address, unsigned short port) -{ - CSFML_CHECK_RETURN(socket, sfSocketError) - - // Convert the address - sf::IpAddress receiver(address.Address); - - return static_cast(socket->This.Send(data, size, receiver, port)); -} - - -//////////////////////////////////////////////////////////// -/// Receive an array of bytes. -/// This function is blocking, ie. it won't return before some -/// bytes have been received -//////////////////////////////////////////////////////////// -sfSocketStatus sfUdpSocket_Receive(sfUdpSocket* socket, char* data, size_t maxSize, size_t* sizeReceived, sfIpAddress* address, unsigned short* port) -{ - CSFML_CHECK_RETURN(socket, sfSocketError); - - // Call SFML internal function - sf::IpAddress sender; - unsigned short senderPort; - std::size_t received; - - sf::Socket::Status status = socket->This.Receive(data, maxSize, received, sender, senderPort); - if (status != sf::Socket::Done) - return static_cast(status); - - if (sizeReceived) - *sizeReceived = received; - - if (address) - strncpy(address->Address, sender.ToString().c_str(), 16); - - if (port) - *port = senderPort; - - return sfSocketDone; -} - - -//////////////////////////////////////////////////////////// -/// Send a packet of data -//////////////////////////////////////////////////////////// -sfSocketStatus sfUdpSocket_SendPacket(sfUdpSocket* socket, sfPacket* packet, sfIpAddress address, unsigned short port) -{ - CSFML_CHECK_RETURN(socket, sfSocketError); - CSFML_CHECK_RETURN(packet, sfSocketError); - - // Convert the address - sf::IpAddress receiver(address.Address); - - return static_cast(socket->This.Send(packet->This, receiver, port)); -} - - -//////////////////////////////////////////////////////////// -/// Receive a packet. -/// This function is blocking, ie. it won't return before a -/// packet is received -//////////////////////////////////////////////////////////// -sfSocketStatus sfUdpSocket_ReceivePacket(sfUdpSocket* socket, sfPacket* packet, sfIpAddress* address, unsigned short* port) -{ - CSFML_CHECK_RETURN(socket, sfSocketError); - CSFML_CHECK_RETURN(packet, sfSocketError); - - sf::IpAddress sender; - unsigned short senderPort; - sf::Socket::Status status = socket->This.Receive(packet->This, sender, senderPort); - if (status != sf::Socket::Done) - return static_cast(status); - - if (address) - strncpy(address->Address, sender.ToString().c_str(), 16); - - if (port) - *port = senderPort; - - return sfSocketDone; -} diff --git a/bindings/c/src/SFML/Network/UdpSocketStruct.h b/bindings/c/src/SFML/Network/UdpSocketStruct.h deleted file mode 100644 index 40833eff..00000000 --- a/bindings/c/src/SFML/Network/UdpSocketStruct.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_UDPSOCKETSTRUCT_H -#define SFML_UDPSOCKETSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfUdpSocket -//////////////////////////////////////////////////////////// -struct sfUdpSocket -{ - sf::UdpSocket This; -}; - - -#endif // SFML_UDPSOCKETSTRUCT_H diff --git a/bindings/c/src/SFML/System/CMakeLists.txt b/bindings/c/src/SFML/System/CMakeLists.txt deleted file mode 100644 index 1ce356ce..00000000 --- a/bindings/c/src/SFML/System/CMakeLists.txt +++ /dev/null @@ -1,24 +0,0 @@ - -set(INCROOT ${CMAKE_SOURCE_DIR}/include/SFML/System) -set(SRCROOT ${CMAKE_SOURCE_DIR}/src/SFML/System) - -# all source files -set(SRC - ${SRCROOT}/Clock.cpp - ${SRCROOT}/ClockStruct.h - ${INCROOT}/Clock.h - ${SRCROOT}/Mutex.cpp - ${SRCROOT}/MutexStruct.h - ${INCROOT}/Mutex.h - ${SRCROOT}/Sleep.cpp - ${INCROOT}/Sleep.h - ${SRCROOT}/Thread.cpp - ${SRCROOT}/ThreadStruct.h - ${INCROOT}/Thread.h - ${INCROOT}/Types.h -) - -# define the csfml-system target -csfml_add_library(csfml-system - SOURCES ${SRC} - DEPENDS ${SFML_SYSTEM_LIBRARY}) diff --git a/bindings/c/src/SFML/System/Clock.cpp b/bindings/c/src/SFML/System/Clock.cpp deleted file mode 100644 index 69667612..00000000 --- a/bindings/c/src/SFML/System/Clock.cpp +++ /dev/null @@ -1,77 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new clock and start it -//////////////////////////////////////////////////////////// -sfClock* sfClock_Create(void) -{ - return new sfClock; -} - - -//////////////////////////////////////////////////////////// -/// Copy an existing clock -//////////////////////////////////////////////////////////// -sfClock* sfClock_Copy(sfClock* clock) -{ - CSFML_CHECK_RETURN(clock, NULL); - - return new sfClock(*clock); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing clock -//////////////////////////////////////////////////////////// -void sfClock_Destroy(sfClock* clock) -{ - delete clock; -} - - -//////////////////////////////////////////////////////////// -/// Get the time elapsed for a clock -//////////////////////////////////////////////////////////// -sfUint32 sfClock_GetTime(const sfClock* clock) -{ - CSFML_CALL_RETURN(clock, GetElapsedTime(), 0) -} - - -//////////////////////////////////////////////////////////// -/// Restart a clock -//////////////////////////////////////////////////////////// -void sfClock_Reset(sfClock* clock) -{ - CSFML_CALL(clock, Reset()) -} diff --git a/bindings/c/src/SFML/System/ClockStruct.h b/bindings/c/src/SFML/System/ClockStruct.h deleted file mode 100644 index 20b4edc0..00000000 --- a/bindings/c/src/SFML/System/ClockStruct.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_CLOCKSTRUCT_H -#define SFML_CLOCKSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfClock -//////////////////////////////////////////////////////////// -struct sfClock -{ - sf::Clock This; -}; - - -#endif // SFML_CLOCKSTRUCT_H diff --git a/bindings/c/src/SFML/System/Mutex.cpp b/bindings/c/src/SFML/System/Mutex.cpp deleted file mode 100644 index f9ac7860..00000000 --- a/bindings/c/src/SFML/System/Mutex.cpp +++ /dev/null @@ -1,66 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Create a new mutex -//////////////////////////////////////////////////////////// -sfMutex* sfMutex_Create(void) -{ - return new sfMutex; -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing mutex -//////////////////////////////////////////////////////////// -void sfMutex_Destroy(sfMutex* mutex) -{ - delete mutex; -} - - -//////////////////////////////////////////////////////////// -/// Lock a mutex -//////////////////////////////////////////////////////////// -void sfMutex_Lock(sfMutex* mutex) -{ - CSFML_CALL(mutex, Lock()) -} - - -//////////////////////////////////////////////////////////// -/// Unlock a mutex -//////////////////////////////////////////////////////////// -void sfMutex_Unlock(sfMutex* mutex) -{ - CSFML_CALL(mutex, Unlock()) -} diff --git a/bindings/c/src/SFML/System/MutexStruct.h b/bindings/c/src/SFML/System/MutexStruct.h deleted file mode 100644 index 68f6786e..00000000 --- a/bindings/c/src/SFML/System/MutexStruct.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_MUTEXSTRUCT_H -#define SFML_MUTEXSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfMutex -//////////////////////////////////////////////////////////// -struct sfMutex -{ - sf::Mutex This; -}; - - -#endif // SFML_MUTEXSTRUCT_H diff --git a/bindings/c/src/SFML/System/Sleep.cpp b/bindings/c/src/SFML/System/Sleep.cpp deleted file mode 100644 index 8d8f9fc5..00000000 --- a/bindings/c/src/SFML/System/Sleep.cpp +++ /dev/null @@ -1,39 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Make the current thread sleep for a given duration -//////////////////////////////////////////////////////////// -void sfSleep(sfUint32 Duration) -{ - sf::Sleep(Duration); -} diff --git a/bindings/c/src/SFML/System/Thread.cpp b/bindings/c/src/SFML/System/Thread.cpp deleted file mode 100644 index 4b312aee..00000000 --- a/bindings/c/src/SFML/System/Thread.cpp +++ /dev/null @@ -1,78 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new thread from a function pointer -//////////////////////////////////////////////////////////// -sfThread* sfThread_Create(void (*function)(void*), void* userData) -{ - return new sfThread(function, userData); -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing thread -//////////////////////////////////////////////////////////// -void sfThread_Destroy(sfThread* thread) -{ - delete thread; -} - - -//////////////////////////////////////////////////////////// -/// Run a thread -//////////////////////////////////////////////////////////// -void sfThread_Launch(sfThread* thread) -{ - CSFML_CALL(thread, Launch()); -} - - -//////////////////////////////////////////////////////////// -/// Wait until a thread finishes -//////////////////////////////////////////////////////////// -void sfThread_Wait(sfThread* thread) -{ - CSFML_CALL(thread, Wait()); -} - - -//////////////////////////////////////////////////////////// -/// Terminate a thread -/// Terminating a thread with this function is not safe, -/// you should rather try to make the thread function -/// terminate by itself -//////////////////////////////////////////////////////////// -void sfThread_Terminate(sfThread* thread) -{ - CSFML_CALL(thread, Terminate()); -} diff --git a/bindings/c/src/SFML/System/ThreadStruct.h b/bindings/c/src/SFML/System/ThreadStruct.h deleted file mode 100644 index c25ffddb..00000000 --- a/bindings/c/src/SFML/System/ThreadStruct.h +++ /dev/null @@ -1,48 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_THREADSTRUCT_H -#define SFML_THREADSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfThread -//////////////////////////////////////////////////////////// -struct sfThread -{ - sfThread(void (*Function)(void*), void* UserData) : - This(Function, UserData) - { - } - - sf::Thread This; -}; - - -#endif // SFML_THREADSTRUCT_H diff --git a/bindings/c/src/SFML/Window/CMakeLists.txt b/bindings/c/src/SFML/Window/CMakeLists.txt deleted file mode 100644 index 1e8595ec..00000000 --- a/bindings/c/src/SFML/Window/CMakeLists.txt +++ /dev/null @@ -1,29 +0,0 @@ - -set(INCROOT ${CMAKE_SOURCE_DIR}/include/SFML/Window) -set(SRCROOT ${CMAKE_SOURCE_DIR}/src/SFML/Window) - -# all source files -set(SRC - ${SRCROOT}/Context.cpp - ${SRCROOT}/ContextStruct.h - ${INCROOT}/Context.h - ${INCROOT}/Event.h - ${SRCROOT}/Joystick.cpp - ${SRCROOT}/Keyboard.cpp - ${SRCROOT}/Mouse.cpp - ${INCROOT}/Joystick.h - ${INCROOT}/Keyboard.h - ${INCROOT}/Mouse.h - ${INCROOT}/Types.h - ${SRCROOT}/VideoMode.cpp - ${INCROOT}/VideoMode.h - ${SRCROOT}/Window.cpp - ${SRCROOT}/WindowStruct.h - ${INCROOT}/Window.h - ${INCROOT}/WindowHandle.h -) - -# define the csfml-window target -csfml_add_library(csfml-window - SOURCES ${SRC} - DEPENDS ${SFML_WINDOW_LIBRARY} ${SFML_SYSTEM_LIBRARY}) diff --git a/bindings/c/src/SFML/Window/Context.cpp b/bindings/c/src/SFML/Window/Context.cpp deleted file mode 100644 index 1b731f5e..00000000 --- a/bindings/c/src/SFML/Window/Context.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new context -//////////////////////////////////////////////////////////// -sfContext* sfContext_Create(void) -{ - return new sfContext; -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing context -//////////////////////////////////////////////////////////// -void sfContext_Destroy(sfContext* context) -{ - delete context; -} - - -//////////////////////////////////////////////////////////// -/// Activate or deactivate a context -//////////////////////////////////////////////////////////// -void sfContext_SetActive(sfContext* context, sfBool active) -{ - CSFML_CALL(context, SetActive(active == sfTrue)) -} diff --git a/bindings/c/src/SFML/Window/ContextStruct.h b/bindings/c/src/SFML/Window/ContextStruct.h deleted file mode 100644 index fcae94e2..00000000 --- a/bindings/c/src/SFML/Window/ContextStruct.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_CONTEXTSTRUCT_H -#define SFML_CONTEXTSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfContext -//////////////////////////////////////////////////////////// -struct sfContext -{ - sf::Context This; -}; - - -#endif // SFML_CONTEXTSTRUCT_H diff --git a/bindings/c/src/SFML/Window/Joystick.cpp b/bindings/c/src/SFML/Window/Joystick.cpp deleted file mode 100644 index cc60c4c4..00000000 --- a/bindings/c/src/SFML/Window/Joystick.cpp +++ /dev/null @@ -1,84 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Check if a joystick is connected -//////////////////////////////////////////////////////////// -sfBool sfJoystick_IsConnected(unsigned int joystick) -{ - return sf::Joystick::IsConnected(joystick) ? sfTrue : sfFalse; -} - - -//////////////////////////////////////////////////////////// -/// Return the number of buttons supported by a joystick -//////////////////////////////////////////////////////////// -unsigned int sfJoystick_GetButtonCount(unsigned int joystick) -{ - return sf::Joystick::GetButtonCount(joystick); -} - - -//////////////////////////////////////////////////////////// -/// Check if a joystick supports a given axis -//////////////////////////////////////////////////////////// -sfBool sfJoystick_HasAxis(unsigned int joystick, sfJoystickAxis axis) -{ - return sf::Joystick::HasAxis(joystick, static_cast(axis)) ? sfTrue : sfFalse; -} - - -//////////////////////////////////////////////////////////// -/// Check if a joystick button is pressed -//////////////////////////////////////////////////////////// -sfBool sfJoystick_IsButtonPressed(unsigned int joystick, unsigned int button) -{ - return sf::Joystick::IsButtonPressed(joystick, button) ? sfTrue : sfFalse; -} - - -//////////////////////////////////////////////////////////// -/// Get the current position of a joystick axis -//////////////////////////////////////////////////////////// -float sfJoystick_GetAxisPosition(unsigned int joystick, sfJoystickAxis axis) -{ - return sf::Joystick::GetAxisPosition(joystick, static_cast(axis)); -} - - -//////////////////////////////////////////////////////////// -/// Update the states of all joysticks -//////////////////////////////////////////////////////////// -void sfJoystick_Update(void) -{ - sf::Joystick::Update(); -} diff --git a/bindings/c/src/SFML/Window/Keyboard.cpp b/bindings/c/src/SFML/Window/Keyboard.cpp deleted file mode 100644 index 190c118e..00000000 --- a/bindings/c/src/SFML/Window/Keyboard.cpp +++ /dev/null @@ -1,39 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Check if a key is pressed -//////////////////////////////////////////////////////////// -sfBool sfKeyboard_IsKeyPressed(sfKeyCode key) -{ - return sf::Keyboard::IsKeyPressed(static_cast(key)); -} diff --git a/bindings/c/src/SFML/Window/Mouse.cpp b/bindings/c/src/SFML/Window/Mouse.cpp deleted file mode 100644 index ac0a2663..00000000 --- a/bindings/c/src/SFML/Window/Mouse.cpp +++ /dev/null @@ -1,53 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Check if a mouse button is pressed -//////////////////////////////////////////////////////////// -sfBool sfMouse_IsButtonPressed(sfMouseButton button) -{ - return sf::Mouse::IsButtonPressed(static_cast(button)) ? sfTrue : sfFalse; -} - - -//////////////////////////////////////////////////////////// -/// Get the current position of the mouse -//////////////////////////////////////////////////////////// -void sfMouse_GetPosition(int* x, int* y) -{ - sf::Vector2i position = sf::Mouse::GetPosition(); - - if (x) - *x = position.x; - if (y) - *y = position.y; -} diff --git a/bindings/c/src/SFML/Window/VideoMode.cpp b/bindings/c/src/SFML/Window/VideoMode.cpp deleted file mode 100644 index 0a9ba709..00000000 --- a/bindings/c/src/SFML/Window/VideoMode.cpp +++ /dev/null @@ -1,84 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Get the current desktop video mode -//////////////////////////////////////////////////////////// -sfVideoMode sfVideoMode_GetDesktopMode(void) -{ - sf::VideoMode desktop = sf::VideoMode::GetDesktopMode(); - sfVideoMode ret; - ret.Width = desktop.Width; - ret.Height = desktop.Height; - ret.BitsPerPixel = desktop.BitsPerPixel; - - return ret; -} - - -//////////////////////////////////////////////////////////// -/// Get all the supported video modes for fullscreen mode. -/// Modes are sorted from best to worst. -//////////////////////////////////////////////////////////// -const sfVideoMode* sfVideoMode_GetFullscreenModes(size_t* Count) -{ - static std::vector modes; - - // Populate the array on first call - if (modes.empty()) - { - const std::vector& SFMLModes = sf::VideoMode::GetFullscreenModes(); - for (std::vector::const_iterator it = SFMLModes.begin(); it != SFMLModes.end(); ++it) - { - sfVideoMode mode; - mode.Width = it->Width; - mode.Height = it->Height; - mode.BitsPerPixel = it->BitsPerPixel; - modes.push_back(mode); - } - } - - if (Count) - *Count = modes.size(); - - return !modes.empty() ? &modes[0] : NULL; -} - - -//////////////////////////////////////////////////////////// -/// Tell whether or not a video mode is supported -//////////////////////////////////////////////////////////// -sfBool sfVideoMode_IsValid(sfVideoMode mode) -{ - sf::VideoMode videoMode(mode.Width, mode.Height, mode.BitsPerPixel); - return videoMode.IsValid() ? sfTrue : sfFalse; -} diff --git a/bindings/c/src/SFML/Window/Window.cpp b/bindings/c/src/SFML/Window/Window.cpp deleted file mode 100644 index ea12c500..00000000 --- a/bindings/c/src/SFML/Window/Window.cpp +++ /dev/null @@ -1,346 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include -#include -#include -#include - - -//////////////////////////////////////////////////////////// -/// Construct a new window -//////////////////////////////////////////////////////////// -sfWindow* sfWindow_Create(sfVideoMode mode, const char* title, unsigned long style, const sfContextSettings* settings) -{ - // Convert video mode - sf::VideoMode videoMode(mode.Width, mode.Height, mode.BitsPerPixel); - - // Convert context settings - sf::ContextSettings params; - if (settings) - { - params.DepthBits = settings->DepthBits; - params.StencilBits = settings->StencilBits; - params.AntialiasingLevel = settings->AntialiasingLevel; - params.MajorVersion = settings->MajorVersion; - params.MinorVersion = settings->MinorVersion; - } - - // Create the window - sfWindow* window = new sfWindow; - window->This.Create(videoMode, title, style, params); - - return window; -} - - -//////////////////////////////////////////////////////////// -/// Construct a window from an existing control -//////////////////////////////////////////////////////////// -sfWindow* sfWindow_CreateFromHandle(sfWindowHandle handle, const sfContextSettings* settings) -{ - // Convert context settings - sf::ContextSettings params; - if (settings) - { - params.DepthBits = settings->DepthBits; - params.StencilBits = settings->StencilBits; - params.AntialiasingLevel = settings->AntialiasingLevel; - params.MajorVersion = settings->MajorVersion; - params.MinorVersion = settings->MinorVersion; - } - - // Create the window - sfWindow* window = new sfWindow; - window->This.Create(handle, params); - - return window; -} - - -//////////////////////////////////////////////////////////// -/// Destroy an existing window -//////////////////////////////////////////////////////////// -void sfWindow_Destroy(sfWindow* window) -{ - delete window; -} - -//////////////////////////////////////////////////////////// -/// Close a window (but doesn't destroy the internal data) -//////////////////////////////////////////////////////////// -void sfWindow_Close(sfWindow* window) -{ - CSFML_CALL(window, Close()); -} - - -//////////////////////////////////////////////////////////// -/// Tell whether or not a window is opened -//////////////////////////////////////////////////////////// -sfBool sfWindow_IsOpened(const sfWindow* window) -{ - CSFML_CALL_RETURN(window, IsOpened(), sfFalse); -} - - -//////////////////////////////////////////////////////////// -/// Get the width of the rendering region of a window -//////////////////////////////////////////////////////////// -unsigned int sfWindow_GetWidth(const sfWindow* window) -{ - CSFML_CALL_RETURN(window, GetWidth(), 0) -} - - -//////////////////////////////////////////////////////////// -/// Get the height of the rendering region of a window -//////////////////////////////////////////////////////////// -unsigned int sfWindow_GetHeight(const sfWindow* window) -{ - CSFML_CALL_RETURN(window, GetHeight(), 0) -} - - -//////////////////////////////////////////////////////////// -/// Get the creation settings of a window -//////////////////////////////////////////////////////////// -sfContextSettings sfWindow_GetSettings(const sfWindow* window) -{ - sfContextSettings settings = {0, 0, 0, 0, 0}; - CSFML_CHECK_RETURN(window, settings); - - const sf::ContextSettings& params = window->This.GetSettings(); - settings.DepthBits = params.DepthBits; - settings.StencilBits = params.StencilBits; - settings.AntialiasingLevel = params.AntialiasingLevel; - settings.MajorVersion = params.MajorVersion; - settings.MinorVersion = params.MinorVersion; - - return settings; -} - - -//////////////////////////////////////////////////////////// -/// Get the event on top of events stack of a window, if any, and pop it -//////////////////////////////////////////////////////////// -sfBool sfWindow_PollEvent(sfWindow* window, sfEvent* event) -{ - CSFML_CHECK_RETURN(window, sfFalse); - CSFML_CHECK_RETURN(event, sfFalse); - - // Get the event - sf::Event SFMLEvent; - sfBool ret = window->This.PollEvent(SFMLEvent); - - // No event, return - if (!ret) - return sfFalse; - - // Convert the sf::Event event to a sfEvent - ConvertEvent(SFMLEvent, event); - - return sfTrue; -} - - -//////////////////////////////////////////////////////////// -/// Wait for an event and return it -//////////////////////////////////////////////////////////// -sfBool sfWindow_WaitEvent(sfWindow* window, sfEvent* event) -{ - CSFML_CHECK_RETURN(window, sfFalse); - CSFML_CHECK_RETURN(event, sfFalse); - - // Get the event - sf::Event SFMLEvent; - sfBool ret = window->This.WaitEvent(SFMLEvent); - - // Error, return - if (!ret) - return sfFalse; - - // Convert the sf::Event event to a sfEvent - ConvertEvent(SFMLEvent, event); - - return sfTrue; -} - - -//////////////////////////////////////////////////////////// -/// Enable / disable vertical synchronization on a window -//////////////////////////////////////////////////////////// -void sfWindow_EnableVerticalSync(sfWindow* window, sfBool enabled) -{ - CSFML_CALL(window, EnableVerticalSync(enabled == sfTrue)) -} - - -//////////////////////////////////////////////////////////// -/// Show or hide the mouse cursor on a window -//////////////////////////////////////////////////////////// -void sfWindow_ShowMouseCursor(sfWindow* window, sfBool show) -{ - CSFML_CALL(window, ShowMouseCursor(show == sfTrue)) -} - - -//////////////////////////////////////////////////////////// -/// Change the position of the mouse cursor on a window -//////////////////////////////////////////////////////////// -void sfWindow_SetCursorPosition(sfWindow* window, unsigned int left, unsigned int top) -{ - CSFML_CALL(window, SetCursorPosition(left, top)) -} - - -//////////////////////////////////////////////////////////// -/// Get the position of the mouse cursor on a window -//////////////////////////////////////////////////////////// -void sfWindow_GetCursorPosition(sfWindow* window, int* left, int* top) -{ - CSFML_CHECK(window); - sf::Vector2i position = window->This.GetCursorPosition(); - - if (left) - *left = position.x; - if (top) - *top = position.y; -} - - -//////////////////////////////////////////////////////////// -/// Change the position of a window on screen. -/// Only works for top-level windows -//////////////////////////////////////////////////////////// -void sfWindow_SetPosition(sfWindow* window, int left, int top) -{ - CSFML_CALL(window, SetPosition(left, top)) -} - - -//////////////////////////////////////////////////////////// -/// Change the size of the rendering region of a window -//////////////////////////////////////////////////////////// -void sfWindow_SetSize(sfWindow* window, unsigned int width, unsigned int height) -{ - CSFML_CALL(window, SetSize(width, height)) -} - - -//////////////////////////////////////////////////////////// -/// Change the title of a window -//////////////////////////////////////////////////////////// -void sfWindow_SetTitle(sfWindow* window, const char* title) -{ - CSFML_CALL(window, SetTitle(title)) -} - - -//////////////////////////////////////////////////////////// -/// Show or hide a window -//////////////////////////////////////////////////////////// -void sfWindow_Show(sfWindow* window, sfBool show) -{ - CSFML_CALL(window, Show(show == sfTrue)) -} - - -//////////////////////////////////////////////////////////// -/// Enable or disable automatic key-repeat for keydown events. -/// Automatic key-repeat is enabled by default -//////////////////////////////////////////////////////////// -void sfWindow_EnableKeyRepeat(sfWindow* window, sfBool enabled) -{ - CSFML_CALL(window, EnableKeyRepeat(enabled == sfTrue)) -} - - -//////////////////////////////////////////////////////////// -/// Change the window's icon -//////////////////////////////////////////////////////////// -void sfWindow_SetIcon(sfWindow* window, unsigned int width, unsigned int height, const sfUint8* pixels) -{ - CSFML_CALL(window, SetIcon(width, height, pixels)) -} - - -//////////////////////////////////////////////////////////// -/// Activate or deactivate a window as the current target for rendering -//////////////////////////////////////////////////////////// -sfBool sfWindow_SetActive(sfWindow* window, sfBool active) -{ - CSFML_CALL_RETURN(window, SetActive(active == sfTrue), sfFalse) -} - - -//////////////////////////////////////////////////////////// -/// Display a window on screen -//////////////////////////////////////////////////////////// -void sfWindow_Display(sfWindow* window) -{ - CSFML_CALL(window, Display()) -} - - -//////////////////////////////////////////////////////////// -/// Limit the framerate to a maximum fixed frequency for a window -//////////////////////////////////////////////////////////// -void sfWindow_SetFramerateLimit(sfWindow* window, unsigned int limit) -{ - CSFML_CALL(window, SetFramerateLimit(limit)) -} - - -//////////////////////////////////////////////////////////// -/// Get time elapsed since last frame of a window -//////////////////////////////////////////////////////////// -sfUint32 sfWindow_GetFrameTime(const sfWindow* window) -{ - CSFML_CALL_RETURN(window, GetFrameTime(), 0) -} - - -//////////////////////////////////////////////////////////// -/// Change the joystick threshold, ie. the value below which -/// no move event will be generated -//////////////////////////////////////////////////////////// -void sfWindow_SetJoystickThreshold(sfWindow* window, float threshold) -{ - CSFML_CALL(window, SetJoystickThreshold(threshold)) -} - - -//////////////////////////////////////////////////////////// -/// Retrieve the Os-specific handle of a window -//////////////////////////////////////////////////////////// -sfWindowHandle sfWindow_GetSystemHandle(const sfWindow* window) -{ - CSFML_CHECK_RETURN(window, NULL); - - return (sfWindowHandle)window->This.GetSystemHandle(); -} diff --git a/bindings/c/src/SFML/Window/WindowStruct.h b/bindings/c/src/SFML/Window/WindowStruct.h deleted file mode 100644 index 1f0eadde..00000000 --- a/bindings/c/src/SFML/Window/WindowStruct.h +++ /dev/null @@ -1,43 +0,0 @@ -//////////////////////////////////////////////////////////// -// -// SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@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. -// -//////////////////////////////////////////////////////////// - -#ifndef SFML_WINDOWSTRUCT_H -#define SFML_WINDOWSTRUCT_H - -//////////////////////////////////////////////////////////// -// Headers -//////////////////////////////////////////////////////////// -#include - - -//////////////////////////////////////////////////////////// -// Internal structure of sfWindow -//////////////////////////////////////////////////////////// -struct sfWindow -{ - sf::Window This; -}; - - -#endif // SFML_WINDOWSTRUCT_H