| Fling Engine 0.00.1 Fling Engine is a game engine written in Vulkan

Namespaces | Data Structures | Typedefs | Enumerations | Functions | Variables
Fling Namespace Reference

## Namespaces
| GraphicsHelpers
| Initializers
| ParseHelpers
| ShaderProgramReflections
| Stats
| VkConfig

## Data Structures
struct | AttachmentCreateInfo
| Describes the attributes of an attachment to be created. More...
class | BaseEditor
| The BaseEditor of the Fling Engine. More...
class | Buffer
| A Buffer represents a Vulkan buffer with a size, buffer pointer, and buffer memory. More...
class | Camera
| Base class for camera, meant to be overridden. More...
struct | CameraInfoUbo
class | CircularBuffer
| A simple circular buffer that will allow you get the next element in a buffer It does not ensure that the item is not in use, but simply loops around. More...
class | CommandBuffer
| Encapsulates functionality of a Vulkan Command buffer. More...
class | Cubemap
class | DebugSubpass
struct | DeferredLightSettings
| Settings for the max directional lights and max point lights. More...
class | DepthBuffer
struct | DescriptorInfo
class | DesktopWindow
| Base class that represents a window to the Fling Engine using GLFW. More...
struct | DirectionalLight
| Simple representation of a directional light for Fling. More...
class | Engine
| Core engine class of Fling. More...
class | File
| A file is a basic text file that contains a basic text file. More...
class | FileBrowser
class | FirstPersonCamera
| A simple first person camera. More...
class | FlingConfig
| Provide simple access to engine configuration options from an INI file #TODO Parse command line options as well. More...
struct | FlingPaths
| Static set of useful engine paths and directories. More...
class | FlingWindow
| Base class that represents a window to the Fling Engine. More...
class | FrameBuffer
struct | FrameBufferAttachment
class | FreeList
| Helpful for allocating/freeing objects of a certain size which have to be created/destroeyed dynamically. More...
class | Game
| The game class is mean to be overridden on a per-game instance. More...
class | GeometrySubpass
| The geometry subpass is in charge of sending the geometry portion of the Deferred pipeline to the GPU. More...
class | GraphicsPipeline
class | HDRImage
| Loads image R16G16B16_SFLOAT file formats exmplae file format : .hdr. More...
struct | Id
class | ImGuiSubpass
class | Input
| Base input class for polling input in the Fling Engine. More...
class | Instance
| The instance is a representation of this application graphics instance in Vulkan. More...
class | JsonFile
| A JsonFile provides an interface for easily using JSON files. More...
class | Key
struct | KeyNames
class | Level
| A level contains active objects and provides the environment for the player. More...
struct | Lighting
struct | LightingUbo
| Uniform buffer for passing lights to our final screen pass. More...
class | Logger
| Singleton class that allows logging to the console as well as async to a file. More...
class | LogicalDevice
| A logical device represents the application view of the device. More...
class | Material
| A material represents what properties should be given to a set of shaders. More...
class | MeshRenderer
class | Model
| A model represents a 3D model (.obj files for now) with vertices and indecies. More...
struct | MousePos
| represents the current mouse position in screen space More...
class | MovingAverage
| A moving average can be used to calculate things like FPS. More...
class | Multisampler
| A multi-sampler will allow us to enable MSAA. More...
struct | NameComponent
class | NonCopyable
| Class that removes the copy operator and constructor. More...
class | OffscreenSubpass
struct | OffscreenUBO
| UBO for mesh data. More...
struct | PBRTextures
| the properties of a PBR More...
class | PhysicalDevice
| A physical device represents the Vulkan physical device (the GPU) that we are currently using. More...
struct | PointLight
| Simple representation of a point light in Light Vox. More...
class | Random
class | RenderPipeline
| A render pipeline encapsulates the functionality of a. More...
class | Resource
| Base class that represents a loaded resource in the engine. More...
class | ResourceManager
| The resource manager handles loading of files off disk. More...
class | Shader
| Class that represents what a shader is in the Fling engine. More...
class | ShaderProgram
class | Singleton
| Class that can have only one instance. More...
class | StackAllocator
class | Subpass
| A subpass represents one part of a RenderPipeline. More...
class | Swapchain
| Represents a swap chain that can be used throughout the program. More...
struct | SwapChainSupportDetails
class | Texture
| An image represents a 2D file that has data about each pixel in the image. More...
class | Timing
struct | Transform
struct | UboSkyboxVS
struct | UboVS
| Representation of what vertex data of the dynamic UBO that there is only one of. More...
struct | Version
struct | Vertex
| Basic Vertex outline for use with our vertex buffers. More...
class | VulkanApp
| Core rendering functionality of the Fling Engine. More...
struct | WindowProps
| Window creation data. More...
class | World
| The world holds all active levels in the game. More...

## Typedefs
typedef entt::hashed_string | Guid
typedef entt::hashed_string::hash_type | Guid_Handle

