API Documentation
Classes | Typedefs | Enumerations
nkGraphics Namespace Reference

Encompasses all API of component NilkinsGraphics. More...

Classes

struct  AttributeGenerationInfo
 Holds information for an attribute generation request. More...
 
struct  AttributeGenerationOutput
 Describes the output of an attribute generation operation. More...
 
class  AttributeGranularityUtils
 Offers utility to work with the associated enumeration. More...
 
class  BlendState
 Holds all information about the blend operations to use when rendering. More...
 
class  BlendStateManager
 Manages the blend states recorded. More...
 
class  BoundingBox
 A bounding box. Often used to encompass object's bounds in the world. More...
 
class  Buffer
 A buffer that will reside on the GPU. More...
 
class  BufferManager
 Manages the buffers recorded. More...
 
struct  BufferSubResourceDescriptor
 Describes how a buffer should be mapped. More...
 
class  Camera
 Offers all controls to model a camera. More...
 
class  CameraManager
 Manages the cameras recorded. More...
 
class  ClearTargetsPass
 A clear target pass, during which some targets are cleared. More...
 
class  ComparisonFunctionUtils
 Offers utility to work with the associated enumeration. More...
 
struct  CompositeDecodeOptions
 Aggregates all decoding options available for composite decoding. More...
 
class  CompositeEncoder
 Allows to work with all formats supported, automatically. More...
 
class  Compositor
 A compositor, describing how to compose the rendering pipeline. More...
 
class  CompositorManager
 Manages the compositors recorded. More...
 
class  CompositorNode
 A node in the rendering graph described by a Compositor. More...
 
class  ComputePass
 A compute pass, during which a compute dispatch is launched. More...
 
class  Configuration
 Configuration for the system's initialization. More...
 
class  ConstantBuffer
 Describes a constant buffer. More...
 
class  ContentLoader
 Utility class that allows to load content through their declaration files. More...
 
class  ContentLoadResult
 Holds information about an attempt of parsing content declaration sources. More...
 
struct  DecodedData
 Holds the result of an Encoder's decoding operation. More...
 
struct  DecodedEntityData
 Holds data about a decoded entity. More...
 
struct  DecodedMaterialData
 Holds data about a decoded material. More...
 
struct  DecodedMeshData
 Holds data about a decoded mesh. More...
 
struct  DecodedNodeData
 Holds data about a decoded node. More...
 
struct  DecodedTextureData
 Holds data about a decoded texture. More...
 
class  DefaultRenderStrategy
 The default render strategy used within the component. More...
 
class  DepthStencilState
 Holds information about a depth and stencil state used for rendering. More...
 
class  DepthStencilStateManager
 Manages the depth stencil states recorded. More...
 
class  Entity
 An entity in a render queue. It drives the shader and possible graph position for a set of renderables (SubEntity). More...
 
class  EntityRenderInfo
 Compiles the render information for an Entity to use within a RenderQueue. More...
 
class  EntityRenderInfoSlot
 A slot within the render information. More...
 
class  EntityRenderLodSlot
 A LOD slot to potentially draw, within a group slot. More...
 
class  FilterUtils
 Offers utility to work with the associated enumeration. More...
 
class  Frustum
 Defines a frustum. More...
 
class  GlobalTimer
 A timer, giving timing capabilities. More...
 
struct  GltfDecodeOptions
 Decoding options for GlTF models. More...
 
class  GltfEncoder
 Allows to work with the GLTF 2 format (Do not use, WIP). More...
 
class  GltfEncoderUtils
 Used internally. More...
 
class  IndexFormatUtils
 Provides utility functions around the INDEX_FORMAT enum. More...
 
class  InfiniteBitMask
 A utility class providing "infinite" masks, formed by bits, or booleans. More...
 
class  InfiniteMask
 A more generic version of the InfiniteBitMask. More...
 
class  InstancingPass
 A pass doing an instanced draw, during which one mesh is drawn X times, in one go. More...
 
class  LogManager
 Responsible for logging all messages from the component. More...
 
struct  MacroEntry
 Holds information about a macro entry. More...
 
class  Manager
 Base class for resource managers. More...
 
struct  MapRequestDescriptor
 A description of a request to map a resource. More...
 
struct  MapResult
 Contains all information of the result of a map operation on a resource. More...
 
class  Mesh
 Holds information about a mesh. Used as a basis to render 3d models. More...
 
struct  MeshFillOptions
 Describes how a filling operation should behave. More...
 
class  MeshInputLayout
 Describes the layout of data inside a mesh. More...
 
struct  MeshInputLayoutAttribute
 Describes an attribute in a mesh layout. More...
 
class  MeshManager
 Manages the meshes recorded. More...
 
class  MeshUtils
 Offers capabilities to ease the manipulation of meshes in some contexts. More...
 
class  MonoMaterialPass
 A pass rendering the scene, using only one shader to render all the meshes enqueued. More...
 
class  Node
 Represents a node in a scene graph. More...
 
class  NodeChangeListener
 A base class for a listener for node changes. More...
 
class  NodeManager
 Manages the nodes recorded. More...
 
struct  ObjDecodeOptions
 Describes all options available when decoding the obj format. More...
 
class  ObjEncoder
 Allows to work with the Obj format. More...
 
struct  PackedMeshData
 Holds mesh low-level data once packed by the MeshUtils. More...
 
class  Pass
 The base for a pass within a TargetOperations.
More...
 
class  PostProcessPass
 A post processing pass, during which a shader is used to render a quad fitting on the screen. More...
 
class  PrimitiveTopologyUtils
 Offers utility to work with the associated enumeration. More...
 
class  Program
 Holds all informations related to GPU programs, and manages their compilation. More...
 
class  ProgramCompilationResult
 Holds information about a complation result, from a program. More...
 
class  ProgramManager
 Manages the programs recorded. More...
 
class  ProgramSourcesHolder
 Holds the sources of a program. More...
 
class  RasterState
 Holds information about a raster state. More...
 
class  RasterStateManager
 Manages the raster states available in the component. More...
 
class  RaytracingPass
 A raytracing pass. Dispatches rays, using hardware acceleration. More...
 
class  RenderCommand
 Describes a render command and provides the necessary information for it to happen. More...
 
class  RenderCommandQueue
 A queue of rendering commands. More...
 
class  RenderContext
 A rendering context, attached to a window or an offscreen texture. More...
 
class  RenderContextDescriptor
 A descriptor, used when creating a context along with its window. More...
 
class  RenderContextManager
 Manages the render contexts recorded. More...
 
class  Renderer
 A renderer, implementing the logic of using a graphics API. More...
 
struct  RendererSupportInfo
 Informations about the supported features. More...
 
class  RenderQueue
 A render queue, where all items that have to be rendered are queued. More...
 
class  RenderQueueManager
 Manages the render queues recorded. More...
 
