The Joe Engine
Joe's engine programming playground
JoeEngine Namespace Reference

Namespaces

 MemAllocUtils
 
 RNG
 

Classes

class  Entity
 The Entity class. More...
 
struct  je_framebuffer_attachment_t
 Generic framebuffer attachment data. More...
 
struct  je_offscreen_deferred_pass_t
 Offscreen deferred geometry rendering pass data. More...
 
struct  je_offscreen_forward_pass_t
 Offscreen forward rendering pass data. More...
 
struct  je_offscreen_shadow_pass_t
 Offscreen shadow rendering pass data. More...
 
struct  je_particle_system_settings_t
 Particle settings struct. More...
 
struct  je_post_processing_pass_t
 Post processing rendering pass data. More...
 
struct  JE_PushConst_ModelMat
 Model matrix struct data for push constants. More...
 
struct  JE_PushConst_ViewProj
 View-projection matrix struct data for push constants. More...
 
struct  je_single_mesh_t
 Single-instance mesh data (e.g. screen space triangle, bounding box visualization, etc). More...
 
struct  je_thread_job_t
 Thread Job struct. More...
 
class  JECamera
 The JECamera class. More...
 
class  JEComponentManager
 The Component Manager class. More...
 
class  JEDeferredGeometryShader
 The JEDeferredGeometryShader. More...
 
class  JEDeferredShader
 The JEDeferredShader class. More...
 
class  JEEngineInstance
 The Engine Instance class. More...
 
class  JEEntityManager
 The Entity Manager class. More...
 
class  JEForwardShader
 The JEForwardShader class. More...
 
class  JEForwardTranslucentShader
 The JEForwardTranslucentShader class. More...
 
class  JEIOHandler
 The JEIOHandler class. More...
 
class  JEMaterialComponentManager
 The Material Component Manager class. More...
 
class  JEMeshBufferManager
 The JEMeshBufferManager. More...
 
class  JEMeshComponentManager
 The Mesh Component Manager class. More...
 
struct  JEMeshPointVertex
 Point-mesh vertex attribute data. More...
 
struct  JEMeshVertex
 Triangle-mesh vertex attribute data. More...
 
class  JEOITSortShader
 The JEOITSortShader class. More...
 
class  JEParticleSystem
 The Particle System class. More...
 
class  JEPhysicsManager
 The Physics Manager class. More...
 
class  JEPointsShader
 The JEPointsShader. More...
 
class  JESceneManager
 The Scene Manager class. More...
 
class  JEShader
 The JEShader class. More...
 
class  JEShaderManager
 The JEShaderManger class. More...
 
class  JEShadowShader
 The JEShadowShader. More...
 
class  JETextureLibrary
 The JETextureLibrary class. More...
 
class  JEThreadPool
 The JEThreadPool class. More...
 
class  JETransformComponentManager
 The Transform Component Manager class. More...
 
struct  JEUBO_ViewProj_Inv
 Inverse view and inverse projection matrix struct data for push constants. More...
 
class  JEVulkanDescriptor
 The JEVulkanDescriptor class. More...
 
class  JEVulkanQueue
 The JEVulkanQueue class. More...
 
class  JEVulkanRenderer
 The JEVulkanRenderer class. More...
 
class  JEVulkanShader
 The JEVulkanShader. More...
 
class  JEVulkanSwapChain
 The JEVulkanSwapChain class. More...
 
class  JEVulkanValidationLayers
 The Vulkan validation layers class. More...
 
class  JEVulkanWindow
 The JEVulkanWindow class. More...
 
class  MaterialComponent
 The Material Component class. More...
 
class  MeshComponent
 The Mesh Component class. More...
 
struct  oit_atomic_ctr_t
 OIT atomic counter data. More...
 
struct  oit_hp_node_t
 OIT head pointer linked list node data. More...
 
struct  oit_ll_node_t
 OIT Color-depth linked list node data. More...
 
