src/render


Log

Author Commit Date CI Message
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 09f4711f 2021-01-09T12:52:55 Fix LRU when destroying texture.
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
stdgregwar c3ec62d6 2021-01-09T11:25:39 PSP lazier blend states, display mode report with 16bit option
stdgregwar 520c89a0 2021-01-19T20:11:36 cleaning
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
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 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 aef71054 2021-11-22T16:58:04 Use SDL_free
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
Sylvain 70b10c75 2021-09-24T22:39:49 Use correct indices when using RenderGeometry / FillRects
Sylvain 16beed9a 2021-09-24T17:09:04 Less code since color is constant when done with triangles
Sylvain 99a34643 2021-09-24T09:42:04 OpenGLES2: LINES and POINTS successive commands are combined into a single draw call (using the same case for DRAW_GEOMETRY)
Sylvain f0cdc1d0 2021-09-24T09:38:25 OpenGLES2: remove FillRects, since it's can be done with RenderGeometry
Sylvain 37c39d5c 2021-09-23T22:45:45 Use geometry to implement FillRects
Sylvain b0eef52f 2021-09-23T22:32:29 GLES2 batching: probably need to check for blendMode changes
Sylvain c27e1249 2021-09-20T17:17:34 Remove SDL_HAVE_RENDER_GEOMETRY define
Sylvain 77026f67 2021-09-20T17:09:44 Metal: remove RenderCopy and RenderCopyEx from back-end
Sylvain 0e5160a0 2021-09-20T17:01:33 VITA: remove RenderCopy and RenderCopyEx from back-end
Sylvain 73f4ab4c 2021-09-20T16:57:21 Direct3D11: remove RenderCopy and RenderCopyEx from back-end
Sylvain ab758398 2021-09-20T16:53:03 Direct3D: remove RenderCopy and RenderCopyEx from back-end
Sylvain 1fe7e361 2021-09-20T16:46:16 OpenGL: a few opengl functions become unused
Sylvain 88548070 2021-09-20T16:40:47 OpenGLES: remove RenderCopy and RenderCopyEx from back-end
Sylvain d1925154 2021-09-20T16:33:49 OpenGL: remove RenderCopy and RenderCopyEx from back-end
Sylvain b92056bb 2021-09-20T16:33:03 OpenGLES2: remove RenderCopy and RenderCopyEx from back-end
Sylvain 76f9fb96 2021-09-20T16:32:08 Use RenderGeometry to implement RenderCopy and RenderCopyEx at higher level
Ryan C. Gordon 08797ada 2021-09-19T00:39:28 opengles2: Attempt to batch RenderCopy calls into a single glDrawArrays call.
Sam Lantinga b360965d 2021-10-21T20:48:05 Added a hint for alternate OpenGL NV12 data format
Sam Lantinga a34fe816 2021-10-21T12:28:35 Added the ability to bind NV12 textures in the OpenGL renderer
Sylvain f080273a 2021-10-04T22:00:16 PSP: add implementation for RenderGeometry
Sylvain dd9b2daf 2021-10-04T21:56:42 PSP: fixed build
Sylvain 77acd44f 2021-10-01T22:30:51 DirectFB: fixed creation of palette textures
Ryan C. Gordon 114d1d46 2021-09-27T23:18:25 direct3d: Remove unnecessary render target support check. Direct3D 9 dictates that caps.NumSimultaneousRTs must always be at least 1, which is to say that Direct3D 9 level hardware must always support render targets. (caps.NumSimultaneousRTs is meant to show if you can draw to multiple render targets in a single draw call.) We had already hardcoded SDL_RENDERER_TARGETTEXTURE as available earlier in the function anyhow. Fixes #4781.
Northfear 14f22519 2021-09-26T18:11:22 Use SDL_calloc for allocation of gxm_texture
Northfear 52921563 2021-09-22T21:23:42 End Scene on RunCommandQueue on Vita
Sam Lantinga eb3bf80f 2021-09-21T18:15:09 Fixed compiler warnings using Visual Studio 2019
Northfear 3b2fbb1c 2021-09-20T23:44:22 End current scene before destroying the texture on Vita