Blowbox 2017
A 3D Game Engine by Riko Ophorst using DirectX 12
Classes | Typedefs | Enumerations | Functions
blowbox Namespace Reference

Classes

struct  Adapter
 
struct  BlowboxConfig
 
class  BlowboxCore
 
class  ByteAddressBuffer
 
class  Camera
 
class  ColorBuffer
 
class  CommandAllocatorPool
 
class  CommandContext
 
class  CommandContextManager
 
class  CommandManager
 
class  CommandQueue
 
class  ComputePSO
 
class  Console
 
class  DebugMenu
 
class  DebugWindow
 
class  DeferredRenderer
 
class  DepthBuffer
 
class  DescriptorHeap
 
class  Device
 
class  Entity
 
class  EntityFactory
 
class  ForwardRenderer
 
class  FrameStats
 
class  Get
 
class  GLFWManager
 
class  GpuBuffer
 
class  GpuResource
 
class  GraphicsContext
 
class  GraphicsPSO
 
class  Image
 
class  ImGuiManager
 
class  KeyboardState
 
class  Material
 
class  MemoryProfiler
 
class  MemoryStats
 
class  Mesh
 
class  MeshData
 
class  ModelFactory
 
class  MouseState
 
struct  NonCopyable
 
class  OrthographicCamera
 
struct  Param32Bit
 
class  PerformanceProfiler
 
class  PerspectiveCamera
 
class  PixelBuffer
 
class  PSO
 
struct  Resolution
 
class  RootParameter
 
class  RootSignature
 
class  SceneManager
 
class  Shader
 
class  StructuredBuffer
 
class  SwapChain
 
class  TextFile
 
class  Time
 
class  TypedBuffer
 
class  UploadBuffer
 
class  Vertex
 
class  Window
 

Typedefs

typedef uint32_t Index
 
template<typename T >
using Deque = eastl::deque< T >
 
template<typename Result , typename... Arguments>
using FunctionWithArguments = eastl::function< Result(Arguments...)>
 
template<typename Result , typename Argument0 >
using FunctionWithArgument = eastl::function< Result(Argument0)>
 
template<typename Result >
using Function = eastl::function< Result()>
 
template<typename T >
using IntrusivePtr = eastl::intrusive_ptr< T >
 
template<typename T >
using LinkedPtr = eastl::linked_ptr< T >
 
template<typename Key , typename T >
using Map = eastl::map< Key, T >
 
template<typename T >
using PriorityQueue = eastl::priority_queue< T >
 
template<typename T >
using Queue = eastl::queue< T >
 
template<typename T >
using RingBuffer = eastl::ring_buffer< T >
 
template<typename T >
using SafePtr = eastl::safe_ptr< T >
 
template<typename T >
using ScopedPtr = eastl::scoped_ptr< T >
 
template<typename T >
using SharedPtr = eastl::shared_ptr< T >
 
template<typename T >
using Stack = eastl::stack< T >
 
using String = eastl::string
 
using WString = eastl::wstring
 
template<typename... Ts>
using Tuple = eastl::tuple< Ts... >
 
template<typename T >
using UniquePtr = eastl::unique_ptr< T >
 
template<typename Key , typename T >
using UnorderedMap = eastl::unordered_map< Key, T >
 
template<typename T1 , typename T2 >
using Pair = eastl::pair< T1, T2 >
 
template<typename T >
using Vector = eastl::vector< T >
 
template<typename T >
using WeakPtr = eastl::weak_ptr< T >
 

Enumerations

enum  PixelComposition {
  PixelComposition_R, PixelComposition_RG, PixelComposition_RGB, PixelComposition_RGBA,
  PixelComposition_UNKNOWN
}
 
enum  ProfilerBlockType {
  ProfilerBlockType_GAME, ProfilerBlockType_CORE, ProfilerBlockType_RENDERER, ProfilerBlockType_CONTENT,
  ProfilerBlockType_MISC, ProfilerBlockType_COUNT
}
 
