anchor.diff:      driverdata: Pointer;         {**< driver-specific data, initialize to 0 *}
     end;
   
  +  {* Define the SDL window-shaper structure *}
  +  PSDL_WindowShaper = ^TSDL_WindowShaper;
  +  TSDL_WindowShaper = record
  +    {* The window associated with the shaper *}
  +    window: PSDL_Window;
  +
  +    {* The user's specified coordinates for the window, for once we give it a shape. *}
  +    userx,usery: UInt32;
  +
  +    {* The parameters for shape calculation. *}
  +    mode: TSDL_WindowShapeMode;
  +
  +    {* Has this window been assigned a shape? *}
  +    hasshape: TSDL_Bool;
  +
  +    driverdata: Pointer;
  +  end;
  +
  +  PSDL_WindowUserData = ^TSDL_WindowUserData;
  +  TSDL_WindowUserData = record
  +    name: PAnsiChar;
  +    data: Pointer;
  +    next: PSDL_WindowUserData;
  +  end;
  +
  +  {* Define the SDL window structure, corresponding to toplevel windows *}
  +  TSDL_Window = record
  +    magic: Pointer;
  +    id: UInt32;
  +    title: PAnsiChar;
  +    x,y: SInt32;
  +    w,h: SInt32;
  +    min_w, min_h: SInt32;
  +    max_w, max_h: SInt32;
  +    flags: UInt32;
  +
  +    {* Stored position and size for windowed mode * }
  +    windowed: TSDL_Rect;
  +
  +    fullscreen_mode: TSDL_DisplayMode;
  +
  +    brightness: Float;
  +    gamma: PUInt16;
  +    saved_gamma: PUInt16;  {* (just offset into gamma) *}
  +
  +    surface: PSDL_Surface;
  +    surface_valid: TSDL_Bool;
  +
  +    shaper: PSDL_WindowShaper;
  +
  +    data: PSDL_WindowUserData;
  +
  +    driverdata: Pointer;
  +
  +    prev: PSDL_Window;
  +    next: PSDL_Window;
  +  end;
  +
  +  {**
  +   * 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 NULL to check whether the window has a shape.
  +   *
  +   *  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.
  +   *
  +   *  SDL_WindowShapeMode
  +   *  SDL_SetWindowShape
  +   *}
  +function SDL_GetShapedWindowMode(window: PSDL_Window; shape_mode: TSDL_WindowShapeMode): SInt32 cdecl; external {$IFDEF GPC} name 'SDL_GetShapedWindowMode' {$ELSE} SDL_LibName {$ENDIF};
  +
  +  {**
  +   * 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.
  +   *
  +   *  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.
  +   *
  +   *  SDL_WindowShapeMode
  +   *  SDL_GetShapedWindowMode.
  +   *}
  +function SDL_SetWindowShape(window: PSDL_Window; shape: PSDL_Surface; shape_mode: PSDL_WindowShapeMode): SInt32 cdecl; external {$IFDEF GPC} name 'SDL_SetWindowShape' {$ELSE} SDL_LibName {$ENDIF};
  +
  +  {**
  +   *  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, ::SDL_WINDOWPOS_CENTERED, or
  +   *               ::SDL_WINDOWPOS_UNDEFINED.
  +   *   y     The y position of the window, ::SDL_WINDOWPOS_CENTERED, or
  +   *               ::SDL_WINDOWPOS_UNDEFINED.
  +   *   w     The width of the window.
  +   *   h     The height of the window.
  +   *   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.
  +   *
  +   *   The window created, or NULL if window creation failed.
  +   *
  +   *  SDL_DestroyWindow()
  +   *}
  +function SDL_CreateShapedWindow(title: PAnsiChar; x: UInt32; y: UInt32; w: UInt32; h: UInt32; flags: UInt32): PSDL_Window cdecl; external {$IFDEF GPC} name 'SDL_CreateShapedWindow' {$ELSE} SDL_LibName {$ENDIF};
  +
  +  {**
  +   * Return whether the given window is a shaped window.
  +   *
  +   *  window The window to query for being shaped.
  +   *
  +   *  SDL_TRUE if the window is a window that can be shaped, SDL_FALSE if the window is unshaped or NULL.
  +   *  SDL_CreateShapedWindow
  +   *}
  +function SDL_IsShapedWindow(window: PSDL_Window): TSDL_Bool cdecl; external {$IFDEF GPC} name 'SDL_IsShapedWindow' {$ELSE} SDL_LibName {$ENDIF};
  +
     {**
      *  The type used to identify a window
  -   *  
  +   *
      *   SDL_CreateWindow()
      *   SDL_CreateWindowFrom()
      *   SDL_DestroyWindow()
  
positive.code:    *   SDL_ShowWindow()
     *}
  
    //typedef struct SDL_Window SDL_Window;
  
  const
    {**
     *  The flags on a window
     *  
     *   SDL_GetWindowFlags()
     *}
  
  
negative.code: {
    Changelog:
    ----------
    v.1.22-Alpha; 24.07.2013: Added "sdl_shape.h" and TSDL_Window
                              (and ordered the translated header list ^^)
    v.1.21-Alpha; 23.07.2013: Added TSDL_Error
    v.1.20-Alpha; 19.07.2013: Added "sdl_timer.h"
    v.1.10-Alpha; 09.07.2013: Added "sdl_render.h"
  