Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| 9cdd0dd9 | 2018-12-29 17:59:34 | PSP renderer: use colors from 'draw' union (very likely, but un-tested) | ||
| ebd9efb3 | 2018-12-29 16:37:44 | opengles 1: same fix as in bug #4433 | ||
| 87b76369 | 2018-12-29 16:34:50 | opengles 1: use color from 'draw' union in SetDrawState() | ||
| dc344360 | 2018-12-21 20: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-19 18: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-19 18:27:21 | metal: Implement SDL_LockTexture for YUV formats. | ||
| ce8c716a | 2018-12-18 14:23:05 | metal: Implement SDL_LockTexture for non-YUV textures. | ||
| e5476c65 | 2018-12-15 14: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-06 10:24:44 | opengles2: fix prototype of glDeleteBuffers | ||
| 252dc85e | 2018-12-06 09:22:00 | Fix warnings detected on Android build | ||
| 6259a726 | 2018-12-05 16:13:12 | Warnings: fix a documentation warning and missing prototypes | ||
| cca9d24c | 2018-12-03 09:26:05 | direct3d: be more aggressive about resetting invalidated cached state. Fixes Bugzilla #4402. | ||
| 939bf1c4 | 2018-12-03 02:06:17 | render: fix some static analysis warnings. | ||
| 33f78eb1 | 2018-12-03 01:58:23 | direct3d: Make sure streaming textures update before being used for drawing. Fixes Bugzilla #4402. | ||
| b744108a | 2018-12-02 21:57:33 | Patched to compile on C89 compilers. | ||
| 3c936150 | 2018-12-02 20: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-25 22: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-21 23:46:37 | metal: Fix an incorrect division. | ||
| 4a58722b | 2018-11-21 23: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-17 16:24:52 | opengles: Fixed compiler warnings. | ||
| 9719f89d | 2018-11-17 12:12:29 | Back out change initializing renderer blend mode incorrectly. | ||
| fde7592a | 2018-11-17 14:39:42 | direct3d11: Fixed missing rendering of solid primitives. Fixes Bugzilla #4388. | ||
| 782f1685 | 2018-11-17 14:37:51 | Fixed a few compiler warnings. | ||
| 29e15ce6 | 2018-11-17 00:58:45 | The default draw blendmode is SDL_BLENDMODE_NONE | ||
| 9262c0de | 2018-11-14 22:38:58 | software: fix blits with color mods that change during a command queue run. | ||
| 244b79e1 | 2018-11-04 14: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-04 12: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-04 12:24:05 | metal: fix the size of the buffer used for constant data. | ||
| 457390fc | 2018-11-01 20:24:21 | metal: avoid an extra buffer allocation and GPU data copy in RunCommandQueue, it's not needed. Improves overall performance. | ||
| 4e86dfd8 | 2018-11-01 19:49:01 | metal: remove an obsolete section of a constant buffer. | ||
| 0d79a8a1 | 2018-11-01 20: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-01 12:31:45 | merge fallout: Patched to compile, fixed some compiler warnings, etc. | ||
| 329f2eb9 | 2018-10-31 20: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-31 15:03:41 | Merge SDL-ryan-batching-renderer branch to default. | ||
| da56cefa | 2018-10-30 07: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-28 21: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-23 01:34:03 | render: Add floating point versions of various draw APIs. | ||
| b262b0eb | 2018-10-22 20:50:32 | Small stack allocations fall back to malloc if they're unexpectedly large. | ||
| 8c41e262 | 2018-10-13 03: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-12 17:55:42 | metal: Fix high dpi and resizing on macOS, and clean up iOS code. Fixes bug #4250. | ||
| 82c2f04e | 2018-10-09 17: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-06 17:08:04 | opengles2: Fixed several incorrect things. | ||
| 6ecd0b2c | 2018-10-04 21:10:42 | opengles2: removed useless memcpy. | ||
| ef3d970a | 2018-10-04 20:22:28 | opengles2: Fixed incorrect cliprect state. | ||
| 208c4b03 | 2018-10-04 20:21:58 | metal: CopyEx transform matrix must be aligned for constant buffer access. | ||
| 638d624f | 2018-10-04 20: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-04 16:34:44 | render: Added SDL_RenderFlush(). | ||
| 09140bd8 | 2018-10-04 16: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-03 23:37:29 | render: moved software renderer to new interface. | ||
| bd08a4e6 | 2018-10-03 19: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-03 18:23:53 | render: D3D11 renderer patched to compile. | ||
| 6e6f7382 | 2018-10-03 00:52:37 | render: first (untested!) shot at converting D3D11 renderer to new interfaces. Probably doesn't even compile yet. | ||
| 0c2e10dc | 2018-10-01 22:53:45 | render: Make the GL backends cache and defer more state changes. | ||
| fcb46813 | 2018-10-01 13: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-01 11: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-01 03:02:54 | render: Patched to compile. | ||
| 5e644cfd | 2018-10-01 01:23:02 | render: first shot at moving Direct3D 9 backend to new interface. Untested! | ||
| fdc52a65 | 2018-09-29 04:00:38 | render: patched to compile on C89 compilers, other untested code fixes. | ||
| daad53af | 2018-09-28 19:48:14 | opengles1: set some non-zero drawstate defaults. | ||
| c20a858d | 2018-09-28 19:47:44 | render: moved opengles2 over to new interface. | ||
| 20dfda44 | 2018-09-28 00:40:35 | Fixed mingw-w64 build | ||
| 7df0f4fd | 2018-09-27 14: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-25 19:53:16 | Removed redundant SDL_GetColorKey() call. (thanks Sylvain!) | ||
| 0d588cc4 | 2018-09-25 21:35:09 | render: Do state cache improvements for GLES1, too. | ||
| d04e5524 | 2018-09-25 19:20:31 | render: OpenGL renderer now caches some state, to improve non-batching mode. (other minor bug fixes in here, too) | ||
| 06461bba | 2018-09-25 17: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-25 16:17:10 | render: opengles renderer actually works now. :) | ||
| b2db99cb | 2018-09-25 10:41:25 | render: First shot at converting opengles renderer to new interfaces. | ||
| ef347048 | 2018-09-24 16: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-24 12: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-24 02:08:34 | render: Make opengl backend take advantage of new high-level features. | ||
| 8ac5c00a | 2018-09-24 02:07:35 | render: Add command queue debug logging. | ||
| 2241b33f | 2018-09-23 23: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-23 23: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-20 16:40:04 | render: First shot at moving metal backend over to new batching system. | ||
| 55cb9966 | 2018-09-20 16:36:54 | render: first shot at reworking opengl backend for new batching system. | ||
| 5fb67f9f | 2018-09-20 15:46:02 | render: Move to a batching system for rendering (work in progress). | ||
| a2f7af9a | 2018-09-09 15: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-08 18: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-06 00:56:13 | metal: Make sure layer drawableSize is adjusted on resize. Fixes Bugzilla #4250. | ||
| 3634e563 | 2018-09-01 20:47:12 | metal: SDL_UpdateYUVTexture shouldn't swap planes based on format. | ||
| 90a5607d | 2018-08-29 20:23:42 | Fixed compiler warning and use higher precision in angle calculation | ||
| 92396f7d | 2018-08-28 16:19:31 | Fixed Windows build | ||
| 87bc1fb5 | 2018-08-28 12: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-25 01:57:28 | gles2: Whoops, overzealous copy/paste on my part. :) | ||
| 5308a245 | 2018-06-24 12:16:58 | Fixed some possible malloc(0) calls reported by static analysis. | ||
| 74ec7cab | 2018-06-18 13:13:56 | Fixed race condition where Android touch events could get scaled by a render target's viewport | ||
| fe032ff4 | 2018-05-10 08:25:23 | do the direct3d tap dance for overscan hint only if SDL_VIDEO_RENDER_D3D == 1 | ||
| eb14b635 | 2018-05-07 19: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-21 22:53:52 | Backed out changeset 6c8521d53507 Apparently this still triggers a compiler warning, have to dig further. | ||
| fd8f12d2 | 2018-02-21 22:35:17 | android: apparently they fixed this header at some point. | ||
| 40b27fd5 | 2018-02-12 17: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-09 16:31:57 | Fixed compile warning | ||
| 90e72bf4 | 2018-01-30 18: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-10 10:42:40 | Added availability check to fix compiler warning for symbol only available on tvOS 11.0 and newer | ||
| 7d5437bb | 2018-01-07 22:00:37 | metal: set max texture size based on device capability. | ||
| a8c0532c | 2018-01-07 16: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-06 18:54:12 | metal: Add support for YUV/NV12 texture formats. | ||
| 9a8683b2 | 2018-01-04 22: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. | ||
| 990ebba5 | 2018-01-04 19:29:33 | metal: Implement fast hardware clearing when possible, by deferring the start of a render pass until a clear or draw operation happens. |