Class gui_t

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

class gui_t : public wt::preview_interface_t

Graphical user interface that handles scene loading and rendering preview.

Public Types

using renderer_results_callback_t = std::function<void(const scene_t&, const ads::ads_t&, const scene::render_result_t&, bool)>

Callback that should process renderer results. 4th boolean parameter indicates if the results are intermediate results. Callback may be called from different threads.

Public Functions

gui_t(wt_context_t &ctx, std::unique_ptr<bootstrap_data_t> scene_bootstrapper, renderer_results_callback_t write_out_render_results)
inline virtual ~gui_t() noexcept
inline virtual unsigned preview_update_rate_limit_factor() const noexcept override

Indicates a desired minimal interval from clients calling update().

Indicates a desired rate limiting factor from clients calling update().

virtual void update(const std::string &preview_id, sensor::developed_scalar_film_t<2> &&surface, const f_t spp_completed, const sensor::response::tonemap_t *tonemap = nullptr) const override

Updates the preview image. Can be called from any thread.

virtual void update(const std::string &preview_id, sensor::developed_polarimetric_film_t<2> &&surface, const f_t spp_completed, const sensor::response::tonemap_t *tonemap = nullptr) const override

Updates the preview image (polarimetric input). Can be called from any thread.

virtual bool polarimetric_preview() const noexcept override

Returns TRUE if the preview is able to process polarimetric inputs. Must be thread safe.

inline virtual bool available() const noexcept override

Returns TRUE if the preview is available to process new input. Must be thread safe.

Public Static Functions

template<typename Bootstrap>
static inline auto launch(wt_context_t &context, const std::filesystem::path &scene_path, const scene::loader::defaults_defines_t &scene_loader_defines, renderer_results_callback_t write_out_render_results)

Launches the GUI and takes control of the scene and context.

struct bootstrap_data_t

Public Members

std::unique_ptr<scene::scene_bootstrap_generic_t> ptr
std::atomic<f_t> scene_loading_progress = 0
std::atomic<f_t> resource_loading_progress = 0
std::atomic<f_t> ads_construction_progress = 0
std::shared_ptr<std::string> ads_construction_status
mutable std::mutex ads_construction_status_mutex