Commit Graph

1356 Commits

Author SHA1 Message Date
Radek Dutkiewicz
88451a0740 Fixed naming convention mistakes 2021-02-11 00:40:30 +01:00
Radek Dutkiewicz
e7ae462c82 Fixed formating mistake 2021-02-11 00:40:30 +01:00
Radek Dutkiewicz
84e0a25e04 Fixed unnecessary loadGlyph() calls
getKerning() now passes the bold flag to getGlyph() function, so already cached glyph can be used.
2021-02-11 00:40:30 +01:00
Radek Dutkiewicz
165b715d02 Fixed unintialized variable 2021-02-11 00:40:30 +01:00
Radek Dutkiewicz
f76f0607c7 Fix for fonts with no kerning tables
Apply deltas even if the font has no kerning table
2021-02-11 00:40:30 +01:00
Radek Dutkiewicz
7a0c35c334 Added glyph position compensation after autohinting
This improves glyph spacing by subtracting glyph position deltas from glyph advance generated by forced autohinting
2021-02-11 00:40:30 +01:00
fgallegosalido
54204058a4 Fixed copy assign operator in sf::Sound so it checks for self-assignment 2021-01-18 07:50:45 +01:00
Sevag Hanssian
0ef9647589 Fix NULL in Android EGL_DEFAULT_DISPLAY 2021-01-14 16:40:21 +01:00
hobby8
e85ed33fb2 Fixed Win32 requestFocus in multithreaded environment 2021-01-14 09:46:07 +01:00
Eren121
d29c51d82b Fix warning: control may reach end of non-void function [-Wreturn-type]
Fix warning and/or bug in androidKeyToSF() adding a default label for all keys _Keyboard::Unknown_
2021-01-14 09:44:00 +01:00
vfjpl
b939c794fb Don't needlesly call getSize() twice while setting texture 2021-01-14 09:40:21 +01:00
vfjpl
aa81cae6cf [sprite] don't set default rect before the user provided one 2021-01-14 09:40:21 +01:00
acsbendi
808adedf13 Replaced all reinterpret_casts with memcpys when reading from Packet. 2021-01-14 09:24:42 +01:00
acsbendi
1d1415c982 Avoid unaligned memory access when reading floats and doubles from Packet. 2021-01-14 09:24:42 +01:00
swordfatih
498d7ee79c Update the copyright year to 2021
Just updating all the 2020 references to 2021. 😄
2021-01-06 20:21:36 +01:00
Franckltung
0535e322d4 Fixed setMouseCursorGrabbed 2021-01-06 13:11:59 +01:00
GermanAizek
9029118536 Refactor code and declaration more local 2021-01-05 20:46:22 +01:00
binary1248
a262636590 Fixed joystick POV values not being set properly for devices that are accessed via DirectInput. 2020-12-28 17:48:24 +01:00
David Carlier
4cbb34ddb4 NetBSD support proposal. 2020-12-07 16:08:00 +01:00
Jan Haller
d1f4db39c8 Link legacy_stdio_definitions.lib on newer MSVC -- fixes linker errors for sprintf() & Co.
Starting from Visual Studio 2015, some standard symbols are inlined and thus no longer linkable.
Code that was linked against earlier versions can use a compatibility library, as described here:
https://docs.microsoft.com/en-us/cpp/porting/overview-of-potential-upgrade-issues-visual-cpp?view=msvc-160#libraries
2020-12-06 13:35:00 +01:00
Arthur Caputo
129774877b Implemented saveToMemory and saveImageToMemory. 2020-12-03 20:12:27 +01:00
Marukyu
c11ea7792f Round sample offset when seeking InputSoundFile
This fixes a bug that caused `sf::Music` to cease looping after certain
seeks due to the sample offset misaligning with the sound file's channel
count.
2020-12-03 20:12:06 +01:00
Bruno Van de Velde
7b84e46fac Added support for directional arrow resize cursors on Linux 2020-11-29 21:22:45 +01:00
Jonny Paton
59df9d0d88 Implement smoothing for fonts 2020-09-20 19:17:11 +02:00
Corentin Schreiber
a96057866d Removed explicit link to Xcursor and rely on X11 interface target
Co-authored-by: binary1248 <binary1248@hotmail.com>
2020-09-13 20:35:48 +02:00
Corentin Schreiber
77145c130f Fixed bug of spurious vertical white lines with monochrome cursor 2020-09-13 20:35:48 +02:00
Corentin Schreiber
a2fde65113 Simplified and clarified code for monochrome bit/byte computations 2020-09-13 20:35:48 +02:00
Corentin Schreiber
9cb67520c7 Fixed black/white threshold computation for Unix monochrome cursors 2020-09-13 20:35:48 +02:00
Corentin Schreiber
d93cd6dd30 Fixed Unix monochrome cursor implementation with non-power-of-two images 2020-09-13 20:35:48 +02:00
Corentin Schreiber
603bc9ee41 Changed code formatting to follow SFML guidelines 2020-09-13 20:35:48 +02:00
Corentin Schreiber
54ac286a67 Added support for colored cursors in Unix implementation 2020-09-13 20:35:48 +02:00
Corentin Schreiber
fc573bc584 Added Xcursor to linux dependencies 2020-09-13 20:35:48 +02:00
Lukas Dürrenberger
9b596cc8d9 Update the copyright year to 2020 2020-09-12 19:34:34 +02:00
Bruno Van de Velde
241b542ca3 Added XFlush call to WindowImplX11::setMouseCursor 2020-07-22 22:45:56 +02:00
binary1248
3557c46ae6 Add support for buffered DirectInput data to reduce polling load when it is supported. Only attempt setting a DirectInput device's axis mode if the device reports having axes and its axis mode is not already set to absolute. If the axis mode still can't be set to absolute, blacklist the device so that any future attempts will abort early. This should help when dealing with broken device drivers that report being game controllers and not fully supporting game controller functionality. 2020-06-18 18:12:36 +02:00
scotth
95c98093e9 Adjustable processing interval in SoundStream #1517
Resurrection of previous PR with updated documentation. Added setter to
adjust processing interval in SoundStream for low-latency streams.
2020-06-18 17:36:59 +02:00
43187455e4 Added Font::hasGlyph() 2020-05-20 16:12:41 +02:00
Michal Marszalek
632a015663 Added readCurrentReadPosition in sf::Packet 2020-02-06 22:29:19 +01:00
Jan Haller
110fb75513 Rename FindVorbis -> FindVORBIS, for consistency with exported variables (e.g. VORBIS_FOUND)
Fixes #1626
2020-01-02 15:28:31 +01:00
binary1248
bf98acc61f Force OpenGL states to be reset when RenderTarget detects that a new context has to be tracked. In the case a context is re-created, FBO RenderTextures would not trigger resetting of the OpenGL states if they were drawn to first since re-initialization of the RenderTarget only happens when a context owner such as a RenderWindow is re-created. Fixes #1625. 2020-01-02 15:27:20 +01:00
Mario Liebisch
a1d4bc80c2 Changed Doxygen single-line comment format
Single line comments starting with `///` are interpreted by
Microsoft Visual Studio as documentation containing XML code.

