Tatooine
Public Types | Public Member Functions | Public Attributes | List of all members
tatooine::rendering::first_person_window Struct Reference

#include <first_person_window.h>

Inheritance diagram for tatooine::rendering::first_person_window:
[legend]
Collaboration diagram for tatooine::rendering::first_person_window:
[legend]

Public Types

using parent_type = gl::window
 

Public Member Functions

 first_person_window (std::size_t width=800, std::size_t height=600)
 
virtual ~first_person_window ()=default
 
auto width () const
 
auto height () const
 
auto camera_controller () -> auto &
 
auto camera_controller () const -> auto const &
 
template<typename Event >
auto render_loop (Event &&event)
 
template<typename F >
auto update (F &&f, std::chrono::duration< double > const &dt)
 
auto projection_matrix () const
 
auto view_matrix () const
 
auto on_resize (int w, int h) -> void override
 
auto on_key_pressed (gl::key k) -> void override
 
- Public Member Functions inherited from tatooine::gl::window
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::size_t m_width
 
std::size_t m_height
 
struct camera_controller< float > m_camera_controller
 
std::chrono::time_point< std::chrono::system_clock > m_time
 
- Public Attributes inherited from tatooine::gl::window
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
 

Member Typedef Documentation

◆ parent_type

Constructor & Destructor Documentation

◆ first_person_window()

tatooine::rendering::first_person_window::first_person_window ( std::size_t  width = 800,
std::size_t  height = 600 
)
inline

◆ ~first_person_window()

virtual tatooine::rendering::first_person_window::~first_person_window ( )
virtualdefault

Member Function Documentation

◆ camera_controller() [1/2]

◆ camera_controller() [2/2]

◆ height()

auto tatooine::rendering::first_person_window::height ( ) const
inline

◆ on_key_pressed()

auto tatooine::rendering::first_person_window::on_key_pressed ( gl::key  k) -> void
inlineoverridevirtual

Reimplemented from tatooine::gl::window.

Reimplemented in tatooine::flowexplorer::window.

◆ on_resize()

auto tatooine::rendering::first_person_window::on_resize ( int  w,
int  h 
) -> void
inlineoverridevirtual

Reimplemented from tatooine::gl::window.

◆ projection_matrix()

auto tatooine::rendering::first_person_window::projection_matrix ( ) const
inline

◆ render_loop()

template<typename Event >
auto tatooine::rendering::first_person_window::render_loop ( Event &&  event)
inline

◆ update()

template<typename F >
auto tatooine::rendering::first_person_window::update ( F &&  f,
std::chrono::duration< double > const &  dt 
)
inline

◆ view_matrix()

auto tatooine::rendering::first_person_window::view_matrix ( ) const
inline

◆ width()

auto tatooine::rendering::first_person_window::width ( ) const
inline

Member Data Documentation

◆ m_camera_controller

struct camera_controller< float > tatooine::rendering::first_person_window::m_camera_controller

◆ m_height

std::size_t tatooine::rendering::first_person_window::m_height

◆ m_time

std::chrono::time_point<std::chrono::system_clock> tatooine::rendering::first_person_window::m_time
Initial value:
=
std::chrono::system_clock::now()

◆ m_width

std::size_t tatooine::rendering::first_person_window::m_width

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