Rasterfarm-SDK
Loading...
Searching...
No Matches
Implementation Class Reference

#include <implementation.h>

Inheritance diagram for Implementation:
Engine::Application

Classes

struct  SwapChainImage
 

Public Types

typedef void GL_APIENTRY(* GLDeleteVertexArrays_func) (GLsizei n, const GLuint *arrays)
 
typedef void GL_APIENTRY(* GLGenVertexArrays_func) (GLsizei n, GLuint *arrays)
 
typedef GLboolean GL_APIENTRY(* GLIsVertexArray_func) (GLuint array)
 
typedef void GL_APIENTRY(* GLInvalidateFramebuffer_func) (GLenum target, GLsizei numAttachments, const GLenum *attachments)
 
typedef UnorderedMap< int, intImplementationIntegerMap
 
typedef UnorderedMap< int, HeapArray< int > > ImplementationIntegerArrayMap
 
typedef UnorderedMap< int, Vector2iImplementationIntegerPairMap
 
typedef UnorderedMap< int, Vector4iImplementationIntegerGroupMap
 
typedef UnorderedMap< int, floatImplementationFloatMap
 
typedef UnorderedMap< int, Vector2fImplementationFloatPairMap
 
typedef UnorderedMap< int, Vector4fImplementationFloatGroupMap
 

Public Member Functions

const StateUnorderedSetgetStateSet ()
 
void enableState (const StateUnorderedSet &stateSubSet)
 
void enableState (PipelineState glState)
 
void disableState (PipelineState glState)
 
const HeapArray< String > & getExtensions ()
 
void setDepthRange (float nearClip, float farClip)
 
void setPolygonOffset (float factor, float units)
 
void setLineWidth (float width)
 
void setSampleCoverage (float value, bool invert)
 
FrameBufferHandle getRenderingFrameBuffer ()
 
void bindFramebuffer (FrameBufferHandle frameBuffer)
 
void bindRenderbuffer (RenderBufferHandle renderBuffer)
 
void useProgram (Program *pProgram)
 
void setCullFaceMode (CullFace mode)
 
void setDepthTestFunction (CompareOperation function)
 
void setDepthTestWriteMask (GLuint mask)
 
void activeTextureUnit (GLuint textureUnit)
 
uint textureUnitSize ()
 
Handle createShaderProgram ()
 
void destroyShaderProgram (ProgramHandle handle)
 
ShaderHandle createShader (ShaderType type)
 
void destroyShader (ShaderHandle handle)
 
TextureHandle createTexture ()
 
HeapArray< TextureHandlecreateTextureArray (size_t size)
 
void destroyTexture (TextureHandle handle)
 
void destroyTextureArray (const HeapArray< TextureHandle > &array)
 
uint renderBufferSize ()
 
RenderBufferHandle createRenderBuffer ()
 
HeapArray< RenderBufferHandlecreateRenderBufferArray (size_t size)
 
void destroyRenderBuffer (RenderBufferHandle handle)
 
void destroyRenderBufferArray (const HeapArray< RenderBufferHandle > &array)
 
FrameBuffergetPresentFrameBuffer ()
 
FrameBufferHandle getPresentFrameBufferHandle ()
 
FrameBufferHandle createFrameBuffer ()
 
HeapArray< FrameBufferHandlecreateFrameBufferArray (size_t size)
 
void destroyFrameBuffer (FrameBufferHandle handle)
 
void destroyFrameBufferArray (const HeapArray< FrameBufferHandle > &array)
 
VertexBufferHandle createVertexBuffer ()
 
HeapArray< VertexBufferHandlecreateVertexBufferArray (size_t size)
 
void destroyVertexBuffer (VertexBufferHandle handle)
 
void destroyVertexBufferArray (const HeapArray< VertexBufferHandle > &array)
 
bool vertexArrayObjectSupport ()
 
VertexArrayHandle createVertexArrayObject ()
 
HeapArray< VertexArrayHandlecreateVertexArrayObjectArray (size_t size)
 
void destroyVertexArrayObject (VertexArrayHandle handle)
 
void destroyVertexArrayObjectArray (const HeapArray< VertexArrayHandle > &array)
 
bool hasDepthTexture ()
 
void bindTexture2D (GLuint id)
 
void bindTextureCubeMap (GLuint id)
 
void setBlendAlphaFunctions (BlendFactor sBlendFactor, BlendFactor dBlendFactor)
 
void setFrontFaceOrientation (VertexOrientation orientation)
 
void setViewport (int x, int y, int width, int height)
 
void clearColor (const Vector4f &color)
 
void bindAttributeBuffer (VertexBufferHandle vbo)
 
void bindElementBuffer (VertexBufferHandle vbo)
 
void bindVertexArray (VertexArrayHandle vao)
 
uint uniformVectorSize (GLenum type)
 
uint vertexAttributeSize ()
 
uint varyingVectorSize ()
 
void clearBuffers (uint mask=COLOR_BUFFER|STENCIL_BUFFER|DEPTH_BUFFER)
 
void swapBuffers ()
 
void scissorBuffer (uint offsetX, uint offsetY, uint width, uint height)
 
void setStencilOperations (StencilOperation fail, StencilOperation depthFail, StencilOperation depthPass)
 
void setStencilFunctions (CompareOperation function, int value, uint mask)
 
void exportCurrentFrameToPng (const char *filename)
 
bool hasMemoryType (MemoryType memoryType)
 
const VkMemoryHeap & getMemoryHeap (uint memoryHeapIndex)
 
const VkMemoryHeap & getMemoryHeap (MemoryType memoryType)
 
const VkMemoryType & getMemoryType (uint heapIndex)
 
uint getMemoryTypeIndex (MemoryType type, uint heapIndex)
 
MemoryAllocatorgetMemoryAllocator (MemoryType memoryType)
 
const VkPhysicalDeviceMemoryProperties & getPhysicalDeviceMemoryProperties ()
 
PixelFormat getPresentColorFormat ()
 
PixelFormat getPresentDepthFormat ()
 
uint getSwapIndex ()
 
uint getFrameSize ()
 
uint getAdvanceFrameSize ()
 
VkDescriptorPool createUniformDescriptorPool (const HeapArray< Pair< UniformDescriptorType, uint > > &descriptorType)
 
VkSemaphore createSemaphore ()
 
void destroySemaphore (VkSemaphore semaphore)
 
VkFence createFence (VkFenceCreateFlags flags=0)
 
void destroyFence (VkFence semaphore)
 
uint getQueueFamilyPropertyIndex ()
 
VkCommandPool createCommandPool ()
 
void destroyCommandPool (VkCommandPool commandPool)
 
VkCommandPool getCommandPool ()
 
VkCommandBuffer createCommandBuffer (VkCommandPool commandPool, VkCommandBufferLevel bufferLevel)
 
void destroySurface (VkSurfaceKHR surface)
 
VkRenderPass createRenderPass (FrameBuffer *pFrameBuffer, bool display)
 
void destroyRenderPass (VkRenderPass renderPass)
 
VkFramebuffer createFrameBuffer (RenderBuffer *pRenderBuffer, HeapArray< VkImageView > vkImageView, uint width, uint height)
 
FrameBuffergetPresentFrameBuffer ()
 
FrameBufferHandle getPresentFrameBufferHandle ()
 
FrameBufferHandle getRenderingFrameBuffer ()
 
RenderBuffer * getRenderingRenderBuffer ()
 
void destroyFrameBuffer (FrameBufferHandle frameBufferHandle)
 
void destroyPipeline (VkPipeline pipeline)
 
void destroyPipelineLayout (VkPipelineLayout layout)
 
void destroyDescriptorSetLayout (VkDescriptorSetLayout layout)
 
void destroyDescriptorPool (VkDescriptorPool pool)
 
void presentQueueSubmit (Pair< uint, VkSemaphore > swapIndex)
 
void queueSubmit (CommandBuffer *pCommandBuffer)
 
void queueSubmit (const HeapArray< CommandBuffer * > &pCommandBuffer)
 
void createMipmaps (Texture *pTexture, TextureType type)
 
void createGraphicsPipeline (Program *pProgram)
 
bool hasGraphicsPipeline (Program *pProgram)
 
GraphicsPipelinegetGraphicsPipeline (Program *pProgram)
 
GraphicsPipelinegetRenderingGraphicsPipeline ()
 
void destroyGraphicsPipeline (Program *pProgram)
 
VkSampler createSampler (VkImageViewType imageViewType)
 
bool hasImageSampler (TextureHandle textureHandle)
 
bool hasImageSampler (Texture *pTexture)
 
VkImage createImage (const VkImageCreateInfo &createInfo)
 
VkImageView createImageView (VkImage image, VkFormat format, TextureType textureType, uint mipLevels=1)
 
void destroyBuffer (VkBuffer buffer)
 
void destroyImage (VkImage image)
 
void destroyImageView (VkImageView view)
 
void destroySampler (VkSampler sampler)
 
void createImageSampler (Texture *pTexture, TextureType textureType)
 
void destroyImageSampler (Texture *pTexture)
 
VkDescriptorImageInfo & getImageSampler (TextureHandle textureHandle)
 
RenderBuffer * getCurrentRenderBuffer ()
 
void destroyMemory (Memory *pMemory)
 
VkPhysicalDevice getPhysicalDevice ()
 
VkDevice getLogicalDevice ()
 
const HeapArray< const char * > & getInstanceExtensions ()
 
const HeapArray< const char * > & getDeviceExtensions ()
 
void setSampleCoverage (float value, bool invert)
 
void bindFramebuffer (FrameBufferHandle frameBuffer)
 
void bindRenderbuffer (RenderBuffer *pRenderBuffer)
 
void useProgram (Program *pProgram)
 
ProgramgetRenderingProgram ()
 
RenderBuffer * getPresentRenderBuffer ()
 
void activeTextureUnit (uint textureUnit)
 
uint textureUnitSize ()
 
ProgramHandle createProgram ()
 
void destroyProgram (ProgramHandle handle)
 
ShaderHandle createShader (ShaderType type)
 
void destroyShader (ShaderHandle shader)
 
VkShaderModule createShaderModule (const HeapArray< uint > &irCode)
 
bool hasShaderModule (Shader *pShader)
 
VkShaderModule acquireShaderModule (Shader *pShader)
 
void releaseShaderModule (Shader *pShader)
 
void destroyShaderModule (VkShaderModule handle)
 
VkPipelineCache getPipelineCache ()
 
VkPipelineCache createPipelineCache (uint size=0, void *pBuffer=nullptr)
 
void destroyPipelineCache (VkPipelineCache pipelineCache)
 
void clearColor (const Vector4f &color)
 
const VkPhysicalDeviceProperties & getPhysicalDeviceProperties ()
 
const VkPhysicalDeviceFeatures & getPhysicalDeviceFeatures ()
 
VkFormatProperties getPhysicalDeviceFormatProperties (PixelFormat format)
 
void clearBuffers (uint mask=COLOR_BUFFER|STENCIL_BUFFER|DEPTH_BUFFER)
 
void swapBuffers ()
 
void setDepthRange (float nearClip, float farClip)
 
void exportCurrentFrameToPng (const char *filename)
 

Public Attributes

const GLStateUnorderedSet glStateIntegerSet
 
const GLStateUnorderedSet glStateTextureBindingSet
 
const GLStateUnorderedSet glStateFloatSet
 
const GLStateUnorderedSet glStateIntegerPairSet = { GL_MAX_VIEWPORT_DIMS }
 
const GLStateUnorderedSet glStateFloatPairSet
 
const GLStateUnorderedSet glStateIntegerGroupSet = { GL_VIEWPORT }
 
const GLStateUnorderedSet glStateFloatGroupSet = { GL_COLOR_CLEAR_VALUE }
 
const StateUnorderedSet stateSet
 

Static Public Attributes

static GLDeleteVertexArrays_func deleteVertexArrays
 
static GLGenVertexArrays_func generateVertexArrays
 
static GLIsVertexArray_func isVertexArray
 
static GLInvalidateFramebuffer_func invalidateFramebuffer
 
static const UnorderedMap< PixelFormat, uint > pixelFormatStride
 

Protected Member Functions

void initialize ()
 
bool getGlExtension (const char *str)
 
int getGlStateInteger (GLenum state)
 
HeapArray< int > & getGlStateTextureBinding (GLenum state)
 
Vector2i getGlStateIntegerPair (GLenum state)
 
Vector4i getGlStateIntegerGroup (GLenum state)
 
float getGlStateFloat (GLenum state)
 
Vector2f getGlStateFloatPair (GLenum state)
 
Vector4f getGlStateFloatGroup (GLenum state)
 
 Implementation ()
 
 ~Implementation ()
 
void finish ()
 
void uninitialize ()
 
void initialize ()
 
 Implementation ()
 
 ~Implementation ()
 
void finish ()
 
void uninitialize ()
 
VkInstance createInstance (bool singleton=true)
 
VkSurfaceKHR createSurface ()
 
VkSwapchainKHR createSwapChain (const HeapArray< PixelFormat > &preferredPixelFormat, VkSurfaceKHR vkSurace, uint advanceFrameSize=1)
 
void destroySwapChain (VkSwapchainKHR swapChain)
 

Static Protected Member Functions

static int getGlInteger (GLenum glState)
 
static Vector2i getGlIntegerPair (GLenum value)
 
static Vector4i getGlIntegerGroup (GLenum value)
 
static float getGlFloat (GLenum glState)
 
static Vector2f getGlFloatPair (GLenum value)
 
static Vector4f getGlFloatGroup (GLenum value)
 
static void mipmapServer ()
 
static void presentQueueServer ()
 
static void queueSubmitServer ()
 
static void dynamicDestroyServer ()
 

Protected Attributes

HeapArray< String > extension
 
UnorderedSet< VertexBufferHandleallocatedVertexBufferHandles
 
UnorderedSet< VertexArrayHandleallocatedVertexArrayObjectHandles
 
UnorderedSet< TextureHandleallocatedTextureObjectHandles
 