struct  oit_np_node_t
 OIT next pointer linked list node data. More...
 
class  PackedArray
 The PackedArray class. More...
 
struct  particle_update_data_t
 
struct  QueueFamilyIndices
 Queue family indices data struct. More...
 
class  ScopedTimer
 The ScopedTimer class. More...
 
struct  SwapChainSupportDetails
 Swap chain support detail data struct. More...
 
class  TransformComponent
 The Transform Component class. More...
 

Typedefs

typedef enum JoeEngine::JE_RENDER_LAYER RenderLayer
 Render layer enum. More...
 
typedef enum JoeEngine::JE_GEOM_TYPE GeomType
 Geometry type enum. More...
 
typedef enum JoeEngine::JE_MATERIAL_SETTINGS MaterialSettings
 Material Settings enum. More...
 
typedef struct JoeEngine::je_particle_system_settings_t JEParticleSystemSettings
 Particle settings struct. More...
 
typedef struct JoeEngine::particle_update_data_t ParticleUpdateData
 
using BoundingBoxData = std::array< glm::vec3, 8 >
 Typedef for bounding box data - a bounding box is a list of 8 3D points (corners of the box). More...
 
typedef enum JoeEngine::JE_PIPELINE_TYPE PipelineType
 Render pipeline type struct. More...
 
typedef struct JoeEngine::oit_ll_node_t OITLinkedListNode
 OIT Color-depth linked list node data. More...
 
typedef struct JoeEngine::oit_hp_node_t OITHeadPointerNode
 OIT head pointer linked list node data. More...
 
typedef struct JoeEngine::oit_np_node_t OITNextPointerNode
 OIT next pointer linked list node data. More...
 
typedef struct JoeEngine::oit_atomic_ctr_t OITAtomicCounterData
 OIT atomic counter data. More...
 
typedef struct JoeEngine::je_framebuffer_attachment_t JEFramebufferAttachment
 Generic framebuffer attachment data. More...
 
typedef struct JoeEngine::je_offscreen_forward_pass_t JEForwardPass
 Offscreen forward rendering pass data. More...
 
typedef struct JoeEngine::je_offscreen_shadow_pass_t JEOffscreenShadowPass
 Offscreen shadow rendering pass data. More...
 
typedef struct JoeEngine::je_offscreen_deferred_pass_t JEOffscreenDeferredPass
 Offscreen deferred geometry rendering pass data. More...
 
typedef struct JoeEngine::je_post_processing_pass_t JEPostProcessingPass
 Post processing rendering pass data. More...
 
typedef struct JoeEngine::je_single_mesh_t JESingleMesh
 Single-instance mesh data (e.g. screen space triangle, bounding box visualization, etc). More...
 
typedef enum JoeEngine::JE_RENDERER_SETTINGS_TYPE RendererSettings
 Engine renderer settings bit flag. More...
 
using JECallbackFunction = std::function< void()>
 Simple typedef for std::function. More...
 
typedef struct JoeEngine::je_thread_job_t JEThreadJob
 Thread Job struct. More...
 

Enumerations

enum  JE_RENDER_LAYER : uint32_t { OPAQUE = 0x0, TRANSLUCENT = 0xFFFF, MAX_LAYER = 0xFFFFFFFF }
 Render layer enum. More...
 
enum  JE_GEOM_TYPE : uint32_t { TRIANGLES = 0x0, LINES = 0x1, POINTS = 0x2 }
 Geometry type enum. More...
 
enum  JE_MATERIAL_SETTINGS : uint32_t { NO_SETTINGS = 0x0, RECEIVES_SHADOWS = 0x1, CASTS_SHADOWS = 0x2, ALL_SETTINGS = 0xF }
 Material Settings enum. More...
 
enum  JE_MESH_BUFFER_TYPE { MESH_TRIANGLES, MESH_LINES, MESH_POINTS }
 Mesh Buffer Type enum. More...
 