class  RenderScenePass
 A pass rendering render queues. More...
 
class  RenderStrategy
 A render strategy, used by a render queue to prepare the render commands. More...
 
class  Resource
 Base class for a resource in the component. More...
 
class  ResourceDeclAugmentCallback
 A callback called whenever a resource is being processed, during a save or load of resource set. More...
 
struct  ResourceGpuCopyDescriptor
 Holds information about a resource copy happening on the GPU only. More...
 
class  ResourceManager
 Generic resource manager, enabling more intelligent processing of resources, compared to the ContentLoader. More...
 
class  ResourceSetLoadQuery
 Holds information about a resource set (project) load query. More...
 
class  ResourceSetLoadResult
 Holds the result of a loading operation for a resource set. More...
 
class  ResourceSetSaveQuery
 Holds information about a resource set (project) saving query. More...
 
class  Sampler
 Holds all the information needed of a sampler used during rendering. More...
 
class  SamplerManager
 Manages the samplers recorded. More...
 
class  ScreenshotTaker
 Utility class helping to isolate data from a render context. More...
 
class  Shader
 A shader class, feeding data to a Program. More...
 
class  ShaderBoundResourceDesc
 Holds information about a resource linked in a shader for feeding. More...
 
class  ShaderInstanceCustomDummySlot
 A dummy custom instance slot. More...
 
class  ShaderInstanceCustomSlot
 A custom slot, implementable by external code. More...
 
class  ShaderInstanceMemorySlot
 A memory slot for per instance data in a Shader. More...
 
class  ShaderManager
 Manages the shaders recorded. More...
 
class  ShaderMemorySlot
 A memory slot in a memory resource. More...
 
class  ShaderPassCustomDummySlot
 A dummy custom pass slot. More...
 
class  ShaderPassCustomSlot
 A custom slot, implementable by external code. More...
 
class  ShaderPassMemorySlot
 A memory slot that fits into a ConstantBuffer. The slot fills entries within the buffer. More...
 
class  ShaderResource
 Base class for shader resources. Those are resources that can be fed to a Shader. More...
 
class  StreamOutputDescriptor
 Holds information about a stream output slot. More...
 
class  StructToString
 Converts enums to string, and vice versa. More...
 
class  System
 Main interface with the component system. More...
 
class  TargetDescriptor
 Describes how a target should be addressed during rendering. More...
 
class  TargetOperations
 Describes a target operation set. More...
 
class  Texture
 A texture used for rendering, hosted on GPU. More...
 
class  TextureAddressModeUtils
 Offers utility to work with the associated enumeration. More...
 
class  TextureManager
 Manages the textures available in the component. More...
 
class  TextureSaver
 Utility class to save texture contents in files. More...
 
struct  TextureSubResourceDescriptor
 Describes how a texture should be mapped. More...
 
class  TextureUtils
 Utility class to retrieve or compute interesting data about textures. More...
 
struct  UnmapRequestDescriptor
 Description of an unmap request. More...
 
struct  VertexComposition
 Describes how VertexData should be interpreted when generating low-level mesh data. More...
 
struct  VertexData
 A high-level mesh data representation. More...
 
class  Viewport
 Holds all the information needed about a viewport. More...
 
class  ViewportManager
 Manages the viewports available in the component. More...
 

Typedefs

typedef ContentLoadResult< SamplerContentLoadResultSampler
 Load result for samplers.
 
typedef ContentLoadResult< TextureContentLoadResultTexture
 Load result for texture.
 
typedef ContentLoadResult< BufferContentLoadResultBuffer
 Load result for buffers.
 
typedef ContentLoadResult< ConstantBufferContentLoadResultConstantBuffer
 Load result for constant buffers.
 
typedef ContentLoadResult< ShaderContentLoadResultShader
 Load result for shaders.
 
typedef ContentLoadResult< ShaderMemorySlotContentLoadResultShaderMemorySlot
 Load result for memory slots.
 
typedef ContentLoadResult< ProgramContentLoadResultProgram
 Load result for programs.
 
typedef ContentLoadResult< PassContentLoadResultPass
 Load result for passes.
 
typedef ContentLoadResult< CompositorContentLoadResultCompositor
 Load result for compositors.
 
typedef ContentLoadResult< CompositorNodeContentLoadResultCompositorNode
 Load result for compositor nodes.
 
typedef ContentLoadResult< MeshContentLoadResultMesh
 Load result for meshes.
 
typedef ContentLoadResult< NodeContentLoadResultNode
 Load result for nodes.
 
typedef ContentLoadResult< BlendStateContentLoadResultBlendState
 Load result for blend states.
 
typedef ContentLoadResult< DepthStencilStateContentLoadResultDepthStencilState
 Load result for depth and stencil states.
 
typedef ContentLoadResult< RasterStateContentLoadResultRasterState
 Load result for raster states.
 
using ContentLoadResultCamera = ContentLoadResult< Camera >
 Load result for cameras.
 
using ContentLoadResultRenderQueue = ContentLoadResult< RenderQueue >
 Load result for render queues.
 
using ConstantBufferResourceDesc = ShaderBoundResourceDesc< ConstantBuffer >
 Definition for constant buffers.
 
using ShaderResourceDesc = ShaderBoundResourceDesc< ShaderResource >
 Definition for shader resources.
 
using UavResourceDesc = ShaderBoundResourceDesc< Buffer >
 Definition for UAV resources.
 
using SamplerResourceDesc = ShaderBoundResourceDesc< Sampler >
 Definition for samplers.
 
typedef InfiniteMask< char > InfiniteByteMask
 Typedefed char mask.
 
typedef InfiniteMask< short > InfiniteShortMask
 Typedefed short mask.
 
typedef InfiniteMask< int > InfiniteIntMask
 Typedefed int mask.
 
typedef InfiniteMask< unsigned long long > InfiniteInt64Mask
 Typedefed unsigned long long mask.
 

Enumerations

enum  BUFFER_BIND_FLAG {
  BUFFER_BIND_FLAG::BIND_NONE = 0, BUFFER_BIND_FLAG::BIND_VERTEX_BUFFER = 0x1L, BUFFER_BIND_FLAG::BIND_INDEX_BUFFER = 0x2L, BUFFER_BIND_FLAG::BIND_CONSTANT_BUFFER = 0x4L,
  BUFFER_BIND_FLAG::BIND_SHADER_RESOURCE = 0x8L, BUFFER_BIND_FLAG::BIND_STREAM_OUTPUT = 0x10L, BUFFER_BIND_FLAG::BIND_RENDER_TARGET = 0x20L, BUFFER_BIND_FLAG::BIND_DEPTH_STENCIL = 0x40L,
  BUFFER_BIND_FLAG::BIND_UNORDERED_ACCESS = 0x80L, BUFFER_BIND_FLAG::BIND_DECODER = 0x200L, BUFFER_BIND_FLAG::BIND_VIDEO_ENCODER = 0x400L
}
 Available binding flags for buffers. More...
 