UnorderedSet< ProgramHandleallocatedShaderProgramHandles
 
UnorderedSet< ShaderHandleallocatedShaderHandles
 
UnorderedSet< RenderBufferHandleallocatedRenderBufferHandles
 
UnorderedSet< FrameBufferHandleallocatedFrameBufferHandles
 
FrameBufferpPresentFrameBuffer
 
ProgrampRenderingProgram
 
uint baseFrameBuffer
 
uint baseRenderBuffer
 
StateEnabledUnorderedMap state
 
HeapArray< const char * > instanceExtension
 
HeapArray< const char * > deviceExtension
 
PixelFormat presentColorFormat
 
PixelFormat presentDepthFormat
 
VkInstance instance
 
VkSurfaceKHR surface
 
VkPhysicalDevice physicalDevice
 
VkPhysicalDeviceProperties physicalDeviceProperties
 
VkPhysicalDeviceFeatures physicalDeviceFeatures
 
VkPhysicalDeviceMemoryProperties physicalDeviceMemoryProperties
 
UnorderedMap< PixelFormat, VkFormatProperties > physicalDeviceFormatProperties
 
VkDevice logicalDevice
 
VkSwapchainKHR swapChain
 
VkPipelineCache pipelineCache
 
VkFence queueSubmitFence
 
UnorderedMap< size_t, VkShaderModule > shaderModule
 
UnorderedMap< VkShaderModule, uint > shaderModuleReferenceCount
 
UnorderedMap< Program *, GraphicsPipeline * > pGraphicsPipeline
 
UnorderedMap< TextureHandle, VkDescriptorImageInfo > imageSampler
 
Queue< CommandBuffer * > queueSubmitCommandBuffer
 
RenderBuffer * pCurrentRenderBuffer
 
HeapArray< CommandBuffer * > pCompletedCommandBuffer
 
HeapArray< RenderBuffer * > pCompletedRenderBuffer
 
FrameBufferHandle renderingFrameBuffer
 
uint swapIndex
 
uint advanceFrameSize
 
Queue< Pair< uint, VkSemaphore > > presentSwapIndex
 
HeapArray< VkSemaphore > presentImageAcquiredSemaphore
 
Circulator< HeapArray< VkSemaphore > > ciPresentImageAcquiredSemaphore
 
VkImageUsageFlags presentUsageFlags
 
HeapArray< SwapChainImageswapChainImage
 
VkClearColorValue swapChainClearColorValue
 
VkClearDepthStencilValue swapChainClearDepthStencilValue
 
HeapArray< VkQueue > presentGraphicsQueue
 
HeapArray< MutexpresentGraphicsQueueMutex
 
UnorderedMap< MemoryType, uint > memoryHeapIndex
 
UnorderedMap< MemoryType, HeapArray< uint > > memoryTypeIndex
 
HeapArray< MemoryAllocator * > memoryAllocator
 
uint queueFamilyPropertyIndex
 
Thread dynamicDestroyServerThread
 
Mutex dynamicDestroyServerMutex
 
Queue< Memory * > pMemoryQueue
 
Queue< ProgramHandledestroyProgramHandleQueue
 
Queue< ShaderHandledestroyShaderHandleQueue
 
Queue< VkShaderModule > destroyShaderModuleQueue
 
Queue< VkFramebuffer > destroyFrameBufferQueue
 
Queue< VkRenderPass > destroyRenderPassQueue
 
Queue< VkPipelineCache > destroyPipelineCacheQueue
 
Queue< VkPipeline > destroyPipelineQueue
 
Queue< VkPipelineLayout > destroyPipelineLayoutQueue
 
Queue< VkDescriptorSetLayout > destroyDescriptorSetLayoutQueue
 
Queue< VkDescriptorPool > destroyDescriptorPoolQueue
 
Queue< VkSemaphore > destroySemaphoreQueue
 
Queue< VkCommandPool > destroyCommandPoolQueue
 
Queue< VkFence > destroyFenceQueue
 
Queue< VkBuffer > destroyBufferQueue
 
Queue< VkImage > destroyImageQueue
 
Queue< VkImageView > destroyImageViewQueue
 
Queue< VkSampler > destroyImageSamplerQueue
 
Queue< Pair< Texture *, TextureType > > mipmapServerImageQueue
 
Thread mipmapServerThread
 
Mutex mipmapServerMutex
 
Thread presentQueueServerThread
 
Mutex presentQueueServerMutex
 
Thread queueSubmitServerThread
 
Mutex queueSubmitServerMutex
 

Friends

class SDL2Window
 
class GraphicsPipeline
 

Member Typedef Documentation

◆ GLDeleteVertexArrays_func

typedef void GL_APIENTRY(* Implementation::GLDeleteVertexArrays_func) (GLsizei n, const GLuint *arrays)

◆ GLGenVertexArrays_func

typedef void GL_APIENTRY(* Implementation::GLGenVertexArrays_func) (GLsizei n, GLuint *arrays)

◆ GLInvalidateFramebuffer_func

typedef void GL_APIENTRY(* Implementation::GLInvalidateFramebuffer_func) (GLenum target, GLsizei numAttachments, const GLenum *attachments)

◆ GLIsVertexArray_func

typedef GLboolean GL_APIENTRY(* Implementation::GLIsVertexArray_func) (GLuint array)

◆ ImplementationFloatGroupMap

◆ ImplementationFloatMap

◆ ImplementationFloatPairMap

◆ ImplementationIntegerArrayMap

typedef UnorderedMap< int, HeapArray< int > > Implementation::ImplementationIntegerArrayMap

◆ ImplementationIntegerGroupMap

◆ ImplementationIntegerMap

◆ ImplementationIntegerPairMap

Constructor & Destructor Documentation

◆ Implementation() [1/2]

Implementation::Implementation ( )
protected

◆ ~Implementation() [1/2]

Implementation::~Implementation ( )
protected

◆ Implementation() [2/2]

Implementation::Implementation ( )
protected

◆ ~Implementation() [2/2]

Implementation::~Implementation ( )
protected

Member Function Documentation

◆ acquireShaderModule()

VkShaderModule Implementation::acquireShaderModule ( Shader * pShader)

◆ activeTextureUnit() [1/2]

void Implementation::activeTextureUnit ( GLuint textureUnit)

◆ activeTextureUnit() [2/2]

void Implementation::activeTextureUnit ( uint textureUnit)

◆ bindAttributeBuffer()

void Implementation::bindAttributeBuffer ( VertexBufferHandle vbo)

◆ bindElementBuffer()

void Implementation::bindElementBuffer ( VertexBufferHandle vbo)

◆ bindFramebuffer() [1/2]

void Implementation::bindFramebuffer ( FrameBufferHandle frameBuffer)

◆ bindFramebuffer() [2/2]

void Implementation::bindFramebuffer ( FrameBufferHandle frameBuffer)
Parameters
Ifhandle is nullptr or BASE_FRAMEBUFFER_HANDLE the swap-chain image's framebuffer for the current-frame will be bound.

◆ bindRenderbuffer() [1/2]