enum  FindAdapterFlag { FindAdapterFlag_NO_SOFTWARE = 0x1, FindAdapterFlag_NO_INTEL = 0x2 }
 
enum  ShaderType {
  ShaderType_VERTEX, ShaderType_PIXEL, ShaderType_GEOMETRY, ShaderType_COMPUTE,
  ShaderType_HULL, ShaderType_DOMAIN, ShaderType_UNKNOWN
}
 
enum  KeyCode {
  KeyCode_SPACE = GLFW_KEY_SPACE, KeyCode_APOSTROPHE = GLFW_KEY_APOSTROPHE, KeyCode_COMMA = GLFW_KEY_COMMA, KeyCode_MINUS = GLFW_KEY_MINUS,
  KeyCode_PERIOD = GLFW_KEY_PERIOD, KeyCode_SLASH = GLFW_KEY_SLASH, KeyCode_0 = GLFW_KEY_0, KeyCode_1 = GLFW_KEY_1,
  KeyCode_2 = GLFW_KEY_2, KeyCode_3 = GLFW_KEY_3, KeyCode_4 = GLFW_KEY_4, KeyCode_5 = GLFW_KEY_5,
  KeyCode_6 = GLFW_KEY_6, KeyCode_7 = GLFW_KEY_7, KeyCode_8 = GLFW_KEY_8, KeyCode_9 = GLFW_KEY_9,
  KeyCode_SEMICOLON = GLFW_KEY_SEMICOLON, KeyCode_EQUAL = GLFW_KEY_EQUAL, KeyCode_A = GLFW_KEY_A, KeyCode_B = GLFW_KEY_B,
  KeyCode_C = GLFW_KEY_C, KeyCode_D = GLFW_KEY_D, KeyCode_E = GLFW_KEY_E, KeyCode_F = GLFW_KEY_F,
  KeyCode_G = GLFW_KEY_G, KeyCode_H = GLFW_KEY_H, KeyCode_I = GLFW_KEY_I, KeyCode_J = GLFW_KEY_J,
  KeyCode_K = GLFW_KEY_K, KeyCode_L = GLFW_KEY_L, KeyCode_M = GLFW_KEY_M, KeyCode_N = GLFW_KEY_N,
  KeyCode_O = GLFW_KEY_O, KeyCode_P = GLFW_KEY_P, KeyCode_Q = GLFW_KEY_Q, KeyCode_R = GLFW_KEY_R,
  KeyCode_S = GLFW_KEY_S, KeyCode_T = GLFW_KEY_T, KeyCode_U = GLFW_KEY_U, KeyCode_V = GLFW_KEY_V,
  KeyCode_W = GLFW_KEY_W, KeyCode_X = GLFW_KEY_X, KeyCode_Y = GLFW_KEY_Y, KeyCode_Z = GLFW_KEY_Z,
  KeyCode_LEFT_BRACKET = GLFW_KEY_LEFT_BRACKET, KeyCode_BACKSLASH = GLFW_KEY_BACKSLASH, KeyCode_RIGHT_BRACKET = GLFW_KEY_RIGHT_BRACKET, KeyCode_GRAVE_ACCENT = GLFW_KEY_GRAVE_ACCENT,
  KeyCode_WORLD_1 = GLFW_KEY_WORLD_1, KeyCode_WORLD_2 = GLFW_KEY_WORLD_2, KeyCode_ESCAPE = GLFW_KEY_ESCAPE, KeyCode_ENTER = GLFW_KEY_ENTER,
  KeyCode_TAB = GLFW_KEY_TAB, KeyCode_BACKSPACE = GLFW_KEY_BACKSPACE, KeyCode_INSERT = GLFW_KEY_INSERT, KeyCode_DELETE = GLFW_KEY_DELETE,
  KeyCode_RIGHT = GLFW_KEY_RIGHT, KeyCode_LEFT = GLFW_KEY_LEFT, KeyCode_DOWN = GLFW_KEY_DOWN, KeyCode_UP = GLFW_KEY_UP,
  KeyCode_PAGE_UP = GLFW_KEY_PAGE_UP, KeyCode_PAGE_DOWN = GLFW_KEY_PAGE_DOWN, KeyCode_HOME = GLFW_KEY_HOME, KeyCode_END = GLFW_KEY_END,
  KeyCode_CAPS_LOCK = GLFW_KEY_CAPS_LOCK, KeyCode_SCROLL_LOCK = GLFW_KEY_SCROLL_LOCK, KeyCode_NUM_LOCK = GLFW_KEY_NUM_LOCK, KeyCode_PRINT_SCREEN = GLFW_KEY_PRINT_SCREEN,
  KeyCode_PAUSE = GLFW_KEY_PAUSE, KeyCode_F1 = GLFW_KEY_F1, KeyCode_F2 = GLFW_KEY_F2, KeyCode_F3 = GLFW_KEY_F3,
  KeyCode_F4 = GLFW_KEY_F4, KeyCode_F5 = GLFW_KEY_F5, KeyCode_F6 = GLFW_KEY_F6, KeyCode_F7 = GLFW_KEY_F7,
  KeyCode_F8 = GLFW_KEY_F8, KeyCode_F9 = GLFW_KEY_F9, KeyCode_F10 = GLFW_KEY_F10, KeyCode_F11 = GLFW_KEY_F11,
  KeyCode_F12 = GLFW_KEY_F12, KeyCode_F13 = GLFW_KEY_F13, KeyCode_F14 = GLFW_KEY_F14, KeyCode_F15 = GLFW_KEY_F15,
  KeyCode_F16 = GLFW_KEY_F16, KeyCode_F17 = GLFW_KEY_F17, KeyCode_F18 = GLFW_KEY_F18, KeyCode_F19 = GLFW_KEY_F19,
  KeyCode_F20 = GLFW_KEY_F20, KeyCode_F21 = GLFW_KEY_F21, KeyCode_F22 = GLFW_KEY_F22, KeyCode_F23 = GLFW_KEY_F23,
  KeyCode_F24 = GLFW_KEY_F24, KeyCode_F25 = GLFW_KEY_F25, KeyCode_KP_0 = GLFW_KEY_KP_0, KeyCode_KP_1 = GLFW_KEY_KP_1,
  KeyCode_KP_2 = GLFW_KEY_KP_2, KeyCode_KP_3 = GLFW_KEY_KP_3, KeyCode_KP_4 = GLFW_KEY_KP_4, KeyCode_KP_5 = GLFW_KEY_KP_5,
  KeyCode_KP_6 = GLFW_KEY_KP_6, KeyCode_KP_7 = GLFW_KEY_KP_7, KeyCode_KP_8 = GLFW_KEY_KP_8, KeyCode_KP_9 = GLFW_KEY_KP_9,
  KeyCode_KP_DECIMAL = GLFW_KEY_KP_DECIMAL, KeyCode_KP_DIVIDE = GLFW_KEY_KP_DIVIDE, KeyCode_KP_MULTIPLY = GLFW_KEY_KP_MULTIPLY, KeyCode_KP_SUBTRACT = GLFW_KEY_KP_SUBTRACT,
  KeyCode_KP_ADD = GLFW_KEY_KP_ADD, KeyCode_KP_ENTER = GLFW_KEY_KP_ENTER, KeyCode_KP_EQUAL = GLFW_KEY_KP_EQUAL, KeyCode_LEFT_SHIFT = GLFW_KEY_LEFT_SHIFT,
  KeyCode_LEFT_CONTROL = GLFW_KEY_LEFT_CONTROL, KeyCode_LEFT_ALT = GLFW_KEY_LEFT_ALT, KeyCode_LEFT_SUPER = GLFW_KEY_LEFT_SUPER, KeyCode_RIGHT_SHIFT = GLFW_KEY_RIGHT_SHIFT,
  KeyCode_RIGHT_CONTROL = GLFW_KEY_RIGHT_CONTROL, KeyCode_RIGHT_ALT = GLFW_KEY_RIGHT_ALT, KeyCode_RIGHT_SUPER = GLFW_KEY_RIGHT_SUPER, KeyCode_MENU = GLFW_KEY_MENU,
  KeyCode_UNKNOWN
}
 
