1// LAF OS Library
2// Copyright (c) 2018-2021 Igara Studio S.A.
3// Copyright (C) 2012-2015 David Capello
4//
5// This file is released under the terms of the MIT license.
6// Read LICENSE.txt for more information.
7
8#ifndef OS_CAPABILITIES_H_INCLUDED
9#define OS_CAPABILITIES_H_INCLUDED
10#pragma once
11
12namespace os {
13
14 enum class Capabilities {
15 // Supports the creation of multiple os::Window. If this is not
16 // set, the system supports just one display, like a phone device.
17 MultipleWindows = 1,
18
19 // When os::Window can be resized.
20 CanResizeWindow = 2,
21
22 // When we can change the window scale.
23 WindowScale = 4,
24
25 // When we can set the mouse cursor with a custom os::Surface
26 // using os::Window::makeMouseCursor()
27 CustomMouseCursor = 8,
28
29 // When GPU acceleration can be turned on.
30 // TODO this is being developed
31 GpuAccelerationSwitch = 16,
32
33 // When the platform support changing the color space of the
34 // window.
35 ColorSpaces = 32,
36
37 // Windows & Linux allow to the programmer to start the
38 // drag-window-to-resize-it loop from a os::Event:MouseDown, but
39 // macOS doesn't (macOS supports only start moving the window).
40 CanStartWindowResize = 64
41 };
42
43} // namespace os
44
45#endif
46