void Implementation::bindRenderbuffer ( RenderBuffer * pRenderBuffer)

◆ bindRenderbuffer() [2/2]

void Implementation::bindRenderbuffer ( RenderBufferHandle renderBuffer)

◆ bindTexture2D()

void Implementation::bindTexture2D ( GLuint id)

◆ bindTextureCubeMap()

void Implementation::bindTextureCubeMap ( GLuint id)

◆ bindVertexArray()

void Implementation::bindVertexArray ( VertexArrayHandle vao)

◆ clearBuffers() [1/2]

void Implementation::clearBuffers ( uint mask = COLOR_BUFFER|STENCIL_BUFFER|DEPTH_BUFFER)

Clear the color, depth, and stencil buffers.

Returns
void.

◆ clearBuffers() [2/2]

void Implementation::clearBuffers ( uint mask = COLOR_BUFFER|STENCIL_BUFFER|DEPTH_BUFFER)

Clear the color, depth, and stencil buffers.

Returns
void.

◆ clearColor() [1/2]

void Implementation::clearColor ( const Vector4f & color)

◆ clearColor() [2/2]

void Implementation::clearColor ( const Vector4f & color)

◆ createCommandBuffer()

VkCommandBuffer Implementation::createCommandBuffer ( VkCommandPool commandPool,
VkCommandBufferLevel bufferLevel )

◆ createCommandPool()

VkCommandPool Implementation::createCommandPool ( )

◆ createFence()

VkFence Implementation::createFence ( VkFenceCreateFlags flags = 0)

◆ createFrameBuffer() [1/2]

FrameBufferHandle Implementation::createFrameBuffer ( )

◆ createFrameBuffer() [2/2]

VkFramebuffer Implementation::createFrameBuffer ( RenderBuffer * pRenderBuffer,
HeapArray< VkImageView > vkImageView,
uint width,
uint height )

◆ createFrameBufferArray()

HeapArray< FrameBufferHandle > Implementation::createFrameBufferArray ( size_t size)

◆ createGraphicsPipeline()

void Implementation::createGraphicsPipeline ( Program * pProgram)

◆ createImage()

VkImage Implementation::createImage ( const VkImageCreateInfo & createInfo)

◆ createImageSampler()

void Implementation::createImageSampler ( Texture * pTexture,
TextureType textureType )

◆ createImageView()

VkImageView Implementation::createImageView ( VkImage image,
VkFormat format,
TextureType textureType,
uint mipLevels = 1 )

◆ createInstance()

VkInstance Implementation::createInstance ( bool singleton = true)
protected
Parameters
Trueif this instance is owned by the Implementation::instance - a singleton object

◆ createMipmaps()

void Implementation::createMipmaps ( Texture * pTexture,
TextureType type )

◆ createPipelineCache()

VkPipelineCache Implementation::createPipelineCache ( uint size = 0,
void * pBuffer = nullptr )

◆ createProgram()

ProgramHandle Implementation::createProgram ( )

◆ createRenderBuffer()

RenderBufferHandle Implementation::createRenderBuffer ( )

◆ createRenderBufferArray()

HeapArray< RenderBufferHandle > Implementation::createRenderBufferArray ( size_t size)

◆ createRenderPass()

VkRenderPass Implementation::createRenderPass ( FrameBuffer * pFrameBuffer,
bool display )
Parameters
TheFrameBuffer to create a compatible render-pass for.
Trueif final render-pass color-layout if for the display(present).

◆ createSampler()

VkSampler Implementation::createSampler ( VkImageViewType imageViewType)

◆ createSemaphore()

VkSemaphore Implementation::createSemaphore ( )

◆ createShader() [1/2]

ShaderHandle Implementation::createShader ( ShaderType type)

◆ createShader() [2/2]

ShaderHandle Implementation::createShader ( ShaderType type)

◆ createShaderModule()

VkShaderModule Implementation::createShaderModule ( const HeapArray< uint > & irCode)

◆ createShaderProgram()

Handle Implementation::createShaderProgram ( )

◆ createSurface()

VkSurfaceKHR Implementation::createSurface ( )
protected

◆ createSwapChain()

VkSwapchainKHR Implementation::createSwapChain ( const HeapArray< PixelFormat > & preferredPixelFormat,
VkSurfaceKHR vkSurace,
uint advanceFrameSize = 1 )
protected

Create a new swap-chain with the preferred pixel-format for the given surface.

Parameters
Thepreferred pixel-formats for the swap-chain image.
Thesurface for the given swap-chain.
Therequested number of frames. NOTE: if frameSize is greater than the maximum supported

◆ createTexture()

TextureHandle Implementation::createTexture ( )

◆ createTextureArray()

HeapArray< TextureHandle > Implementation::createTextureArray ( size_t size)

◆ createUniformDescriptorPool()

VkDescriptorPool Implementation::createUniformDescriptorPool ( const HeapArray< Pair< UniformDescriptorType, uint > > & descriptorType)

◆ createVertexArrayObject()

VertexArrayHandle Implementation::createVertexArrayObject ( )

◆ createVertexArrayObjectArray()

HeapArray< VertexArrayHandle > Implementation::createVertexArrayObjectArray ( size_t size)

◆ createVertexBuffer()

VertexBufferHandle Implementation::createVertexBuffer ( )

◆ createVertexBufferArray()

HeapArray< VertexBufferHandle > Implementation::createVertexBufferArray ( size_t size)

◆ destroyBuffer()

void Implementation::destroyBuffer ( VkBuffer buffer)

◆ destroyCommandPool()

void Implementation::destroyCommandPool ( VkCommandPool commandPool)

◆ destroyDescriptorPool()

void Implementation::destroyDescriptorPool ( VkDescriptorPool pool)

◆ destroyDescriptorSetLayout()

void Implementation::destroyDescriptorSetLayout ( VkDescriptorSetLayout layout)

◆ destroyFence()

void Implementation::destroyFence ( VkFence semaphore)

◆ destroyFrameBuffer() [1/2]

void Implementation::destroyFrameBuffer ( FrameBufferHandle frameBufferHandle)

Destroys the frame-buffer handle and associated command-buffer.

◆ destroyFrameBuffer() [2/2]

void Implementation::destroyFrameBuffer ( FrameBufferHandle handle)

◆ destroyFrameBufferArray()

void Implementation::destroyFrameBufferArray ( const HeapArray< FrameBufferHandle > & array)

◆ destroyGraphicsPipeline()

void Implementation::destroyGraphicsPipeline ( Program * pProgram)

◆ destroyImage()

void Implementation::destroyImage ( VkImage image)

◆ destroyImageSampler()

void Implementation::destroyImageSampler ( Texture * pTexture)

◆ destroyImageView()

void Implementation::destroyImageView ( VkImageView view)

◆ destroyMemory()

void Implementation::destroyMemory ( Memory * pMemory)

◆ destroyPipeline()

void Implementation::destroyPipeline ( VkPipeline pipeline)

◆ destroyPipelineCache()

void Implementation::destroyPipelineCache ( VkPipelineCache pipelineCache)

◆ destroyPipelineLayout()

