1 # This file is part of NIT (http://www.nitlanguage.org).
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 # Abstract display services
21 import display_linux
is conditional
(linux
)
22 import display_android
is conditional
(android
)
23 import display_ios
is conditional
(ios
)
25 # Should Gamnit be more verbose?
26 fun debug_gamnit
: Bool do return false
28 # General display class, is sized and drawable
31 # Width of the display, in pixels
32 fun width
: Int is abstract
34 # Height of the display, in pixels
35 fun height
: Int is abstract
37 # Aspect ratio of the screen, `width / height`
38 fun aspect_ratio
: Float do return width
.to_f
/ height
.to_f
40 # Is the cursor locked et the center of the screen?
41 var lock_cursor
= false is writable
43 # Is the cursor visible?
45 # Only affects the desktop implementations.
46 var show_cursor
: Bool = true is writable
48 # Number of bits used for the red value in the color buffer
49 fun red_bits
: Int do return 8
51 # Number of bits used for the green value in the color buffer
52 fun green_bits
: Int do return 8
54 # Number of bits used for the blue value in the color buffer
55 fun blue_bits
: Int do return 8
57 # Prepare this display
59 # The implementation varies per platform.
62 # Close this display and free underlying resources
64 # The implementation varies per platform.
67 # Flip the display buffers
69 # The implementation varies per platform.
72 # Loop on available events and feed them back to the app
74 # The implementation varies per platform.
75 fun feed_events
do end
77 # Extensions to OpenGL ES 2.0 supported by the current configuration
78 var gl_extensions
: Array[String] is lazy
do return glGetString
(gl_EXTENSIONS
).split
(' ')