52    class i_display : 
public i_units_context
 
   55        struct failed_to_get_monitor_dpi : std::runtime_error { failed_to_get_monitor_dpi() : 
std::runtime_error(
"neogfx::i_display::failed_to_get_monitor_dpi") {} };
 
   56        struct fullscreen_not_active : std::logic_error { fullscreen_not_active() : 
std::logic_error(
"neogfx::i_display::fullscreen_not_active: Fullscreen not currently active") {} };
 
   57        struct failed_to_enter_fullscreen : std::runtime_error { failed_to_enter_fullscreen(std::string 
const& aReason) : 
 
   58            std::runtime_error(
"neogfx::i_displayy::failed_to_enter_fullscreen: Failed to enter fullscreen, reason: " + aReason) {} };
 
   59        struct failed_to_leave_fullscreen : std::runtime_error { failed_to_leave_fullscreen(std::string 
const& aReason) :
 
   60            std::runtime_error(
"neogfx::i_displayy::failed_to_leave_fullscreen: Failed to leave fullscreen, reason: " + aReason) {} };
 
   62        virtual ~i_display() = 
default;
 
   64        virtual uint32_t index() 
const = 0;
 
   66        virtual const i_device_metrics& metrics() 
const = 0;
 
   67        virtual void update_dpi() = 0;
 
   69        virtual bool is_fullscreen() 
const = 0;
 
   70        virtual const video_mode& fullscreen_video_mode() 
const = 0;
 
   71        virtual void enter_fullscreen(
const video_mode& aVideoMode) = 0;
 
   72        virtual void leave_fullscreen() = 0;
 
   75        virtual window_placement default_window_placement() 
const = 0;
 
   77        virtual color read_pixel(
const point& aPosition) 
const = 0;
 
#define end_declare_enum(enumName)
#define declare_enum_string(enumName, enumEnumerator)
#define begin_declare_enum(enumName)