"L. Spiro Engine"
|
Classes | |
class | CDirectX11DepthStencilRenderTarget |
A DirectX 11 depth/stencil render target. More... | |
class | CDirectX11FloatTexture |
A floating-point texture made to work with DirectX 11. More... | |
class | CDirectX11RenderTarget |
A render target designed to interface with Direct3D 11. More... | |
class | CDirectX11RenderTargetManager |
The DirectX 11 implementation of the render target manager. More... | |
class | CDirectX11StandardTexture |
A standard DirectX 11 texture. More... | |
class | CDirectX11VertexBuffer |
Implements the interface specified by CVertexBufferBase for DirectX 11. More... | |
class | CDirectX9 |
Interface with the DirectX 9 API. More... | |
class | CDirectX11RenderQueue |
A render queue that sorts the best way for Direct3D 11. More... | |
class | CDirectX11CBuffer |
A software-side cbuffer for Direct3D 11. More... | |
class | CDirectX11CompiledShader |
A base class for CDirectX11PixelShader and CDirectX11VertexShader which handles the common functionality between them. More... | |
class | CDirectX11CompiledShaderManager |
Manages the sharing of a single Direct3D 11 shader (vertex or pixel shader). More... | |
class | CDirectX11PixelShader |
A pixel shader in DirectX 11. More... | |
class | CDirectX11Shader |
A DirectX 11 shader. More... | |
class | CDirectX11ShaderManager |
Manages the interface between shader objects and the Direct3D 11 API. More... | |
class | CDirectX11ShaderTranslator |
Translates from the engine shader language to HLSL. More... | |
class | CDirectX11VertexShader |
A vertex shader in DirectX 11. More... | |
class | CFnd |
Most core graphics functions are found here. More... | |
class | CFndBase |
Common values that are used by the CFnd class but are not specific to any given graphics API and may be used/needed by the graphics API classes. More... | |
struct | LSG_UNIQUE_VB_ELEMENT |
class | CIndexBufferBase |
An index buffer. More... | |
class | CGraphicsLib |
Core of the graphics library. More... | |
class | CPostProcessBrightPass |
A bright-pass post processor. More... | |
class | CPostProcessHorBlur |
A horizontal blur filter with the option to downsample at the same time. More... | |
class | CPostProcessingStage |
A single stage in a post-processing pass. More... | |
class | CPostProcessLuminance |
Manages calculating the luminance of a render and adjusting the luminance over time. More... | |
class | CPostProcessorBase |
The base class for the post processor. More... | |
class | CPostProcessVertBlur |
A vertical blur filter with the option to downsample at the same time. More... | |
class | CPreProc |
Parses a single expression related to #if and #elif. More... | |
class | CPreProcContainer |
Stores all of the data parsed during the parsing of an expression for use with the preprocessor. More... | |
union | YYSTYPE |
class | CRenderQueueBase |
The base class for render queues. More... | |
class | CRenderQueueClient |
Objects that send render queue items to render queues must inherit from this class. More... | |
struct | LSG_RENDER_QUEUE_ITEM |
Information needed by the render queue for sorting. More... | |
class | CColorRenderTarget |
A color render target. More... | |
class | CDepthStencilRenderTarget |
A depth/stencil render target. More... | |
class | CRenderTargetBase |
A render target, different from a texture that is a render target in that this implementation is more like a back-buffer, not to be used as a texture on a model or sprite. More... | |
class | CRenderTargetInterface |
The base interface for all render targets. More... | |
class | CRenderTargetManagerBase |
Base for the class that manages render targets. More... | |
class | CCompiledShaderBase |
A base class for compiled shaders, providing a generic interface for setting and getting data from shaders. More... | |
class | CShader |
A shader for the graphics engine. More... | |
class | CShaderBase |
The base class for shaders. More... | |
class | CShaderLanguageParser |
Manages all information related to a parsed shader file. More... | |
class | CShaderLexer |
Defines the lexer base class by #define'ing yyFlexLexer before including LSGShaderLexBase.h. More... | |
class | CShaderParserWrapper |
Wrapper for the Bison generated syntax parser of the engine script language. More... | |
class | CShaderScope |
A single scope within a stack of scopes. More... | |
class | CShaderScopeStack |
A stack of scopes containing variables, functions, and structures declared in shaders. More... | |
union | LSG_PREPROC_SYNTAX_NODES |
class | CShaderTranslationProcessorBase |
Provides a set of base callbacks that other platform-specific classes can use to process the syntax tree differently. More... | |
struct | LSG_ANIM_CELL |
class | CSprite |
A standard 2D sprite class. More... | |
class | CStandardTexture |
A standard texture. More... | |
struct | LSG_TEX_PARMS |
class | CTextureBase |
The base class for textures. More... | |
class | CTextureManager |
A texture manager. More... | |
class | CStripAdjacency |
Creates adjacency information for the preparation of the conversion from a triangle list to a triangle strip. More... | |
class | CTriangleStripper |
Creates a single one-sided triangle strip. More... | |
class | CVertexBuffer |
A vertex buffer. More... | |
struct | LSG_VB_CONTENTS |
class | CVertexBufferBase |
The base of vertex buffers. More... | |
Typedefs | |
typedef CTextureBase | Parent |
typedef class CDirectX9ShaderManager | CShaderManager |
typedef CDirectX11 | CBaseApi |
typedef struct lsg::LSG_UNIQUE_VB_ELEMENT * | LPLSG_UNIQUE_VB_ELEMENT |
typedef struct lsg::LSG_UNIQUE_VB_ELEMENT | LPCLSG_UNIQUE_VB_ELEMENT |
typedef struct lsg::LSG_RENDER_QUEUE_ITEM * | LPLSG_RENDER_QUEUE_ITEM |
Information needed by the render queue for sorting. | |
typedef struct lsg::LSG_RENDER_QUEUE_ITEM | LPCLSG_RENDER_QUEUE_ITEM |
typedef CSharedPtr< CShader > | CSharedShaderPtr |
typedef struct lsg::LSG_ANIM_CELL * | LPLSG_ANIM_CELL |
typedef struct lsg::LSG_ANIM_CELL | LPCLSG_ANIM_CELL |
typedef CSharedPtr< CAnimSprite > | CSharedAnimSpritePtr |
typedef CSharedPtr< CSprite > | CSharedSpritePtr |
typedef CSharedPtr< CCubeTexture > | CSharedCubeTexPtr |
typedef CSharedPtr < CStandardTexture > | CSharedStdTexPtr |
typedef struct lsg::LSG_TEX_PARMS * | LPLSG_TEX_PARMS |
typedef struct lsg::LSG_TEX_PARMS | LPCLSG_TEX_PARMS |
typedef struct lsg::LSG_VB_CONTENTS * | LPLSG_VB_CONTENTS |
typedef struct lsg::LSG_VB_CONTENTS | LPCLSG_VB_CONTENTS |
Enumerations | |
enum | LSG_BUFFERS { LSG_B_COLOR_BUFFER = D3DCLEAR_TARGET, LSG_B_STENCIL_BUFFER = D3DCLEAR_STENCIL, LSG_B_DEPTH_BUFFER = D3DCLEAR_ZBUFFER, LSG_B_ALL = LSG_B_COLOR_BUFFER | LSG_B_STENCIL_BUFFER | LSG_B_DEPTH_BUFFER } |
enum | LSG_LIGHT_TYPES { LSG_LT_NONE, LSG_LT_DIR, LSG_LT_POINT, LSG_LT_SPOT } |
enum | LSG_BLEND_MODES { LSG_BM_ZERO, LSG_BM_ONE, LSG_BM_SRC_COLOR, LSG_BM_INV_SRC_COLOR, LSG_BM_DST_COLOR, LSG_BM_INV_DST_COLOR, LSG_BM_SRC_ALPHA, LSG_BM_INV_SRC_ALPHA, LSG_BM_DST_ALPHA, LSG_BM_INV_DEST_ALPHA, LSG_BM_SRC_ALPHA_SAT, LSG_BM_TOTAL, LSG_BM_FORCE_DWORD = 0x7FFFFFFF } |
enum | LSG_FILL_MODES { LSG_FM_SOLID, LSG_FM_WIRE } |
enum | LSG_DEPTH_TEST { LSG_DT_NEVER, LSG_DT_ALWAYS, LSG_DT_LESS, LSG_DT_EQUAL, LSG_DT_NOTEQUAL, LSG_DT_LESSEQUAL, LSG_DT_GREATER, LSG_DT_GREATEREQUAL } |
enum | LSG_METRICS { LSG_MAX_LIGHTS = 8, LSG_MAX_TEXTURE_UNITS = 16 } |
enum | LSG_FOG_TYPE { LSG_FT_LINEAR, LSG_FT_EXP, LSG_FT_EXP2 } |
enum | LSG_CULL_MODES { LSG_CM_CW, LSG_CM_CCW } |
enum | LSG_INDEX_BUFFER_USAGE_TYPES { LSG_IBUT_SETONLY = (1 << 0), LSG_IBUT_STANDARD = (1 << 1), LSG_IBUT_DYNAMIC = (1 << 2), LSG_IBUT_MASK = (LSG_IBUT_SETONLY | LSG_IBUT_STANDARD | LSG_IBUT_DYNAMIC), LSG_IBUT_FORCE_DWORD = 0x7FFFFFFF } |
enum | LSG_PREPROC_NODE { LSG_PPN_IDENTIFIER, LSG_PPN_NUMERICCONSTANT, LSG_PPN_UNARY, LSG_PPN_MATH, LSG_PPN_TERTIARY, LSG_PPN_DEFINED, LSG_PPN_TU } |
enum | LSG_PREPROC_NUM_CONSTANTS { LSG_PPNC_SIGNED, LSG_PPNC_UNSIGNED, LSG_PPNC_FLOATING, LSG_PPNC_INVALID } |
enum | LSG_RENDER_TYPE { LSG_RT_NORMAL, LSG_RT_AMBIENTONLY, LSG_RT_LIGHTING, LSG_RT_SHADOWMAP } |
enum | LSG_RENDER_TARGET_FORMAT { LSG_RTF_RGB16, LSG_RTF_RGBA16, LSG_RTF_RGB32, LSG_RTF_RGBA32, LSG_RTF_RGB10_A2, LSG_RTF_R_F16, LSG_RTF_R_F32, LSG_RTF_RG_F32, LSG_RTF_RG_F64, LSG_RTF_RGBA_F64, LSG_RTF_RGBA_F128, LSG_RTF_DEPTH16, LSG_RTF_DEPTH24, LSG_RTF_DEPTH32, LSG_RTF_DEPTH15_STENCIL1, LSG_RTF_DEPTH24_STENCIL4, LSG_RTF_DEPTH24_STENCIL8, LSG_RTF_TOTAL } |
enum | { LSG_MRT_MAX = 16 } |
enum | LSG_NODE { LSG_N_STRINGCONSTANT, LSG_N_NUMERICCONSTANT, LSG_N_IDENTIFIER, LSG_N_BOOLEAN, LSG_N_ARRAYACCESS, LSG_N_POSTFIXINC, LSG_N_POSTFIXDEC, LSG_N_PREFIXINC, LSG_N_PREFIXDEC, LSG_N_UNARY, LSG_N_CAST, LSG_N_MATH, LSG_N_TERTIARY, LSG_N_ASSIGNMENT, LSG_N_COMMA, LSG_N_INTRINSIC, LSG_N_ARGLIST, LSG_N_FUNCTIONCALL, LSG_N_FIELDSELECT, LSG_N_CONSTRUCTOR, LSG_N_EXPRESSIONSTATEMENT, LSG_N_DECLARATIONSTATEMENT, LSG_N_SEMANTIC, LSG_N_TYPESPECIFIERNOPREC, LSG_N_FULLYSPECIFIEDTYPE, LSG_N_SINGLEDECL, LSG_N_INITLIST, LSG_N_INITLISTWRAP, LSG_N_STATEMENTLIST, LSG_N_NEWSCOPESTATEMENT, LSG_N_BLANKSTATEMENT, LSG_N_STRUCTDECLARATOR, LSG_N_STRUCTDECLARATORLIST, LSG_N_STRUCTDECLARATION, LSG_N_STRUCTDECLARATIONLIST, LSG_N_STRUCT, LSG_N_PARMDECLARATOR, LSG_N_PARMDECLARATION, LSG_N_PARMDECLARATIONLIST, LSG_N_FUNCDECL, LSG_N_FUNCDEFINITION, LSG_N_SELECTION, LSG_N_FORINIT, LSG_N_WHILE, LSG_N_DOWHILE, LSG_N_FOR, LSG_N_CONTINUE, LSG_N_BREAK, LSG_N_RETURN, LSG_N_DISCARD, LSG_N_EXTERNALDECLARATIONLIST } |
enum | LSG_NUM_CONSTANTS { LSG_NC_SIGNED, LSG_NC_UNSIGNED, LSG_NC_FLOATING, LSG_NC_INVALID } |
enum | LSG_STORAGE_QUALIFIER { LSG_SQ_BASEBIT = 16UL, LSG_SQ_CONST = (1UL << (0UL + LSG_SQ_BASEBIT)), LSG_SQ_IN = (1UL << (1UL + LSG_SQ_BASEBIT)), LSG_SQ_OUT = (1UL << (2UL + LSG_SQ_BASEBIT)), LSG_SQ_INOUT = (LSG_SQ_IN | LSG_SQ_OUT), LSG_SQ_UNIFORM = (1UL << (3UL + LSG_SQ_BASEBIT)), LSG_SQ_BITSUSED = 4UL + LSG_SQ_BASEBIT, LSG_SQ_FORCEDWORD = 0x7FFFFFFF } |
enum | LSG_INTERPOLATION_QUALIFIER { LSG_IQ_SMOOTH = (1UL << (0UL + LSG_SQ_BITSUSED)), LSG_IQ_FLAT = (1UL << (1UL + LSG_SQ_BITSUSED)), LSG_IQ_BITSUSED = 2UL + LSG_SQ_BITSUSED, LSG_IQ_FORCEDWORD = 0x7FFFFFFF } |
enum | LSG_WRAP_MODE { LSG_WM_CLAMP, LSG_WM_REPEAT, LSG_WM_MIRROR } |
enum | LSG_MAPPING_TYPE { LSG_MT_UV, LSG_MT_XY, LSG_MT_YZ, LSG_MT_XZ, LSG_MT_SPERICAL, LSG_MT_ENVIRONMENT, LSG_MT_CYLINDRICAL, LSG_MT_PROJ } |
enum | LSG_TEXTURE_USAGE_FORMAT { LSG_UF_NORMAL, LSG_UF_CUBE_MAP, LSG_UF_SHADOW_MAP, LSG_UF_COLOR_MAP, LSG_UF_NORMAL_MAP } |
enum | LSG_TEXTURE_USAGE_TYPE { LSG_TU_SETONLY = (1 << 0UL), LSG_TU_MODIFYABLE = (1 << 1UL), LSG_TU_RENDERTARGET = (1 << 2UL), LSG_TU_BITS = 3 } |
enum | LSG_TEXTURE_FILTER_TYPE { LSG_TFT_ANISOTROPIC = (1 << 3UL), LSG_TFT_LINEAR = (1 << 4UL), LSG_TFT_NEAREST = (1 << 5UL) } |
enum | LSG_TEXTURE_BLENDING_MODES { LSG_TBM_TRANSLUCENT = 0UL, LSG_TBM_ADDITIVE = 1UL, LSG_TBM_MODULATE = 2UL, LSG_TBM_MODULATE2 = 3UL, LSG_TBM_OVER = 4UL } |
enum | LSG_TEXTURE_METRICS { LSG_TM_MAX_SLOTS = 8UL } |
enum | LSG_VERTEX_BUFFER_USAGE_TYPES { LSG_VBUT_SETONLY = (1 << 0), LSG_VBUT_STANDARD = (1 << 1), LSG_VBUT_DYNAMIC = (1 << 2), LSG_VBUT_MASK = (LSG_VBUT_SETONLY | LSG_VBUT_STANDARD | LSG_VBUT_DYNAMIC), LSG_VBUT_FORCE_DWORD = 0x7FFFFFFF } |
enum | LSG_VERTEX_BUFFER_ACCESS_FLAGS { LSG_VBAF_READ_ONLY = (1 << 7), LSG_VBAF_READ_WRITE = (1 << 8), LSG_VBAF_MASK = (LSG_VBAF_READ_ONLY | LSG_VBAF_READ_WRITE), LSG_VBAF_FORCE_DWORD = 0x7FFFFFFF } |
enum | LSG_VERTEX_BUFFER_PRIMITIVES { LSG_VBP_TRIANGLELIST = (1 << 9), LSG_VBP_TRIANGLESTRIP = (1 << 10), LSG_VBP_MASK = (LSG_VBP_TRIANGLELIST | LSG_VBP_TRIANGLESTRIP), LSG_VBP_FORCE_DWORD = 0x7FFFFFFF } |
enum | LSG_VERTEX_ATTRIBUTES { LSG_VA_POSITION, LSG_VA_POSITIONW, LSG_VA_NORMAL, LSG_VA_COLOR, LSG_VA_ALPHA, LSG_VA_TEX, LSG_VA_FOGCOORD, LSG_VA_BINORMAL, LSG_VA_TANGENT, LSG_VA_BLENDWEIGHT, LSG_VA_BLENDINDICES, LSG_VA_1FLOAT_TEX, LSG_VA_3FLOAT_TEX, LSG_VA_4FLOAT_TEX, LSG_VA_FORCE_DWORD = 0x7FFFFFFF } |
enum | LSG_VERTEX_BUFFER_METRICS { LSG_VBM_MAX_ATTRIBUTES = 16, LSG_VBM_MAX_USAGES = 16, LSG_VBM_MAX_STREAMS = 16 } |
Functions | |
LSVOID LSE_CALL | Reset () |
LSVOID LSE_CALL | ResetApi () |
LSBOOL LSE_CALL | CreateApiTexture () |
LSVOID LSE_CALL | InitApi (CAllocator *_paAllocator) |
LSBOOL LSE_CALL | CreateApiIndexBuffer () |
LSVOID LSE_CALL | RenderApi (const CVertexBuffer &_vbBuffer, LSUINT32 _ui32TotalPrimitives) const |
LSVOID LSE_CALL | SetApiStripType (LSG_VERTEX_BUFFER_PRIMITIVES _vbpType) |
CIndexBuffer &LSE_CALL | operator= (const CIndexBuffer &_ibOther) |
LSBOOL LSE_CALL | CreateIndexBuffer (LSUINT32 _ui32InitialElements, LSUINT32 _ui32Usage, LSBOOL _bUse32Bits=false, CAllocator *_paAllocator=NULL) |
LSBOOL LSE_CALL | CreateIndexBufferFromVertexBuffer (CVertexBuffer &_vbBuffer, LSUINT32 _ui32Usage, CAllocator *_paAllocator=NULL) |
LSBOOL LSE_CALL | CreateTriangleStripGrid (LSUINT32 _ui32VerticesPerRow, LSUINT32 _ui32Rows, LSUINT32 _ui32Usage, CAllocator *_paAllocator=NULL) |
LSVOID LSE_CALL | SetAllocator (CAllocator *_paAllocator) |
LSBOOL LSE_CALL | MakeTriangleStrip () |
LSBOOL LSE_CALL | Finalize () |
LSBOOL LSE_CALL | Lock () |
LSBOOL LSE_CALL | UnLock () |
LSBOOL LSE_CALL | PushIndex (LSUINT32 _ui32Index) |
LSE_INLINE LSBOOL LSE_CALL | SetIndex (LSUINT32 _ui32IndexIndex, LSUINT32 _ui32Value) |
LSE_INLINE LSUINT32 LSE_CALL | TotalIndices () const |
LSE_INLINE const LSVOID *LSE_CALL | GetIndices () const |
LSE_INLINE const LSUINT32 *LSE_CALL | Get32BitIndices () const |
LSE_INLINE const LSUINT16 *LSE_CALL | Get16BitIndices () const |
LSE_INLINE LSBOOL LSE_CALL | IndicesAre32Bits () const |
LSBOOL LSE_CALL | UpgradeList () |
LSE_INLINE LSVOID LSE_CALL | Render (const CVertexBuffer &_vbBuffer, LSUINT32 _ui32TotalPrimitives) const |
virtual LSUINT32 LSE_CALL | NewLex () |
LSE_INLINE CRenderQueue &LSE_CALL | operator= (const CRenderQueue &_rqOther) |
LSE_INLINE LSVOID LSE_CALL | RenderNormal () const |
LSE_INLINE LSVOID LSE_CALL | RenderAmbient () const |
LSE_INLINE LSVOID LSE_CALL | RenderLighting () const |
LSE_INLINE LSVOID LSE_CALL | RenderShadowMap () const |
LSE_INLINE LSVOID LSE_CALL | Render (LSG_RENDER_TYPE _rtRenderType) const |
LSE_INLINE LSVOID LSE_CALL | PrepareUnsortedRender () |
LSE_INLINE CRenderQueueSet &LSE_CALL | operator= (const CRenderQueueSet &_rqsOther) |
CRenderQueue &LSE_CALL | OpaqueRenderQueue () |
CRenderQueue &LSE_CALL | AlphaRenderQueue () |
LSVOID LSE_CALL | EndRender () |
LSE_INLINE LSUINT32 LSE_CALL | Failures () const |
LSBOOL LSE_CALL | SetCells (const LSG_ANIM_CELL *_pacCells, LSUINT32 _ui32Total) |
LSVOID LSE_CALL | Tick (LSUINT64 _ui64Time) |
LSVOID LSE_CALL | TickForward (LSUINT64 _ui64Time) |
LSBOOL LSE_CALL | CreateCubeTexture (LSUINT32 _ui32Size, LSUINT32 _ui32Usage, LSI_PIXEL_FORMAT _pfFormat=LSI_PF_R8G8B8, LSBOOL _bMipMaps=true, CAllocator *_paAllocator=NULL) |
LSBOOL LSE_CALL | LoadCubeTextureFromMemory (const LSVOID **_ppvBuffers, LSUINT32 _ui32Sizes[6], LSUINT32 _ui32Usage, LSBOOL _bMipMaps=true, CAllocator *_paAllocator=NULL) |
LSBOOL LSE_CALL | LoadCubeTextureFromFiles (const LSCHAR *_pcPaths[6], LSUINT32 _ui32Usage, LSBOOL _bMipMaps=true, CAllocator *_paAllocator=NULL) |
LSVOID LSE_CALL | SetInternal (LSUINT32 _ui32Size, LSUINT32 _ui32Usage, LSI_PIXEL_FORMAT _pfFormat, LSBOOL _bMipMaps) |
LSBOOL LSE_CALL | CreateFloatingPointTexture (LSUINT32 _ui32Width, LSUINT32 _ui32Height) |
Variables | |
F | __pad0__ |
CImage | m_iFaces [6] |
ID3D11Texture2D * | m_ptTexture |
ID3D11RenderTargetView * | m_prtvView |
ID3D11ShaderResourceView * | m_psrvResourceView |
ID3D11Buffer * | m_pbDirectX11IndexBuffer |
D3D11_PRIMITIVE_TOPOLOGY | m_ptPrimitiveType |
F std::ostream * | _posStream = NULL ) |
CRenderQueue | m_rqOpaque |
CRenderQueue | m_rqAlpha |
LSUINT32 | m_ui32Failures |
CVector< LSG_ANIM_CELL > | m_vCells |
LSUINT64 | m_ui64Time |
LSUINT64 | m_ui64TotalTime |
LSUINT32 | m_ui32Cell |
LSI_PIXEL_FORMAT | m_pfFormat |
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Cube textures made to interface with Direct3D 11.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A DirectX 11 depth/stencil render target.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A floating-point texture made to work with DirectX 11.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: This class handles the conversion from our standard general-purpose index buffer to something that can be used by Direct3D 11.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A render target designed to interface with Direct3D 11.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: The DirectX 11 implementation of the render target manager.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A standard DirectX 11 texture.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Implements the interface specified by CVertexBufferBase for DirectX 11. Note that only in debug builds is CVertexBufferBase actually inherited by this class.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Interface with the DirectX 9 API.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A render queue that sorts the best way for Direct3D 11.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A software-side cbuffer for Direct3D 11.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A base class for CDirectX11PixelShader and CDirectX11VertexShader which handles the common functionality between them. Both classes have compiled code and a few constant buffers, and a way to convert handles from that constant table handle type to our custom handle type.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Manages the sharing of a single Direct3D 11 shader (vertex or pixel shader). Sharing is based off the (adjusted) shader text for the sake of speed. The alternative--sharing based off compiled code-- makes loading times too long. For debug purposes, sharing can be disabled.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A pixel shader in DirectX 11. This is used by CDirectX9Shader as one of its components. These objects are shared by default, managed by the CDirectX11CompiledShaderManager class.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A DirectX 11 shader. Shaders in DirectX 11 are normally considered to be specifically a vertex shader or a pixel shader (etc.), but here a single vertex, pixel, and geometry shader are treated as one, matching shader behavior in OpenGL. Vertex, pixel, and geometry shaders are called shader parts here, with the shader being the result of combining them. Shader parts are optionally shared. The DirectX shader part manager prevents duplicate shader parts and handles sharing. Sharing can be disabled for debugging purposes.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Manages the interface between shader objects and the Direct3D 11 API. Its main function is to apply and unapply shaders, but it also applies engine-specific functionality to shaders as well, where they are not supported by HLSL. For example, automatic application of light and fog values, etc.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Translates from the engine shader language to HLSL.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A vertex shader in DirectX 11. This is used by CDirectX11Shader as one of its components. These objects are shared by default, managed by the CDirectX11CompiledShaderManager class.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Most core graphics functions are found here.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Common values that are used by the CFnd class but are not specific to any given graphics API and may be used/needed by the graphics API classes.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Graphics system constants.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: An API-independent index buffer.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: An index buffer. Automatically uses the lowest suitable type for the given index data--that is it will use 16-bit indices if possible or upgrade to 32-bit automatically. This base class provides basic enumerations and a protected interface used only in debug mode. For the reasons behind this system, read the details in LSGVertexBufferBase.h.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A bright-pass post processor.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A horizontal blur filter with the option to downsample at the same time.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A single stage in a post-processing pass. Here, "pass" means the entire post-processing from start to finish. "Pass" is always ambiguous in post-processing. Sometimes it means the entire post-- processing, sometimes one specific render, sometimes a specific stage, which might require multiple renders. Here, a render is a render, a stage is one or more renders whose goal is to produce a result for another stage to use, and "pass" is all of this combined.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Manages calculating the luminance of a render and adjusting the luminance over time.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: The post processor.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: The base class for the post processor.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A vertical blur filter with the option to downsample at the same time.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Parses a single expression related to #if and #elif.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Stores all of the data parsed during the parsing of an expression for use with the preprocessor.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A render queue.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: The base class for render queues.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Objects that send render queue items to render queues must inherit from this class. The render queue will use this interface to have objects draw themselves.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Information needed by the render queue for sorting.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A render queue set is a pair of render queues, one for opaque items and one for alpha.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A color render target. Used for off-screen rendering.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A depth/stencil render target.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A render target, different from a texture that is a render target in that this implementation is more specific to rendering to a surface. A texture that acts as a render target is typically primarily a texture first and a render target second. Rendering to the texture will typically not take place every frame and it will be attached to a model or sprite for display on something. In contrast, this render target implementation is meant specifically to be a target of rendering for post- processing and other effects. It will not be used as a texture for an object or sprite.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: The base interface for all render targets.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A render target manager.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Base for the class that manages render targets. Render targets should be activated (as the target of a render) through this manager. It will not set the render targets immediately, but will activate them when the scene is actually rendered. This means there is no overhead in setting render targets redundantly, etc. When frame buffers are concerned (OpenGL and friends), it will automatically switch between the main screen frame buffer a hidden frame buffer meant for off-screen rendering and put the activated render targets there.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A base class for compiled shaders, providing a generic interface for setting and getting data from shaders. A CShader object will have one of these per shader part (vertex, pixel, goemetry, etc.) This is overridden by classes that specialize it for OpenGL GLSL, DirectX HLSL, etc.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A shader for the graphics engine. This is the object into which the source code is fed and a compiled runnable shader is output.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: The base class for shaders. This is overridden by classes specific to a given graphics API.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Handles the meat of parsing a shader file. Bison performs the actual parsing, but all nodes are sent to this class to be managed. This is the go-to class for any information needed on a parsed shader.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Wrapper for the Bison generated syntax parser of the engine script language.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A single scope within a stack of scopes. When a new scope is created, it is pushed to the top of a stack of scopes. The top of the stack is always the current scope.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A stack of scopes. The bottom scope is global. The top scope is the current scope.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: An animated sprite. This allows easy playback of a series of cells on a single texture.
Copyright L. Spiro 2012 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A standard 2D sprite class. Sprites can be rendered in immediate mode but this is slower. Use CSprite::Begin() and CSprite::End() for high-performance rendering.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A standard cube texture. It can be set as a render target if LSG_TU_MODIFYABLE is set.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A floating-point texture. The format of the texture depends on the hardware's capabilities. This is 2D and typically used for shadow mapping.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A standard texture. Used for diffuse materials, mainly. Also sprites etc.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: The base class for textures.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A texture manager. It handles sharing of textures and prevents duplicate textures from being stored.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Creates adjacency information for the preparation of the conversion from a triangle list to a triangle strip. Code based on Pierre Terdiman's original work.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: Creates a single one-sided triangle strip. Code based on Pierre Terdiman's original work.
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: A vertex buffer. The base class for this depends on the graphics API. We do not use polymorpism here, though in debug mode some functions will be virtual as a means of ensuring the API interface matches between all underlying API vertex buffer classes. Using a vertex buffer is simple: #1: Specify the buffer properties. #2: Fill it with vertex data. #3: Call Finalize() and it is ready to be used for rendering. Before Finalize() is called, you can still add vertices even if you specified a buffer with the LSG_VBAF_READ_ONLY flag. This flag is used only after the vertex data is uploaded to the hardware, which happens after a call to Finalize().
Copyright L. Spiro 2011 All rights reserved.
Written by: Shawn (L. Spiro) Wilcoxen
This code may not be sold or traded for any personal gain without express written consent. You may use this code in your own projects and modify it to suit your needs as long as this disclaimer remains intact. You may not take credit for having written this code.
Description: This is a nifty solution to a special case. The ultimate goal is simply to create one class for each graphics API (OpenGL, OpenGL ES, DirectX 9, etc.) and have them all share the same public interface. From there, we would simply create a class called CVertexBuffer that is merely a typedef of one of the API classes--or instead inherits from one of the API classes--based on which API is active.
typedef CDirectX11 lsg::CBaseApi |
The API type. Each API has essentially the same interface, so we simply define here which "class" we will use.
typedef class CDirectX9ShaderManager lsg::CShaderManager |
The shader manager type.
typedef CSharedPtr<CAnimSprite> lsg::CSharedAnimSpritePtr |
A shared animated sprite pointer.
typedef CSharedPtr<CCubeTexture> lsg::CSharedCubeTexPtr |
A shared pointer to a standard texture.
typedef CSharedPtr<CShader> lsg::CSharedShaderPtr |
A shared pointer to a standard texture.
typedef CSharedPtr<CSprite> lsg::CSharedSpritePtr |
A shared sprite pointer.
typedef CSharedPtr<CStandardTexture> lsg::CSharedStdTexPtr |
A shared pointer to a standard texture.
typedef struct lsg::LSG_ANIM_CELL * lsg::LPLSG_ANIM_CELL |
A single cell within an animation.
typedef struct lsg::LSG_RENDER_QUEUE_ITEM * lsg::LPLSG_RENDER_QUEUE_ITEM |
Information needed by the render queue for sorting.
Class CRenderQueueItem Description: Information needed by the render queue for sorting.
typedef struct lsg::LSG_TEX_PARMS * lsg::LPLSG_TEX_PARMS |
A structure that provides an alternative and possibly simpler way to create textures.
typedef struct lsg::LSG_UNIQUE_VB_ELEMENT * lsg::LPLSG_UNIQUE_VB_ELEMENT |
A unique element in a vertex buffer.
typedef struct lsg::LSG_VB_CONTENTS * lsg::LPLSG_VB_CONTENTS |
Vertex buffer contents.
anonymous enum |
The maximum number of simultaneous render targets. This number of render targets may not not necessarily be supported on all platforms, and system metrics need to be polled. The total number of usable slots is the min between this number and the system metrics.
enum lsg::LSG_BLEND_MODES |
The blend types we support. These are for blending to the backbuffer only.
enum lsg::LSG_BUFFERS |
Buffers.
enum lsg::LSG_CULL_MODES |
Culling modes.
enum lsg::LSG_DEPTH_TEST |
Depth-test functions.
enum lsg::LSG_FILL_MODES |
enum lsg::LSG_FOG_TYPE |
Type of fog. Linear, exponential, or exponential squared.
Usage types.
Interpolation qualifiers. Bits follow LSG_STORAGE_QUALIFIER.
enum lsg::LSG_LIGHT_TYPES |
Mapping types.
enum lsg::LSG_METRICS |
System metrics.
enum lsg::LSG_NODE |
Enumerate node types.
Numeric constant types.
Enumerate node types.
Numeric constant types.
Surface formats used specifically with render targets. Because render targets are not meant to be used as textures directly, these formats are specific to the functionality we will need for render targets.
enum lsg::LSG_RENDER_TYPE |
Storage qualifiers. Bit masks are used.
Predefined vertex attributes.
Metrics.
enum lsg::LSG_WRAP_MODE |
Wrapping modes.
CRenderQueue& LSE_CALL lsg::AlphaRenderQueue | ( | ) |
Gets the alpha render queue.
LSBOOL LSE_CALL lsg::CreateApiIndexBuffer | ( | ) | [protected] |
Create an index buffer for the graphics API. This should use the data in this object to create the buffer.
LSBOOL LSE_CALL lsg::CreateApiTexture | ( | ) | [protected] |
Create a Direct3D 11 texture and fill it with our texel data. Mipmaps are generated if necessary.
LSBOOL LSE_CALL lsg::CreateCubeTexture | ( | LSUINT32 | _ui32Size, |
LSUINT32 | _ui32Usage, | ||
LSI_PIXEL_FORMAT | _pfFormat = LSI_PF_R8G8B8 , |
||
LSBOOL | _bMipMaps = true , |
||
CAllocator * | _paAllocator = NULL |
||
) |
Create a cube texture.
_ui32Size | Size of the texture to create. |
_ui32Usage | Texture usage. |
_pfFormat | Format of the cube texture to create. |
_bMipMaps | If true, mipmaps are generated. |
_paAllocator | Optional allocator for all allocations made by this texture object. |
LSBOOL LSE_CALL lsg::CreateFloatingPointTexture | ( | LSUINT32 | _ui32Width, |
LSUINT32 | _ui32Height | ||
) |
Create a floating-point texture with the given dimentions. The texture can not be modified by the CPU, so there is no Finalize() function, unlike with other texture types.
_ui32Width | Width of the texture to create. |
_ui32Height | Height of the texture to create. |
LSBOOL LSE_CALL lsg::CreateIndexBuffer | ( | LSUINT32 | _ui32InitialElements, |
LSUINT32 | _ui32Usage, | ||
LSBOOL | _bUse32Bits = false , |
||
CAllocator * | _paAllocator = NULL |
||
) |
Create an index buffer, pre-allocating the given number of indices.
_ui32InitialElements | Number of initial elements to pre-allocate. |
_ui32Usage | Usage type. |
_bUse32Bits | If true, the list will start at 32 bits per index. Use this only if you know for sure that the index buffer will contain at least one value greater than 0xFFF. |
_paAllocator | Optional allocator to be used for all allocations made by this object. |
LSBOOL LSE_CALL lsg::CreateIndexBufferFromVertexBuffer | ( | CVertexBuffer & | _vbBuffer, |
LSUINT32 | _ui32Usage, | ||
CAllocator * | _paAllocator = NULL |
||
) |
Create an index buffer based on a vertex buffer. Modifies the vertex buffer, removing duplicate elements.
_vbBuffer | The vertex buffer from which to create the index buffer. |
_ui32Usage | Usage type. |
_paAllocator | Optional allocator to be used for all allocations made by this object. |
LSBOOL LSE_CALL lsg::CreateTriangleStripGrid | ( | LSUINT32 | _ui32VerticesPerRow, |
LSUINT32 | _ui32Rows, | ||
LSUINT32 | _ui32Usage, | ||
CAllocator * | _paAllocator = NULL |
||
) |
Create an index buffer forming a grid as a triangle strip.
_ui32VerticesPerRow | Number of vertices in a row. This is usually the number of columns in the vertex data plus 1. In other words, if you want to generate a strip on a tube composed of 6 columns and 12 rows, you would pass 7 here and 12 for _ui32Rows. |
_ui32Rows | The number of rows in the vertex data. For example, a 1-by-1 square triangle strip can be generated by passing 2 for _ui32VerticesPerRow (1 + 1) and 1 for _ui32Rows. |
_ui32Usage | Usage type. |
_paAllocator | Optional allocator to be used for all allocations made by this object. |
LSVOID LSE_CALL lsg::EndRender | ( | ) |
End each render target after drawing.
LSE_INLINE LSUINT32 LSE_CALL lsg::CRenderTargetManager::Failures | ( | ) | const |
Gets the number of failed render targets on the last call to Finalize().
LSBOOL LSE_CALL lsg::Finalize | ( | ) |
Register the index buffer's contents with the graphics hardware. If the buffer is not writable, adding/modifying indices after this call will result in an error. Call this when you are done setting the contents of the buffer and wish to use it.
Finalizes the configuration of the render targets, activating all set color, depth, and stencil targets that have been applied or activating the back buffer if none have been applied.
Finalize the texture. After this is done, if the texture is set-only, it can no longer be modified. Otherwise it must be locked before it can be modified.
LSE_INLINE const LSUINT16 *LSE_CALL lsg::CIndexBuffer::Get16BitIndices | ( | ) | const |
Get a pointer to the start of the index array as 16-bit values. ** Must be locked.
LSE_INLINE const LSUINT32 *LSE_CALL lsg::CIndexBuffer::Get32BitIndices | ( | ) | const |
Get a pointer to the start of the index array as 32-bit values. ** Must be locked.
LSE_INLINE const LSVOID *LSE_CALL lsg::CIndexBuffer::GetIndices | ( | ) | const |
Get a pointer to the start of the index array. ** Must be locked.
Get a pointer to the (sorted) index data.
LSE_INLINE LSBOOL LSE_CALL lsg::CIndexBuffer::IndicesAre32Bits | ( | ) | const |
Determine whether or not the list is using 32-bit indices.
LSVOID LSE_CALL lsg::InitApi | ( | CAllocator * | _paAllocator | ) | [protected] |
Initialize the API class.
_paAllocator | The allocator to use for all allocations made by this class. May be NULL. |
LSBOOL LSE_CALL lsg::LoadCubeTextureFromFiles | ( | const LSCHAR * | _pcPaths[6], |
LSUINT32 | _ui32Usage, | ||
LSBOOL | _bMipMaps = true , |
||
CAllocator * | _paAllocator = NULL |
||
) |
Create a cube texture from a set of paths to images on disk.
_pcPaths | The array of NULL-terminated paths to image files. Each must be in UTF-8 format. |
_ui32Usage | Texture usage. |
_pfFormat | Format of the cube texture to create. |
_bMipMaps | If true, mipmaps are generated. |
_paAllocator | Optional allocator for all allocations made by this texture object. |
LSBOOL LSE_CALL lsg::LoadCubeTextureFromMemory | ( | const LSVOID ** | _ppvBuffers, |
LSUINT32 | _ui32Sizes[6], | ||
LSUINT32 | _ui32Usage, | ||
LSBOOL | _bMipMaps = true , |
||
CAllocator * | _paAllocator = NULL |
||
) |
Create a cube texture from a set of images loaded to memory.
_ppvBuffers | The loaded images of the cube texture faces. |
_ui32Sizes | The sizes of each image. |
_ui32Usage | Texture usage. |
_pfFormat | Format of the cube texture to create. |
_bMipMaps | If true, mipmaps are generated. |
_paAllocator | Optional allocator for all allocations made by this texture object. |
LSBOOL LSE_CALL lsg::Lock | ( | ) |
LSBOOL LSE_CALL lsg::MakeTriangleStrip | ( | ) |
Convert the index buffer to a triangle strip.
virtual LSUINT32 LSE_CALL lsg::NewLex | ( | ) | [virtual] |
Perform the work of scanning input for tokens.
CRenderQueue& LSE_CALL lsg::OpaqueRenderQueue | ( | ) |
Gets the opaque render queue.
CIndexBuffer& LSE_CALL lsg::operator= | ( | const CIndexBuffer & | _ibOther | ) |
Copy operator.
_ibOther | The object to copy. |
LSE_INLINE CRenderQueueSet& LSE_CALL lsg::operator= | ( | const CRenderQueueSet & | _rqsOther | ) |
Assignment operator.
_rqsOther | The object to copy. |
LSE_INLINE CRenderQueue& LSE_CALL lsg::operator= | ( | const CRenderQueue & | _rqOther | ) |
Assignment operator.
_rqOther | The object to copy. |
LSE_INLINE LSVOID LSE_CALL lsg::CRenderQueue::PrepareUnsortedRender | ( | ) |
Prepares for an unordered render. Is sort is not called, this must be called before rendering.
LSBOOL LSE_CALL lsg::PushIndex | ( | LSUINT32 | _ui32Index | ) |
Push an index to the back of the list. Must either be locked or not yet finalized.
_ui32Index | The index to add to the end of the index buffer. |
LSE_INLINE LSVOID LSE_CALL lsg::Render | ( | LSG_RENDER_TYPE | _rtRenderType | ) | const |
Render the sorted items using a non-standard render method.
_rtRenderType | Type of render. |
LSE_INLINE LSVOID LSE_CALL lsg::Render | ( | const CVertexBuffer & | _vbBuffer, |
LSUINT32 | _ui32TotalPrimitives | ||
) | const [protected] |
Render using this buffer.
_vbBuffer | The buffer |
_ui32TotalPrimitives | Total primitives to render. |
LSE_INLINE LSVOID LSE_CALL lsg::CRenderQueue::RenderAmbient | ( | ) | const |
Render the sorted items using ambient-only rendering.
LSVOID LSE_CALL lsg::RenderApi | ( | const CVertexBuffer & | _vbBuffer, |
LSUINT32 | _ui32TotalPrimitives | ||
) | const [protected] |
Render the scene with the given vertex buffer.
_vbBuffer | The buffer |
_ui32TotalPrimitives | Total primitives to render. |
LSE_INLINE LSVOID LSE_CALL lsg::CRenderQueue::RenderLighting | ( | ) | const |
Render the sorted items using lighting rendering.
LSE_INLINE LSVOID LSE_CALL lsg::CRenderQueue::RenderNormal | ( | ) | const |
Render the sorted items using normal rendering.
LSE_INLINE LSVOID LSE_CALL lsg::CRenderQueue::RenderShadowMap | ( | ) | const |
Render the sorted items to a shadow map.
LSVOID LSE_CALL lsg::Reset | ( | ) |
Reset everything to scratch.
Resets everything to scratch.
Reset everything. Clears all resources created by this instance.
Reset all contents.
LSVOID LSE_CALL lsg::ResetApi | ( | ) | [protected] |
Reset the API values.
Destroy the index buffer that is compliant with the current graphics API and all related resources.
LSVOID LSE_CALL lsg::SetAllocator | ( | CAllocator * | _paAllocator | ) |
Set the allocator to be used for all allocations made by this object. If the allocator is not the same as the one already set, the index buffer is completely reset.
_paAllocator | The allocator to set. |
LSVOID LSE_CALL lsg::SetApiStripType | ( | LSG_VERTEX_BUFFER_PRIMITIVES | _vbpType | ) | [protected] |
Set the API type. Accepts a graphics engine type and stores the value needed for the graphics API.
_vbpType | The graphics engine index list type. |
LSBOOL LSE_CALL lsg::SetCells | ( | const LSG_ANIM_CELL * | _pacCells, |
LSUINT32 | _ui32Total | ||
) |
Sets the array of cells to be used by this sprite.
_pacCells | Pointer to the cells to be used by this animated sprite. |
_ui32Total | Number of cells to which _pacCells points. |
LSE_INLINE LSBOOL LSE_CALL lsg::CIndexBuffer::SetIndex | ( | LSUINT32 | _ui32IndexIndex, |
LSUINT32 | _ui32Value | ||
) |
Set an index at the given index.
_ui32IndexIndex | Index in the buffer of the index to set. |
_ui32Value | The new value of the index. |
LSVOID LSE_CALL lsg::SetInternal | ( | LSUINT32 | _ui32Size, |
LSUINT32 | _ui32Usage, | ||
LSI_PIXEL_FORMAT | _pfFormat, | ||
LSBOOL | _bMipMaps | ||
) | [protected] |
Set internal parameters.
_ui32Size | Size of the texture. |
_ui32Usage | Texture usage. |
_pfFormat | Format of the cube texture. |
_bMipMaps | Mipmap value. |
LSVOID LSE_CALL lsg::Tick | ( | LSUINT64 | _ui64Time | ) |
Advance the animation by the given number of microseconds.
_ui64Time | The number of microseconds by which to advance the animation. |
LSVOID LSE_CALL lsg::TickForward | ( | LSUINT64 | _ui64Time | ) | [protected] |
Advance the animation forward by the given number of microseconds.
_ui64Time | The number of microseconds by which to advance the animation. |
LSE_INLINE LSUINT32 LSE_CALL lsg::TotalIndices | ( | ) | const |
Get the total number of indices in the index buffer.
LSBOOL LSE_CALL lsg::UnLock | ( | ) |
Unlock a buffer when it is done being updated. Must be done after a successful call to Lock().
LSBOOL LSE_CALL lsg::UpgradeList | ( | ) | [protected] |
Upgrade the list from 16 bits to 32 bits. Does nothing if the list is already at 32 bits.
CImage lsg::m_iFaces[6] |
Texels for each face of the cube.
ID3D11Buffer* lsg::m_pbDirectX11IndexBuffer |
Our index buffer used with Direct3D 11.
LSI_PIXEL_FORMAT lsg::m_pfFormat |
Texture format.
ID3D11RenderTargetView* lsg::m_prtvView |
The view for making it a render target.
ID3D11ShaderResourceView* lsg::m_psrvResourceView |
The shader resource view.
D3D11_PRIMITIVE_TOPOLOGY lsg::m_ptPrimitiveType |
The API primitive type.
ID3D11Texture2D* lsg::m_ptTexture |
The Direct3D 11 cube texture.
CRenderQueue lsg::m_rqAlpha |
The alpha render queue.
CRenderQueue lsg::m_rqOpaque |
The opaque render queue.
LSUINT32 lsg::m_ui32Cell |
The current cell of this animation.
LSUINT32 lsg::m_ui32Failures |
The number of failures on the last call to Finalize().
LSUINT64 lsg::m_ui64Time |
The current time of this animation.
LSUINT64 lsg::m_ui64TotalTime |
The total time of this animation.
CVector<LSG_ANIM_CELL> lsg::m_vCells |
Our array of cells.