enum  BUFFER_CPU_ACCESS_FLAG { BUFFER_CPU_ACCESS_FLAG::CPU_ACCESS_NONE = 0, BUFFER_CPU_ACCESS_FLAG::CPU_ACCESS_WRITE = 0x10000L, BUFFER_CPU_ACCESS_FLAG::CPU_ACCESS_READ = 0x20000L, BUFFER_CPU_ACCESS_FLAG::CPU_ACCESS_READ_WRITE = CPU_ACCESS_WRITE | CPU_ACCESS_READ }
 Available cpu access flags. More...
 
enum  BUFFER_USAGE { BUFFER_USAGE::USAGE_DEFAULT = 0, BUFFER_USAGE::USAGE_IMMUTABLE = 1, BUFFER_USAGE::USAGE_DYNAMIC = 2, BUFFER_USAGE::USAGE_STAGING = 3 }
 Available usage for buffers. Drives the memory used for hosting the data. More...
 
enum  PROJECTION_TYPE { PROJECTION_TYPE::PERSPECTIVE = 0, PROJECTION_TYPE::ORTHOGRAPHIC }
 Lists all possible projection types for a camera. More...
 
enum  OBJ_SPACE { OBJ_SPACE::UP_Y_FRONT_Z = 0, OBJ_SPACE::UP_Y_FRONT_MINUS_Z }
 Enumerates all supported spaces the obj data can come from. More...
 
enum  CONTENT_LOAD_RESULT_STATE { CONTENT_LOAD_RESULT_STATE::SUCCESS = 0, CONTENT_LOAD_RESULT_STATE::PARTIAL, CONTENT_LOAD_RESULT_STATE::FAILURE }
 The available values for a parsing attempt result. More...
 
enum  ATTRIBUTE_GRANULARITY { ATTRIBUTE_GRANULARITY::PER_VERTEX = 0, ATTRIBUTE_GRANULARITY::PER_INSTANCE = 1 }
 Enumerates all granularity available when feeding attribute data. More...
 
enum  INDEX_FORMAT { INDEX_FORMAT::UINT8 = 0, INDEX_FORMAT::UINT16, INDEX_FORMAT::UINT32 }
 Enumerates all formats supported for indices in a mesh. More...
 
enum  PRIMITIVE_TOPOLOGY {
  PRIMITIVE_TOPOLOGY::PRIMITIVE_TOPOLOGY_UNDEFINED = 0, PRIMITIVE_TOPOLOGY::POINTLIST = 1, PRIMITIVE_TOPOLOGY::LINELIST = 2, PRIMITIVE_TOPOLOGY::LINESTRIP = 3,
  PRIMITIVE_TOPOLOGY::TRIANGLELIST = 4, PRIMITIVE_TOPOLOGY::TRIANGLESTRIP = 5, PRIMITIVE_TOPOLOGY::LINELIST_ADJ = 10, PRIMITIVE_TOPOLOGY::LINESTRIP_ADJ = 11,
  PRIMITIVE_TOPOLOGY::TRIANGLELIST_ADJ = 12, PRIMITIVE_TOPOLOGY::TRIANGLESTRIP_ADJ = 13, PRIMITIVE_TOPOLOGY::PATCHLIST_1_CONTROL_POINT = 33, PRIMITIVE_TOPOLOGY::PATCHLIST_2_CONTROL_POINT = 34,
  PRIMITIVE_TOPOLOGY::PATCHLIST_3_CONTROL_POINT = 35, PRIMITIVE_TOPOLOGY::PATCHLIST_4_CONTROL_POINT = 36, PRIMITIVE_TOPOLOGY::PATCHLIST_5_CONTROL_POINT = 37, PRIMITIVE_TOPOLOGY::PATCHLIST_6_CONTROL_POINT = 38,
  PRIMITIVE_TOPOLOGY::PATCHLIST_7_CONTROL_POINT = 39, PRIMITIVE_TOPOLOGY::PATCHLIST_8_CONTROL_POINT = 40, PRIMITIVE_TOPOLOGY::PATCHLIST_9_CONTROL_POINT = 41, PRIMITIVE_TOPOLOGY::PATCHLIST_10_CONTROL_POINT = 42,
  PRIMITIVE_TOPOLOGY::PATCHLIST_11_CONTROL_POINT = 43, PRIMITIVE_TOPOLOGY::PATCHLIST_12_CONTROL_POINT = 44, PRIMITIVE_TOPOLOGY::PATCHLIST_13_CONTROL_POINT = 45, PRIMITIVE_TOPOLOGY::PATCHLIST_14_CONTROL_POINT = 46,
  PRIMITIVE_TOPOLOGY::PATCHLIST_15_CONTROL_POINT = 47, PRIMITIVE_TOPOLOGY::PATCHLIST_16_CONTROL_POINT = 48, PRIMITIVE_TOPOLOGY::PATCHLIST_17_CONTROL_POINT = 49, PRIMITIVE_TOPOLOGY::PATCHLIST_18_CONTROL_POINT = 50,
  PRIMITIVE_TOPOLOGY::PATCHLIST_19_CONTROL_POINT = 51, PRIMITIVE_TOPOLOGY::PATCHLIST_20_CONTROL_POINT = 52, PRIMITIVE_TOPOLOGY::PATCHLIST_21_CONTROL_POINT = 53, PRIMITIVE_TOPOLOGY::PATCHLIST_22_CONTROL_POINT = 54,
  PRIMITIVE_TOPOLOGY::PATCHLIST_23_CONTROL_POINT = 55, PRIMITIVE_TOPOLOGY::PATCHLIST_24_CONTROL_POINT = 56, PRIMITIVE_TOPOLOGY::PATCHLIST_25_CONTROL_POINT = 57, PRIMITIVE_TOPOLOGY::PATCHLIST_26_CONTROL_POINT = 58,
  PRIMITIVE_TOPOLOGY::PATCHLIST_27_CONTROL_POINT = 59, PRIMITIVE_TOPOLOGY::PATCHLIST_28_CONTROL_POINT = 60, PRIMITIVE_TOPOLOGY::PATCHLIST_29_CONTROL_POINT = 61, PRIMITIVE_TOPOLOGY::PATCHLIST_30_CONTROL_POINT = 62,
  PRIMITIVE_TOPOLOGY::PATCHLIST_31_CONTROL_POINT = 63, PRIMITIVE_TOPOLOGY::PATCHLIST_32_CONTROL_POINT = 64
}
 Enumerates all primitive topologies supported for meshes. More...
 
enum  DATA_FILL_TYPE { DATA_FILL_TYPE::COPY = 0, DATA_FILL_TYPE::FORWARD, DATA_FILL_TYPE::REFERENCE }
 Enumerates available data fill types. More...
 
