|
The Joe Engine
Joe's engine programming playground
|
#include <string>#include <functional>#include "GLFW/glfw3.h"#include "vulkan/vulkan.h"#include "../Rendering/VulkanQueue.h"#include "glm/glm.hpp"Namespaces | |
| JoeEngine | |
Macros | |
| #define | GLFW_INCLUDE_VULKAN |
| Tell GLFW to use Vulkan (https://www.glfw.org/docs/latest/vulkan_guide.html). More... | |
| #define | GLM_FORCE_RADIANS |
| Force GLM to use radians. More... | |
| #define | GLM_FORCE_DEPTH_ZERO_TO_ONE |
| Force GLM to keep depth values on the range [0, 1]. More... | |
| #define | GLM_ENABLE_EXPERIMENTAL |
| Enable experimental features of GLM. More... | |
| #define | GLM_FORCE_LEFT_HANDED |
| Force GLM to use left-handed coordinate systems. More... | |
Typedefs | |
| typedef enum JoeEngine::JE_RENDERER_SETTINGS_TYPE | JoeEngine::RendererSettings |
| Engine renderer settings bit flag. More... | |
| using | JoeEngine::JECallbackFunction = std::function< void()> |
| Simple typedef for std::function. More... | |
Enumerations | |
| enum | JoeEngine::JE_RENDERER_SETTINGS_TYPE : uint32_t { JoeEngine::JE_RENDERER_SETTINGS_TYPE::Default = 0x0, JoeEngine::JE_RENDERER_SETTINGS_TYPE::EnableDeferred = 0x1, JoeEngine::JE_RENDERER_SETTINGS_TYPE::EnableOIT = 0x2, JoeEngine::JE_RENDERER_SETTINGS_TYPE::AllSettings = 0xFFFFFFFF } |
| Engine renderer settings bit flag. More... | |
Functions | |
| bool | JoeEngine::operator& (RendererSettings a, RendererSettings b) |
| &-operator for Renderer Settings. More... | |
| RendererSettings | JoeEngine::operator| (RendererSettings a, RendererSettings b) |
| |- operator for Renderer Settings. More... | |
| VkCommandBuffer | JoeEngine::BeginSingleTimeCommands (VkDevice device, VkCommandPool commandPool) |
| Begin single time command buffer recording. More... | |
| void | JoeEngine::EndSingleTimeCommands (VkDevice device, VkCommandBuffer commandBuffer, const JEVulkanQueue &graphicsQueue, VkCommandPool commandPool) |
| End single time command buffer recording. More... | |
| bool | JoeEngine::HasStencilComponent (VkFormat format) |
| Check if a depth format has a stencil component. More... | |
| uint32_t | JoeEngine::FindMemoryType (VkPhysicalDevice physicalDevice, uint32_t typeFilter, VkMemoryPropertyFlags properties) |
| Get memory for an allocation. More... | |
| void | JoeEngine::CreateBuffer (VkPhysicalDevice physicalDevice, VkDevice device, VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer &buffer, VkDeviceMemory &bufferMemory) |
| Create buffer on the GPU. More... | |
| void | JoeEngine::CopyBuffer (VkDevice device, VkCommandPool commandPool, const JEVulkanQueue &graphicsQueue, VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size) |
| Copy buffer CPU to GPU. More... | |
| void | JoeEngine::CreateImage (VkPhysicalDevice physicalDevice, VkDevice device, uint32_t width, uint32_t height, VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage, VkMemoryPropertyFlags properties, VkImage &image, VkDeviceMemory &imageMemory) |
| Create image. More... | |
| VkImageView | JoeEngine::CreateImageView (VkDevice device, VkImage image, VkFormat format, VkImageAspectFlags aspectFlags) |
| Create image view. More... | |
| void | JoeEngine::TransitionImageLayout (VkDevice device, VkCommandPool commandPool, const JEVulkanQueue &graphicsQueue, VkImage image, VkFormat format, VkImageLayout oldLayout, VkImageLayout newLayout) |
| Transition image from initial to final layout. More... | |
| VkFormat | JoeEngine::FindSupportedFormat (VkPhysicalDevice physicalDevice, const std::vector< VkFormat > &candidates, VkImageTiling tiling, VkFormatFeatureFlags features) |
| Check if several candidate formats are supported. More... | |
| VkFormat | JoeEngine::FindDepthFormat (VkPhysicalDevice physicalDevice) |
| Find a supported format among several candidate depth formats. More... | |
Variables | |
| constexpr int | JoeEngine::JE_DEFAULT_SCREEN_WIDTH = 1280 |
| Default screen resolution width. More... | |
| constexpr int | JoeEngine::JE_DEFAULT_SCREEN_HEIGHT = 720 |
| Default screen resolution height. More... | |
| constexpr uint32_t | JoeEngine::JE_DEFAULT_MAX_FRAMES_IN_FLIGHT = 2 |
| Default maximum number of frames in flight on the GPU. More... | |
| constexpr int | JoeEngine::JE_NUM_ENTITIES = 10000 |
| Maximum number of entities in any given scene. More... | |
| constexpr uint16_t | JoeEngine::JE_NUM_OIT_FRAGSPP = 16 |
| Maximum number of fragments per pixel for OIT. More... | |
| constexpr int | JoeEngine::JE_DEFAULT_SHADOW_MAP_WIDTH = 4000 |
| Default shadow map resolution width. More... | |
| constexpr int | JoeEngine::JE_DEFAULT_SHADOW_MAP_HEIGHT = 4000 |
| Default shadow map resolution height. More... | |
| constexpr float | JoeEngine::JE_DEFAULT_SHADOW_MAP_DEPTH_BIAS_SLOPE = 1.5f |
| Default shadow map depth bias - slope. More... | |
| constexpr float | JoeEngine::JE_DEFAULT_SHADOW_MAP_DEPTH_BIAS_CONSTANT = 0.0f |
| Default shadow map depth bias - constant. More... | |
| const glm::vec3 | JoeEngine::JE_WORLD_UP = glm::vec3(0.0f, 1.0f, 0.0f) |
| World up vector (Y is up). More... | |
| constexpr float | JoeEngine::JE_SCENE_VIEW_NEAR_PLANE = 0.1f |
| Scene camera near clip plane value. More... | |
| constexpr float | JoeEngine::JE_SCENE_VIEW_FAR_PLANE = 200.0f |
| Scene camera far clip plane value. More... | |
| constexpr float | JoeEngine::JE_SHADOW_VIEW_NEAR_PLANE = 0.1f |
| Shadow camera near clip plane value. More... | |
| constexpr float | JoeEngine::JE_SHADOW_VIEW_FAR_PLANE = 200.0f |
| Shadow camera far clip plane value. More... | |
| const float | JoeEngine::JE_FOVY = glm::radians(22.5f) |
| Scene camera FOV value. More... | |
| const std::string | JoeEngine::JE_PROJECT_PATH |
| Project path string. More... | |
| const std::string | JoeEngine::JE_SHADER_DIR |
| Shader directory path string. More... | |
| const std::string | JoeEngine::JE_MODELS_OBJ_DIR |
| OBJ models path string. More... | |
| const std::string | JoeEngine::JE_TEXTURES_DIR |
| Textures directory path string. More... | |
| const int | JoeEngine::JE_KEY_W = GLFW_KEY_W |
| Keypress - W. More... | |
| const int | JoeEngine::JE_KEY_A = GLFW_KEY_A |
| Keypress - A. More... | |
| const int | JoeEngine::JE_KEY_S = GLFW_KEY_S |
| Keypress - S. More... | |
| const int | JoeEngine::JE_KEY_D = GLFW_KEY_D |
| Keypress - D. More... | |
| const int | JoeEngine::JE_KEY_Q = GLFW_KEY_Q |
| Keypress - Q. More... | |
| const int | JoeEngine::JE_KEY_E = GLFW_KEY_E |
| Keypress - E. More... | |
| const int | JoeEngine::JE_KEY_UP = GLFW_KEY_UP |
| Keypress - Up arrow. More... | |
| const int | JoeEngine::JE_KEY_LEFT = GLFW_KEY_LEFT |
| Keypress - Left arrow. More... | |
| const int | JoeEngine::JE_KEY_DOWN = GLFW_KEY_DOWN |
| Keypress - Down arrow. More... | |
| const int | JoeEngine::JE_KEY_RIGHT = GLFW_KEY_RIGHT |
| Keypress - Right arrow. More... | |
| const int | JoeEngine::JE_KEY_0 = GLFW_KEY_0 |
| Keypress - 0. More... | |
| const int | JoeEngine::JE_KEY_1 = GLFW_KEY_1 |
| Keypress - 1. More... | |
| const int | JoeEngine::JE_KEY_2 = GLFW_KEY_2 |
| Keypress - 2. More... | |
| const int | JoeEngine::JE_KEY_3 = GLFW_KEY_3 |
| Keypress - 3. More... | |
| const int | JoeEngine::JE_KEY_4 = GLFW_KEY_4 |
| Keypress - 4. More... | |
| const int | JoeEngine::JE_KEY_5 = GLFW_KEY_5 |
| Keypress - 5. More... | |
| const int | JoeEngine::JE_KEY_6 = GLFW_KEY_6 |
| Keypress - 6. More... | |
| const int | JoeEngine::JE_KEY_7 = GLFW_KEY_7 |
| Keypress - 7. More... | |
| const int | JoeEngine::JE_KEY_8 = GLFW_KEY_8 |
| Keypress - 8. More... | |
| const int | JoeEngine::JE_KEY_9 = GLFW_KEY_9 |
| Keypress - 9. More... | |
| #define GLFW_INCLUDE_VULKAN |
Tell GLFW to use Vulkan (https://www.glfw.org/docs/latest/vulkan_guide.html).
| #define GLM_ENABLE_EXPERIMENTAL |
Enable experimental features of GLM.
| #define GLM_FORCE_DEPTH_ZERO_TO_ONE |
Force GLM to keep depth values on the range [0, 1].
| #define GLM_FORCE_LEFT_HANDED |
Force GLM to use left-handed coordinate systems.
| #define GLM_FORCE_RADIANS |
Force GLM to use radians.