bubel-ecs/demos/external/imports/bindbc/sdl/bind/sdlrender.d
Mergul 73f2aa6861 -improved WASM compilation scripts
-added external bindbc.sdl import for WASM
-working on demos (WIP, working simple demo with ECS and SDL2)
-small change in ecs.std
2019-11-06 20:38:46 +01:00

316 lines
No EOL
17 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.sdlrender;
import bindbc.sdl.config;
import bindbc.sdl.bind.sdlblendmode : SDL_BlendMode;
import bindbc.sdl.bind.sdlrect;
import bindbc.sdl.bind.sdlstdinc : SDL_bool;
import bindbc.sdl.bind.sdlsurface : SDL_Surface;
import bindbc.sdl.bind.sdlvideo : SDL_Window;
enum SDL_RendererFlags : uint {
SDL_RENDERER_SOFTWARE = 0x00000001,
SDL_RENDERER_ACCELERATED = 0x00000002,
SDL_RENDERER_PRESENTVSYNC = 0x00000004,
SDL_RENDERER_TARGETTEXTURE = 0x00000008,
}
mixin(expandEnum!SDL_RendererFlags);
struct SDL_RendererInfo {
const(char)* name;
SDL_RendererFlags flags;
uint num_texture_formats;
uint[16] texture_formats;
int max_texture_width;
int max_texture_height;
}
enum SDL_TextureAccess {
SDL_TEXTUREACCESS_STATIC,
SDL_TEXTUREACCESS_STREAMING,
SDL_TEXTUREACCESS_TARGET,
}
mixin(expandEnum!SDL_TextureAccess);
enum SDL_TextureModulate {
SDL_TEXTUREMODULATE_NONE = 0x00000000,
SDL_TEXTUREMODULATE_COLOR = 0x00000001,
SDL_TEXTUREMODULATE_ALPHA = 0x00000002
}
mixin(expandEnum!SDL_TextureModulate);
enum SDL_RendererFlip {
SDL_FLIP_NONE = 0x00000000,
SDL_FLIP_HORIZONTAL = 0x00000001,
SDL_FLIP_VERTICAL = 0x00000002,
}
mixin(expandEnum!SDL_RendererFlip);
struct SDL_Renderer;
struct SDL_Texture;
version(BindSDL_Static) {
extern(C) @nogc nothrow {
int SDL_GetNumRenderDrivers();
int SDL_GetRenderDriverInfo(int,SDL_RendererInfo*);
int SDL_CreateWindowAndRenderer(int,int,uint,SDL_Window**,SDL_Renderer**);
SDL_Renderer* SDL_CreateRenderer(SDL_Window*,int,SDL_RendererFlags);
SDL_Renderer* SDL_CreateSoftwareRenderer(SDL_Surface*);
SDL_Renderer* SDL_GetRenderer(SDL_Window*);
int SDL_GetRendererInfo(SDL_Renderer*,SDL_RendererInfo*);
int SDL_GetRendererOutputSize(SDL_Renderer*,int*,int*);
SDL_Texture* SDL_CreateTexture(SDL_Renderer*,uint,SDL_TextureAccess,int,int);
SDL_Texture* SDL_CreateTextureFromSurface(SDL_Renderer*,SDL_Surface*);
int SDL_QueryTexture(SDL_Texture*,uint*,int*,int*,int*);
int SDL_SetTextureColorMod(SDL_Texture*,ubyte,ubyte,ubyte);
int SDL_GetTextureColorMod(SDL_Texture*,ubyte*,ubyte*,ubyte*);
int SDL_SetTextureAlphaMod(SDL_Texture*,ubyte);
int SDL_GetTextureAlphaMod(SDL_Texture*,ubyte*);
int SDL_SetTextureBlendMode(SDL_Texture*,SDL_BlendMode);
int SDL_GetTextureBlendMode(SDL_Texture*,SDL_BlendMode*);
int SDL_UpdateTexture(SDL_Texture*,const(SDL_Rect)*,const(void)*,int);
int SDL_LockTexture(SDL_Texture*,const(SDL_Rect)*,void**,int*);
void SDL_UnlockTexture(SDL_Texture*);
SDL_bool SDL_RenderTargetSupported(SDL_Renderer*);
int SDL_SetRenderTarget(SDL_Renderer*,SDL_Texture*);
SDL_Texture* SDL_GetRenderTarget(SDL_Renderer*);
int SDL_RenderSetClipRect(SDL_Renderer*,const(SDL_Rect)*);
void SDL_RenderGetClipRect(SDL_Renderer* renderer,SDL_Rect*);
int SDL_RenderSetLogicalSize(SDL_Renderer*,int,int);
void SDL_RenderGetLogicalSize(SDL_Renderer*,int*,int*);
int SDL_RenderSetViewport(SDL_Renderer*,const(SDL_Rect)*);
void SDL_RenderGetViewport(SDL_Renderer*,SDL_Rect*);
int SDL_RenderSetScale(SDL_Renderer*,float,float);
int SDL_RenderGetScale(SDL_Renderer*,float*,float*);
int SDL_SetRenderDrawColor(SDL_Renderer*,ubyte,ubyte,ubyte,ubyte);
int SDL_GetRenderDrawColor(SDL_Renderer*,ubyte*,ubyte*,ubyte*,ubyte*);
int SDL_SetRenderDrawBlendMode(SDL_Renderer*,SDL_BlendMode);
int SDL_GetRenderDrawBlendMode(SDL_Renderer*,SDL_BlendMode*);
int SDL_RenderClear(SDL_Renderer*);
int SDL_RenderDrawPoint(SDL_Renderer*,int,int);
int SDL_RenderDrawPoints(SDL_Renderer*,const(SDL_Point)*,int);
int SDL_RenderDrawLine(SDL_Renderer*,int,int,int,int);
int SDL_RenderDrawLines(SDL_Renderer*,const(SDL_Point)*,int);
int SDL_RenderDrawRect(SDL_Renderer*,const(SDL_Rect)*);
int SDL_RenderDrawRects(SDL_Renderer*,const(SDL_Rect)*,int);
int SDL_RenderFillRect(SDL_Renderer*,const(SDL_Rect)*);
int SDL_RenderFillRects(SDL_Renderer*,const(SDL_Rect)*,int);
int SDL_RenderCopy(SDL_Renderer*,SDL_Texture*,const(SDL_Rect)*,const(SDL_Rect*));
int SDL_RenderCopyEx(SDL_Renderer*,SDL_Texture*,const(SDL_Rect)*,const(SDL_Rect)*,const(double),const(SDL_Point)*,const(SDL_RendererFlip));
int SDL_RenderReadPixels(SDL_Renderer*,const(SDL_Rect)*,uint,void*,int);
void SDL_RenderPresent(SDL_Renderer*);
void SDL_DestroyTexture(SDL_Texture*);
void SDL_DestroyRenderer(SDL_Renderer*);
int SDL_GL_BindTexture(SDL_Texture*,float*,float*);
int SDL_GL_UnbindTexture(SDL_Texture*);
static if(sdlSupport >= SDLSupport.sdl201) {
int SDL_UpdateYUVTexture(SDL_Texture*,const(SDL_Rect)*,const(ubyte)*,int,const(ubyte)*,int,const(ubyte)*,int);
}
static if(sdlSupport >= SDLSupport.sdl204) {
SDL_bool SDL_RenderIsClipEnabled(SDL_Renderer*);
}
static if(sdlSupport >= SDLSupport.sdl205) {
SDL_bool SDL_RenderGetIntegerScale(SDL_Renderer*);
int SDL_RenderSetIntegerScale(SDL_Renderer*,SDL_bool);
}
static if(sdlSupport >= SDLSupport.sdl208) {
void* SDL_RenderGetMetalLayer(SDL_Renderer*);
void* SDL_RenderGetMetalCommandEncoder(SDL_Renderer*);
}
static if(sdlSupport >= SDLSupport.sdl2010) {
int SDL_RenderDrawPointF(SDL_Renderer*,float,float);
int SDL_RenderDrawPointsF(SDL_Renderer*,const(SDL_FPoint)*,int);
int SDL_RenderDrawLineF(SDL_Renderer*,float,float,float,float);
int SDL_RenderDrawLinesF(SDL_Renderer*,const(SDL_FPoint)*,int);
int SDL_RenderDrawRectF(SDL_Renderer*,const(SDL_FRect)*);
int SDL_RenderDrawRectsF(SDL_Renderer*,const(SDL_FRect)*,int);
int SDL_RenderFillRectF(SDL_Renderer*,const(SDL_FRect)*);
int SDL_RenderFillRectsF(SDL_Renderer*,const(SDL_FRect)*,int);
int SDL_RenderCopyF(SDL_Renderer*,SDL_Texture*,const(SDL_FRect)*,const(SDL_FRect)*);
int SDL_RenderCopyExF(SDL_Renderer*,SDL_Texture*,const(SDL_FRect)*,const(SDL_FRect)*,const(double),const(SDL_FPoint)*,const(SDL_RendererFlip));
int SDL_RenderFlush(SDL_Renderer*);
}
}
}
else {
extern(C) @nogc nothrow {
alias pSDL_GetNumRenderDrivers = int function();
alias pSDL_GetRenderDriverInfo = int function(int,SDL_RendererInfo*);
alias pSDL_CreateWindowAndRenderer = int function(int,int,uint,SDL_Window**,SDL_Renderer**);
alias pSDL_CreateRenderer = SDL_Renderer* function(SDL_Window*,int,SDL_RendererFlags);
alias pSDL_CreateSoftwareRenderer = SDL_Renderer* function(SDL_Surface*);
alias pSDL_GetRenderer = SDL_Renderer* function(SDL_Window*);
alias pSDL_GetRendererInfo = int function(SDL_Renderer*,SDL_RendererInfo*);
alias pSDL_GetRendererOutputSize = int function(SDL_Renderer*,int*,int*);
alias pSDL_CreateTexture = SDL_Texture* function(SDL_Renderer*,uint,SDL_TextureAccess,int,int);
alias pSDL_CreateTextureFromSurface = SDL_Texture* function(SDL_Renderer*,SDL_Surface*);
alias pSDL_QueryTexture = int function(SDL_Texture*,uint*,int*,int*,int*);
alias pSDL_SetTextureColorMod = int function(SDL_Texture*,ubyte,ubyte,ubyte);
alias pSDL_GetTextureColorMod = int function(SDL_Texture*,ubyte*,ubyte*,ubyte*);
alias pSDL_SetTextureAlphaMod = int function(SDL_Texture*,ubyte);
alias pSDL_GetTextureAlphaMod = int function(SDL_Texture*,ubyte*);
alias pSDL_SetTextureBlendMode = int function(SDL_Texture*,SDL_BlendMode);
alias pSDL_GetTextureBlendMode = int function(SDL_Texture*,SDL_BlendMode*);
alias pSDL_UpdateTexture = int function(SDL_Texture*,const(SDL_Rect)*,const(void)*,int);
alias pSDL_LockTexture = int function(SDL_Texture*,const(SDL_Rect)*,void**,int*);
alias pSDL_UnlockTexture = void function(SDL_Texture*);
alias pSDL_RenderTargetSupported = SDL_bool function(SDL_Renderer*);
alias pSDL_SetRenderTarget = int function(SDL_Renderer*,SDL_Texture*);
alias pSDL_GetRenderTarget = SDL_Texture* function(SDL_Renderer*);
alias pSDL_RenderSetClipRect = int function(SDL_Renderer*,const(SDL_Rect)*);
alias pSDL_RenderGetClipRect = void function(SDL_Renderer* renderer,SDL_Rect*);
alias pSDL_RenderSetLogicalSize = int function(SDL_Renderer*,int,int);
alias pSDL_RenderGetLogicalSize = void function(SDL_Renderer*,int*,int*);
alias pSDL_RenderSetViewport = int function(SDL_Renderer*,const(SDL_Rect)*);
alias pSDL_RenderGetViewport = void function(SDL_Renderer*,SDL_Rect*);
alias pSDL_RenderSetScale = int function(SDL_Renderer*,float,float);
alias pSDL_RenderGetScale = int function(SDL_Renderer*,float*,float*);
alias pSDL_SetRenderDrawColor = int function(SDL_Renderer*,ubyte,ubyte,ubyte,ubyte);
alias pSDL_GetRenderDrawColor = int function(SDL_Renderer*,ubyte*,ubyte*,ubyte*,ubyte*);
alias pSDL_SetRenderDrawBlendMode = int function(SDL_Renderer*,SDL_BlendMode);
alias pSDL_GetRenderDrawBlendMode = int function(SDL_Renderer*,SDL_BlendMode*);
alias pSDL_RenderClear = int function(SDL_Renderer*);
alias pSDL_RenderDrawPoint = int function(SDL_Renderer*,int,int);
alias pSDL_RenderDrawPoints = int function(SDL_Renderer*,const(SDL_Point)*,int);
alias pSDL_RenderDrawLine = int function(SDL_Renderer*,int,int,int,int);
alias pSDL_RenderDrawLines = int function(SDL_Renderer*,const(SDL_Point)*,int);
alias pSDL_RenderDrawRect = int function(SDL_Renderer*,const(SDL_Rect)*);
alias pSDL_RenderDrawRects = int function(SDL_Renderer*,const(SDL_Rect)*,int);
alias pSDL_RenderFillRect = int function(SDL_Renderer*,const(SDL_Rect)*);
alias pSDL_RenderFillRects = int function(SDL_Renderer*,const(SDL_Rect)*,int);
alias pSDL_RenderCopy = int function(SDL_Renderer*,SDL_Texture*,const(SDL_Rect)*,const(SDL_Rect*));
alias pSDL_RenderCopyEx = int function(SDL_Renderer*,SDL_Texture*,const(SDL_Rect)*,const(SDL_Rect)*,const(double),const(SDL_Point)*,const(SDL_RendererFlip));
alias pSDL_RenderReadPixels = int function(SDL_Renderer*,const(SDL_Rect)*,uint,void*,int);
alias pSDL_RenderPresent = void function(SDL_Renderer*);
alias pSDL_DestroyTexture = void function(SDL_Texture*);
alias pSDL_DestroyRenderer = void function(SDL_Renderer*);
alias pSDL_GL_BindTexture = int function(SDL_Texture*,float*,float*);
alias pSDL_GL_UnbindTexture = int function(SDL_Texture*);
}
__gshared {
pSDL_GetNumRenderDrivers SDL_GetNumRenderDrivers;
pSDL_GetRenderDriverInfo SDL_GetRenderDriverInfo;
pSDL_CreateWindowAndRenderer SDL_CreateWindowAndRenderer;
pSDL_CreateRenderer SDL_CreateRenderer;
pSDL_CreateSoftwareRenderer SDL_CreateSoftwareRenderer;
pSDL_GetRenderer SDL_GetRenderer;
pSDL_GetRendererInfo SDL_GetRendererInfo;
pSDL_GetRendererOutputSize SDL_GetRendererOutputSize;
pSDL_CreateTexture SDL_CreateTexture;
pSDL_CreateTextureFromSurface SDL_CreateTextureFromSurface;
pSDL_QueryTexture SDL_QueryTexture;
pSDL_SetTextureColorMod SDL_SetTextureColorMod;
pSDL_GetTextureColorMod SDL_GetTextureColorMod;
pSDL_SetTextureAlphaMod SDL_SetTextureAlphaMod;
pSDL_GetTextureAlphaMod SDL_GetTextureAlphaMod;
pSDL_SetTextureBlendMode SDL_SetTextureBlendMode;
pSDL_GetTextureBlendMode SDL_GetTextureBlendMode;
pSDL_UpdateTexture SDL_UpdateTexture;
pSDL_LockTexture SDL_LockTexture;
pSDL_UnlockTexture SDL_UnlockTexture;
pSDL_RenderTargetSupported SDL_RenderTargetSupported;
pSDL_SetRenderTarget SDL_SetRenderTarget;
pSDL_GetRenderTarget SDL_GetRenderTarget;
pSDL_RenderSetClipRect SDL_RenderSetClipRect;
pSDL_RenderGetClipRect SDL_RenderGetClipRect;
pSDL_RenderSetLogicalSize SDL_RenderSetLogicalSize;
pSDL_RenderGetLogicalSize SDL_RenderGetLogicalSize;
pSDL_RenderSetViewport SDL_RenderSetViewport;
pSDL_RenderGetViewport SDL_RenderGetViewport;
pSDL_RenderSetScale SDL_RenderSetScale;
pSDL_RenderGetScale SDL_RenderGetScale;
pSDL_SetRenderDrawColor SDL_SetRenderDrawColor;
pSDL_GetRenderDrawColor SDL_GetRenderDrawColor;
pSDL_SetRenderDrawBlendMode SDL_SetRenderDrawBlendMode;
pSDL_GetRenderDrawBlendMode SDL_GetRenderDrawBlendMode;
pSDL_RenderClear SDL_RenderClear;
pSDL_RenderDrawPoint SDL_RenderDrawPoint;
pSDL_RenderDrawPoints SDL_RenderDrawPoints;
pSDL_RenderDrawLine SDL_RenderDrawLine;
pSDL_RenderDrawLines SDL_RenderDrawLines;
pSDL_RenderDrawRect SDL_RenderDrawRect;
pSDL_RenderDrawRects SDL_RenderDrawRects;
pSDL_RenderFillRect SDL_RenderFillRect;
pSDL_RenderFillRects SDL_RenderFillRects;
pSDL_RenderCopy SDL_RenderCopy;
pSDL_RenderCopyEx SDL_RenderCopyEx;
pSDL_RenderReadPixels SDL_RenderReadPixels;
pSDL_RenderPresent SDL_RenderPresent;
pSDL_DestroyTexture SDL_DestroyTexture;
pSDL_DestroyRenderer SDL_DestroyRenderer;
pSDL_GL_BindTexture SDL_GL_BindTexture;
pSDL_GL_UnbindTexture SDL_GL_UnbindTexture;
}
static if(sdlSupport >= SDLSupport.sdl201) {
extern(C) @nogc nothrow {
alias pSDL_UpdateYUVTexture = int function(SDL_Texture*,const(SDL_Rect)*,const(ubyte)*,int,const(ubyte)*,int,const(ubyte)*,int);
}
__gshared {
pSDL_UpdateYUVTexture SDL_UpdateYUVTexture;
}
}
static if(sdlSupport >= SDLSupport.sdl204) {
extern(C) @nogc nothrow {
alias pSDL_RenderIsClipEnabled = SDL_bool function(SDL_Renderer*);
}
__gshared {
pSDL_RenderIsClipEnabled SDL_RenderIsClipEnabled;
}
}
static if(sdlSupport >= SDLSupport.sdl205) {
extern(C) @nogc nothrow {
alias pSDL_RenderGetIntegerScale = SDL_bool function(SDL_Renderer*);
alias pSDL_RenderSetIntegerScale = int function(SDL_Renderer*,SDL_bool);
}
__gshared {
pSDL_RenderGetIntegerScale SDL_RenderGetIntegerScale;
pSDL_RenderSetIntegerScale SDL_RenderSetIntegerScale;
}
}
static if(sdlSupport >= SDLSupport.sdl208) {
extern(C) @nogc nothrow {
alias pSDL_RenderGetMetalLayer = void* function(SDL_Renderer*);
alias pSDL_RenderGetMetalCommandEncoder = void* function(SDL_Renderer*);
}
__gshared {
pSDL_RenderGetMetalLayer SDL_RenderGetMetalLayer;
pSDL_RenderGetMetalCommandEncoder SDL_RenderGetMetalCommandEncoder;
}
}
static if(sdlSupport >= SDLSupport.sdl2010) {
extern(C) @nogc nothrow {
alias pSDL_RenderDrawPointF = int function(SDL_Renderer*,float,float);
alias pSDL_RenderDrawPointsF = int function(SDL_Renderer*,const(SDL_FPoint)*,int);
alias pSDL_RenderDrawLineF = int function(SDL_Renderer*,float,float,float,float);
alias pSDL_RenderDrawLinesF = int function(SDL_Renderer*,const(SDL_FPoint)*,int);
alias pSDL_RenderDrawRectF = int function(SDL_Renderer*,const(SDL_FRect)*);
alias pSDL_RenderDrawRectsF = int function(SDL_Renderer*,const(SDL_FRect)*,int);
alias pSDL_RenderFillRectF = int function(SDL_Renderer*,const(SDL_FRect)*);
alias pSDL_RenderFillRectsF = int function(SDL_Renderer*,const(SDL_FRect)*,int);
alias pSDL_RenderCopyF = int function(SDL_Renderer*,SDL_Texture*,const(SDL_FRect)*,const(SDL_FRect)*);
alias pSDL_RenderCopyExF = int function(SDL_Renderer*,SDL_Texture*,const(SDL_FRect)*,const(SDL_FRect)*,const(double),const(SDL_FPoint)*,const(SDL_RendererFlip));
alias pSDL_RenderFlush = int function(SDL_Renderer*);
}
__gshared {
pSDL_RenderDrawPointF SDL_RenderDrawPointF;
pSDL_RenderDrawPointsF SDL_RenderDrawPointsF;
pSDL_RenderDrawLineF SDL_RenderDrawLineF;
pSDL_RenderDrawLinesF SDL_RenderDrawLinesF;
pSDL_RenderDrawRectF SDL_RenderDrawRectF;
pSDL_RenderDrawRectsF SDL_RenderDrawRectsF;
pSDL_RenderFillRectF SDL_RenderFillRectF;
pSDL_RenderFillRectsF SDL_RenderFillRectsF;
pSDL_RenderCopyF SDL_RenderCopyF;
pSDL_RenderCopyExF SDL_RenderCopyExF;
pSDL_RenderFlush SDL_RenderFlush;
}
}
}