CheeseEngine
A 2D Game Engine
Loading...
Searching...
No Matches
Classes | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
GraphicCore Class Reference

Class that implements graphic system. More...

#include <graphicCore.hpp>

Collaboration diagram for GraphicCore:
[legend]

Classes

struct  Camera
 
struct  FigureDesc
 
struct  PushConstant
 
struct  QueueFamilyIndicies
 
struct  SwapChainSupportDetails
 
struct  TextureArray
 
struct  UniformBufferObject
 
struct  Vertex
 

Public Member Functions

 GraphicCore (GLFWwindow *window)
 Object constructor.
 
uint32_t addRectangle (glm::vec2 position, float width, float height, glm::vec3 color)
 Add Rectangle method.
 
uint32_t addTriangle (std::array< glm::vec2, 3 > positions, glm::vec3 color)
 Add Triangle method.
 
void removeFigure (uint32_t index)
 Remove Figure method.
 
void setTransform (uint32_t index, const glm::mat4 &transform)
 Set transform matrix for figure.
 
void setCamera (glm::vec2 position, float zoom)
 Set camera method.
 
TextureDescriptor addTexture (const std::string &path)
 Loading texture method.
 
void setTexture (uint32_t figureIndex, TextureDescriptor textureDescriptor, const std::vector< glm::vec2 > &texCoords)
 Set Texture method.
 
void startGraphicThread ()
 Starting graphics thread method.
 
void stopGraphicThread ()
 Stopping graphics thread method.
 

Private Member Functions

void run ()
 
void initWindow ()
 
void initVulkan ()
 
void createSurface ()
 
void mainLoop ()
 
void _addRectangle (glm::vec2 position, float width, float height, glm::vec3 color, uint32_t index)
 
void _addTriangle (std::array< glm::vec2, 3 > positions, glm::vec3 color, uint32_t index)
 
void _removeFigure (uint32_t index)
 
void _setTranform (uint32_t index, glm::mat4 transform)
 
void _setCamera (glm::vec2 position, float zoom)
 
void _setTexture (uint32_t figureIndex, TextureDescriptor textureDescriptor, std::vector< glm::vec2 > texCoords)
 
void addDefaultTexture ()
 
void pollRenderQueue ()
 
void drawFrame ()
 
void cleanup ()
 
bool checkExtensionsSupport (const uint32_t extCount, const char **extToCheck)
 
void createLogicalDevice ()
 
void createSwapChain ()
 
void cleanupSwapChain ()
 
void recreateSwapChain ()
 
void createImageViews ()
 
void createRenderPass ()
 
void createDescriptorSetLayout ()
 
void createGraphicsPipeline ()
 
void createFrameBuffers ()
 
void createCommandPool ()
 
void createImage (uint32_t width, uint32_t height, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, VkMemoryPropertyFlags properties, VkImage &image, VkDeviceMemory &imageMemory, uint32_t arrayLayers)
 
VkCommandBuffer beginSingleTimeCommands ()
 
void endSingleTimeCommands (VkCommandBuffer commandBuffer)
 
void createTextureImage ()
 
void createTextureImageView ()
 
VkImageView createImageView (VkImage image, VkFormat format, uint32_t layerCount, VkImageViewType viewType)
 
void createTextureSampler ()
 
void transitionImageLayout (VkImage image, VkFormat format, VkImageLayout oldLayout, VkImageLayout newLayout, uint32_t layerCount)
 
void copyBufferToImage (VkBuffer buffer, VkImage image, uint32_t width, uint32_t height, uint32_t layerCount)
 
void createBuffer (VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer &buffer, VkDeviceMemory &bufferMemory)
 
void createVertexBuffer ()
 
void createIndexBuffer ()
 
void createUniformBuffers ()
 
void updateUniformBuffer (uint32_t currentImage)
 
void updateVertexBuffer ()
 
void createDescriptorPool ()
 
void createDescriptorSets ()
 
void copyBuffer (VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize bufferSize)
 
uint32_t findMemoryType (uint32_t typeFilter, VkMemoryPropertyFlags properties)
 
void recordCommandBuffer (VkCommandBuffer commandBuffer, uint32_t imageIndex)
 
void createCommandBuffers ()
 