enum  JE_PIPELINE_TYPE : uint8_t {
  FORWARD, DEFERRED, SHADOW, DEFERRED_GEOM,
  FORWARD_POINTS, TRANSLUCENT_OIT, TRANSLUCENT_OIT_SORT
}
 Render pipeline type struct. More...
 
enum  JE_RENDERER_SETTINGS_TYPE : uint32_t { JE_RENDERER_SETTINGS_TYPE::Default = 0x0, JE_RENDERER_SETTINGS_TYPE::EnableDeferred = 0x1, JE_RENDERER_SETTINGS_TYPE::EnableOIT = 0x2, JE_RENDERER_SETTINGS_TYPE::AllSettings = 0xFFFFFFFF }
 Engine renderer settings bit flag. More...
 

Functions

void UpdateParticleSystems_MT (void *data)
 
QueueFamilyIndices FindQueueFamilies (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface)
 Find queue families. More...
 
std::vector< VkDeviceQueueCreateInfo > GetQueueCreateInfos (const QueueFamilyIndices &indices)
 Get queue create info data. More...
 
std::vector< char > ReadFile (const std::string &filename)
 Read a shader from a file source path. More...
 
VkShaderModule CreateShaderModule (VkDevice device, const std::vector< char > &code)
 Create a shader module object from shader source code. More...
 
VkCommandBuffer BeginSingleTimeCommands (VkDevice device, VkCommandPool commandPool)
 Begin single time command buffer recording. More...
 
void EndSingleTimeCommands (VkDevice device, VkCommandBuffer commandBuffer, const JEVulkanQueue &graphicsQueue, VkCommandPool commandPool)
 End single time command buffer recording. More...
 
bool HasStencilComponent (VkFormat format)
 Check if a depth format has a stencil component. More...
 
uint32_t FindMemoryType (VkPhysicalDevice physicalDevice, uint32_t typeFilter, VkMemoryPropertyFlags properties)
 Get memory for an allocation. More...
 
void CreateBuffer (VkPhysicalDevice physicalDevice, VkDevice device, VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags properties, VkBuffer &buffer, VkDeviceMemory &bufferMemory)
 Create buffer on the GPU. More...
 
void CopyBuffer (VkDevice device, VkCommandPool commandPool, const JEVulkanQueue &graphicsQueue, VkBuffer srcBuffer, VkBuffer dstBuffer, VkDeviceSize size)
 Copy buffer CPU to GPU. More...
 
void 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 CreateImageView (VkDevice device, VkImage image, VkFormat format, VkImageAspectFlags aspectFlags)
 Create image view. More...
 
void 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 FindSupportedFormat (VkPhysicalDevice physicalDevice, const std::vector< VkFormat > &candidates, VkImageTiling tiling, VkFormatFeatureFlags features)
 Check if several candidate formats are supported. More...
 
VkFormat FindDepthFormat (VkPhysicalDevice physicalDevice)
 Find a supported format among several candidate depth formats. More...
 
bool operator& (RendererSettings a, RendererSettings b)
 &-operator for Renderer Settings. More...
 
RendererSettings operator| (RendererSettings a, RendererSettings b)
 |- operator for Renderer Settings. More...
 
VkResult CreateDebugReportCallbackEXT (const VkInstance &instance, const VkDebugReportCallbackCreateInfoEXT *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkDebugReportCallbackEXT *pCallback)
 
void DestroyDebugReportCallbackEXT (const VkInstance &instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks *pAllocator)
 

Variables

const std::string JEBuiltInPostProcessingShaderPaths [2] = { "frag_post_chromatic_aberration.spv", "frag_post_grayscale.spv" }
 
constexpr int JE_DEFAULT_SCREEN_WIDTH = 1280
 Default screen resolution width. More...
 
constexpr int JE_DEFAULT_SCREEN_HEIGHT = 720
 Default screen resolution height. More...
 
