vengine  0.0.1
3D graphics engine
Loading...
Searching...
No Matches
ven Namespace Reference

Classes

class  ARenderSystemBase
 Abstract class for render system base. More...
 
class  Buffer
 Class for buffer. More...
 
class  Camera
 Class for camera. More...
 
struct  CameraConf
 
class  Clock
 Class for clock. More...
 
class  Colors
 Class for colors. More...
 
struct  Config
 
class  DescriptorPool
 Class for descriptor pool. More...
 
class  DescriptorSetLayout
 Class for descriptor set layout. More...
 
class  DescriptorWriter
 Class for descriptor writer. More...
 
class  Device
 Class for device. More...
 
class  Engine
 Class for engine. More...
 
class  EventManager
 Class for event manager. More...
 
struct  FrameInfo
 
struct  GlobalUbo
 
class  Gui
 Class for Gui. More...
 
struct  KeyAction
 
struct  KeyMappings
 
class  Light
 Class for light. More...
 
class  LightFactory
 Class for light factory. More...
 
struct  LightPushConstantData
 
class  Logger
 
class  Model
 Class for model. More...
 
class  ModelFactory
 Class for Model factory. More...
 
class  Object
 Class for object. More...
 
struct  ObjectBufferData
 
class  ObjectFactory
 Class for object factory. More...
 
struct  ObjectPushConstantData
 
class  ObjectRenderSystem
 Class for object render system. More...
 
class  Parser
 Class for Parser. More...
 
class  ParserException
 Custom exception class for parsing errors. More...
 
struct  PipelineConfigInfo
 
struct  PointLightData
 
class  PointLightRenderSystem
 Class for point light system. More...
 
struct  QueueFamilyIndices
 
class  Renderer
 Class for renderer. More...
 
class  SceneManager
 Class for object manager. More...
 
class  Shaders
 Class for shaders. More...
 
class  SwapChain
 Class for swap chain. More...
 
struct  SwapChainSupportDetails
 
class  Texture
 Class for texture. More...
 
class  TextureFactory
 Class for Texture factory. More...
 
class  Transform3D
 Class for 3D transformation. More...
 
class  Window
 Class for window. More...
 
struct  WindowConf
 

Typedefs

using TimePoint = std::chrono::time_point<std::chrono::high_resolution_clock>
 

Enumerations

enum  GUI_STATE : uint8_t { SHOW_EDITOR = 0 , SHOW_PLAYER = 1 , HIDDEN = 2 }
 
enum class  LogLevel : uint8_t { INFO , WARNING }
 
enum  ENGINE_STATE : uint8_t { EDITOR = 0 , PLAYER = 1 , PAUSED = 2 , EXIT = 3 }
 

Functions

template<typename T , typename... Rest>
void hashCombine (std::size_t &seed, const T &v, const Rest &... rest)
 
bool isNumeric (const std::string_view str)
 

Variables

static constexpr float EPSILON = std::numeric_limits<float>::epsilon()
 
static constexpr KeyMappings DEFAULT_KEY_MAPPINGS {}
 
static constexpr float DEFAULT_AMBIENT_LIGHT_INTENSITY = .2F
 
static constexpr glm::vec4 DEFAULT_AMBIENT_LIGHT_COLOR = {glm::vec3(1.F), DEFAULT_AMBIENT_LIGHT_INTENSITY}
 
static constexpr uint16_t DESCRIPTOR_COUNT = 1000
 
static constexpr std::string_view DEFAULT_TITLE = "VEngine"
 
static constexpr uint32_t DEFAULT_WIDTH = 1920
 
static constexpr uint32_t DEFAULT_HEIGHT = 1080
 
static constexpr Transform3D DEFAULT_TRANSFORM = {.translation = {0.F, 0.F, 0.F}, .scale = {0.1F, 0.F, 0.F}, .rotation = {0.F, 0.F, 0.F}}
 
static constexpr uint32_t DEFAULT_MAX_SETS = 1000
 
