mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-03-25 18:10:46 +00:00
SDL_syswm.h has been removed and replaced with window properties
This commit is contained in:
@@ -125,26 +125,6 @@ SDL for iPhone supports polling the built in accelerometer as a joystick device.
|
||||
The main thing to note when using the accelerometer with SDL is that while the iPhone natively reports accelerometer as floating point values in units of g-force, SDL_GetJoystickAxis() reports joystick values as signed integers. Hence, in order to convert between the two, some clamping and scaling is necessary on the part of the iPhone SDL joystick driver. To convert SDL_GetJoystickAxis() reported values BACK to units of g-force, simply multiply the values by SDL_IPHONE_MAX_GFORCE / 0x7FFF.
|
||||
|
||||
|
||||
Notes -- OpenGL ES
|
||||
==============================================================================
|
||||
|
||||
Your SDL application for iOS uses OpenGL ES for video by default.
|
||||
|
||||
OpenGL ES for iOS supports several display pixel formats, such as RGBA8 and RGB565, which provide a 32 bit and 16 bit color buffer respectively. By default, the implementation uses RGB565, but you may use RGBA8 by setting each color component to 8 bits in SDL_GL_SetAttribute().
|
||||
|
||||
If your application doesn't use OpenGL's depth buffer, you may find significant performance improvement by setting SDL_GL_DEPTH_SIZE to 0.
|
||||
|
||||
Finally, if your application completely redraws the screen each frame, you may find significant performance improvement by setting the attribute SDL_GL_RETAINED_BACKING to 0.
|
||||
|
||||
OpenGL ES on iOS doesn't use the traditional system-framebuffer setup provided in other operating systems. Special care must be taken because of this:
|
||||
|
||||
- The drawable Renderbuffer must be bound to the GL_RENDERBUFFER binding point when SDL_GL_SwapWindow() is called.
|
||||
- The drawable Framebuffer Object must be bound while rendering to the screen and when SDL_GL_SwapWindow() is called.
|
||||
- If multisample antialiasing (MSAA) is used and glReadPixels is used on the screen, the drawable framebuffer must be resolved to the MSAA resolve framebuffer (via glBlitFramebuffer or glResolveMultisampleFramebufferAPPLE), and the MSAA resolve framebuffer must be bound to the GL_READ_FRAMEBUFFER binding point, before glReadPixels is called.
|
||||
|
||||
The above objects can be obtained via SDL_GetWindowWMInfo() (in SDL_syswm.h).
|
||||
|
||||
|
||||
Notes -- Keyboard
|
||||
==============================================================================
|
||||
|
||||
|
||||
@@ -1150,6 +1150,8 @@ The following functions have been renamed:
|
||||
|
||||
## SDL_system.h
|
||||
|
||||
SDL_WindowsMessageHook has changed signatures so the message may be modified and it can block further message processing.
|
||||
|
||||
SDL_AndroidGetExternalStorageState() takes the state as an output parameter and returns 0 if the function succeeds or a negative error code if there was an error.
|
||||
|
||||
The following functions have been removed:
|
||||
@@ -1159,7 +1161,29 @@ The following functions have been removed:
|
||||
|
||||
## SDL_syswm.h
|
||||
|
||||
The structures in this file are versioned separately from the rest of SDL, allowing better backwards compatibility and limited forwards compatibility with your application. Instead of calling `SDL_VERSION(&info.version)` before calling SDL_GetWindowWMInfo(), you pass the version in explicitly as SDL_SYSWM_CURRENT_VERSION so SDL knows what fields you expect to be filled out.
|
||||
This header has been removed.
|
||||
|
||||
The Windows and X11 events are now available via callbacks which you can set with SDL_SetWindowsMessageHook() and SDL_SetX11EventHook().
|
||||
|
||||
The information previously available in SDL_GetWindowWMInfo() is now available as window properties, e.g.
|
||||
```c
|
||||
HWND hwnd = NULL;
|
||||
SDL_SysWMinfo info;
|
||||
SDL_VERSION(&info);
|
||||
if (SDL_GetWindowWMInfo(window, &info) && info.subsystem == SDL_SYSWM_WINDOWS) {
|
||||
hwnd = info.info.win.window;
|
||||
}
|
||||
if (hwnd) {
|
||||
...
|
||||
}
|
||||
```
|
||||
becomes:
|
||||
```c
|
||||
HWND hwnd = (HWND)SDL_GetProperty(SDL_GetWindowProperties(window), "SDL.window.win32.hwnd");
|
||||
if (hwnd) {
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
### SDL_GetWindowWMInfo
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ Here is a rough list of what works, and what doesn't:
|
||||
* using Direct3D 11.x APIs outside of SDL. Non-XAML / Direct3D-only apps can
|
||||
choose to render content directly via Direct3D, using SDL to manage the
|
||||
internal WinRT window, as well as input and audio. (Use
|
||||
SDL_GetWindowWMInfo() to get the WinRT 'CoreWindow', and pass it into
|
||||
the window properties to get the WinRT 'CoreWindow', and pass it into
|
||||
IDXGIFactory2::CreateSwapChainForCoreWindow() as appropriate.)
|
||||
|
||||
* What partially works:
|
||||
|
||||
Reference in New Issue
Block a user