Interface to Vulkan.
More...
#include <VulkanRenderCmdSink.h>
|
enum | BlendFactor { kOne,
kSrcAlpha,
kOneMinusSrcAlpha
} |
|
enum | CompareOp {
kNever = VK_COMPARE_OP_NEVER,
kLess = VK_COMPARE_OP_LESS,
kEqual = VK_COMPARE_OP_EQUAL,
kLessOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL,
kGreater = VK_COMPARE_OP_GREATER,
kNotEqual = VK_COMPARE_OP_NOT_EQUAL,
kGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
kAlways = VK_COMPARE_OP_ALWAYS
} |
|
enum | CullMode { kFront,
kBack
} |
|
|
| ~VulkanRenderCmdSink () |
|
void | Init () |
| Initialise. More...
|
|
VertexBuffer * | CreateVertexBuffer () |
|
void | DestroyVertexBuffer (VertexBuffer *buffer) |
|
IndexBuffer * | CreateIndexBuffer () |
| Create IndexBuffer. More...
|
|
void | DestroyIndexBuffer (IndexBuffer *buffer) |
|
Texture * | CreateTexture () |
|
void | DestroyTexture (Texture *texture) |
|
Program * | CreateProgram () |
| Create shader program. More...
|
|
void | DestroyProgram (Program *program) |
| Destroy shader program. More...
|
|
void | UseProgram (Program *program) |
| Make program current. More...
|
|
RenderTarget * | CreateRenderTarget () |
|
void | DestroyRenderTarget (RenderTarget *target) |
|
void | SetTarget (RenderTarget *target) |
| Set render target. More...
|
|
RenderTarget * | GetTarget () |
|
void | SetBaseTarget (const IntVector4 &viewport, int renderTarget) |
|
TransformFeedback * | CreateTransformFeedback () |
|
void | DestroyTransformFeedback (TransformFeedback *feedback) |
|
void | SetBackgroundColor (float r, float g, float b, float a=1.0f) |
|
void | Clear (bool color=true, bool depth=true) |
| Clear current render target. More...
|
|
void | Draw (IndexBuffer *buffer, const IndexBufferInfo &info) |
| Draw indices. More...
|
|
void | Draw (TransformFeedback *transformFeedback, IndexBufferInfo::Mode mode) |
|
void | Draw (IndexBufferInfo::Mode mode, unsigned int count) |
| Draw vertices without indices. More...
|
|
void | ReadPixels (int x, int y, int width, int height, PixelFormat format, void *data) |
|
void | SetBlending (bool enable, BlendFactor sourceFactor=kSrcAlpha, BlendFactor destFactor=kOneMinusSrcAlpha) |
|
void | SetDepthState (bool depthTest, bool depthWrite, CompareOp compareOp=kLess) |
|
void | SetScissor (bool enable, int x=0, int y=0, int width=0, int height=0) |
|
void | SetRasterizationState (bool rasterizerDiscard, CullMode cullMode=kBack) |
|
Enumerator |
---|
kOne |
|
kSrcAlpha |
|
kOneMinusSrcAlpha |
|
Enumerator |
---|
kNever |
|
kLess |
|
kEqual |
|
kLessOrEqual |
|
kGreater |
|
kNotEqual |
|
kGreaterOrEqual |
|
kAlways |
|
molecular::gfx::VulkanRenderCmdSink::~VulkanRenderCmdSink |
( |
| ) |
|
void molecular::gfx::VulkanRenderCmdSink::Clear |
( |
bool |
color = true , |
|
|
bool |
depth = true |
|
) |
| |
Clear current render target.
Create shader program.
Call DestroyProgram after being finished with the program.
- See also
- DestroyProgram
- Todo:
- Return move-only type.
VertexBuffer* molecular::gfx::VulkanRenderCmdSink::CreateVertexBuffer |
( |
| ) |
|
|
inline |
void molecular::gfx::VulkanRenderCmdSink::DestroyIndexBuffer |
( |
IndexBuffer * |
buffer | ) |
|
|
inline |
void molecular::gfx::VulkanRenderCmdSink::DestroyRenderTarget |
( |
RenderTarget * |
target | ) |
|
void molecular::gfx::VulkanRenderCmdSink::DestroyTexture |
( |
Texture * |
texture | ) |
|
void molecular::gfx::VulkanRenderCmdSink::DestroyTransformFeedback |
( |
TransformFeedback * |
feedback | ) |
|
|
inline |
void molecular::gfx::VulkanRenderCmdSink::DestroyVertexBuffer |
( |
VertexBuffer * |
buffer | ) |
|
|
inline |
Draw indices.
Requires an active program.
- See also
- UseProgram
Draw vertices without indices.
Requires active program.
RenderTarget* molecular::gfx::VulkanRenderCmdSink::GetTarget |
( |
| ) |
|
|
inline |
void molecular::gfx::VulkanRenderCmdSink::Init |
( |
| ) |
|
Initialise.
This must be called in the renderer thread.
void molecular::gfx::VulkanRenderCmdSink::ReadPixels |
( |
int |
x, |
|
|
int |
y, |
|
|
int |
width, |
|
|
int |
height, |
|
|
PixelFormat |
format, |
|
|
void * |
data |
|
) |
| |
void molecular::gfx::VulkanRenderCmdSink::SetBackgroundColor |
( |
float |
r, |
|
|
float |
g, |
|
|
float |
b, |
|
|
float |
a = 1.0f |
|
) |
| |
void molecular::gfx::VulkanRenderCmdSink::SetBaseTarget |
( |
const IntVector4 & |
viewport, |
|
|
int |
renderTarget |
|
) |
| |
Registers the currently bound framebuffer as the base target. In the simplest case this will be 0, which is the screen.
void molecular::gfx::VulkanRenderCmdSink::SetDepthState |
( |
bool |
depthTest, |
|
|
bool |
depthWrite, |
|
|
CompareOp |
compareOp = kLess |
|
) |
| |
void molecular::gfx::VulkanRenderCmdSink::SetScissor |
( |
bool |
enable, |
|
|
int |
x = 0 , |
|
|
int |
y = 0 , |
|
|
int |
width = 0 , |
|
|
int |
height = 0 |
|
) |
| |
Set render target.
Pass nullptr to render to the base target. The base target can be specified with SetBaseTarget.
Make program current.
Also call before setting uniforms.
The documentation for this class was generated from the following files: