note
	description: "A GAME_WINDOW that can be used directly with OpenGL."
	author: "Louis Marchand"
	date: "Tue, 29 Dec 2015 19:06:42 +0000"
	revision: "1.0"

class interface
	GAME_WINDOW_GL

create 
	make

feature -- Access

	gl_context_valid: BOOLEAN
			-- The contex of Current is correctly created

	gl_drawable_size: TUPLE [width: INTEGER_32; height: INTEGER_32]
			-- Return the drawable area dimension of Current.
			-- Ti differ of size when we're rendering to a high-DPI drawable
			-- Note: use that with glViewport
		require
				gl_context_valid

	gl_version: TUPLE [major: INTEGER_32; minor: INTEGER_32]
			-- The version of OpenGL that Current use.
			-- Default depend on the OpenGL library in the system
		require
				gl_context_valid

	gl_red_size: INTEGER_32
			-- Minimum number of bits for the red channel of the color buffer.
			-- Defaults to 3
		require
				gl_context_valid

	gl_green_size: INTEGER_32
			-- Minimum number of bits for the green channel of the color buffer.
			-- Defaults to 3
		require
				gl_context_valid

	gl_blue_size: INTEGER_32
			-- Minimum number of bits for the blue channel of the color buffer.
			-- Defaults to 2
		require
				gl_context_valid

	gl_alpha_size: INTEGER_32
			-- Minimum number of bits for the alpha channel of the color buffer.
			-- Defaults to 0
		require
				gl_context_valid

	gl_buffer_size: INTEGER_32
			-- Minimum number of bits for the frame buffer.
			-- Defaults to 0
		require
				gl_context_valid

	is_gl_double_buffer_enabled: BOOLEAN
			-- True if Current is double buffered. False if not.
			-- Default: True
		require
				gl_context_valid

	gl_depth_size: INTEGER_32
			-- Minimum number of bits for the depth buffer.
			-- Defaults to 16
		require
				gl_context_valid

	gl_stencil_size: INTEGER_32
			-- Minimum number of bits for the stencil buffer.
			-- Defaults to 0
		require
				gl_context_valid

	gl_accumulation_red_size: INTEGER_32
			-- Minimum number of bits for the red channel of the accumulation buffer.
			-- Defaults to 0
		require
				gl_context_valid

	gl_accumulation_green_size: INTEGER_32
			-- Minimum number of bits for the green channel of the accumulation buffer.
			-- Defaults to 0
		require
				gl_context_valid

	gl_accumulation_blue_size: INTEGER_32
			-- Minimum number of bits for the blue channel of the accumulation buffer.
			-- Defaults to 0
		require
				gl_context_valid

	gl_accumulation_alpha_size: INTEGER_32
			-- Minimum number of bits for the alpha channel of the accumulation buffer.
			-- Defaults to 0
		require
				gl_context_valid

	is_gl_stereo_enabled: BOOLEAN
			-- True if Current used quad buffer stereo rendering. False if not.
			-- Default: False
		require
				gl_context_valid

	is_gl_multi_sample_enabled: BOOLEAN
			-- True if Current used multisample anti-aliasing. False if not
			-- Default: False
		require
				gl_context_valid

	gl_multi_sample_count: INTEGER_32
			-- If multisample anti-aliasing is enabled (see: is_gl_multi_sample_enabled),
			-- return the number of samples used around the current pixel
			-- Default: 0
		require
				gl_context_valid
				is_gl_multi_sample_enabled

	is_gl_software_rendering_enable: BOOLEAN
			-- Current uses software rendering.
			-- Default: False
		require
				gl_context_valid

	is_gl_hardware_rendering_enable: BOOLEAN
			-- Current uses hardware rendering.
			-- Default: True
		require
				gl_context_valid

	is_gl_debug_enabled: BOOLEAN
			-- Put the GL into a "debug" mode. May cause performance lost
			-- Ignored on system that does not support it.
			-- Default: False
		require
				gl_context_valid

	is_gl_forward_compatibility_enabled: BOOLEAN
			-- If True, no deprecated context functionality will be supported
			-- Can cause a performance gain
			-- Only available for OpenGL 3.0 and newer
			-- Ignored on system that does not support it.
			-- Default: False
		require
				gl_context_valid

	is_gl_robust_access_enabled: BOOLEAN
			-- If True, Internal OpenGL context will use more robust API.
			-- Ignored on system that does not support it.
			-- Can cause a performance lost
			-- Default: False
		require
				gl_context_valid

	is_gl_reset_isolation_enabled: BOOLEAN
			-- True to enable more rebust driver or hardware failure reset management.
			-- Ignored on system that does not support it.
			-- Default: False
		require
				gl_context_valid

	is_gl_core_profile_enabled: BOOLEAN
			-- True to enable the core context profile.
			-- In this profile, deprecated conext funtionnalities will be disabled;
			-- Default: Depend on the system
		require
				gl_context_valid

	is_gl_compatibility_profile_enabled: BOOLEAN
			-- True to enable the compatibility context profile.
			-- In this profile, deprecated conext funtionnalities will be enabled;
			-- Default: Depend on the system
		require
				gl_context_valid

	is_gl_es_profile_enabled: BOOLEAN
			-- True to enable the GLES context profile.
			-- In this profile, only the GLES subset of the context functionnalities will be enabled
			-- Default: Depend on the system
		require
				gl_context_valid

	is_gl_context_sharing_enabled: BOOLEAN
			-- True to enable OpenGL Context Sharing
			-- Default: False
		require
				gl_context_valid

	is_gl_srgb_request_enabled: BOOLEAN
			-- True to request sRGB rendering
			-- Default: False
		require
				gl_context_valid

	update
			-- Print the visual buffer modification to the screen
		require else
				gl_context_valid
	
feature -- Implementation

	dispose
			-- Close
	
end -- class GAME_WINDOW_GL

Generated by ISE EiffelStudio