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
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
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
264b81b481
metal: Make sure layer drawableSize is adjusted on resize.
...
Fixes Bugzilla #4250 .
2018-09-06 00:56:13 -04:00
Sam Lantinga
80021c21b6
Speculatively disable rumble on the Razer Panthera Evo, which doesn't have rumble motors and probably hangs in the same way the Panthera does.
2018-09-05 15:28:06 -07:00
Sam Lantinga
96259f1f85
Don't overwrite the default binding when changing the binding for a controller that was using the default.
2018-09-05 12:16:01 -07:00
Sam Lantinga
963e74d68c
Added binding for Mad Catz FightStick TE S+ (PS3) on Mac OS X
2018-09-05 11:24:23 -07:00
Sam Lantinga
c152e380be
Added support for the Razer Panthera Fightstick
...
Fixed bindings for the Mad Catz FightStick TE S+
2018-09-05 11:18:50 -07:00
Ryan C. Gordon
3634e563c4
metal: SDL_UpdateYUVTexture shouldn't swap planes based on format.
2018-09-01 20:47:12 -04:00
Sam Lantinga
34237b80f4
Better fix to make sure we're only returning controllers from the HIDAPI joystick API
2018-08-31 18:10:21 -07:00
Sam Lantinga
4ffcd88ca2
Removed VID/PID 0x1532/0x0037, which was listed in the Linux kernel as a Razer Sabertooth, because at least one variant of the Razer DeathAdder mouse shows up with this VID/PID.
2018-08-31 17:47:34 -07:00
Sam Lantinga
5ef8eb49be
Don't show the Razer Raiju sound interface as a game controller
2018-08-29 20:55:02 -07:00
Sam Lantinga
90a5607d32
Fixed compiler warning and use higher precision in angle calculation
2018-08-29 20:23:42 -07:00