44 class GraphicsSession;
61 m_args.lookup = lookup;
65 return m_last_update_time;
76 m_pipelines.add(pipline);
88 RLock _checkout(
const UUID&
id,
bool wait_until_ready);
89 void checkin(
const UUID&
id);
90 bool renderNeedsUpdate()
const;
The equivelent of std::vector but with a bit more control. The basic array unit of the library.
Definition Buffer.hpp:56
Used by Viewports to signal they are rendering and we should not be performing an Update.
Definition GraphicsUpdater.h:109
GraphicsUpdater * m_updater
Definition GraphicsUpdater.h:134
CheckoutLock(const CheckoutLock &checkout)=delete
~CheckoutLock()
Definition GraphicsUpdater.h:124
UUID m_id
Definition GraphicsUpdater.h:135
RLock m_lock
Definition GraphicsUpdater.h:136
CheckoutLock(GraphicsUpdater *updater, bool wait_until_ready, UUID id=Constant< UUID >::Invalid)
Definition GraphicsUpdater.h:111
CheckoutLock(CheckoutLock &&checkout)
Definition GraphicsUpdater.h:117
bool isCheckedOut()
Definition GraphicsUpdater.h:129
A core class where all Design Objects including models, materials, and geometries are stored....
Definition DesignObjectLookup.h:65
An object that will be call update, each time the lookup is updated.
Definition DesignObjectUpdateTarget.h:10
A hash-based key-value store, useful for quick associative lookups. Key features include:
Definition Dictionary.h:61
Provides a modifiable pointer that has shared ownership of a dynamically allocated object.
Definition Pointer.hpp:320
Provides consistent interface to handle errors through the throw expression. All exceptions generated...
Definition Exception.hpp:47
A GraphicsPipeline is a set of resources that are chained together to correctly render something.
Definition GraphicsPipeline.h:47
Options that are used for performing an update on a Graphics Engine call.
Definition GraphicsUpdateArguments.h:43
Responsible for updating resources or layouts of data in-between calls to render.
Definition GraphicsUpdater.h:49
void addPipeline(GraphicsPipeline *pipline)
Definition GraphicsUpdater.h:73
bool hasManager(const UUID &id)
void setExceptionCallback(const std::function< void(const Exception &)> &callback)
Definition GraphicsUpdater.h:83
void update(GraphicsUpdateArguments &args)
void addManager(const UUID &id, Renderer *renderer)
std::function< void(const Exception &)> m_exception_callback
Definition GraphicsUpdater.h:95
CheckoutLock checkout(const UUID &id, bool wait_until_ready)
GraphicsUpdater(DesignObjectLookup *lookup, const DynamicPointer< GraphicsDevice > &device, ProgressInfo *log=nullptr)
bool m_grab_setup
Definition GraphicsUpdater.h:103
void removePipeline(GraphicsPipeline *pipline)
GraphicsUpdateArguments m_args
Definition GraphicsUpdater.h:100
Dictionary< UUID, bool > needs_update
Definition GraphicsUpdater.h:97
void update(DesignObjectLookup *lookup, Time time) override
void setLog(ProgressInfo *log)
Definition GraphicsUpdater.h:55
Buffer< GraphicsPipeline * > m_pipelines
Definition GraphicsUpdater.h:101
DynamicPointer< GraphicsDevice > m_device
Definition GraphicsUpdater.h:94
void setLookup(DesignObjectLookup *lookup)
Definition GraphicsUpdater.h:59
volatile uint04 m_total_checked_out_count
Definition GraphicsUpdater.h:96
std::mutex m_critical_section
Definition GraphicsUpdater.h:102
void removeManager(const UUID &id)
static GraphicsUpdater * DefaultUpdater(DesignObjectLookup *lookup, ProgressInfo *log, DynamicPointer< GraphicsDevice > device)
Time lastUpdateTime() const
Definition GraphicsUpdater.h:63
void setIsGrabSetup(bool grab_setup)
Time m_last_update_time
Definition GraphicsUpdater.h:99
Dictionary< UUID, Renderer * > m_renderers
Definition GraphicsUpdater.h:98
CheckoutLock tryCheckout(const UUID &id, bool wait_until_ready)
GraphicsUpdateArguments & args()
Definition GraphicsUpdater.h:79
const DynamicPointer< GraphicsDevice > & device() const
Definition GraphicsUpdater.h:72
A light-weight base class for Log that allows processes to update, without the need for additional in...
Definition ProgressInfo.hpp:48
Used to lock a particular variable for reading. Any number of readers can be created when no write lo...
Definition RWLock.h:91
An object that renders a specific Camera object, typically run on a different thread than the main UI...
Definition Renderer.h:52
Represents a timestamp with utilities for manipulation and conversion.
Definition Time.h:54
A universally unique identifier (UUID) is a 128-bit number used to identify information in computer s...
Definition UUID.h:60
Used to lock a particular variable for writing. Only one write lock can be created when no read locks...
Definition RWLock.h:115
constexpr bool IsInvalid(const t_type &value)
Query if 'value' is valid or invalid. Invalid values should return invalid if used for calculations o...
Definition BaseFunctions.hpp:170
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:96
Defines for a given type (such as sint04, fltp08, UUID, etc) a maximum, minimum, and reserved 'invali...
Definition BaseValues.hpp:233