Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Latest commit

 

History

History
140 lines (123 loc) · 5.17 KB

SDL_shape.h

File metadata and controls

140 lines (123 loc) · 5.17 KB
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
SDL - Simple DirectMedia Layer
Copyright (C) 2010 Eli Gottlieb
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Eli Gottlieb
eligottlieb@gmail.com
*/
May 27, 2010
May 27, 2010
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef _SDL_shape_h
#define _SDL_shape_h
#include "SDL_stdinc.h"
#include "SDL_pixels.h"
#include "SDL_rect.h"
#include "SDL_surface.h"
#include "SDL_video.h"
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
/* *INDENT-OFF* */
extern "C" {
/* *INDENT-ON* */
#endif
Jun 10, 2010
Jun 10, 2010
40
41
/** \file SDL_shape.h
*
Jun 22, 2010
Jun 22, 2010
42
* Header file for the shaped window API.
Jun 10, 2010
Jun 10, 2010
43
44
*/
Jul 19, 2010
Jul 19, 2010
45
46
47
48
#define SDL_NONSHAPEABLE_WINDOW -1
#define SDL_INVALID_SHAPE_ARGUMENT -2
#define SDL_WINDOW_LACKS_SHAPE -3
Jun 22, 2010
Jun 22, 2010
50
* \brief Create a window that can be shaped with the specified position, dimensions, and flags.
51
52
53
54
55
56
57
58
59
*
* \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:
May 23, 2010
May 23, 2010
60
* ::SDL_WINDOW_OPENGL, ::SDL_WINDOW_INPUT_GRABBED,
61
62
* ::SDL_WINDOW_SHOWN, ::SDL_WINDOW_RESIZABLE,
* ::SDL_WINDOW_MAXIMIZED, ::SDL_WINDOW_MINIMIZED,
May 23, 2010
May 23, 2010
63
* ::SDL_WINDOW_BORDERLESS is always set, and ::SDL_WINDOW_FULLSCREEN is always unset.
Jul 19, 2010
Jul 19, 2010
65
* \return The window created, or NULL if window creation failed.
66
67
68
*
* \sa SDL_DestroyWindow()
*/
May 25, 2010
May 25, 2010
69
extern DECLSPEC SDL_Window * SDLCALL SDL_CreateShapedWindow(const char *title,unsigned int x,unsigned int y,unsigned int w,unsigned int h,Uint32 flags);
Jun 10, 2010
Jun 10, 2010
71
72
73
74
75
/**
* \brief Return whether the given window is a shaped window.
*
* \param window The window to query for being shaped.
*
Jun 22, 2010
Jun 22, 2010
76
* \return SDL_TRUE if the window is a window that can be shaped, SDL_FALSE if the window is unshaped or NULL.
Jun 10, 2010
Jun 10, 2010
77
78
* \sa SDL_CreateShapedWindow
*/
Jun 22, 2010
Jun 22, 2010
79
extern DECLSPEC SDL_bool SDLCALL SDL_IsShapedWindow(const SDL_Window *window);
Jun 10, 2010
Jun 10, 2010
80
81
/** \brief An enum denoting the specific type of contents present in an SDL_WindowShapeParams union. */
Jun 22, 2010
Jun 22, 2010
82
83
84
85
86
87
typedef enum {
/** \brief The default mode, a binarized alpha cutoff of 1. */
ShapeModeDefault,
/** \brief A binarized alpha cutoff with a given integer value. */
ShapeModeBinarizeAlpha
} WindowShapeMode;
Jun 10, 2010
Jun 10, 2010
88
89
90
91
92
93
94
95
/** \brief A union containing parameters for shaped windows. */
typedef union {
/** \brief a cutoff alpha value for binarization of the window shape's alpha channel. */
Uint8 binarizationCutoff;
} SDL_WindowShapeParams;
/** \brief A struct that tags the SDL_WindowShapeParams union with an enum describing the type of its contents. */
typedef struct SDL_WindowShapeMode {
Jun 10, 2010
Jun 10, 2010
96
/** \brief The mode of these window-shape parameters. */
Jun 10, 2010
Jun 10, 2010
97
WindowShapeMode mode;
Jun 10, 2010
Jun 10, 2010
98
/** \brief Window-shape parameters. */
Jun 10, 2010
Jun 10, 2010
99
100
101
102
SDL_WindowShapeParams parameters;
} SDL_WindowShapeMode;
/**
Jun 20, 2010
Jun 20, 2010
103
* \brief Set the shape and parameters of a shaped window.
Jun 10, 2010
Jun 10, 2010
104
105
*
* \param window The shaped window whose parameters should be set.
Jun 22, 2010
Jun 22, 2010
106
107
* \param shape A surface encoding the desired shape for the window.
* \param shapeMode The parameters to set for the shaped window.
Jun 10, 2010
Jun 10, 2010
108
*
Jul 19, 2010
Jul 19, 2010
109
110
* \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.
Jun 10, 2010
Jun 10, 2010
111
112
*
* \sa SDL_WindowShapeMode
Jun 22, 2010
Jun 22, 2010
113
* \sa SDL_GetShapedWindowMode.
Jun 10, 2010
Jun 10, 2010
114
*/
Jun 22, 2010
Jun 22, 2010
115
extern DECLSPEC int SDLCALL SDL_SetWindowShape(SDL_Window *window,SDL_Surface *shape,SDL_WindowShapeMode *shapeMode);
Jun 10, 2010
Jun 10, 2010
116
117
/**
Jun 22, 2010
Jun 22, 2010
118
* \brief Get the shape parameters of a shaped window.
Jun 10, 2010
Jun 10, 2010
119
120
*
* \param window The shaped window whose parameters should be retrieved.
Jun 30, 2010
Jun 30, 2010
121
* \param shapeMode An empty shape-mode structure to fill, or NULL to check whether the window has a shape.
Jun 10, 2010
Jun 10, 2010
122
*
Jun 30, 2010
Jun 30, 2010
123
* \return 0 if the window has a shape and, provided shapeMode was not NULL, shapeMode has been filled with the mode
Jul 19, 2010
Jul 19, 2010
124
125
* 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.
Jun 10, 2010
Jun 10, 2010
126
127
*
* \sa SDL_WindowShapeMode
Jun 22, 2010
Jun 22, 2010
128
* \sa SDL_SetWindowShape
Jun 10, 2010
Jun 10, 2010
129
*/
Jun 22, 2010
Jun 22, 2010
130
extern DECLSPEC int SDLCALL SDL_GetShapedWindowMode(SDL_Window *window,SDL_WindowShapeMode *shapeMode);
Jun 10, 2010
Jun 10, 2010
131
May 27, 2010
May 27, 2010
132
133
134
135
136
137
138
139
140
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
/* *INDENT-OFF* */
}
/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_shape_h */