|
8f06a629
|
2021-07-30T22: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-30T00: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-29T18: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-19T13:12:10
|
|
Remove 'support' for rgb/bgr textures, that was causing issues with them
|
|
817976da
|
2021-07-13T13:45:28
|
|
VITA: Rewrite and fix RenderCopyEx rotation
|
|
3b6e9992
|
2021-06-23T14:57:04
|
|
Vita: remove unused variable and allow Razor perf analysis
|
|
b55ee12f
|
2021-06-21T23:56:04
|
|
Vita: fix clip rectangle
|
|
e41d3e61
|
2021-06-21T23:15:37
|
|
VIta: fix render clearing
|
|
6b122805
|
2021-06-21T23:14:56
|
|
Vita: proper syntax
|
|
32deb6f7
|
2021-06-21T23:14:40
|
|
Vita: fix point size
|
|
8da0dd17
|
2021-06-15T18:54:52
|
|
Oops. Renderer already queues viewport change
|
|
1fc51988
|
2021-06-15T18:49:55
|
|
Reset/re-apply viewport on frame start/target change. Fixes SDL_RenderSetLogicalSize on PSVita
|
|
a4442476
|
2021-06-10T12:14:14
|
|
Cleanup dead and duplicate code
|
|
dd2a2858
|
2021-06-10T12:00:56
|
|
Remove leftovers
|
|
ca969eb2
|
2021-04-24T10:29:52
|
|
Remove gles2 vita render
|
|
e87c7940
|
2021-04-13T14: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-02T14:01:41
|
|
render: draw when hidden, except on iOS and Android.
Fixes #2979.
|
|
e14fb54e
|
2021-03-16T10: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-16T00: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-08T18:39:00
|
|
Deprecate dolcesdk
|
|
c8abc88c
|
2021-01-29T01:26:35
|
|
Add support for message box
|
|
91fe2b67
|
2021-02-19T18:52:19
|
|
Allow larger texture sizes
|
|
739f4e1e
|
2021-02-01T23:14:28
|
|
Only call sceGxmFinish when vsync is on
Also fix oversight with supported textures
|
|
ddfe7200
|
2021-01-18T15:00:50
|
|
Rendering improvements
- Improve performance for unbatched rendering
- Support direct texture access
|
|
c7cec2c7
|
2021-01-11T20:45:12
|
|
Add more texture formats
|
|
7d89f09f
|
2020-12-18T14:28:09
|
|
ISO C90 fixes
|
|
0da35d3d
|
2020-12-12T23:47:15
|
|
IME support with gxm backend
|
|
47c6270e
|
2020-12-09T15:28:57
|
|
Fix a bug in vitagles2 renderer
|
|
639323ea
|
2020-12-09T14:38:43
|
|
Fixed gxm render flags
|
|
05e5a7cb
|
2020-11-29T22:07:53
|
|
Oops
|
|
a86ba391
|
2020-11-28T00:32:32
|
|
Add SDL_RenderReadPixels
|
|
f623211e
|
2020-11-25T00:29:04
|
|
remove sceGxmFinish on render swap
|
|
0b45529e
|
2020-11-25T00:19:18
|
|
Add viewport support
|
|
2209b717
|
2020-11-24T18:12:38
|
|
Refactor render state
|
|
333d5e11
|
2020-11-23T20:15:39
|
|
Add drawstate cache
|
|
56bde0f6
|
2020-11-23T18:31:23
|
|
Rename memory functions to avoid clash with vita2d
|
|
94d7737b
|
2020-11-23T12:45:51
|
|
Texture render target
|
|
63e223fa
|
2020-11-23T12:45:09
|
|
Set initial blend mode
|
|
6c3bf565
|
2020-11-23T12:44:54
|
|
Unified build with both renderers
|
|
01311054
|
2020-11-21T23:04:43
|
|
Fix render name
|
|
6ba84975
|
2020-11-21T23:04:27
|
|
Remove vita2d render, add raw gxm render
|
|
ef0bbfd6
|
2020-11-16T20:40:22
|
|
Include anf fix vita2d renderer
|
|
dbb730d3
|
2020-11-14T23:37:26
|
|
Separate vita piglet renderer. Add proper render initialization and window re-creation.
|
|
d75ea51a
|
2020-11-02T20:05:55
|
|
Fix texture shaders
|
|
2e3dd0a6
|
2020-11-02T18:14:57
|
|
Remove debug log
|
|
80036230
|
2020-11-02T18:10:09
|
|
Cg shaders for vita gles2
|
|
0ed17131
|
2021-03-04T18: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-15T22:56:20
|
|
SDL_render_d3d.c: fix build with SDL_LEAN_AND_MEAN
|
|
9b9d0d48
|
2021-02-15T11: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-01T22: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-29T13:38:39
|
|
Remove old YUV fixme
|
|
1e5f0073
|
2021-01-27T10:58:36
|
|
Fixed building with mingw64
|
|
70b353d1
|
2021-01-27T10:54:49
|
|
SDL_Update{YUV,NV}Texture: also intersect rect with texture dimension
|
|
13626c36
|
2021-01-27T10: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-25T20: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-25T22:17:11
|
|
GLES2 SDL_Renderer: remove old ZUNE_HD defines and simplify shader cache
|
|
b99543b6
|
2021-01-11T20:40:11
|
|
opengl: More work on making line drawing match software renderer.
|
|
958e5d5b
|
2021-01-11T10:01:24
|
|
SDL_UpdateNVTexture: fixed pitch/bpp for GLES2 (bug #5430)
|
|
b94718e0
|
2021-01-09T21:22:21
|
|
SDL_UpdateNVTexture: for D3D11, same notation as SDL_UpdateTexture (bug #5430)
|
|
57a5c453
|
2021-01-05T22:06:51
|
|
Fix D3D11 UpdateTextureNV in non fullscreen (bug #5430)
|
|
fc61ecb2
|
2021-01-05T21:54:03
|
|
Fix software UpdateNVTexture non fullscreen (bug #5430)
|
|
204ef3b5
|
2021-01-05T20:38:31
|
|
Fix D3D11 UpdateNVTexture (bug #5430)
|
|
c0df40e0
|
2021-01-05T17:39:48
|
|
Add more SDL_HAVE_YUV defines
|
|
b0325041
|
2021-01-05T12:36:34
|
|
Fix unused variable warning on METAL (see bug #5430)
|
|
c1eb9ecf
|
2021-01-05T12:29:43
|
|
Add SDL_UpdateNVTexture for META (bug #5430)
(not tested)
|
|
73d93dbc
|
2021-01-05T12:20:02
|
|
Fix compilation on Window10 (see bug #5430)
|
|
df6b8131
|
2021-01-05T12:16:32
|
|
Fix compilation (implicit declaration of function) (see bug #5430)
|
|
d1f031c8
|
2021-01-05T12:08:16
|
|
Add SDL_UpdateNVTexture for d3d11 (bug #5430)
(not tested)
|
|
f5eba2cc
|
2021-01-05T12:00:54
|
|
Fixed invalid read in yuv_rgb_sse() (see bug #5430)
|
|
be4cfd51
|
2021-01-05T11:56:22
|
|
Add SDL_UpdateNVTexture() to update NV12/21 Texture (bug #5430)
for renderer software, opengl, and opengles2
|
|
393c8c1f
|
2021-01-03T10: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-02T10:25:38
|
|
Updated copyright for 2021
|
|
3edf337d
|
2021-01-02T17:29:34
|
|
Simplify RenderGetViewportSize
|
|
2af765da
|
2021-01-02T17:18:13
|
|
SDL_RenderGetViewportF: only need the size of viewport (see bug #5424)
|
|
41597249
|
2021-01-02T16:15:22
|
|
SDL_RenderGetViewportF: remove debug messages
|
|
8c48c423
|
2021-01-02T16:12:30
|
|
Add SDL_RenderGetViewportF: fix lost of precision while scaling (see bug #5424)
|
|
223af86c
|
2021-01-01T11:12:30
|
|
Added SDL_RenderGetD3D11Device() to get access to the device associated with the D3D11 renderer
|
|
5f0b2a7f
|
2021-01-01T11:12:22
|
|
Fixed resource leak with D3D11 NV12 textures
|
|
590a5469
|
2020-12-30T16: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-28T18:17:25
|
|
Revert changeset 14590 544ac819e8b3 , does not fully fix
|
|
9efdafd4
|
2020-12-28T18:07:03
|
|
SDL_RenderCopy: scale before doing intersection
this prevents drawing 1 pixel outside the screen, in letterbox mode
|
|
f9b5f6cc
|
2020-12-27T20:28:24
|
|
Forward scale mode to SW renderer (Bug 5313)
|
|
7fa5e95b
|
2020-12-09T07: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-09T07: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-09T06: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-02T13:45:24
|
|
SDL Renderer: specify the correct flag when recreating the window
|
|
0e4ce848
|
2020-11-08T20: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-08T19:56:12
|
|
opengles: use glDrawArrays() correctly with GL_LINE_STRIP.
|
|
93a2c58c
|
2020-11-08T12: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-08T03:18:05
|
|
metal: Fix line drawing, again.
|
|
ba36eb04
|
2020-10-21T00:03:33
|
|
metal: Make line drawing match software renderer.
Partially fixes Bugzilla #2711.
|
|
c33f8083
|
2020-10-20T11:12:49
|
|
render: Restoring line rendering fixes that were previously put on hold.
(Backed out hg changeset 7a4240daba46)
|
|
061256a3
|
2020-10-07T14:45:24
|
|
metal: Clear the framebuffer if presenting without any other operations.
|
|
a720d1a2
|
2020-08-09T00: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-17T11: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-26T13:54:47
|
|
Fixed iOS build
|
|
f16e6bfa
|
2020-05-25T14:10:51
|
|
Fixed creating a metal renderer without specifying a metal window
|
|
39690a04
|
2020-05-15T21:33:47
|
|
Fix static analysis warning in SDL_render.c
|
|
a96d8a43
|
2020-04-13T22:05:36
|
|
render: Fixed compiler warning about implicit cast.
|
|
aa188048
|
2020-04-10T12: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.
|