void Implementation::destroyPipelineLayout ( VkPipelineLayout layout)

◆ destroyProgram()

void Implementation::destroyProgram ( ProgramHandle handle)

◆ destroyRenderBuffer()

void Implementation::destroyRenderBuffer ( RenderBufferHandle handle)

◆ destroyRenderBufferArray()

void Implementation::destroyRenderBufferArray ( const HeapArray< RenderBufferHandle > & array)

◆ destroyRenderPass()

void Implementation::destroyRenderPass ( VkRenderPass renderPass)

Destroys the render-buffer handle.

◆ destroySampler()

void Implementation::destroySampler ( VkSampler sampler)

◆ destroySemaphore()

void Implementation::destroySemaphore ( VkSemaphore semaphore)

◆ destroyShader() [1/2]

void Implementation::destroyShader ( ShaderHandle handle)

◆ destroyShader() [2/2]

void Implementation::destroyShader ( ShaderHandle shader)

◆ destroyShaderModule()

void Implementation::destroyShaderModule ( VkShaderModule handle)

◆ destroyShaderProgram()

void Implementation::destroyShaderProgram ( ProgramHandle handle)

◆ destroySurface()

void Implementation::destroySurface ( VkSurfaceKHR surface)

◆ destroySwapChain()

void Implementation::destroySwapChain ( VkSwapchainKHR swapChain)
protected

◆ destroyTexture()

void Implementation::destroyTexture ( TextureHandle handle)

◆ destroyTextureArray()

void Implementation::destroyTextureArray ( const HeapArray< TextureHandle > & array)

◆ destroyVertexArrayObject()

void Implementation::destroyVertexArrayObject ( VertexArrayHandle handle)

◆ destroyVertexArrayObjectArray()

void Implementation::destroyVertexArrayObjectArray ( const HeapArray< VertexArrayHandle > & array)

◆ destroyVertexBuffer()

void Implementation::destroyVertexBuffer ( VertexBufferHandle handle)

◆ destroyVertexBufferArray()

void Implementation::destroyVertexBufferArray ( const HeapArray< VertexBufferHandle > & array)

◆ disableState()

void Implementation::disableState ( PipelineState glState)

◆ dynamicDestroyServer()

static void Implementation::dynamicDestroyServer ( )
staticprotected

◆ enableState() [1/2]

void Implementation::enableState ( const StateUnorderedSet & stateSubSet)

◆ enableState() [2/2]

void Implementation::enableState ( PipelineState glState)

◆ exportCurrentFrameToPng() [1/2]

void Implementation::exportCurrentFrameToPng ( const char * filename)

Capture and export the current frame.

◆ exportCurrentFrameToPng() [2/2]

void Implementation::exportCurrentFrameToPng ( const char * filename)

Capture and export the current frame.

◆ finish() [1/2]

void Implementation::finish ( )
protected

◆ finish() [2/2]

void Implementation::finish ( )
protected

◆ getAdvanceFrameSize()

uint Implementation::getAdvanceFrameSize ( )
inline

◆ getCommandPool()

VkCommandPool Implementation::getCommandPool ( )

◆ getCurrentRenderBuffer()

RenderBuffer * Implementation::getCurrentRenderBuffer ( )
inline

◆ getDeviceExtensions()

const HeapArray< const char * > & Implementation::getDeviceExtensions ( )
inline

◆ getExtensions()

const HeapArray< String > & Implementation::getExtensions ( )
inline

◆ getFrameSize()

uint Implementation::getFrameSize ( )
inline

◆ getGlExtension()

bool Implementation::getGlExtension ( const char * str)
protected

◆ getGlFloat()

static float Implementation::getGlFloat ( GLenum glState)
staticprotected

◆ getGlFloatGroup()

static Vector4f Implementation::getGlFloatGroup ( GLenum value)
staticprotected

◆ getGlFloatPair()

static Vector2f Implementation::getGlFloatPair ( GLenum value)
staticprotected

◆ getGlInteger()

static int Implementation::getGlInteger ( GLenum glState)
staticprotected

◆ getGlIntegerGroup()

static Vector4i Implementation::getGlIntegerGroup ( GLenum value)
staticprotected

◆ getGlIntegerPair()

static Vector2i Implementation::getGlIntegerPair ( GLenum value)
staticprotected

◆ getGlStateFloat()

float Implementation::getGlStateFloat ( GLenum state)
protected

◆ getGlStateFloatGroup()

Vector4f Implementation::getGlStateFloatGroup ( GLenum state)
protected

◆ getGlStateFloatPair()

Vector2f Implementation::getGlStateFloatPair ( GLenum state)
protected

◆ getGlStateInteger()

int Implementation::getGlStateInteger ( GLenum state)
protected

◆ getGlStateIntegerGroup()

Vector4i Implementation::getGlStateIntegerGroup ( GLenum state)
protected

◆ getGlStateIntegerPair()

Vector2i Implementation::getGlStateIntegerPair ( GLenum state)
protected

◆ getGlStateTextureBinding()

HeapArray< int > & Implementation::getGlStateTextureBinding ( GLenum state)
protected

◆ getGraphicsPipeline()

GraphicsPipeline * Implementation::getGraphicsPipeline ( Program * pProgram)

◆ getImageSampler()

VkDescriptorImageInfo & Implementation::getImageSampler ( TextureHandle textureHandle)

◆ getInstanceExtensions()

const HeapArray< const char * > & Implementation::getInstanceExtensions ( )
inline

◆ getLogicalDevice()

VkDevice Implementation::getLogicalDevice ( )
inline

◆ getMemoryAllocator()

MemoryAllocator * Implementation::getMemoryAllocator ( MemoryType memoryType)

◆ getMemoryHeap() [1/2]

const VkMemoryHeap & Implementation::getMemoryHeap ( MemoryType memoryType)

◆ getMemoryHeap() [2/2]

const VkMemoryHeap & Implementation::getMemoryHeap ( uint memoryHeapIndex)

◆ getMemoryType()

const VkMemoryType & Implementation::getMemoryType ( uint heapIndex)

◆ getMemoryTypeIndex()

uint Implementation::getMemoryTypeIndex ( MemoryType type,
uint heapIndex )

◆ getPhysicalDevice()

VkPhysicalDevice Implementation::getPhysicalDevice ( )
inline

◆ getPhysicalDeviceFeatures()

const VkPhysicalDeviceFeatures & Implementation::getPhysicalDeviceFeatures ( )
inline

◆ getPhysicalDeviceFormatProperties()

VkFormatProperties Implementation::getPhysicalDeviceFormatProperties ( PixelFormat format)

◆ getPhysicalDeviceMemoryProperties()

const VkPhysicalDeviceMemoryProperties & Implementation::getPhysicalDeviceMemoryProperties ( )
inline

◆ getPhysicalDeviceProperties()

const VkPhysicalDeviceProperties & Implementation::getPhysicalDeviceProperties ( )
inline

◆ getPipelineCache()

VkPipelineCache Implementation::getPipelineCache ( )
inline

◆ getPresentColorFormat()

PixelFormat Implementation::getPresentColorFormat ( )
inline

