kc3-lang/SDL/src/render

Branch :


Log

Author Commit Date CI Message
8f06a629 2021-07-30 22:31:17 render: Fix -Wmaybe-uninitialized warning in RenderDrawLinesWithRects{,F} The RenderDrawLinesWithRects and RenderDrawLinesWithRectsF functions can sometimes call QueueCmdFillRects() with the data pointed to by frects uninitialised. This can occur if none of the lines can be replaced with rects, in which case the frects array is empty, and nrects is 0. gcc 10.3.0 will detect this possibility, and print a warning like: /home/david/Development/SDL/src/render/SDL_render.c: In function 'RenderDrawLinesWithRectsF': /home/david/Development/SDL/src/render/SDL_render.c:2725:15: warning: '<unknown>' may be used uninitialized [-Wmaybe-uninitialized] 2725 | retval += QueueCmdFillRects(renderer, frects, nrects); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/david/Development/SDL/src/render/SDL_render.c:499:1: note: by argument 2 of type 'const SDL_FRect *' to 'QueueCmdFillRects' declared here 499 | QueueCmdFillRects(SDL_Renderer *renderer, const SDL_FRect * rects, const int count) | ^~~~~~~~~~~~~~~~~ This is harmless, because when this is uninitialised, nrects is always 0, so QueueCmdFillRects() does nothing anyway. We therefore can work around this by only calling QueueCmdFillRects() when nrects is nonzero. Somewhat impressively, gcc recognises that this is now safe.
585c11c5 2021-07-30 00:33:15 direct3d: Fix possibly-incorrect scissor test when clearing. Thanks to @JayFoxRox who did the detective work on this! Fixes #3357.
8f38ba4d 2021-07-29 18:02:47 Fix casts that should be using uintptr_t This is needed to support CHERI, and thus Arm's experimental Morello prototype, where pointers are implemented using unforgeable capabilities that include bounds and permissions metadata to provide fine-grained spatial and referential memory safety, as well as revocation by sweeping memory to provide heap temporal memory safety. On most systems (anything with a flat memory hierarchy rather than using segment-based addressing), size_t and uintptr_t are the same type. However, on CHERI, size_t is just an integer offset, whereas uintptr_t is still a capability as described above. Casting a pointer to size_t will strip the metadata and validity tag, and casting from size_t to a pointer will result in a null-derived capability whose validity tag is not set, and thus cannot be dereferenced without faulting. The audio and cursor casts were harmless as they intend to stuff an integer into a pointer, but using uintptr_t is the idiomatic way to do that and silences our compiler warnings (which our build tool makes fatal by default as they often indicate real problems). The iconv and egl casts were true positives as SDL_iconv_t and iconv_t are pointer types, as is NativeDisplayType on most OSes, so this would have trapped at run time when using the round-tripped pointers. The gles2 casts were also harmless; the OpenGL API defines this argument to be a pointer type (and uses the argument name "pointer"), but it in fact represents an integer offset, so like audio and cursor the additional idiomatic cast is needed to silence the warning.
f806064e 2021-07-19 13:12:10 Remove 'support' for rgb/bgr textures, that was causing issues with them
817976da 2021-07-13 13:45:28 VITA: Rewrite and fix RenderCopyEx rotation
3b6e9992 2021-06-23 14:57:04 Vita: remove unused variable and allow Razor perf analysis
b55ee12f 2021-06-21 23:56:04 Vita: fix clip rectangle
e41d3e61 2021-06-21 23:15:37 VIta: fix render clearing
6b122805 2021-06-21 23:14:56 Vita: proper syntax
32deb6f7 2021-06-21 23:14:40 Vita: fix point size
8da0dd17 2021-06-15 18:54:52 Oops. Renderer already queues viewport change
1fc51988 2021-06-15 18:49:55 Reset/re-apply viewport on frame start/target change. Fixes SDL_RenderSetLogicalSize on PSVita
a4442476 2021-06-10 12:14:14 Cleanup dead and duplicate code
dd2a2858 2021-06-10 12:00:56 Remove leftovers
ca969eb2 2021-04-24 10:29:52 Remove gles2 vita render
e87c7940 2021-04-13 14:42:38 Fixed bug 3829 - Don't FOURCC format for target textures FOURCC isn't supported by renderer back-ends for target access So use a correct format and fallback to with native/yuv path
57c2a456 2021-04-02 14:01:41 render: draw when hidden, except on iOS and Android. Fixes #2979.
e14fb54e 2021-03-16 10:47:57 [KMSDRM] Undo SDL_CreateRenderer() modifications aimed at create opengles2 when KMSDRM is in use because it's a harmful solution.
108bb5aa 2021-03-16 00:51:17 [KMSDRM] Modify SDL_CreateRenderer() to create an opengles2 renderer when the KMSDRM backend is being used and no renderer name has been specified.
e58a955e 2021-03-08 18:39:00 Deprecate dolcesdk
c8abc88c 2021-01-29 01:26:35 Add support for message box
91fe2b67 2021-02-19 18:52:19 Allow larger texture sizes
739f4e1e 2021-02-01 23:14:28 Only call sceGxmFinish when vsync is on Also fix oversight with supported textures
ddfe7200 2021-01-18 15:00:50 Rendering improvements - Improve performance for unbatched rendering - Support direct texture access
c7cec2c7 2021-01-11 20:45:12 Add more texture formats
7d89f09f 2020-12-18 14:28:09 ISO C90 fixes
0da35d3d 2020-12-12 23:47:15 IME support with gxm backend
47c6270e 2020-12-09 15:28:57 Fix a bug in vitagles2 renderer
639323ea 2020-12-09 14:38:43 Fixed gxm render flags
05e5a7cb 2020-11-29 22:07:53 Oops
a86ba391 2020-11-28 00:32:32 Add SDL_RenderReadPixels
f623211e 2020-11-25 00:29:04 remove sceGxmFinish on render swap
0b45529e 2020-11-25 00:19:18 Add viewport support
2209b717 2020-11-24 18:12:38 Refactor render state
333d5e11 2020-11-23 20:15:39 Add drawstate cache
56bde0f6 2020-11-23 18:31:23 Rename memory functions to avoid clash with vita2d
94d7737b 2020-11-23 12:45:51 Texture render target
63e223fa 2020-11-23 12:45:09 Set initial blend mode
6c3bf565 2020-11-23 12:44:54 Unified build with both renderers
01311054 2020-11-21 23:04:43 Fix render name
6ba84975 2020-11-21 23:04:27 Remove vita2d render, add raw gxm render
ef0bbfd6 2020-11-16 20:40:22 Include anf fix vita2d renderer
dbb730d3 2020-11-14 23:37:26 Separate vita piglet renderer. Add proper render initialization and window re-creation.
d75ea51a 2020-11-02 20:05:55 Fix texture shaders
2e3dd0a6 2020-11-02 18:14:57 Remove debug log
80036230 2020-11-02 18:10:09 Cg shaders for vita gles2
0ed17131 2021-03-04 18:27:47 update SDL_COMPOSE_ERROR macro for windows clang-cl from a patchset by Vladislav Dmitrievich Turbanov: https://github.com/libsdl-org/SDL/pull/4062
f2a2d0c6 2021-02-15 22:56:20 SDL_render_d3d.c: fix build with SDL_LEAN_AND_MEAN
9b9d0d48 2021-02-15 11:49:09 mac/iOS: allow Metal in windows created without an explicit backend Fixes SDL_CreateWindowAndRenderer (and similar situations) not choosing a Metal backend. See #3991. Passing an explicit backend into CreateWindow, eg SDL_WINDOW_OPENGL or SDL_WINDOW_METAL, will still prevent the window from being used with other backend types.
69e9b2ac 2021-02-01 22:35:46 Fixed bug 5471 - Creating a fullscreen desktop window goes windowed temporarily This is caused by the Metal renderer recreating the window because by default we create an OpenGL window on macOS. It turns out that at least on macOS 10.15, a window that has been initialized for OpenGL can also be used with Metal. So we'll skip recreating the window in that case.
dc0ec827 2021-01-29 13:38:39 Remove old YUV fixme
1e5f0073 2021-01-27 10:58:36 Fixed building with mingw64
70b353d1 2021-01-27 10:54:49 SDL_Update{YUV,NV}Texture: also intersect rect with texture dimension
13626c36 2021-01-27 10:20:13 SDL_UpdateTexture: intersect update rect with texture dimension - fix crash with software renderer - fix non texture update with opengl/gles2
de85d612 2021-01-25 20:51:47 Fixed bug 5497 - SDL_COMPOSE_ERROR is wrong UMU #define SDL_COMPOSE_ERROR(str) SDL_STRINGIFY_ARG(__FUNCTION__) ", " str I think SDL_STRINGIFY_ARG should be removed. #define SDL_COMPOSE_ERROR(str) __FUNCTION__ ", " str (verified with Visual Studio 2019)
f40551c5 2021-01-25 22:17:11 GLES2 SDL_Renderer: remove old ZUNE_HD defines and simplify shader cache
b99543b6 2021-01-11 20:40:11 opengl: More work on making line drawing match software renderer.
958e5d5b 2021-01-11 10:01:24 SDL_UpdateNVTexture: fixed pitch/bpp for GLES2 (bug #5430)
b94718e0 2021-01-09 21:22:21 SDL_UpdateNVTexture: for D3D11, same notation as SDL_UpdateTexture (bug #5430)
57a5c453 2021-01-05 22:06:51 Fix D3D11 UpdateTextureNV in non fullscreen (bug #5430)
fc61ecb2 2021-01-05 21:54:03 Fix software UpdateNVTexture non fullscreen (bug #5430)
204ef3b5 2021-01-05 20:38:31 Fix D3D11 UpdateNVTexture (bug #5430)
c0df40e0 2021-01-05 17:39:48 Add more SDL_HAVE_YUV defines
b0325041 2021-01-05 12:36:34 Fix unused variable warning on METAL (see bug #5430)
c1eb9ecf 2021-01-05 12:29:43 Add SDL_UpdateNVTexture for META (bug #5430) (not tested)
73d93dbc 2021-01-05 12:20:02 Fix compilation on Window10 (see bug #5430)
df6b8131 2021-01-05 12:16:32 Fix compilation (implicit declaration of function) (see bug #5430)
d1f031c8 2021-01-05 12:08:16 Add SDL_UpdateNVTexture for d3d11 (bug #5430) (not tested)
f5eba2cc 2021-01-05 12:00:54 Fixed invalid read in yuv_rgb_sse() (see bug #5430)
be4cfd51 2021-01-05 11:56:22 Add SDL_UpdateNVTexture() to update NV12/21 Texture (bug #5430) for renderer software, opengl, and opengles2
393c8c1f 2021-01-03 10:32:55 Fixed bug 5440 - MacCatalyst build failures C.W. Betts I tested building commit http://hg.libsdl.org/SDL/rev/7adf3fdc19f3 on Mac Catalyst and found some issues: * MTLFeatureSet_iOS_* enums aren't available under Mac Catalyst. * OpenGL ES is unavailable under Mac Catalyst. * Some Metal features are available under Catalyst but not iOS, such as displaySyncEnabled. * Set Metal as the default renderer on Mac Catalyst Attaching a patch that will make SDL2 build for Mac Catalyst.
9130f7c3 2021-01-02 10:25:38 Updated copyright for 2021
3edf337d 2021-01-02 17:29:34 Simplify RenderGetViewportSize
2af765da 2021-01-02 17:18:13 SDL_RenderGetViewportF: only need the size of viewport (see bug #5424)
41597249 2021-01-02 16:15:22 SDL_RenderGetViewportF: remove debug messages
8c48c423 2021-01-02 16:12:30 Add SDL_RenderGetViewportF: fix lost of precision while scaling (see bug #5424)
223af86c 2021-01-01 11:12:30 Added SDL_RenderGetD3D11Device() to get access to the device associated with the D3D11 renderer
5f0b2a7f 2021-01-01 11:12:22 Fixed resource leak with D3D11 NV12 textures
590a5469 2020-12-30 16:12:14 Fixed bug 5424 - Renderer doesn't use entirely the viewport when scaling is used Viewport/Clip dimensions are calculated usingg SDL_ceil whereas all renders use SDL_floor
5dabc4d7 2020-12-28 18:17:25 Revert changeset 14590 544ac819e8b3 , does not fully fix
9efdafd4 2020-12-28 18:07:03 SDL_RenderCopy: scale before doing intersection this prevents drawing 1 pixel outside the screen, in letterbox mode
f9b5f6cc 2020-12-27 20:28:24 Forward scale mode to SW renderer (Bug 5313)
7fa5e95b 2020-12-09 07:23:47 Fixed bug 5213 - Add support to metal in iOS/tvOS simulator Vincent Hamm Xcode11 and ios13 added support for metal simulator. Here is a quick and dirty patch to enable it. Pretty early and only tested on a few samples for now. Required mostly to enable metal support on correct version of ios, generate simulator compatible shaders and enforce buffer alignments on simulator (same as osx).
cb361896 2020-12-09 07:16:22 Fixed bug 5235 - All internal sources should include SDL_assert.h Ryan C. Gordon We should really stick this in SDL_internal.h or something so it's always available.
88cb4962 2020-12-09 06:42:31 Fixed bug 5291 - SDL_SetRenderTarget unnecessarily changes target when current target is the native texture of the passed in texture
754286c6 2020-12-02 13:45:24 SDL Renderer: specify the correct flag when recreating the window
0e4ce848 2020-11-08 20:57:17 opengl: Make diagonal lines match the software renderer. OpenGL leaves the final line segment open, SDL's software renderer does not, so we need a tiny bit of trigonometry here to move one more pixel in the right direction.
da49f795 2020-11-08 19:56:12 opengles: use glDrawArrays() correctly with GL_LINE_STRIP.
93a2c58c 2020-11-08 12:37:09 opengl: Use GL_LINE_STRIP instead of breaking down into seperate GL_LINES. Surely GL drivers have improved in the last seven years. I hope...?
731a5d1c 2020-11-08 03:18:05 metal: Fix line drawing, again.
ba36eb04 2020-10-21 00:03:33 metal: Make line drawing match software renderer. Partially fixes Bugzilla #2711.
c33f8083 2020-10-20 11:12:49 render: Restoring line rendering fixes that were previously put on hold. (Backed out hg changeset 7a4240daba46)
061256a3 2020-10-07 14:45:24 metal: Clear the framebuffer if presenting without any other operations.
a720d1a2 2020-08-09 00:55:39 render: fixes to how we convert touch events for logical scaling. We now handle HiDPI correctly, and touches are clamped to the viewport. So if you are rendering to a logical 640x480 in a 720p window, and touch the letterboxing at point (640,700), it will report the touch at (0.5,1.0) instead of outside the documented range.
b7a4fdd3 2020-07-17 11:16:35 metal: Make sure we have a command buffer available before trying to present. This fixes a case where you render to the backbuffer, then render to a render target, set the current target back to the backbuffer, and then present without drawing anything else; in this circumstance, the Present command would never happen. Fixes Bugzilla #5011.
15294e21 2020-05-26 13:54:47 Fixed iOS build
f16e6bfa 2020-05-25 14:10:51 Fixed creating a metal renderer without specifying a metal window
39690a04 2020-05-15 21:33:47 Fix static analysis warning in SDL_render.c
a96d8a43 2020-04-13 22:05:36 render: Fixed compiler warning about implicit cast.
aa188048 2020-04-10 12:23:08 render: Scale relative mouse motion better for logical sizing From hmk: "When scaling is enabled (e.g. via SDL_RenderSetLogicalSize, size not equal to window size), mouse motion events are also scaled. Small motions are rounded up (SDL_max() when the value after scaling is less than 1), while larger motions are truncated by the floating point -> integer conversion. https://hg.libsdl.org/SDL/file/b18197f9bf9d/src/render/SDL_render.c#l658 The end result feels something like mouse reverse mouse acceleration + angle snapping at low speeds, but less consistent (amount of truncation & rounding depends on how fast the mouse is moved) and potentially much worse if the scaling factor is large. This pretty much makes it useless for anything where you need precise mouse aiming (think of games). I suspect this is why aiming gets so terrible in some games that let you use scaling to reduce the render resolution (e.g. Ion Fury). With 4x4 scaling, I can reproduce a situation where it takes three fast flicks of the mouse across the pad to undo one slow sweep across the pad. In other words, extreme reverse acceleration. This does not happen when scaling is disabled. Furthermore, any game that uses relative mouse motion events for 3D camera rotation probably wants the raw mouse deltas and not a value that depends on scaling and resolution and rounding and truncation. Ideal camera rotation just takes mouse input, multiplies it by sensitivity, and adds it to the angle-in-radians or whatever measure is used for yaw & pitch. Pixels and screen resolution or window dimensions should not be a part of the equation at all, even if it could be implemented without rounding errors. [...] This [patch] completely eliminates angle snapping for me, and makes sensitivity consistent. In other words, it's completely usable for, say, aiming in a first person shooter." Partially fixes Bugzilla #4811.