static constexpr VkClearColorValue DEFAULT_CLEAR_COLOR = {{0.0F, 0.0F, 0.0F, 1.0F}}
 
static constexpr VkClearDepthStencilValue DEFAULT_CLEAR_DEPTH = {1.0F, 0}
 
static constexpr std::string_view SHADERS_BIN_PATH = "build/shaders/"
 
static constexpr int MAX_FRAMES_IN_FLIGHT = 2
 
static constexpr glm::vec3 DEFAULT_POSITION {0.F, 0.F, -2.5F}
 
static constexpr glm::vec3 DEFAULT_ROTATION {0.F, 0.F, 0.F}
 
static constexpr float DEFAULT_FOV = glm::radians(50.0F)
 
static constexpr float DEFAULT_NEAR = 0.1F
 
static constexpr float DEFAULT_FAR = 100.F
 
static constexpr float DEFAULT_MOVE_SPEED = 3.F
 
static constexpr float DEFAULT_LOOK_SPEED = 1.5F
 
static constexpr float DEFAULT_LIGHT_INTENSITY = .2F
 
static constexpr float DEFAULT_LIGHT_RADIUS = 0.1F
 
static constexpr float DEFAULT_SHININESS = 32.F
 
static constexpr glm::vec4 DEFAULT_LIGHT_COLOR = {glm::vec3(1.F), DEFAULT_LIGHT_INTENSITY}
 
static constexpr uint8_t MAX_LIGHTS = 10
 
static constexpr uint16_t MAX_OBJECTS = 1000
 
static constexpr float COLOR_MAX = 255.0F
 
constexpr auto VERSION_MESSAGE
 
constexpr auto HELP_MESSAGE
 
static const std::unordered_map< std::string_view, std::function< void(Config &conf, std::string_view arg)> > FUNCTION_MAP_OPT_LONG
 
static const std::unordered_map< std::string_view, std::function< void(Config &conf)> > FUNCTION_MAP_OPT_SHORT
 

Typedef Documentation

◆ TimePoint

using ven::TimePoint = std::chrono::time_point<std::chrono::high_resolution_clock>

Definition at line 13 of file Clock.hpp.

Enumeration Type Documentation

◆ ENGINE_STATE

enum ven::ENGINE_STATE : uint8_t
Enumerator
EDITOR 
PLAYER 
PAUSED 
EXIT 

Definition at line 13 of file Utils.hpp.

◆ GUI_STATE

enum ven::GUI_STATE : uint8_t
Enumerator
SHOW_EDITOR 
SHOW_PLAYER 
HIDDEN 

Definition at line 19 of file Gui.hpp.

◆ LogLevel

enum class ven::LogLevel : uint8_t
strong
Enumerator
INFO 
WARNING 

Definition at line 23 of file Logger.hpp.

Function Documentation

◆ hashCombine()

template<typename T , typename... Rest>
void ven::hashCombine ( std::size_t & seed,
const T & v,
const Rest &... rest )

Definition at line 14 of file HashCombine.hpp.

References hashCombine().

Referenced by hashCombine(), and std::hash< ven::Model::Vertex >::operator()().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isNumeric()

bool ven::isNumeric ( const std::string_view str)
inline

Definition at line 44 of file Parser.hpp.

Variable Documentation

◆ COLOR_MAX

float ven::COLOR_MAX = 255.0F
staticconstexpr

Definition at line 15 of file Colors.hpp.

◆ DEFAULT_AMBIENT_LIGHT_COLOR

glm::vec4 ven::DEFAULT_AMBIENT_LIGHT_COLOR = {glm::vec3(1.F), DEFAULT_AMBIENT_LIGHT_INTENSITY}
staticconstexpr

Definition at line 19 of file FrameInfo.hpp.

◆ DEFAULT_AMBIENT_LIGHT_INTENSITY

float ven::DEFAULT_AMBIENT_LIGHT_INTENSITY = .2F
staticconstexpr

Definition at line 18 of file FrameInfo.hpp.