◆ getPresentDepthFormat()

PixelFormat Implementation::getPresentDepthFormat ( )
inline

◆ getPresentFrameBuffer() [1/2]

FrameBuffer * Implementation::getPresentFrameBuffer ( )
inline
Returns
The frame-buffer handle bound to the current renderer.

◆ getPresentFrameBuffer() [2/2]

FrameBuffer * Implementation::getPresentFrameBuffer ( )
inline
Returns
The FrameBuffer object for display(present).

◆ getPresentFrameBufferHandle() [1/2]

FrameBufferHandle Implementation::getPresentFrameBufferHandle ( )
inline
Returns
The frame-buffer handle bound to the current renderer.

◆ getPresentFrameBufferHandle() [2/2]

FrameBufferHandle Implementation::getPresentFrameBufferHandle ( )
inline
Returns
The frame-buffer handle bound to the current renderer.

◆ getPresentRenderBuffer()

RenderBuffer * Implementation::getPresentRenderBuffer ( )

◆ getQueueFamilyPropertyIndex()

uint Implementation::getQueueFamilyPropertyIndex ( )
inline

◆ getRenderingFrameBuffer() [1/2]

FrameBufferHandle Implementation::getRenderingFrameBuffer ( )

◆ getRenderingFrameBuffer() [2/2]

FrameBufferHandle Implementation::getRenderingFrameBuffer ( )
inline
Returns
The frame-buffer handle bound to the current renderer.

◆ getRenderingGraphicsPipeline()

GraphicsPipeline * Implementation::getRenderingGraphicsPipeline ( )
inline

◆ getRenderingProgram()

Program * Implementation::getRenderingProgram ( )
inline

◆ getRenderingRenderBuffer()

RenderBuffer * Implementation::getRenderingRenderBuffer ( )
Returns
The frame-buffer handle bound to the current renderer.

◆ getStateSet()

const StateUnorderedSet & Implementation::getStateSet ( )
inline

◆ getSwapIndex()

uint Implementation::getSwapIndex ( )
inline

◆ hasDepthTexture()

bool Implementation::hasDepthTexture ( )

◆ hasGraphicsPipeline()

bool Implementation::hasGraphicsPipeline ( Program * pProgram)

◆ hasImageSampler() [1/2]

bool Implementation::hasImageSampler ( Texture * pTexture)

◆ hasImageSampler() [2/2]

bool Implementation::hasImageSampler ( TextureHandle textureHandle)

◆ hasMemoryType()

bool Implementation::hasMemoryType ( MemoryType memoryType)

◆ hasShaderModule()

bool Implementation::hasShaderModule ( Shader * pShader)

◆ initialize() [1/2]

void Implementation::initialize ( )
protected

Once the platform is initialized, this method should be called and only needs to be called once.

◆ initialize() [2/2]

void Implementation::initialize ( )
protected

◆ mipmapServer()

static void Implementation::mipmapServer ( )
staticprotected

The method runs-on a dedicated thread with a dedicated command-pool/buffer that only performs the generation of mip-maps.

◆ presentQueueServer()

static void Implementation::presentQueueServer ( )
staticprotected

◆ presentQueueSubmit()

void Implementation::presentQueueSubmit ( Pair< uint, VkSemaphore > swapIndex)

◆ queueSubmit() [1/2]

void Implementation::queueSubmit ( CommandBuffer * pCommandBuffer)

◆ queueSubmit() [2/2]

void Implementation::queueSubmit ( const HeapArray< CommandBuffer * > & pCommandBuffer)

◆ queueSubmitServer()

static void Implementation::queueSubmitServer ( )
staticprotected

◆ releaseShaderModule()

void Implementation::releaseShaderModule ( Shader * pShader)

◆ renderBufferSize()

uint Implementation::renderBufferSize ( )

Number of render buffers available. This does not include the number currently in-use.

◆ scissorBuffer()

void Implementation::scissorBuffer ( uint offsetX,
uint offsetY,
uint width,
uint height )

Clip or scissor the window-buffer.

Parameters
offsetXThe horizontal offset of the clip plane.
offsetYThe vertical offset of the clip plane
widthThe width of the clip plane
heightThe height of the clip plane
Returns
void.

◆ setBlendAlphaFunctions()

void Implementation::setBlendAlphaFunctions ( BlendFactor sBlendFactor,
BlendFactor dBlendFactor )

◆ setCullFaceMode()

void Implementation::setCullFaceMode ( CullFace mode)

◆ setDepthRange() [1/2]

void Implementation::setDepthRange ( float nearClip,
float farClip )

◆ setDepthRange() [2/2]

void Implementation::setDepthRange ( float nearClip,
float farClip )

◆ setDepthTestFunction()

void Implementation::setDepthTestFunction ( CompareOperation function)

◆ setDepthTestWriteMask()

void Implementation::setDepthTestWriteMask ( GLuint mask)

◆ setFrontFaceOrientation()

void Implementation::setFrontFaceOrientation ( VertexOrientation orientation)

◆ setLineWidth()

void Implementation::setLineWidth ( float width)

◆ setPolygonOffset()

void Implementation::setPolygonOffset ( float factor,
float units )

◆ setSampleCoverage() [1/2]

void Implementation::setSampleCoverage ( float value,
bool invert )

◆ setSampleCoverage() [2/2]

void Implementation::setSampleCoverage ( float value,
bool invert )

◆ setStencilFunctions()

void Implementation::setStencilFunctions ( CompareOperation function,
int value,
uint mask )

◆ setStencilOperations()

void Implementation::setStencilOperations ( StencilOperation fail,
StencilOperation depthFail,
StencilOperation depthPass )

◆ setViewport()

void Implementation::setViewport ( int x,
int y,
int width,
int height )

◆ swapBuffers() [1/2]

void Implementation::swapBuffers ( )

Swap the front and back buffers.

Returns
void.

◆ swapBuffers() [2/2]

void Implementation::swapBuffers ( )

Rotate the swap-chain buffers.

Returns
void.

◆ textureUnitSize() [1/2]

uint Implementation::textureUnitSize ( )

Number of texture units available. This does not include the number currently in-use.

◆ textureUnitSize() [2/2]

uint Implementation::textureUnitSize ( )

Number of texture units available. This does not include the number currently in-use.

◆ uniformVectorSize()

uint Implementation::uniformVectorSize ( GLenum type)

Number of shader uniform vectors available. This does not include the number currently in-use.

◆ uninitialize() [1/2]

void Implementation::uninitialize ( )
protected

◆ uninitialize() [2/2]

void Implementation::uninitialize ( )
protected

◆ useProgram() [1/2]

void Implementation::useProgram ( Program * pProgram)
Parameters
Avalid Program object.

◆ useProgram() [2/2]

void Implementation::useProgram ( Program * pProgram)
Parameters
Avalid Program object.

◆ varyingVectorSize()

uint Implementation::varyingVectorSize ( )

Number of shader varying vectors available. This does not include the number currently in-use.

◆ vertexArrayObjectSupport()

bool Implementation::vertexArrayObjectSupport ( )

