Joan Bruguera
461724d287
wayland: Refactor time fields in SDL_WaylandKeyboardRepeat
...
Refactorization with no functional changes.
Instead of `next_repeat_ms` containing a timestamp based on SDL ticks, we make
it zero-based relative to the key press time, and we store the key press time in
SDL ticks in a new field.
This refactorization is groundwork for future commits which need to use the
key press and release timestamps provided by the Wayland API, which are also
expressed in milliseconds, but whose base does not match the one for SDL ticks.
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
2022-01-08 14:10:22 -08:00
Joan Bruguera
fb0c3040c0
wayland: Avoid infinite loop in keyboard_repeat_handle
...
If `repeat_info->next_repeat_ms` overflows, many key presses will be generated.
In the worst case, `now = 0xFFFFFFFFU` and the loop will never terminate.
Rearrange the comparison in order to gracefully handle the overflow case.
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
2022-01-08 14:10:22 -08:00
Sam Lantinga
3b083b9911
Fixed compile warning
2022-01-08 14:07:42 -08:00
Sam Lantinga
b82af9dfbf
Improved OpenGL point drawing performance (thanks @slime73!)
...
We'll do proper call batching for the SDL 2.0.22 release
2022-01-08 14:05:50 -08:00
Sam Lantinga
1a73c45a08
Fixed incorrect color in the OpenGL driver
2022-01-08 13:35:17 -08:00
Sylvain
3cdda8f8ab
PSP: use 'data' variable which is alread the driver data
2022-01-08 21:58:26 +01:00
Sam Lantinga
4ef2529bf9
More efficient calculation of render_count
2022-01-08 12:37:57 -08:00
Sam Lantinga
5346c93b62
Fixed assertion on number of points rendered
2022-01-08 12:28:43 -08:00
Sam Lantinga
4b71962031
Prevent overdraw with connected line segments
2022-01-08 12:02:30 -08:00
Sam Lantinga
09ece861d1
Added the hint SDL_HINT_RENDER_LINE_METHOD to select the line rendering method
2022-01-08 11:36:52 -08:00
Sam Lantinga
c1e6079836
As an optimization, draw horizontal and vertical lines using rectangles
2022-01-08 11:09:11 -08:00
Sam Lantinga
3da7c6305a
Assert that we have drawn the expected number of points
2022-01-08 11:07:03 -08:00
Sam Lantinga
9f56faeedc
Added line drawing using Bresenham's line algorithm (thanks @rtrussell!)
2022-01-08 10:59:31 -08:00
Sam Lantinga
fe3a33a092
Use RenderGeometry for drawing lines at all scales
2022-01-08 10:10:18 -08:00
Sam Lantinga
1694782b2a
Remove redundant work when render scale is 1.0
2022-01-08 09:32:23 -08:00
Sam Lantinga
2026a78dc2
Don't flush in RenderDraw*WithRects()
...
This allows these functions to be reused in the future for other primitives
2022-01-08 09:23:58 -08:00
Sam Lantinga
18e4d9fed1
Re-enable line drawing path in render drivers
...
This is still used for scaled line drawing in RenderDrawLinesWithRects()
2022-01-08 09:02:25 -08:00
Sam Lantinga
dca281e810
Fixed getting different results for SDL_PollEvent(NULL) and SDL_PollEvent(&event)
2022-01-08 08:49:34 -08:00
Ozkan Sezer
4472b83129
PSP_RunCommandQueue: fix argument to PSP_SetBlendState()
...
src/render/psp/SDL_render_psp.c: In function 'PSP_RunCommandQueue':
src/render/psp/SDL_render_psp.c:1200: warning: passing argument 1 of 'PSP_SetBlendState' from incompatible pointer type
2022-01-08 11:56:56 +03:00
Ozkan Sezer
df1474b46e
psp/SDL_sysfilesystem.c: fixed a minor compiler warning.
...
src/filesystem/psp/SDL_sysfilesystem.c: In function 'SDL_GetPrefPath':
src/filesystem/psp/SDL_sysfilesystem.c:71: warning: passing argument 1 of 'free' discards qualifiers from pointer target type
2022-01-08 11:55:10 +03:00
Sam Lantinga
9294634840
Updated to version 2.0.20 for release
2022-01-07 18:29:40 -08:00
Ryan C. Gordon
cc2013378d
render: Fixed some compiler warnings.
...
Fixes #5197 .
2022-01-07 20:22:51 -05:00
Sam Lantinga
289c3fbb64
Revert "We only need to add the sentinel at the top of SDL_WaitEventTimeout()"
...
This reverts commit c477768e6f926c38d4cdc236cab8376faf9f6789.
We want to add the sentinel anytime we pump inside SDL_WaitEventTimeout() to avoid pumping again the next time through, as a performance optimization.
2022-01-07 17:07:22 -08:00
Sam Lantinga
1085c317a5
Use the requested cursor size instead of the default cursor size
...
CopyImage() will scale based on the system accessibility settings automatically.
Fixes https://github.com/libsdl-org/SDL/issues/5198
2022-01-07 16:45:18 -08:00
Ryan C. Gordon
6d3b5d66cd
psp: draw lines with RenderGeometry, same as with the other renderers.
2022-01-07 18:18:53 -05:00
Sylvain
9cb2c549fa
Remove QueueDrawLines from D3D, D3D11
2022-01-07 14:10:23 -08:00
Sylvain
b88b6b3c23
Remove QueueDrawLines from METAL
2022-01-07 14:10:23 -08:00
Sylvain
9aac55317d
Remove QueueDrawLines from GL, GLES, GLES2
2022-01-07 14:10:23 -08:00
Sylvain
8ea8b2e697
Use QueueDrawLine if provided, otherwise use RenderGeometry
2022-01-07 14:10:23 -08:00
Sylvain Becker
c498727471
render: Use RenderGeometry to draw lines
...
This patch is from @1bsyl
Fixes #5061 .
2022-01-07 16:14:28 -05:00
Sam Lantinga
4b38d4c96b
Leave the Metal view active on the window when recreating the Metal renderer
...
Fixes https://github.com/libsdl-org/SDL/issues/5140
Also move the metal tag definition to SDL_syswm.h so it can be used by applications
2022-01-07 12:38:45 -08:00
Ryan C. Gordon
88ac517df0
opengles2: Fix point drawing.
2022-01-07 15:04:04 -05:00
Sam Lantinga
957c48b4c7
Fixed detecting focus change to child dialogs
...
Fixes https://github.com/libsdl-org/SDL/issues/5157
2022-01-07 10:58:04 -08:00
Sam Lantinga
c477768e6f
We only need to add the sentinel at the top of SDL_WaitEventTimeout()
2022-01-06 18:58:30 -08:00
Cameron Gutman
e9134b045a
events: Only add sentinels for pumping done inside SDL_WaitEventTimeout()
...
We don't want to catch explicit SDL_PumpEvents() calls by the application with
our polling check to avoid stale data. If the call to SDL_PumpEvents() produced
no events, there will be a sentinel sitting in the queue that will cause
SDL_PollEvent() to immediately return 0 next time it is called.
Our SDL_WaitEventTimeout() implementation avoids this issue by always popping
an event after calling SDL_PumpEvents(). This will remove the new sentinel if
we didn't get any new events.
2022-01-06 18:35:23 -08:00
Sam Lantinga
954858846d
Move special sentinel handling inside SDL_PeepEvents()
2022-01-06 14:05:22 -08:00
Sam Lantinga
2592e6219b
Clarify that timeout == 0 is handled at the top of SDL_WaitEventTimeout()
2022-01-06 14:05:22 -08:00
Sam Lantinga
8ff2166855
Only return from SDL_PollEvent() if the last sentinel is consumed
2022-01-06 14:05:22 -08:00
Sam Lantinga
c9ff90b949
Clarify comment
...
Co-authored-by: Simon McVittie <smcv@debian.org>
2022-01-06 14:05:22 -08:00
Sam Lantinga
31f8c3ef44
Fixed event pump starvation if the application frequently pushes its own events
2022-01-06 14:05:22 -08:00
Wouter Wijsman
515b5f2a39
Fix build errors in PSP port
2022-01-06 10:17:05 -08:00
Wouter Wijsman
34e34ad5a5
Remove debug code from PSP renderer
2022-01-06 10:17:05 -08:00
stdgregwar
520c89a00a
cleaning
2022-01-06 10:17:05 -08:00
stdgregwar
09f4711f40
Fix LRU when destroying texture.
2022-01-06 10:17:05 -08:00
stdgregwar
c3ec62d6a6
PSP lazier blend states, display mode report with 16bit option
2022-01-06 10:17:05 -08:00
stdgregwar
0f5368fe11
PSP cached blending and texturing state, ABGR1555 stencil hack
2022-01-06 10:17:05 -08:00
stdgregwar
fe405eb27b
fixed LRU cache code
2022-01-06 10:17:05 -08:00
stdgregwar
c1f152292b
Spill render targets to ram on PSP
2022-01-06 10:17:05 -08:00
stdgregwar
77d874e3c0
Attempt to make render to texture work on PSP
2022-01-06 10:17:05 -08:00
Francisco Javier Trujillo Mata
f3255df9c0
Improve audio compatibility in PSP. Now it supports more formats and frequencies
2022-01-05 19:15:41 -05:00