Vulkan2D
2D renderer written in C using Vulkan and SDL2
|
Forward declares struct typedefs. More...
#include <vulkan/vulkan.h>
#include <stdbool.h>
Go to the source code of this file.
Data Structures | |
struct | VK2DVertexColour |
Vertex data for rendering shapes. More... | |
struct | VK2DVertex3D |
Vertex data for 3D models. More... | |
struct | VK2DUniformBufferObject |
The VP buffer. More... | |
struct | VK2DShaderPushBuffer |
Push buffer for user shaders. More... | |
struct | VK2DPushBuffer |
Buffer passed per-model via push constants. More... | |
struct | VK2D3DPushBuffer |
Push buffer used for 3D models. More... | |
struct | VK2DShadowsPushBuffer |
Push buffer used for hardware-accelerated shadows. More... | |
struct | VK2DConfiguration |
User configurable settings. More... | |
struct | VK2DStartupOptions |
Startup options that dictate some basic VK2D stuff. More... | |
struct | VK2DRendererConfig |
User configurable settings. More... | |
struct | VK2DCameraSpec |
Camera information. More... | |
struct | VK2DRendererLimits |
Renderer limitations for the host. More... | |
struct | VK2DDrawInstance |
Represents the data you need for each element in an instanced draw. More... | |
struct | VK2DDrawCommand |
Represents a user's draw command which will later be processed into an instance. More... | |
struct | VK2DInstancedPushBuffer |
A push buffer for an instanced draw. More... | |
struct | VK2DComputePushBuffer |
Push buffer for the sprite batch compute shader. More... | |
struct | VK2DShadowObjectInfo |
Info for the shadow environment to keep track of. More... | |
struct | VK2DAssetLoad |
Information needed to queue an asset loading off-thread. More... | |
Forward declares struct typedefs.
enum VK2DAssetState |
enum VK2DAssetType |
Types of assets.
enum VK2DBlendMode |
Blend modes that can be used to render if VK2D_GENERATE_BLEND_MODES is enabled.
The blend modes are kind of limited because very few people need more than these, but if you require a different blend mode there is only 3 steps to adding it:
bm_Max
VK2D_BLEND_MODES
array in BlendModes.henum VK2DCameraState |
The state a camera is in.
enum VK2DCameraType |
enum VK2DFilterType |
enum VK2DMSAA |
Multisampling detail.
While Vulkan does technically support 64 samples per pixel, there exists no device in the hardware database that supports it. Higher values look smoother but have a bigger impact on performance. Should you request an msaa larger than the device supports the maximum supported msaa is used.
enum VK2DPipelineType |
Types of graphics pipelines.
enum VK2DResult |
enum VK2DScreenMode |
How to present images.
This is system dependent and its possible for a system to not support sm_Immediate or sm_TripleBuffer. While it is technically possible to not support VSync, the Vulkan spec states it must be supported and the hardware database agrees with that so VK2D assumes VSync is always supported. Should you request a mode that is not available, the option will default to sm_Vsync.
enum VK2DShaderStage |
enum VK2DStatus |
Status codes for logging/error reporting.
enum VK2DVertexType |
Describes what kind of vertices are in use.