◆ vertexAttributeSize()

uint Implementation::vertexAttributeSize ( )

Number of shader vertex attributes available. This does not include the number currently in-use.

Friends And Related Symbol Documentation

◆ GraphicsPipeline

friend class GraphicsPipeline
friend

◆ SDL2Window

friend class SDL2Window
friend

Member Data Documentation

◆ advanceFrameSize

uint Implementation::advanceFrameSize
protected

The number of present-images that can be acquired in-advance of current frame.

◆ allocatedFrameBufferHandles

UnorderedSet< FrameBufferHandle > Implementation::allocatedFrameBufferHandles
protected

◆ allocatedRenderBufferHandles

UnorderedSet< RenderBufferHandle > Implementation::allocatedRenderBufferHandles
protected

◆ allocatedShaderHandles

UnorderedSet< ShaderHandle > Implementation::allocatedShaderHandles
protected

◆ allocatedShaderProgramHandles

UnorderedSet< ProgramHandle > Implementation::allocatedShaderProgramHandles
protected

◆ allocatedTextureObjectHandles

UnorderedSet< TextureHandle > Implementation::allocatedTextureObjectHandles
protected

◆ allocatedVertexArrayObjectHandles

UnorderedSet< VertexArrayHandle > Implementation::allocatedVertexArrayObjectHandles
protected

◆ allocatedVertexBufferHandles

UnorderedSet< VertexBufferHandle > Implementation::allocatedVertexBufferHandles
protected

◆ baseFrameBuffer

uint Implementation::baseFrameBuffer
protected

◆ baseRenderBuffer

uint Implementation::baseRenderBuffer
protected

◆ ciPresentImageAcquiredSemaphore

Circulator< HeapArray< VkSemaphore > > Implementation::ciPresentImageAcquiredSemaphore
protected

◆ deleteVertexArrays

GLDeleteVertexArrays_func Implementation::deleteVertexArrays
static

◆ destroyBufferQueue

Queue< VkBuffer > Implementation::destroyBufferQueue
protected

◆ destroyCommandPoolQueue

Queue< VkCommandPool > Implementation::destroyCommandPoolQueue
protected

◆ destroyDescriptorPoolQueue

Queue< VkDescriptorPool > Implementation::destroyDescriptorPoolQueue
protected

◆ destroyDescriptorSetLayoutQueue

Queue< VkDescriptorSetLayout > Implementation::destroyDescriptorSetLayoutQueue
protected

◆ destroyFenceQueue

Queue< VkFence > Implementation::destroyFenceQueue
protected

◆ destroyFrameBufferQueue

Queue< VkFramebuffer > Implementation::destroyFrameBufferQueue
protected

◆ destroyImageQueue

Queue< VkImage > Implementation::destroyImageQueue
protected

◆ destroyImageSamplerQueue

Queue< VkSampler > Implementation::destroyImageSamplerQueue
protected

◆ destroyImageViewQueue

Queue< VkImageView > Implementation::destroyImageViewQueue
protected

◆ destroyPipelineCacheQueue

Queue< VkPipelineCache > Implementation::destroyPipelineCacheQueue
protected

◆ destroyPipelineLayoutQueue

Queue< VkPipelineLayout > Implementation::destroyPipelineLayoutQueue
protected

◆ destroyPipelineQueue

Queue< VkPipeline > Implementation::destroyPipelineQueue
protected

◆ destroyProgramHandleQueue

Queue< ProgramHandle > Implementation::destroyProgramHandleQueue
protected

◆ destroyRenderPassQueue

Queue< VkRenderPass > Implementation::destroyRenderPassQueue
protected

◆ destroySemaphoreQueue

Queue< VkSemaphore > Implementation::destroySemaphoreQueue
protected

◆ destroyShaderHandleQueue

Queue< ShaderHandle > Implementation::destroyShaderHandleQueue
protected

◆ destroyShaderModuleQueue

Queue< VkShaderModule > Implementation::destroyShaderModuleQueue
protected

◆ deviceExtension

HeapArray< const char * > Implementation::deviceExtension
protected

◆ dynamicDestroyServerMutex

Mutex Implementation::dynamicDestroyServerMutex
protected

Synchronizes the destruction of objects after the the current swap-image frame has rendered.

◆ dynamicDestroyServerThread

Thread Implementation::dynamicDestroyServerThread
protected

A dedicated-thread for destruction of vulkan resources. This thread will run post-frame

◆ extension

HeapArray< String > Implementation::extension
protected

◆ generateVertexArrays

GLGenVertexArrays_func Implementation::generateVertexArrays
static

◆ glStateFloatGroupSet

const GLStateUnorderedSet Implementation::glStateFloatGroupSet = { GL_COLOR_CLEAR_VALUE }

◆ glStateFloatPairSet

const GLStateUnorderedSet Implementation::glStateFloatPairSet
Initial value:
= { GL_DEPTH_RANGE,
GL_ALIASED_POINT_SIZE_RANGE,
GL_ALIASED_LINE_WIDTH_RANGE }

◆ glStateFloatSet

const GLStateUnorderedSet Implementation::glStateFloatSet
Initial value:
= { GL_LINE_WIDTH,
GL_POLYGON_OFFSET_FACTOR,
GL_POLYGON_OFFSET_UNITS,
GL_SAMPLE_COVERAGE_VALUE }

◆ glStateIntegerGroupSet

const GLStateUnorderedSet Implementation::glStateIntegerGroupSet = { GL_VIEWPORT }

◆ glStateIntegerPairSet

const GLStateUnorderedSet Implementation::glStateIntegerPairSet = { GL_MAX_VIEWPORT_DIMS }

◆ glStateIntegerSet

const GLStateUnorderedSet Implementation::glStateIntegerSet
Initial value:
= { GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
GL_MAX_CUBE_MAP_TEXTURE_SIZE,
GL_MAX_FRAGMENT_UNIFORM_VECTORS,
GL_MAX_RENDERBUFFER_SIZE,
GL_MAX_TEXTURE_IMAGE_UNITS,
GL_MAX_TEXTURE_SIZE,
GL_MAX_VARYING_VECTORS,
GL_MAX_VERTEX_ATTRIBS,
GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
GL_MAX_VERTEX_UNIFORM_VECTORS,
GL_SAMPLE_COVERAGE_INVERT,
GL_RENDERBUFFER_BINDING,
GL_FRAMEBUFFER_BINDING,
GL_CURRENT_PROGRAM,
GL_CULL_FACE_MODE,
GL_FRONT_FACE,
GL_DEPTH_FUNC,
GL_DEPTH_WRITEMASK,
GL_ACTIVE_TEXTURE,
GL_BLEND_SRC_RGB,
GL_BLEND_SRC_ALPHA,
GL_BLEND_DST_RGB,
GL_BLEND_DST_ALPHA,
GL_ARRAY_BUFFER_BINDING,
GL_ELEMENT_ARRAY_BUFFER_BINDING,
GL_VERTEX_ARRAY_BINDING }

◆ glStateTextureBindingSet