Therefore single line comments starting with `///<` unfortunately
cause a parsing error, as IntelliSense will assume the `<` is the
start of an XML tag. This is not the case, but unfortunately,
IntelliSense will still complain about the following space
character rather than displaying the raw string. This commit alters
all such comments to start with `//!<` instead, which prevents the
issue.

This fixes issue #1622.
2020-01-02 15:25:57 +01:00
Radek Dutkiewicz
6a79ebf1b3 Fixed text rendering artifacts on Radeon cards, revised.
Reverted the padding used for drawing to 1.0 and increased the padding during glyph generation instead.
2019-10-29 20:15:39 +01:00
Radek Dutkiewicz
689f468e36 Fixed text rendering artifacts on Radeon cards.
Padding set to 1.0 was causing adjacent glyphs leaking on Radeon cards. The initial padding value for glyphs was too high anyway, the proper value should be 0.5 on each side.
2019-10-29 20:15:39 +01:00
binary1248
6272f853c1 Add support for creating Vulkan window surfaces. 2019-10-16 21:48:24 +02:00
Sztergbaum Roman
8886134156 fix(compilation): clang compilation on windows
When using LLVM-clang on Windows which share the same ABI as `MSVC` (that means clang is able to use MSVC compiled DLL)

the CMake library path was not updated resulting on not finding dependencies.