Referenced by ven::Gui::rendererSection().

◆ DEFAULT_CLEAR_COLOR

VkClearColorValue ven::DEFAULT_CLEAR_COLOR = {{0.0F, 0.0F, 0.0F, 1.0F}}
staticconstexpr

Definition at line 16 of file Renderer.hpp.

◆ DEFAULT_CLEAR_DEPTH

VkClearDepthStencilValue ven::DEFAULT_CLEAR_DEPTH = {1.0F, 0}
staticconstexpr

Definition at line 17 of file Renderer.hpp.

◆ DEFAULT_FAR

float ven::DEFAULT_FAR = 100.F
staticconstexpr

Definition at line 18 of file Camera.hpp.

Referenced by ven::Gui::cameraSection().

◆ DEFAULT_FOV

float ven::DEFAULT_FOV = glm::radians(50.0F)
staticconstexpr

Definition at line 16 of file Camera.hpp.

Referenced by ven::Gui::cameraSection().

◆ DEFAULT_HEIGHT

uint32_t ven::DEFAULT_HEIGHT = 1080
staticconstexpr

Definition at line 19 of file Window.hpp.

◆ DEFAULT_KEY_MAPPINGS

KeyMappings ven::DEFAULT_KEY_MAPPINGS {}
staticconstexpr

◆ DEFAULT_LIGHT_COLOR

glm::vec4 ven::DEFAULT_LIGHT_COLOR = {glm::vec3(1.F), DEFAULT_LIGHT_INTENSITY}
staticconstexpr

Definition at line 19 of file Light.hpp.

◆ DEFAULT_LIGHT_INTENSITY

float ven::DEFAULT_LIGHT_INTENSITY = .2F
staticconstexpr

Definition at line 16 of file Light.hpp.

Referenced by ven::Gui::lightsSection().

◆ DEFAULT_LIGHT_RADIUS

float ven::DEFAULT_LIGHT_RADIUS = 0.1F
staticconstexpr

Definition at line 17 of file Light.hpp.

◆ DEFAULT_LOOK_SPEED

float ven::DEFAULT_LOOK_SPEED = 1.5F
staticconstexpr

Definition at line 21 of file Camera.hpp.

Referenced by ven::Gui::cameraSection().

◆ DEFAULT_MAX_SETS

uint32_t ven::DEFAULT_MAX_SETS = 1000
staticconstexpr

Definition at line 15 of file Pool.hpp.

◆ DEFAULT_MOVE_SPEED

float ven::DEFAULT_MOVE_SPEED = 3.F
staticconstexpr

Definition at line 20 of file Camera.hpp.

Referenced by ven::Gui::cameraSection().

◆ DEFAULT_NEAR

float ven::DEFAULT_NEAR = 0.1F
staticconstexpr

Definition at line 17 of file Camera.hpp.

Referenced by ven::Gui::cameraSection().

◆ DEFAULT_POSITION

glm::vec3 ven::DEFAULT_POSITION {0.F, 0.F, -2.5F}
staticconstexpr

Definition at line 13 of file Camera.hpp.

Referenced by ven::Gui::cameraSection().

◆ DEFAULT_ROTATION

glm::vec3 ven::DEFAULT_ROTATION {0.F, 0.F, 0.F}
staticconstexpr

Definition at line 14 of file Camera.hpp.

Referenced by ven::Gui::cameraSection().

◆ DEFAULT_SHININESS

float ven::DEFAULT_SHININESS = 32.F
staticconstexpr

Definition at line 18 of file Light.hpp.

Referenced by ven::Gui::lightsSection().

◆ DEFAULT_TITLE

std::string_view ven::DEFAULT_TITLE = "VEngine"
staticconstexpr

Definition at line 17 of file Window.hpp.

◆ DEFAULT_TRANSFORM

Transform3D ven::DEFAULT_TRANSFORM = {.translation = {0.F, 0.F, 0.F}, .scale = {0.1F, 0.F, 0.F}, .rotation = {0.F, 0.F, 0.F}}
staticconstexpr

