Loading...
Searching...
No Matches
hellfire Namespace Reference

Namespaces

namespace  Addons
 
namespace  tests
 
namespace  Utility
 

Classes

struct  AppInfo
 
class  Application
 
class  Asset
 
class  AssetImportManager
 
class  AssetManager
 
struct  AssetMetadata
 
class  AssetRegistry
 Registry for storing assets. More...
 
class  CameraComponent
 
struct  CameraData
 
class  Component
 
class  ComponentRegistry
 
class  Cube
 
class  DirectionalLight
 
class  Entity
 
struct  FileHeader
 File Header Validation. More...
 
class  Framebuffer
 
struct  FrameBufferAttachmentSettings
 
class  GLFWWindow
 
class  IApplicationConfig
 Application configuration interface. More...
 
class  IApplicationPlugin
 
class  IGraphicsContext
 Abstract graphics context. More...
 
struct  ImportedMesh
 Represents an imported mesh with its material binding. More...
 
struct  ImportedNode
 Represents a node in the imported model hierarchy. More...
 
struct  ImportResult
 Complete result of importing a model file. More...
 
struct  ImportSettings
 
class  InputManager
 
class  InstancedRenderableComponent
 
struct  InstancedRenderCommand
 
class  IWindow
 
class  IWindowEventHandler
 
class  LightComponent
 
class  Material
 
class  MaterialBuilder
 
struct  MaterialConstants
 
struct  MaterialData
 Serializable material data (separate from runtime Material class) More...
 
class  MaterialManager
 
class  MaterialSerializer
 
class  MaterialTextureSet
 
class  Mesh
 
class  MeshComponent
 
class  MeshSerializer
 
class  ModelImporter
 Converts external model formats (FBX, GLTF, OBJ) into internal assets this runs once during asset import, NOT at runtime! More...
 
class  ModelInstantiator
 Creates scene entities from an ImportResult. More...
 
class  ModelSerializer
 Serializes the ImportResult to a .hfmodel file. More...
 
struct  MousePos
 
class  OGLRendererContext
 
class  OpenGLContext
 
class  OrthographicCamera
 
class  PerspectiveCamera
 
class  PointLight
 
class  Project
 
struct  ProjectMetadata
 
class  Quad
 
class  RenderableComponent
 Renderable Component used for single mesh rendering. More...
 
struct  RenderCommand
 
class  Renderer
 
class  RenderingUtils
 
struct  RenderState
 
class  Scene
 Manages a collection of entities and their hierarchical relationships. More...
 
class  SceneAssetResolver
 
class  SceneEnvironment
 
class  SceneManager
 
class  ScriptComponent
 
struct  Serializer
 
struct  Serializer< LightComponent >
 
struct  Serializer< MeshComponent >
 
struct  Serializer< ProjectMetadata >
 
struct  Serializer< RenderableComponent >
 
struct  Serializer< Scene >
 
struct  Serializer< TransformComponent >
 
class  ServiceLocator
 
class  ShaderManager
 
class  ShaderRegistry
 
class  ShaderUniformBinder
 
struct  ShadowMapData
 
struct  ShadowSettings
 
class  Skybox
 
class  SkyboxRenderer
 
class  Sphere
 
class  SpotLight
 
class  Texture
 
class  TextureCache
 
class  TextureManager
 
struct  TextureMetadata
 Metadata for texture assets. More...
 
class  TextureSerializer
 
struct  TextureSettings
 
struct  Time
 
class  Transform3D
 
class  TransformComponent
 
struct  WindowInfo
 

Concepts

concept  ComponentType
 
concept  ScriptComponentType
 

Typedefs

using AssetID = uint64_t
 
using EntityID = uint32_t
 

Enumerations

enum class  AssetType {
  MODEL , MESH , TEXTURE , MATERIAL ,
  SCENE , SHADER , UNKNOWN
}
 
enum class  MeshSource { INTERNAL , EXTERNAL }
 
enum class  MeshInternalType : uint8_t { NONE = 0 , CUBE = 1 , SPHERE = 2 , QUAD = 3 }
 
enum class  TextureType {
  DIFFUSE , SPECULAR , NORMAL , AMBIENT_OCCLUSION ,
  ROUGHNESS , METALNESS , EMISSIVE , HEIGHT ,
  OPACITY
}
 
enum class  TextureFilter { NEAREST , LINEAR , LINEAR_MIPMAP_LINEAR , NEAREST_MIPMAP_NEAREST }
 
enum class  TextureWrap { REPEAT , CLAMP_TO_EDGE , CLAMP_TO_BORDER , MIRRORED_REPEAT }
 
