src/render


Log

Author Commit Date CI Message
Sam Lantinga 1f32dd8e 2022-01-09T06:36:18 Fixed overdraw with duplicate points, fixed not drawing single point lines
Ryan C. Gordon c275436f 2022-01-09T00:39:02 opengles2: Batching lines/points used wrong var for summing vertex counts. Fixed this in the vitagxm backend too, but I don't know what the state of that code is otherwise. Reference Issue #5061.
Sam Lantinga 3b083b99 2022-01-08T14:07:42 Fixed compile warning
Sam Lantinga b82af9df 2022-01-08T14:05:50 Improved OpenGL point drawing performance (thanks @slime73!) We'll do proper call batching for the SDL 2.0.22 release
Sam Lantinga 1a73c45a 2022-01-08T13:34:49 Fixed incorrect color in the OpenGL driver
Sylvain 3cdda8f8 2022-01-08T21:58:26 PSP: use 'data' variable which is alread the driver data
Sam Lantinga 4ef2529b 2022-01-08T12:37:57 More efficient calculation of render_count
Sam Lantinga 5346c93b 2022-01-08T12:28:43 Fixed assertion on number of points rendered
Sam Lantinga 4b719620 2022-01-08T12:02:08 Prevent overdraw with connected line segments
Sam Lantinga 09ece861 2022-01-08T11:36:29 Added the hint SDL_HINT_RENDER_LINE_METHOD to select the line rendering method
Sam Lantinga c1e60798 2022-01-08T11:09:11 As an optimization, draw horizontal and vertical lines using rectangles
Sam Lantinga 3da7c630 2022-01-08T11:07:03 Assert that we have drawn the expected number of points
Sam Lantinga 9f56faee 2022-01-08T10:59:31 Added line drawing using Bresenham's line algorithm (thanks @rtrussell!)
Sam Lantinga fe3a33a0 2022-01-08T10:10:18 Use RenderGeometry for drawing lines at all scales
Sam Lantinga 1694782b 2022-01-08T09:32:23 Remove redundant work when render scale is 1.0
Sam Lantinga 2026a78d 2022-01-08T09:23:58 Don't flush in RenderDraw*WithRects() This allows these functions to be reused in the future for other primitives
Sam Lantinga 18e4d9fe 2022-01-08T09:02:25 Re-enable line drawing path in render drivers This is still used for scaled line drawing in RenderDrawLinesWithRects()
Ozkan Sezer 4472b831 2022-01-08T11:56:56 PSP_RunCommandQueue: fix argument to PSP_SetBlendState() src/render/psp/SDL_render_psp.c: In function 'PSP_RunCommandQueue': src/render/psp/SDL_render_psp.c:1200: warning: passing argument 1 of 'PSP_SetBlendState' from incompatible pointer type
Ryan C. Gordon cc201337 2022-01-07T20:20:57 render: Fixed some compiler warnings. Fixes #5197.
Ryan C. Gordon 6d3b5d66 2022-01-07T18:18:53 psp: draw lines with RenderGeometry, same as with the other renderers.
Sylvain 9cb2c549 2022-01-07T22:43:30 Remove QueueDrawLines from D3D, D3D11
Sylvain b88b6b3c 2022-01-07T22:43:12 Remove QueueDrawLines from METAL
Sylvain 9aac5531 2022-01-07T22:42:52 Remove QueueDrawLines from GL, GLES, GLES2
Sylvain 8ea8b2e6 2022-01-07T22:42:13 Use QueueDrawLine if provided, otherwise use RenderGeometry
Sylvain Becker c4987274 2022-01-07T22:14:28 render: Use RenderGeometry to draw lines This patch is from @1bsyl Fixes #5061.
Sam Lantinga 4b38d4c9 2022-01-07T12:37:28 Leave the Metal view active on the window when recreating the Metal renderer Fixes https://github.com/libsdl-org/SDL/issues/5140 Also move the metal tag definition to SDL_syswm.h so it can be used by applications
Ryan C. Gordon 88ac517d 2022-01-07T15:03:47 opengles2: Fix point drawing.
Wouter Wijsman 515b5f2a 2021-12-22T12:04:10 Fix build errors in PSP port
Wouter Wijsman 34e34ad5 2021-12-22T11:43:07 Remove debug code from PSP renderer
stdgregwar 520c89a0 2021-01-19T20:11:36 cleaning
stdgregwar 09f4711f 2021-01-09T12:52:55 Fix LRU when destroying texture.
stdgregwar c3ec62d6 2021-01-09T11:25:39 PSP lazier blend states, display mode report with 16bit option
stdgregwar 0f5368fe 2021-01-09T10:33:38 PSP cached blending and texturing state, ABGR1555 stencil hack
stdgregwar fe405eb2 2020-12-28T14:00:53 fixed LRU cache code
stdgregwar c1f15229 2020-12-27T11:43:22 Spill render targets to ram on PSP
stdgregwar 77d874e3 2020-12-26T19:20:17 Attempt to make render to texture work on PSP
Sam Lantinga 120c76c8 2022-01-03T09:40:00 Updated copyright for 2022
Sylvain 8622eda9 2022-01-02T22:34:56 SDL_RenderGeometry / software: TRIANGLE_GET_TEXTCOORD interpolates up to the max values included, so reduce by 1
Alex Szpakowski 724468ae 2021-12-13T15:48:55 GL renderer uses glDrawArrays instead of glBegin/glEnd. Also change internal colors sent to GL to use unorm8 components instead of float, for improved performance.
Sylvain 44c84c0d 2021-12-17T17:44:34 GLES2/Big-endian: don´t swap datas for yuv textures (Thanks 0x1F9F1 !)
Sylvain 3a69828e 2021-12-17T13:15:39 Fixed GLES2 back-end on Big Endian Platform (see #5093)
Sylvain 3d5fcb5d 2021-12-16T11:10:07 Fix warning
Sylvain 4342e6bd 2021-12-16T10:53:27 SDL_render.c: lighten the cast syntax
Sylvain 50d49c63 2021-12-16T10:52:36 GLES2 backend: cast with SDL_Vertex and SDL_VertexSolid
stdgregwar 0b7b0977 2020-12-27T17:51:39 fix PSP texure artifacts
Francisco Javier Trujillo Mata 0341ec93 2021-11-26T11:34:40 Improve performance when vsync is enabled and the game is not reaching the 60 FPS
Alex Szpakowski 3a5e148b 2021-12-14T11:02:07 Renderer backends use SDL_Color instead of int for geometry colors.
Sam Lantinga b08e57e9 2021-12-14T09:32:05 Don't try to create a vbo if we aren't using any vertices
Sylvain b7885abc 2021-12-14T10:31:55 Fixed bug #5087: SDL_RenderGeometryRaw() passes colors as int* instead of SDL_Color*
Alex Szpakowski 323ba6c0 2021-12-13T18:27:49 d3d11 renderer: reduce vertex bandwidth and calculations.
Sylvain 8927d73b 2021-12-12T09:55:23 RenderGeometry: simplify casting (Thanks Daniel Gibson)
Sylvain d7f66ba1 2021-12-11T20:04:53 Remove strict aliasing warning in opengles2 backend
Sylvain 3e43d6e3 2021-12-11T17:19:00 SDL_RenderGeometry: remove some warning "dereferencing type-punned pointer might break strict-aliasing"
Sylvain 1940d289 2021-12-08T09:41:33 SW Renderer: fix invalid read if VSYNC hint is initially set with an empty value (eg "") because: - GeHint return a value pointer. - SetHint free internally the pointer - The -now invalid- pointer is re-read ==9363== Invalid read of size 1 ==9363== at 0x4946860: SW_CreateRenderer (SDL_render_sw.c:1044) ==9363== by 0x48F0EC3: SDL_CreateRenderer_REAL (SDL_render.c:938) ==9363== by 0x48C5921: SDL_CreateRenderer (SDL_dynapi_procs.h:332) ==9363== by 0x401584: main (main.c:421) ==9363== Address 0x9c24040 is 0 bytes inside a block of size 1 free'd ==9363== at 0x484621F: free (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==9363== by 0x494E403: SDL_free_REAL (SDL_malloc.c:5432) ==9363== by 0x48A6153: SDL_SetHintWithPriority_REAL (SDL_hints.c:76) ==9363== by 0x48A6254: SDL_SetHint_REAL (SDL_hints.c:101)
stdgregwar 21d46b7e 2020-12-26T12:46:07 PSP renderer fixed
Ozkan Sezer 801dcbc5 2021-12-07T14:04:10 SDL_render_sw.c: fix -Wshadow warnings.
Wouter Wijsman e17a3154 2021-12-07T10:56:48 Fix build issue
Wouter Wijsman 7266cf66 2021-12-07T10:54:30 Clean up PSP render code to fit C standard used better
Wouter Wijsman 07608bf4 2021-12-07T10:36:19 Fix ISO C90 violations in psp render code
Sylvain d09f80ef 2021-12-07T11:31:57 SDL_DrawPointsF: fix error message typo
Sylvain 6dafc850 2021-12-07T10:44:12 SDL_DrawLines: minor simpification: - scale is 1.0f, don't need to multiply - typo in error message - remap SDL_DrawLines to SDL_DrawLinesF
Sylvain a0818a63 2021-12-07T10:07:15 Fixed bug #5071 - Float conversion warnings in SDL_render.c (see also #5003)
Sylvain e14d1026 2021-11-26T13:12:22 Change viewport and cliprect to float version: from SDL_Rect to SDL_FRect
Sylvain 7828362d 2021-11-24T16:45:06 SDL_Renderer software, D3D11: don't use "renderer->viewport" in back-ends, but use the one from SETVIEWPORT cmd
Eric Wasylishen b786c100 2021-11-26T19:45:16 SDL_render_gl.c: GL_RunCommandQueue: always set viewport_dirty on macOS Without this, moving the window changes the viewport and causes contents to render stretched. Fixes #1504
Ryan C. Gordon 86c0cf2b 2021-11-26T14:31:20 software: Draw a single pixel for a line with the same start/end point. Otherwise it would drop it, which seems like a bug to me, as it normally fills the endpoint on lines. Reference #2006.
DarkContact e77cfb9a 2021-11-24T00:29:45 Fixed d3d11 renderer creation
Sylvain 2a24418b 2021-11-23T09:44:37 More "Integer overflow generates Illegal instruction under sanitizers" (see bug #4995)
Sylvain 8dd6edec 2021-11-23T09:30:42 Fixed bug #3232 - Integer overflow generates Illegal instruction under sanitizers + see bug #4995
Ozkan Sezer e18be04b 2021-11-23T08:01:02 Fixed undefined behavior in QueueCmdSetDrawColor() Fixes https://github.com/libsdl-org/SDL/issues/4995 Patch from Andrew Kelley
Sylvain aef71054 2021-11-22T16:58:04 Use SDL_free
Sylvain fb218e58 2021-11-22T16:16:04 PSP: use SDL_malloc/SDL_free
Sylvain 161dd83c 2021-11-22T11:15:23 Don´t use "trunc" as var name, since it's also a function
Sylvain d31251b0 2021-11-21T22:30:48 use SDL's functions version inplace of libc version
Sylvain 49369142 2021-11-21T17:40:48 Fixed bug #4625: with integer scale, viewport (as reported by SDL_RenderGetViewport) becomes -2147483648x-2147483648 0 isn't valid scale. Min integer scale is 1.0f
Sam Lantinga 9ec2b351 2021-11-15T13:45:53 Fixed the GLES2 shader count to be in sync with the enum
Sylvain d4df5d33 2021-11-15T09:43:44 GLES2: prevent batching if blend mode changes (see bug #4964)
Sylvain 92f2fdfc 2021-11-15T09:36:18 GLES2: batch non joined lines (see #4964)
Sylvain 17f156fa 2021-11-15T09:08:09 Fixed bug #4964 - opengles2 & batching = conjoined lines put back the initial switch case because groups of joined lines cannot be batched.
Sylvain d8888e46 2021-11-15T08:37:49 Fixed bug #4964 - opengles2 & batching = conjoined lines
Sam Lantinga c55ab963 2021-11-13T22:21:57 Added a hint for alternate OpenGL NV12 data format
Sylvain 70c8d20a 2021-11-13T15:04:19 Revert previous commit a50ca98e2b9ca10368b62e93b6a0977dc68fd584 (see bug #4625)
Sylvain a50ca98e 2021-11-13T14:48:36 Fixed bug #4625 - SDL_RenderSetLogicalSize issues viewport becomes -2147483648x-2147483648 when logical_w/h is greater than window size. division should be done with floats
Misa 3bf7994f 2021-09-27T14:38:12 Add and use `SDL_FALLTHROUGH` for fallthroughs Case fallthrough warnings can be suppressed using the __fallthrough__ compiler attribute. Unfortunately, not all compilers have this attribute, or even have __has_attribute to check if they have the __fallthrough__ attribute. [[fallthrough]] is also available in C++17 and the next C2x, but not everyone uses C++17 or C2x. So define the SDL_FALLTHROUGH macro to deal with those problems - if we are using C++17 or C2x, it expands to [[fallthrough]]; else if the compiler has __has_attribute and has the __fallthrough__ attribute, then it expands to __attribute__((__fallthrough__)); else it expands to an empty statement, with a /* fallthrough */ comment (it's a do {} while (0) statement, because users of this macro need to use a semicolon, because [[fallthrough]] and __attribute__((__fallthrough__)) require a semicolon). Clang before Clang 10 and GCC before GCC 7 have problems with using __attribute__ as a sole statement and warn about a "declaration not declaring anything", so fall back to using the /* fallthrough */ comment if we are using those older compiler versions. Applications using SDL are also free to use this macro (because it is defined in begin_code.h). All existing /* fallthrough */ comments have been replaced with this macro. Some of them were unnecessary because they were the last case in a switch; using SDL_FALLTHROUGH in those cases would result in a compile error on compilers that support __fallthrough__, for having a __attribute__((__fallthrough__)) statement that didn't immediately precede a case label.
Sam Lantinga abc12a83 2021-11-11T15:58:44 Revert "Add and use `SDL_FALLTHROUGH` for fallthroughs" This reverts commit 66a08aa3914a98667f212e79b4f0b9453203d656. This causes problems with older compilers: https://github.com/libsdl-org/SDL/pull/4791#issuecomment-966630997
Misa 66a08aa3 2021-09-27T14:38:12 Add and use `SDL_FALLTHROUGH` for fallthroughs Case fallthrough warnings can be suppressed using the __fallthrough__ compiler attribute. Unfortunately, not all compilers have this attribute, or even have __has_attribute to check if they have the __fallthrough__ attribute. [[fallthrough]] is also available in C++17 and the next C2x, but not everyone uses C++17 or C2x. So define the SDL_FALLTHROUGH macro to deal with those problems - if we are using C++17 or C2x, it expands to [[fallthrough]]; else if the compiler has __has_attribute and has the __fallthrough__ attribute, then it expands to __attribute__((__fallthrough__)); else it expands to an empty statement, with a /* fallthrough */ comment (it's a do {} while (0) statement, because users of this macro need to use a semicolon, because [[fallthrough]] and __attribute__((__fallthrough__)) require a semicolon). Applications using SDL are also free to use this macro (because it is defined in begin_code.h). All existing /* fallthrough */ comments have been replaced with this macro. Some of them were unnecessary because they were the last case in a switch; using SDL_FALLTHROUGH in those cases would result in a compile error on compilers that support __fallthrough__, for having a __attribute__((__fallthrough__)) statement that didn't immediately precede a case label.
Sam Lantinga 6c4b4ee7 2021-11-10T09:41:43 Don't assert on API parameters This causes lots of spam in test automation and it's not clear it's useful to developers. If we need this level of validation, we should add a log category for it.
Sam Lantinga 3a31a450 2021-11-10T05:24:31 End the scene before resetting the D3D device, since we'll start with BeginScene after that. If we don't do this, we'll end up with unbalanced Begin/End scene pairs which causes D3DERR_INVALIDCALL in the present. Fixes https://github.com/libsdl-org/SDL/issues/4933
Eric Wasylishen 0d987936 2021-11-09T22:03:42 testwm2: Fix video modes menu hit detection when highdpi or logical size used (#4936) * SDLTest_CommonDrawWindowInfo: log SDL_RenderGetScale, SDL_RenderGetLogicalSize * testwm2: fix video modes menu hit detection in High DPI cases - also when logical size is specified, e.g. `--logical 640x480 --resizable --allow-highdpi` * add function to determine logical coordinates of renderer point when given window point * change since to the targeted milestone * fix typo * rename for consistency * Change logical coordinate type to float, since we can render with floating point precision. * add function to convert logical to window coordinates * testwm2: use new SDL_RenderWindowToLogical * SDL_render.c: alternate SDL_RenderWindowToLogical/SDL_RenderLogicalToWindow Co-authored-by: John Blat <johnblat64@protonmail.com> Co-authored-by: John Blat <47202511+johnblat64@users.noreply.github.com>
Ryan C. Gordon 04f42e04 2021-11-09T11:50:49 metal: Deal better with -[CAMetalLayer nextDrawable] returning nil. Fixes #4863.
Sam Lantinga 637bcd0b 2021-11-07T11:19:07 Fixed build warnings
Ivan Epifanov 848d7b12 2021-11-02T16:12:55 Vita: Implement command batching
Ivan Epifanov 3f7a94fc 2021-11-02T15:16:48 Vita: Remove FillRects
Northfear fba82ad1 2021-10-31T12:38:08 Remove sceGxmFinish from RenderPresent on Vita. Make sure that rendering is finished on render texture during locking
Sylvain 4960cc3d 2021-10-25T16:18:40 Fixed a few warnings
Sylvain b7933945 2021-10-25T13:46:40 SDL_Renderer: make clear that we use render geometry for fillrect/copy/copyex when there is no specific back-end implementation (currently software, PSP, directfb)
Ozkan Sezer b3f9d8f3 2021-10-25T07:05:50 remove unused local vars after the latest commits.
Sylvain 502e9c3b 2021-10-24T17:16:49 SDL_Renderer simplifications: - Factorize PrepQueueCmdDraw{,DrawTexture,Solid) into one single function - Change SDL_Texture/Renderer r,g,b,a Uint8 into an SDL_Color, so that it can be passed directly to RenderGeometry - Don't automatically queue a SET_DRAW_COLOR cmd for RenderGeometry (and update GLES2 renderer)
Sylvain 79732c9d 2021-09-25T11:35:20 Remove FillRects from back-end, where RenderGeometry can be used
Sylvain f02ad282 2021-09-25T11:31:18 Remove FillRects from back-end, where RenderGeometry can be used