VenomEngine
Cross-Platform Modern Graphics Engine
Loading...
Searching...
No Matches
venom::common Namespace Reference

High-Level Frontend of the VenomEngine project. It also contains all the code shared between every APIs/Dynamic Libraries. But most importantly, that is where the abstraction is setup for the different APIs contained in this project. Use the alias 'vc' to access the namespace. More...

Classes

class  BindlessTexturesIdManager
 
class  Camera
 Camera class Classic layout with position, rotation and projection matrices. More...
 
struct  CameraCascadedShadowMapData
 
struct  CameraFocusData
 
class  CameraImpl
 
class  Config
 
class  Context
 
class  ContextPlugin
 
class  DeferredTrash
 
class  DeferredTrashBin
 
class  DLL
 Contains a shared library handle and provides a way to get symbols from it, can only be created through DLL::Create() More...
 
class  DLL_Cache
 Holds all DLLs loaded in memory unless explicitly unloaded/deleted. Only instantiable by VenomEngine as it must not be deleted before all DLLs are unloaded. And also to centralize every wannabe singletons into one. More...
 
class  ECS
 Entity Component System Will mainly encapsulate the fabulous flecs library (https://github.com/SanderMertens/flecs.git) This class will be contained in the VenomEngine class. Also manages/lists all components types for browsing. More...
 
class  EXR_TextureLoader
 
class  Filesystem
 
class  FpsCounter
 
class  GraphicsApplication
 
class  GraphicsCachedResource
 Base class for cached resources. More...
 
class  GraphicsCachedResourceHolder
 Base class for cached resource holders. More...
 
class  GraphicsPlugin
 
class  GraphicsPluginObject
 Base class for graphics plugin objects. More...
 
class  GraphicsSettings
 
struct  GraphicsSettingsData
 
class  GUI
 
class  IPluginObject
 
class  Light
 
struct  LightCascadedShadowMapConstantsStruct
 
class  LightImpl
 
class  LightIndexAllocator
 
struct  LightShaderStruct
 
class  Log
 
class  Material
 
class  MaterialComponent
 MaterialComponent Contains all the data of a material component. More...
 
class  MaterialImpl
 
class  MemoryPool
 MemoryPool class to manage memory allocation and deallocation. For now, it's just a wrapper around memory C functions. More...
 
class  Mesh
 Contains all the mesh's data and is the main high-level interface for the user. More...
 
class  MeshImpl
 
class  Model
 Contains all the mesh's data and is the main high-level interface for the user. More...
 
class  ModelImpl
 
class  ModelResource
 
class  Plugin
 
class  PluginManager
 
class  PluginObject
 Base class for all the plugin objects Objects that will be loaded from the plugins as their implementations lie there As a user of VenomEngine, you should not care about that, unless you plan to create your own plugin. More...
 
class  PluginObjectImpl
 Interface for the PluginObject different implementations. More...
 
class  PluginObjectImplWrapper
 Wrapper for the PluginObjectImpl, inherited by classes like Model or Mesh to make them usable as components (for ECS) and hold the Graphics API specific implementation. More...
 
class  PluginObjectOptional
 Container for the PluginObjectImplWrapper Important to avoid it from loading the PluginObjectImpl if not needed e.g. if the object is optional. More...
 
class  RenderingPipeline
 Interface with shader pipelines and shader settings. More...
 
class  RenderingPipelineImpl
 
class  RenderPass
 
class  RenderPassImpl
 
class  RenderTarget
 
class  RenderTargetImpl
 
class  Resources
 
class  SceneSettings
 
struct  SceneSettingsData
 
class  Screen
 
class  ScreenVideoMode
 
class  ShaderPipeline
 
class  ShaderPipelineImpl
 
class  ShaderResource
 
class  ShaderResourceTable
 
class  Skybox
 
class  SkyboxImpl
 
struct  SkyboxShaderData
 
class  StaticVenomCanCreateComponent
 
class  Stbi_TextureLoader
 
class  Texture
 
class  TextureImpl
 
class  TextureLoader
 
class  TextureResource
 
class  Timer
 
class  Transform3D
 
class  VenomComponent
 
class  VenomEngine
 Main class of the engine This class will be the main entry point of the engine. It will contain all the main components of the engine, as singleton are harder to manage, especially for unit tests and memory management. More...
 
class  VenomSettings
 

Concepts

concept  InheritsFromComponent
 
concept  ValidGraphicsCachedResource
 
concept  ValidGraphicsCachedResourceHolder
 
concept  NotPluginObject
 

Typedefs

template<typename Return, typename... Args>
using Callback = std::function<Return(Args...)>
 
template<typename T>
using Vector = std::vector<T>
 
template<typename T>
using Stack = std::stack<T>
 
template<typename T>
using Queue = std::queue<T>
 
template<class T, size_t N>
using Array = std::array<T, N>
 
template<typename T, typename Compare = std::less<T>>
using Set = std::set<T, Compare>
 
template<typename T, size_t N1, size_t N2>
using Array2D = std::array<std::array<T, N2>, N1>
 
template<typename T, typename U, typename Compare = std::less<T>>
using Map = std::map<T, U, Compare>
 
template<typename T, typename U>
using UMap = std::unordered_map<T, U>
 
template<typename... Args>
using Tuple = std::tuple<Args...>
 
template<class... Args>
using MakeTuple = decltype(std::make_tuple(std::declval<Args>()...))
 
using Entity = flecs::entity
 
typedef flecs::system System
 
typedef VenomComponent Component
 
template<typename Return, typename... Args>
using Function = std::function<Return(Args...)>
 
typedef int8_t KeyboardModifierState
 
typedef Callback< void > GraphicsCallback
 
typedef void(* GUIDrawCallback) ()
 
typedef void * GUIViewport
 
typedef int GUIWindowFlags
 
typedef int GUIChildFlags
 
typedef int GUIColorEditFlags
 
typedef int GUIInputTextFlags
 
typedef int GUIComboFlags
 
typedef int GUISelectableFlags
 
typedef int GUICond
 
typedef int GUITreeNodeFlags
 
typedef int GUIDockNodeFlags
 
typedef int GUIPopupFlags
 
typedef unsigned int GUIId
 
typedef vc::Vector< ShaderPipelineShaderPipelineList
 
template<NotPluginObject T>
using WPtr = std::weak_ptr<T>
 
template<NotPluginObject T>
using SPtr = std::shared_ptr<T>
 
template<NotPluginObject T>
using UPtr = std::unique_ptr<T>
 
using String = std::string
 
using Thread = std::thread
 
template<typename T>
using Atomic = std::atomic<T>
 
using Mutex = std::mutex
 
using LockGuard = std::lock_guard<std::mutex>
 
using UniqueLock = std::unique_lock<std::mutex>
 
using ConditionVariable = std::condition_variable
 
typedef void(* SceneCallback) (const ScenePhase)
 
typedef void(* LoopCallback) ()
 
typedef void(* InputCallback) (Context *)
 

Enumerations

enum  InputState : int8_t { Released = 0x1 , Pressed = 0x2 , Repeat = 0x4 }
 
enum  KeyboardInput {
  KeyboardUnknown = 0 , KeyboardA = 1 , KeyboardB = 2 , KeyboardC = 3 ,
  KeyboardD = 4 , KeyboardE = 5 , KeyboardF = 6 , KeyboardG = 7 ,
  KeyboardH = 8 , KeyboardI = 9 , KeyboardJ = 10 , KeyboardK = 11 ,
  KeyboardL = 12 , KeyboardM = 13 , KeyboardN = 14 , KeyboardO = 15 ,
  KeyboardP = 16 , KeyboardQ = 17 , KeyboardR = 18 , KeyboardS = 19 ,
  KeyboardT = 20 , KeyboardU = 21 , KeyboardV = 22 , KeyboardW = 23 ,
  KeyboardX = 24 , KeyboardY = 25 , KeyboardZ = 26 , Keyboard0 = 27 ,
  Keyboard1 = 28 , Keyboard2 = 29 , Keyboard3 = 30 , Keyboard4 = 31 ,
  Keyboard5 = 32 , Keyboard6 = 33 , Keyboard7 = 34 , Keyboard8 = 35 ,
  Keyboard9 = 36 , KeyboardEscape = 37 , KeyboardEnter = 38 , KeyboardTab = 39 ,
  KeyboardBackspace = 40 , KeyboardInsert = 41 , KeyboardDelete = 42 , KeyboardRight = 43 ,
  KeyboardLeft = 44 , KeyboardDown = 45 , KeyboardUp = 46 , KeyboardPageUp = 47 ,
  KeyboardPageDown = 48 , KeyboardHome = 49 , KeyboardEnd = 50 , KeyboardCapsLock = 51 ,
  KeyboardScrollLock = 52 , KeyboardNumLock = 53 , KeyboardPrintScreen = 54 , KeyboardPause = 55 ,
  KeyboardF1 = 56 , KeyboardF2 = 57 , KeyboardF3 = 58 , KeyboardF4 = 59 ,
  KeyboardF5 = 60 , KeyboardF6 = 61 , KeyboardF7 = 62 , KeyboardF8 = 63 ,
  KeyboardF9 = 64 , KeyboardF10 = 65 , KeyboardF11 = 66 , KeyboardF12 = 67 ,
  KeyboardF13 = 68 , KeyboardF14 = 69 , KeyboardF15 = 70 , KeyboardF16 = 71 ,
  KeyboardF17 = 72 , KeyboardF18 = 73 , KeyboardF19 = 74 , KeyboardF20 = 75 ,
  KeyboardF21 = 76 , KeyboardF22 = 77 , KeyboardF23 = 78 , KeyboardF24 = 79 ,
  KeyboardF25 = 80 , KeyboardKP0 = 81 , KeyboardKP1 = 82 , KeyboardKP2 = 83 ,
  KeyboardKP3 = 84 , KeyboardKP4 = 85 , KeyboardKP5 = 86 , KeyboardKP6 = 87 ,
  KeyboardKP7 = 88 , KeyboardKP8 = 89 , KeyboardKP9 = 90 , KeyboardKPDecimal = 91 ,
  KeyboardKPDivide = 92 , KeyboardKPMultiply = 93 , KeyboardKPSubtract = 94 , KeyboardKPAdd = 95 ,
  KeyboardKPEnter = 96 , KeyboardKPEqual = 97 , KeyboardLeftShift = 98 , KeyboardLeftControl = 99 ,
  KeyboardLeftAlt = 100 , KeyboardLeftSuper = 101 , KeyboardRightShift = 102 , KeyboardRightControl = 103 ,
  KeyboardRightAlt = 104 , KeyboardRightSuper = 105 , KeyboardMenu = 106 , KeyboardSpace = 107 ,
  KeyboardApostrophe = 108 , KeyboardComma = 109 , KeyboardMinus = 110 , KeyboardPeriod = 111 ,
  KeyboardSlash = 112 , KeyboardSemicolon = 113 , KeyboardEqual = 114 , KeyboardLeftBracket = 115 ,
  KeyboardBackslash = 116 , KeyboardRightBracket = 117 , KeyboardGraveAccent = 118 , KeyboardWorld1 = 119 ,
  KeyboardWorld2 = 120 , KeyboardTotal
}
 
enum  KeyboardModifier { KeyboardModShift = 0x0001 , KeyboardModControl = 0x0002 , KeyboardModAlt = 0x0004 , KeyboardModSuper = 0x0008 }
 
enum  MouseButton {
  MouseButton1 = 0 , MouseButton2 = 1 , MouseButton3 = 2 , MouseButton4 = 3 ,
  MouseButton5 = 4 , MouseButton6 = 5 , MouseButton7 = 6 , MouseButton8 = 7 ,
  MouseButtonLast = MouseButton8 , MouseButtonLeft = MouseButton1 , MouseButtonRight = MouseButton2 , MouseButtonMiddle = MouseButton3 ,
  MouseTotal
}
 
enum  GUIWindowFlagsBits {
  GUIWindowFlags_None = 0 , GUIWindowFlags_NoTitleBar = 1 << 0 , GUIWindowFlags_NoResize = 1 << 1 , GUIWindowFlags_NoMove = 1 << 2 ,
  GUIWindowFlags_NoScrollbar = 1 << 3 , GUIWindowFlags_NoScrollWithMouse = 1 << 4 , GUIWindowFlags_NoCollapse = 1 << 5 , GUIWindowFlags_AlwaysAutoResize = 1 << 6 ,
  GUIWindowFlags_NoBackground = 1 << 7 , GUIWindowFlags_NoSavedSettings = 1 << 8 , GUIWindowFlags_NoMouseInputs = 1 << 9 , GUIWindowFlags_MenuBar = 1 << 10 ,
  GUIWindowFlags_HorizontalScrollbar = 1 << 11 , GUIWindowFlags_NoFocusOnAppearing = 1 << 12 , GUIWindowFlags_NoBringToFrontOnFocus = 1 << 13 , GUIWindowFlags_AlwaysVerticalScrollbar = 1 << 14 ,
  GUIWindowFlags_AlwaysHorizontalScrollbar =1<< 15 , GUIWindowFlags_NoNavInputs = 1 << 16 , GUIWindowFlags_NoNavFocus = 1 << 17 , GUIWindowFlags_UnsavedDocument = 1 << 18 ,
  GUIWindowFlags_NoDocking = 1 << 19 , GUIWindowFlags_NoNav = GUIWindowFlags_NoNavInputs | GUIWindowFlags_NoNavFocus , GUIWindowFlags_NoDecoration = GUIWindowFlags_NoTitleBar | GUIWindowFlags_NoResize | GUIWindowFlags_NoScrollbar | GUIWindowFlags_NoCollapse , GUIWindowFlags_NoInputs = GUIWindowFlags_NoMouseInputs | GUIWindowFlags_NoNavInputs | GUIWindowFlags_NoNavFocus ,
  GUIWindowFlags_ChildWindow = 1 << 24 , GUIWindowFlags_Tooltip = 1 << 25 , GUIWindowFlags_Popup = 1 << 26 , GUIWindowFlags_Modal = 1 << 27 ,
  GUIWindowFlags_ChildMenu = 1 << 28
}
 
enum  GUIChildFlagsBits {
  GUIChildFlags_None = 0 , GUIChildFlags_Borders = 1 << 0 , GUIChildFlags_AlwaysUseWindowPadding = 1 << 1 , GUIChildFlags_ResizeX = 1 << 2 ,
  GUIChildFlags_ResizeY = 1 << 3 , GUIChildFlags_AutoResizeX = 1 << 4 , GUIChildFlags_AutoResizeY = 1 << 5 , GUIChildFlags_AlwaysAutoResize = 1 << 6 ,
  GUIChildFlags_FrameStyle = 1 << 7 , GUIChildFlags_NavFlattened = 1 << 8
}
 
enum  GUIColorEditFlagsBits {
  GUIColorEditFlags_None = 0 , GUIColorEditFlags_NoAlpha = 1 << 1 , GUIColorEditFlags_NoPicker = 1 << 2 , GUIColorEditFlags_NoOptions = 1 << 3 ,
  GUIColorEditFlags_NoSmallPreview = 1 << 4 , GUIColorEditFlags_NoInputs = 1 << 5 , GUIColorEditFlags_NoTooltip = 1 << 6 , GUIColorEditFlags_NoLabel = 1 << 7 ,
  GUIColorEditFlags_NoSidePreview = 1 << 8 , GUIColorEditFlags_NoDragDrop = 1 << 9 , GUIColorEditFlags_NoBorder = 1 << 10 , GUIColorEditFlags_AlphaBar = 1 << 16 ,
  GUIColorEditFlags_AlphaPreview = 1 << 17 , GUIColorEditFlags_AlphaPreviewHalf = 1 << 18 , GUIColorEditFlags_HDR = 1 << 19 , GUIColorEditFlags_DisplayRGB = 1 << 20 ,
  GUIColorEditFlags_DisplayHSV = 1 << 21 , GUIColorEditFlags_DisplayHex = 1 << 22 , GUIColorEditFlags_Uint8 = 1 << 23 , GUIColorEditFlags_Float = 1 << 24 ,
  GUIColorEditFlags_PickerHueBar = 1 << 25 , GUIColorEditFlags_PickerHueWheel = 1 << 26 , GUIColorEditFlags_InputRGB = 1 << 27 , GUIColorEditFlags_InputHSV = 1 << 28 ,
  GUIColorEditFlags_DefaultOptions_ = GUIColorEditFlags_Uint8 | GUIColorEditFlags_DisplayRGB | GUIColorEditFlags_InputRGB | GUIColorEditFlags_PickerHueBar , GUIColorEditFlags_DisplayMask_ = GUIColorEditFlags_DisplayRGB | GUIColorEditFlags_DisplayHSV | GUIColorEditFlags_DisplayHex , GUIColorEditFlags_DataTypeMask_ = GUIColorEditFlags_Uint8 | GUIColorEditFlags_Float , GUIColorEditFlags_PickerMask_ = GUIColorEditFlags_PickerHueWheel | GUIColorEditFlags_PickerHueBar ,
  GUIColorEditFlags_InputMask_ = GUIColorEditFlags_InputRGB | GUIColorEditFlags_InputHSV
}
 
enum  GUIInputTextFlagsBits {
  GUIInputTextFlags_None = 0 , GUIInputTextFlags_CharsDecimal = 1 << 0 , GUIInputTextFlags_CharsHexadecimal = 1 << 1 , GUIInputTextFlags_CharsScientific = 1 << 2 ,
  GUIInputTextFlags_CharsUppercase = 1 << 3 , GUIInputTextFlags_CharsNoBlank = 1 << 4 , GUIInputTextFlags_AllowTabInput = 1 << 5 , GUIInputTextFlags_EnterReturnsTrue = 1 << 6 ,
  GUIInputTextFlags_EscapeClearsAll = 1 << 7 , GUIInputTextFlags_CtrlEnterForNewLine = 1 << 8 , GUIInputTextFlags_ReadOnly = 1 << 9 , GUIInputTextFlags_Password = 1 << 10 ,
  GUIInputTextFlags_AlwaysOverwrite = 1 << 11 , GUIInputTextFlags_AutoSelectAll = 1 << 12 , GUIInputTextFlags_ParseEmptyRefVal = 1 << 13 , GUIInputTextFlags_DisplayEmptyRefVal = 1 << 14 ,
  GUIInputTextFlags_NoHorizontalScroll = 1 << 15 , GUIInputTextFlags_NoUndoRedo = 1 << 16 , GUIInputTextFlags_CallbackCompletion = 1 << 17 , GUIInputTextFlags_CallbackHistory = 1 << 18 ,
  GUIInputTextFlags_CallbackAlways = 1 << 19 , GUIInputTextFlags_CallbackCharFilter = 1 << 20 , GUIInputTextFlags_CallbackResize = 1 << 21 , GUIInputTextFlags_CallbackEdit = 1 << 22
}
 
enum  GuiComboFlagsBits {
  GUIComboFlags_None = 0 , GUIComboFlags_PopupAlignLeft = 1 << 0 , GUIComboFlags_HeightSmall = 1 << 1 , GUIComboFlags_HeightRegular = 1 << 2 ,
  GUIComboFlags_HeightLarge = 1 << 3 , GUIComboFlags_HeightLargest = 1 << 4 , GUIComboFlags_NoArrowButton = 1 << 5 , GUIComboFlags_NoPreview = 1 << 6 ,
  GUIComboFlags_WidthFitPreview = 1 << 7 , GUIComboFlags_HeightMask_ = GUIComboFlags_HeightSmall | GUIComboFlags_HeightRegular | GUIComboFlags_HeightLarge | GUIComboFlags_HeightLargest
}
 
enum  GUISelectableFlagsBits {
  GUISelectableFlags_None = 0 , GUISelectableFlags_NoAutoClosePopups = 1 << 0 , GUISelectableFlags_SpanAllColumns = 1 << 1 , GUISelectableFlags_AllowDoubleClick = 1 << 2 ,
  GUISelectableFlags_Disabled = 1 << 3 , GUISelectableFlags_AllowOverlap = 1 << 4 , GUISelectableFlags_Highlight = 1 << 5
}
 
enum  GUICondBits {
  GUICond_None = 0 , GUICond_Always = 1 << 0 , GUICond_Once = 1 << 1 , GUICond_FirstUseEver = 1 << 2 ,
  GUICond_Appearing = 1 << 3
}
 
enum  GUITreeNodeFlagsBits {
  GUITreeNodeFlags_None = 0 , GUITreeNodeFlags_Selected = 1 << 0 , GUITreeNodeFlags_Framed = 1 << 1 , GUITreeNodeFlags_AllowOverlap = 1 << 2 ,
  GUITreeNodeFlags_NoTreePushOnOpen = 1 << 3 , GUITreeNodeFlags_NoAutoOpenOnLog = 1 << 4 , GUITreeNodeFlags_DefaultOpen = 1 << 5 , GUITreeNodeFlags_OpenOnDoubleClick = 1 << 6 ,
  GUITreeNodeFlags_OpenOnArrow = 1 << 7 , GUITreeNodeFlags_Leaf = 1 << 8 , GUITreeNodeFlags_Bullet = 1 << 9 , GUITreeNodeFlags_FramePadding = 1 << 10 ,
  GUITreeNodeFlags_SpanAvailWidth = 1 << 11 , GUITreeNodeFlags_SpanFullWidth = 1 << 12 , GUITreeNodeFlags_SpanTextWidth = 1 << 13 , GUITreeNodeFlags_SpanAllColumns = 1 << 14 ,
  GUITreeNodeFlags_NavLeftJumpsBackHere = 1 << 15 , GUITreeNodeFlags_CollapsingHeader = GUITreeNodeFlags_Framed | GUITreeNodeFlags_NoTreePushOnOpen | GUITreeNodeFlags_NoAutoOpenOnLog
}
 
enum  GUIDockNodeFlagsBits {
  GUIDockNodeFlags_None = 0 , GUIDockNodeFlags_KeepAliveOnly = 1 << 0 , GUIDockNodeFlags_NoDockingOverCentralNode = 1 << 2 , GUIDockNodeFlags_PassthruCentralNode = 1 << 3 ,
  GUIDockNodeFlags_NoDockingSplit = 1 << 4 , GUIDockNodeFlags_NoResize = 1 << 5 , GUIDockNodeFlags_AutoHideTabBar = 1 << 6 , GUIDockNodeFlags_DockSpace = 1 << 10 ,
  GUIDockNodeFlags_CentralNode = 1 << 11 , GUIDockNodeFlags_NoTabBar = 1 << 12 , GUIDockNodeFlags_HiddenTabBar = 1 << 13 , GUIDockNodeFlags_NoWindowMenuButton = 1 << 14 ,
  GUIDockNodeFlags_NoCloseButton = 1 << 15 , GUIDockNodeFlags_NoResizeX = 1 << 16 , GUIDockNodeFlags_NoResizeY = 1 << 17 , GUIDockNodeFlags_DockedWindowsInFocusRoute = 1 << 18 ,
  GUIDockNodeFlags_NoDockingSplitOther = 1 << 19 , GUIDockNodeFlags_NoDockingOverMe = 1 << 20 , GUIDockNodeFlags_NoDockingOverOther = 1 << 21 , GUIDockNodeFlags_NoDockingOverEmpty = 1 << 22 ,
  GUIDockNodeFlags_NoDocking = GUIDockNodeFlags_NoDockingOverMe | GUIDockNodeFlags_NoDockingOverOther | GUIDockNodeFlags_NoDockingOverEmpty | GUIDockNodeFlags_NoDockingSplit | GUIDockNodeFlags_NoDockingSplitOther , GUIDockNodeFlags_SharedFlagsInheritMask_ = ~0 , GUIDockNodeFlags_NoResizeFlagsMask_ = (int)GUIDockNodeFlags_NoResize | GUIDockNodeFlags_NoResizeX | GUIDockNodeFlags_NoResizeY , GUIDockNodeFlags_LocalFlagsTransferMask_ = (int)GUIDockNodeFlags_NoDockingSplit | GUIDockNodeFlags_NoResizeFlagsMask_ | (int)GUIDockNodeFlags_AutoHideTabBar | GUIDockNodeFlags_CentralNode | GUIDockNodeFlags_NoTabBar | GUIDockNodeFlags_HiddenTabBar | GUIDockNodeFlags_NoWindowMenuButton | GUIDockNodeFlags_NoCloseButton ,
  GUIDockNodeFlags_SavedFlagsMask_ = GUIDockNodeFlags_NoResizeFlagsMask_ | GUIDockNodeFlags_DockSpace | GUIDockNodeFlags_CentralNode | GUIDockNodeFlags_NoTabBar | GUIDockNodeFlags_HiddenTabBar | GUIDockNodeFlags_NoWindowMenuButton | GUIDockNodeFlags_NoCloseButton
}
 
enum  GUIPopupFlagsBits {
  GUIPopupFlags_None = 0 , GUIPopupFlags_MouseButtonLeft = 0 , GUIPopupFlags_MouseButtonRight = 1 , GUIPopupFlags_MouseButtonMiddle = 2 ,
  GUIPopupFlags_MouseButtonMask_ = 0x1F , GUIPopupFlags_MouseButtonDefault_ = 1 , GUIPopupFlags_NoReopen = 1 << 5 , GUIPopupFlags_NoOpenOverExistingPopup = 1 << 7 ,
  GUIPopupFlags_NoOpenOverItems = 1 << 8 , GUIPopupFlags_AnyPopupId = 1 << 10 , GUIPopupFlags_AnyPopupLevel = 1 << 11 , GUIPopupFlags_AnyPopup = GUIPopupFlags_AnyPopupId | GUIPopupFlags_AnyPopupLevel
}
 
enum  GUIDir : int {
  GUIDir_None = -1 , GUIDir_Left = 0 , GUIDir_Right = 1 , GUIDir_Up = 2 ,
  GUIDir_Down = 3 , GUIDir_COUNT
}
 
enum class  LightType { Directional = 0 , Point = 1 , Spot = 2 , Count }
 
enum  MaterialComponentType {
  AMBIENT , DIFFUSE , SPECULAR , EMISSIVE ,
  SHININESS , OPACITY , NORMAL , HEIGHT ,
  REFLECTION , REFLECTIVITY , REFRACTION , TRANSPARENT ,
  ANISOTROPY , BASE_COLOR , METALLIC , ROUGHNESS ,
  AMBIENT_OCCLUSION , EMISSION_COLOR , TRANSMISSION , SHEEN ,
  CLEARCOAT , MAX_COMPONENT
}
 MaterialComponentType Contains all the possible components of a material that VenomEngine can handle.
 
enum  MaterialComponentValueType {
  NONE , FLOAT3D = 1 , FLOAT4D = 2 , FLOAT1D = 4 ,
  TEXTURE = 8
}
 MaterialComponentValueType Contains all the possible value types of a material component.
 
enum  MaterialComponentValueChannels {
  R = 0b1 , G = 0b10 , B = 0b100 , A = 0b1000 ,
  RG = R | G , GB = G | B , BA = B | A , RGB = R | G | B ,
  RGBA = R | G | B | A
}
 
enum class  RenderingPipelineShaderType { None = -1 , Graphics = 0 , Compute , Count }
 
enum class  RenderingPipelineType {
  None = -1 , GUI = 0 , Text3D , Skybox ,
  PBRModel , ForwardPlusLightCulling , CascadedShadowMapping , BRDF_LUT ,
  IrradianceMap , RadianceMap , BlurMap , Reflection ,
  AdditiveLightingMS , AdditiveLighting , Count
}
 
enum class  ShaderVertexFormat {
  Float , Vec2 , Vec3 , Vec4 ,
  Int , IVec2 , IVec3 , IVec4 ,
  Uint , UVec2 , UVec3 , UVec4 ,
  Mat2 , Mat3 , Mat4
}
 
enum class  TextureMemoryAccess {
  None = -1 , ReadOnly = 0 , WriteOnly , ReadWrite ,
  Count
}
 
enum class  TextureType {
  None = -1 , Texture2D = 0 , TextureCube , Texture3D ,
  Count
}
 
enum  TextureUsage {
  None = -1 , Sampled = 0x1 , Storage = 0x2 , Attachment = 0x4 ,
  DepthStencil = 0x8 , Immutable = 0x10 , TextureUsageCount
}
 
enum class  ColorAttachmentType {
  Present = 0 , NormalSpecular = 1 , MetallicRougnessAO = 2 , Position = 3 ,
  Depth = 4 , LightingAddition = 5 , Count
}
 
enum class  PluginType { Graphics = 0 , Context = 1 , TotalCount }
 
enum class  ScenePhase { Initialization , Activation , Update , Destruction }
 

Functions

Entity CreatePrefab (const char *name)
 
Entity CreateEntity (const char *name)
 
Entity CreateEntity ()
 
VENOM_COMMON_API void setErrorString (const char *str)
 
template<typename... Args>
void setErrorString (const char *fmt, Args &&... args)
 
VENOM_COMMON_API const char * getErrorString ()
 
vc::Error VENOM_COMMON_API SaveImageToExr (const void *data, const char *path, int width, int height, int channels=4)
 
vc::Error VENOM_COMMON_API SaveImageToPng (const void *data, const char *path, int width, int height, int channels=4)
 
template<typename ... Args>
String format (const char *fmt, Args &&... args)
 
vcm::Vec3 SpotAndDirectionalDirection (const vcm::Vec3 &direction)
 
template<typename T>
T * LoadPluginFromNameAndType (const vc::String &libName, const char *functionName)
 
 COMPONENT_CAN_ADD_DEFINITION (Skybox, return s_skybox==nullptr;)
 
TextureLoaderCreateTextureLoader (const char *path)
 

Variables

enum VENOM_COMMON_API Error
 
enum VENOM_COMMON_API Failure = 1 << 0
 
enum VENOM_COMMON_API InvalidArgument = 1 << 1
 
enum VENOM_COMMON_API OutOfMemory = 1 << 2
 
enum VENOM_COMMON_API DeviceLost = 1 << 3
 
enum VENOM_COMMON_API InitializationFailed = 1 << 4
 
enum VENOM_COMMON_API InvalidUse = 1 << 5
 
enum VENOM_COMMON_API FeatureNotSupported = 1 << 6
 
enum VENOM_COMMON_API Unknown
 

Detailed Description

High-Level Frontend of the VenomEngine project. It also contains all the code shared between every APIs/Dynamic Libraries. But most importantly, that is where the abstraction is setup for the different APIs contained in this project. Use the alias 'vc' to access the namespace.

Enumeration Type Documentation

◆ GUIColorEditFlagsBits

Color edit flags based on GUIColorEditFlagsBits_ (based on GUI 1.91.5)

◆ GUIWindowFlagsBits

Window flags based on GUIWindowFlagsBits_ (based on GUI 1.91.5)

Variable Documentation

◆ Unknown

venom::common::Unknown
Initial value:
= std::numeric_limits<uint32_t>::max()
}