const GLStateUnorderedSet Implementation::glStateTextureBindingSet
Initial value:
= { GL_TEXTURE_BINDING_2D,
GL_TEXTURE_BINDING_CUBE_MAP }

◆ imageSampler

UnorderedMap< TextureHandle, VkDescriptorImageInfo > Implementation::imageSampler
protected

◆ instance

VkInstance Implementation::instance
protected

Handle to the dispatchable application-instance.

◆ instanceExtension

HeapArray< const char * > Implementation::instanceExtension
protected

◆ invalidateFramebuffer

GLInvalidateFramebuffer_func Implementation::invalidateFramebuffer
static

◆ isVertexArray

GLIsVertexArray_func Implementation::isVertexArray
static

◆ logicalDevice

VkDevice Implementation::logicalDevice
protected

Handle to the dispatchable logical-device.

◆ memoryAllocator

HeapArray< MemoryAllocator * > Implementation::memoryAllocator
protected

Memory-pools for each memory-heap.

◆ memoryHeapIndex

UnorderedMap< MemoryType, uint > Implementation::memoryHeapIndex
protected

◆ memoryTypeIndex

UnorderedMap< MemoryType, HeapArray< uint > > Implementation::memoryTypeIndex
protected

The index of the memory-type for the give heap-index;

◆ mipmapServerImageQueue

Queue< Pair< Texture *, TextureType > > Implementation::mipmapServerImageQueue
protected

◆ mipmapServerMutex

Mutex Implementation::mipmapServerMutex
protected

Serializes all jobs for this thread.

◆ mipmapServerThread

Thread Implementation::mipmapServerThread
protected

◆ pCompletedCommandBuffer

HeapArray< CommandBuffer * > Implementation::pCompletedCommandBuffer
protected

◆ pCompletedRenderBuffer

HeapArray< RenderBuffer * > Implementation::pCompletedRenderBuffer
protected

◆ pCurrentRenderBuffer

RenderBuffer* Implementation::pCurrentRenderBuffer
protected

◆ pGraphicsPipeline

UnorderedMap< Program *, GraphicsPipeline * > Implementation::pGraphicsPipeline
protected

◆ physicalDevice

VkPhysicalDevice Implementation::physicalDevice
protected

Handle to the dispatchable physical-device.

◆ physicalDeviceFeatures

VkPhysicalDeviceFeatures Implementation::physicalDeviceFeatures
protected

The physical-device features.

◆ physicalDeviceFormatProperties

UnorderedMap< PixelFormat, VkFormatProperties > Implementation::physicalDeviceFormatProperties
protected

The format-properties for the physical-device.

◆ physicalDeviceMemoryProperties

VkPhysicalDeviceMemoryProperties Implementation::physicalDeviceMemoryProperties
protected

The memory-properties for the physical-device.

◆ physicalDeviceProperties

VkPhysicalDeviceProperties Implementation::physicalDeviceProperties
protected

The physical-device properties. NOTE: there are memory-properties there too...

◆ pipelineCache

VkPipelineCache Implementation::pipelineCache
protected

◆ pixelFormatStride

const UnorderedMap< PixelFormat, uint > Implementation::pixelFormatStride
static

◆ pMemoryQueue

Queue< Memory * > Implementation::pMemoryQueue
protected

◆ pPresentFrameBuffer

FrameBuffer * Implementation::pPresentFrameBuffer
protected

◆ pRenderingProgram

Program * Implementation::pRenderingProgram
protected

Set by useProgram()

◆ presentColorFormat

PixelFormat Implementation::presentColorFormat
protected

Optimal format.

◆ presentDepthFormat

PixelFormat Implementation::presentDepthFormat
protected

Optimal format.

◆ presentGraphicsQueue

HeapArray< VkQueue > Implementation::presentGraphicsQueue
protected

This Queue-Array is specific-to the physical-device.

◆ presentGraphicsQueueMutex

HeapArray< Mutex > Implementation::presentGraphicsQueueMutex
protected

Prevent simultaneous calls to vkSubmitQueue from different threads, one for each graphics-present queue.

◆ presentImageAcquiredSemaphore

HeapArray< VkSemaphore > Implementation::presentImageAcquiredSemaphore
protected

2 semaphores allow 1 image to be aquired in-advance of rendering the current frame.

◆ presentQueueServerMutex

Mutex Implementation::presentQueueServerMutex
protected

Dedicated thread for frame presentation to display.

◆ presentQueueServerThread

Thread Implementation::presentQueueServerThread
protected

◆ presentSwapIndex

Queue< Pair< uint, VkSemaphore > > Implementation::presentSwapIndex
protected

Indices of the swap-images presented to the display and associated wait-semaphores.

◆ presentUsageFlags

VkImageUsageFlags Implementation::presentUsageFlags
protected

◆ queueFamilyPropertyIndex

uint Implementation::queueFamilyPropertyIndex
protected

◆ queueSubmitCommandBuffer

Queue< CommandBuffer * > Implementation::queueSubmitCommandBuffer
protected

◆ queueSubmitFence

VkFence Implementation::queueSubmitFence
protected

◆ queueSubmitServerMutex

Mutex Implementation::queueSubmitServerMutex
protected

Serializes all jobs for this thread.

◆ queueSubmitServerThread

Thread Implementation::queueSubmitServerThread
protected

◆ renderingFrameBuffer

FrameBufferHandle Implementation::renderingFrameBuffer
protected

◆ shaderModule

UnorderedMap< size_t, VkShaderModule > Implementation::shaderModule
protected

GLSL hash for SPIR-V shader-module

◆ shaderModuleReferenceCount

UnorderedMap< VkShaderModule, uint > Implementation::shaderModuleReferenceCount
protected

◆ state

StateEnabledUnorderedMap Implementation::state
protected

◆ stateSet

const StateUnorderedSet Implementation::stateSet
Initial value:
@ DITHER_COLOR
Definition implementation.h:46
@ POLYGON_OFFSET_FILL
Definition implementation.h:47
@ SAMPLE_COVERAGE
Definition implementation.h:92
@ CULL_FACE
Definition implementation.h:89
@ SAMPLE_ALPHA_TO_COVERAGE
Definition implementation.h:91
@ STENCIL_TEST
Definition implementation.h:82
@ DEPTH_TEST
Definition implementation.h:83
@ SCISSOR_TEST
Definition implementation.h:87
@ COLOR_BLEND
Definition implementation.h:88

◆ surface

VkSurfaceKHR Implementation::surface
protected

Handle to the non-dispatchable window-surface

◆ swapChain

VkSwapchainKHR Implementation::swapChain
protected

Handle to the non-dispatchable swap-chain.

◆ swapChainClearColorValue

VkClearColorValue Implementation::swapChainClearColorValue
protected

◆ swapChainClearDepthStencilValue

VkClearDepthStencilValue Implementation::swapChainClearDepthStencilValue
protected

◆ swapChainImage

HeapArray< SwapChainImage > Implementation::swapChainImage
protected

Handle for swap-chain images.

◆ swapIndex

uint Implementation::swapIndex
protected

Index of currently-acquired swap-image within the chain.


The documentation for this class was generated from the following files: