NAP
irendertarget.h
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4 
5 #pragma once
6 
7 // Local Includes
8 #include "materialcommon.h"
9 
10 // External Includes
11 #include <utility/dllexport.h>
12 #include <glm/glm.hpp>
13 #include <vulkan/vulkan_core.h>
14 #include <color.h>
15 
16 namespace nap
17 {
21  class NAPAPI IRenderTarget
22  {
23  public:
27  virtual void beginRendering() = 0;
28 
32  virtual void endRendering() = 0;
33 
37  virtual const glm::ivec2 getBufferSize() const = 0;
38 
42  virtual void setClearColor(const RGBAColorFloat& color) = 0;
43 
47  virtual const RGBAColorFloat& getClearColor() const = 0;
48 
52  virtual ECullWindingOrder getWindingOrder() const = 0;
53 
57  virtual VkFormat getColorFormat() const = 0;
58 
62  virtual VkFormat getDepthFormat() const = 0;
63 
67  virtual VkRenderPass getRenderPass() const = 0;
68 
72  virtual VkSampleCountFlagBits getSampleCount() const = 0;
73 
77  virtual bool getSampleShadingEnabled() const = 0;
78  };
79 }
nap::IRenderTarget
Definition: irendertarget.h:21
nap::RGBAColor< float >
nap::ECullWindingOrder
ECullWindingOrder
Definition: materialcommon.h:30
nap
Definition: templateapp.h:17