module lib.sdl2.shape

Code Map

module lib.sdl2.shape;


enum SDL_NONSHAPEABLE_WINDOW;
enum SDL_INVALID_SHAPE_ARGUMENT;
enum SDL_WINDOW_LACKS_SHAPE;
enum ShapeModeDefault;
enum ShapeModeBinarizeAlpha;
enum ShapeModeReverseBinarizeAlpha;
enum ShapeModeColorKey;

//! \brief An enum denoting the specific type of contents present in an
//! SDL_WindowShapeParams union. *
alias WindowShapeMode = i32;

//! \brief A struct that tags the SDL_WindowShapeParams union with an enum
//! describing the type of its contents. *
struct SDL_WindowShapeMode
{
public:
	mode: WindowShapeMode;
	parameters: SDL_WindowShapeParams;
}

//! \brief A union containing parameters for shaped windows. *
union SDL_WindowShapeParams
{
public:
	binarizationCutoff: Uint8;
	colorKey: SDL_Color;
}

//! \brief Create a window that can be shaped with the specified position,
//! dimensions, and flags.
fn SDL_CreateShapedWindow(title: const(const(char)*), x: u32, y: u32, w: u32, h: u32, flags: Uint32) SDL_Window*;
//! \brief Return whether the given window is a shaped window.
fn SDL_IsShapedWindow(window: const(const(SDL_Window)*)) SDL_bool;
fn SDL_SHAPEMODEALPHA(mode: WindowShapeMode) bool { }
//! \brief Set the shape and parameters of a shaped window.
fn SDL_SetWindowShape(window: SDL_Window*, shape: SDL_Surface*, shape_mode: SDL_WindowShapeMode*) i32;
//! \brief Get the shape parameters of a shaped window.
fn SDL_GetShapedWindowMode(window: SDL_Window*, shape_mode: SDL_WindowShapeMode*) i32;
fn SDL_CreateShapedWindow(title: const(const(char)*), x: u32, y: u32, w: u32, h: u32, flags: Uint32) SDL_Window*

\brief Create a window that can be shaped with the specified position, dimensions, and flags.

\param title The title of the window, in UTF-8 encoding. \param x The x position of the window, ::SDL_WINDOWPOS_CENTERED, or ::SDL_WINDOWPOS_UNDEFINED. \param y The y position of the window, ::SDL_WINDOWPOS_CENTERED, or ::SDL_WINDOWPOS_UNDEFINED. \param w The width of the window. \param h The height of the window. \param flags The flags for the window, a mask of SDL_WINDOW_BORDERLESS with any of the following: ::SDL_WINDOW_OPENGL, ::SDL_WINDOW_INPUT_GRABBED, ::SDL_WINDOW_SHOWN, ::SDL_WINDOW_RESIZABLE, ::SDL_WINDOW_MAXIMIZED, ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_BORDERLESS is always set, and ::SDL_WINDOW_FULLSCREEN is always unset.

\return The window created, or NULL if window creation failed.

\sa SDL_DestroyWindow()

fn SDL_IsShapedWindow(window: const(const(SDL_Window)*)) SDL_bool

\brief Return whether the given window is a shaped window.

\param window The window to query for being shaped.

\return SDL_TRUE if the window is a window that can be shaped, SDL_FALSE if the window is unshaped or NULL. \sa SDL_CreateShapedWindow

alias WindowShapeMode

\brief An enum denoting the specific type of contents present in an SDL_WindowShapeParams union. *

union SDL_WindowShapeParams

\brief A union containing parameters for shaped windows. *

struct SDL_WindowShapeMode

\brief A struct that tags the SDL_WindowShapeParams union with an enum describing the type of its contents. *

fn SDL_SetWindowShape(window: SDL_Window*, shape: SDL_Surface*, shape_mode: SDL_WindowShapeMode*) i32

\brief Set the shape and parameters of a shaped window.

\param window The shaped window whose parameters should be set. \param shape A surface encoding the desired shape for the window. \param shape_mode The parameters to set for the shaped window.

\return 0 on success, SDL_INVALID_SHAPE_ARGUMENT on invalid an invalid shape argument, or SDL_NONSHAPEABLE_WINDOW if the SDL_Window* given does not reference a valid shaped window.

\sa SDL_WindowShapeMode \sa SDL_GetShapedWindowMode.

fn SDL_GetShapedWindowMode(window: SDL_Window*, shape_mode: SDL_WindowShapeMode*) i32

\brief Get the shape parameters of a shaped window.

\param window The shaped window whose parameters should be retrieved. \param shape_mode An empty shape-mode structure to fill, or NULL to check whether the window has a shape.

\return 0 if the window has a shape and, provided shape_mode was not NULL, shape_mode has been filled with the mode data, SDL_NONSHAPEABLE_WINDOW if the SDL_Window given is not a shaped window, or SDL_WINDOW_LACKS_SHAPE if the SDL_Window* given is a shapeable window currently lacking a shape.

\sa SDL_WindowShapeMode \sa SDL_SetWindowShape