|
Size: 1362
Comment: notes for me
|
Size: 2503
Comment: Code example (corrected, expanded)
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 24: | Line 24: |
| #include "SDL_syswm.h" | #include <SDL2/SDL.h> #include <SDL2/SDL_syswm.h> #include <iostream> |
| Line 26: | Line 28: |
| SDL_SysWMinfo info; SDL_VERSION(&info.version); if ( SDL_GetWindowWMInfo(&info) ) { ... } |
using std::cout; int main(int argc, char* argv[]){ SDL_Init(0); SDL_Window* window = SDL_CreateWindow("",0,0,0,0,SDL_WINDOW_HIDDEN); SDL_SysWMinfo info; SDL_VERSION(&info.version); // initialize info structure with SDL version info if(SDL_GetWindowWMInfo(window,&info)){ // the call returns true on success // success cout << "This program is running SDL version " << (int)info.version.major << "." << (int)info.version.minor << "." << (int)info.version.patch << " on "; switch(info.subsystem){ case SDL_SYSWM_UNKNOWN: cout << "an unknown system!"; break; case SDL_SYSWM_WINDOWS: cout << "Microsoft Windows(TM)"; break; case SDL_SYSWM_X11: cout << "X Window System"; break; case SDL_SYSWM_DIRECTFB: cout << "DirectFB"; break; case SDL_SYSWM_COCOA: cout << "Apple OS X"; break; case SDL_SYSWM_UIKIT: cout << "UIKit"; break; } } else { // call failed cout << "Couldn't get window information: " << SDL_GetError(); } SDL_DestroyWindow(window); SDL_Quit(); } |
SDL_GetWindowWMInfo
Use this function to get driver specific information about a window.
Syntax
SDL_bool SDL_GetWindowWMInfo(SDL_Window* window,
SDL_SysWMinfo* info)
Function Parameters
window |
the window about which information is being requested |
info |
an SDL_SysWMinfo structure filled in with window information; see Remarks for details |
Return Value
Returns SDL_TRUE if the function is implemented and the version member of the info struct is valid, or SDL_FALSE if the information could not be retrieved; call SDL_GetError() for more information.
Code Examples
#include <SDL2/SDL.h>
#include <SDL2/SDL_syswm.h>
#include <iostream>
using std::cout;
int main(int argc, char* argv[]){
SDL_Init(0);
SDL_Window* window = SDL_CreateWindow("",0,0,0,0,SDL_WINDOW_HIDDEN);
SDL_SysWMinfo info;
SDL_VERSION(&info.version); // initialize info structure with SDL version info
if(SDL_GetWindowWMInfo(window,&info)){ // the call returns true on success
// success
cout << "This program is running SDL version "
<< (int)info.version.major << "."
<< (int)info.version.minor << "."
<< (int)info.version.patch << " on ";
switch(info.subsystem){
case SDL_SYSWM_UNKNOWN: cout << "an unknown system!"; break;
case SDL_SYSWM_WINDOWS: cout << "Microsoft Windows(TM)"; break;
case SDL_SYSWM_X11: cout << "X Window System"; break;
case SDL_SYSWM_DIRECTFB: cout << "DirectFB"; break;
case SDL_SYSWM_COCOA: cout << "Apple OS X"; break;
case SDL_SYSWM_UIKIT: cout << "UIKit"; break;
}
} else {
// call failed
cout << "Couldn't get window information: " << SDL_GetError();
}
SDL_DestroyWindow(window);
SDL_Quit();
}
Remarks
You must include SDL_syswm.h for the declaration of SDL_SysWMinfo.
The info structure must be initialized with the SDL version, and is then filled in with information about the given window, as shown in the Code Example.
CategoryAPI, CategoryVideo, CategorySWM
