Sam Lantinga
b5849daf3e
Fixed build warnings on Android
2020-02-01 09:23:04 -08:00
Sam Lantinga
b5e3d264f2
Added a single SDL_LEAN_AND_MEAN define to turn on minimal SDL builds
...
Protected more code with #ifdefs to reduce the size of minimal shared library builds
2020-01-23 01:00:52 -08:00
Sylvain Becker
7df22cf2c2
A few #defines to reduce SDL2 footprint.
...
Only applied when library is statically linked
2020-01-21 21:33:40 +01:00
Sam Lantinga
a8780c6a28
Updated copyright date for 2020
2020-01-16 20:49:25 -08:00
Sam Lantinga
981e0d367c
Fixed bug 4903 - Lack of color multiply with alpha (SDL_BLENDMODE_MOD + SDL_BLENDMODE_BLEND) blending mode for all renderers
...
Konrad
This kind of blending is rather quite useful and in my opinion should be available for all renderers. I do need it myself, but since I didn't want to use a custom blending mode which is supported only by certain renderers (e.g. not in software which is quite important for me) I did write implementation of SDL_BLENDMODE_MUL for all renderers altogether.
SDL_BLENDMODE_MUL implements following equation:
dstRGB = (srcRGB * dstRGB) + (dstRGB * (1-srcA))
dstA = (srcA * dstA) + (dstA * (1-srcA))
Background:
https://i.imgur.com/UsYhydP.png
Blended texture:
https://i.imgur.com/0juXQcV.png
Result for SDL_BLENDMODE_MOD:
https://i.imgur.com/wgNSgUl.png
Result for SDL_BLENDMODE_MUL:
https://i.imgur.com/Veokzim.png
I think I did cover all possibilities within included patch, but I didn't write any tests for SDL_BLENDMODE_MUL, so it would be lovely if someone could do it.
2020-01-16 08:52:59 -08:00
Ozkan Sezer
ef3ca2cc46
Fix build error in SDL_render_metal.m (bug #4916.)
...
Patch provided by Konrad. Error was introduced by commit 522164980828 for bug #4914 .
2019-12-23 19:55:10 +03:00
Sylvain Becker
6d639fce2d
SDL_ScaleMode: fix compilation GLES renderer
2019-12-23 16:47:00 +01:00
Ryan C. Gordon
131e13a773
direct3d11: Always set vertex buffers when updating them (thanks, Konrad!).
...
Fixes Bugzilla #4913 .
2019-12-22 20:48:43 -05:00
Sam Lantinga
5e19e66c73
Fixed bug 4914 - Expose SDL_ScaleMode and add SDL_SetTextureScaleMode/SDL_GetTextureScaleMode
...
Konrad
This was something rather trivial to add, but asked at least several times before (I did google about it as well).
It should be possible to dynamically change scaling mode of the texture. It is actually trivial task, but until now it was only possible with a hint before creating a texture.
I needed it for my game as well, so I took the liberty of writing it myself.
This patch adds following functions:
SDL_SetTextureScaleMode(SDL_Texture * texture, SDL_ScaleMode scaleMode);
SDL_GetTextureScaleMode(SDL_Texture * texture, SDL_ScaleMode *scaleMode);
That way you can change texture scaling on the fly.
2019-12-22 13:39:44 -08:00
Ryan C. Gordon
7b08eb481d
direct3d11: Fixed incorrect texture coordinates (thanks, Martin!).
...
Fixes Bugzilla #4860 .
2019-12-03 03:07:34 -05:00
Sylvain Becker
9e509e4a4f
SDL_render_gles2: remove ineffective widening cast
...
warning: either cast from 'int' to 'size_t' (aka 'unsigned long') is ineffective, or there is loss of precision before the conversion [bugprone-misplaced-widening-cast]
2019-10-30 16:45:53 +01:00
Sylvain Becker
60d3965ece
Readability: remove redundant return, continue, enum declaration
2019-10-30 15:36:17 +01:00
Alex Szpakowski
a9b867ab07
macOS Fix potential memory leaks in the Metal renderer caught by clang's static analyzer.
2019-10-26 14:39:50 -03:00
Ryan C. Gordon
1ce1364b29
d3d11: Don't fail if there's no vertex data to upload (thanks, Martin!).
...
Fixes Bugzilla #4832 .
2019-10-26 12:56:18 -04:00
Alex Szpakowski
216f5b98ac
metal: Fix compilation when using older Apple SDKs (bug #4828 ).
2019-10-17 18:48:58 -03:00
Sylvain Becker
fe20c35be8
Fixed race condition when scaling Touch events, and changing the renderer
...
target.
Always read the output size of the main renderer.
(similar to bug 2107)
2019-10-14 16:40:46 +02:00
Sylvain Becker
72660a51dd
Fixed bug 4825 - SDL Renderer OpenGL: Buffer overflow (SDL_RENDERCMD_DRAW_LINES)
2019-10-13 20:52:52 +02:00
Sylvain Becker
7d47f526a7
SDL_LockTextureToSurface: robustness of locked region compared to texture size
2019-10-01 09:26:30 +02:00
Sylvain Becker
1ae61f1009
Added a helper function SDL_LockTextureToSurface()
...
Similar to SDL_LockTexture(), except the locked area is exposed as a SDL surface.
2019-09-30 20:58:44 +02:00
Ryan C. Gordon
847bd8d983
direct3d: Be more aggressive about resetting state when textures go away.
...
Fixes Bugzilla #4768 .
2019-09-02 00:11:58 -04:00
Ryan C. Gordon
a3804ba1da
d3d11: Fixed VB state, avoiding unnecessary recreation (Thanks, Alex!).
...
Fixes Bugzilla #4779 .
2019-09-01 22:41:44 -04:00
Alex Szpakowski
0c26373842
gl/gles/gles2 render: fix SDL_RenderClear being affected by the clip rect in some situations.
2019-08-26 18:49:04 -03:00
Alex Szpakowski
bfdb0e9743
metal renderer: optimize SDL_RenderFillRect slightly.
2019-08-18 10:38:32 -03:00
Alex Szpakowski
ff7888e698
render: fix colors not being set properly after the previous change
2019-08-18 09:35:11 -03:00
Alex Szpakowski
1be03b4089
render: avoid a couple redundant memcmp calls in all drawing functions. Improves performance slightly.
2019-08-17 22:26:33 -03:00
Alex Szpakowski
e8278d0d5b
metal renderer: use vertex attributes instead of indexing into a buffer with the vertex id in the shader. Allows for more flexibility with vertex setup in the future.
...
Also optimize vertex buffer binding slightly.
2019-08-17 16:53:08 -03:00
Alex Szpakowski
55a46abf0a
metal renderer: more closely match buffer data alignment requirements from the metal specification.
2019-08-17 01:09:30 -03:00
Alex Szpakowski
69c6924ccc
render: simplify vertex and uniform data allocation. Improves performance of various SDL_Render functions (bug #4764 ).
2019-08-17 00:43:44 -03:00
Alex Szpakowski
e5acccc7c3
metal renderer: use the device address space instead of the constant address space for colors.
...
It doesn't negatively impact GPU performance in my tests, and it removes the need for 256 byte memory alignment of color data on macOS.
2019-08-17 00:37:22 -03:00
Alex Szpakowski
3fb5cabe5e
metal: Update compiled shaders based on compilation script changes
2019-08-16 22:13:30 -03:00
Alex Szpakowski
9e57e3e595
metal: Update shader compilation script with fixes for newer xcode versions and for running on older platforms
2019-08-16 22:11:50 -03:00
Alex Szpakowski
aebaa316c7
Add public APIs for creating a Metal view attached to an SDL window. Add SDL_metal.h.
2019-08-05 12:35:32 -03:00
Sylvain Becker
22a2decf64
Android: concurrency issues, make sure Activity is in running State when calling
...
functions like SDL_CreateWindow, SDL_CreateRenderer, Android_GLES_CreateContext
Bugs 4694, 4681, 4142
2019-06-28 16:38:42 +02:00
Sylvain Becker
cfed0b7738
Add an "error" label in SDL_CreateRenderer (no op)
2019-06-28 16:14:50 +02:00
Ryan C. Gordon
31bb95f11f
direct3d: Use D3DPOOL_DEFAULT for vertex buffers after all, release correctly.
...
Fixes Bugzilla #4679 .
Fixes Bugzilla #4537 .
2019-06-21 15:07:39 -04:00
Cameron Gutman
e681623cb2
direct3d: Fix dirty textures failing to update
...
Even if the texture itself has not changed since last time, the data may have
so we must call UpdateDirtyTexture() to handle that possibility.
2019-06-20 19:51:00 -07:00
Ryan C. Gordon
7162649f78
opengl: Be more robust in failing cases.
...
Load all possible symbols, not just until one fails, in case they get used
during shutdown, etc.
Fixes Bugzilla #4093 .
2019-06-18 18:58:39 -04:00
Sam Lantinga
5dcac4ccdf
Fixed 4669 - Using the software SDL_Renderer on Android leads to GL errors & black screen when window resizes
...
Sylvain
I think what happening with the software renderer is:
* you're somehow in background (so texture creation is not possible)
* it resizes and wants to push a SDL_WINDOWEVENT_SIZE_CHANGED
It call:
https://hg.libsdl.org/SDL/file/a010811d40dd/src/render/SDL_render.c#l683
* GetOutputSize
* SW_GetOutputSize
* SW_ActivateRenderer
* SDL_GetWindowSurface
* SDL_CreateWindowFramebuffer which is mapped to SDL_CreateWindowTexture
and it ends up re-creating the surface/a texture, while being in background
2019-06-18 10:08:19 -07:00
Sylvain Becker
e96d4760ac
Android: resize with software rendering, reverted again (Bug 4669)
2019-06-18 18:53:58 +02:00
Sylvain Becker
12b92260cc
Android: try to fix resize with software rendering (bug 4669)
2019-06-18 18:40:40 +02:00
Sylvain Becker
8a20d40d90
Android: revert commit SW_GetOutputSize, again (Bug 4669)
2019-06-18 18:22:18 +02:00
Sylvain Becker
98cc7589b1
Android: prevent using SW_GetOutputSize with software renderer (Bug 4669)
2019-06-18 10:41:11 +02:00
Sam Lantinga
1213fe79d8
Worked around "Undefined symbol: ___isPlatformVersionAtLeast()" link error on Xcode 11 beta
2019-06-14 13:56:42 -07:00
Ryan C. Gordon
3e9bf28413
software: Fixed compiler warning and dos2unix'd the endlines.
2019-06-11 15:06:35 -04:00
Ryan C. Gordon
04fedce0e8
software: Correctly track viewport and cliprect.
...
Fixes Bugzilla #4457 .
2019-06-11 14:09:53 -04:00
Ryan C. Gordon
a2f2b73554
direct3d: Use D3DPOOL_MANAGED for vertex buffers.
...
Fixes Bugzilla #4537 .
2019-06-11 13:02:56 -04:00
Ryan C. Gordon
f7b7a9727b
direct3d: Fixed SDL_RenderSetClipRect usage.
...
Fixes Bugzilla #4459 .
2019-06-11 10:12:47 -04:00
Ryan C. Gordon
4f59d372f8
direct3d: don't dereference bogus pointer if current texture was destroyed.
...
Fixes Bugzilla #4460 .
2019-06-11 09:29:48 -04:00
Ryan C. Gordon
a6af0b8291
direct3d: Fixed more compiler warnings on Visual Studio 64-bit builds.
2019-06-11 02:31:57 -04:00
Sam Lantinga
b5e9ebbafa
Fixed compiler warning
...
warning C4018: '<' : signed/unsigned mismatch
2019-06-08 19:12:05 -07:00