enum class  CameraType { PERSPECTIVE , ORTHOGRAPHIC }
 
enum  CursorMode { HIDDEN , DISABLED , SHOWN }
 
enum class  BlendMode { NONE , ALPHA , ADDITIVE , MULTIPLY }
 
enum class  DepthTest {
  DISABLED , LESS , LESS_EQUAL , GREATER ,
  EQUAL
}
 
enum class  CullMode { NONE , FRONT , BACK , FRONT_AND_BACK }
 

Functions

TextureType infer_texture_type (const std::string &name)
 
void register_all_components ()
 
static nlohmann::json serialize_transform (const hellfire::Component *c)
 
bool file_exists (const std::string &filename)
 
static const char * texture_type_to_string (TextureType type)
 
static TextureType string_to_texture_type (const std::string &str)
 
template<typename T >
void write_binary (std::ostream &out, const T &val)
 Binary I/O.
 
template<typename T >
bool read_binary (std::istream &in, T &val)
 
template<typename T >
void write_binary_vector (std::ostream &out, const std::vector< T > &vec)
 
template<typename T >
bool read_binary_vector (std::istream &in, std::vector< T > &vec)
 
void write_binary_string (std::ostream &out, const std::string &str)
 
bool read_binary_string (std::istream &in, std::string &str)
 
void write_binary (std::ostream &out, const glm::vec2 &v)
 GLM Binary I/O.
 
void write_binary (std::ostream &out, const glm::vec3 &v)
 
void write_binary (std::ostream &out, const glm::vec4 &v)
 
void write_binary (std::ostream &out, const glm::quat &q)
 
void write_binary (std::ostream &out, const glm::mat4 &m)
 
void write_binary (std::ostream &out, const glm::mat3 &m)
 
bool read_binary (std::istream &in, glm::vec2 &v)
 
bool read_binary (std::istream &in, glm::vec3 &v)
 
bool read_binary (std::istream &in, glm::vec4 &v)
 
bool read_binary (std::istream &in, glm::quat &q)
 
bool read_binary (std::istream &in, glm::mat4 &m)
 
bool read_binary (std::istream &in, glm::mat3 &m)
 
void write_binary (std::ostream &out, const Vertex &v)
 Vertex I/O.
 
bool read_binary (std::istream &in, Vertex &v)
 
void write_vertex_vector (std::ostream &out, const std::vector< Vertex > &vec)
 
bool read_vertex_vector (std::istream &in, std::vector< Vertex > &vec)
 
std::optional< glm::vec2 > json_get_vec2 (const nlohmann::json &j, const std::string &key)
 JSON Helpers.
 
std::optional< glm::vec3 > json_get_vec3 (const nlohmann::json &j, const std::string &key)
 
std::optional< glm::vec3 > json_to_vec3 (const nlohmann::json &j)
 
std::optional< glm::vec4 > json_get_vec4 (const nlohmann::json &j, const std::string &key)
 
nlohmann::json vec2_to_json (const glm::vec2 &v)
 
nlohmann::json vec3_to_json (const glm::vec3 &v)
 
nlohmann::json vec4_to_json (const glm::vec4 &v)
 
bool write_header (std::ostream &out, uint32_t magic, uint32_t version)
 
bool read_and_validate_header (std::istream &in, uint32_t expected_magic, uint32_t max_version, uint32_t &out_version)
 
static std::filesystem::path get_meta_path (const std::filesystem::path &texture_path)
 

Variables

constexpr AssetID INVALID_ASSET_ID = 0
 
float skyboxVertices []
 

Typedef Documentation

◆ AssetID

using hellfire::AssetID = typedef uint64_t

Definition at line 11 of file AssetRegistry.h.

◆ EntityID

typedef uint32_t hellfire::EntityID

Definition at line 17 of file ModelLoader.h.

Enumeration Type Documentation

◆ AssetType

enum class hellfire::AssetType
strong
Enumerator
MODEL 
MESH 
TEXTURE 
MATERIAL 
SCENE 
SHADER 
UNKNOWN 

Definition at line 14 of file AssetRegistry.h.

◆ BlendMode

enum class hellfire::BlendMode
strong
Enumerator
NONE 
ALPHA 
ADDITIVE 
MULTIPLY 

Definition at line 9 of file graphics_api.h.

◆ CameraType

enum class hellfire::CameraType
strong
Enumerator
PERSPECTIVE 
ORTHOGRAPHIC 

Definition at line 10 of file CameraComponent.h.

◆ CullMode

enum class hellfire::CullMode
strong
Enumerator
NONE 
FRONT 
BACK 
FRONT_AND_BACK 