enum  MouseButton {
  MouseButton_LEFT, MouseButton_MIDDLE, MouseButton_RIGHT, MouseButton_4,
  MouseButton_5, MouseButton_6, MouseButton_7, MouseButton_8
}
 

Functions

KeyCode GlfwKeyToBlowboxKeyCode (int glfw_key)
 
int BlowboxKeyCodeToGlfwKey (KeyCode key)
 
MouseButton GlfwMouseButtonToBlowboxMouseButton (int glfw_mouse_button)
 
int BlowboxMouseButtonToGlfwMouseButton (MouseButton mouse_button)
 

Detailed Description

The main Blowbox namespace.

All symbols that are in Blowbox exist in the blowbox namespace. Because the design philosophy behind Blowbox is based on flat hierarchies, there are no other namespaces in the entirity of Blowbox except for blowbox itself.

Typedef Documentation

template<typename T >
using blowbox::Deque = typedef eastl::deque<T>

Typedef for wrapping the EASTL Deque.

A Deque is a double ended queue. Refer to EASTL documentation for more information.

template<typename Result >
using blowbox::Function = typedef eastl::function<Result()>

Typedef for wrapping the EASTL function.

Wraps the EASTL function container. Refer to EASTL documentation for more information.

template<typename Result , typename Argument0 >
using blowbox::FunctionWithArgument = typedef eastl::function<Result(Argument0)>