enum  PASS_TYPE {
  PASS_TYPE::UNKNOWN = 0, PASS_TYPE::CLEAR_TARGETS, PASS_TYPE::COMPUTE, PASS_TYPE::INSTANCING,
  PASS_TYPE::MONO_MATERIAL, PASS_TYPE::POST_PROCESS, PASS_TYPE::RENDER_SCENE, PASS_TYPE::RAYTRACING
}
 The pass types available in the component. More...
 
enum  PROGRAM_TYPE : int {
  PROGRAM_TYPE::UNKNOWN = 0, PROGRAM_TYPE::COMPUTE, PROGRAM_TYPE::GEOMETRY, PROGRAM_TYPE::PIPELINE,
  PROGRAM_TYPE::RAYTRACING
}
 The type of programs available. More...
 
enum  RENDERING_API { RENDERING_API::AUTOMATIC = 0, RENDERING_API::D3D11, RENDERING_API::D3D12, RENDERING_API::GLES }
 Enumerates supported graphics API. More...
 
enum  RENDER_COMMAND_TYPE {
  RENDER_COMMAND_TYPE::UNKNOWN = 0, RENDER_COMMAND_TYPE::CHANGE_SHADER, RENDER_COMMAND_TYPE::CHANGE_MESH, RENDER_COMMAND_TYPE::DRAW,
  RENDER_COMMAND_TYPE::PREPARE_INSTANCE
}
 Lists available commands for a RenderStrategy to provide. More...
 
enum  RESOURCE_MISC_FLAG {
  RESOURCE_MISC_FLAG::RESOURCE_MISC_NONE = 0, RESOURCE_MISC_FLAG::RESOURCE_MISC_GENERATE_MIPS = 0x1L, RESOURCE_MISC_FLAG::RESOURCE_MISC_SHARED = 0x2L, RESOURCE_MISC_FLAG::RESOURCE_MISC_TEXTURECUBE = 0x4L,
  RESOURCE_MISC_FLAG::RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10L, RESOURCE_MISC_FLAG::RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20L, RESOURCE_MISC_FLAG::RESOURCE_MISC_BUFFER_STRUCTURED = 0x40L, RESOURCE_MISC_FLAG::RESOURCE_MISC_RESOURCE_CLAMP = 0x80L,
  RESOURCE_MISC_FLAG::RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100L, RESOURCE_MISC_FLAG::RESOURCE_MISC_GDI_COMPATIBLE = 0x200L, RESOURCE_MISC_FLAG::RESOURCE_MISC_SHARED_NTHANDLE = 0x800L, RESOURCE_MISC_FLAG::RESOURCE_MISC_RESTRICTED_CONTENT = 0x1000L,
  RESOURCE_MISC_FLAG::RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x2000L, RESOURCE_MISC_FLAG::RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000L, RESOURCE_MISC_FLAG::RESOURCE_MISC_GUARDED = 0x8000L, RESOURCE_MISC_FLAG::RESOURCE_MISC_TILE_POOL = 0x20000L,
  RESOURCE_MISC_FLAG::RESOURCE_MISC_TILED = 0x40000L, RESOURCE_MISC_FLAG::RESOURCE_MISC_HW_PROTECTED = 0x80000L
}
 Available misc flags for resources. More...
 
enum  RESOURCE_LOAD_STATE { RESOURCE_LOAD_STATE::UNLOADED = 0, RESOURCE_LOAD_STATE::LOADING, RESOURCE_LOAD_STATE::READY_FOR_RENDERING, RESOURCE_LOAD_STATE::LOADED }
 The resource load states possible. More...
 
enum  RESOURCE_TYPE {
  RESOURCE_TYPE::UNKNOWN = 0, RESOURCE_TYPE::COMPOSITOR, RESOURCE_TYPE::MESH, RESOURCE_TYPE::BLEND_STATE,
  RESOURCE_TYPE::DEPTH_STENCIL_STATE, RESOURCE_TYPE::RASTER_STATE, RESOURCE_TYPE::PROGRAM, RESOURCE_TYPE::SHADER,
  RESOURCE_TYPE::BUFFER, RESOURCE_TYPE::ACCELERATION_STRUCTURE, RESOURCE_TYPE::TEXTURE, RESOURCE_TYPE::SAMPLER,
  RESOURCE_TYPE::NODE_WRAPPER
}
 The type of resources available in the component. More...
 
enum  COMPARISON_FUNCTION {
  COMPARISON_FUNCTION::FUNCTION_NEVER = 1, COMPARISON_FUNCTION::FUNCTION_LESS = 2, COMPARISON_FUNCTION::FUNCTION_EQUAL = 3, COMPARISON_FUNCTION::FUNCTION_LESS_EQUAL = 4,
  COMPARISON_FUNCTION::FUNCTION_GREATER = 5, COMPARISON_FUNCTION::FUNCTION_NOT_EQUAL = 6, COMPARISON_FUNCTION::FUNCTION_GREATER_EQUAL = 7, COMPARISON_FUNCTION::FUNCTION_ALWAYS = 8
}
 Available comparison functions available during sampling (for samplers, and depth stencil states). More...
 
enum  FILTER {
  MIN_MAG_MIP_POINT = 0, MIN_MAG_POINT_MIP_LINEAR = 0x1, MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, MIN_POINT_MAG_MIP_LINEAR = 0x5,
  MIN_LINEAR_MAG_MIP_POINT = 0x10, MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, MIN_MAG_LINEAR_MIP_POINT = 0x14, MIN_MAG_MIP_LINEAR = 0x15,
  ANISOTROPIC = 0x55, COMPARISON_MIN_MAG_MIP_POINT = 0x80, COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
  COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
  COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, COMPARISON_ANISOTROPIC = 0xd5, MINIMUM_MIN_MAG_MIP_POINT = 0x100, MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
  MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104, MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105, MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110, MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
  MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114, MINIMUM_MIN_MAG_MIP_LINEAR = 0x115, MINIMUM_ANISOTROPIC = 0x155, MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
  MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181, MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184, MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185, MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
  MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191, MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194, MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195, MAXIMUM_ANISOTROPIC = 0x1d5
}
 Available filtering methods a sampler can use, when magnifying or minifying during sampling.
 
enum  TEXTURE_ADDRESS_MODE {
  TEXTURE_ADDRESS_MODE::MODE_WRAP = 1, TEXTURE_ADDRESS_MODE::MODE_MIRROR = 2, TEXTURE_ADDRESS_MODE::MODE_CLAMP = 3, TEXTURE_ADDRESS_MODE::MODE_BORDER = 4,
  TEXTURE_ADDRESS_MODE::MODE_MIRROR_ONCE = 5
}
 Available address mode for the samplers. More...
 
