Merge: lib/config: fix doc
[nit.git] / lib / gamnit / display.nit
index defd809..868b359 100644 (file)
 module display
 
 import ::glesv2
+import mnit::input
+
+import display_linux is conditional(linux)
+import display_android is conditional(android)
 
 # Should Gamnit be more verbose?
 fun debug_gamnit: Bool do return false
@@ -29,6 +33,26 @@ class GamnitDisplay
        # Height of the display, in pixels
        fun height: Int is abstract
 
+       # Aspect ratio of the screen, `width / height`
+       fun aspect_ratio: Float do return width.to_f / height.to_f
+
+       # Is the cursor locked et the center of the screen?
+       var lock_cursor = false is writable
+
+       # Is the cursor visible?
+       #
+       # Only affects the desktop implementations.
+       var show_cursor: Bool = true is writable
+
+       # Number of bits used for the red value in the color buffer
+       fun red_bits: Int do return 8
+
+       # Number of bits used for the green value in the color buffer
+       fun green_bits: Int do return 8
+
+       # Number of bits used for the blue value in the color buffer
+       fun blue_bits: Int do return 8
+
        # Prepare this display
        #
        # The implementation varies per platform.
@@ -43,4 +67,12 @@ class GamnitDisplay
        #
        # The implementation varies per platform.
        fun flip do end
+
+       # Loop on available events and feed them back to the app
+       #
+       # The implementation varies per platform.
+       fun feed_events do end
+
+       # Extensions to OpenGL ES 2.0 supported by the current configuration
+       var gl_extensions: Array[String] is lazy do return glGetString(gl_EXTENSIONS).split(' ')
 end