Rasterfarm-SDK
|
#include "utils.h"
#include "circulator.h"
#include "types.h"
#include "memorypool.h"
#include "vector.h"
#include "raster.h"
#include <vulkan/vulkan.h>
#include <SPIRV/GlslangToSpv.h>
Classes | |
class | Implementation |
struct | Implementation::SwapChainImage |
Macros | |
#define | VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU) |
#define | VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU) |
#define | BASE_FRAMEBUFFER_HANDLE 0 |
Typedefs | |
typedef UnorderedSet< PipelineState > | StateUnorderedSet |
typedef uint | TextureUnit |
typedef VertexMemory * | VertexBufferHandle |
typedef UniformMemory * | UniformBufferHandle |
typedef VkSampler | UniformSamplerHandle |
typedef ImageMemory * | TextureHandle |
typedef VkFramebuffer | FrameBufferHandle |
typedef VkRenderPass | RenderBufferHandle |
typedef VkFilter | TextureFilterHandle |
typedef glslang::TShader * | ShaderHandle |
typedef glslang::TProgram * | ProgramHandle |
typedef VkViewport | Viewport |
typedef VkRect2D | Scissor |
Enumerations | |
enum | PolygonMode { FILL = VK_POLYGON_MODE_FILL , LINE = VK_POLYGON_MODE_LINE , POINT = VK_POLYGON_MODE_POINT } |
enum | DrawPrimitive { TRIANGLES = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST , TRIANGLE_FAN = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN , TRIANGLE_STRIP = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP , LINES = VK_PRIMITIVE_TOPOLOGY_LINE_LIST , LINE_LOOP = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY , LINE_STRIP = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP , POINTS = VK_PRIMITIVE_TOPOLOGY_POINT_LIST , PATCH = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST } |
enum | DrawUsageHint { STATIC = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER , DYNAMIC = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC } |
enum | RenderBufferBit : uint { COLOR_BUFFER = 0x0001 , DEPTH_BUFFER = 0x0002 , STENCIL_BUFFER = 0x0004 } |
enum | PipelineState : uint { NO_STATE = 0x0000 , STENCIL_TEST = 0x0001 , DEPTH_TEST = 0x0002 , DEPTH_BOUNDS_TEST = 0x0004 , DEPTH_CLAMP = 0x0008 , DEPTH_BIAS = 0x0010 , SCISSOR_TEST = 0x0020 , COLOR_BLEND = 0x0040 , CULL_FACE = 0x0080 , RASTERIZER_DISCARD = 0x0100 , SAMPLE_ALPHA_TO_COVERAGE = 0x0200 , SAMPLE_COVERAGE = 0x0400 , ORIENT_PRIMITIVES_CW = 0x0800 , DEPTH_WRITE = 0x1000 , PIPELINE_STATE_LAST = 0x2000 } |
enum | CullFace { CULL_NO_FACE = VK_CULL_MODE_NONE , CULL_BACK_FACE = VK_CULL_MODE_BACK_BIT , CULL_FRONT_FACE = VK_CULL_MODE_FRONT_BIT , CULL_FRONT_BACK_FACE = VK_CULL_MODE_FRONT_AND_BACK } |
enum | TextureType { QUAD_MAP = VK_IMAGE_VIEW_TYPE_2D , CUBE_MAP = VK_IMAGE_VIEW_TYPE_CUBE } |
enum | ShaderType { VERTEX_SHADER = EShLangVertex , FRAGMENT_SHADER = EShLangFragment , GEOMETRY_SHADER = EShLangGeometry , COMPUTE_SHADER = EShLangCompute , RAY_GENERATOR_SHADER = EShLangRayGen , TESSELLATION_CONTROL_SHADER = EShLangTessControl , TESSELLATION_EVALUATION_SHADER = EShLangTessEvaluation } |
enum | TextureParameter { MINIFY_FILTER = 0 , MAGNIFY_FILTER } |
enum | TextureWrap { CLAMP_TO_EDGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE , CLAMP_TO_BORDER = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER , REPEAT = VK_SAMPLER_ADDRESS_MODE_REPEAT , MIRRORED_REPEAT = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT } |
enum | TextureFilterSetting { NEAREST = VK_FILTER_NEAREST , LINEAR = VK_FILTER_LINEAR , NEAREST_MIPMAP_NEAREST = VK_SAMPLER_MIPMAP_MODE_NEAREST , LINEAR_MIPMAP_LINEAR = VK_SAMPLER_MIPMAP_MODE_LINEAR } |
enum | PixelFormat { UNDEFINED = VK_FORMAT_UNDEFINED , ALPHA = VK_FORMAT_R32_UINT , LUMINANCE = VK_FORMAT_R8_UNORM , LUMINANCE_ALPHA = VK_FORMAT_R8G8_UNORM , BGR = VK_FORMAT_B8G8R8_UNORM , RGB = VK_FORMAT_R8G8B8_UNORM , BGRA = VK_FORMAT_B8G8R8A8_UNORM , RGBA = VK_FORMAT_R8G8B8A8_UNORM , DEPTH = VK_FORMAT_D32_SFLOAT , DEPTH_16 = VK_FORMAT_D16_UNORM , DEPTH_24 = VK_FORMAT_D24_UNORM_S8_UINT } |
enum | BufferType { BYTE = 0 , UNSIGNED_BYTE , SHORT , UNSIGNED_SHORT , UNSIGNED_SHORT_5_6_5 , UNSIGNED_SHORT_5_5_5_1 , UNSIGNED_SHORT_4_4_4_4 , INT , UNSIGNED_INT , FLOAT } |
enum | BlendFactor { BLEND_ZERO = VK_BLEND_FACTOR_ZERO , BLEND_ONE = VK_BLEND_FACTOR_ONE , BLEND_SRC_COLOR = VK_BLEND_FACTOR_SRC_COLOR , BLEND_ONE_MINUS_SRC_COLOR = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR , BLEND_DST_COLOR = VK_BLEND_FACTOR_DST_COLOR , BLEND_ONE_MINUS_DST_COLOR = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR , BLEND_SRC_ALPHA = VK_BLEND_FACTOR_SRC_ALPHA , BLEND_ONE_MINUS_SRC_ALPHA = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA , BLEND_DST_ALPHA = VK_BLEND_FACTOR_DST_ALPHA , BLEND_ONE_MINUS_DST_ALPHA = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA } |
enum | TextureCubeFace { POSITIVE_X = CUBE_MAP , NEGATIVE_X , POSITIVE_Y , NEGATIVE_Y , POSITIVE_Z , NEGATIVE_Z } |
enum | VertexOrientation { CLOCKWISE = VK_FRONT_FACE_CLOCKWISE , COUNTERCLOCKWISE = VK_FRONT_FACE_COUNTER_CLOCKWISE } |
enum | { TEXTURE_UNIT_BASE = 0 , INVALID_TEXTURE_UNIT = -1 } |
enum | StencilOperation { STENCIL_OPERATION_KEEP = VK_STENCIL_OP_KEEP , STENCIL_OPERATION_ZERO = VK_STENCIL_OP_ZERO , STENCIL_OPERATION_REPLACE = VK_STENCIL_OP_REPLACE , STENCIL_OPERATION_INC_AND_CLAMP = VK_STENCIL_OP_INCREMENT_AND_CLAMP , STENCIL_OPERATION_DEC_AND_CLAMP = VK_STENCIL_OP_DECREMENT_AND_CLAMP , STENCIL_OPERATION_INVERT = VK_STENCIL_OP_INVERT , STENCIL_OPERATION_INC_AND_WRAP = VK_STENCIL_OP_INCREMENT_AND_WRAP , STENCIL_OPERATION_DEC_AND_WRAP = VK_STENCIL_OP_INCREMENT_AND_WRAP } |
enum | CompareOperation { COMPARE_COMPARISON_NEVER = VK_COMPARE_OP_NEVER , COMPARE_COMPARISON_LESS = VK_COMPARE_OP_LESS , COMPARE_COMPARISON_EQUAL = VK_COMPARE_OP_EQUAL , COMPARE_COMPARISON_LESS_OR_EQUAL = VK_COMPARE_OP_LESS_OR_EQUAL , COMPARE_COMPARISON_GREATER = VK_COMPARE_OP_GREATER , COMPARE_COMPARISON_NOT_EQUAL = VK_COMPARE_OP_NOT_EQUAL , COMPARE_COMPARISON_GREATER_OR_EQUAL = VK_COMPARE_OP_GREATER_OR_EQUAL , STENCIL_COMPARISON_ALWAYS = VK_COMPARE_OP_ALWAYS } |
enum | OutputAttachment { COLOR_ATTACHMENT = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL , DEPTH_ATTACHMENT = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL , STENCIL_ATTACHMENT = VK_IMAGE_LAYOUT_UNDEFINED } |
enum | BufferTarget { RENDER_BUFFER = VK_OBJECT_TYPE_RENDER_PASS , FRAME_BUFFER = VK_OBJECT_TYPE_FRAMEBUFFER } |
enum | ShaderBufferType { VERTEX = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT , INDEX = VK_BUFFER_USAGE_INDEX_BUFFER_BIT , UNIFORM = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT } |
enum | UniformDescriptorType { BUFFER = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER , SAMPLER = VK_DESCRIPTOR_TYPE_SAMPLER , STORAGE = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER , TEXEL = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER , IMAGE_SAMPLER = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER , SAMPLED_IMAGE = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE , INPUT_ATTACHMENT = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT } |
#define BASE_FRAMEBUFFER_HANDLE 0 |
#define VK_API_VERSION_MAJOR | ( | version | ) | (((uint32_t)(version) >> 22U) & 0x7FU) |
#define VK_API_VERSION_MINOR | ( | version | ) | (((uint32_t)(version) >> 12U) & 0x3FFU) |
typedef VkFramebuffer FrameBufferHandle |
typedef glslang::TProgram* ProgramHandle |
typedef VkRenderPass RenderBufferHandle |
typedef VkRect2D Scissor |
typedef glslang::TShader* ShaderHandle |
typedef UnorderedSet< PipelineState > StateUnorderedSet |
typedef VkFilter TextureFilterHandle |
typedef ImageMemory* TextureHandle |
typedef uint TextureUnit |
typedef UniformMemory* UniformBufferHandle |
typedef VkSampler UniformSamplerHandle |
typedef VertexMemory* VertexBufferHandle |
typedef VkViewport Viewport |
enum BlendFactor |
enum BufferTarget |
enum BufferType |
enum CompareOperation |
enum CullFace |
enum DrawPrimitive |
enum DrawUsageHint |
enum OutputAttachment |
enum PipelineState : uint |
The first 3 states reserved to indicate which render-pass a given pipeline is rendering-to.
enum PixelFormat |
enum PolygonMode |
enum RenderBufferBit : uint |
enum ShaderBufferType |
enum ShaderType |
enum StencilOperation |
enum TextureCubeFace |
enum TextureFilterSetting |
enum TextureParameter |
enum TextureType |
enum TextureWrap |
enum VertexOrientation |