Command line: `cmake -G "Visual Studio 16 2019" -A x64 -T "ClangCl" -DCMAKE_CXX_COMPILER="C:/Program Files/LLVM/bin/clang-cl.exe" -DCMAKE_C_COMPILER="C:/Program Files/LLVM/bin/clang-cl.exe" ../`

Can be great to add it to CI on appveyor too.
2019-10-13 23:21:25 +02:00
Lukas Dürrenberger
2eb70c6537 Replaced glLoadGen loader with glad loader and dynamically load EGL and GLES extensions as is done for desktop GL. 2019-09-12 23:02:52 +02:00
binary1248
f2b8e6397b Remove the glFlush() call that became unnecessary after 3871e01a9f was merged. This also fixes glFlush() being called in a state in which no context would be active in specific use cases. 2019-09-04 15:26:38 +02:00
acsbendi
ea71dd2fe0 Fixed navigation bar not being entirely hidden. 2019-09-03 14:21:06 +02:00
binary1248
81a1da6a59 Revert "Added a VertexBuffer implementation to all Drawables that were rendered via VertexArrays."
This reverts commit 4dfad062e4.
2019-09-01 18:20:13 +02:00
Jonny
b00317e90c Initialise m_context correctly in SFContext constructors 2019-09-01 17:40:57 +02:00
Benjamin Porter
86672a3724 Fix: Win32 no longer hides cursor when hovering title bar, keeping in line with behaviour of other platforms. 2019-03-17 15:51:06 +11:00
binary1248
4043f71156
Fixed missing checks for empty vertex arrays when updating the vertex buffers in sf::Text. (Fixes #1558) 2019-02-20 20:26:23 +01:00
binary1248
4dfad062e4 Added a VertexBuffer implementation to all Drawables that were rendered via VertexArrays. 2019-02-19 10:05:59 +01:00
Mario Liebisch
0980e90ee4 Fixed potential buffer overrun in Win32 OpenGL error handling
This fixes issue #1245.
2019-01-23 15:27:40 +01:00
Tobias Widlund
bf92efe9a4 Remove usages of std::auto_ptr to get rid of warnings when building with
gcc 8.2+
2019-01-23 15:25:34 +01:00
Ceylo
82c2f4c05e All mobile-compatible examples now successfully link 2019-01-19 01:29:12 +01:00
hobby8
7e40f80f52 Fix OpenGL extensions not loading 2019-01-15 23:55:31 +01:00
EpicCoder
489482a630 Updated the copyright year to 2019 2019-01-08 08:53:33 +01:00
binary1248
ae337952a9
Allow creation of a window without an OpenGL context in order to support use cases where the user wants to render using other graphics APIs. 2019-01-05 23:22:08 +01:00
binary1248
04131e1607 Fixed EGL incorrectly being passed the anti-aliasing level as EGL_SAMPLE_BUFFERS instead of EGL_SAMPLES. Fixes #1533. 2019-01-05 00:54:37 +01:00
binary1248
db80f6a60f
Make sure setActive(false) is called before the surface is destroyed in EglContext. Fixes #1530. 2018-12-29 13:36:01 +01:00
Dmitry Marakasov
119195ac20 Remove unneeded cast 2018-12-03 18:41:22 +01:00
Sven Hesse
de0ba77d3b Unix: Filter X visual by X screen
On an X set-up with multiple monitors running separate X screens (as
opposed to merging them into one large X screen using Xinerama), the
selected X visual needs to be one for the screen where the colormap,
window, and other X resources are created. In fact, all these need to
match, and the GL context as well.

Most of the SFML windowing and graphics code uses (X)DefaultScreen()
for that, which is fine. Combined with XOpenDisplay(NULL), this will
create the window on the screen (and monitor) selected by the DISPLAY
enviroment variable. :0.0 will be the first monitor, :0.1 the second,
etc.

However, XGetVisualInfo() will return visuals for *all* screens, not
just the default one. They seem to be ordered by screen number, but I
don't think the standard makes any guarantees there.

If the visual doesn't match up with the screen, this will abort with
an X error. BadMatch, in many cases.

This means that in addition to other filtering,
GlxContext::selectBestVisual() needs to filter the visuals by screen
number, otherwise SFML won't work at all on any screens but the first.

This fixes issue #724.
2018-10-26 21:15:25 +02:00
binary1248
ac98be760b Allow re-creation of the shared context as a core context if the user indicates they want a core profile context. Sharing of compatibility and core profile contexts is not possible on macOS which is why we need to have a way to re-create the shared context as a core context if required in this case. 2018-10-23 21:54:36 +02:00
Jonny Paton
d1d788fcb3 Add -ObjC flag to fix static linking on macOS 2018-10-15 21:07:54 +02:00
Maxime Alvarez
a5d45b910f Fixed the error message when the wrong bitmap font size is selected 2018-10-04 22:25:11 +02:00
Lukas Dürrenberger
3aa156c278 Fixed Windows cursor color conversion to be endian safe 2018-10-01 22:42:57 +02:00
binary1248
8554d210df Ensure the proper default framebuffer is bound when activating a RenderWindow. Fixes #1471. 2018-10-01 20:33:59 +02:00
Mario Liebisch
5e10e1f0c9 Windows: Fixed swapped colors for custom cursors
Previously the red and blue color channels were swapped,
since Windows expects a different channel order for DIBs.

This fixes issue #1464.
2018-09-08 19:04:39 +02:00
Bloodsword
46ce05cd9c Use XRRSetCrtcConfig instead of XRRSetScreenConfig, in order to fix issue #1226. It should also fix issue #1224. 2018-09-08 18:56:00 +02:00
Christian Widmer
87aaa9e145 Window/Unix: Fix compilation with glxext header versions >=20180525
When mesa updated their headers, they changed the include guard
from __glxext_h_ to __glx_glxext_h_, which breaks compilation
due to conflicting declarations. This commit modifies the preprocessor
directives to allow for compilation with older and newer mesa header
versions.
Fixes: #1472
2018-08-28 20:36:08 +02:00
Jeff
be3556d76a Fix Deadlock in Android Main Cleanup 2018-08-28 20:24:34 +02:00
Jonny Paton
2bba983f1d Disable autocorrect on iOS for issue #1473 2018-08-27 23:16:21 +02:00
Marco Antognini
aeca3dce41 Improved macOS implementation for Cursor
- remove Wait and SizeAll cursors as they don't look nice
   (Wait is not spining and produces a broken rendering,
    SizeAll is a simple white cursor.)
 - fix memory management for NSCursor.
 - ignore selector warnings.
2018-08-27 21:42:59 +02:00
Jonny Paton
0bcb2992a7 Implemented extra cursors on macOS 2018-08-27 21:42:59 +02:00
Elias Daler
83d05ea822 Fix CMP0072 CMake warning - also allow user to set OpenGL_GL_PREFERENCE 2018-08-14 21:21:01 +02:00
PKEuS
ff87e1c922 Reduced context locking&unlocking while creating textures 2018-08-13 22:30:44 +02:00
Radek Dutkiewicz
f4f7ef0d70 Fixed glyph cropping on sub-pixel positioning of text
Added 1 pixel padding for glyph uv's  and increased glyph quads boundaries by 1 pixel so the glyphs aren't cropped when text is being scrolled with sub-pixel increments
2018-08-09 23:25:39 +02:00
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