Typedef for wrapping the EASTL function.

Wraps the EASTL function container. Refer to EASTL documentation for more information.

template<typename Result , typename... Arguments>
using blowbox::FunctionWithArguments = typedef eastl::function<Result(Arguments...)>

Typedef for wrapping the EASTL function.

Wraps the EASTL function container. Refer to EASTL documentation for more information.

Descibes an index.

This data type is typedef-ed because it allows the entire application to easily switch from 16 bit indices to 32 bit indices, if desired.

template<typename T >
using blowbox::IntrusivePtr = typedef eastl::intrusive_ptr<T>

Typedef for wrapping the EASTL intrusive_ptr.

Wraps the EASTL intrusive_ptr. Refer to EASTL documentation for more information.

template<typename T >
using blowbox::LinkedPtr = typedef eastl::linked_ptr<T>

Typedef for wrapping the EASTL linked_ptr.

Wraps the EASTL linked_ptr. Refer to EASTL documentation for more information.

template<typename Key , typename T >
using blowbox::Map = typedef eastl::map<Key, T>

Typedef for wrapping the EASTL map.

Wraps the EASTL map. Refer to EASTL documentation for more information.

template<typename T1 , typename T2 >
using blowbox::Pair = typedef eastl::pair<T1, T2>

Typedef for wrapping the EASTL pair.

Wraps the EASTL pair. Refer to EASTL documentation for more information.

template<typename T >
using blowbox::PriorityQueue = typedef eastl::priority_queue<T>

Typedef for wrapping the EASTL priority_queue.

Wraps the EASTL priority_queue. Refer to EASTL documentation for more information.

template<typename T >
using blowbox::Queue = typedef eastl::queue<T>

Typedef for wrapping the EASTL queue.

Wraps the EASTL queue. Refer to EASTL documentation for more information.

template<typename T >
using blowbox::RingBuffer = typedef eastl::ring_buffer<T>

Typedef for wrapping the EASTL ring_buffer.

Wraps the EASTL ring_buffer. Refer to EASTL documentation for more information.

template<typename T >
using blowbox::SafePtr = typedef eastl::safe_ptr<T>

Typedef for wrapping the EASTL safe_ptr.

Wraps the EASTL safe_ptr. Refer to EASTL documentation for more information.

template<typename T >
using blowbox::ScopedPtr = typedef eastl::scoped_ptr<T>

Typedef for wrapping the EASTL scoped_ptr.

Wraps the EASTL scoped_ptr. Refer to EASTL documentation for more information.

template<typename T >
using blowbox::SharedPtr = typedef eastl::shared_ptr<T>

