|
86b81abe
|
2020-12-28T16:19:19
|
|
[KMS/DRM_LEGACY] Prevent mouse cursor from staying onscreen after window destruction. Patch by Ozkan Sezer.
|
|
0feaf7d1
|
2020-12-28T14:37:58
|
|
[KMS/DRM][Vulkan] Correct non-existing property. Remove hacky surface destruction code (TTY buffer isn't there after a Vulkan window is created).
|
|
7186584b
|
2020-12-28T10:41:37
|
|
fix indentation (bug 5313)
|
|
c2735c0b
|
2020-12-27T23:53:28
|
|
Better scaling fallbacks for the SW renderer (bug 5313)
|
|
a6beb2d2
|
2020-12-28T01:10:02
|
|
SDL_PrivateLowerBlitScaled: remove unused local var 'a'
|
|
30df2e4e
|
2020-12-27T23:00:11
|
|
Scaling fallbacks for the SW renderer (bug 5313)
|
|
f9b5f6cc
|
2020-12-27T20:28:24
|
|
Forward scale mode to SW renderer (Bug 5313)
|
|
46d31d57
|
2020-12-27T00:43:06
|
|
[KMS/DRM][Vulkan] Fix segfault when changing fullscren mode and permanent cursor when changing between Vulkan and GL renderers in vkQuake3. Tidy up window destruction code.
|
|
9838611a
|
2020-12-23T15:52:12
|
|
Fixed compiler crash building for iOS with clang 11.0.3
|
|
4aebad77
|
2020-12-23T22:50:50
|
|
SDL_SoftStretchLowerLinear: try to make xcode buildbot compile (Bug 5313)
|
|
93ccdee8
|
2020-12-23T13:47:49
|
|
Fixed bug 5404 - stdlib: Added SDL_round, SDL_roundf, SDL_lround and SDL_lroundf
Cameron Cawley
stdlib: Added SDL_round, SDL_roundf, SDL_lround and SDL_lroundf
The default implementation is based on the one used in the Windows RT video driver.
|
|
8e20376f
|
2020-12-23T22:09:01
|
|
SDL_SoftStretchLinear: use SDL_INLINE (bug 5313)
|
|
7b8d5b7d
|
2020-12-23T22:02:28
|
|
SDL_SoftStretchLinear: fix implicit conversion (bug 5313)
|
|
ae8a270f
|
2020-12-23T21:37:40
|
|
Add SDL_SoftStretchLowerLinear() (Bug 5313)
|
|
050ee9a4
|
2020-12-23T21:32:01
|
|
Split SDL_SoftStretch in Lower and Uppler functions (Bug 5313)
|
|
09fcc9ed
|
2020-12-23T16:45:23
|
|
[KMS/DRM][Vulkan] Fix small warning, thanks to Ozkan Sezer for spotting it.
|
|
a6dc838d
|
2020-12-23T16:22:46
|
|
[KMS/DRM][Vulkan] Only try to create a display mode when no suitable mode is found.
|
|
2fc987c2
|
2020-12-22T14:15:33
|
|
[Buildsystem] Add guards for not building with KMSDRM support if EGL is not available.
|
|
4cd98160
|
2020-12-21T09:44:25
|
|
Fixed whitespace
|
|
8766d604
|
2020-12-21T17:29:24
|
|
[Video/KMSDRM] Fix potetial access to freed structure and complete errorchecks.
|
|
b06ef3a1
|
2020-12-21T01:53:11
|
|
[Video/KMSDRM] Manually re-show the cursor on window creation, if needed.
|
|
4198f0e5
|
2020-12-21T01:20:30
|
|
fix uninitialized warnings in KMSDRM_CreateCursor()
|
|
a8dbcab1
|
2020-12-20T21:48:05
|
|
[Video/KMSDRM] Don't copy the cursor bitmap to the cursor GBM BO until we're showing it.
|
|
2756b0f3
|
2020-12-20T14:29:58
|
|
[Video/KMSDRM] Init and deinit mouse stuff at the same time that GBM stuff.
|
|
cf71e017
|
2020-12-19T23:32:09
|
|
[Video/KMSDRM] Remove auxiliary AMDGPU compatibility workarounds not needed anymore.
|
|
af1f91cb
|
2020-12-19T20:21:07
|
|
[Video/KMSDRM] Correct typo.
|
|
cf489556
|
2020-12-19T20:15:50
|
|
[Video/KMSDRM] Honor the device index in Vulkan. Add notes about the display index.
|
|
ab3a390e
|
2020-12-19T17:35:04
|
|
[Video/KMSDRM] Better ATOMIC caps testing: patch by Oskan Sezer.
|
|
436499f3
|
2020-12-19T02:08:59
|
|
[Video/KMSDRM] Comment out some debug info, adjust comments for future work.
|
|
6b81cac4
|
2020-12-19T01:25:50
|
|
remove duplicated SDL_SetError after calling check_atomic_modesetting()
|
|
8952a613
|
2020-12-18T23:17:42
|
|
[Video/KMSDRM] Re-arrange display members setup.
|
|
f60f8d5d
|
2020-12-18T22:53:51
|
|
[Video/KMSDRM]: Add Vulkan support to the KMSDRM backend.
|
|
6ac0b23d
|
2020-12-18T21:37:20
|
|
SDL_DirectFB_video.c: DSPF_ABGR requires directfb >= 1.5.0 -- add guard.
|
|
6c4ab484
|
2020-12-18T17:50:02
|
|
SDL_kmsdrmvideo.c: check atomic modesetting in check_modesetting()
.. so that KMSDRM_CreateDevice() can fail and SDL_VideoInit() would
move on to next bootstrap member which is kmsdrm_legacy. hopefully
fixes bug #5393.
|
|
10625f9d
|
2020-12-17T23:50:00
|
|
SDL_windowsmessagebox.c: go back to hg rev 14458 state.
encountering a NULL caption in AddDialogString() is intended, i.e.
AddDialogStaticIcon() sends it as NULL on purpose.
|
|
4d6eb305
|
2020-12-17T23:28:20
|
|
SDL_windowsmessagebox.c (AddDialogControl): add back NULL caption check.
because AddDialogStaticIcon() sends a NULL caption -- fixes bug #5401.
|
|
90456670
|
2020-12-17T14:11:00
|
|
more "'for' loop initial declarations are only allowed in C99 mode" fixes
|
|
ed4fcb2c
|
2020-12-16T03:24:10
|
|
kmsdrm_legacy build fixes:
- add missing '_LEGACY' to symbol names
- perform missing 2.0.14 portage
- fix 'for' loop initial declarations are only allowed in C99 mode errors
|
|
9940e710
|
2020-12-16T00:10:30
|
|
Import two post-2.0.12 fixes to kmsdrm_legacy:
Fix build breakage without EGL:
https://hg.libsdl.org/SDL/rev/f2606fe53654e305ab9badb821d9d3afb7f92f49
Fix KMSDRM_CreateWindow segfault when starting L?VE2D engine (bug 5199)
https://hg.libsdl.org/SDL/rev/d2e69a78939463d9ff9448a5f4efd1e208bb97b0
|
|
f8839289
|
2020-12-15T12:22:48
|
|
Potential fix for bug 5393 - KMSDRM: using atomic mode setting breaks GPU compatibility
Substring
I was trying the KMSDRM video backend with some very simple programs that were working ok on 2.0.12. The same code won?t work on the current dev branch and I get:
DEBUG: check_modesetting: probing ?/dev/dri/card0?
DEBUG: /dev/dri/card0 connector, encoder and CRTC counts are: 4 5 6
DEBUG: check_modesetting: probing ?/dev/dri/card0?
DEBUG: /dev/dri/card0 connector, encoder and CRTC counts are: 4 5 6
DEBUG: KMSDRM_VideoInit()
DEBUG: Opening device /dev/dri/card0
DEBUG: Opened DRM FD (3)
DEBUG: no atomic modesetting support.
DEBUG: Video subsystem has not been initialized
INFO: Using SDL video driver: (null)
DEBUG: Video subsystem has not been initialized
After carefully checking, the radeon driver doesn?t support atomic modesetting. That?s not the only problem : the same happens with the amdgpu driver if we disable Display Core (kernel parameter amdgpu.dc=0, which is required to get analogue outputs working).
This is a major regression in the KMSDRM driver.
Using atomic mode setting is great, but having no fallback to the "standard KMS" is bad.
|
|
ee85a41a
|
2020-12-13T02:10:46
|
|
Fixed compile warning
|
|
5c212cb0
|
2020-12-10T12:24:24
|
|
remove a few stale NULL message/title checks after commit e2b729b1756a
top-level guarantees non-NULL message / title passed in messageboxdata
|
|
f1cab8ae
|
2020-12-10T11:20:56
|
|
fix bug #5253: handle NULL title or message fields in SDL_MessageBoxData
- SDL_video.c (SDL_ShowMessageBox): replace messageboxdata, set title
or message field to "" if either of them is NULL.
- SDL_video.c (SDL_ShowSimpleMessageBox): set title or message to ""
if either of them is NULL for EMSCRIPTEN builds.
- SDL_bmessagebox.cc: add empty string check along with NULL check for
title and message fields.
- SDL_windowsmessagebox.c (AddDialogString): remove NULL string check
- SDL_windowsmessagebox.c (AddDialogControl): add empty string check
along with the NULL check.
- SDL_x11messagebox.c: revert commit 677c4cd68069
- SDL_os2messagebox.c: revert commit 2c2a489d76e7
- test/testmessage.c: Add NULL title and NULL message tests.
|
|
d46dd103
|
2020-12-09T07:49:07
|
|
Fixed typo in Vulkan load logic
|
|
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.
|
|
50203d58
|
2020-12-08T22:00:06
|
|
Fixed bug 5329 - SDL_SetWindowGrab(SDL_FALSE) fails to unlock cursor if window is partially offscreen
Ivan Mogilko
With SDL 2.0.12 under MS Windows, if the window is partially offscreen calling SDL_SetWindowGrab(w, SDL_TRUE) works, but subsequent call to SDL_SetWindowGrab(w, SDL_FALSE) does not work.
I tested this in both real program, and a small test app, where unlocking cursor worked perfectly while window is fully in desktop bounds, but did not work if it was at least few pixels outside.
For the reference, following code is enough to reproduce the issue:
#include <windows.h>
#include <SDL.h>
int WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
SDL_Init(SDL_INIT_VIDEO);
SDL_Window* w = SDL_CreateWindow("", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 400, 0);
bool grabbed = false;
bool want_quit = false;
while (!want_quit)
{
SDL_Event event;
while (SDL_PollEvent(&event))
{
switch (event.type)
{
case SDL_QUIT: want_quit = true; break;
case SDL_KEYDOWN:
if (event.key.keysym.scancode == SDL_SCANCODE_SPACE)
{
SDL_SetWindowGrab(w, static_cast<SDL_bool>(!grabbed));
grabbed = !grabbed;
}
}
}
}
SDL_DestroyWindow(w);
SDL_Quit();
return 0;
}
|
|
035f8f23
|
2020-12-02T13:37:59
|
|
SDL_RecreateWindow: allow clearing VULKAN when recreating the window
|
|
93fbab0f
|
2020-12-02T11:04:53
|
|
SDL_ReCreateWindow: allow to unload METAL window and switch back to OpenGL.
On older mac, where METAL Renderer METAL fails to create, it allows to switch back to OpenGL SDL_Renderer
by re-creating the window (METAL flags was previously persistent).
|
|
a0c5bfa3
|
2020-11-27T13:08:40
|
|
Moved raw input event processing from the main thread to the joystick thread
This allows fast joystick event delivery regardless of what the main thread is doing.
|
|
2c079a2f
|
2020-11-27T09:42:14
|
|
SDL_FillRects: prevent empty SDL_surface from raising an error message
It's legitimate to have a surface with 0 width or height (null 'pixels' pointer).
But calling SDL_FillRects would wrongly set the error "You must lock the surface".
|
|
4121ab62
|
2020-11-23T21:25:07
|
|
Fixed bug 5354 - DirectFB: Add Vulkan support
Nicolas Caramelli
This patch adds Vulkan support for the DirectFB video driver.
A screenshot with SDL tests running on DirectFB is available on the HiGFXback project:
https://github.com/caramelli/higfxback/wiki/DirectFB#sdl
|
|
0ff5d55a
|
2020-11-23T21:07:28
|
|
x11: Don't try to grab the pointer on an unmapped window (thanks, Lee!)
Fixes Bugzilla #5352.
|
|
082558db
|
2020-11-20T12:20:02
|
|
SDL_os2messagebox.c (_makeDlg): fix crash if title and/or message is NULL.
c.f.: bug #5253.
|
|
335cfa10
|
2020-11-18T11:24:08
|
|
x11: Don't crash if a messagebox has a NULL title string.
Fixes Bugzilla #5253.
|
|
53b16679
|
2020-11-11T12:33:55
|
|
SIZE_MAX need not be defined in limits.h
it can be in limits.h (windows) or stdint.h.
|
|
7b5a0a9f
|
2020-11-10T13:12:10
|
|
uikit: Don't implement main() twice for iOS static libs.
I think this was a leftover from before the two Xcode projects were merged.
|
|
1ef45c18
|
2020-11-08T23:40:17
|
|
Fixed bug 5339 - Minor memory leak in SDL_x11events.c
wcodelyokoyt
The atom name that X11_GetAtomName() returns never gets freed, which result in a minor memory leak (14 bytes?) every time the user drops a file on a window.
You can see the line in question here:
https://github.com/spurious/SDL-mirror/blob/6b6170caf69b4189c9a9d14fca96e97f09bbcc41/src/video/x11/SDL_x11events.c#L1350
Fix: call XFree on name after the while loop.
|
|
723d76c8
|
2020-11-08T23:34:59
|
|
Fixed bug 5333 - Replace character of legacy code page with utf-8 one.
Joel Linn
This patch fixes a MSVC warning, which is dependent on the regional settings of the build system. Although the character is inside a comment and harmless, it is undesirable to disable the warning for this.
|
|
de6d0ac5
|
2020-11-08T18:11:42
|
|
uikit: Patched to compile on older iOS SDKs.
|
|
010d5fba
|
2020-10-26T09:49:09
|
|
kmsdrm: Make this build with significantly older system libraries.
This allows one to build Raspberry Pi versions on an ancient version of
Raspbian and get both the KMSDRM and RPI video targets built into SDL, giving
maximum binary compatibility from linking against an older glibc, etc, but
also making one library that can access video on all RPi models and OS
releases.
|
|
f0c58417
|
2020-10-25T10:10:10
|
|
SDL_shape_internals.h: forward-declare struct SDL_ShapeTree.
|
|
bfc80d83
|
2020-10-25T03:55:02
|
|
minor coding style cleanup
|
|
5dc6c3c9
|
2020-10-24T10:46:18
|
|
Updated Vulkan headers to version 1.2.158
https://github.com/KhronosGroup/Vulkan-Headers
|
|
5682b066
|
2020-10-22T19:51:57
|
|
kmsdrm: Add comment about KMSDRM_VideoQuit() changes.
|
|
63b78277
|
2020-10-22T19:44:38
|
|
kmsdrm: properly exit with an error when ATOMIC interface is not yet available, instead of just segfaulting.
|
|
a3262205
|
2020-10-22T17:55:45
|
|
kmsdrm: rearrange init function so we try ATOMIC compatibility first.
|
|
b1ea0be8
|
2020-10-22T17:06:34
|
|
kmsdrm: Add missing checks after SDL_calloc() calls.
|
|
ad9ec8b3
|
2020-10-22T16:15:34
|
|
kmsdrm: Small fix, missing bracket.
|
|
87a86675
|
2020-10-22T16:01:51
|
|
kmsdrm: Always use spaces for indentation. Always use SDL_calloc() for calloc.
|
|
cfc13620
|
2020-10-21T23:28:02
|
|
os2 video: updates to my_gradd.h
|
|
f1b603ac
|
2020-10-20T11:51:23
|
|
Fixed bug 5323 - SDL_SetWindowMaximumSize fails if Width or Height is equal to minimum Height or Width
batyastudios
Basicly there is problem and somewhat a solution: https://discourse.libsdl.org/t/setwindowmaximumsize-bug/28267
If you SDL_SetWindowMaximumSize() after SDL_SetWindowMinimumSize() with one of axes have the same value, function will have no effect.
This: (line 2144@SDL_video.c)
if (max_w <= window->min_w || max_h <= window->min_h) {
SDL_SetError("SDL_SetWindowMaximumSize(): Tried to set maximum size smaller than minimum size");
return;
}
May be changed to this:
if (max_w < window->min_w || max_h < window->min_h) {
SDL_SetError("SDL_SetWindowMaximumSize(): Tried to set maximum size smaller than minimum size");
return;
}
|
|
f311e0a8
|
2020-10-19T17:29:16
|
|
Removed debug log message
|
|
73010da4
|
2020-10-19T17:26:33
|
|
x11events: ignore UnmapNotify events from XReparentWindow
UnmapNotify event does not mean that window has been iconified. It
just reports that window changed state from mapped to unmapped.
XReparentWindow can unmap and remap window if it was mapped. This
causes unnecessary events - HIDDEN, MINIMIZED, RESTORED and SHOW.
These events are problematic with Metacity 3.36+ which started to
remove window decorations from fullscreen windows.
- SDL makes decorated window fullscreen
- Metacity removes decorations
- SDL gets UnmapNotify and exits from fullscreen
- Metacity re-adds decorations
As SDL will also get MapNotify event it will try to restore
window state causing above steps to repeat.
https://bugzilla.libsdl.org/show_bug.cgi?id=5314
|
|
ffb307e4
|
2020-10-18T09:52:56
|
|
Fixed bug 5304 - add SDL_HasSurfaceRLE() (Thanks Rene Dudfield and Dan Lawrence)
|
|
19a65a46
|
2020-10-17T21:47:05
|
|
Fixed bug 5321 - crash in SDL_ConvertSurface with RLE surfaces
keep RLE information in flags when converting the surface
|
|
c70191d2
|
2020-10-17T07:37:00
|
|
SDL_os2video.c (OS2_CreateDevice): remove duplicated assignment.
|
|
77d0f043
|
2020-10-16T23:50:00
|
|
os2video.c: add missing FOURCC_R666 define, enable FOURCC_R666 case in _getSDLPixelFormatData().
|
|
58976bda
|
2020-10-15T12:00:15
|
|
Allow more than one window on iOS as long as they're on different displays
|
|
a90f0400
|
2020-10-15T21:37:30
|
|
os2: a _lot_ of coding style cleanup, sot that they match the SDL style.
also renamed the 'debug' macro to debug_os2: the former was dangerously
a common name.
the binary (dll) output is precisely the same as before.
|
|
bdc5129f
|
2020-10-15T10:13:46
|
|
Use a high priority dispatch queue for GCKeyboard and GCMouse events for the lowest latency possible
This appears to reduce latency between 1-4 ms on an iPad Pro.
|
|
a3a0ef75
|
2020-10-15T10:13:44
|
|
Added support for low latency mouse and keyboard handling in iOS 14
The mouse support in iOS 14.0 has a bug with accumulating duplicate mouse deltas that won't be fixed until iOS 14.1, so we don't enable it until then.
|
|
cca16c9c
|
2020-10-15T17:56:19
|
|
kmsdrm: merge GetDisplayDPI implementation by bms20 <brett@mynah-software.com>
|
|
d2723875
|
2020-10-14T23:01:06
|
|
os2: integrate the port into main tree.
|
|
5807cb3d
|
2020-10-14T23:01:06
|
|
os2: remove dependency to gradd.h from IBM's ddk which is non-free:
Add a minimal my_gradd.h containing structures and constants only used
by SDL_os2vman.c -- based on public knowledge from around the internet
including pages from http://www.osfree.org and http://www.edm2.com .
|
|
1d9cf23e
|
2020-10-14T23:01:05
|
|
os2: updated copyright dates for 2020. header guard fixes.
|
|
fe2cc8d8
|
2020-10-14T23:01:04
|
|
OS2_VideoQuit(): avoid double free()ing of displays.
Our caller SDL_VideoQuit() already frees display_modes, driverdata, etc.
Noticed in bitwiseworks' version at https://github.com/bitwiseworks/SDL2-os2
|
|
fba32ee2
|
2020-10-14T23:01:04
|
|
OS2_VideoInit: zero the stSDLDisplay and stSDLDisplayMode variables
Fixes testdisplayinfo.exe crashing in SDL2-2.0.13. (How it did work before?..)
|
|
54ced668
|
2020-10-14T23:01:04
|
|
port from 2.0.12 to 2.0.13 / current SDL-hg repository.
- video: VideoBootStrap->available() is gone.
- thread: all important SDL_CreateThread internal data now put into
struct SDL_Thread: changes to SDL_SYS_CreateThread().
|
|
5da796fe
|
2020-10-14T23:01:03
|
|
os/2: port from SDL2-2.0.5 to SDL2-2.0.12
- events / video: SDL_SetDoubleClickTime() removed -- functionality
moved to SDL_mouse.c:SDL_MouseDoubleClickTimeChanged().
- video: struct SDL_VideoDevice-> CreateWindow and CreateWindowFrom
members renamed to CreateSDLWindow and CreateSDLWindowFrom
|
|
222f0268
|
2020-10-14T23:01:03
|
|
os/2: port from SDL2-2.0.4 to SDL2-2.0.5:
changes to SDL_os2audio.c, SDL_os2video.c, os2/SDL_systhread.c in order
to accomodate SDL2-2.0.5 changes.
- audio: WaitDone() is gone, CloseDevice() interface changes.
- events / video: DropFile() changes:
SDL_DROPBEGIN and SDL_DROPCOMPLETE events, window IDs for drops.
- thread: struct SDL_Thread->stacksize
|
|
1b99d805
|
2020-10-14T23:01:02
|
|
os2: updates from Andrey Vasilkin's 2020-09-07 sources.
|
|
aa790837
|
2020-10-14T23:01:02
|
|
os2: several warning fixes.
mostly those "W007: '&array' may not produce intended result" warnings
from Watcom, visible only in C++ mode. one or two others here & there.
|
|
110a0f7b
|
2020-10-14T23:01:01
|
|
os2: update include paths. add missing libc includes to geniconv.
|
|
74cfb81d
|
2020-10-14T23:01:00
|
|
os2: add port files for SDL2-2.0.4 from Andrey Vasilkin
only geniconv/iconv.h (was from LGPL libiconv) is replaced with a generic
minimal iconv.h based on public knowledge.
|
|
93e14497
|
2020-10-14T15:50:04
|
|
SDL_waylanddatamanager.c (mime_data_list_add): constify the buffer param
Fixes -Wdiscarded-qualifiers warnings from Wayland_data_source_add_data()
|
|
b9cbea35
|
2020-10-13T21:08:20
|
|
video: Refresh Windows display list on WM_DISPLAYCHANGE
- Displays may have been added, removed or changed and all cached monitor
handles are invalidated as a result.
- Display events are handled in three steps:
1. Mark all currently know displays as invalid
2. Enumerate all displays, adding new ones and marking known displays as valid
3. Remove all displays still invalid after enumeration
- Display connect/disconnect events are sent when displays are added or removed
after initial setup
|
|
b546db2f
|
2020-10-09T12:58:28
|
|
Only watch for display connect/disconnect events while the video subsystem is initialized
|
|
b79832ba
|
2020-10-08T21:11:09
|
|
cocoa: Cut and paste from HTML strikes again!
|
|
19aaa294
|
2020-10-09T04:00:00
|
|
Fix https://bugzilla.libsdl.org/show_bug.cgi?id=5306
(Also see: https://bugzilla.libsdl.org/show_bug.cgi?id=4822)
Building the current tree against 10.8 SDK, clang emits the following warning:
src/video/cocoa/SDL_cocoawindow.m:1846:27: warning: instance method '-isOperatingSystemAtLeastVersion:' not found (return type defaults to 'id') [-Wobjc-method-access]
![processInfo isOperatingSystemAtLeastVersion:version]) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/MacOSX10.8.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSProcessInfo.h:20:12: note: receiver is instance of class declared here
@interface NSProcessInfo : NSObject {
^
1 warning generated.
isOperatingSystemAtLeastVersion is an 10.10 thing.
|
|
69fbd60d
|
2020-10-09T04:00:00
|
|
Fix https://bugzilla.libsdl.org/show_bug.cgi?id=4877#c2
loadNibNamed:owner:topLevelObjects is available on 10.8 and newer.
There is an issue report here about an app failing to function on
10.7 and earlier: https://discourse.libsdl.org/t/28179
|