## Enumerations
enum | KeyState : UINT8 { KeyState::NONE, KeyState::DOWN, KeyState::UP }
enum | ShaderProgramType { ShaderProgramType::PBR = 0, ShaderProgramType::Reflection = 1, ShaderProgramType::Deferred = 2, ShaderProgramType::MAX_COUNT }
enum | PipelineFlags { DEFERRED = (1u << 0), REFLECTIONS = (1u << 1), IMGUI = (1u << 2), CUBEMAP = (1u << 3), DEBUG = (1u << 4), ALL = 0xff }
| Configuration that can determine what render pipelines will be added to this application. More...

## Functions
std::ostream & | operator<< (std::ostream &t_OutStream, const Fling::Transform &t_Transform)
void * | AlignedAlloc (size_t t_Size, size_t t_Alignment)
void | AlignedFree (void *t_Data)
uintptr_t | AlignAddress (uintptr_t t_Addr, size_t t_Align)
template<typename T >
T * | AlignPointer (T *t_Ptr, size_t t_Align)

## Variables
static const unsigned | VULKAN_NUM_DESCRIPTOR_SETS = 4
static const unsigned | VULKAN_NUM_BINDINGS = 16
static const unsigned | VULKAN_NUM_ATTACHMENTS = 8
static const unsigned | VULKAN_NUM_VERTEX_ATTRIBS = 16
static const unsigned | VULKAN_NUM_VERTEX_BUFFERS = 4
static const unsigned | VULKAN_PUSH_CONSTANT_SIZE = 128
static const unsigned | VULKAN_UBO_SIZE = 16 * 1024
static const unsigned | VULKAN_NUM_SPEC_CONSTANTS = 8
static bool | bGlfwInitalized = false
const std::vector< VkDynamicState > | DYNAMIC_STATES = { VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR, VK_DYNAMIC_STATE_LINE_WIDTH }
static Guid | INVALID_GUID = { "INVALID_GUID"_hs }
std::chrono::high_resolution_clock::time_point | sStartTime

## Detailed Description

See also
  FlingAssetPaths.cpp.in

## Typedef Documentation

## ◆ Guid

typedef entt::hashed_string Fling::Guid

## ◆ Guid_Handle

typedef entt::hashed_string::hash_type Fling::Guid_Handle

## Enumeration Type Documentation

## ◆ KeyState

enum Fling::KeyState : UINT8
| strong

Enumerator
NONE |
DOWN |
UP |

## ◆ PipelineFlags

enum Fling::PipelineFlags

Configuration that can determine what render pipelines will be added to this application.

Enumerator
DEFERRED |
REFLECTIONS |
IMGUI |
CUBEMAP |
DEBUG |
ALL |

## ◆ ShaderProgramType

enum Fling::ShaderProgramType
| strong

Enumerator
PBR |
Reflection |
Deferred |
MAX_COUNT |

## Function Documentation

## ◆ AlignAddress()

uintptr_t Fling::AlignAddress | ( | uintptr_t | t_Addr,
|  | size_t | t_Align
| ) |  |
| inline

## ◆ AlignedAlloc()

void * Fling::AlignedAlloc | ( | size_t | t_Size,
|  | size_t | t_Alignment
| ) |  |

## ◆ AlignedFree()

void Fling::AlignedFree | ( | void * | t_Data | ) |

## ◆ AlignPointer()

template<typename T >

T* Fling::AlignPointer | ( | T * | t_Ptr,
|  | size_t | t_Align
| ) |  |
| inline

## ◆ operator<<()

std::ostream& Fling::operator<< | ( | std::ostream & | t_OutStream,
|  | const Fling::Transform & | t_Transform
| ) |  |

## Variable Documentation

## ◆ bGlfwInitalized

bool Fling::bGlfwInitalized = false
| static

## ◆ DYNAMIC_STATES

const std::vector<VkDynamicState> Fling::DYNAMIC_STATES = { VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR, VK_DYNAMIC_STATE_LINE_WIDTH }

## ◆ INVALID_GUID

Guid Fling::INVALID_GUID = { "INVALID_GUID"_hs }
| static

## ◆ sStartTime

std::chrono::high_resolution_clock::time_point Fling::sStartTime

## ◆ VULKAN_NUM_ATTACHMENTS

const unsigned Fling::VULKAN_NUM_ATTACHMENTS = 8
| static

## ◆ VULKAN_NUM_BINDINGS

const unsigned Fling::VULKAN_NUM_BINDINGS = 16
| static

## ◆ VULKAN_NUM_DESCRIPTOR_SETS

const unsigned Fling::VULKAN_NUM_DESCRIPTOR_SETS = 4
| static

## ◆ VULKAN_NUM_SPEC_CONSTANTS

const unsigned Fling::VULKAN_NUM_SPEC_CONSTANTS = 8
| static

## ◆ VULKAN_NUM_VERTEX_ATTRIBS

const unsigned Fling::VULKAN_NUM_VERTEX_ATTRIBS = 16
| static

## ◆ VULKAN_NUM_VERTEX_BUFFERS

const unsigned Fling::VULKAN_NUM_VERTEX_BUFFERS = 4
| static

## ◆ VULKAN_PUSH_CONSTANT_SIZE

const unsigned Fling::VULKAN_PUSH_CONSTANT_SIZE = 128
| static

## ◆ VULKAN_UBO_SIZE

const unsigned Fling::VULKAN_UBO_SIZE = 16 * 1024
| static