API Documentation
Loading...
Searching...
No Matches
GraphicsSession.h
Go to the documentation of this file.
1#pragma once
2#include "DLLInfo.h"
5#include "Base/Headers/UUID.h"
7namespace NDEVR
8{
9 class Model;
10 class Geometry;
11 class String;
12 class Material;
13 class Scene;
14 enum class PrimitiveProperty;
15 /**--------------------------------------------------------------------------------------------------
16 \brief A GraphicsPipeline that is responsible for setting up and rendering the resources of a DesignObjectLookup.
17 **/
19 {
20 public:
21 virtual ~GraphicsSession(){}
22 virtual void addModel(const UUID& object);
23 virtual void addCamera(const UUID& object);
24 virtual void addScene(const UUID& scene);
25 virtual void addMaterial(const UUID& material);
26 virtual void addGeometry(const UUID& geo);
27 virtual void readShader(const String& shader) = 0;
28 virtual void removeModel(const UUID& model);
29 virtual void removeMaterial(const UUID& material);
30 virtual void removeGeometry(const UUID& geo);
31 virtual void removeCamera(const UUID& camera);
33 virtual void addRenderObject(GraphicsUpdateArguments& args, Model& model);
34 virtual void addRenderObject(const Scene& scene, const Model& model, const Material& mat, const Geometry& mesh, PrimitiveProperty property) = 0;
36 virtual void postClearAll();
37 virtual UUID uuid() = 0;
38 protected:
41 bool m_needs_model_refresh = true;
42 bool m_needs_command_refresh = false;
43 bool m_needs_clear_all = false;
44 };
45}
#define NDEVR_GRAPHICS_API
Definition DLLInfo.h:56
The equivelent of std::vector but with a bit more control. The basic array unit of the library.
Definition Buffer.hpp:56
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
A core class within the model heirarchy containing vertex-based data (Usually 3D data) within a set c...
Definition Geometry.h:64
A GraphicsPipeline is a set of resources that are chained together to correctly render something.
Definition GraphicsPipeline.h:47
A GraphicsPipeline that is responsible for setting up and rendering the resources of a DesignObjectLo...
Definition GraphicsSession.h:19
virtual void removeMaterial(const UUID &material)
Dictionary< UUID, uint04 > m_added_models
Definition GraphicsSession.h:39
virtual void addMaterial(const UUID &material)
Buffer< UUID > m_added_cameras
Definition GraphicsSession.h:40
virtual void addRenderObject(const Scene &scene, const Model &model, const Material &mat, const Geometry &mesh, PrimitiveProperty property)=0
virtual void addRenderObject(GraphicsUpdateArguments &args, Model &model)
virtual void setupScene(GraphicsUpdateArguments &args)
virtual void readShader(const String &shader)=0
virtual UUID uuid()=0
virtual DynamicPointer< GraphicsPipeline > createRenderPipeline()=0
virtual void removeCamera(const UUID &camera)
virtual void addCamera(const UUID &object)
virtual void addGeometry(const UUID &geo)
virtual void removeModel(const UUID &model)
virtual void addScene(const UUID &scene)
virtual void removeGeometry(const UUID &geo)
virtual ~GraphicsSession()
Definition GraphicsSession.h:21
virtual void addModel(const UUID &object)
virtual void postClearAll()
Options that are used for performing an update on a Graphics Engine call.
Definition GraphicsUpdateArguments.h:43
Container responsible for storing and setting the appearance of a Model or Geometry within the NDEVR ...
Definition Material.h:51
A core class that represents a node on model heirarchy. This node may contain a Geometry or one or mo...
Definition Model.h:58
The root Model that is responsible for storing the underlying data for all Scene Models.
Definition Model.h:492
The core String class for the NDEVR API.
Definition String.h:69
A universally unique identifier (UUID) is a 128-bit number used to identify information in computer s...
Definition UUID.h:60
Definition ACIColor.h:37
PrimitiveProperty
Definition DesignObjectBase.h:44