enum  TEX_TYPE { TEX_TYPE::TEX_2D = 0, TEX_TYPE::TEX_3D, TEX_TYPE::TEX_CUBEMAP }
 The type a texture can be. More...
 
enum  TEX_RENDER_FLAG { TEX_RENDER_FLAG::NO_RENDER = 0, TEX_RENDER_FLAG::RENDER_TARGET, TEX_RENDER_FLAG::DEPTH_RENDER_TARGET }
 The render flag possible for a texture. More...
 
enum  FORMAT {
  UNKNOWN_FORMAT = 0, R32G32B32A32_TYPELESS = 1, R32G32B32A32_FLOAT = 2, R32G32B32A32_UINT = 3,
  R32G32B32A32_SINT = 4, R32G32B32_TYPELESS = 5, R32G32B32_FLOAT = 6, R32G32B32_UINT = 7,
  R32G32B32_SINT = 8, R16G16B16A16_TYPELESS = 9, R16G16B16A16_FLOAT = 10, R16G16B16A16_UNORM = 11,
  R16G16B16A16_UINT = 12, R16G16B16A16_SNORM = 13, R16G16B16A16_SINT = 14, R32G32_TYPELESS = 15,
  R32G32_FLOAT = 16, R32G32_UINT = 17, R32G32_SINT = 18, R32G8X24_TYPELESS = 19,
  D32_FLOAT_S8X24_UINT = 20, R32_FLOAT_X8X24_TYPELESS = 21, X32_TYPELESS_G8X24_UINT = 22, R10G10B10A2_TYPELESS = 23,
  R10G10B10A2_UNORM = 24, R10G10B10A2_UINT = 25, R11G11B10_FLOAT = 26, R8G8B8A8_TYPELESS = 27,
  R8G8B8A8_UNORM = 28, R8G8B8A8_UNORM_SRGB = 29, R8G8B8A8_UINT = 30, R8G8B8A8_SNORM = 31,
  R8G8B8A8_SINT = 32, R16G16_TYPELESS = 33, R16G16_FLOAT = 34, R16G16_UNORM = 35,
  R16G16_UINT = 36, R16G16_SNORM = 37, R16G16_SINT = 38, R32_TYPELESS = 39,
  D32_FLOAT = 40, R32_FLOAT = 41, R32_UINT = 42, R32_SINT = 43,
  R24G8_TYPELESS = 44, D24_UNORM_S8_UINT = 45, R24_UNORM_X8_TYPELESS = 46, X24_TYPELESS_G8_UINT = 47,
  R8G8_TYPELESS = 48, R8G8_UNORM = 49, R8G8_UINT = 50, R8G8_SNORM = 51,
  R8G8_SINT = 52, R16_TYPELESS = 53, R16_FLOAT = 54, D16_UNORM = 55,
  R16_UNORM = 56, R16_UINT = 57, R16_SNORM = 58, R16_SINT = 59,
  R8_TYPELESS = 60, R8_UNORM = 61, R8_UINT = 62, R8_SNORM = 63,
  R8_SINT = 64, A8_UNORM = 65, R1_UNORM = 66, R9G9B9E5_SHAREDEXP = 67,
  R8G8_B8G8_UNORM = 68, G8R8_G8B8_UNORM = 69, BC1_TYPELESS = 70, BC1_UNORM = 71,
  BC1_UNORM_SRGB = 72, BC2_TYPELESS = 73, BC2_UNORM = 74, BC2_UNORM_SRGB = 75,
  BC3_TYPELESS = 76, BC3_UNORM = 77, BC3_UNORM_SRGB = 78, BC4_TYPELESS = 79,
  BC4_UNORM = 80, BC4_SNORM = 81, BC5_TYPELESS = 82, BC5_UNORM = 83,
  BC5_SNORM = 84, B5G6R5_UNORM = 85, B5G5R5A1_UNORM = 86, B8G8R8A8_UNORM = 87,
  B8G8R8X8_UNORM = 88, FORCE_UINT = 0xffffffffUL
}
 Available formats for resources.
 
enum  MAP {
  MAP_READ = 1, MAP_WRITE = 2, MAP_READ_WRITE = 3, MAP_WRITE_DISCARD = 4,
  MAP_WRITE_NO_OVERWRITE = 5
}
 Available mapping request types.
 
enum  DEPTH_WRITE_MASK { DEPTH_WRITE_MASK_ZERO = 0, DEPTH_WRITE_MASK_ALL = 1 }
 Available depth write masks. More...
 
enum  STENCIL_OP {
  STENCIL_OP_KEEP = 1, STENCIL_OP_ZERO = 2, STENCIL_OP_REPLACE = 3, STENCIL_OP_INCR_SAT = 4,
  STENCIL_OP_DECR_SAT = 5, STENCIL_OP_INVERT = 6, STENCIL_OP_INCR = 7, STENCIL_OP_DECR = 8
}
 Available stencil operations.
 
enum  DSV_FLAG { DSV_READ_ONLY_DEPTH = 0x1L, DSV_READ_ONLY_STENCIL = 0x2L }
 Available depth and stencil view flags.
 
enum  DSV_DIMENSION {
  DSV_DIMENSION_UNKNOWN = 0, DSV_DIMENSION_TEXTURE1D = 1, DSV_DIMENSION_TEXTURE1DARRAY = 2, DSV_DIMENSION_TEXTURE2D = 3,
  DSV_DIMENSION_TEXTURE2DARRAY = 4, DSV_DIMENSION_TEXTURE2DMS = 5, DSV_DIMENSION_TEXTURE2DMSARRAY = 6
}
 Available depth and stencil view dimensions.
 
enum  RTV_DIMENSION {
  RTV_DIMENSION_UNKNOWN = 0, RTV_DIMENSION_BUFFER = 1, RTV_DIMENSION_TEXTURE1D = 2, RTV_DIMENSION_TEXTURE1DARRAY = 3,
  RTV_DIMENSION_TEXTURE2D = 4, RTV_DIMENSION_TEXTURE2DARRAY = 5, RTV_DIMENSION_TEXTURE2DMS = 6, RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
  RTV_DIMENSION_TEXTURE3D = 8
}
 Available render target view dimensions.
 
enum  SRV_DIMENSION {
  SRV_DIMENSION_UNKNOWN = 0, SRV_DIMENSION_BUFFER = 1, SRV_DIMENSION_TEXTURE1D = 2, SRV_DIMENSION_TEXTURE1DARRAY = 3,
  SRV_DIMENSION_TEXTURE2D = 4, SRV_DIMENSION_TEXTURE2DARRAY = 5, SRV_DIMENSION_TEXTURE2DMS = 6, SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
  SRV_DIMENSION_TEXTURE3D = 8, SRV_DIMENSION_TEXTURECUBE = 9, SRV_DIMENSION_TEXTURECUBEARRAY = 10, SRV_DIMENSION_BUFFEREX = 11
}
 Available shader resource views dimensions.
 
