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

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

Enumerator
DEFERRED 
REFLECTIONS 
IMGUI 
CUBEMAP 
DEBUG 
ALL 

◆ ShaderProgramType

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