NDEVR
API Documentation
GLESGraphicsPipeline.h
1#pragma once
2#include "../Headers/GLESGraphicsDevice.h"
3#include "../Headers/GLESGraphicsSession.h"
4#include <NDEVR/GraphicsPipeline.h>
5#include <NDEVR/GraphicsUpdateArguments.h>
6namespace NDEVR
7{
8
16 {
17 public:
22 , m_device(session->device().as<GraphicsDevice>())
23 , m_window(nullptr)
24 , m_session(session)
25 {}
26
30 virtual bool runCommand(GraphicsUpdateArguments&) override
31 {
32 return true;
33 }
34
35 virtual void commit(GraphicsUpdateArguments&) override {};
42 virtual bool createPipeline(GraphicsUpdateArguments& args) override
43 {
44 //args.setModelRecreation(false);
46 return true;
47 };
48 //virtual void setDevice(const DynamicPointer<GraphicsDevice>& instance) = 0;
51 virtual const ConstPointer<GraphicsDevice>& device() const override { return m_device; }
54 virtual const DynamicPointer<GraphicsDevice>& device() override { return m_device; }
57 virtual bool hasCommand() const override
58 {
59 return true;
60 };
61
63 virtual void drawFrame(GraphicsUpdateArguments& args) override;
65 virtual void ensureLastRenderComplete() override
66 {
67
68 }
69
70 virtual void cleanup() override
71 {
72
73 }
74
76 virtual void setWindowInstance(WindowInstance* instance) override;
78 virtual void cleanResources() override
79 {
80
81 }
82
83 virtual void init(GraphicsUpdateArguments&) override
84 {
85
86 }
91
92 };
93}
Provides a constant, unmodifiable pointer that has shared ownership of a dynamically allocated object...
Definition Pointer.hpp:276
A hash-based key-value store, useful for quick associative lookups.
Definition Dictionary.h:64
Provides a modifiable pointer that has shared ownership of a dynamically allocated object.
Definition Pointer.hpp:356
virtual const ConstPointer< GraphicsDevice > & device() const override
Returns the graphics device as a const pointer.
GLESGraphicsPipeline(GLESGraphicsSession *session)
Constructs a GLESGraphicsPipeline for the given session.
virtual void cleanResources() override
No-op resource cleanup.
DynamicPointer< GraphicsDevice > m_device
The graphics device.
virtual void updateUniformBuffer(GraphicsUpdateArguments &) override
Updates uniform buffers for the current viewport.
virtual void setWindowInstance(WindowInstance *instance) override
Sets the window instance that this pipeline renders into.
virtual void ensureLastRenderComplete() override
No-op to ensure the last render is complete.
virtual void init(GraphicsUpdateArguments &) override
No-op initialization.
virtual bool hasCommand() const override
Checks whether there is a pending command.
virtual ~GLESGraphicsPipeline()
Destructor.
virtual void cleanup() override
No-op cleanup.
virtual bool runCommand(GraphicsUpdateArguments &) override
No-op command runner.
GLESGraphicsWindow * m_window
The target rendering window.
virtual bool createPipeline(GraphicsUpdateArguments &args) override
Finishes pipeline recreation.
Dictionary< uint04, Time > m_last_update_times
Per-viewport last update timestamps.
virtual void drawFrame(GraphicsUpdateArguments &args) override
Draws one frame for this pipeline's viewport.
virtual const DynamicPointer< GraphicsDevice > & device() override
Returns the graphics device as a mutable pointer.
virtual void commit(GraphicsUpdateArguments &) override
No-op commit.
GLESGraphicsSession * m_session
The owning graphics session.
Creates and manages the resources necessary for converting a DesignObjectLookup into 3D rendered data...
The core Window used to render a viewport with OpenGL.
A physical or virtual device used with the NDEVR Rendering Engine.
A GraphicsPipeline is a set of resources that are chained together to correctly render something.
Options that are used for performing an update on a Graphics Engine call.
void finishPipelineRecreation()
Marks pipeline recreation as complete.
Contains core information about a Viewport.
The primary namespace for the NDEVR SDK.