enum  UAV_DIMENSION {
  UAV_DIMENSION_UNKNOWN = 0, UAV_DIMENSION_BUFFER = 1, UAV_DIMENSION_TEXTURE1D = 2, UAV_DIMENSION_TEXTURE1DARRAY = 3,
  UAV_DIMENSION_TEXTURE2D = 4, UAV_DIMENSION_TEXTURE2DARRAY = 5, UAV_DIMENSION_TEXTURE3D = 8
}
 Available unordered access views dimensions.
 
enum  BUFFEREX_SRV_FLAG { BUFFEREX_SRV_FLAG_RAW = 0x1 }
 Available buffer ex shader resource views flags.
 
enum  BUFFER_UAV_FLAG { BUFFER_UAV_FLAG_RAW = 0x1, BUFFER_UAV_FLAG_APPEND = 0x2, BUFFER_UAV_FLAG_COUNTER = 0x4 }
 Available unordered access views flags.
 
enum  BLEND {
  BLEND_ZERO = 1, BLEND_ONE = 2, BLEND_SRC_COLOR = 3, BLEND_INV_SRC_COLOR = 4,
  BLEND_SRC_ALPHA = 5, BLEND_INV_SRC_ALPHA = 6, BLEND_DEST_ALPHA = 7, BLEND_INV_DEST_ALPHA = 8,
  BLEND_DEST_COLOR = 9, BLEND_INV_DEST_COLOR = 10, BLEND_SRC_ALPHA_SAT = 11, BLEND_BLEND_FACTOR = 14,
  BLEND_INV_BLEND_FACTOR = 15, BLEND_SRC1_COLOR = 16, BLEND_INV_SRC1_COLOR = 17, BLEND_SRC1_ALPHA = 18,
  BLEND_INV_SRC1_ALPHA = 19
}
 Available blending types.
 
enum  BLEND_OP {
  BLEND_OP_ADD = 1, BLEND_OP_SUBTRACT = 2, BLEND_OP_REV_SUBTRACT = 3, BLEND_OP_MIN = 4,
  BLEND_OP_MAX = 5
}
 Available blending operations.
 
enum  COLOR_WRITE_ENABLE {
  COLOR_WRITE_ENABLE_RED = 1, COLOR_WRITE_ENABLE_GREEN = 2, COLOR_WRITE_ENABLE_BLUE = 4, COLOR_WRITE_ENABLE_ALPHA = 8,
  COLOR_WRITE_ENABLE_ALL = (((COLOR_WRITE_ENABLE_RED | COLOR_WRITE_ENABLE_GREEN) | COLOR_WRITE_ENABLE_BLUE) | COLOR_WRITE_ENABLE_ALPHA)
}
 Available color write masks.
 
enum  FILL_MODE { FILL_WIREFRAME = 2, FILL_SOLID = 3 }
 Available filling mode during rasterization.
 
enum  CULL_MODE { CULL_NONE = 1, CULL_FRONT = 2, CULL_BACK = 3 }
 Available culling modes.
 
enum  SHADER_TYPE {
  VERTEX_SHADER = 0, HULL_SHADER, DOMAIN_SHADER, GEOMETRY_SHADER,
  PIXEL_SHADER, COMPUTE_SHADER, RAYTRACING_SHADER, UNKNOWN_SHADER
}
 Available shader types.
 
enum  SHADER_SEMANTIC {
  POSITION_0 = 0, POSITION_1, POSITION_2, POSITION_3,
  POSITION_4, NORMAL_0 = POSITION_0 + 8, NORMAL_1, NORMAL_2,
  NORMAL_3, NORMAL_4, UV_0 = NORMAL_0 + 8, UV_1,
  UV_2, UV_3, UV_4, COLOR_0 = UV_0 + 8,
  COLOR_1, COLOR_2, COLOR_3, COLOR_4,
  TANGENT_0 = COLOR_0 + 8, TANGENT_1, TANGENT_2, TANGENT_3,
  TANGENT_4, BINORMAL_0 = TANGENT_0 + 8, BINORMAL_1, BINORMAL_2,
  BINORMAL_3, BINORMAL_4, SV_VERTEX_ID = BINORMAL_0 + 8, WORLDMAT_0 = SV_VERTEX_ID + 1,
  WORLDMAT_1, WORLDMAT_2, WORLDMAT_3, WORLDMAT_4,
  OUTPUT_SEMANTIC_OFFSET = WORLDMAT_0 + 16, MAXIMUM_SEMANTIC_INDEX = OUTPUT_SEMANTIC_OFFSET * 2
}
 Available shader semantics.
 
enum  SHADER_RESOURCE_SLOT {
  CONSTANT_BUFFER_0 = 0, CONSTANT_BUFFER_1, CONSTANT_BUFFER_2, CONSTANT_BUFFER_3,
  CONSTANT_BUFFER_4, CONSTANT_BUFFER_5, CONSTANT_BUFFER_6, CONSTANT_BUFFER_7,
  CONSTANT_BUFFER_8, CONSTANT_BUFFER_9, CONSTANT_BUFFER_10, CONSTANT_BUFFER_11,
  CONSTANT_BUFFER_12, CONSTANT_BUFFER_13, CONSTANT_BUFFER_14, CONSTANT_BUFFER_15,
  CONSTANT_BUFFER_16, CONSTANT_BUFFER_17, CONSTANT_BUFFER_18, SHADER_RESOURCE_0,
  SHADER_RESOURCE_1, SHADER_RESOURCE_2, SHADER_RESOURCE_3, SHADER_RESOURCE_4,
  SHADER_RESOURCE_5, SHADER_RESOURCE_6, SHADER_RESOURCE_7, SHADER_RESOURCE_8,
  SHADER_RESOURCE_9, SHADER_RESOURCE_10, SHADER_RESOURCE_11, SHADER_RESOURCE_12,
  SHADER_RESOURCE_13, SHADER_RESOURCE_14, SHADER_RESOURCE_15, SHADER_RESOURCE_16,
  SHADER_RESOURCE_17, SHADER_RESOURCE_18, UAV_RESOURCE_0, UAV_RESOURCE_1,
  UAV_RESOURCE_2, UAV_RESOURCE_3, UAV_RESOURCE_4, UAV_RESOURCE_5,
  UAV_RESOURCE_6, UAV_RESOURCE_7, UAV_RESOURCE_8, UAV_RESOURCE_9,
  UAV_RESOURCE_10, UAV_RESOURCE_11, UAV_RESOURCE_12, UAV_RESOURCE_13,
  UAV_RESOURCE_14, UAV_RESOURCE_15, UAV_RESOURCE_16, UAV_RESOURCE_17,
  UAV_RESOURCE_18, SAMPLER_0, SAMPLER_1, SAMPLER_2,
  SAMPLER_3, SAMPLER_4, SAMPLER_5, SAMPLER_6
}
 Available resources slots.
 