constexpr uint32_t JE_DEFAULT_MAX_FRAMES_IN_FLIGHT = 2
 Default maximum number of frames in flight on the GPU. More...
 
constexpr int JE_NUM_ENTITIES = 10000
 Maximum number of entities in any given scene. More...
 
constexpr uint16_t JE_NUM_OIT_FRAGSPP = 16
 Maximum number of fragments per pixel for OIT. More...
 
constexpr int JE_DEFAULT_SHADOW_MAP_WIDTH = 4000
 Default shadow map resolution width. More...
 
constexpr int JE_DEFAULT_SHADOW_MAP_HEIGHT = 4000
 Default shadow map resolution height. More...
 
constexpr float JE_DEFAULT_SHADOW_MAP_DEPTH_BIAS_SLOPE = 1.5f
 Default shadow map depth bias - slope. More...
 
constexpr float JE_DEFAULT_SHADOW_MAP_DEPTH_BIAS_CONSTANT = 0.0f
 Default shadow map depth bias - constant. More...
 
const glm::vec3 JE_WORLD_UP = glm::vec3(0.0f, 1.0f, 0.0f)
 World up vector (Y is up). More...
 
constexpr float JE_SCENE_VIEW_NEAR_PLANE = 0.1f
 Scene camera near clip plane value. More...
 
constexpr float JE_SCENE_VIEW_FAR_PLANE = 200.0f
 Scene camera far clip plane value. More...
 
constexpr float JE_SHADOW_VIEW_NEAR_PLANE = 0.1f
 Shadow camera near clip plane value. More...
 
constexpr float JE_SHADOW_VIEW_FAR_PLANE = 200.0f
 Shadow camera far clip plane value. More...
 
const float JE_FOVY = glm::radians(22.5f)
 Scene camera FOV value. More...
 
const std::string JE_PROJECT_PATH
 Project path string. More...
 
const std::string JE_SHADER_DIR
 Shader directory path string. More...
 
const std::string JE_MODELS_OBJ_DIR
 OBJ models path string. More...
 
const std::string JE_TEXTURES_DIR
 Textures directory path string. More...
 
const int JE_KEY_W = GLFW_KEY_W
 Keypress - W. More...
 
const int JE_KEY_A = GLFW_KEY_A
 Keypress - A. More...
 
const int JE_KEY_S = GLFW_KEY_S
 Keypress - S. More...
 
const int JE_KEY_D = GLFW_KEY_D
 Keypress - D. More...
 
const int JE_KEY_Q = GLFW_KEY_Q
 Keypress - Q. More...
 
const int JE_KEY_E = GLFW_KEY_E
 Keypress - E. More...
 
const int JE_KEY_UP = GLFW_KEY_UP
 Keypress - Up arrow. More...
 
const int JE_KEY_LEFT = GLFW_KEY_LEFT
 Keypress - Left arrow. More...
 
const int JE_KEY_DOWN = GLFW_KEY_DOWN
 Keypress - Down arrow. More...
 
const int JE_KEY_RIGHT = GLFW_KEY_RIGHT
 Keypress - Right arrow. More...
 
const int JE_KEY_0 = GLFW_KEY_0
 Keypress - 0. More...
 
const int JE_KEY_1 = GLFW_KEY_1
 Keypress - 1. More...
 
const int JE_KEY_2 = GLFW_KEY_2
 Keypress - 2. More...
 
const int JE_KEY_3 = GLFW_KEY_3
 Keypress - 3. More...
 
const int JE_KEY_4 = GLFW_KEY_4
 Keypress - 4. More...
 
const int JE_KEY_5 = GLFW_KEY_5
 Keypress - 5. More...
 
const int JE_KEY_6 = GLFW_KEY_6
 Keypress - 6. More...
 
const int JE_KEY_7 = GLFW_KEY_7
 Keypress - 7. More...
 
