Ryan C. Gordon
12c5cda6bf
Fix compiler warnings.
2019-03-16 00:08:19 -04:00
Ryan C. Gordon
08dc8cc20a
testgesture: Add dependency to SDLtest to Visual Studio project.
2019-03-15 23:54:42 -04:00
Ryan C. Gordon
6727408d2c
testgesture: cleaned up code formatting, etc.
2019-03-15 22:39:31 -04:00
Ryan C. Gordon
7cc0a606d8
testgesture: minor cleanups.
2019-03-15 22:17:21 -04:00
Ryan C. Gordon
5897ed85f5
test: Moved testgesture.c over to the common SDLtest framework.
2019-03-15 22:16:02 -04:00
Ryan C. Gordon
f95ca7bb8e
events: Disable all the signal-handling code on platforms without support.
...
So on Windows, for example, this mostly becomes a few empty functions.
2019-03-15 16:13:19 -04:00
Ryan C. Gordon
8a5a05c168
events: Let arbitrary signals to simulate iOS/Android backgrounding events.
...
This lets you build a custom embedded device that roughly offers the "this
process is going to the background NOW" semantics of SDL on a mobile device.
2019-03-15 15:51:05 -04:00
Ryan C. Gordon
911bf6241b
events: Make debug logging of the event queue a hint instead of an #ifdef.
...
This makes it easy to toggle it on when debugging a new platform (or just
getting more visibility into an app) without having to rebuild SDL.
2019-03-15 14:08:30 -04:00
Ryan C. Gordon
6fbe9e23fa
raspberry: expose second display.
...
This lets apps see and choose between both an HDMI and DSI-connected display,
such as a television and the Pi Foundation's official touchscreen. It only
exposes the second display if the hardware reports that it is connected.
2019-02-19 23:46:54 -05:00
Ryan C. Gordon
40781dfb15
opengles2: patched to compile.
2019-02-04 23:35:18 -05:00
Ryan C. Gordon
b7504f311b
opengles2: keep cached texturing state correct.
2019-02-04 23:32:28 -05:00
Ryan C. Gordon
a609c03ac6
opengles1: keep cached texturing state correct.
2019-02-04 23:24:10 -05:00
Ryan C. Gordon
40a52ceef7
render: Fix OpenGL draw state cache for various points of texture binding.
2019-02-04 18:55:39 -05:00
Ryan C. Gordon
861a21f98b
evdev: don't debug log on a BTN_TOUCH from a non-touch device.
2019-01-14 19:43:25 -05:00
Ryan C. Gordon
2755a505a3
evdev: Add touchscreen mouse emulation and pressure support (thanks, Zach!).
...
This also solves reports of this log message:
"INFO: The key you just pressed is not recognized by SDL. To help get this
fixed, please report this to the SDL forums/mailing list
<https://discourse.libsdl.org/ > EVDEV KeyCode 330"
(EVDEV KeyCode 330 is BTN_TOUCH.)
Fixes Bugzilla #4147 .
2019-01-14 19:36:54 -05:00
Ryan C. Gordon
0a70590118
render: Prefer the Metal renderer over OpenGL.
...
This is the best option for macOS and iOS, the only platforms with Metal.
Pre-Metal versions of these platforms will fall back to OpenGL (ES), as
appropriate.
Huge thanks to Alexander Szpakowski, who worked incredibly hard to get the
Metal renderer to such a high-quality state!
2018-12-19 18:10:02 -05:00
Ryan C. Gordon
c3e3503ee8
testgl2: Press 'o' or 'p' to decrease/increase OpenGL swap interval.
2018-12-16 01:04:07 -05:00
Ryan C. Gordon
13869f194c
cocoa: Implement OpenGL swap interval support with CVDisplayLink.
...
Not only does this fix macOS 10.14 ("Mojave")'s broken NSOpenGLCPSwapInterval
support, it also lets us implement "adaptive vsync" on macOS!
CVDisplayLink is supported back to macOS 10.4 ("Tiger"), so we just use it
universally without version checks and dump NSOpenGLCPSwapInterval, Mojave or
not.
2018-12-16 01:03:17 -05:00
Ryan C. Gordon
1829692753
emscripten: SDL_PrivateJoystickAdded() wants an instance id, not device index.
2018-12-15 09:57:05 -05:00
Ryan C. Gordon
a7563bcd3d
joystick: Removed unused variable.
2018-12-05 19:03:15 -05:00
Ryan C. Gordon
c7b713714a
Whoops, forgot to add a new source file. :/
2018-12-05 17:53:38 -05:00
Ryan C. Gordon
fbead63540
joystick: Added controller config for IMS Passenger Control Unit Devices.
2018-12-05 16:55:59 -05:00
Ryan C. Gordon
2878d4f80c
egl: Don't force X11 support when testing for EGL.
...
Fixes building Wayland support on embedded systems without X11.
(TODO: maybe move the EGL test out of the X11 tests at some point, too.)
2018-12-05 16:53:15 -05:00
Ryan C. Gordon
1689e9f910
linux: Move SDL_LinuxSetThreadPriority() elsewhere to fix build.
...
Fixes Bugzilla #4393 .
2018-12-05 16:51:22 -05:00
Ryan C. Gordon
bd3ee07c83
wayland: Send SDL_TOUCH_MOUSEID mouse events for touches.
2018-12-05 16:49:38 -05:00
Ryan C. Gordon
cca9d24cde
direct3d: be more aggressive about resetting invalidated cached state.
...
Fixes Bugzilla #4402 .
2018-12-03 09:26:05 -05:00
Ryan C. Gordon
939bf1c4d8
render: fix some static analysis warnings.
2018-12-03 02:06:17 -05:00
Ryan C. Gordon
33f78eb163
direct3d: Make sure streaming textures update before being used for drawing.
...
Fixes Bugzilla #4402 .
2018-12-03 01:58:23 -05:00
Ryan C. Gordon
b744108af8
Patched to compile on C89 compilers.
2018-12-02 21:57:33 -05:00
Ryan C. Gordon
3c9361509b
direct3d: Release and NULL out vertex buffers on reset.
...
Otherwise they are irretrievably lost on window resize, etc, which makes
rendering freeze and other disasters.
Fixes Bugzilla #4358 .
2018-12-02 20:55:57 -05:00
Ryan C. Gordon
d4a21f54b8
cmake: Comment out some debug logging that can upset build environments.
...
Something about the dashes, colons, numbers makes some builders believe this
is an error message.
2018-12-02 02:43:32 -05:00
Ryan C. Gordon
65a7c98c6f
directfb: Updated render backend to new internal API.
...
Totally untested, beyond it now compiles again. Probably needs some fixes.
Fixes Bugzilla #4405 .
2018-12-02 02:33:06 -05:00
Ryan C. Gordon
3323b355c9
android: use cpufeatures to support SDL_HasNEON() (thanks, Sylvain!).
...
Fixes Bugzilla #4406 .
2018-12-01 12:19:11 -05:00
Ryan C. Gordon
1e4acca851
Added some detail to a Doxygen comment (thanks, Sylvain!).
2018-12-01 12:17:34 -05:00
Ryan C. Gordon
fac40f8e4c
Patched to compile on Linux with threads enabled. (whoops!)
2018-12-01 11:14:20 -05:00
Ryan C. Gordon
c4bc59a50e
Patched to compile on Linux with --disable-threads.
...
Fixes Bugzilla #4393 .
2018-12-01 10:36:26 -05:00
Ryan C. Gordon
457e58c40b
opengles: Fixed compiler warnings.
2018-11-17 16:24:52 -05:00
Ryan C. Gordon
fde7592ada
direct3d11: Fixed missing rendering of solid primitives.
...
Fixes Bugzilla #4388 .
2018-11-17 14:39:42 -05:00
Ryan C. Gordon
782f1685ff
Fixed a few compiler warnings.
2018-11-17 14:37:51 -05:00
Ryan C. Gordon
9262c0de9b
software: fix blits with color mods that change during a command queue run.
2018-11-14 22:38:58 -05:00
Ryan C. Gordon
1dbf7dc2f8
os2: Do a distclean instead of removing files manually in buildbot script.
2018-11-04 21:11:07 -05:00
Ryan C. Gordon
e45ed114c5
os2: Added a script for the buildbot.
2018-11-04 20:47:17 -05:00
Ryan C. Gordon
bc57ac27f9
mir: Removed mir client support.
...
Fixes Bugzilla #4288 .
2018-11-02 21:34:17 -04:00
Ryan C. Gordon
4659e73892
merge fallout: Patched to compile, fixed some compiler warnings, etc.
2018-11-01 12:31:45 -04:00
Ryan C. Gordon
62494a2e27
Merge SDL-ryan-batching-renderer branch to default.
2018-10-31 15:03:41 -04:00
Ryan C. Gordon
eb2536c466
Closing SDL-ryan-batching-renderer branch.
2018-10-31 14:50:20 -04:00
Ryan C. Gordon
a5ebd4d775
wayland: ask KDE protocol extension to use server-side decorations if possible.
2018-10-29 10:14:59 -04:00
Ryan C. Gordon
8340b0f0e2
render: Add floating point versions of various draw APIs.
2018-10-23 01:34:03 -04:00
Ryan C. Gordon
e542d1a36d
winmain: Patched to compile on C89 compilers.
2018-10-29 20:18:50 -04:00
Ryan C. Gordon
f434a98c26
winmain: Don't use SDL_malloc (or SDL_stack_alloc, which might be malloc).
...
Otherwise, we are using the allocator before the app can set up its own hooks.
Now we use VirtualAlloc, and WideCharToMultiByte (because SDL_iconv uses
SDL_malloc, too!) to get ready to call into SDL_main.
This also makes console_wmain() call into the same routines as everything
else, so we don't have to deal with those allocations, too. Hopefully we
end up with the same results from GetCommandLine() as we do in wargv.
Fixes Bugzilla #4340 .
2018-10-29 20:00:03 -04:00
Ryan C. Gordon
b43f427fa6
README-ios: added a note about enabling hidapi.
2018-10-29 15:51:38 -04:00
Ryan C. Gordon
be8ef94f18
hidapi: Don't run a separate event loop for device notifications.
...
Fixes Bugzilla #4286 .
2018-10-26 14:43:39 -04:00
Ryan C. Gordon
4a50a04213
wasapi/win32: Sort initial device lists by device GUID.
...
This makes an unchanged set of hardware always report devices in the same
order on each run.
2018-10-21 22:40:17 -04:00
Ryan C. Gordon
1ec56f7302
x11: Fixed incorrect function signature for XkbSetDetectableAutoRepeat.
...
It needs to use Bool (which is an int) and not BOOL (which is CARD8), which
causes problems on platforms with different byte order and alignment, etc.
Fixes Bugzilla #4326 .
2018-10-20 21:35:48 -04:00
Ryan C. Gordon
1fb20f0ab9
cocoa: Put a mutex around GL_SwapBuffers.
...
Prevents deadlock when swapping two different GL contexts on two different
threads at the same time on macOS 10.14 ("Mojave").
Fixes Bugzilla #4278 .
2018-10-18 23:38:27 -04:00
Ryan C. Gordon
cad0a2f730
cocoa: Fix OpenGL rendering on macOS 10.14 ("Mojave").
...
Fixes Bugzilla #4272 .
(transplanted from 54729119b348e8a4a916192d1d6cb8d115656255)
2018-10-18 12:05:05 -04:00
Ryan C. Gordon
072e17bf98
cocoa: GL_GetDrawableSize only uses -[NSView convertRectToBacking] for highDPI.
...
On Mojave, this will report large numbers for retina displays in fullscreen
mode, which isn't how it works on previous versions.
(transplanted from c6c1731780e2bef94f944a4795e2dfbba46d9500)
2018-10-18 11:59:48 -04:00
Ryan C. Gordon
b262b0ebc9
Small stack allocations fall back to malloc if they're unexpectedly large.
2018-10-22 20:50:32 -04:00
Ryan C. Gordon
eedf2c965d
opengles2: Fixed several incorrect things.
2018-10-06 17:08:04 -04:00
Ryan C. Gordon
6ecd0b2c35
opengles2: removed useless memcpy.
2018-10-04 21:10:42 -04:00
Ryan C. Gordon
ef3d970ace
opengles2: Fixed incorrect cliprect state.
2018-10-04 20:22:28 -04:00
Ryan C. Gordon
208c4b0361
metal: CopyEx transform matrix must be aligned for constant buffer access.
2018-10-04 20:21:58 -04:00
Ryan C. Gordon
638d624f5a
metal: Don't try to create a zero-byte vertex buffer.
...
(Which will cause a crash in Metal, or an assert in the validation layer.)
2018-10-04 20:21:23 -04:00
Ryan C. Gordon
1ecf4dfc5f
render: Added SDL_RenderFlush().
2018-10-04 16:34:44 -04:00
Ryan C. Gordon
09140bd8bc
render: Move PSP backend to new interface.
...
I have no idea if this works (or if it ever worked, having now examined this
code), as I have no way to compile or test this.
If it's broken, send patches. :)
2018-10-04 16:11:43 -04:00
Ryan C. Gordon
9fedff997b
render: moved software renderer to new interface.
2018-10-03 23:37:29 -04:00
Ryan C. Gordon
bd08a4e6b1
render: D3D11 now cycles through 8 vertex buffers.
...
This means it doesn't have to block while the current frame finishes using the
vertex buffer; it just moves on to the next, probably-not-in-use buffer.
2018-10-03 19:05:20 -04:00
Ryan C. Gordon
a9094a21a8
render: D3D11 renderer patched to compile.
2018-10-03 18:23:53 -04:00
Ryan C. Gordon
6e6f7382a7
render: first (untested!) shot at converting D3D11 renderer to new interfaces.
...
Probably doesn't even compile yet.
2018-10-03 00:52:37 -04:00
Ryan C. Gordon
0c2e10dce4
render: Make the GL backends cache and defer more state changes.
2018-10-01 22:53:45 -04:00
Ryan C. Gordon
fcb4681336
render: D3D9 doesn't need to check for stream offset support anymore.
...
We don't use offsets at all now. Too slow.
2018-10-01 13:41:15 -04:00
Ryan C. Gordon
709f5ee417
render: Set the D3D9 stream source once and choose offsets during draw calls.
...
This is _much_ faster than setting the offsets with SetStreamSource!
2018-10-01 11:32:08 -04:00
Ryan C. Gordon
9870746bd9
render: Patched to compile.
2018-10-01 03:02:54 -04:00
Ryan C. Gordon
5e644cfdfb
render: first shot at moving Direct3D 9 backend to new interface. Untested!
2018-10-01 01:23:02 -04:00
Ryan C. Gordon
fdc52a65dd
render: patched to compile on C89 compilers, other untested code fixes.
2018-09-29 04:00:38 +00:00
Ryan C. Gordon
daad53af13
opengles1: set some non-zero drawstate defaults.
2018-09-28 19:48:14 -04:00
Ryan C. Gordon
c20a858da5
render: moved opengles2 over to new interface.
2018-09-28 19:47:44 -04:00
Ryan C. Gordon
22475bf3f0
cocoa: Force an OpenGL context update when the window becomes key.
...
Fixes missing rendering on macOS 10.14 ("Mojave").
Fixes Bugzilla #4272 .
(transplanted from aee4797c84ef90464e270b1f6095a6dd7ce280c1)
2018-09-26 20:10:32 -04:00
Ryan C. Gordon
0d588cc4c9
render: Do state cache improvements for GLES1, too.
2018-09-25 21:35:09 -04:00
Ryan C. Gordon
d04e55240e
render: OpenGL renderer now caches some state, to improve non-batching mode.
...
(other minor bug fixes in here, too)
2018-09-25 19:20:31 -04:00
Ryan C. Gordon
06461bba73
render: Move non-batching flushes to different place.
...
This lets us batch up a few commands that are all related to the same API
call.
2018-09-25 17:04:47 -04:00
Ryan C. Gordon
43f15e05dd
render: opengles renderer actually works now. :)
2018-09-25 16:17:10 -04:00
Ryan C. Gordon
b2db99cb9f
render: First shot at converting opengles renderer to new interfaces.
2018-09-25 10:41:25 -04:00
Ryan C. Gordon
c01da21756
render: get rid of the predeclared functions in the GL and Metal renderers.
...
(others to come as I continue to update render backends!)
2018-09-24 12:30:47 -04:00
Ryan C. Gordon
051d1cfcd1
render: Make opengl backend take advantage of new high-level features.
2018-09-24 02:08:34 -04:00
Ryan C. Gordon
8ac5c00a43
render: Add command queue debug logging.
2018-09-24 02:07:35 -04:00
Ryan C. Gordon
2241b33f55
render: Update Metal and GL backends to use new high-level features, etc.
...
Now nothing is uploaded as dynamic data with Metal's setVertexBytes, etc; it's
all in the one big vertex buffer, now.
2018-09-23 23:22:56 -04:00
Ryan C. Gordon
cc56de44a4
render: A bunch of high-level improvements.
...
- high-level filters out duplicate render commands from the queue so
backends don't have to.
- Setting draw color is now a render command, so backends can put color
information into the vertex buffer to upload with everything else instead
of setting it with slower dynamic data later.
- backends can request that they always batch, even for legacy programs,
since the lowlevel API can deal with it (Metal, and eventually Vulkan
and such...)
- high-level makes sure the queue has at least one setdrawcolor and
setviewport command before any draw calls, so the backends don't ever have
to manage cases where this hasn't been explicitly set yet.
- backends allocating vertex buffer space can specify alignment, and the
high-level will keep track of gaps in the buffer between the last used
positions and the aligned data that can be used for later allocations
(Metal and such need to specify some constant data on 256 byte boundaries,
but we don't want to waste all that space we had to skip to meet alignment
requirements).
2018-09-23 23:20:40 -04:00
Ryan C. Gordon
8955fb9b31
render: First shot at moving metal backend over to new batching system.
2018-09-20 16:40:04 -04:00
Ryan C. Gordon
55cb9966db
render: first shot at reworking opengl backend for new batching system.
2018-09-20 16:36:54 -04:00
Ryan C. Gordon
5fb67f9f55
render: Move to a batching system for rendering (work in progress).
2018-09-20 15:46:02 -04:00
Ryan C. Gordon
e0cc19f2d8
testsprite2: report average FPS in blocks of five seconds.
...
This makes the reporting more accurate, vs startup inefficiencies and other
scheduling burps.
2018-09-20 15:41:57 -04:00
Ryan C. Gordon
a2f7af9a47
gles2: Make render command queue dynamic.
...
It now uses a growable linked list that keeps a pool of allocated items for
reuse, and reallocs the vertex array as necessary. Testsprite2 can scale to
20,000 (or more!) draws now without drama.
2018-09-09 15:09:38 -04:00
Ryan C. Gordon
0d3275297d
gles2: Major renderer optimization. Work in progress!
...
This moves all the rendering to a command list that is flushed to the GL as
necessary, making most common activities upload a single vertex buffer per
frame and dramatically reducing state changes. In pathological cases,
like Emscripten running on iOS's Safari, performance can go from a dozen
draw calls killing your performance to 1000 draw calls running smoothly.
This is work in progress, and not ready to ship. Among other things, it has
a hardcoded array that isn't checked for overflow. But the basic idea is
sound!
2018-09-08 18:26:11 -04:00
Ryan C. Gordon
7ed7cb5e65
Created SDL-ryan-batching-renderer branch for the WIP renderer rewrite.
2018-09-25 10:45:37 -04:00
Ryan C. Gordon
264b81b481
metal: Make sure layer drawableSize is adjusted on resize.
...
Fixes Bugzilla #4250 .
2018-09-06 00:56:13 -04:00
Ryan C. Gordon
0cf1ae9d0b
Fixed a comment typo.
2018-09-05 21:24:13 -04:00
Ryan C. Gordon
aae29c9ebd
test: Makefile should copy .dat files for testoverlay2.
2018-09-02 00:35:11 -04:00
Ryan C. Gordon
3634e563c4
metal: SDL_UpdateYUVTexture shouldn't swap planes based on format.
2018-09-01 20:47:12 -04:00
Ryan C. Gordon
df5d565f48
cmake: add sensor subsystem to the build.
2018-08-23 14:32:30 -04:00