enum  PROGRAM_COMPILATION_PROFILE { PROFILE_UNKNOWN = 0, PROFILE_SM_5_0, PROFILE_SM_5_1, PROFILE_SM_6_0 }
 Available program compilation profiles.
 

Detailed Description

Encompasses all API of component NilkinsGraphics.

This component abstracts the system's graphics API. It currently support different renderers :

A good start would be to check the nkGraphics::System for initialization. Then, by taking a look at nkGraphics::RenderQueue and nkGraphics::Mesh, quickly get something on screen. Finally, open new possibilities using nkGraphics::Shader and nkGraphics::Compositor to alter the rendering and its composition.

For more guided information, best starting point would be the dedicated tutorials.

Enumeration Type Documentation

◆ BUFFER_BIND_FLAG

Available binding flags for buffers.

Enumerator
BIND_NONE 

Not supposed to be bound.

BIND_VERTEX_BUFFER 

Can be bound as a vertex buffer.

BIND_INDEX_BUFFER 

Can be bound as an index buffer.

BIND_CONSTANT_BUFFER 

Can be bound as a constant buffer.

BIND_SHADER_RESOURCE 

Can be bound as a shader resource.

BIND_STREAM_OUTPUT 

Can be bound as an output stream.

BIND_RENDER_TARGET 

Can be bound as a render target.

BIND_DEPTH_STENCIL 

Can be bound as a depth stencil target.

BIND_UNORDERED_ACCESS 

Can be bound as an UAV.

BIND_DECODER 

Can be bound for decoding.

BIND_VIDEO_ENCODER 

Can be bound for video encoding.

◆ BUFFER_CPU_ACCESS_FLAG

Available cpu access flags.

Enumerator
CPU_ACCESS_NONE 

CPU won't need to be able to access the resource.

CPU_ACCESS_WRITE 

CPU will need write access to the resource.

CPU_ACCESS_READ 

CPU will need read access to the resource.

CPU_ACCESS_READ_WRITE 

CPU will need both read and write access to the resource.

◆ BUFFER_USAGE

Available usage for buffers. Drives the memory used for hosting the data.

Enumerator
USAGE_DEFAULT 

Default usage. Will be hosted on GPU, most likely.

USAGE_IMMUTABLE 

Immutable. Needs starting resources, will be hosted on GPU, most likely.

USAGE_DYNAMIC 

Dynamic. Meant to be updated often (per frame), will be hosted on CPU, most likely.

USAGE_STAGING 

Staging. Meant to be read from CPU. Will be hosted on CPU, most likely.

◆ PROJECTION_TYPE

Lists all possible projection types for a camera.

Enumerator
PERSPECTIVE 

Perspective projection type.

ORTHOGRAPHIC 

Orthographic projection type.

◆ OBJ_SPACE

enum nkGraphics::OBJ_SPACE
strong

Enumerates all supported spaces the obj data can come from.

Enumerator
UP_Y_FRONT_Z 

Y is up, Z is front. This is the original space, which won't transform anything.

UP_Y_FRONT_MINUS_Z 

Y is up, -Z is front. This will negate the z coordinate coming from the data.

◆ CONTENT_LOAD_RESULT_STATE

The available values for a parsing attempt result.

Enumerator
SUCCESS 

Fully successful parsing.

PARTIAL 

Partial, there were successful declaration loading alongside failures.

FAILURE 

Fully failed parsing.

◆ ATTRIBUTE_GRANULARITY

Enumerates all granularity available when feeding attribute data.

Enumerator
PER_VERTEX 

Data is fed per vertex drawn in one instance.

PER_INSTANCE 

Data is fed per instance drawn.

◆ INDEX_FORMAT

Enumerates all formats supported for indices in a mesh.

Enumerator
UINT8 

Unsigned byte.

UINT16 

Unsigned short.

UINT32 

Unsigned integer.

◆ PRIMITIVE_TOPOLOGY

Enumerates all primitive topologies supported for meshes.

To get a good basic understanding, this link can be consulted.

Enumerator
PRIMITIVE_TOPOLOGY_UNDEFINED 

Unknown placeholder.

POINTLIST 

Point list.

LINELIST 

Line list.

LINESTRIP 

Line strip.

TRIANGLELIST 

Triangle list.

TRIANGLESTRIP 

Triangle strip.

LINELIST_ADJ 

Line list adjacency.

LINESTRIP_ADJ 

Line strip adjacency.

TRIANGLELIST_ADJ 

Triangle list adjacency.

TRIANGLESTRIP_ADJ 

Triangle strip adjacency.

PATCHLIST_1_CONTROL_POINT 

Patchlist.

PATCHLIST_2_CONTROL_POINT 

Patchlist.

PATCHLIST_3_CONTROL_POINT 

Patchlist.

PATCHLIST_4_CONTROL_POINT 

Patchlist.

PATCHLIST_5_CONTROL_POINT 

Patchlist.

PATCHLIST_6_CONTROL_POINT 

Patchlist.

PATCHLIST_7_CONTROL_POINT 

Patchlist.

PATCHLIST_8_CONTROL_POINT 

Patchlist.

PATCHLIST_9_CONTROL_POINT 

Patchlist.

PATCHLIST_10_CONTROL_POINT 

Patchlist.

PATCHLIST_11_CONTROL_POINT 

Patchlist.

PATCHLIST_12_CONTROL_POINT 

Patchlist.

PATCHLIST_13_CONTROL_POINT 

Patchlist.

PATCHLIST_14_CONTROL_POINT 

Patchlist.

PATCHLIST_15_CONTROL_POINT 

Patchlist.

PATCHLIST_16_CONTROL_POINT 

Patchlist.

PATCHLIST_17_CONTROL_POINT 

Patchlist.

PATCHLIST_18_CONTROL_POINT 

Patchlist.

PATCHLIST_19_CONTROL_POINT 

Patchlist.

PATCHLIST_20_CONTROL_POINT 

Patchlist.

PATCHLIST_21_CONTROL_POINT 

Patchlist.

PATCHLIST_22_CONTROL_POINT 

Patchlist.

PATCHLIST_23_CONTROL_POINT 

Patchlist.

PATCHLIST_24_CONTROL_POINT 

Patchlist.

PATCHLIST_25_CONTROL_POINT 

Patchlist.

PATCHLIST_26_CONTROL_POINT 

Patchlist.

PATCHLIST_27_CONTROL_POINT 

Patchlist.

PATCHLIST_28_CONTROL_POINT 

Patchlist.

PATCHLIST_29_CONTROL_POINT 

Patchlist.

PATCHLIST_30_CONTROL_POINT 