const int JE_KEY_8 = GLFW_KEY_8
 Keypress - 8. More...
 
const int JE_KEY_9 = GLFW_KEY_9
 Keypress - 9. More...
 
JEThreadPool JEThreadPoolInstance = JEThreadPool()
 Thread pool instance. More...
 

Typedef Documentation

◆ BoundingBoxData

using JoeEngine::BoundingBoxData = typedef std::array<glm::vec3, 8>

Typedef for bounding box data - a bounding box is a list of 8 3D points (corners of the box).

◆ GeomType

Geometry type enum.

Indicates what type of geometry a material component will render.

◆ JECallbackFunction

using JoeEngine::JECallbackFunction = typedef std::function<void()>

Simple typedef for std::function.

◆ JEForwardPass

Offscreen forward rendering pass data.

◆ JEFramebufferAttachment

Generic framebuffer attachment data.

◆ JEOffscreenDeferredPass

Offscreen deferred geometry rendering pass data.

◆ JEOffscreenShadowPass

Offscreen shadow rendering pass data.

◆ JEParticleSystemSettings

Particle settings struct.

Data that specifies all possible settings necessary to create a particle system.

◆ JEPostProcessingPass

Post processing rendering pass data.

◆ JESingleMesh

Single-instance mesh data (e.g. screen space triangle, bounding box visualization, etc).

◆ JEThreadJob

Thread Job struct.

Data for executing any threaded task.

◆ MaterialSettings

Material Settings enum.

Indicates what material settings this material component has active/inactive.

◆ OITAtomicCounterData

OIT atomic counter data.

◆ OITHeadPointerNode

OIT head pointer linked list node data.

◆ OITLinkedListNode

OIT Color-depth linked list node data.

◆ OITNextPointerNode

OIT next pointer linked list node data.

◆ ParticleUpdateData

◆ PipelineType

Render pipeline type struct.

◆ RendererSettings

Engine renderer settings bit flag.

◆ RenderLayer

Render layer enum.

Indicates what render layer a material component should be rendered to.

Enumeration Type Documentation

◆ JE_GEOM_TYPE

enum JoeEngine::JE_GEOM_TYPE : uint32_t

Geometry type enum.

Indicates what type of geometry a material component will render.

Enumerator
TRIANGLES 
LINES 
POINTS 

◆ JE_MATERIAL_SETTINGS

Material Settings enum.

Indicates what material settings this material component has active/inactive.

Enumerator
NO_SETTINGS 
RECEIVES_SHADOWS 
CASTS_SHADOWS 
ALL_SETTINGS 

◆ JE_MESH_BUFFER_TYPE

Mesh Buffer Type enum.

Indicates what kind of buffer a mesh component refers to.

Enumerator
MESH_TRIANGLES 
MESH_LINES 
MESH_POINTS 

◆ JE_PIPELINE_TYPE

Render pipeline type struct.

Enumerator
FORWARD 
DEFERRED 
SHADOW 
DEFERRED_GEOM 
FORWARD_POINTS 
TRANSLUCENT_OIT 
TRANSLUCENT_OIT_SORT 

◆ JE_RENDER_LAYER

enum JoeEngine::JE_RENDER_LAYER : uint32_t

Render layer enum.

Indicates what render layer a material component should be rendered to.

Enumerator
OPAQUE 
TRANSLUCENT 
MAX_LAYER 

◆ JE_RENDERER_SETTINGS_TYPE

enum JoeEngine::JE_RENDERER_SETTINGS_TYPE : uint32_t
strong

Engine renderer settings bit flag.

Enumerator
Default 
EnableDeferred 
EnableOIT 
AllSettings 

Function Documentation

◆ BeginSingleTimeCommands()

VkCommandBuffer JoeEngine::BeginSingleTimeCommands ( VkDevice  device,
VkCommandPool  commandPool 
)

Begin single time command buffer recording.

Parameters
devicethe Vulkan logical device.
commandPoolthe Vulkan command pool.

