shape.nim
Header file for the shaped window API.
Types
WindowShapeMode* {.size: sizeof(cint).} = enum ShapeModeDefault, ## \ ## The default mode, a binarized alpha cutoff of 1. ShapeModeBinarizeAlpha, ## \ ## A binarized alpha cutoff with a given integer value. ShapeModeReverseBinarizeAlpha, ## \ ## A binarized alpha cutoff with a given integer value, ## but with the opposite comparison. ShapeModeColorKey ## \ ## A color key is applied.
- An enum denoting the specific type of contents present in an WindowShapeParams union.
WindowShapeParams* = object {.union.} binarizationCutoff*: uint8 ## \ ## A cutoff alpha value for binarization ## of the window shape's alpha channel. colorKey*: Color
- A union containing parameters for shaped windows.
WindowShapeModeObj* = object mode*: WindowShapeMode ## The mode of these window-shape parameters. parameters*: WindowShapeParams ## Window-shape parameters.
- A struct that tags the WindowShapeParams union with an enum describing the type of its contents.
Procs
proc createShapedWindow*(title: cstring; x: cuint; y: cuint; w: cuint; h: cuint; flags: uint32): Window {.cdecl, importc: "SDL_CreateShapedWindow", dynlib: SDL2_LIB.}
-
Create a window that can be shaped with the specified position, dimensions, and flags.
title The title of the window, in UTF-8 encoding.
x The x position of the window, WINDOWPOS_CENTERED, or WINDOWPOS_UNDEFINED.
y The y position of the window, WINDOWPOS_CENTERED, or WINDOWPOS_UNDEFINED.
w The width of the window.
h The height of the window.
- flags
- The flags for the window, a mask of WINDOW_BORDERLESS with any of the following: WINDOW_OPENGL, WINDOW_INPUT_GRABBED, WINDOW_HIDDEN, WINDOW_RESIZABLE, WINDOW_MAXIMIZED, WINDOW_MINIMIZED, WINDOW_BORDERLESS is always set, and WINDOW_FULLSCREEN is always unset.
Return The window created, or nil if window creation failed.
See also:
destroyWindow()
proc isShapedWindow*(window: Window): bool {.cdecl, importc: "SDL_IsShapedWindow", dynlib: SDL2_LIB.}
-
Return whether the given window is a shaped window.
window The window to query for being shaped.
Return true if the window is a window that can be shaped, false if the window is unshaped or nil.
See also:
createShapedWindow()
proc setWindowShape*(window: Window; shape: Surface; shape_mode: ptr WindowShapeModeObj): cint {.cdecl, importc: "SDL_SetWindowShape", dynlib: SDL2_LIB.}
-
Set the shape and parameters of a shaped window.
window The shaped window whose parameters should be set.
shape A surface encoding the desired shape for the window.
shape_mode The parameters to set for the shaped window.
Return 0 on success, INVALID_SHAPE_ARGUMENT on invalid an invalid shape argument, or NONSHAPEABLE_WINDOW if the Window given does not reference a valid shaped window.
See also:
WindowShapeMode
getShapedWindowMode()
proc getShapedWindowMode*(window: Window; shape_mode: ptr WindowShapeModeObj): cint {. cdecl, importc: "SDL_GetShapedWindowMode", dynlib: SDL2_LIB.}
-
Get the shape parameters of a shaped window.
window The shaped window whose parameters should be retrieved.
shape_mode An empty shape-mode structure to fill, or nil to check whether the window has a shape.
Return 0 if the window has a shape and, provided shape_mode was not nil, shape_mode has been filled with the mode data, NONSHAPEABLE_WINDOW if the Window given is not a shaped window, or WINDOW_LACKS_SHAPE if the Window given is a shapeable window currently lacking a shape.
See also:
WindowShapeMode
setWindowShape()