Patchlist.

PATCHLIST_31_CONTROL_POINT 

Patchlist.

PATCHLIST_32_CONTROL_POINT 

Patchlist.

◆ DATA_FILL_TYPE

Enumerates available data fill types.

Enumerator
COPY 

Data will be copied from the input data, to the output vertex buffers.

FORWARD 

Data will be forwarded from the input data to the output vertex buffers. Input will be altered and invalidated in the process.

REFERENCE 

Data will be referenced by the vertex buffers. This means the input data has to remain alive while the mesh is loading.

◆ PASS_TYPE

enum nkGraphics::PASS_TYPE
strong

The pass types available in the component.

Enumerator
UNKNOWN 

Unknown place holder.

CLEAR_TARGETS 

Clear targets pass.

COMPUTE 

Compute pass.

INSTANCING 

Instancing pass.

MONO_MATERIAL 

Mono material pass.

POST_PROCESS 

Post processing pass.

RENDER_SCENE 

Render scene pass.

RAYTRACING 

Raytracing pass.

◆ PROGRAM_TYPE

enum nkGraphics::PROGRAM_TYPE : int
strong

The type of programs available.

Enumerator
UNKNOWN 

Unknown placeholder.

COMPUTE 

A compute program.

GEOMETRY 

A geometry stream program.

PIPELINE 

A pipeline program.

RAYTRACING 

A raytracing program.

◆ RENDERING_API

Enumerates supported graphics API.

Used in configurations to select which API to use.

Enumerator
AUTOMATIC 

Automatic. The system is left with choosing the API.

D3D11 

DirectX 11.

D3D12 

DirectX 12.

GLES 

OpenGL ES 3 compatible.

◆ RENDER_COMMAND_TYPE

Lists available commands for a RenderStrategy to provide.

Enumerator
UNKNOWN 

Unknown command.

CHANGE_SHADER 

Changes the active shader for current state.

CHANGE_MESH 

Changes the active mesh for current state.

DRAW 

Triggers a draw for set state.

PREPARE_INSTANCE 

Prepares an instance, using the InstanceShaderMemorySlot description for active shader.

◆ RESOURCE_MISC_FLAG

Available misc flags for resources.

Enumerator
RESOURCE_MISC_NONE 

No flag.

RESOURCE_MISC_GENERATE_MIPS 

Marked for automatic mip generation.

RESOURCE_MISC_SHARED 

Marked as shared between multiple devices.

RESOURCE_MISC_TEXTURECUBE 

Marked as a cube texture.

RESOURCE_MISC_DRAWINDIRECT_ARGS 

Marked as allowing instancing of GPU generated content.

RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS 

Marked as a byte address buffer (addressed through a byte offset).

RESOURCE_MISC_BUFFER_STRUCTURED 

Marked as a structured buffer (containing a structure addressed through its index).

RESOURCE_MISC_RESOURCE_CLAMP 

Marked as enabling clamping of mips levels.

RESOURCE_MISC_SHARED_KEYEDMUTEX 

Marked as enabling synchronization through mutex acquisition.

RESOURCE_MISC_GDI_COMPATIBLE 

Marks the resource as compatible with GDI (for DirectX renderers).

RESOURCE_MISC_SHARED_NTHANDLE 

Marks as using NT handle for sharing (for DirectX renderers).

RESOURCE_MISC_RESTRICTED_CONTENT 

Marks resource as needing protection.

RESOURCE_MISC_RESTRICT_SHARED_RESOURCE 

Marks a shared resource as needing protection.

RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER 

Marks the resource as needing restriction from the driver.

RESOURCE_MISC_GUARDED 

Marks as guarded, restricting write operations to a region of interest (for DirectX renderers).

RESOURCE_MISC_TILE_POOL 

Marks as a tile pool.

RESOURCE_MISC_TILED 

Marks as a tiled resource.

RESOURCE_MISC_HW_PROTECTED 

Marks as hardware protected.

◆ RESOURCE_LOAD_STATE

The resource load states possible.

Enumerator
UNLOADED 

Resource is unloaded and awaiting configuration.

LOADING 

Resource is loading.

READY_FOR_RENDERING 

Resource is still loading, but ready to be used in some contexts. This can be the case for textures auto generating mips for instance.

LOADED 

Resource is fully loaded and ready for usage.

◆ RESOURCE_TYPE

The type of resources available in the component.

Enumerator
UNKNOWN 

Unknown place holder.

COMPOSITOR 

A compositor.

MESH 

A mesh.

BLEND_STATE 

A blend state.

DEPTH_STENCIL_STATE 

A depth and stencil state.

RASTER_STATE 

A raster state.

PROGRAM 

A program.

SHADER 

A shader.

BUFFER 

A buffer.

ACCELERATION_STRUCTURE 

An acceleration structure.

TEXTURE 

A texture.

SAMPLER 

A sampler.

NODE_WRAPPER 

A Node wrapper. Used internally.

◆ COMPARISON_FUNCTION

Available comparison functions available during sampling (for samplers, and depth stencil states).

Enumerator
FUNCTION_NEVER 

The function never passes.

FUNCTION_LESS 

Function < (less than).

FUNCTION_EQUAL 

Function == (equal).

FUNCTION_LESS_EQUAL 

Function <= (less then or equal).

FUNCTION_GREATER 

Function > (greater than).

FUNCTION_NOT_EQUAL 

Function != (not equal).

FUNCTION_GREATER_EQUAL 

Function >= (geather than or equal).

FUNCTION_ALWAYS 

The function always passes.

◆ TEXTURE_ADDRESS_MODE

Available address mode for the samplers.

Enumerator
MODE_WRAP 

Wraps the coordinates, repeating them when outside of [0, 1].

MODE_MIRROR 

Mirrors the coordinates, repeating them backwards from their last iteration when outside of [0, 1].

MODE_CLAMP 

Clamps the coordinates, forcing them to 0 if negative, and to 1 if bigger.

MODE_BORDER 

Uses the border color for any value outside of [0, 1].

MODE_MIRROR_ONCE 

Uses the mirror behaviour, but only once.

◆ TEX_TYPE

enum nkGraphics::TEX_TYPE
strong

The type a texture can be.

Enumerator
TEX_2D 

A 2D texture.

TEX_3D 

A 3D texture.

TEX_CUBEMAP 

A cubemap.

◆ TEX_RENDER_FLAG

The render flag possible for a texture.

Enumerator
NO_RENDER 

Not used as a target.

RENDER_TARGET 

Used as a color target rendering.

DEPTH_RENDER_TARGET 

Used as a depth target rendering.

◆ DEPTH_WRITE_MASK

Available depth write masks.

Enumerator
DEPTH_WRITE_MASK_ZERO 

Turns off depth writes.

DEPTH_WRITE_MASK_ALL 

Turns on depth writes.