Definition at line 24 of file graphics_api.h.

◆ CursorMode

Enumerator
HIDDEN 
DISABLED 
SHOWN 

Definition at line 11 of file IWindow.h.

◆ DepthTest

enum class hellfire::DepthTest
strong
Enumerator
DISABLED 
LESS 
LESS_EQUAL 
GREATER 
EQUAL 

Definition at line 16 of file graphics_api.h.

◆ MeshInternalType

enum class hellfire::MeshInternalType : uint8_t
strong
Enumerator
NONE 
CUBE 
SPHERE 
QUAD 

Definition at line 16 of file MeshComponent.h.

◆ MeshSource

enum class hellfire::MeshSource
strong
Enumerator
INTERNAL 
EXTERNAL 

Definition at line 11 of file MeshComponent.h.

◆ TextureFilter

enum class hellfire::TextureFilter
strong
Enumerator
NEAREST 
LINEAR 
LINEAR_MIPMAP_LINEAR 
NEAREST_MIPMAP_NEAREST 

Definition at line 25 of file Texture.h.

◆ TextureType

enum class hellfire::TextureType
strong
Enumerator
DIFFUSE 
SPECULAR 
NORMAL 
AMBIENT_OCCLUSION 
ROUGHNESS 
METALNESS 
EMISSIVE 
HEIGHT 
OPACITY 

Definition at line 13 of file Texture.h.

◆ TextureWrap

enum class hellfire::TextureWrap
strong
Enumerator
REPEAT 
CLAMP_TO_EDGE 
CLAMP_TO_BORDER 
MIRRORED_REPEAT 

Definition at line 32 of file Texture.h.

Function Documentation

◆ file_exists()

bool hellfire::file_exists ( const std::string &  filename)

Definition at line 368 of file Texture.cpp.

◆ get_meta_path()

static std::filesystem::path hellfire::get_meta_path ( const std::filesystem::path &  texture_path)
static

Definition at line 12 of file TextureSerializer.cpp.

◆ infer_texture_type()

TextureType hellfire::infer_texture_type ( const std::string &  name)

Definition at line 17 of file AssetImportManager.cpp.

◆ json_get_vec2()

std::optional< glm::vec2 > hellfire::json_get_vec2 ( const nlohmann::json &  j,
const std::string &  key 
)
inline

JSON Helpers.

Definition at line 165 of file SerializerUtils.h.

◆ json_get_vec3()

std::optional< glm::vec3 > hellfire::json_get_vec3 ( const nlohmann::json &  j,
const std::string &  key 
)
inline

Definition at line 172 of file SerializerUtils.h.

◆ json_get_vec4()

std::optional< glm::vec4 > hellfire::json_get_vec4 ( const nlohmann::json &  j,
const std::string &  key 
)
inline

Definition at line 193 of file SerializerUtils.h.

◆ json_to_vec3()

std::optional< glm::vec3 > hellfire::json_to_vec3 ( const nlohmann::json &  j)
inline

Definition at line 183 of file SerializerUtils.h.

◆ read_and_validate_header()

bool hellfire::read_and_validate_header ( std::istream &  in,
uint32_t  expected_magic,
uint32_t  max_version,
uint32_t &  out_version 
)
inline

Definition at line 230 of file SerializerUtils.h.

◆ read_binary() [1/8]

bool hellfire::read_binary ( std::istream &  in,
glm::mat3 &  m 
)
inline

Definition at line 120 of file SerializerUtils.h.

◆ read_binary() [2/8]

bool hellfire::read_binary ( std::istream &  in,
glm::mat4 &  m 
)
inline

Definition at line 115 of file SerializerUtils.h.

◆ read_binary() [3/8]

bool hellfire::read_binary ( std::istream &  in,
glm::quat &  q 
)
inline

Definition at line 110 of file SerializerUtils.h.

◆ read_binary() [4/8]

bool hellfire::read_binary ( std::istream &  in,
glm::vec2 &  v 
)
inline

Definition at line 95 of file SerializerUtils.h.

◆ read_binary() [5/8]

bool hellfire::read_binary ( std::istream &  in,
glm::vec3 &  v 
)
inline

Definition at line 100 of file SerializerUtils.h.

◆ read_binary() [6/8]

bool hellfire::read_binary ( std::istream &  in,
glm::vec4 &  v 
)
inline

Definition at line 105 of file SerializerUtils.h.

◆ read_binary() [7/8]

template<typename T >
bool hellfire::read_binary ( std::istream &  in,
T &  val 
)

Definition at line 22 of file SerializerUtils.h.

