Commit graph

1278 commits

Author SHA1 Message Date
Mario Liebisch dc0dfd601a
Squash duplicated sf::Font glyphs to single chars
Before this change, `sf::Font` always rendered/provided one character
per Unicode codepoint, even if that character wasn't represented by the
current font file or duplicated. This caused more texture space to be
used than necessary, which is especially apparent, when trying to render
a large amount of unhandled glyphs (the texture would literally fill up
with empty squares representing missing characters).
2018-08-03 09:58:26 +02:00
assematt bcb013b45b Fixed bug in sf::Text when applying an outline color/thickness
When applying an outline thickness to sf::Text in combination with a
strikethrough and/or an underlined style, the ensureGeometryUpdate
function adds unwanted vertices if the string contains two consecutive
'\n' charecter.
To fix this we need to add an additional check in the if statements to
check if both the current and previous character it's a new line
character.
2018-07-29 00:48:28 +02:00
Ironbell 44d3e26766 Fixed two conversion warnings (C4267) 2018-07-28 20:00:30 +02:00
Ceylo 8d96976e4b On iOS, make sure to be notified if you forgot to include <SFML/Main.hpp> 2018-07-28 18:27:37 +02:00
Jonny Paton bc570b22bf Use default supported rotations when none are specified 2018-07-28 18:22:16 +02:00
Lionel Aimerie (Pixium Digital) 2853b6b629 ANDROID flag fix to SFML_SYSTEM_ANDROID 2018-07-28 18:10:04 +02:00
Bruno Van de Velde f22b9b7b71 ANativeActivity_onCreate is not exported in sfml-main (fixes #1457) 2018-07-27 20:13:07 +02:00
binary1248 235abae134 Fixed the Unix clipboard implementation causing an abort due to internal data races in Xlib. 2018-07-02 22:39:54 +02:00
Lukas Dürrenberger b97a5be615 Fixed performance issue with reading WAV files
Calling tell() and thus std::ftell() for every reading iteration ate up
80-90% of the whole read call. By manually tracking the current position
the calls to tell() can be safely removed.
2018-06-10 22:29:46 +02:00
binary1248 93ad872f9e Fixed stale FBOs not being erased from the staleFramebuffers set after they have been deleted. 2018-06-04 23:19:04 +02:00
binary1248 d2ececed05
Fixed RenderTexture::display() dereferencing a NULL pointer when being called before RenderTexture::create(). 2018-06-03 19:40:30 +02:00
binary1248 1dcad60878 Fixed RenderWindow::setActive incorrectly trying to unbind an FBO during deactivation. 2018-05-28 11:09:02 +02:00
binary1248 b012266258 Fixed RenderTextureImplFBO's destructor incorrectly triggering deletion of other RenderTextureImplFBOs' active FBOs even when the context they reside in isn't being destroyed. 2018-05-28 11:06:15 +02:00
binary1248 bb3bd05823 Postpone generation of the RenderTarget ID to RenderTarget::initialize() so that a new ID is generated whenever the RenderTarget is re-create()ed. 2018-05-18 22:08:06 +02:00
Alexander Weinrauch 3da81aeecb Added missing import for memcpy and switched to std::memcpy 2018-05-03 22:04:11 +02:00
binary1248 cd1387479e Moved NvOptimusEnablement and AmdPowerXpressRequestHighPerformance out of sfml-main and into a macro the user can place in their own translation unit when they need it. Fixes #1192 2018-04-28 13:22:05 +02:00
binary1248 ee957f3420 Restrict WM_DEVICECHANGE messages to only be sent when HID devices are affected, restrict DirectInput EnumDevices to only enumerate over attached devices. Fixes #1415 2018-04-28 13:15:41 +02:00
binary1248 9bdd6d46dd Fixed TcpListener and TcpSocket not behaving as documented when calling listen or connect while the underlying socket object already exists, also adjusted UdpSocket to be consistent with connect and listen behaviour when calling bind while the underlying socket object already exists. Fixes #1346 2018-04-14 10:16:17 +02:00
David Carlier 9da895da8b further changes 2018-04-14 10:14:34 +02:00
David Carlier 763a9fb44e Adding empty joystick implementation handling for OpenBSD 2018-04-14 10:14:34 +02:00
David Carlier 4d0d331272 pushing upstream openbsd support from package. 2018-04-14 10:14:34 +02:00
Mario Liebisch f4c25ac3fa Android work in progress changes 2018-04-14 09:59:01 +02:00
Mario Liebisch 1e800d9551 Android: No longer keep an active input stream longer than needed. 2018-04-14 09:59:01 +02:00
binary1248 0adde249ec Optimized RenderTexture performance when using the FBO implementation by removing unnecessary context switches and flushing. 2018-04-14 09:54:59 +02:00
binary1248 c706f11f29
Fix specifying a TCP listen backlog of 0 causing some systems to not accept any incoming connections. Fixes #1369. 2018-04-07 15:20:11 +02:00
binary1248 a1065737db Fixed OpenGL version string being parsed incorrectly on some platforms. Fixes #1249 2018-04-05 11:25:01 +02:00
irrmich 15d0f789c7 Add append/overwrite parameter to Ftp::upload. 2018-04-05 11:21:20 +02:00
Ceylo ee08e18726 Modernize CMake files 2018-03-27 00:03:34 +02:00
binary1248 949e7aecae Fixed strict aliasing punning warning when generating the key of a glyph in Font.cpp. Fixes #1187 2018-03-26 23:57:37 +02:00
binary1248 421e8bb812 Added support for creation of a stencil attachment and multisampling to sf::RenderTexture. 2018-03-26 23:48:05 +02:00
Marco Antognini b0f3611ab9 Renamed a few key codes
Deprecated BackSlash, BackSpace, SemiColon, Dash and
introduced Backslash, Backspace, Semicolon, Hyphen in a
retrocompatible way.
2018-03-26 23:39:39 +02:00
Marty E. Plummer 5c20c67469 window: change case of Dbt.h inclusion
Windows should have no issue with this change, as it addresses
files in a case-insensitve manner. Said header is installed in
lowercase on mingw-w64, and won't build since commit
22f1b85515

Signed-off-by: Marty E. Plummer <hanetzer@startmail.com>
2018-03-23 13:33:53 +01:00
Mario Liebisch 49d611ee69 Fixed small joystick movement getting lost due to the set axes threshold.
This fixes issue #1329.
2018-03-16 19:21:59 +01:00
Jonny Paton f963faa694 Find OpenAL correctly on iOS 2018-03-12 15:06:11 +01:00
Radek Dutkiewicz deeb3a95f3 Fixed letter spacing being letter width dependent 2018-02-15 21:27:19 +01:00
Maximilian Wagenbach 186294607f Return correct key code for delete/backspace on android.
Also increased minimum Android API version to 14.
2018-02-15 21:11:24 +01:00
Mario Liebisch 806813e937 Android: Removed custom toolchain file
This commit drops the previous custom CMake toolchain file for Android
in favor of CMake's new built-in toolchain for this (CMake >3.7.2).

This makes building SFML for Android a lot simpler and more straight
forward, working almost as smooth as other platforms.

To configure your build directory, all you have to do is defining just a
few variables the first time you invoke CMake.

**Required Variables**

* `CMAKE_SYSTEM_NAME` must be `Android`, so CMake knows we actually want
  to cross-compile.
* `CMAKE_ANDROID_NDK` must point to the NDK's installation directory,
  e.g. `/usr/android/ndk` or `c:/android/ndk`.

**Recommended Variables**
* `CMAKE_ANDROID_STL_TYPE` defines the STL implementation to be used.
  You should use `c++_shared`, although others might work.

**Optional Variables**
* `CMAKE_SYSTEM_VERSION` can be set to pick a specific SDK version other
  than the latest.
* `CMAKE_ANDROID_ARCH_ABI` defines the target architecture and ABI, for
  example `armeabi` or `armeabi-v7a`.

Based on your system, you might want to enforce a specific generator to
prevent issues, e.g. using `MinGW Makefiles`.
2018-02-11 20:15:54 +01:00
Alexander Weinrauch 0da25a0b87 Added support for the newest NDK version 2018-02-11 20:15:54 +01:00
Maximilian Wagenbach 989367e345 Turned the header image in readme.md into a link.
Updated all links to use https (tested).
2018-02-10 17:12:54 +01:00
Maximilian Wagenbach 5d7843c58a Updated the copyright year to 2018. 2018-02-10 14:51:46 +01:00
binary1248 22f1b85515 Added support for interfacing with joysticks via DirectInput when it is available. 2018-02-10 14:47:37 +01:00
Maximilian Wagenbach d972216c57 Fix memory leak in sf::Text. 2018-02-10 14:44:13 +01:00
Maximilian Wagenbach 14dd503c8a Generate shape outline vertices only if necessary. 2018-02-08 23:12:20 +01:00
hobby8 1062e95e39 Fixed Win32 modifier keys handling 2018-01-29 17:55:19 +01:00
Sérgio Agostinho 6d4e870e32 Correct docstring for seek 2018-01-29 17:51:46 +01:00
Alec Iverson 6d122e96e1 Restore fullscreen of a non-visible Unix window 2018-01-29 17:49:42 +01:00
Maximilian Wagenbach 65d26be74d Changed the implementation from offsets to factors. 2018-01-25 01:52:19 +01:00
Maximilian Wagenbach 7ef1cff5d1 Code style refactoring in sf::Text implementation. 2018-01-25 01:47:55 +01:00
Maximilian Wagenbach 812dea70d0 Implemented line spacing in sf::Text. 2018-01-25 01:47:54 +01:00
Maximilian Wagenbach 9e2f2eb27f Implemented letter spacing in sf::Text. 2018-01-25 01:47:54 +01:00
binary1248 61cdcd47ca Added sf::VertexBuffer class. 2018-01-25 00:26:38 +01:00
binary1248 fe39af4ec8 Worked around render target bug on macOS 2018-01-25 00:25:04 +01:00
Maximilian Wagenbach c24de5fcaf Fix for broken text when the font is reloaded. 2018-01-17 00:48:38 +01:00
tlein bba5808717 use a toolchain file for iOS instead of setting the necessary CMake variables in SFML 2018-01-09 22:06:55 +01:00
Lukas Dürrenberger 247b03172c Fixed casting type. 2018-01-02 19:59:49 +01:00
Lukas Dürrenberger 6f3282623f Fixed various type conversion/comparison warnings. 2017-12-07 14:46:19 +01:00
Marco Antognini 883ec9391d Added support for (some) Hat/POV axis 2017-12-06 17:59:39 +01:00
Marco Antognini dd307cc23e Fixed crash with application messing hardware detection
This prevents crashes & reduces the amount of logging but does not actually make isKeyPressed work when using e.g. TeamViewer.
2017-12-06 17:58:31 +01:00
binary1248 3871e01a9f
Added missing code to reset the parameters of the target texture after copying using FBOs and make sure to flip the source data back into non-flipped orientation when blitting from a flipped texture. (Fixes #1319) 2017-11-19 01:33:57 +01:00
SoczuGGS 013d053277 First argument of alcCaptureOpenDevice #1304 2017-10-16 16:03:27 +02:00
binary1248 898c2350f7 Add equality comparison to sf::Transform and avoid uploading 64 bytes of data every time we want to reset the OpenGL matrix back to identity. 2017-10-12 20:41:05 +02:00
binary1248 516678fe1f Fix OpenGL texture coordinate pointer not being updated when the array enabled state changes but the RenderTarget's cache state doesn't. 2017-10-12 20:05:45 +02:00
Mario Liebisch b3d6e4811d Fixed Wave file writer writing wrong header values
Previously when updating the header fields, SFML assumed the number of
samples written would be the number of samples per channel, which wasn't
the case. Therefore for stereo files the written file length was actually
twice the correct value. This fix uses the file size written as a basis,
no longer counting the samples written alltogether.

This fixes issue #1280.
2017-10-12 20:01:33 +02:00
Tyson Grant Nottingham fc54dba3d7 Added support for extensible format PCM wave files. 2017-10-02 14:40:59 -07:00
Laurent Gomila 2aa70def6f Removed dependency to libjpeg, stb_image_write now supports writing JPEG files 2017-09-28 19:55:10 +02:00
binary1248 44944989e8 Fixed X11 key repeat handling not filtering out events from other windows. (Fixes #1223) 2017-09-28 19:15:47 +02:00
Maximilian Wagenbach 0dd24c8f1f Removed unused variable. 2017-09-07 03:11:40 +02:00
Anthony 23a345512d Applied ZeroMemory to DEVMODE struct n Win32 to prevent Uninitialized Read.
Set dmDriverExtra for EnumDisplaySettings. Reverted unneeded ZeroMemory for DEVMODE.
2017-09-06 00:03:12 +02:00
tlein a2f448ab4c fix iOS build error when using @import 2017-09-05 23:22:40 +02:00
Luca Longinotti 58b7c2c48a Window/Unix: fix SFML issue #1228, getPosition() returns incorrect results on Linux depending on the used WM,
as well as not returning values that are in-sync with what was given to setPosition(x, y).
2017-09-05 23:18:27 +02:00
Cobaltergeist 93a2e9502d Added Loop Point support to sf::Music 2017-09-03 12:57:09 -07:00
Marco Antognini cd27b7df07 Added empty Android implementation for Clipboard API 2017-08-02 15:21:12 +02:00
Marco Antognini 0637a2ef99 Added iOS implementation for Clipboard API
NOTE this implementation was not tested, nor even compiled!
2017-08-02 15:21:11 +02:00
Marco Antognini f30c896780 Added macOS implementation for Clipboard API 2017-08-02 15:21:11 +02:00
Ricardo Antonio Tejada 967db6c6f9 Added Unix implementation for Clipboard API 2017-08-02 15:21:11 +02:00
Ricardo Antonio Tejada 692fa5ab33 Added Win32 implementation for Clipboard API 2017-08-02 15:21:11 +02:00
Ricardo Antonio Tejada 4bc3c6f8bf Added Clipboard API 2017-08-02 15:21:11 +02:00
Lukas Dürrenberger bc8a90b33a Fix an issue when sf::Clock is constructed in a global scope leading to crashes. 2017-08-01 17:51:58 +02:00
Marco Antognini 34ea68bd1d Added X11 implementation 2017-07-10 17:13:17 +02:00
Marco Antognini 219c14b0c2 Added "not supported" implementation for iOS and Android 2017-07-10 17:13:17 +02:00
Marco Antognini b0b1f13269 Added Win32 implementation 2017-07-10 17:13:17 +02:00
Marco Antognini f65459d0e1 Rewrote Cursor with new API and OS X implementation 2017-07-10 17:13:17 +02:00
binary1248 6f5a7d1b1b Implemented methods to set the displayed cursor to a system cursor type or custom bitmap image. 2017-07-10 17:13:17 +02:00
Dermoumi S c43b5991af Fixed slight memory leak in sf::Font 2017-04-25 15:13:50 +02:00
Mario Liebisch 0b2ac85f11 Added CMake variables to select the modules to be built
This addresses issue #798.
2017-04-04 13:43:49 +02:00
hobby8 973ac8ddcd Skip glTexCoordPointer() call if not needed 2017-04-04 13:19:28 +02:00
Bruno Van de Velde 9b16bc7c67 Fixed typo in assert in Texture::update 2017-03-20 01:14:05 +01:00
Marco Antognini 756cb09bc3 Fixed window menu not working on OS X
Related to #1091, #527 and #1180.
2017-03-07 15:02:39 +01:00
binary1248 6b71456a55 Add methods to make use of GPU local texture data copying bypassing a roundtrip to the CPU and back, add sf::Texture::swap to enable swapping texture contents, fixed sf::Font::cleanup not shrinking its allocated pixel buffer storage when the user loads a new font using the same sf::Font object. 2017-03-02 14:36:21 +01:00
jonathan.r.paton@googlemail.com f053871a6c If a window is open, only update joystick connections on WM_DEVICECHANGE message 2017-03-02 13:38:52 +01:00
Lukas Dürrenberger 113152673a Updated year in copyright notices to 2017. 2017-02-10 15:18:03 +01:00
binary1248 dacee0462e Make context disabling via wglMakeCurrent more tolerant of broken drivers by trying to pass a meaningful DC whenever possible and improve error messages output when WGL functions fail. 2017-02-06 14:44:32 +01:00
binary1248 d10d205bb3 Fixed Xlib crashing in sf::Window:setIcon because it expects the element data type passed to XChangeProperty to be unsigned long (architecture dependent 32-bit or 64-bit) instead of sf::Uint32 (architecture independent 32-bit) (#1168). Also adjusted other occurrences of wrong types passed to XChangeProperty with format set to 32. 2017-01-28 14:28:15 +01:00
binary1248 af5244d85d Replaced TransientContextLock implementation with a more elaborate one which relies on locking a single mutex and thus avoids lock order inversion. Fixes #1165. 2017-01-27 20:50:16 +01:00
binary1248 022f1590d8 Fixed GLX extensions being loaded too late preventing multisampling configuration information from being read during format selection. GLX extensions are now loaded as early as possible either in a constructor of GlxContext or GlxContext::selectBestVisual. 2017-01-23 16:52:28 +01:00
Fytch c678cae498 fixed sf::Image::create
Discussion thread: http://en.sfml-dev.org/forums/index.php?topic=20875.0
Basically, the issue with sf::Image::create was, that it would either
occupy space, it doesn't need, because std::vector::resize doesn't
actually shrink the vector, or reallocate in an inefficient way by
needlessly copying the whole old image over. Neither did it grant strong
exception safety guarantee because it changed the non-throwing members
(m_size) prior to doing the critical stuff (reallocating) which may
throw. Changing the order and using a temporary
(create-temporary-and-swap idiom; see http://www.gotw.ca/gotw/059.htm)
fixes both of these problems.
2017-01-23 16:52:21 +01:00
Mario Liebisch 8c7c48481b Windows: Removed thread affinity changes in sf::Clock
* This should prevent timing issues on Windows XP and earlier with broken BIOS while avoiding unnecessary threading changes.
2017-01-23 16:52:11 +01:00
Cobaltergeist 5eaa748adb Addressed Seeking Quirks in FLAC Reader 2016-11-11 02:24:05 -08:00
Cobaltergeist 746bb9c8ca Changed fillAndPushBuffer to use a retry loop. 2016-11-08 08:28:05 +01:00
Cobaltergeist 2207af41e4 Fixed inconsistent seek behavior in SoundStream 2016-10-13 19:50:21 +02:00