Window/Window.h
1
2//
3// SFML - Simple and Fast Multimedia Library
4// Copyright (C) 2007-2023 Laurent Gomila (laurent@sfml-dev.org)
5//
6// This software is provided 'as-is', without any express or implied warranty.
7// In no event will the authors be held liable for any damages arising from the use of this software.
8//
9// Permission is granted to anyone to use this software for any purpose,
10// including commercial applications, and to alter it and redistribute it freely,
11// subject to the following restrictions:
12//
13// 1. The origin of this software must not be misrepresented;
14// you must not claim that you wrote the original software.
15// If you use this software in a product, an acknowledgment
16// in the product documentation would be appreciated but is not required.
17//
18// 2. Altered source versions must be plainly marked as such,
19// and must not be misrepresented as being the original software.
20//
21// 3. This notice may not be removed or altered from any source distribution.
22//
24
25#ifndef SFML_WINDOW_H
26#define SFML_WINDOW_H
27
29// Headers
31#include <SFML/Window/Export.h>
32#include <SFML/Window/Event.h>
33#include <SFML/Window/VideoMode.h>
34#include <SFML/Window/WindowHandle.h>
35#include <SFML/Window/Types.h>
36#include <SFML/System/Vector2.h>
37
38
43typedef enum
44{
45 sfNone = 0,
46 sfTitlebar = 1 << 0,
47 sfResize = 1 << 1,
48 sfClose = 1 << 2,
49 sfFullscreen = 1 << 3,
50 sfDefaultStyle = sfTitlebar | sfResize | sfClose
51} sfWindowStyle;
52
53
58typedef enum
59{
60 sfContextDefault = 0,
61 sfContextCore = 1 << 0,
62 sfContextDebug = 1 << 2
63} sfContextAttribute;
64
65
70typedef struct
71{
72 unsigned int depthBits;
73 unsigned int stencilBits;
74 unsigned int antialiasingLevel;
75 unsigned int majorVersion;
76 unsigned int minorVersion;
77 sfUint32 attributeFlags;
78 sfBool sRgbCapable;
80
81
103CSFML_WINDOW_API sfWindow* sfWindow_create(sfVideoMode mode, const char* title, sfUint32 style, const sfContextSettings* settings);
104
126CSFML_WINDOW_API sfWindow* sfWindow_createUnicode(sfVideoMode mode, const sfUint32* title, sfUint32 style, const sfContextSettings* settings);
127
144CSFML_WINDOW_API sfWindow* sfWindow_createFromHandle(sfWindowHandle handle, const sfContextSettings* settings);
145
152CSFML_WINDOW_API void sfWindow_destroy(sfWindow* window);
153
166CSFML_WINDOW_API void sfWindow_close(sfWindow* window);
167
180CSFML_WINDOW_API sfBool sfWindow_isOpen(const sfWindow* window);
181
195CSFML_WINDOW_API sfContextSettings sfWindow_getSettings(const sfWindow* window);
196
212CSFML_WINDOW_API sfBool sfWindow_pollEvent(sfWindow* window, sfEvent* event);
213
231CSFML_WINDOW_API sfBool sfWindow_waitEvent(sfWindow* window, sfEvent* event);
232
241CSFML_WINDOW_API sfVector2i sfWindow_getPosition(const sfWindow* window);
242
254CSFML_WINDOW_API void sfWindow_setPosition(sfWindow* window, sfVector2i position);
255
267CSFML_WINDOW_API sfVector2u sfWindow_getSize(const sfWindow* window);
268
276CSFML_WINDOW_API void sfWindow_setSize(sfWindow* window, sfVector2u size);
277
285CSFML_WINDOW_API void sfWindow_setTitle(sfWindow* window, const char* title);
286
294CSFML_WINDOW_API void sfWindow_setUnicodeTitle(sfWindow* window, const sfUint32* title);
295
308CSFML_WINDOW_API void sfWindow_setIcon(sfWindow* window, unsigned int width, unsigned int height, const sfUint8* pixels);
309
317CSFML_WINDOW_API void sfWindow_setVisible(sfWindow* window, sfBool visible);
318
331CSFML_WINDOW_API void sfWindow_setVerticalSyncEnabled(sfWindow* window, sfBool enabled);
332
340CSFML_WINDOW_API void sfWindow_setMouseCursorVisible(sfWindow* window, sfBool visible);
341
355CSFML_WINDOW_API void sfWindow_setMouseCursorGrabbed(sfWindow* window, sfBool grabbed);
356
375CSFML_WINDOW_API void sfWindow_setMouseCursor(sfWindow* window, const sfCursor* cursor);
376
390CSFML_WINDOW_API void sfWindow_setKeyRepeatEnabled(sfWindow* window, sfBool enabled);
391
403CSFML_WINDOW_API void sfWindow_setFramerateLimit(sfWindow* window, unsigned int limit);
404
415CSFML_WINDOW_API void sfWindow_setJoystickThreshold(sfWindow* window, float threshold);
416
434CSFML_WINDOW_API sfBool sfWindow_setActive(sfWindow* window, sfBool active);
435
448CSFML_WINDOW_API void sfWindow_requestFocus(sfWindow* window);
449
460CSFML_WINDOW_API sfBool sfWindow_hasFocus(const sfWindow* window);
461
473CSFML_WINDOW_API void sfWindow_display(sfWindow* window);
474
489CSFML_WINDOW_API sfWindowHandle sfWindow_getSystemHandle(const sfWindow* window);
490
491
492#endif // SFML_WINDOW_H
Structure defining the window's creation settings.
sfUint32 attributeFlags
The attribute flags to create the context with.
unsigned int depthBits
Bits of the depth buffer.
unsigned int stencilBits
Bits of the stencil buffer.
unsigned int majorVersion
Major number of the context version to create.
unsigned int minorVersion
Minor number of the context version to create.
unsigned int antialiasingLevel
Level of antialiasing.
sfBool sRgbCapable
Whether the context framebuffer is sRGB capable.
2-component vector of integers
Definition Vector2.h:39
2-component vector of unsigned integers
Definition Vector2.h:50
sfVideoMode defines a video mode (width, height, bpp, frequency) and provides functions for getting m...
Definition VideoMode.h:42
sfEvent defines a system event and its parameters
Definition Event.h:221