Tatooine
Public Member Functions | Public Attributes | Private Member Functions | List of all members
tatooine::gl::window Class Reference

#include <window.h>

Inheritance diagram for tatooine::gl::window:
[legend]
Collaboration diagram for tatooine::gl::window:
[legend]

Public Member Functions

auto imgui_render_backend () const -> auto const &
 
auto imgui_render_backend () -> auto &
 
 window (const std::string &title, size_t width, size_t height)
 
 ~window ()
 
void make_current ()
 
void release ()
 
void refresh ()
 
void render_imgui ()
 
void swap_buffers ()
 
void check_events ()
 
void on_key_pressed (key) override
 
void on_key_released (key) override
 
void on_button_pressed (button) override
 
void on_button_released (button) override
 
void on_wheel_up () override
 
void on_wheel_down () override
 
void on_wheel_left () override
 
void on_wheel_right () override
 
void on_cursor_moved (double, double) override
 
void on_resize (int, int) override
 
auto get () -> auto &
 
auto get () const -> auto const &
 
auto should_close () const
 
auto primary_screen_resolution () const
 
template<typename F >
void do_async (F &&f)
 
- Public Member Functions inherited from tatooine::gl::window_notifier
void notify_key_pressed (key k)
 
void notify_key_released (key k)
 
void notify_button_pressed (button b)
 
void notify_button_released (button b)
 
void notify_wheel_up ()
 
void notify_wheel_down ()
 
void notify_wheel_left ()
 
void notify_wheel_right ()
 
void notify_cursor_moved (double x, double y)
 
void notify_resize (int width, int height)
 
void notify_close ()
 
void add_listener (window_listener &l)
 
template<typename Event >
void add_resize_event (Event &&event)
 
template<typename Event >
void add_key_pressed_event (Event &&event)
 
template<typename Event >
void add_key_released_event (Event &&event)
 
template<typename Event >
void add_button_pressed_event (Event &&event)
 
template<typename Event >
void add_button_released_event (Event &&event)
 
template<typename Event >
void add_cursor_moved_event (Event &&event)
 
template<typename Event >
void add_wheel_up_event (Event &&event)
 
template<typename Event >
void add_wheel_down_event (Event &&event)
 
- Public Member Functions inherited from tatooine::gl::window_listener
virtual void on_cursor_moved (double, double)
 
virtual void on_resize (int, int)
 
virtual void on_close ()
 
virtual void on_key_pressed (key)
 
virtual void on_key_released (key)
 
virtual void on_button_pressed (button)
 
virtual void on_button_released (button)
 
virtual void on_wheel_up ()
 
virtual void on_wheel_down ()
 
virtual void on_wheel_left ()
 
virtual void on_wheel_right ()
 

Public Attributes

std::unique_ptr< glfw::windowm_glfw_window
 
std::unique_ptr< struct imgui_render_backendm_imgui_render_backend
 
std::list< std::thread > m_async_tasks
 
std::vector< std::list< std::thread >::iterator > m_joinable_async_tasks
 
std::mutex m_async_tasks_mutex
 
- Public Attributes inherited from tatooine::gl::window_notifier
std::vector< window_listener * > m_window_listeners
 
std::vector< std::unique_ptr< base_holder > > m_events
 

Private Member Functions

void setup (const std::string &title, size_t width, size_t height)
 
void init_imgui (size_t width, size_t height)
 
void deinit_imgui ()
 

Constructor & Destructor Documentation

◆ window()

tatooine::gl::window::window ( const std::string &  title,
size_t  width,
size_t  height 
)

◆ ~window()

tatooine::gl::window::~window ( )

Member Function Documentation

◆ check_events()

void tatooine::gl::window::check_events ( )

◆ deinit_imgui()

void tatooine::gl::window::deinit_imgui ( )
private

◆ do_async()

template<typename F >
void tatooine::gl::window::do_async ( F &&  f)
inline

◆ get() [1/2]

auto tatooine::gl::window::get ( ) -> auto&
inline

◆ get() [2/2]

auto tatooine::gl::window::get ( ) const -> auto const&
inline

◆ imgui_render_backend() [1/2]

auto tatooine::gl::window::imgui_render_backend ( ) -> auto &
inline

◆ imgui_render_backend() [2/2]

auto tatooine::gl::window::imgui_render_backend ( ) const -> auto const &
inline

◆ init_imgui()

void tatooine::gl::window::init_imgui ( size_t  width,
size_t  height 
)
private

◆ make_current()

void tatooine::gl::window::make_current ( )

◆ on_button_pressed()

void tatooine::gl::window::on_button_pressed ( button  )
overridevirtual

Reimplemented from tatooine::gl::button_listener.

Reimplemented in tatooine::flowexplorer::window.

◆ on_button_released()

void tatooine::gl::window::on_button_released ( button  )
overridevirtual

Reimplemented from tatooine::gl::button_listener.

Reimplemented in tatooine::flowexplorer::window.

◆ on_cursor_moved()

void tatooine::gl::window::on_cursor_moved ( double  ,
double   
)
overridevirtual

Reimplemented from tatooine::gl::window_listener.

Reimplemented in tatooine::flowexplorer::window.

◆ on_key_pressed()

void tatooine::gl::window::on_key_pressed ( key  )
overridevirtual

◆ on_key_released()

void tatooine::gl::window::on_key_released ( key  )
overridevirtual

Reimplemented from tatooine::gl::keyboard_listener.

◆ on_resize()

void tatooine::gl::window::on_resize ( int  ,
int   
)
overridevirtual

◆ on_wheel_down()

void tatooine::gl::window::on_wheel_down ( )
overridevirtual

Reimplemented from tatooine::gl::button_listener.

◆ on_wheel_left()

void tatooine::gl::window::on_wheel_left ( )
overridevirtual

Reimplemented from tatooine::gl::button_listener.

◆ on_wheel_right()

void tatooine::gl::window::on_wheel_right ( )
overridevirtual

Reimplemented from tatooine::gl::button_listener.

◆ on_wheel_up()

void tatooine::gl::window::on_wheel_up ( )
overridevirtual

Reimplemented from tatooine::gl::button_listener.

◆ primary_screen_resolution()

auto tatooine::gl::window::primary_screen_resolution ( ) const
inline

◆ refresh()

void tatooine::gl::window::refresh ( )

◆ release()

void tatooine::gl::window::release ( )

◆ render_imgui()

void tatooine::gl::window::render_imgui ( )

◆ setup()

void tatooine::gl::window::setup ( const std::string &  title,
size_t  width,
size_t  height 
)
private

◆ should_close()

auto tatooine::gl::window::should_close ( ) const
inline

◆ swap_buffers()

void tatooine::gl::window::swap_buffers ( )

Member Data Documentation

◆ m_async_tasks

std::list<std::thread> tatooine::gl::window::m_async_tasks

◆ m_async_tasks_mutex

std::mutex tatooine::gl::window::m_async_tasks_mutex

◆ m_glfw_window

std::unique_ptr<glfw::window> tatooine::gl::window::m_glfw_window

◆ m_imgui_render_backend

std::unique_ptr<struct imgui_render_backend> tatooine::gl::window::m_imgui_render_backend

◆ m_joinable_async_tasks

std::vector<std::list<std::thread>::iterator> tatooine::gl::window::m_joinable_async_tasks

The documentation for this class was generated from the following file: