libmx2 2.2.1
C++20 multimedia and game-engine library (SDL2 / OpenGL / Vulkan)
Loading...
Searching...
No Matches
vk.hpp File Reference

Vulkan application window and supporting structs for libmx. More...

#include "config.h"
#include <SDL_vulkan.h>
#include <vulkan/vulkan.h>
#include "exception.hpp"
#include "util.hpp"
#include "vk_text.hpp"
#include "vk_sprite.hpp"
#include <iostream>
#include <stdexcept>
#include <cstdlib>
#include <vector>
#include <optional>
#include <set>
#include <fstream>
#include <algorithm>
#include <array>
#include <cmath>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <map>
#include <utility>
#include <SDL_ttf.h>
#include <memory>
Include dependency graph for vk.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mx::Vertex
 Per-vertex data sent to the Vulkan vertex buffer. More...
struct  mx::QueueFamilyIndices
 Tracks Vulkan queue family assignments needed to create a device. More...
struct  mx::SwapChainSupportDetails
 Swapchain capabilities and format/mode candidates for a physical device. More...
struct  mx::UniformBufferObject
 Standard UBO layout uploaded to shaders each frame. More...
class  mx::VKWindow
 Primary Vulkan rendering window and device management class. More...

Namespaces

namespace  mx

Macros

#define M_PI   3.14159265358979323846
#define VK_CHECK_RESULT(f)

Detailed Description

Vulkan application window and supporting structs for libmx.

Provides VKWindow, the primary Vulkan rendering window, along with supporting data structures (Vertex, QueueFamilyIndices, SwapChainSupportDetails, UniformBufferObject). Sprite and text rendering are delegated to VKSprite and VKText respectively.

Definition in file vk.hpp.

Macro Definition Documentation

◆ M_PI

#define M_PI   3.14159265358979323846

Definition at line 44 of file vk.hpp.

◆ VK_CHECK_RESULT

#define VK_CHECK_RESULT ( f)
Value:
{ \
VkResult res = (f); \
if (res != VK_SUCCESS) { \
throw mx::Exception("Fatal : VkResult is \"" + std::to_string(res) + "\" in " + __FILE__ + " at line " + std::to_string(__LINE__)); \
} \
}
General-purpose exception class for the mx library.
Definition exception.hpp:20

Definition at line 47 of file vk.hpp.

Referenced by mx::VKSprite::beginSingleTimeCommands(), mx::VKText::beginSingleTimeCommands(), mx::VKWindow::beginSingleTimeCommands(), mx::VKText::clearQueue(), mx::VKWindow::copyBuffer(), mx::VKSprite::createBuffer(), mx::VKText::createBuffer(), mx::VKSprite::createCustomPipeline(), mx::VKSprite::createDescriptorPool(), mx::VKText::createDescriptorPool(), mx::VKSprite::createDescriptorSet(), mx::VKText::createDescriptorSet(), mx::VKSprite::createEmptySprite(), mx::VKSprite::createExtendedDescriptorSet(), mx::VKSprite::createExtendedDescriptorSetLayout(), mx::VKSprite::createExtendedUBO(), mx::VKSprite::createImage(), mx::VKText::createImage(), mx::VKSprite::createImageView(), mx::VKText::createImageView(), mx::VKWindow::createInstance(), mx::VKSprite::createInstancedPipeline(), mx::VKSprite::createQuadBuffer(), mx::VKSprite::createSampler(), mx::VKSprite::createShaderModule(), mx::VKWindow::createSpriteDescriptorPool(), mx::VKWindow::createSpriteDescriptorSetLayout(), mx::VKWindow::createSpritePipeline(), mx::VKSprite::createSpriteTexture(), mx::VKSprite::createStagingResources(), mx::VKWindow::createTextDescriptorPool(), mx::VKWindow::createTextDescriptorSetLayout(), mx::VKWindow::createTextPipeline(), mx::VKWindow::createTextureImage(), mx::VKWindow::createUniformBuffers(), mx::VKWindow::draw(), mx::VKSprite::endSingleTimeCommands(), mx::VKText::endSingleTimeCommands(), mx::VKWindow::endSingleTimeCommands(), mx::VKSprite::ensureInstanceBuffer(), mx::VKText::initFont(), mx::VKText::printTextG_Solid(), mx::VKSprite::updateSpriteTexture(), and mx::VKWindow::updateTexture().