*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
677 lines
No EOL
28 KiB
D
677 lines
No EOL
28 KiB
D
|
|
// 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;
|
|
}
|
|
}
|
|
} |