|
78c274cb
|
2020-09-26T19:18:09
|
|
kmsdrm: merge patches from Ozkan Sezer for removing c-99'isms and raising libgbm version reqeriments.
|
|
955f3184
|
2020-09-25T10:14:42
|
|
Fixed bug 5239 - Play audio on Android while backgrounded (Thanks Superfury)
Add hint SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO not to pause audio when
the app goes to background.
(It requires SDL_ANDROID_BLOCK_ON_PAUSE as "Non blocking")
|
|
9c342e76
|
2020-09-13T21:41:10
|
|
kmsdrm: merge heap buffer overflow and cursor creation patches from meyraud705.
|
|
0cb9bfa5
|
2020-09-12T15:58:47
|
|
kmsdrm: less excessive error checkhing
|
|
5bed30dd
|
2020-09-12T04:56:55
|
|
kmsdrm: also do pending modeseting in SwapWindowDoubleBuffered().
|
|
9e9227ad
|
2020-09-12T04:52:56
|
|
kmsdrm: reimplement modesetting for fullscreen window scaling and AR-correction.
|
|
4575c694
|
2020-09-12T02:36:02
|
|
kmsdrm: delete ununsed variable.
|
|
01b0cf1c
|
2020-09-12T00:47:00
|
|
Backed out changeset 4a45d1a30d25
kmsdrm: Fake KMSDRM_SetDisplayMode() is needed for some programs after all.
|
|
7b676548
|
2020-09-12T00:16:08
|
|
kmsdrm: don't fool SDL into thinking that changing the physical videomode is done.
|
|
a6d182d3
|
2020-09-11T23:47:26
|
|
kmsdrm: no need to reconnect/reactivate things in SwapWindowDoubleBuffered().
|
|
47e2d030
|
2020-09-10T23:26:02
|
|
kmsdrm: greatly improve comments in SwapBuffersFenced() for future reference.
|
|
3c6004fe
|
2020-09-10T15:07:23
|
|
kmsdrm: Choose how to swap buffers based on EGL extension availability.
|
|
c7e761f8
|
2020-09-10T15:05:55
|
|
kmsdrm: Patched to compile if EGL headers lack EGL_ANDROID_native_fence_sync.
|
|
224aa45b
|
2020-09-10T15:04:35
|
|
kmsdrm: Implement GL_DefaultProfileConfig for Raspberry Pi compatibility.
If we think this might be a Raspberry Pi device, default to ES2. Otherwise,
accept SDL's higher-level defaults.
|
|
092162ed
|
2020-09-10T15:02:51
|
|
video: Set up default before calling GL_DefaultProfileConfig().
This way, the implementation can opt to do nothing to accept SDL's defaults.
|
|
e758dd53
|
2020-09-10T15:02:00
|
|
egl: Make SDL_EGL_HasExtension() available outside of SDL_egl.c.
|
|
055cad49
|
2020-09-10T02:15:53
|
|
kmsdrm: no need to re-connect/reactivate things in SwapWindow() anymore because we use a dumb buffer on KMS buffers destruction now.
|
|
351219bf
|
2020-09-09T03:18:26
|
|
kmsdrm: On VideoQuit(), only destroy dumb buffer if it exists.
|
|
8709f67e
|
2020-09-08T08:42:30
|
|
Fixed bug 5215 - Fixing filenames passed to dlopen for OpenBSD
Brad Smith
Attached is a patch to use the proper filenames when trying to dlopen the respective shared libraries on OpenBSD.
|
|
244d0ad8
|
2020-09-08T15:30:45
|
|
kmsdrm: Tell SDL that mouse has entered the window via artificial event. Fixes sticky mouse in Scummvm.
|
|
9a769da0
|
2020-09-07T20:10:50
|
|
X11: Remove our X11 error callback in X11_DeleteDevice()
If we don't remove it, we will infinitely recurse if X11_CreateDevice() is
called again and orig_x11_errhandler becomes X11_SafetyNetErrHandler().
|
|
550e1533
|
2020-09-08T02:42:32
|
|
kmsdrm: No need to test for display driverdata when freeing a plane.
|
|
6e03fab9
|
2020-09-07T23:15:33
|
|
kmsdrm: add temporary RPI4_COMPAT define to try RPI4+current Rasbian compatibility.
|
|
0f807fd6
|
2020-09-07T22:54:15
|
|
kmsdrm: use a black dumb buffer for keeping the PRIMARY PLANE occupied when we destroy the KMS buffers, instead of using the TTY buffer, to avoid flickering.
|
|
ebc12a2f
|
2020-09-07T18:50:30
|
|
SDL_Surface refcount: destination surface keep track of surfaces
that are mapped to it and automatically invalidate them when it is freed
- refcount is kept so that an external application can still create a reference
to SDL_Surface.
- lock_data was un-used and is now renamed and used as a list keep track of the blitmap
|
|
cce6c605
|
2020-09-07T01:33:04
|
|
kmsdrm: fix errors when trying to free up videomode driverdata pointers on quit.
|
|
9501b1c6
|
2020-09-07T00:18:13
|
|
kmsdrm: fix scaling for SDL_WINDOW_FULLSCREEN windows.
|
|
daa752b1
|
2020-09-06T23:19:54
|
|
kmsdrm: fix first frame display: no need to wait for SwapWindow() for EGL surface creation.
|
|
68ac9349
|
2020-09-06T12:48:39
|
|
kmsdrm: more coherent returns for SwapWindow.
|
|
d3d9d432
|
2020-09-06T12:17:27
|
|
kmsdrm: Remove debug printfs in SwapWindow.
|
|
d7aebbd5
|
2020-09-06T12:08:22
|
|
kmsdrm: Don't create surfaces until EGL context is available.
|
|
1b6de9a9
|
2020-09-05T15:01:45
|
|
Fix SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH=1 on Metal windows
SDL_cocoametalview was consuming the first click rather than passing it
through to the SDLView underneath which overrides [NSView acceptsFirstMouse]
based on the user's SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH preference.
|
|
f4e02a5c
|
2020-08-31T19:17:17
|
|
kmsdrm: Do NOT modify window size manually from the backend: doing so caused renderer scaling params miscalculation.
|
|
c09d1cee
|
2020-08-28T23:04:00
|
|
kmsdrm: Apply window reconfiguration in SetWindowSize(), too.
|
|
31b17945
|
2020-08-28T22:38:26
|
|
kmsdrm: use PLANE and CRTC to do hardware-driven window scaling and AR-correction.
|
|
fe3f9796
|
2020-08-26T01:37:30
|
|
kmsdrm: unload EGL and GL lib only if using them.
|
|
9b43464d
|
2020-08-25T16:30:23
|
|
kmsdrm: Add programmer credits to the Atomic KMSDRM driver.
|
|
9316a8d9
|
2020-08-25T16:18:49
|
|
kmsdrm: move FENCE FD props setting to SwapWindow(), where it belongs.
|
|
3f38009b
|
2020-08-25T15:40:36
|
|
kmsdrm: comment out atomic commit fast-debugging printf.
|
|
0d16761c
|
2020-08-25T05:53:13
|
|
kmsdrm: fix segfault on quit beacuse of freed _this->egl_data.
|
|
d43e666e
|
2020-08-25T04:05:36
|
|
kmsdrm: Buffer management refactoring. Fixes for compatibility with more video drivers.
|
|
eade05ca
|
2020-08-24T12:51:20
|
|
kmsdrm: Finetune integer type usage. Add some comments.
|
|
a76f1763
|
2020-08-24T01:10:11
|
|
kmsdrm: Move cursor plane setup and freeing to MouseInit() and MouseQuit(), for better consistency.
|
|
0d593d7e
|
2020-08-23T23:44:07
|
|
kmsdrm: Add error control to plane prop setting function. Do most plane prop setting with a single function.
|
|
e06e9c35
|
2020-08-23T11:26:55
|
|
kmsdrm: move cursor-related atomic helper functions and related struct typedefs to the SDL_kmsdrmmouse unit.
|
|
0b7b7721
|
2020-08-23T03:13:50
|
|
kmsdrm: remove redundant function, use drm_atomic_setbuffers() for disconnecting planes instead.
|
|
16c04f26
|
2020-08-23T02:58:57
|
|
kmsdrm: Init cursor surface on SetCursor() ONLY. Removal of dynamic modeset because it causes A LOT of problems with some kernel video drivers. Some refactoring and cleanups.
|
|
0d0ba111
|
2020-08-19T01:34:56
|
|
kmsdrm: correct parameter name.
|
|
5d32eda9
|
2020-08-19T01:31:22
|
|
kmsdrm: implement smarter surface recreation function to be used in videomode changes. Other minor arrangements.
|
|
f79da817
|
2020-08-18T01:52:15
|
|
kmsdrm: free all connector, crtc and plane memory on KMSDRM_VideoQuit().
|
|
92cb9192
|
2020-08-17T18:35:04
|
|
kmsdrm: move hardware cursor functionality to the ATOMIC interface. Disconnect the display plane from the GBM surface buffers before destroying the GBM surface.
|
|
c437729b
|
2020-08-08T14:27:55
|
|
kmsdrm: separate requests in different functions so we only need one atomic commit for everything, as expected by atomic design.
|
|
3b9f1073
|
2020-08-07T11:53:04
|
|
kmsdrm: wait for possible pending atomic commits before destroying surfaces, and before restoring video on quit. Move messages to the SDL_Log* functions.
|
|
96c99693
|
2020-08-06T01:36:56
|
|
kmsdrm: wait for pending atomic commits before restoring videomode and crtc->buffer on VideoQuit, and simplify double-buffer SwapWindow() implementation.
|
|
09692b61
|
2020-08-05T18:55:22
|
|
kmsdrm: move videomode restoration on VideoQuit() to using the atomic interface instead of the legacy drmModeSetCrtc() function. Refactoring of get_plane_id().
|
|
fc722b2d
|
2020-08-05T15:28:51
|
|
kmsdrm: free memory for plane, crtc and connector property tables on VideoQuit.
|
|
2d69ce08
|
2020-08-05T02:06:59
|
|
kmsdrm: double and triple buffered versions of SwapWindow() are now both reimplemented in atomic pageflipping versions, and can be selected via SDL_VIDEO_DOUBLE_BUFFER env variable.
|
|
8996ee17
|
2020-08-03T22:24:49
|
|
kmsdrm: update SwapWindow fn, moving it to triple-buffer.
|
|
ea171c05
|
2020-08-01T18:58:42
|
|
winrt: Another attempt at getting this to compile.
IntPtr isn't a POD type like I thought, so hopefully we can just construct
one that works out? C++/CX is so weird.
|
|
b131661c
|
2020-08-01T18:23:34
|
|
kmsdrm: rewrite the new SwapWindow() fn to avoid tearing. Double-buffer only for now.
|
|
282e4c65
|
2020-07-31T19:42:23
|
|
winrt: Patched to compile...?
Microsoft's C++/CX is weird, no idea if this will actually fix it. :/
|
|
1a5503ce
|
2020-07-28T21:11:25
|
|
kmsdrm: Moved to the ATOMIC KMS/DRM interface for buffer swapping, leaving DRM-legacy behind.
|
|
c0943328
|
2020-07-21T13:14:24
|
|
wayland: defer pointer confine creation until pointer unlock
It is a protocol error to attempt to create a pointer confine (i.e.
`SDL_SetWindowGrab`) while a locked pointer is active, and vice-versa.
Instead of aborting due to a protocol error, this commit makes SDL
gracefully downgrade locked pointers to confines when appropriate.
|
|
c7eb557d
|
2020-07-20T10:09:07
|
|
kmsdrm: do not leak drmModeConnector
Previously conn was leaked on the success path (when available was
set to SDL_TRUE).
|
|
412b21b0
|
2020-07-20T11:42:23
|
|
Rename the gbm device struct from gbm to gbm_dev for better readabilty.
|
|
155fdc7a
|
2020-07-19T21:48:17
|
|
kmsdrm: settle with first card that has a connected connector
Previously the first card with non-empty connectors, encoders
and crtcs would be selected, however KMSDRM_VideoInit could still reject
it if the connector was not connected. This allow finding the first card
(in a multi GPU setup) that is actually connected to a display.
|
|
b78b88f7
|
2020-07-19T21:46:41
|
|
kmsdrm: fix typo
|
|
75fe4b14
|
2020-07-19T19:53:57
|
|
Added comment about window creation behaviour in KMSDRM.
|
|
2f660c4f
|
2020-07-19T19:11:02
|
|
Delete windata variable no longer needed in KMSDR_SetDisplayMode().
|
|
3a1d7d9c
|
2020-07-19T19:09:15
|
|
Surfaces have to be recreated immediately from KMSDRM_SetDisplayMode().
|
|
b6a818b6
|
2020-07-19T18:45:29
|
|
Fix SDL_Window recreation: drmModeSetCrtc() has to be called everytime the EGL and GBM surfaces are recreated.
|
|
71e9df99
|
2020-07-19T08:55:01
|
|
Fixed bug 5231 - Fix for hardware cursor: size and alpha-premultiplication.
Manuel Alfayate Corchete
I noticed pt2-clone had problems with it's optional hardware mouse on the KMSDRM backend: cursor had a transparent block around it.
So I was investigating and it seems that a GBM cursor needs it's pixels to be alpha-premultiplied instead of straight-alpha.
A
lso, I was previously relying on "manual testing" for the cursor size, but it's far better to use whatever the DRM driver recommends via drmGetCap(): any working driver should make a size recommendation via drmGetCap(), so that's what we use now. I took this decision because I found out that the AMDGPU driver reported working cursor sizes that would appear garbled on screen, and only the recommended cursor size works.
|
|
b5affd12
|
2020-07-16T13:28:59
|
|
Patched to compile.
|
|
3b38e61a
|
2020-07-16T13:25:50
|
|
winrt: Fix casting a pointer to int.
Fixes Bugzilla #5202.
|
|
8babda2c
|
2020-07-16T13:18:19
|
|
egl: SDL_EGL_LoadLibaryOnly() shouldn't set _this->gl_config.driver_loaded = 1
This is handled in in the higher-level SDL_GL_LoadLibrary().
All uses of SDL_EGL_LoadLibrary (which calls the Only version) are just
target-specific wrappers for their own GL_LoadLibrary hook, with two
exceptions which now handle driver_loaded correctly (although it's
questionable if these init-if-no-one-did-it-correctly-already code blocks
should exist at all, fwiw).
Fixes Bugzilla #5190.
|
|
8669a87f
|
2020-07-14T21:13:27
|
|
Reuse X11 connection from availability check
Instead of creating an X11 connection to test that X11 is available,
closing the connection, and then reconnecting for real, use the same
connection to handle both cases.
The X11 connection retry delay mechanism in the case where X11 is
dynamically loaded has been removed. It was only necessary to avoid
authetnication token reuse from the XOpenDisplay call that used to
exist in X11_Available. Now that this call is only made once, it
is no longer needed.
Also drop unused and inapplicable code from a comment.
***
|
|
a78b9763
|
2020-07-14T19:18:16
|
|
Reuse Wayland connection from availability check
|
|
052a1373
|
2020-07-12T19:11:15
|
|
Merge VideoBootStrap::available into VideoBootStrap::create
The two are only ever called together, and combining them makes it possible
to eliminate redundant symbol loading and redundant attempts to connect
to a display server.
|
|
e594a673
|
2020-06-27T16:25:47
|
|
emscripten: Introduce SDL_HINT_EMSCRIPTEN_ASYNCIFY
See https://github.com/emscripten-core/emscripten/issues/10746
and
https://github.com/emscripten-ports/SDL2/pull/112
Fixes Bugzilla #4997.
|
|
01af7b02
|
2020-06-27T16:22:50
|
|
emscripten: support pseudo-synchronous screen refresh and events update using asyncify
|
|
694fea8a
|
2020-06-26T21:37:29
|
|
video: Make SDL_CreateWindow use SDL_Init(SDL_INIT_VIDEO), not SDL_VideoInit.
Otherwise, the video subsystem won't deinitialize during SDL_Quit().
Fixes Bugzilla #5067.
|
|
1947ca70
|
2020-06-26T20:16:43
|
|
video: Changed SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS to default to FALSE.
Fixes Bugzilla #5106. (and probably many others, too!)
|
|
ce293eed
|
2020-06-23T10:12:24
|
|
Fixed bug 5208 - Fix libGL loading on OpenBSD
|
|
b9f55b6d
|
2020-06-19T10:37:14
|
|
Fixed bug 5199 - Fix KMSDRM_CreateWindow() segfault when starting L?VE2D engine.
Manuel Alfayate Corchete
This small patch fixes the KMSDRM_CreateSurfaces() call in KMSDRM_CreateWindow(), that was segfaulting deeper into SDL internals because the windata->viddata pointer wasn't set before the KMSDRM_CreateSurfaces() call.
So that's what this small patch does.
Now, L?VE2D works perfectly well on the Raspberry Pi 3, instead of just segfaulting.
|
|
48989e2a
|
2020-06-17T08:47:27
|
|
Reverted comment change in previous commit
|
|
a7ff6e96
|
2020-06-17T08:44:45
|
|
Fixed overflow in surface pitch calculation
|
|
f1d5ced1
|
2020-06-17T12:48:40
|
|
x11: Fix spurious keyboard focus events
|
|
20aada0e
|
2020-06-10T09:38:43
|
|
Fixed bug 5170 - Build fails when using Visual Studio 2017 with Windows 10 SDK 10.0.19041.0 in uwp
JackBoosY
In src/video/winrt/SDL_winrtgamebar.cpp line 55:
virtual HRESULT STDMETHODCALLTYPE add_VisibilityChanged(
__FIEventHandler_1_IInspectable *handler,
Windows::Foundation::EventRegistrationToken *token) = 0;
The macro __FIEventHandler_1_IInspectable defined in windows.fondation.h(Windows10 SDK 10.0.17763.0) line 3576:
#define __FIVector_1_Windows__CFoundation__CPoint ABI::Windows::Foundation::Collections::__FIVector_1_Windows__CFoundation__CPoint_t
but no longer exists in Windows 10 SDK 10.0.19041.0.
After searching this macro in the sdk include path, I found that it was defined in many header files. But it should be replaced in windows.system.h .
|
|
44f50c64
|
2020-06-09T21:47:41
|
|
Fixed bug 5171 - PollEvent impacts performance in 2.0.12
On some systems, GetClipCursor() impacts performance when called frequently, so only call it every once in a while to make sure we haven't lost our capture.
|
|
511a9702
|
2020-06-09T21:43:00
|
|
Fixed whitespace
|
|
3ac24bfc
|
2020-06-08T17:01:50
|
|
Fixed mouse drag with an external mouse on iOS
|
|
958c4282
|
2020-06-04T09:13:49
|
|
Fixed build warning
|
|
60435712
|
2020-06-03T16:42:19
|
|
video: Set window->surface NULL after freeing it.
Otherwise, when SDL_CreateWindowFramebuffer() is called again, it will return
the free'd surface instead of creating a new one.
|
|
d48c97c4
|
2020-06-02T16:57:20
|
|
Fixed bug 5147 - KMSDRM: SetWindowFullscreen() failing with SDL_WINDOW_FULLSCREEN_DESKTOP
Manuel Alfayate Corchete
This patch is needed so programs that do this work as expected:
1) Start in a different video mode than the mode used by the system and then...
2) Try to go fullscreen with the mode originally used by the system via SetWindowFullScreen() with the SDL_WINDOW_FULLSCREEN_DESKTOP flag.
An example would be pt2-clone in https://github.com/8bitbubsy/pt2-clone.
This program does this:
Starts with:
video.window = SDL_CreateWindow("", SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED, screenW, screenH, windowFlags);
and then, *IF* the user has configured it in fullscreen mode in its .ini, it tries to go fullscreen with the desktop mode:
SDL_SetWindowFullscreen(video.window, SDL_WINDOW_FULLSCREEN_DESKTOP);
This sequence of operations is currently failing because SDL_SetDisplayModeForDisplay() in SDL_video.c fails because display->desktop_mode is not being initialized with its correct value: SetDisplayMode() in SDL_kmsdrmvideo.c will not be able to set the mode because it detects the mode to have a driverdata of 0x0 ("if (!modedata)") and rightfully returns an error.
So, the included patch fixes this small problem, and programs that first change the video mode and then try to go fullscreen with the system video mode will now work.
The patch simply fixes an small omission, but its really needed now that dynamic video mode changing was implemented on the KMSDRM backend.
|
|
9325b22e
|
2020-05-29T21:26:32
|
|
Fixed bug 5113 - SDL_UpdateWindowSurfaceRects BitBlt the entire surface on Win32
Ryan C. Gordon
As discussed here:
https://discourse.libsdl.org/t/question-about-implementation-of-sdl-updatewindowsurfacerects/27561
"As you can see this function [WIN_UpdateWindowFramebuffer, in src/video/windows/SDL_windowsframebuffer.c] calls BitBlt on entire screen, even though it accepts the rects. Rects variable is not even used in this function at all. Now my question is why is that the case?"
|
|
bdfd1b68
|
2020-05-29T16:02:49
|
|
Fixed bug 5146 - SDL_RenderFillRect doesn't work in DirectFB
Lacky
It looks like refactoring of SDL2 internal API has broken SDL_RenderFillRect for DirectFB. In new version function SDL_RenderFillRect returns 0, but rectangle is not visible.
Replacing "count" with "len" in the argument list for SDL_memcpy in DirectFB_QueueFillRects fixes problem.
|
|
e2dbed9c
|
2020-05-29T13:05:37
|
|
SDL_blit: Fix undefined bitshift operations
Arithmatic operations promote Uint8 to signed int. If the top bit of a
Uint8 is set, and it is left shifted 24 places, then the result is not
representable in a signed 32 bit int. This would be undefined behaviour
on systems where int is 32 bits.
|
|
aa259ed5
|
2020-05-28T15:18:41
|
|
wayland: Changed output removal in handle_surface_leave()
No longer needs an extra malloc, handles unexpected cases like the same
output being listed twice.
|
|
ce7ae4ec
|
2020-05-28T14:57:10
|
|
wayland: Move buffer copy into mime_data_list_add()
It makes it clearer who owns the memory, and more reasonable to free it on
failure in the creating function.
(and, of course, pacifies static analysis.)
|
|
22da9d4d
|
2020-05-28T14:47:55
|
|
wayland: assert that mmap() didn't return NULL.
In practice, it never _would_, but in theory it _might_, so this assertion
tells the static analyzer not to worry about it.
|