◆ CopyBuffer()

void JoeEngine::CopyBuffer ( VkDevice  device,
VkCommandPool  commandPool,
const JEVulkanQueue graphicsQueue,
VkBuffer  srcBuffer,
VkBuffer  dstBuffer,
VkDeviceSize  size 
)

Copy buffer CPU to GPU.

◆ CreateBuffer()

void JoeEngine::CreateBuffer ( VkPhysicalDevice  physicalDevice,
VkDevice  device,
VkDeviceSize  size,
VkBufferUsageFlags  usage,
VkMemoryPropertyFlags  properties,
VkBuffer &  buffer,
VkDeviceMemory &  bufferMemory 
)

Create buffer on the GPU.

◆ CreateDebugReportCallbackEXT()

VkResult JoeEngine::CreateDebugReportCallbackEXT ( const VkInstance &  instance,
const VkDebugReportCallbackCreateInfoEXT *  pCreateInfo,
const VkAllocationCallbacks *  pAllocator,
VkDebugReportCallbackEXT *  pCallback 
)

◆ CreateImage()

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.

◆ CreateImageView()

VkImageView JoeEngine::CreateImageView ( VkDevice  device,
VkImage  image,
VkFormat  format,
VkImageAspectFlags  aspectFlags 
)

Create image view.

◆ CreateShaderModule()

VkShaderModule JoeEngine::CreateShaderModule ( VkDevice  device,
const std::vector< char > &  code 
)

Create a shader module object from shader source code.

Parameters
devicethe Vulkan logical device.
codethe shader source code.
Returns
a Vulkan shader module object.

◆ DestroyDebugReportCallbackEXT()

void JoeEngine::DestroyDebugReportCallbackEXT ( const VkInstance &  instance,
VkDebugReportCallbackEXT  callback,
const VkAllocationCallbacks *  pAllocator 
)

◆ EndSingleTimeCommands()

void JoeEngine::EndSingleTimeCommands ( VkDevice  device,
VkCommandBuffer  commandBuffer,
const JEVulkanQueue graphicsQueue,
VkCommandPool  commandPool 
)

End single time command buffer recording.

Parameters
devicethe Vulkan logical device.
commandBufferthe Vulkan commandBuffer
graphicsQueuethe Vulkan graphics queue.
commandPoolthe Vulkan command pool.

◆ FindDepthFormat()

VkFormat JoeEngine::FindDepthFormat ( VkPhysicalDevice  physicalDevice)

Find a supported format among several candidate depth formats.

◆ FindMemoryType()

uint32_t JoeEngine::FindMemoryType ( VkPhysicalDevice  physicalDevice,
uint32_t  typeFilter,
VkMemoryPropertyFlags  properties 
)

Get memory for an allocation.

◆ FindQueueFamilies()

QueueFamilyIndices JoeEngine::FindQueueFamilies ( VkPhysicalDevice  physicalDevice,
VkSurfaceKHR  surface 
)

Find queue families.

Finds which queue families the Vulkan physical device supports.

Parameters
physicalDevicethe Vulkan physical device to check for queue support with.
surfacethe Vulkan surface to check for queue support with.
Returns
a QueueFamilyIndices struct containing the necessary queue support info.

◆ FindSupportedFormat()

VkFormat JoeEngine::FindSupportedFormat ( VkPhysicalDevice  physicalDevice,
const std::vector< VkFormat > &  candidates,
VkImageTiling  tiling,
VkFormatFeatureFlags  features 
)

Check if several candidate formats are supported.

◆ GetQueueCreateInfos()

std::vector< VkDeviceQueueCreateInfo > JoeEngine::GetQueueCreateInfos ( const QueueFamilyIndices indices)

Get queue create info data.

Returns device queue create info structs given queue family indices.

Parameters
indicesthe given queue family indices data.
Returns
list of device queue create info structs for each supported queue family.