void createSyncObjects ()
 
VkShaderModule createShaderModule (const std::vector< char > &code)
 
bool checkDeviceExtensionSupport (VkPhysicalDevice device)
 
bool isDeviceSuitable (VkPhysicalDevice device)
 
void pickPhysicalDevice ()
 
QueueFamilyIndicies findQueueFamilies (VkPhysicalDevice device)
 
SwapChainSupportDetails querySwapChainSupport (VkPhysicalDevice device)
 
VkSurfaceFormatKHR chooseSwapSurfaceFormat (const std::vector< VkSurfaceFormatKHR > &availableFormats)
 
VkPresentModeKHR chooseSwapPresentMode (const std::vector< VkPresentModeKHR > &availablePresentModes)
 
VkExtent2D chooseSwapExtent (const VkSurfaceCapabilitiesKHR &capabilities)
 
std::vector< const char * > getRequiredExtensions ()
 
void createInstance ()
 
bool checkValidationLayerSupport ()
 
void populateDebugMessengerCreateInfo (VkDebugUtilsMessengerCreateInfoEXT &createInfo)
 
void setupDebugMessenger ()
 

Static Private Member Functions

static VkResult CreateDebugUtilsMessengerEXT (VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkDebugUtilsMessengerEXT *pDebugMessenger)
 
static void DestroyDebugUtilsMessengerEXT (VkInstance instance, VkDebugUtilsMessengerEXT debugMessenger, const VkAllocationCallbacks *pAllocator)
 
static std::vector< char > readFile (const std::string &filename)
 
static void framebufferSizeCallback (GLFWwindow *window, int width, int height)
 
static VKAPI_ATTR VkBool32 VKAPI_CALL debugCallback (VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageType, const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData, void *pUserData)
 

Private Attributes

std::mutex verticesMutex
 
std::mutex stopMutex
 
std::thread graphicThread
 
GLFWwindow * window
 
VkInstance instance
 
std::vector< VkExtensionProperties > instanceExtensions
 
VkDebugUtilsMessengerEXT debugMessenger
 
VkSurfaceKHR surface
 
VkPhysicalDevice physicalDevice = VK_NULL_HANDLE
 
VkDevice device
 
VkQueue graphicsQueue
 
VkQueue presentQueue
 
VkSwapchainKHR swapChain = VK_NULL_HANDLE
 
std::vector< VkImage > swapChainImages
 
VkFormat swapChainImageFormat
 
VkExtent2D swapChainExtent
 
std::vector< VkImageView > swapChainImageViews
 
VkRenderPass renderPass
 
VkDescriptorSetLayout descriptorSetLayout
 
VkPipelineLayout pipelineLayout
 
VkPipeline graphicsPipeline
 
std::vector< VkFramebuffer > swapChainFramebuffers
 
VkCommandPool commandPool
 
std::vector< VkCommandBuffer > commandBuffers
 
std::vector< VkSemaphore > imageAvailableSemaphores
 
std::vector< VkSemaphore > renderFinishedSemaphores
 
std::vector< VkFence > inFlightFences
 
std::vector< VkFence > imagesInFlight
 
size_t currentFrame = 0
 
bool framebufferResized = false
 
VkBuffer vertexBuffer
 
VkDeviceMemory vertexBufferMemory
 
bool verticesChanged = false
 
VkBuffer stagingVertexBuffer
 
VkDeviceMemory stagingVertexBufferMemory
 
VkBuffer indexBuffer
 
VkDeviceMemory indexBufferMemory
 
VkBuffer stagingIndexBuffer
 
VkDeviceMemory stagingIndexBufferMemory
 
std::vector< VkBuffer > uniformBuffers
 
std::vector< VkDeviceMemory > uniformBuffersMemory
 
std::vector< void * > uniformBuffersMapped
 
VkDescriptorPool descriptorPool
 
std::vector< VkDescriptorSet > descriptorSets
 
std::vector< Vertexvertices
 
std::vector< uint16_t > indices
 
std::unordered_map< int, FigureDescfigures
 
bool isStopped = false
 
uint32_t indicesToDraw = 0
 
uint32_t verticesCount = 0
 
uint32_t nextFigureHex = 0x0
 
RenderQueue renderQueue
 
Camera camera
 
std::vector< std::string > texturePaths
 
std::vector< TextureArraytextureArrays
 

Detailed Description

Class that implements graphic system.

Constructor & Destructor Documentation

◆ GraphicCore()

GraphicCore::GraphicCore ( GLFWwindow *  window)

Object constructor.

Parameters
window: GLFW window pointer for drawing in

Member Function Documentation

◆ _addRectangle()

void GraphicCore::_addRectangle ( glm::vec2  position,
float  width,
float  height,
glm::vec3  color,
uint32_t  index 
)
private

◆ _addTriangle()

void GraphicCore::_addTriangle ( std::array< glm::vec2, 3 >  positions,
glm::vec3  color,
uint32_t  index 
)
private

◆ _removeFigure()

void GraphicCore::_removeFigure ( uint32_t  index)
private

◆ _setCamera()

void GraphicCore::_setCamera ( glm::vec2  position,
float  zoom 
)
private

◆ _setTexture()

void GraphicCore::_setTexture ( uint32_t  figureIndex,
TextureDescriptor  textureDescriptor,
std::vector< glm::vec2 >  texCoords 
)
private

◆ _setTranform()

void GraphicCore::_setTranform ( uint32_t  index,
glm::mat4  transform 
)
private

◆ addDefaultTexture()

void GraphicCore::addDefaultTexture ( )
private

◆ addRectangle()

uint32_t GraphicCore::addRectangle ( glm::vec2  position,
float  width,
float  height,
glm::vec3  color 
)

Add Rectangle method.

Parameters
position: glm::vec2, position of upper left vertex
width: float, the rectangle width
height: float, the rectangle height
color: glm::vec3, RGB vector of color, each color from 0.f to 1.f
Return values
uint32_tindex of added figure

◆ addTexture()

TextureDescriptor GraphicCore::addTexture ( const std::string &  path)

Loading texture method.

Note
Must be used only when graphics thread is not started
Parameters
path: std::string, absolute path to texture file
Return values
texturedescriptor that required to set this texture to some figure

◆ addTriangle()

uint32_t GraphicCore::addTriangle ( std::array< glm::vec2, 3 >  positions,
glm::vec3  color 
)

Add Triangle method.

Parameters
positions: std::array of size 3 with glm::vec2 positions of vertices that in clockwise(!) order
color: glm::vec3, RGB vector of color, each color from 0.f to 1.f
Return values
uint32_t index of added figure

◆ beginSingleTimeCommands()

VkCommandBuffer GraphicCore::beginSingleTimeCommands ( )
private

◆ checkDeviceExtensionSupport()

bool GraphicCore::checkDeviceExtensionSupport ( VkPhysicalDevice  device)
private

◆ checkExtensionsSupport()

bool GraphicCore::checkExtensionsSupport ( const uint32_t  extCount,
const char **  extToCheck 
)
private

◆ checkValidationLayerSupport()

bool GraphicCore::checkValidationLayerSupport ( )
private

◆ chooseSwapExtent()

VkExtent2D GraphicCore::chooseSwapExtent ( const VkSurfaceCapabilitiesKHR &  capabilities)
private

◆ chooseSwapPresentMode()

VkPresentModeKHR GraphicCore::chooseSwapPresentMode ( const std::vector< VkPresentModeKHR > &  availablePresentModes)
private

◆ chooseSwapSurfaceFormat()

VkSurfaceFormatKHR GraphicCore::chooseSwapSurfaceFormat ( const std::vector< VkSurfaceFormatKHR > &  availableFormats)
private

◆ cleanup()

void GraphicCore::cleanup ( )
private

◆ cleanupSwapChain()

void GraphicCore::cleanupSwapChain ( )
private

◆ copyBuffer()

void GraphicCore::copyBuffer ( VkBuffer  srcBuffer,
VkBuffer  dstBuffer,
VkDeviceSize  bufferSize 
)
private

◆ copyBufferToImage()

void GraphicCore::copyBufferToImage ( VkBuffer  buffer,
VkImage  image,
uint32_t  width,
uint32_t  height,
uint32_t  layerCount 
)
private

◆ createBuffer()

