*added ImGUI styles
 *added new assets (fonts, shaders)
 *added cimgui.dll
 *added imports for bindbc-sdl (for WASM)
 *added simple demo
 *added demo launcher
 *added snake demo
 *impoved demo utils
 *added cimgui.bc library for WASM
-improved wasm build script
-small change in vector
This commit is contained in:
Mergul 2019-11-12 20:33:31 +01:00
parent 73f2aa6861
commit cb7609dcaa
82 changed files with 11188 additions and 413 deletions

View file

@ -0,0 +1,677 @@
// Copyright Michael D. Parker 2018.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
module bindbc.sdl.bind.sdlvideo;
import bindbc.sdl.config;
import bindbc.sdl.bind.sdlrect : SDL_Rect;
import bindbc.sdl.bind.sdlstdinc : SDL_bool;
import bindbc.sdl.bind.sdlsurface : SDL_Surface;
struct SDL_DisplayMode {
uint format;
int w;
int h;
int refresh_rate;
void* driverdata;
}
struct SDL_Window;
static if(sdlSupport >= SDLSupport.sdl206) {
enum SDL_WindowFlags {
SDL_WINDOW_FULLSCREEN = 0x00000001,
SDL_WINDOW_OPENGL = 0x00000002,
SDL_WINDOW_SHOWN = 0x00000004,
SDL_WINDOW_HIDDEN = 0x00000008,
SDL_WINDOW_BORDERLESS = 0x00000010,
SDL_WINDOW_RESIZABLE = 0x00000020,
SDL_WINDOW_MINIMIZED = 0x00000040,
SDL_WINDOW_MAXIMIZED = 0x00000080,
SDL_WINDOW_INPUT_GRABBED = 0x00000100,
SDL_WINDOW_INPUT_FOCUS = 0x00000200,
SDL_WINDOW_MOUSE_FOCUS = 0x00000400,
SDL_WINDOW_FULLSCREEN_DESKTOP = SDL_WINDOW_FULLSCREEN | 0x00001000,
SDL_WINDOW_FOREIGN = 0x00000800,
SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000,
SDL_WINDOW_MOUSE_CAPTURE = 0x00004000,
SDL_WINDOW_ALWAYS_ON_TOP = 0x00008000,
SDL_WINDOW_SKIP_TASKBAR = 0x00010000,
SDL_WINDOW_UTILITY = 0x00020000,
SDL_WINDOW_TOOLTIP = 0x00040000,
SDL_WINDOW_POPUP_MENU = 0x00080000,
SDL_WINDOW_VULKAN = 0x10000000,
}
}
else static if(sdlSupport >= SDLSupport.sdl205) {
enum SDL_WindowFlags {
SDL_WINDOW_FULLSCREEN = 0x00000001,
SDL_WINDOW_OPENGL = 0x00000002,
SDL_WINDOW_SHOWN = 0x00000004,
SDL_WINDOW_HIDDEN = 0x00000008,
SDL_WINDOW_BORDERLESS = 0x00000010,
SDL_WINDOW_RESIZABLE = 0x00000020,
SDL_WINDOW_MINIMIZED = 0x00000040,
SDL_WINDOW_MAXIMIZED = 0x00000080,
SDL_WINDOW_INPUT_GRABBED = 0x00000100,
SDL_WINDOW_INPUT_FOCUS = 0x00000200,
SDL_WINDOW_MOUSE_FOCUS = 0x00000400,
SDL_WINDOW_FULLSCREEN_DESKTOP = SDL_WINDOW_FULLSCREEN | 0x00001000,
SDL_WINDOW_FOREIGN = 0x00000800,
SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000,
SDL_WINDOW_MOUSE_CAPTURE = 0x00004000,
SDL_WINDOW_ALWAYS_ON_TOP = 0x00008000,
SDL_WINDOW_SKIP_TASKBAR = 0x00010000,
SDL_WINDOW_UTILITY = 0x00020000,
SDL_WINDOW_TOOLTIP = 0x00040000,
SDL_WINDOW_POPUP_MENU = 0x00080000,
}
}
else static if(sdlSupport >= SDLSupport.sdl204) {
enum SDL_WindowFlags {
SDL_WINDOW_FULLSCREEN = 0x00000001,
SDL_WINDOW_OPENGL = 0x00000002,
SDL_WINDOW_SHOWN = 0x00000004,
SDL_WINDOW_HIDDEN = 0x00000008,
SDL_WINDOW_BORDERLESS = 0x00000010,
SDL_WINDOW_RESIZABLE = 0x00000020,
SDL_WINDOW_MINIMIZED = 0x00000040,
SDL_WINDOW_MAXIMIZED = 0x00000080,
SDL_WINDOW_INPUT_GRABBED = 0x00000100,
SDL_WINDOW_INPUT_FOCUS = 0x00000200,
SDL_WINDOW_MOUSE_FOCUS = 0x00000400,
SDL_WINDOW_FULLSCREEN_DESKTOP = SDL_WINDOW_FULLSCREEN | 0x00001000,
SDL_WINDOW_FOREIGN = 0x00000800,
SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000,
SDL_WINDOW_MOUSE_CAPTURE = 0x00004000,
}
}
else static if(sdlSupport >= SDLSupport.sdl201) {
enum SDL_WindowFlags {
SDL_WINDOW_FULLSCREEN = 0x00000001,
SDL_WINDOW_OPENGL = 0x00000002,
SDL_WINDOW_SHOWN = 0x00000004,
SDL_WINDOW_HIDDEN = 0x00000008,
SDL_WINDOW_BORDERLESS = 0x00000010,
SDL_WINDOW_RESIZABLE = 0x00000020,
SDL_WINDOW_MINIMIZED = 0x00000040,
SDL_WINDOW_MAXIMIZED = 0x00000080,
SDL_WINDOW_INPUT_GRABBED = 0x00000100,
SDL_WINDOW_INPUT_FOCUS = 0x00000200,
SDL_WINDOW_MOUSE_FOCUS = 0x00000400,
SDL_WINDOW_FULLSCREEN_DESKTOP = SDL_WINDOW_FULLSCREEN | 0x00001000,
SDL_WINDOW_FOREIGN = 0x00000800,
SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000,
}
}
else {
enum SDL_WindowFlags {
SDL_WINDOW_FULLSCREEN = 0x00000001,
SDL_WINDOW_OPENGL = 0x00000002,
SDL_WINDOW_SHOWN = 0x00000004,
SDL_WINDOW_HIDDEN = 0x00000008,
SDL_WINDOW_BORDERLESS = 0x00000010,
SDL_WINDOW_RESIZABLE = 0x00000020,
SDL_WINDOW_MINIMIZED = 0x00000040,
SDL_WINDOW_MAXIMIZED = 0x00000080,
SDL_WINDOW_INPUT_GRABBED = 0x00000100,
SDL_WINDOW_INPUT_FOCUS = 0x00000200,
SDL_WINDOW_MOUSE_FOCUS = 0x00000400,
SDL_WINDOW_FULLSCREEN_DESKTOP = SDL_WINDOW_FULLSCREEN | 0x00001000,
SDL_WINDOW_FOREIGN = 0x00000800,
}
}
mixin(expandEnum!SDL_WindowFlags);
enum uint SDL_WINDOWPOS_UNDEFINED_MASK = 0x1FFF0000;
enum uint SDL_WINDOWPOS_UNDEFINED_DISPLAY(uint x) = SDL_WINDOWPOS_UNDEFINED_MASK | x;
enum uint SDL_WINDOWPOS_UNDEFINED = SDL_WINDOWPOS_UNDEFINED_DISPLAY!(0);
enum uint SDL_WINDOWPOS_ISUNDEFINED(uint x) = (x & 0xFFFF0000) == SDL_WINDOWPOS_UNDEFINED_MASK;
enum uint SDL_WINDOWPOS_CENTERED_MASK = 0x2FFF0000;
enum uint SDL_WINDOWPOS_CENTERED_DISPLAY(uint x) = SDL_WINDOWPOS_CENTERED_MASK | x;
enum uint SDL_WINDOWPOS_CENTERED = SDL_WINDOWPOS_CENTERED_DISPLAY!(0);
enum uint SDL_WINDOWPOS_ISCENTERED(uint x) = (x & 0xFFFF0000) == SDL_WINDOWPOS_CENTERED_MASK;
static if(sdlSupport >= SDLSupport.sdl205) {
enum SDL_WindowEventID : ubyte {
SDL_WINDOWEVENT_NONE,
SDL_WINDOWEVENT_SHOWN,
SDL_WINDOWEVENT_HIDDEN,
SDL_WINDOWEVENT_EXPOSED,
SDL_WINDOWEVENT_MOVED,
SDL_WINDOWEVENT_RESIZED,
SDL_WINDOWEVENT_SIZE_CHANGED,
SDL_WINDOWEVENT_MINIMIZED,
SDL_WINDOWEVENT_MAXIMIZED,
SDL_WINDOWEVENT_RESTORED,
SDL_WINDOWEVENT_ENTER,
SDL_WINDOWEVENT_LEAVE,
SDL_WINDOWEVENT_FOCUS_GAINED,
SDL_WINDOWEVENT_FOCUS_LOST,
SDL_WINDOWEVENT_CLOSE,
SDL_WINDOWEVENT_TAKE_FOCUS,
SDL_WINDOWEVENT_HIT_TEST,
}
}
else {
enum SDL_WindowEventID : ubyte {
SDL_WINDOWEVENT_NONE,
SDL_WINDOWEVENT_SHOWN,
SDL_WINDOWEVENT_HIDDEN,
SDL_WINDOWEVENT_EXPOSED,
SDL_WINDOWEVENT_MOVED,
SDL_WINDOWEVENT_RESIZED,
SDL_WINDOWEVENT_SIZE_CHANGED,
SDL_WINDOWEVENT_MINIMIZED,
SDL_WINDOWEVENT_MAXIMIZED,
SDL_WINDOWEVENT_RESTORED,
SDL_WINDOWEVENT_ENTER,
SDL_WINDOWEVENT_LEAVE,
SDL_WINDOWEVENT_FOCUS_GAINED,
SDL_WINDOWEVENT_FOCUS_LOST,
SDL_WINDOWEVENT_CLOSE,
}
}
mixin(expandEnum!SDL_WindowEventID);
static if(sdlSupport >= SDLSupport.sdl209) {
enum SDL_DisplayEventID {
SDL_DISPLAYEVENT_NONE,
SDL_DISPLAYEVENT_ORIENTATION,
}
mixin(expandEnum!SDL_DisplayEventID);
enum SDL_DisplayOrientation {
SDL_ORIENTATION_UNKNOWN,
SDL_ORIENTATION_LANDSCAPE,
SDL_ORIENTATION_LANDSCAPE_FLIPPED,
SDL_ORIENTATION_PORTRAIT,
SDL_ORIENTATION_PORTRAIT_FLIPPED,
}
mixin(expandEnum!SDL_DisplayOrientation);
}
alias SDL_GLContext = void*;
static if(sdlSupport >= SDLSupport.sdl206) {
enum SDL_GLattr {
SDL_GL_RED_SIZE,
SDL_GL_GREEN_SIZE,
SDL_GL_BLUE_SIZE,
SDL_GL_ALPHA_SIZE,
SDL_GL_BUFFER_SIZE,
SDL_GL_DOUBLEBUFFER,
SDL_GL_DEPTH_SIZE,
SDL_GL_STENCIL_SIZE,
SDL_GL_ACCUM_RED_SIZE,
SDL_GL_ACCUM_GREEN_SIZE,
SDL_GL_ACCUM_BLUE_SIZE,
SDL_GL_ACCUM_ALPHA_SIZE,
SDL_GL_STEREO,
SDL_GL_MULTISAMPLEBUFFERS,
SDL_GL_MULTISAMPLESAMPLES,
SDL_GL_ACCELERATED_VISUAL,
SDL_GL_RETAINED_BACKING,
SDL_GL_CONTEXT_MAJOR_VERSION,
SDL_GL_CONTEXT_MINOR_VERSION,
SDL_GL_CONTEXT_EGL,
SDL_GL_CONTEXT_FLAGS,
SDL_GL_CONTEXT_PROFILE_MASK,
SDL_GL_SHARE_WITH_CURRENT_CONTEXT,
SDL_GL_FRAMEBUFFER_SRGB_CAPABLE,
SDL_GL_RELEASE_BEHAVIOR,
SDL_GL_CONTEXT_RESET_NOTIFICATION,
SDL_GL_CONTEXT_NO_ERROR,
}
}
else static if(sdlSupport >= SDLSupport.sdl204) {
enum SDL_GLattr {
SDL_GL_RED_SIZE,
SDL_GL_GREEN_SIZE,
SDL_GL_BLUE_SIZE,
SDL_GL_ALPHA_SIZE,
SDL_GL_BUFFER_SIZE,
SDL_GL_DOUBLEBUFFER,
SDL_GL_DEPTH_SIZE,
SDL_GL_STENCIL_SIZE,
SDL_GL_ACCUM_RED_SIZE,
SDL_GL_ACCUM_GREEN_SIZE,
SDL_GL_ACCUM_BLUE_SIZE,
SDL_GL_ACCUM_ALPHA_SIZE,
SDL_GL_STEREO,
SDL_GL_MULTISAMPLEBUFFERS,
SDL_GL_MULTISAMPLESAMPLES,
SDL_GL_ACCELERATED_VISUAL,
SDL_GL_RETAINED_BACKING,
SDL_GL_CONTEXT_MAJOR_VERSION,
SDL_GL_CONTEXT_MINOR_VERSION,
SDL_GL_CONTEXT_EGL,
SDL_GL_CONTEXT_FLAGS,
SDL_GL_CONTEXT_PROFILE_MASK,
SDL_GL_SHARE_WITH_CURRENT_CONTEXT,
SDL_GL_FRAMEBUFFER_SRGB_CAPABLE,
SDL_GL_RELEASE_BEHAVIOR,
}
}
else static if(sdlSupport >= SDLSupport.sdl201) {
enum SDL_GLattr {
SDL_GL_RED_SIZE,
SDL_GL_GREEN_SIZE,
SDL_GL_BLUE_SIZE,
SDL_GL_ALPHA_SIZE,
SDL_GL_BUFFER_SIZE,
SDL_GL_DOUBLEBUFFER,
SDL_GL_DEPTH_SIZE,
SDL_GL_STENCIL_SIZE,
SDL_GL_ACCUM_RED_SIZE,
SDL_GL_ACCUM_GREEN_SIZE,
SDL_GL_ACCUM_BLUE_SIZE,
SDL_GL_ACCUM_ALPHA_SIZE,
SDL_GL_STEREO,
SDL_GL_MULTISAMPLEBUFFERS,
SDL_GL_MULTISAMPLESAMPLES,
SDL_GL_ACCELERATED_VISUAL,
SDL_GL_RETAINED_BACKING,
SDL_GL_CONTEXT_MAJOR_VERSION,
SDL_GL_CONTEXT_MINOR_VERSION,
SDL_GL_CONTEXT_EGL,
SDL_GL_CONTEXT_FLAGS,
SDL_GL_CONTEXT_PROFILE_MASK,
SDL_GL_SHARE_WITH_CURRENT_CONTEXT,
SDL_GL_FRAMEBUFFER_SRGB_CAPABLE,
}
}
else {
enum SDL_GLattr {
SDL_GL_RED_SIZE,
SDL_GL_GREEN_SIZE,
SDL_GL_BLUE_SIZE,
SDL_GL_ALPHA_SIZE,
SDL_GL_BUFFER_SIZE,
SDL_GL_DOUBLEBUFFER,
SDL_GL_DEPTH_SIZE,
SDL_GL_STENCIL_SIZE,
SDL_GL_ACCUM_RED_SIZE,
SDL_GL_ACCUM_GREEN_SIZE,
SDL_GL_ACCUM_BLUE_SIZE,
SDL_GL_ACCUM_ALPHA_SIZE,
SDL_GL_STEREO,
SDL_GL_MULTISAMPLEBUFFERS,
SDL_GL_MULTISAMPLESAMPLES,
SDL_GL_ACCELERATED_VISUAL,
SDL_GL_RETAINED_BACKING,
SDL_GL_CONTEXT_MAJOR_VERSION,
SDL_GL_CONTEXT_MINOR_VERSION,
SDL_GL_CONTEXT_EGL,
SDL_GL_CONTEXT_FLAGS,
SDL_GL_CONTEXT_PROFILE_MASK,
SDL_GL_SHARE_WITH_CURRENT_CONTEXT,
}
}
mixin(expandEnum!SDL_GLattr);
enum SDL_GLprofile {
SDL_GL_CONTEXT_PROFILE_CORE = 0x0001,
SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002,
SDL_GL_CONTEXT_PROFILE_ES = 0x0004,
}
mixin(expandEnum!SDL_GLprofile);
enum SDL_GLcontextFlag {
SDL_GL_CONTEXT_DEBUG_FLAG = 0x0001,
SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 0x0002,
SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = 0x0004,
SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = 0x0008,
}
mixin(expandEnum!SDL_GLcontextFlag);
static if(sdlSupport >= SDLSupport.sdl204) {
enum SDL_GLcontextReleaseFlag {
SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE = 0x0000,
SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x0001,
}
mixin(expandEnum!SDL_GLcontextReleaseFlag);
enum SDL_HitTestResult {
SDL_HITTEST_NORMAL,
SDL_HITTEST_DRAGGABLE,
SDL_HITTEST_RESIZE_TOPLEFT,
SDL_HITTEST_RESIZE_TOP,
SDL_HITTEST_RESIZE_TOPRIGHT,
SDL_HITTEST_RESIZE_RIGHT,
SDL_HITTEST_RESIZE_BOTTOMRIGHT,
SDL_HITTEST_RESIZE_BOTTOM,
SDL_HITTEST_RESIZE_BOTTOMLEFT,
SDL_HITTEST_RESIZE_LEFT,
}
mixin(expandEnum!SDL_HitTestResult);
import bindbc.sdl.bind.sdlrect : SDL_Point;
extern(C) nothrow alias SDL_HitTest = SDL_HitTestResult function(SDL_Window*,const(SDL_Point)*,void*);
}
static if(sdlSupport >= SDLSupport.sdl206) {
enum SDL_GLContextResetNotification {
SDL_GL_CONTEXT_RESET_NO_NOTIFICATION = 0x0000,
SDL_GL_CONTEXT_RESET_LOSE_CONTEXT = 0x0001,
}
mixin(expandEnum!SDL_GLContextResetNotification);
}
version(BindSDL_Static) {
extern(C) @nogc nothrow {
int SDL_GetNumVideoDrivers();
const(char)* SDL_GetVideoDriver(int);
int SDL_VideoInit(const(char)*);
void SDL_VideoQuit();
const(char)* SDL_GetCurrentVideoDriver();
int SDL_GetNumVideoDisplays();
const(char)* SDL_GetDisplayName(int);
int SDL_GetDisplayBounds(int,SDL_Rect*);
int SDL_GetNumDisplayModes(int);
int SDL_GetDisplayMode(int,int,SDL_DisplayMode*);
int SDL_GetDesktopDisplayMode(int,SDL_DisplayMode*);
int SDL_GetCurrentDisplayMode(int,SDL_DisplayMode*);
SDL_DisplayMode* SDL_GetClosestDisplayMode(int,const(SDL_DisplayMode)*,SDL_DisplayMode*);
int SDL_GetWindowDisplayIndex(SDL_Window*);
int SDL_SetWindowDisplayMode(SDL_Window*,const(SDL_DisplayMode)*);
int SDL_GetWindowDisplayMode(SDL_Window*,SDL_DisplayMode*);
uint SDL_GetWindowPixelFormat(SDL_Window*);
SDL_Window* SDL_CreateWindow(const(char)*,int,int,int,int,SDL_WindowFlags);
SDL_Window* SDL_CreateWindowFrom(const(void)*);
uint SDL_GetWindowID(SDL_Window*);
SDL_Window* SDL_GetWindowFromID(uint);
SDL_WindowFlags SDL_GetWindowFlags(SDL_Window*);
void SDL_SetWindowTitle(SDL_Window*,const(char)*);
const(char)* SDL_GetWindowTitle(SDL_Window*);
void SDL_SetWindowIcon(SDL_Window*,SDL_Surface*);
void* SDL_SetWindowData(SDL_Window*,const(char)*,void*);
void* SDL_GetWindowData(SDL_Window*,const(char)*);
void SDL_SetWindowPosition(SDL_Window*,int,int);
void SDL_GetWindowPosition(SDL_Window*,int*,int*);
void SDL_SetWindowSize(SDL_Window*,int,int);
void SDL_GetWindowSize(SDL_Window*,int*,int*);
void SDL_SetWindowMinimumSize(SDL_Window*,int,int);
void SDL_GetWindowMinimumSize(SDL_Window*,int*,int*);
void SDL_SetWindowMaximumSize(SDL_Window*,int,int);
void SDL_GetWindowMaximumSize(SDL_Window*,int*,int*);
void SDL_SetWindowBordered(SDL_Window*,SDL_bool);
void SDL_ShowWindow(SDL_Window*);
void SDL_HideWindow(SDL_Window*);
void SDL_RaiseWindow(SDL_Window*);
void SDL_MaximizeWindow(SDL_Window*);
void SDL_MinimizeWindow(SDL_Window*);
void SDL_RestoreWindow(SDL_Window*);
int SDL_SetWindowFullscreen(SDL_Window*,uint);
SDL_Surface* SDL_GetWindowSurface(SDL_Window*);
int SDL_UpdateWindowSurface(SDL_Window*);
int SDL_UpdateWindowSurfaceRects(SDL_Window*,SDL_Rect*,int);
void SDL_SetWindowGrab(SDL_Window*,SDL_bool);
SDL_bool SDL_GetWindowGrab(SDL_Window*);
int SDL_SetWindowBrightness(SDL_Window*,float);
float SDL_GetWindowBrightness(SDL_Window*);
int SDL_SetWindowGammaRamp(SDL_Window*,const(ushort)*,const(ushort)*,const(ushort)*);
int SDL_GetWindowGammaRamp(SDL_Window*,ushort*,ushort*,ushort*);
void SDL_DestroyWindow(SDL_Window*);
SDL_bool SDL_IsScreenSaverEnabled();
void SDL_EnableScreenSaver();
void SDL_DisableScreenSaver();
int SDL_GL_LoadLibrary(const(char)*);
void* SDL_GL_GetProcAddress(const(char)*);
void SDL_GL_UnloadLibrary();
SDL_bool SDL_GL_ExtensionSupported(const(char)*);
int SDL_GL_SetAttribute(SDL_GLattr,int);
int SDL_GL_GetAttribute(SDL_GLattr,int*);
SDL_GLContext SDL_GL_CreateContext(SDL_Window*);
int SDL_GL_MakeCurrent(SDL_Window*,SDL_GLContext);
SDL_Window* SDL_GL_GetCurrentWindow();
SDL_GLContext SDL_GL_GetCurrentContext();
int SDL_GL_SetSwapInterval(int);
int SDL_GL_GetSwapInterval();
void SDL_GL_SwapWindow(SDL_Window*);
void SDL_GL_DeleteContext(SDL_GLContext);
static if(sdlSupport >= SDLSupport.sdl201) {
void SDL_GL_GetDrawableSize(SDL_Window*,int*,int*);
}
static if(sdlSupport >= SDLSupport.sdl202) {
void SDL_GL_ResetAttributes();
}
static if(sdlSupport >= SDLSupport.sdl204) {
int SDL_GetDisplayDPI(int,float*,float*,float*);
SDL_Window* SDL_GetGrabbedWindow();
int SDL_SetWindowHitTest(SDL_Window*,SDL_HitTest,void*);
}
static if(sdlSupport >= SDLSupport.sdl205) {
int SDL_GetDisplayUsableBounds(int,SDL_Rect*);
int SDL_GetWindowBordersSize(SDL_Window*,int*,int*,int*,int*);
int SDL_GetWindowOpacity(SDL_Window*,float*);
int SDL_SetWindowInputFocus(SDL_Window*);
int SDL_SetWindowModalFor(SDL_Window*,SDL_Window*);
int SDL_SetWindowOpacity(SDL_Window*,float);
void SDL_SetWindowResizable(SDL_Window*,SDL_bool);
}
static if(sdlSupport >= SDLSupport.sdl209) {
SDL_DisplayOrientation SDL_GetDisplayOrientation(int);
}
}
}
else {
extern(C) @nogc nothrow {
alias pSDL_GetNumVideoDrivers = int function();
alias pSDL_GetVideoDriver = const(char)* function(int);
alias pSDL_VideoInit = int function(const(char)*);
alias pSDL_VideoQuit = void function();
alias pSDL_GetCurrentVideoDriver = const(char)* function();
alias pSDL_GetNumVideoDisplays = int function();
alias pSDL_GetDisplayName = const(char)* function(int);
alias pSDL_GetDisplayBounds = int function(int,SDL_Rect*);
alias pSDL_GetNumDisplayModes = int function(int);
alias pSDL_GetDisplayMode = int function(int,int,SDL_DisplayMode*);
alias pSDL_GetDesktopDisplayMode = int function(int,SDL_DisplayMode*);
alias pSDL_GetCurrentDisplayMode = int function(int,SDL_DisplayMode*);
alias pSDL_GetClosestDisplayMode = SDL_DisplayMode* function(int,const(SDL_DisplayMode)*,SDL_DisplayMode*);
alias pSDL_GetWindowDisplayIndex = int function(SDL_Window*);
alias pSDL_SetWindowDisplayMode = int function(SDL_Window*,const(SDL_DisplayMode)*);
alias pSDL_GetWindowDisplayMode = int function(SDL_Window*,SDL_DisplayMode*);
alias pSDL_GetWindowPixelFormat = uint function(SDL_Window*);
alias pSDL_CreateWindow = SDL_Window* function(const(char)*,int,int,int,int,SDL_WindowFlags);
alias pSDL_CreateWindowFrom = SDL_Window* function(const(void)*);
alias pSDL_GetWindowID = uint function(SDL_Window*);
alias pSDL_GetWindowFromID = SDL_Window* function(uint);
alias pSDL_GetWindowFlags = SDL_WindowFlags function(SDL_Window*);
alias pSDL_SetWindowTitle = void function(SDL_Window*,const(char)*);
alias pSDL_GetWindowTitle = const(char)* function(SDL_Window*);
alias pSDL_SetWindowIcon = void function(SDL_Window*,SDL_Surface*);
alias pSDL_SetWindowData = void* function(SDL_Window*,const(char)*,void*);
alias pSDL_GetWindowData = void* function(SDL_Window*,const(char)*);
alias pSDL_SetWindowPosition = void function(SDL_Window*,int,int);
alias pSDL_GetWindowPosition = void function(SDL_Window*,int*,int*);
alias pSDL_SetWindowSize = void function(SDL_Window*,int,int);
alias pSDL_GetWindowSize = void function(SDL_Window*,int*,int*);
alias pSDL_SetWindowMinimumSize = void function(SDL_Window*,int,int);
alias pSDL_GetWindowMinimumSize = void function(SDL_Window*,int*,int*);
alias pSDL_SetWindowMaximumSize = void function(SDL_Window*,int,int);
alias pSDL_GetWindowMaximumSize = void function(SDL_Window*,int*,int*);
alias pSDL_SetWindowBordered = void function(SDL_Window*,SDL_bool);
alias pSDL_ShowWindow = void function(SDL_Window*);
alias pSDL_HideWindow = void function(SDL_Window*);
alias pSDL_RaiseWindow = void function(SDL_Window*);
alias pSDL_MaximizeWindow = void function(SDL_Window*);
alias pSDL_MinimizeWindow = void function(SDL_Window*);
alias pSDL_RestoreWindow = void function(SDL_Window*);
alias pSDL_SetWindowFullscreen = int function(SDL_Window*,uint);
alias pSDL_GetWindowSurface = SDL_Surface* function(SDL_Window*);
alias pSDL_UpdateWindowSurface = int function(SDL_Window*);
alias pSDL_UpdateWindowSurfaceRects = int function(SDL_Window*,SDL_Rect*,int);
alias pSDL_SetWindowGrab = void function(SDL_Window*,SDL_bool);
alias pSDL_GetWindowGrab = SDL_bool function(SDL_Window*);
alias pSDL_SetWindowBrightness = int function(SDL_Window*,float);
alias pSDL_GetWindowBrightness = float function(SDL_Window*);
alias pSDL_SetWindowGammaRamp = int function(SDL_Window*,const(ushort)*,const(ushort)*,const(ushort)*);
alias pSDL_GetWindowGammaRamp = int function(SDL_Window*,ushort*,ushort*,ushort*);
alias pSDL_DestroyWindow = void function(SDL_Window*);
alias pSDL_IsScreenSaverEnabled = SDL_bool function();
alias pSDL_EnableScreenSaver = void function();
alias pSDL_DisableScreenSaver = void function();
alias pSDL_GL_LoadLibrary = int function(const(char)*);
alias pSDL_GL_GetProcAddress = void* function(const(char)*);
alias pSDL_GL_UnloadLibrary = void function();
alias pSDL_GL_ExtensionSupported = SDL_bool function(const(char)*);
alias pSDL_GL_SetAttribute = int function(SDL_GLattr,int);
alias pSDL_GL_GetAttribute = int function(SDL_GLattr,int*);
alias pSDL_GL_CreateContext = SDL_GLContext function(SDL_Window*);
alias pSDL_GL_MakeCurrent = int function(SDL_Window*,SDL_GLContext);
alias pSDL_GL_GetCurrentWindow = SDL_Window* function();
alias pSDL_GL_GetCurrentContext = SDL_GLContext function();
alias pSDL_GL_SetSwapInterval = int function(int);
alias pSDL_GL_GetSwapInterval = int function();
alias pSDL_GL_SwapWindow = void function(SDL_Window*);
alias pSDL_GL_DeleteContext = void function(SDL_GLContext);
}
__gshared {
pSDL_GetNumVideoDrivers SDL_GetNumVideoDrivers;
pSDL_GetVideoDriver SDL_GetVideoDriver;
pSDL_VideoInit SDL_VideoInit;
pSDL_VideoQuit SDL_VideoQuit;
pSDL_GetCurrentVideoDriver SDL_GetCurrentVideoDriver;
pSDL_GetNumVideoDisplays SDL_GetNumVideoDisplays;
pSDL_GetDisplayName SDL_GetDisplayName;
pSDL_GetDisplayBounds SDL_GetDisplayBounds;
pSDL_GetNumDisplayModes SDL_GetNumDisplayModes;
pSDL_GetDisplayMode SDL_GetDisplayMode;
pSDL_GetDesktopDisplayMode SDL_GetDesktopDisplayMode;
pSDL_GetCurrentDisplayMode SDL_GetCurrentDisplayMode;
pSDL_GetClosestDisplayMode SDL_GetClosestDisplayMode;
pSDL_GetWindowDisplayIndex SDL_GetWindowDisplayIndex;
pSDL_SetWindowDisplayMode SDL_SetWindowDisplayMode;
pSDL_GetWindowDisplayMode SDL_GetWindowDisplayMode;
pSDL_GetWindowPixelFormat SDL_GetWindowPixelFormat;
pSDL_CreateWindow SDL_CreateWindow;
pSDL_CreateWindowFrom SDL_CreateWindowFrom;
pSDL_GetWindowID SDL_GetWindowID;
pSDL_GetWindowFromID SDL_GetWindowFromID;
pSDL_GetWindowFlags SDL_GetWindowFlags;
pSDL_SetWindowTitle SDL_SetWindowTitle;
pSDL_GetWindowTitle SDL_GetWindowTitle;
pSDL_SetWindowIcon SDL_SetWindowIcon;
pSDL_SetWindowData SDL_SetWindowData;
pSDL_GetWindowData SDL_GetWindowData;
pSDL_SetWindowPosition SDL_SetWindowPosition;
pSDL_GetWindowPosition SDL_GetWindowPosition;
pSDL_SetWindowSize SDL_SetWindowSize;
pSDL_GetWindowSize SDL_GetWindowSize;
pSDL_SetWindowMinimumSize SDL_SetWindowMinimumSize;
pSDL_GetWindowMinimumSize SDL_GetWindowMinimumSize;
pSDL_SetWindowMaximumSize SDL_SetWindowMaximumSize;
pSDL_GetWindowMaximumSize SDL_GetWindowMaximumSize;
pSDL_SetWindowBordered SDL_SetWindowBordered;
pSDL_ShowWindow SDL_ShowWindow;
pSDL_HideWindow SDL_HideWindow;
pSDL_RaiseWindow SDL_RaiseWindow;
pSDL_MaximizeWindow SDL_MaximizeWindow;
pSDL_MinimizeWindow SDL_MinimizeWindow;
pSDL_RestoreWindow SDL_RestoreWindow;
pSDL_SetWindowFullscreen SDL_SetWindowFullscreen;
pSDL_GetWindowSurface SDL_GetWindowSurface;
pSDL_UpdateWindowSurface SDL_UpdateWindowSurface;
pSDL_UpdateWindowSurfaceRects SDL_UpdateWindowSurfaceRects;
pSDL_SetWindowGrab SDL_SetWindowGrab;
pSDL_GetWindowGrab SDL_GetWindowGrab;
pSDL_SetWindowBrightness SDL_SetWindowBrightness;
pSDL_GetWindowBrightness SDL_GetWindowBrightness;
pSDL_SetWindowGammaRamp SDL_SetWindowGammaRamp;
pSDL_GetWindowGammaRamp SDL_GetWindowGammaRamp;
pSDL_DestroyWindow SDL_DestroyWindow;
pSDL_IsScreenSaverEnabled SDL_IsScreenSaverEnabled;
pSDL_EnableScreenSaver SDL_EnableScreenSaver;
pSDL_DisableScreenSaver SDL_DisableScreenSaver;
pSDL_GL_LoadLibrary SDL_GL_LoadLibrary;
pSDL_GL_GetProcAddress SDL_GL_GetProcAddress;
pSDL_GL_UnloadLibrary SDL_GL_UnloadLibrary;
pSDL_GL_ExtensionSupported SDL_GL_ExtensionSupported;
pSDL_GL_SetAttribute SDL_GL_SetAttribute;
pSDL_GL_GetAttribute SDL_GL_GetAttribute;
pSDL_GL_CreateContext SDL_GL_CreateContext;
pSDL_GL_MakeCurrent SDL_GL_MakeCurrent;
pSDL_GL_GetCurrentWindow SDL_GL_GetCurrentWindow;
pSDL_GL_GetCurrentContext SDL_GL_GetCurrentContext;
pSDL_GL_SetSwapInterval SDL_GL_SetSwapInterval;
pSDL_GL_GetSwapInterval SDL_GL_GetSwapInterval;
pSDL_GL_SwapWindow SDL_GL_SwapWindow;
pSDL_GL_DeleteContext SDL_GL_DeleteContext;
}
static if(sdlSupport >= SDLSupport.sdl201) {
extern(C) @nogc nothrow {
alias pSDL_GL_GetDrawableSize = void function(SDL_Window*,int*,int*);
}
__gshared {
pSDL_GL_GetDrawableSize SDL_GL_GetDrawableSize;
}
}
static if(sdlSupport >= SDLSupport.sdl202) {
extern(C) @nogc nothrow {
alias pSDL_GL_ResetAttributes = void function();
}
__gshared {
pSDL_GL_ResetAttributes SDL_GL_ResetAttributes;
}
}
static if(sdlSupport >= SDLSupport.sdl204) {
extern(C) @nogc nothrow {
alias pSDL_GetDisplayDPI = int function(int,float*,float*,float*);
alias pSDL_GetGrabbedWindow = SDL_Window* function();
alias pSDL_SetWindowHitTest = int function(SDL_Window*,SDL_HitTest,void*);
}
__gshared {
pSDL_GetDisplayDPI SDL_GetDisplayDPI;
pSDL_GetGrabbedWindow SDL_GetGrabbedWindow;
pSDL_SetWindowHitTest SDL_SetWindowHitTest;
}
}
static if(sdlSupport >= SDLSupport.sdl205) {
extern(C) @nogc nothrow {
alias pSDL_GetDisplayUsableBounds = int function(int,SDL_Rect*);
alias pSDL_GetWindowBordersSize = int function(SDL_Window*,int*,int*,int*,int*);
alias pSDL_GetWindowOpacity = int function(SDL_Window*,float*);
alias pSDL_SetWindowInputFocus = int function(SDL_Window*);
alias pSDL_SetWindowModalFor = int function(SDL_Window*,SDL_Window*);
alias pSDL_SetWindowOpacity = int function(SDL_Window*,float);
alias pSDL_SetWindowResizable = void function(SDL_Window*,SDL_bool);
}
__gshared {
pSDL_GetDisplayUsableBounds SDL_GetDisplayUsableBounds;
pSDL_GetWindowBordersSize SDL_GetWindowBordersSize;
pSDL_GetWindowOpacity SDL_GetWindowOpacity;
pSDL_SetWindowInputFocus SDL_SetWindowInputFocus;
pSDL_SetWindowModalFor SDL_SetWindowModalFor;
pSDL_SetWindowOpacity SDL_SetWindowOpacity;
pSDL_SetWindowResizable SDL_SetWindowResizable;
}
}
static if(sdlSupport >= SDLSupport.sdl209) {
extern(C) @nogc nothrow {
alias pSDL_GetDisplayOrientation = SDL_DisplayOrientation function(int);
}
__gshared {
pSDL_GetDisplayOrientation SDL_GetDisplayOrientation;
}
}
}