◆ HasStencilComponent()

bool JoeEngine::HasStencilComponent ( VkFormat  format)

Check if a depth format has a stencil component.

Parameters
formatthe format to check for stencil component presence.
Returns
true if the format has a stencil component, false otherwise.

◆ operator&()

bool JoeEngine::operator& ( RendererSettings  a,
RendererSettings  b 
)
inline

&-operator for Renderer Settings.

◆ operator|()

RendererSettings JoeEngine::operator| ( RendererSettings  a,
RendererSettings  b 
)
inline

|- operator for Renderer Settings.

◆ ReadFile()

std::vector< char > JoeEngine::ReadFile ( const std::string &  filename)

Read a shader from a file source path.

Parameters
filenamethe file path.
Returns
list of characters of the shader source.

◆ TransitionImageLayout()

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.

◆ UpdateParticleSystems_MT()

void JoeEngine::UpdateParticleSystems_MT ( void *  data)

Variable Documentation

◆ JE_DEFAULT_MAX_FRAMES_IN_FLIGHT

constexpr uint32_t JoeEngine::JE_DEFAULT_MAX_FRAMES_IN_FLIGHT = 2
constexpr

Default maximum number of frames in flight on the GPU.

◆ JE_DEFAULT_SCREEN_HEIGHT

constexpr int JoeEngine::JE_DEFAULT_SCREEN_HEIGHT = 720
constexpr

Default screen resolution height.

◆ JE_DEFAULT_SCREEN_WIDTH

constexpr int JoeEngine::JE_DEFAULT_SCREEN_WIDTH = 1280
constexpr

Default screen resolution width.

◆ JE_DEFAULT_SHADOW_MAP_DEPTH_BIAS_CONSTANT

constexpr float JoeEngine::JE_DEFAULT_SHADOW_MAP_DEPTH_BIAS_CONSTANT = 0.0f
constexpr

Default shadow map depth bias - constant.

◆ JE_DEFAULT_SHADOW_MAP_DEPTH_BIAS_SLOPE

constexpr float JoeEngine::JE_DEFAULT_SHADOW_MAP_DEPTH_BIAS_SLOPE = 1.5f
constexpr

Default shadow map depth bias - slope.

◆ JE_DEFAULT_SHADOW_MAP_HEIGHT

constexpr int JoeEngine::JE_DEFAULT_SHADOW_MAP_HEIGHT = 4000
constexpr

Default shadow map resolution height.

◆ JE_DEFAULT_SHADOW_MAP_WIDTH

constexpr int JoeEngine::JE_DEFAULT_SHADOW_MAP_WIDTH = 4000
constexpr

Default shadow map resolution width.

◆ JE_FOVY

const float JoeEngine::JE_FOVY = glm::radians(22.5f)

Scene camera FOV value.

◆ JE_KEY_0

const int JoeEngine::JE_KEY_0 = GLFW_KEY_0

Keypress - 0.

◆ JE_KEY_1

const int JoeEngine::JE_KEY_1 = GLFW_KEY_1

Keypress - 1.

◆ JE_KEY_2

const int JoeEngine::JE_KEY_2 = GLFW_KEY_2

Keypress - 2.

◆ JE_KEY_3

const int JoeEngine::JE_KEY_3 = GLFW_KEY_3

Keypress - 3.

◆ JE_KEY_4

const int JoeEngine::JE_KEY_4 = GLFW_KEY_4

Keypress - 4.

◆ JE_KEY_5

const int JoeEngine::JE_KEY_5 = GLFW_KEY_5

Keypress - 5.

◆ JE_KEY_6

const int JoeEngine::JE_KEY_6 = GLFW_KEY_6

Keypress - 6.

◆ JE_KEY_7

const int JoeEngine::JE_KEY_7 = GLFW_KEY_7

Keypress - 7.

◆ JE_KEY_8

const int JoeEngine::JE_KEY_8 = GLFW_KEY_8

