1 | //************************************ bs::framework - Copyright 2018 Marko Pintera **************************************// |
2 | //*********** Licensed under the MIT license. See LICENSE.md for full terms. This notice is not to be removed. ***********// |
3 | #pragma once |
4 | |
5 | namespace bs |
6 | { |
7 | /** @addtogroup Utility-Engine |
8 | * @{ |
9 | */ |
10 | |
11 | /** Available cursor types. */ |
12 | enum class CursorType |
13 | { |
14 | Arrow, |
15 | ArrowDrag, |
16 | ArrowLeftRight, |
17 | Wait, |
18 | IBeam, |
19 | SizeNESW, |
20 | SizeNS, |
21 | SizeNWSE, |
22 | SizeWE, |
23 | Deny, |
24 | |
25 | // Keep at the end |
26 | Count |
27 | }; |
28 | |
29 | /** Type of scaling modes for GUI images. */ |
30 | enum class TextureScaleMode |
31 | { |
32 | StretchToFit, /**< Image will stretch non-uniformly in all dimensions in order to cover the assigned area fully. */ |
33 | ScaleToFit, /**< Image will scale uniformly until one dimension is aligned with the assigned area. Remaining dimension might have empty space. */ |
34 | CropToFit, /**< Image will scale uniformly until both dimensions are larger or aligned with the assigned area. Remaining dimension might be cropped. */ |
35 | RepeatToFit /**< Image will keep its original size, but will repeat in order to fill the assigned area. */ |
36 | }; |
37 | |
38 | /** Types of GUI meshes that can be output by GUI elements. */ |
39 | enum class GUIMeshType |
40 | { |
41 | /** Mesh containing a set of vertices as 2D position followed by 2D UV coordinates. */ |
42 | Triangle, |
43 | /** Mesh containing a set of vertices as 2D position followed by vertex indices. */ |
44 | Line |
45 | }; |
46 | |
47 | /** Determines type of data to display on the profiler overlay. */ |
48 | enum class ProfilerOverlayType |
49 | { |
50 | /** Display CPU samples on the overlay. */ |
51 | CPUSamples, |
52 | |
53 | /** Display GPU samples on the overlay. */ |
54 | GPUSamples |
55 | }; |
56 | |
57 | /** @} */ |
58 | } |