◆ read_binary() [8/8]

bool hellfire::read_binary ( std::istream &  in,
Vertex v 
)
inline

Definition at line 135 of file SerializerUtils.h.

◆ read_binary_string()

bool hellfire::read_binary_string ( std::istream &  in,
std::string &  str 
)
inline

Definition at line 58 of file SerializerUtils.h.

◆ read_binary_vector()

template<typename T >
bool hellfire::read_binary_vector ( std::istream &  in,
std::vector< T > &  vec 
)

Definition at line 39 of file SerializerUtils.h.

◆ read_vertex_vector()

bool hellfire::read_vertex_vector ( std::istream &  in,
std::vector< Vertex > &  vec 
)
inline

Definition at line 154 of file SerializerUtils.h.

◆ register_all_components()

void hellfire::register_all_components ( )

Definition at line 11 of file ComponentRegistration.cpp.

◆ serialize_transform()

static nlohmann::json hellfire::serialize_transform ( const hellfire::Component c)
static

Definition at line 10 of file TransformComponent.cpp.

◆ string_to_texture_type()

static TextureType hellfire::string_to_texture_type ( const std::string &  str)
static

Definition at line 130 of file MaterialSerializer.cpp.

◆ texture_type_to_string()

static const char * hellfire::texture_type_to_string ( TextureType  type)
static

Definition at line 117 of file MaterialSerializer.cpp.

◆ vec2_to_json()

nlohmann::json hellfire::vec2_to_json ( const glm::vec2 &  v)
inline

Definition at line 205 of file SerializerUtils.h.

◆ vec3_to_json()

nlohmann::json hellfire::vec3_to_json ( const glm::vec3 &  v)
inline

Definition at line 209 of file SerializerUtils.h.

◆ vec4_to_json()

nlohmann::json hellfire::vec4_to_json ( const glm::vec4 &  v)
inline

Definition at line 213 of file SerializerUtils.h.

◆ write_binary() [1/8]

void hellfire::write_binary ( std::ostream &  out,
const glm::mat3 &  m 
)
inline

Definition at line 91 of file SerializerUtils.h.

◆ write_binary() [2/8]

void hellfire::write_binary ( std::ostream &  out,
const glm::mat4 &  m 
)
inline

Definition at line 87 of file SerializerUtils.h.

◆ write_binary() [3/8]

void hellfire::write_binary ( std::ostream &  out,
const glm::quat &  q 
)
inline

Definition at line 83 of file SerializerUtils.h.

◆ write_binary() [4/8]

void hellfire::write_binary ( std::ostream &  out,
const glm::vec2 &  v 
)
inline

GLM Binary I/O.

Definition at line 71 of file SerializerUtils.h.

◆ write_binary() [5/8]

void hellfire::write_binary ( std::ostream &  out,
const glm::vec3 &  v 
)
inline

Definition at line 75 of file SerializerUtils.h.

◆ write_binary() [6/8]

void hellfire::write_binary ( std::ostream &  out,
const glm::vec4 &  v 
)
inline

Definition at line 79 of file SerializerUtils.h.

◆ write_binary() [7/8]

template<typename T >
void hellfire::write_binary ( std::ostream &  out,
const T &  val 
)

Binary I/O.

Definition at line 16 of file SerializerUtils.h.

◆ write_binary() [8/8]

void hellfire::write_binary ( std::ostream &  out,
const Vertex v 
)
inline

Vertex I/O.

Definition at line 126 of file SerializerUtils.h.

◆ write_binary_string()

void hellfire::write_binary_string ( std::ostream &  out,
const std::string &  str 
)
inline

Definition at line 50 of file SerializerUtils.h.

◆ write_binary_vector()

template<typename T >
void hellfire::write_binary_vector ( std::ostream &  out,
const std::vector< T > &  vec 
)

Definition at line 29 of file SerializerUtils.h.

◆ write_header()

bool hellfire::write_header ( std::ostream &  out,
uint32_t  magic,
uint32_t  version 
)
inline

Definition at line 224 of file SerializerUtils.h.

◆ write_vertex_vector()

void hellfire::write_vertex_vector ( std::ostream &  out,
const std::vector< Vertex > &  vec 
)
inline

Definition at line 146 of file SerializerUtils.h.

Variable Documentation

◆ INVALID_ASSET_ID

constexpr AssetID hellfire::INVALID_ASSET_ID = 0
constexpr

Definition at line 12 of file AssetRegistry.h.

◆ skyboxVertices

float hellfire::skyboxVertices[]

Definition at line 16 of file SkyboxRenderer.cpp.