note description: "Controller of the game library." author: "Louis Marchand" date: "Sat, 28 Mar 2015 03:42:16 +0000" revision: "2.1" class interface GAME_LIBRARY_CONTROLLER create default_create, make_no_parachute feature -- Subs Systems enable_video -- Unable the video functionalities require sdl_controller_enable_video_already_enabled: not is_video_enable ensure sdl_controller_enable_video_enabled: is_video_enable disable_video -- Disable the video functionalities require sdl_controller_disable_video_not_enabled: is_video_enable ensure sdl_controller_disable_video_disabled: not is_video_enable is_video_enable: BOOLEAN assign set_is_video_enable -- Return true if the text surface functionnality is enabled. set_is_video_enable (a_value: BOOLEAN) -- Assign to is_video_enable the value of a_value ensure is_assign: is_video_enable ~ a_value enable_joystick -- Unable the joystick functionality require sdl_controller_enable_joystick_already_enabled: not is_joystick_enable ensure sdl_controller_enable_joystick_enabled: is_joystick_enable disable_joystick -- Disable the joystick fonctionality require sdl_controller_disable_joystick_not_enabled: is_joystick_enable ensure sdl_controller_disable_joystick_disabled: not is_joystick_enable is_joystick_enable: BOOLEAN assign set_is_joystick_enable -- Return true if the joystick functionnality is enabled. set_is_joystick_enable (a_value: BOOLEAN) -- Assign to is_joystick_enable the value of a_value ensure is_assign: is_joystick_enable ~ a_value enable_haptic -- Unable the haptic (force feedback) functionality. -- Often use for Controller rumble. require sdl_controller_enable_haptic_already_enabled: not is_haptic_enable ensure sdl_controller_enable_haptic_enabled: is_haptic_enable disable_haptic -- Disable the haptic (force feedback) fonctionality require sdl_controller_disable_haptic_not_enabled: is_haptic_enable ensure sdl_controller_disable_haptic_disabled: not is_haptic_enable is_haptic_enable: BOOLEAN assign set_is_haptic_enable -- Return true if the haptic (force feedback) functionnality is enabled. set_is_haptic_enable (a_value: BOOLEAN) -- Assign to is_haptic_enable the value of a_value ensure is_assign: is_haptic_enable ~ a_value enable_events -- Unable the events functionality. require sdl_controller_enable_events_already_enabled: not is_events_enable ensure sdl_controller_enable_events_enabled: is_events_enable disable_events -- Disable the events fonctionality require sdl_controller_disable_events_not_enabled: is_events_enable ensure sdl_controller_disable_events_disabled: not is_events_enable is_events_enable: BOOLEAN assign set_is_events_enable -- Return true if the events functionnality is enabled. set_is_events_enable (a_value: BOOLEAN) -- Assign to is_events_enable the value of a_value ensure is_assign: is_events_enable ~ a_value feature -- Video methods renderer_drivers_count: INTEGER_32 -- Return the number of renderer driver. 0 if error. require video_enabled: is_video_enable renderer_drivers: LIST [GAME_RENDERER_DRIVER] -- All renderer driver of the system. 0 driver on error. require displays_is_video_enabled: is_video_enable displays_count: INTEGER_32 -- Return the number of display. 0 if error. require displays_count_is_video_enabled: is_video_enable displays: LIST [GAME_DISPLAY] -- All displays of the system. 0 display on error. require displays_is_video_enabled: is_video_enable windows: CHAIN_INDEXABLE_ITERATOR [GAME_WINDOW] -- Every GAME_WINDOW in the system. feature -- Mouse show_mouse_cursor -- Show the mouse cursor when the mouse is on a window created by the library. ensure show_mouse_cursor_valid: is_cursor_visible hide_mouse_cursor -- Don't show the mouse cursor when the mouse is on a window created by the library. ensure hide_mouse_cursor_valid: not is_cursor_visible is_cursor_visible: BOOLEAN assign set_is_cursor_visible -- Return true if the library is set to show the mous cursor when the mouse is on a window created by the library. set_is_cursor_visible (a_value: BOOLEAN) -- Assign to is_cursor_visible the value of a_value ensure is_assign: is_cursor_visible ~ a_value enable_relative_mouse -- Set the is_relative_mouse_enabled mode ensure is_assign: not has_error implies is_relative_mouse_enabled disable_relative_mouse -- Unset the is_relative_mouse_enabled mode ensure is_assign: not has_error implies not is_relative_mouse_enabled is_relative_mouse_enabled: BOOLEAN assign set_is_relative_mouse_enabled -- While Enabled, the cursor is hidden, and only relative motion events (delta_x and delta_y) -- will be delivered to the current window the mouse position will not change. -- Note: This function will flush any pending mouse motion. set_is_relative_mouse_enabled (a_value: BOOLEAN) -- Assign is_relative_mouse_enabled with the value of a_value ensure is_assign: not has_error implies is_relative_mouse_enabled ~ a_value cursor: GAME_CURSOR -- The GAME_CURSOR presently used in Current default_cursor: GAME_CURSOR -- The GAME_CURSOR used in the creation of Current set_cursor (a_cursor: GAME_CURSOR) -- Assign cursor with the value of a_cursor require cursor_valid: a_cursor.exists ensure is_assign: not has_error implies cursor ~ a_cursor redraw_cursor -- Redraw the cursor set_default_cursor -- Put back the default GAME_CURSOR feature -- Joystick methods joysticks: CHAIN_INDEXABLE_ITERATOR [GAME_JOYSTICK] -- Every GAME_JOYSTICK detected by Current require joysticks_is_joystick_enabled: is_joystick_enable update_joysticks_state -- Update the state of all opened joystick. This procedure is -- Called at each game loop instead you disable every joystick event -- with GAME_EVENTS_CONTROLLER.disable_joy_*_event or with -- GAME_EVENTS_CONTROLLER.disable_every_joy_events feature -- Haptic methods haptics: CHAIN_INDEXABLE_ITERATOR [GAME_HAPTIC_DEVICE] -- Every haptic devices on the system require haptic_is_haptic_enabled: is_haptic_enable refresh_haptics -- Update the haptics list (if haptics as been add or remove) -- Warning: This will close all opened haptics require controller_update_haptics_haptic_enabled: is_haptic_enable haptic_maximum_gain: INTEGER_32 assign set_haptic_maximum_gain -- The maximum gain used by haptics in the system. -- The GAME_HAPTIC.set_gain always take 0-100 -- gain value, but the real value is scaled require haptic_enabled: is_haptic_enable ensure result_valid: Result >= 0 and Result <= 100 set_haptic_maximum_gain (a_gain: INTEGER_32) -- Assign haptic_maximum_gain with the value of a_gain require haptic_enabled: is_haptic_enable gain_is_valid: a_gain >= 0 and a_gain <= 100 ensure is_assign: not has_error implies haptic_maximum_gain = a_gain feature -- Touch devices touch_device_count: INTEGER_32 -- The number of touch device detected on the system. -- Note: Not necessary the same as touch_devices.count -- because a touch device can have been added or remove -- since the creation of the touch_devices list. -- In that case, used refresh_touch_devices to update -- the touch_devices (all touch events will have to be -- reset) touch_devices: CHAIN_INDEXABLE_ITERATOR [GAME_TOUCH_DEVICE] -- Every finger touch device detected in he system. -- This list does not update itself, you have to call -- refresh_touch_devices to update it (all touch -- events will have to be reset) refresh_touch_devices -- Update the touch_devices list. Note that -- all touch events will have to be reset feature -- OpenGL is_gl_enabled: BOOLEAN -- The OpenGL library has been loaded enable_gl -- Load the OpenGL library require not_already_enabled: not is_gl_enabled video_must_be_loaded: is_video_enable enable_gl_from_file (a_file_name: READABLE_STRING_GENERAL) -- Load the OpenGL library contained in file at a_file_name require not_already_enabled: not is_gl_enabled video_must_be_loaded: is_video_enable file_valid: attached (create {RAW_FILE}.make_with_name (a_file_name)) as la_file and then (la_file.exists and la_file.is_access_readable) disable_gl -- Unload the OpenGL library require is_gl_enabled: is_gl_enabled feature -- Touch devices implementation Dollar_gesture_template_index: INTEGER_64 = -1 -- The internal index of the managed touch device feature -- Other methods library_variable (a_variable: READABLE_STRING_GENERAL): READABLE_STRING_GENERAL assign set_library_variable -- Retreive the internal variable a_variable or an empty text if it does not exist. set_library_variable (a_variable, a_value: READABLE_STRING_GENERAL) -- Assign the internal variable a_variable with the value a_value. events_controller: GAME_EVENTS_CONTROLLER -- Manage every internal events clear_all_events -- Clear every events set in the system update_events -- Execute the event polling and throw the event handeler execution for each event. delay (a_millisecond: NATURAL_32) -- Pause the execution for given time in millisecond. time_since_create: NATURAL_32 -- Number of millisecond since the initialisation of the library. launch -- Start the main loop. Used to get a Event-driven programming only. -- Don't forget to execute the method stop in an event handeler. launch_with_iteration_per_second (a_iteration_per_second: NATURAL_32) -- Start the main loop. Used to get a Event-driven programming only. -- Don't forget to execute the method stop in an event handeler. -- Set iteration_per_second to a_iteration_per_second before launching. launch_no_delay -- Start the main loop without any loop delay. Use it if you have -- a synchronisation system (like vsync) included inside the event handler -- Used to get a Event-driven programming only. -- Don't forget to execute the method stop in an event handler. iteration_per_second: NATURAL_32 assign set_iteration_per_second -- An approximation of the number of event loop iteration per second. -- Not used by launch_no_delay set_iteration_per_second (a_iteration_per_second: NATURAL_32) -- Set iteration_per_second to a_iteration_per_second -- Note that this is an aproximation. stop -- Stop the main loop quit_library -- Close the library. Must be used before the end of the application mouse_has_haptic: BOOLEAN -- Has the mouse have an internal haptic device mouse_haptic: GAME_HAPTIC_MOUSE -- The haptic device inside the mouse require mouse_has_haptic: mouse_has_haptic base_path: PATH -- The PATH of the executable. This PATH is not safe for writing file. get_preference_path (a_organisation, a_application_name: READABLE_STRING_GENERAL) -- Retreive the preference_path. Create the directory if it does not already exist. preference_path: PATH -- The PATH to save preference files. Is retreived (or created) by get_preference_path -- The directory pointed by this PATH should be writable -- Do not use the base_path to write files require path_retreived: is_preference_path_retreived is_preference_path_retreived: BOOLEAN -- Is preference_path has been correctly retreived by get_preference_path invariant is_singleton: Instance_count.item = 1 end -- class GAME_LIBRARY_CONTROLLER
Generated by ISE EiffelStudio