Keypress - 8.

◆ JE_KEY_9

const int JoeEngine::JE_KEY_9 = GLFW_KEY_9

Keypress - 9.

◆ JE_KEY_A

const int JoeEngine::JE_KEY_A = GLFW_KEY_A

Keypress - A.

◆ JE_KEY_D

const int JoeEngine::JE_KEY_D = GLFW_KEY_D

Keypress - D.

◆ JE_KEY_DOWN

const int JoeEngine::JE_KEY_DOWN = GLFW_KEY_DOWN

Keypress - Down arrow.

◆ JE_KEY_E

const int JoeEngine::JE_KEY_E = GLFW_KEY_E

Keypress - E.

◆ JE_KEY_LEFT

const int JoeEngine::JE_KEY_LEFT = GLFW_KEY_LEFT

Keypress - Left arrow.

◆ JE_KEY_Q

const int JoeEngine::JE_KEY_Q = GLFW_KEY_Q

Keypress - Q.

◆ JE_KEY_RIGHT

const int JoeEngine::JE_KEY_RIGHT = GLFW_KEY_RIGHT

Keypress - Right arrow.

◆ JE_KEY_S

const int JoeEngine::JE_KEY_S = GLFW_KEY_S

Keypress - S.

◆ JE_KEY_UP

const int JoeEngine::JE_KEY_UP = GLFW_KEY_UP

Keypress - Up arrow.

◆ JE_KEY_W

const int JoeEngine::JE_KEY_W = GLFW_KEY_W

Keypress - W.

◆ JE_MODELS_OBJ_DIR

const std::string JoeEngine::JE_MODELS_OBJ_DIR

OBJ models path string.

◆ JE_NUM_ENTITIES

constexpr int JoeEngine::JE_NUM_ENTITIES = 10000
constexpr

Maximum number of entities in any given scene.

◆ JE_NUM_OIT_FRAGSPP

constexpr uint16_t JoeEngine::JE_NUM_OIT_FRAGSPP = 16
constexpr

Maximum number of fragments per pixel for OIT.

◆ JE_PROJECT_PATH

const std::string JoeEngine::JE_PROJECT_PATH

Project path string.

◆ JE_SCENE_VIEW_FAR_PLANE

constexpr float JoeEngine::JE_SCENE_VIEW_FAR_PLANE = 200.0f
constexpr

Scene camera far clip plane value.

◆ JE_SCENE_VIEW_NEAR_PLANE

constexpr float JoeEngine::JE_SCENE_VIEW_NEAR_PLANE = 0.1f
constexpr

Scene camera near clip plane value.

◆ JE_SHADER_DIR

const std::string JoeEngine::JE_SHADER_DIR

Shader directory path string.

◆ JE_SHADOW_VIEW_FAR_PLANE

constexpr float JoeEngine::JE_SHADOW_VIEW_FAR_PLANE = 200.0f
constexpr

Shadow camera far clip plane value.

◆ JE_SHADOW_VIEW_NEAR_PLANE

constexpr float JoeEngine::JE_SHADOW_VIEW_NEAR_PLANE = 0.1f
constexpr

Shadow camera near clip plane value.

◆ JE_TEXTURES_DIR

const std::string JoeEngine::JE_TEXTURES_DIR

Textures directory path string.

◆ JE_WORLD_UP

const glm::vec3 JoeEngine::JE_WORLD_UP = glm::vec3(0.0f, 1.0f, 0.0f)

World up vector (Y is up).

◆ JEBuiltInPostProcessingShaderPaths

const std::string JoeEngine::JEBuiltInPostProcessingShaderPaths[2] = { "frag_post_chromatic_aberration.spv", "frag_post_grayscale.spv" }

◆ JEThreadPoolInstance

JEThreadPool JoeEngine::JEThreadPoolInstance = JEThreadPool()

Thread pool instance.

The single thread pool instance. Note: extern, not static.