Definition at line 15 of file Light.hpp.

◆ DEFAULT_WIDTH

uint32_t ven::DEFAULT_WIDTH = 1920
staticconstexpr

Definition at line 18 of file Window.hpp.

◆ DESCRIPTOR_COUNT

uint16_t ven::DESCRIPTOR_COUNT = 1000
staticconstexpr

Definition at line 17 of file Gui.hpp.

Referenced by ven::Gui::init().

◆ EPSILON

float ven::EPSILON = std::numeric_limits<float>::epsilon()
staticconstexpr

Definition at line 34 of file EventManager.hpp.

Referenced by ven::EventManager::moveCamera().

◆ FUNCTION_MAP_OPT_LONG

const std::unordered_map<std::string_view, std::function<void(Config& conf, std::string_view arg)> > ven::FUNCTION_MAP_OPT_LONG
static

Definition at line 46 of file Parser.hpp.

Referenced by ven::Parser::handleLongOption(), and ven::Parser::isValidOption().

◆ FUNCTION_MAP_OPT_SHORT

const std::unordered_map<std::string_view, std::function<void(Config& conf)> > ven::FUNCTION_MAP_OPT_SHORT
static
Initial value:
= {
{ "h", [](Config& conf) { std::cout << HELP_MESSAGE; throw ParserException(""); } },
{ "v", [](Config& conf) { std::cout << VERSION_MESSAGE; throw ParserException(""); } },
{ "f", [](Config& conf) { conf.window.fullscreen = true; } },
{ "V", [](Config& conf) { conf.vsync = true; } }
}
constexpr auto HELP_MESSAGE
Definition Message.hpp:21

Definition at line 122 of file Parser.hpp.

Referenced by ven::Parser::handleShortOptions(), and ven::Parser::isValidOption().

◆ HELP_MESSAGE

auto ven::HELP_MESSAGE
constexpr
Initial value:
= "Usage: VEngine [options]\n"
"Options:\n"
" --help, -h Show this help message and exit\n"
" --version, -v Show version information and exit\n"
" --fullscreen, -f Enable fullscreen mode\n"
" --vsync, -V Enable vertical sync\n"
" --width <value> Set the width of the window (e.g., 800)\n"
" --height <value> Set the height of the window (e.g., 600)\n"
" --fov <value> Set the field of view (1.0 to 300.0)\n"
" --mspeed <value> Set the move speed (0.1 to 100.0)\n"
" --lspeed <value> Set the look speed (0.1 to 100.0)\n"
" --near <value> Set the near plane (0.1 to 100.0)\n"
" --far <value> Set the far plane (0.1 to 100.0)\n"

Definition at line 21 of file Message.hpp.

◆ MAX_FRAMES_IN_FLIGHT

◆ MAX_LIGHTS

uint8_t ven::MAX_LIGHTS = 10
staticconstexpr

Definition at line 21 of file Light.hpp.

Referenced by ven::LightFactory::create().

◆ MAX_OBJECTS

uint16_t ven::MAX_OBJECTS = 1000
staticconstexpr

Definition at line 17 of file Object.hpp.

Referenced by ven::ObjectFactory::create(), and ven::SceneManager::SceneManager().

◆ SHADERS_BIN_PATH

std::string_view ven::SHADERS_BIN_PATH = "build/shaders/"
staticconstexpr

◆ VERSION_MESSAGE

auto ven::VERSION_MESSAGE
constexpr
Initial value:
= "VEngine Version " PROJECT_VERSION "\n"
"Built on " __DATE__
" at " __TIME__ "\n"
"Author: Elliot Masina (masina.elliot@hotmail.fr)\n"
"License: MIT\n"
"Repository: https://github.com/bobis33/VEngine\n"
"Documentation: https://bobis33.github.io/VEngine\n"
#define PROJECT_VERSION
Definition Version.hpp:10

Definition at line 13 of file Message.hpp.