void GraphicCore::createBuffer ( VkDeviceSize  size,
VkBufferUsageFlags  usage,
VkMemoryPropertyFlags  properties,
VkBuffer &  buffer,
VkDeviceMemory &  bufferMemory 
)
private

◆ createCommandBuffers()

void GraphicCore::createCommandBuffers ( )
private

◆ createCommandPool()

void GraphicCore::createCommandPool ( )
private

◆ CreateDebugUtilsMessengerEXT()

static VkResult GraphicCore::CreateDebugUtilsMessengerEXT ( VkInstance  instance,
const VkDebugUtilsMessengerCreateInfoEXT *  pCreateInfo,
const VkAllocationCallbacks *  pAllocator,
VkDebugUtilsMessengerEXT *  pDebugMessenger 
)
staticprivate

◆ createDescriptorPool()

void GraphicCore::createDescriptorPool ( )
private

◆ createDescriptorSetLayout()

void GraphicCore::createDescriptorSetLayout ( )
private

◆ createDescriptorSets()

void GraphicCore::createDescriptorSets ( )
private

◆ createFrameBuffers()

void GraphicCore::createFrameBuffers ( )
private

◆ createGraphicsPipeline()

void GraphicCore::createGraphicsPipeline ( )
private

◆ createImage()

void GraphicCore::createImage ( uint32_t  width,
uint32_t  height,
VkFormat  format,
VkImageTiling  tiling,
VkImageUsageFlags  usage,
VkMemoryPropertyFlags  properties,
VkImage &  image,
VkDeviceMemory &  imageMemory,
uint32_t  arrayLayers 
)
private

◆ createImageView()

VkImageView GraphicCore::createImageView ( VkImage  image,
VkFormat  format,
uint32_t  layerCount,
VkImageViewType  viewType 
)
private

◆ createImageViews()

void GraphicCore::createImageViews ( )
private

◆ createIndexBuffer()

void GraphicCore::createIndexBuffer ( )
private

◆ createInstance()

void GraphicCore::createInstance ( )
private

◆ createLogicalDevice()

void GraphicCore::createLogicalDevice ( )
private

◆ createRenderPass()

void GraphicCore::createRenderPass ( )
private

◆ createShaderModule()

VkShaderModule GraphicCore::createShaderModule ( const std::vector< char > &  code)
private

◆ createSurface()

void GraphicCore::createSurface ( )
private

◆ createSwapChain()

void GraphicCore::createSwapChain ( )
private

◆ createSyncObjects()

void GraphicCore::createSyncObjects ( )
private

◆ createTextureImage()

void GraphicCore::createTextureImage ( )
private

◆ createTextureImageView()

void GraphicCore::createTextureImageView ( )
private

◆ createTextureSampler()

void GraphicCore::createTextureSampler ( )
private

◆ createUniformBuffers()

void GraphicCore::createUniformBuffers ( )
private

◆ createVertexBuffer()

void GraphicCore::createVertexBuffer ( )
private

◆ debugCallback()

static VKAPI_ATTR VkBool32 VKAPI_CALL GraphicCore::debugCallback ( VkDebugUtilsMessageSeverityFlagBitsEXT  messageSeverity,
VkDebugUtilsMessageTypeFlagsEXT  messageType,
const VkDebugUtilsMessengerCallbackDataEXT *  pCallbackData,
void *  pUserData 
)
staticprivate

◆ DestroyDebugUtilsMessengerEXT()

static void GraphicCore::DestroyDebugUtilsMessengerEXT ( VkInstance  instance,
VkDebugUtilsMessengerEXT  debugMessenger,
const VkAllocationCallbacks *  pAllocator 
)
staticprivate

◆ drawFrame()

void GraphicCore::drawFrame ( )
private

◆ endSingleTimeCommands()

void GraphicCore::endSingleTimeCommands ( VkCommandBuffer  commandBuffer)
private

◆ findMemoryType()

uint32_t GraphicCore::findMemoryType ( uint32_t  typeFilter,
VkMemoryPropertyFlags  properties 
)
private

◆ findQueueFamilies()

QueueFamilyIndicies GraphicCore::findQueueFamilies ( VkPhysicalDevice  device)
private

◆ framebufferSizeCallback()

static void GraphicCore::framebufferSizeCallback ( GLFWwindow *  window,
int  width,
int  height 
)
staticprivate