Typedef for wrapping the EASTL shared_ptr.

Wraps the EASTL shared_ptr. Refer to EASTL documentation for more information.

template<typename T >
using blowbox::Stack = typedef eastl::stack<T>

Typedef for wrapping the EASTL stack.

Wraps the EASTL stack. Refer to EASTL documentation for more information.

using blowbox::String = typedef eastl::string

Typedef for wrapping the EASTL string.

Wraps the EASTL string. Refer to EASTL documentation for more information.

template<typename... Ts>
using blowbox::Tuple = typedef eastl::tuple<Ts...>

Typedef for wrapping the EASTL tuple.

Wraps the EASTL tuple. Refer to EASTL documentation for more information.

template<typename T >
using blowbox::UniquePtr = typedef eastl::unique_ptr<T>

Typedef for wrapping the EASTL unique_ptr.

Wraps the EASTL unique_ptr. Refer to EASTL documentation for more information.

template<typename Key , typename T >
using blowbox::UnorderedMap = typedef eastl::unordered_map<Key, T>

Typedef for wrapping the EASTL unordered_map.

Wraps the EASTL unordered_map. Refer to EASTL documentation for more information.

template<typename T >
using blowbox::Vector = typedef eastl::vector<T>

Typedef for wrapping the EASTL vector.

Wraps the EASTL vector. Refer to EASTL documentation for more information.

template<typename T >
using blowbox::WeakPtr = typedef eastl::weak_ptr<T>

Typedef for wrapping the EASTL weak_ptr.

Wraps the EASTL weak_ptr. Refer to EASTL documentation for more information.

using blowbox::WString = typedef eastl::wstring

Typedef for wrapping the EASTL wstring.

Wraps the EASTL wstring. Refer to EASTL documentation for more information.

Enumeration Type Documentation

Flags that are provided to Adapter::FindAvailableAdapters()

These flags are used by the Adapter::FindAvailableAdapters(). They help in specifying what adapter should be used.

All keycodes.

This enumeration is to enumerate all different key codes that Blowbox supports.

All mouse buttons.

Enumerates all the different mouse buttons that blowbox supports.

An enumeration of all different pixel compositions.

When requesting pixel data from a blowbox::Image, you get an array of pixels. The pixels are composed of a number of components that together form the per pixel data. Each component is an unsigned char (8 bits). This enumeration is used to determine what the components are per pixel. Remember, all components are 8 bits (1 byte / 1 unsigned char). So if the PixelComposition is PixelComposition_RGB, that means that each pixel takes up three bytes: the red channel (R), the green channel (G) and blue channel (B) - in that order.

Identifies a type of profiling block.

Enumeration for all different shader types.

This enumeration is necessary for the Shader to understand what it is trying to compile. It enumerates all different shader types.

Function Documentation

int blowbox::BlowboxKeyCodeToGlfwKey ( KeyCode  key)

Converts a KeyCode_* to a GLFW_KEY_*.

Parameters
[in]keyA blowbox::KeyCode that should be converted to a GLFW_KEY
int blowbox::BlowboxMouseButtonToGlfwMouseButton ( MouseButton  mouse_button)

Converts a MouseButton_* to a GLFW_MOUSE_BUTTON_*.

Author
Riko Ophorst
Parameters
[in]mouse_buttonA blowbox::MouseButton that should be converted to a GLFW_MOUSE_BUTTON
KeyCode blowbox::GlfwKeyToBlowboxKeyCode ( int  glfw_key)

Converts a GLFW_KEY_* to a KeyCode_*.

Parameters
[in]glfw_keyA GLFW_KEY that you want to convert to a blowbox::KeyCode
MouseButton blowbox::GlfwMouseButtonToBlowboxMouseButton ( int  glfw_mouse_button)

Converts a GLFW_MOUSE_BUTTON to a blowbox::MouseButton.

Author
Riko Ophorst
Parameters
[in]glfw_mouse_buttonA GLFW_MOUSE_BUTTON that should be converted to a blowbox::MouseButton