|
5e13087b
|
2019-01-04T22:01:14
|
|
Updated copyright for 2019
|
|
9cdd0dd9
|
2018-12-29T17:59:34
|
|
PSP renderer: use colors from 'draw' union (very likely, but un-tested)
|
|
ebd9efb3
|
2018-12-29T16:37:44
|
|
opengles 1: same fix as in bug #4433
|
|
87b76369
|
2018-12-29T16:34:50
|
|
opengles 1: use color from 'draw' union in SetDrawState()
|
|
dc344360
|
2018-12-21T20:53:31
|
|
render: Fix internal state getting out of sync when destroying a texture that was just rendered and then creating a new one, in the GL and GLES2 backends. Fixes bug #4433.
|
|
0a705901
|
2018-12-19T18:10:02
|
|
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!
|
|
c7db6ade
|
2018-12-19T18:27:21
|
|
metal: Implement SDL_LockTexture for YUV formats.
|
|
ce8c716a
|
2018-12-18T14:23:05
|
|
metal: Implement SDL_LockTexture for non-YUV textures.
|
|
e5476c65
|
2018-12-15T14:50:12
|
|
Fixed bug 4425 - promote to alpha format, palette surface with alpha values.
SDL_CreateTextureFromSurface() forgets to choose a texture format with alpha for
surfaces that have palettes with alpha values.
|
|
39ec1699
|
2018-12-06T10:24:44
|
|
opengles2: fix prototype of glDeleteBuffers
|
|
252dc85e
|
2018-12-06T09:22:00
|
|
Fix warnings detected on Android build
|
|
6259a726
|
2018-12-05T16:13:12
|
|
Warnings: fix a documentation warning and missing prototypes
|
|
cca9d24c
|
2018-12-03T09:26:05
|
|
direct3d: be more aggressive about resetting invalidated cached state.
Fixes Bugzilla #4402.
|
|
939bf1c4
|
2018-12-03T02:06:17
|
|
render: fix some static analysis warnings.
|
|
33f78eb1
|
2018-12-03T01:58:23
|
|
direct3d: Make sure streaming textures update before being used for drawing.
Fixes Bugzilla #4402.
|
|
b744108a
|
2018-12-02T21:57:33
|
|
Patched to compile on C89 compilers.
|
|
3c936150
|
2018-12-02T20:55:57
|
|
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.
|
|
37b1f989
|
2018-11-25T22:13:09
|
|
metal: use a staging texture in SDL_UpdateTexture, to make sure it doesn't stomp texture data being drawn in a previous frame on the GPU.
|
|
872936a4
|
2018-11-21T23:46:37
|
|
metal: Fix an incorrect division.
|
|
4a58722b
|
2018-11-21T23:37:23
|
|
metal: SDL_RenderFillRects uses one draw call per 16k rectangles (within the given FillRects call), instead of one draw call per rectangle. Reduces CPU usage when drawing many rectangles.
|
|
457e58c4
|
2018-11-17T16:24:52
|
|
opengles: Fixed compiler warnings.
|
|
9719f89d
|
2018-11-17T12:12:29
|
|
Back out change initializing renderer blend mode incorrectly.
|
|
fde7592a
|
2018-11-17T14:39:42
|
|
direct3d11: Fixed missing rendering of solid primitives.
Fixes Bugzilla #4388.
|
|
782f1685
|
2018-11-17T14:37:51
|
|
Fixed a few compiler warnings.
|
|
29e15ce6
|
2018-11-17T00:58:45
|
|
The default draw blendmode is SDL_BLENDMODE_NONE
|
|
9262c0de
|
2018-11-14T22:38:58
|
|
software: fix blits with color mods that change during a command queue run.
|
|
244b79e1
|
2018-11-04T14:31:56
|
|
metal: SDL_RenderReadPixels on macOS synchronizes the render target's texture data if it's managed, before reading from it.
|
|
c9fed272
|
2018-11-04T12:31:02
|
|
metal: fix the SDL_RENDERER_PRESENTVSYNC flag not being set on the renderer info on macOS, when vsync is used.
|
|
c2bba9e4
|
2018-11-04T12:24:05
|
|
metal: fix the size of the buffer used for constant data.
|
|
457390fc
|
2018-11-01T20:24:21
|
|
metal: avoid an extra buffer allocation and GPU data copy in RunCommandQueue, it's not needed. Improves overall performance.
|
|
4e86dfd8
|
2018-11-01T19:49:01
|
|
metal: remove an obsolete section of a constant buffer.
|
|
0d79a8a1
|
2018-11-01T20:04:24
|
|
fix build using Watcom :
./src/render/SDL_render.c(2168): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2168): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2175): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2175): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2322): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2322): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2322): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2322): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2329): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2329): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2329): Error! E1054: Expression must be constant
./src/render/SDL_render.c(2329): Error! E1054: Expression must be constant
./src/render/software/SDL_render_sw.c(602): Error! E1054: Expression must be constant
./src/render/software/SDL_render_sw.c(602): Error! E1054: Expression must be constant
./src/render/software/SDL_render_sw.c(602): Error! E1054: Expression must be constant
./src/render/software/SDL_render_sw.c(602): Error! E1054: Expression must be constant
|
|
4659e738
|
2018-11-01T12:31:45
|
|
merge fallout: Patched to compile, fixed some compiler warnings, etc.
|
|
329f2eb9
|
2018-10-31T20:17:53
|
|
Fix crash when GL_LoadFunctions()/GLES2_LoadFunctions() fails
https://bugzilla.libsdl.org/show_bug.cgi?id=4350
We can't safely call GL_DestroyRenderer() until GL_LoadFunctions()
succeeds because we will be missing functions that we try to use
when activating the renderer for destruction if we have an GL context.
|
|
62494a2e
|
2018-10-31T15:03:41
|
|
Merge SDL-ryan-batching-renderer branch to default.
|
|
da56cefa
|
2018-10-30T07:00:03
|
|
Fixed bug 4188 - Software renderer SDL_RenderCopyEx blits corrupt image under certain cases
Sylvain
Re-opening this issue.
It fixes the test-case, but it introduces a regression with another bug (bug #4313).
So here's a new patch that activate cropping of the source surface to solve the issue.
It also reverts the wrong changeset.
It prevents unneeded colorkey error message.
|
|
91820998
|
2018-10-28T21:36:48
|
|
Add and update include guards
Include guards in most changed files were missing, I added them keeping
the same style as other SDL files. In some cases I moved the include
guards around to be the first thing the header has to take advantage of
any possible improvements compiler may have for inclusion guards.
|
|
8340b0f0
|
2018-10-23T01:34:03
|
|
render: Add floating point versions of various draw APIs.
|
|
b262b0eb
|
2018-10-22T20:50:32
|
|
Small stack allocations fall back to malloc if they're unexpectedly large.
|
|
8c41e262
|
2018-10-13T03:36:42
|
|
metal: Fix SDL_RenderReadPixels to wait for the GPU to finish rendering to the active texture before reading its pixels.
|
|
d9094421
|
2018-10-12T17:55:42
|
|
metal: Fix high dpi and resizing on macOS, and clean up iOS code. Fixes bug #4250.
|
|
82c2f04e
|
2018-10-09T17:41:40
|
|
Fixed bug 4188 - Software renderer SDL_RenderCopyEx blits corrupt image under certain cases
duckgrease
SDL_RenderCopyEx blits wrong image (in some cases it's bunch of alternating horizontal lines, some cases it's image from the wrong coordinate, and in some cases it's just a bunch of garbled pixels), when the following conditions are met:
- Use software renderer.
- Enable either horizontal or vertical flip.
- source and destination rectangles must have same width and height, and must be smaller than the size of the texture.
- source rectangle's X and Y coordinates must be 0.
|
|
eedf2c96
|
2018-10-06T17:08:04
|
|
opengles2: Fixed several incorrect things.
|
|
6ecd0b2c
|
2018-10-04T21:10:42
|
|
opengles2: removed useless memcpy.
|
|
ef3d970a
|
2018-10-04T20:22:28
|
|
opengles2: Fixed incorrect cliprect state.
|
|
208c4b03
|
2018-10-04T20:21:58
|
|
metal: CopyEx transform matrix must be aligned for constant buffer access.
|
|
638d624f
|
2018-10-04T20:21:23
|
|
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.)
|
|
1ecf4dfc
|
2018-10-04T16:34:44
|
|
render: Added SDL_RenderFlush().
|
|
09140bd8
|
2018-10-04T16:11:43
|
|
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. :)
|
|
9fedff99
|
2018-10-03T23:37:29
|
|
render: moved software renderer to new interface.
|
|
bd08a4e6
|
2018-10-03T19:05:20
|
|
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.
|
|
a9094a21
|
2018-10-03T18:23:53
|
|
render: D3D11 renderer patched to compile.
|
|
6e6f7382
|
2018-10-03T00:52:37
|
|
render: first (untested!) shot at converting D3D11 renderer to new interfaces.
Probably doesn't even compile yet.
|
|
0c2e10dc
|
2018-10-01T22:53:45
|
|
render: Make the GL backends cache and defer more state changes.
|
|
fcb46813
|
2018-10-01T13:41:15
|
|
render: D3D9 doesn't need to check for stream offset support anymore.
We don't use offsets at all now. Too slow.
|
|
709f5ee4
|
2018-10-01T11:32:08
|
|
render: Set the D3D9 stream source once and choose offsets during draw calls.
This is _much_ faster than setting the offsets with SetStreamSource!
|
|
9870746b
|
2018-10-01T03:02:54
|
|
render: Patched to compile.
|
|
5e644cfd
|
2018-10-01T01:23:02
|
|
render: first shot at moving Direct3D 9 backend to new interface. Untested!
|
|
fdc52a65
|
2018-09-29T04:00:38
|
|
render: patched to compile on C89 compilers, other untested code fixes.
|
|
daad53af
|
2018-09-28T19:48:14
|
|
opengles1: set some non-zero drawstate defaults.
|
|
c20a858d
|
2018-09-28T19:47:44
|
|
render: moved opengles2 over to new interface.
|
|
20dfda44
|
2018-09-28T00:40:35
|
|
Fixed mingw-w64 build
|
|
7df0f4fd
|
2018-09-27T14:56:29
|
|
Fixed bug 4277 - warnings patch
Sylvain
Patch a few warnings when using:
-Wmissing-prototypes -Wdocumentation -Wdocumentation-unknown-command
They are automatically enabled with -Wall
|
|
60afec79
|
2018-09-25T19:53:16
|
|
Removed redundant SDL_GetColorKey() call. (thanks Sylvain!)
|
|
0d588cc4
|
2018-09-25T21:35:09
|
|
render: Do state cache improvements for GLES1, too.
|
|
d04e5524
|
2018-09-25T19:20:31
|
|
render: OpenGL renderer now caches some state, to improve non-batching mode.
(other minor bug fixes in here, too)
|
|
06461bba
|
2018-09-25T17:04:47
|
|
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.
|
|
43f15e05
|
2018-09-25T16:17:10
|
|
render: opengles renderer actually works now. :)
|
|
b2db99cb
|
2018-09-25T10:41:25
|
|
render: First shot at converting opengles renderer to new interfaces.
|
|
ef347048
|
2018-09-24T16:41:55
|
|
Fixed bug 4264 - SDL_CreateTextureFromSurface generates error message but returns ok
Anthony @ POW Games
SDL_CreateTextureFromSurface makes an internal call to SDL_GetColorKey which can return an error and spams the error log with "Surface doesn't have a colorkey" even though the original function didn't return an error.
|
|
c01da217
|
2018-09-24T12:30:47
|
|
render: get rid of the predeclared functions in the GL and Metal renderers.
(others to come as I continue to update render backends!)
|
|
051d1cfc
|
2018-09-24T02:08:34
|
|
render: Make opengl backend take advantage of new high-level features.
|
|
8ac5c00a
|
2018-09-24T02:07:35
|
|
render: Add command queue debug logging.
|
|
2241b33f
|
2018-09-23T23:22:56
|
|
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.
|
|
cc56de44
|
2018-09-23T23:20:40
|
|
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).
|
|
8955fb9b
|
2018-09-20T16:40:04
|
|
render: First shot at moving metal backend over to new batching system.
|
|
55cb9966
|
2018-09-20T16:36:54
|
|
render: first shot at reworking opengl backend for new batching system.
|
|
5fb67f9f
|
2018-09-20T15:46:02
|
|
render: Move to a batching system for rendering (work in progress).
|
|
a2f7af9a
|
2018-09-09T15:09:38
|
|
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.
|
|
0d327529
|
2018-09-08T18:26:11
|
|
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!
|
|
264b81b4
|
2018-09-06T00:56:13
|
|
metal: Make sure layer drawableSize is adjusted on resize.
Fixes Bugzilla #4250.
|
|
3634e563
|
2018-09-01T20:47:12
|
|
metal: SDL_UpdateYUVTexture shouldn't swap planes based on format.
|
|
90a5607d
|
2018-08-29T20:23:42
|
|
Fixed compiler warning and use higher precision in angle calculation
|
|
92396f7d
|
2018-08-28T16:19:31
|
|
Fixed Windows build
|
|
87bc1fb5
|
2018-08-28T12:57:51
|
|
GLES2: Get sin/cos out of vertex shader
The only place angle is activated and causes effect is RenderCopyEx. All other
methods which use vertex shader, leave angle disabled and cause useless sin/cos
calculation in shader.
To get around shader's interface is changed to a vector that contains results
of sin and cos. To behave properly when disabled, cos value is set with offset
-1.0 making 0.0 default when deactivated.
As nice side effect it simplifies GLES2_UpdateVertexBuffer: All attributes are
vectors now.
Additional background:
* On RaspberryPi it gives a performace win for operations. Tested with
[1] numbers go down for 5-10% (not easy to estimate due to huge variation).
* SDL_RenderCopyEx was tested with [2]
* It works around left rotated display caused by low accuracy sin implemetation
in RaspberryPi/VC4 [3]
[1] https://github.com/schnitzeltony/sdl2box
[2] https://github.com/schnitzeltony/sdl2rendercopyex
[3] https://github.com/anholt/mesa/issues/110
Signed-off-by: Andreas M?ller <schnitzeltony@gmail.com>
|
|
915a7e03
|
2018-06-25T01:57:28
|
|
gles2: Whoops, overzealous copy/paste on my part. :)
|
|
5308a245
|
2018-06-24T12:16:58
|
|
Fixed some possible malloc(0) calls reported by static analysis.
|
|
74ec7cab
|
2018-06-18T13:13:56
|
|
Fixed race condition where Android touch events could get scaled by a render target's viewport
|
|
fe032ff4
|
2018-05-10T08:25:23
|
|
do the direct3d tap dance for overscan hint only if SDL_VIDEO_RENDER_D3D == 1
|
|
eb14b635
|
2018-05-07T19:52:25
|
|
Fixed bug 4134 - Render targets lose scale quality after minimizing a fullscreen window
Olli-Samuli Lehmus
If one creates a window with the SDL_WINDOW_FULLSCREEN_DESKTOP flag, and creates a render target with SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear"), and afterwards sets SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "nearest"), after minimizing the window, the scale quality hint is lost on the render target. Textures however do keep their interpolation modes.
|
|
8891f591
|
2018-02-21T22:53:52
|
|
Backed out changeset 6c8521d53507
Apparently this still triggers a compiler warning, have to dig further.
|
|
fd8f12d2
|
2018-02-21T22:35:17
|
|
android: apparently they fixed this header at some point.
|
|
40b27fd5
|
2018-02-12T17:00:00
|
|
revert the recent typecast assignment changes (see bug #4079)
also change the void* typedefs for the two vulkan function
pointers added in vulkan_internal.h into generic function
pointer typedefs.
|
|
d5f293a7
|
2018-02-09T16:31:57
|
|
Fixed compile warning
|
|
90e72bf4
|
2018-01-30T18:08:34
|
|
Fixed ISO C99 compatibility
SDL now builds with gcc 7.2 with the following command line options:
-Wall -pedantic-errors -Wno-deprecated-declarations -Wno-overlength-strings --std=c99
|
|
72d45079
|
2018-01-10T10:42:40
|
|
Added availability check to fix compiler warning for symbol only available on tvOS 11.0 and newer
|
|
7d5437bb
|
2018-01-07T22:00:37
|
|
metal: set max texture size based on device capability.
|
|
a8c0532c
|
2018-01-07T16:57:32
|
|
metal: Fix pipeline states to use the pixel format of the current render target, instead of a hard-coded format.
|
|
740a90af
|
2018-01-06T18:54:12
|
|
metal: Add support for YUV/NV12 texture formats.
|
|
9a8683b2
|
2018-01-04T22:16:42
|
|
metal: use a private instead of managed buffer for the renderer's non-changing constant data.
Recommended by Xcode's Metal frame capture analysis.
|