◆ getRequiredExtensions()

std::vector< const char * > GraphicCore::getRequiredExtensions ( )
private

◆ initVulkan()

void GraphicCore::initVulkan ( )
private

◆ initWindow()

void GraphicCore::initWindow ( )
private

◆ isDeviceSuitable()

bool GraphicCore::isDeviceSuitable ( VkPhysicalDevice  device)
private

◆ mainLoop()

void GraphicCore::mainLoop ( )
private

◆ pickPhysicalDevice()

void GraphicCore::pickPhysicalDevice ( )
private

◆ pollRenderQueue()

void GraphicCore::pollRenderQueue ( )
private

◆ populateDebugMessengerCreateInfo()

void GraphicCore::populateDebugMessengerCreateInfo ( VkDebugUtilsMessengerCreateInfoEXT &  createInfo)
private

◆ querySwapChainSupport()

SwapChainSupportDetails GraphicCore::querySwapChainSupport ( VkPhysicalDevice  device)
private

◆ readFile()

static std::vector< char > GraphicCore::readFile ( const std::string &  filename)
staticprivate

◆ recordCommandBuffer()

void GraphicCore::recordCommandBuffer ( VkCommandBuffer  commandBuffer,
uint32_t  imageIndex 
)
private

◆ recreateSwapChain()

void GraphicCore::recreateSwapChain ( )
private

◆ removeFigure()

void GraphicCore::removeFigure ( uint32_t  index)

Remove Figure method.

Parameters
index: uint32 index of figure to remove
Return values
None

◆ run()

void GraphicCore::run ( )
private

◆ setCamera()

void GraphicCore::setCamera ( glm::vec2  position,
float  zoom 
)

Set camera method.

Parameters
position: glm::vec2, new position of camera
zoom: float, just camera zoom, default is 1.0f
Return values
None

◆ setTexture()

void GraphicCore::setTexture ( uint32_t  figureIndex,
TextureDescriptor  textureDescriptor,
const std::vector< glm::vec2 > &  texCoords 
)

Set Texture method.

Note
Use only valid data - in this method it is developer's responsibility
Parameters
figureIndex: uint32_t, index of a figure that gets texture
textureDescriptor: TextureDescriptor of texture to be setted
texCoords: std::vector of glm::vec2 texture coords for every vertex of figure
Return values
None

◆ setTransform()

void GraphicCore::setTransform ( uint32_t  index,
const glm::mat4 &  transform 
)

Set transform matrix for figure.

Parameters
index: uint32 index of figure
transform: glm::mat4, model matrix of object
Return values
None

◆ setupDebugMessenger()

void GraphicCore::setupDebugMessenger ( )
private

◆ startGraphicThread()

void GraphicCore::startGraphicThread ( )

Starting graphics thread method.

Note
must be called once only until the thread is not stopped
Parameters
None
Return values
None

◆ stopGraphicThread()

void GraphicCore::stopGraphicThread ( )

Stopping graphics thread method.

Parameters
None
Return values
None

◆ transitionImageLayout()

void GraphicCore::transitionImageLayout ( VkImage  image,
VkFormat  format,
VkImageLayout  oldLayout,
VkImageLayout  newLayout,
uint32_t  layerCount 
)
private

◆ updateUniformBuffer()

void GraphicCore::updateUniformBuffer ( uint32_t  currentImage)
private

◆ updateVertexBuffer()

void GraphicCore::updateVertexBuffer ( )
private

Member Data Documentation

◆ camera

Camera GraphicCore::camera
private

◆ commandBuffers

std::vector<VkCommandBuffer> GraphicCore::commandBuffers
private

◆ commandPool

VkCommandPool GraphicCore::commandPool
private

◆ currentFrame

size_t GraphicCore::currentFrame = 0
private

◆ debugMessenger

VkDebugUtilsMessengerEXT GraphicCore::debugMessenger
private

◆ descriptorPool

VkDescriptorPool GraphicCore::descriptorPool
private

◆ descriptorSetLayout

VkDescriptorSetLayout GraphicCore::descriptorSetLayout
private

◆ descriptorSets

std::vector<VkDescriptorSet> GraphicCore::descriptorSets
private

◆ device

VkDevice GraphicCore::device
private

◆ figures

std::unordered_map<int, FigureDesc> GraphicCore::figures
private

◆ framebufferResized

bool GraphicCore::framebufferResized = false
private

◆ graphicsPipeline

VkPipeline GraphicCore::graphicsPipeline
private

◆ graphicsQueue

VkQueue GraphicCore::graphicsQueue
private

◆ graphicThread

std::thread GraphicCore::graphicThread
private

◆ imageAvailableSemaphores

std::vector<VkSemaphore> GraphicCore::imageAvailableSemaphores
private

◆ imagesInFlight

std::vector<VkFence> GraphicCore::imagesInFlight
private

◆ indexBuffer

VkBuffer GraphicCore::indexBuffer
private

◆ indexBufferMemory

VkDeviceMemory GraphicCore::indexBufferMemory
private

◆ indices

std::vector<uint16_t> GraphicCore::indices
private

◆ indicesToDraw

uint32_t GraphicCore::indicesToDraw = 0
private

◆ inFlightFences

std::vector<VkFence> GraphicCore::inFlightFences
private

◆ instance

VkInstance GraphicCore::instance
private

◆ instanceExtensions

std::vector<VkExtensionProperties> GraphicCore::instanceExtensions
private

◆ isStopped

bool GraphicCore::isStopped = false
private

◆ nextFigureHex

uint32_t GraphicCore::nextFigureHex = 0x0
private

◆ physicalDevice

VkPhysicalDevice GraphicCore::physicalDevice = VK_NULL_HANDLE
private

◆ pipelineLayout

VkPipelineLayout GraphicCore::pipelineLayout
private

◆ presentQueue

VkQueue GraphicCore::presentQueue
private

◆ renderFinishedSemaphores

std::vector<VkSemaphore> GraphicCore::renderFinishedSemaphores
private

◆ renderPass

VkRenderPass GraphicCore::renderPass
private

◆ renderQueue

RenderQueue GraphicCore::renderQueue
private

◆ stagingIndexBuffer

VkBuffer GraphicCore::stagingIndexBuffer
private

◆ stagingIndexBufferMemory

VkDeviceMemory GraphicCore::stagingIndexBufferMemory
private

◆ stagingVertexBuffer

VkBuffer GraphicCore::stagingVertexBuffer
private

◆ stagingVertexBufferMemory

VkDeviceMemory GraphicCore::stagingVertexBufferMemory
private

◆ stopMutex

std::mutex GraphicCore::stopMutex
private

◆ surface

VkSurfaceKHR GraphicCore::surface
private

◆ swapChain

VkSwapchainKHR GraphicCore::swapChain = VK_NULL_HANDLE
private

◆ swapChainExtent

VkExtent2D GraphicCore::swapChainExtent
private

◆ swapChainFramebuffers

std::vector<VkFramebuffer> GraphicCore::swapChainFramebuffers
private

◆ swapChainImageFormat

VkFormat GraphicCore::swapChainImageFormat
private

◆ swapChainImages

std::vector<VkImage> GraphicCore::swapChainImages
private

◆ swapChainImageViews

std::vector<VkImageView> GraphicCore::swapChainImageViews
private

◆ textureArrays

std::vector<TextureArray> GraphicCore::textureArrays
private

◆ texturePaths

std::vector<std::string> GraphicCore::texturePaths
private

◆ uniformBuffers

std::vector<VkBuffer> GraphicCore::uniformBuffers
private

◆ uniformBuffersMapped

std::vector<void*> GraphicCore::uniformBuffersMapped
private

◆ uniformBuffersMemory

std::vector<VkDeviceMemory> GraphicCore::uniformBuffersMemory
private

◆ vertexBuffer

VkBuffer GraphicCore::vertexBuffer
private

◆ vertexBufferMemory

VkDeviceMemory GraphicCore::vertexBufferMemory
private

◆ vertices

std::vector<Vertex> GraphicCore::vertices
private

◆ verticesChanged

bool GraphicCore::verticesChanged = false
private

◆ verticesCount

uint32_t GraphicCore::verticesCount = 0
private

◆ verticesMutex

std::mutex GraphicCore::verticesMutex
private

◆ window

GLFWwindow* GraphicCore::window
private

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