summaryrefslogtreecommitdiff
path: root/materialsystem/cmatnullrendercontext.cpp
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /materialsystem/cmatnullrendercontext.cpp
downloadarchived-source-engine-2018-hl2-src-3bf9df6b2785fa6d951086978a3e66f49427166a.tar.xz
archived-source-engine-2018-hl2-src-3bf9df6b2785fa6d951086978a3e66f49427166a.zip
Diffstat (limited to 'materialsystem/cmatnullrendercontext.cpp')
-rw-r--r--materialsystem/cmatnullrendercontext.cpp847
1 files changed, 847 insertions, 0 deletions
diff --git a/materialsystem/cmatnullrendercontext.cpp b/materialsystem/cmatnullrendercontext.cpp
new file mode 100644
index 0000000..a776312
--- /dev/null
+++ b/materialsystem/cmatnullrendercontext.cpp
@@ -0,0 +1,847 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================
+
+#include "pch_materialsystem.h"
+
+#include "cmatnullrendercontext.h"
+
+#define MATSYS_INTERNAL
+#include "cmatrendercontext.h"
+#include "itextureinternal.h"
+
+class CMatNullRenderContext : public CMatRenderContextBase
+{
+public:
+ CMatNullRenderContext()
+ : m_WidthBackBuffer( 0 ),
+ m_HeightBackBuffer( 0 )
+ {
+ }
+
+ virtual void InitializeFrom( CMatRenderContextBase *pInitialState )
+ {
+ CMatRenderContextBase::InitializeFrom( pInitialState );
+ g_pShaderAPI->GetBackBufferDimensions( m_WidthBackBuffer, m_HeightBackBuffer );
+ }
+
+ void BeginRender()
+ {
+ }
+
+ void EndRender()
+ {
+ }
+
+ void Flush(bool)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void GetRenderTargetDimensions(int &,int &) const
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void DepthRange(float,float)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void ClearBuffers(bool,bool,bool)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void ReadPixels(int,int,int,int,unsigned char *,ImageFormat)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetAmbientLight(float,float,float)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetLight(int,const LightDesc_t &)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetLightingOrigin( Vector vLightingOrigin )
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetAmbientLightCube(Vector4D [])
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void CopyRenderTargetToTexture(ITexture *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetFrameBufferCopyTexture(ITexture *,int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ ITexture *GetFrameBufferCopyTexture(int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return NULL;
+ }
+
+ void GetViewport( int& x, int& y, int& width, int& height ) const
+ {
+ // Verify valid top of RT stack
+ Assert ( m_RenderTargetStack.Count() > 0 );
+
+ // Grab the top of stack
+ const RenderTargetStackElement_t& element = m_RenderTargetStack.Top();
+
+ // If either dimension is negative, set to full bounds of current target
+ if ( (element.m_nViewW < 0) || (element.m_nViewH < 0) )
+ {
+ // Viewport origin at target origin
+ x = y = 0;
+
+ // If target is back buffer
+ if ( element.m_pRenderTargets[0] == NULL )
+ {
+ width = m_WidthBackBuffer;
+ height = m_HeightBackBuffer;
+ }
+ else // if target is texture
+ {
+ width = element.m_pRenderTargets[0]->GetActualWidth();
+ height = element.m_pRenderTargets[0]->GetActualHeight();
+ }
+ }
+ else // use the bounds from the stack directly
+ {
+ x = element.m_nViewX;
+ y = element.m_nViewY;
+ width = element.m_nViewW;
+ height = element.m_nViewH;
+ }
+ }
+ void CullMode(MaterialCullMode_t)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void FogMode(MaterialFogMode_t)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void FogStart(float)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void FogEnd(float)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetFogZ(float)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ MaterialFogMode_t GetFogMode()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return MATERIAL_FOG_NONE;
+ }
+
+ int GetCurrentNumBones( ) const
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return 0;
+ }
+
+ void FogColor3f(float,float,float)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void FogColor3fv(const float *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void FogColor3ub(unsigned char,unsigned char,unsigned char)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void FogColor3ubv(const unsigned char *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void GetFogColor(unsigned char *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetNumBoneWeights(int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ IMesh *CreateStaticMesh(VertexFormat_t,const char *,IMaterial *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return NULL;
+ }
+
+ void DestroyStaticMesh(IMesh *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ IMesh *GetDynamicMesh(bool,IMesh *,IMesh *,IMaterial *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return NULL;
+ }
+
+ virtual IMesh* GetDynamicMeshEx( VertexFormat_t, bool, IMesh*, IMesh*, IMaterial * )
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return NULL;
+ }
+
+ int SelectionMode(bool)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return 0;
+ }
+
+ void SelectionBuffer(unsigned int *,int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void ClearSelectionNames()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void LoadSelectionName(int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void PushSelectionName(int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void PopSelectionName()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void ClearColor3ub(unsigned char,unsigned char,unsigned char)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void ClearColor4ub(unsigned char,unsigned char,unsigned char,unsigned char)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void OverrideDepthEnable(bool,bool)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void OverrideColorWriteEnable( bool, bool )
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void OverrideAlphaWriteEnable( bool, bool )
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void DrawScreenSpaceQuad(IMaterial *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SyncToken(const char *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ OcclusionQueryObjectHandle_t CreateOcclusionQueryObject()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return NULL;
+ }
+
+ void DestroyOcclusionQueryObject(OcclusionQueryObjectHandle_t)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void ResetOcclusionQueryObject( OcclusionQueryObjectHandle_t hOcclusionQuery )
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void BeginOcclusionQueryDrawing(OcclusionQueryObjectHandle_t)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void EndOcclusionQueryDrawing(OcclusionQueryObjectHandle_t)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ int OcclusionQuery_GetNumPixelsRendered(OcclusionQueryObjectHandle_t)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return 1;
+ }
+
+ void SetFlashlightMode(bool)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+ virtual bool GetFlashlightMode( void ) const
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return false;
+ }
+
+ void SetFlashlightState(const FlashlightState_t &,const VMatrix &)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetScissorRect( const int nLeft, const int nTop, const int nRight, const int nBottom, const bool bEnableScissor )
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ virtual void PushDeformation( DeformationBase_t const *Deformation )
+ {
+ }
+
+ virtual void PopDeformation( )
+ {
+ }
+
+ virtual int GetNumActiveDeformations() const
+ {
+ return 0;
+ }
+
+ void EnableUserClipTransformOverride(bool)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void UserClipTransform(const VMatrix &)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ IMorph *CreateMorph(MorphFormat_t, const char *pDebugName)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return NULL;
+ }
+
+ void DestroyMorph(IMorph *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void BindMorph(IMorph *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetMorphTargetFactors(int,float *,int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void ReadPixelsAndStretch(Rect_t *,Rect_t *,unsigned char *,ImageFormat,int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void GetWindowSize(int &,int &) const
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void DrawScreenSpaceRectangle(IMaterial *,int,int,int,int,float,float,float,float,int,int,void*,int,int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void LoadBoneMatrix(int,const matrix3x4_t &)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void BindLightmapTexture(ITexture *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void CopyRenderTargetToTextureEx(ITexture *,int,Rect_t *,Rect_t *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void CopyTextureToRenderTargetEx(int,ITexture *,Rect_t *,Rect_t *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetFloatRenderingParameter(int,float)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetIntRenderingParameter(int,int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetVectorRenderingParameter(int,const Vector &)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetStencilEnable(bool)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetStencilFailOperation(StencilOperation_t)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetStencilZFailOperation(StencilOperation_t)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetStencilPassOperation(StencilOperation_t)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetStencilCompareFunction(StencilComparisonFunction_t)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetStencilReferenceValue(int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetStencilTestMask(uint32)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetStencilWriteMask(uint32)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void ClearStencilBufferRectangle(int,int,int,int,int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void PushCustomClipPlane(const float *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void PopCustomClipPlane()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void GetMaxToRender(IMesh *,bool,int *,int *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ int GetMaxVerticesToRender(IMaterial *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return 0;
+ }
+
+ int GetMaxIndicesToRender()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return 0;
+ }
+
+ void DisableAllLocalLights()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ int CompareMaterialCombos(IMaterial *,IMaterial *,int,int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return 0;
+ }
+
+ IMesh *GetFlexMesh()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return NULL;
+ }
+
+ void SetFlashlightStateEx(const FlashlightState_t &,const VMatrix &,ITexture *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ ITexture *GetLocalCubemap()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return NULL;
+ }
+
+ void ClearBuffersObeyStencil(bool,bool)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void ClearBuffersObeyStencilEx( bool bClearColor, bool bClearAlpha, bool bClearDepth )
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void PerformFullScreenStencilOperation( void )
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ bool GetUserClipTransform(VMatrix &)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return true;
+ }
+
+ void GetFogDistances(float *,float *,float *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void BeginPIXEvent(unsigned long,const char *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void EndPIXEvent()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetPIXMarker(unsigned long,const char *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void BeginBatch(IMesh *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void BindBatch(IMesh *,IMaterial *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void DrawBatch(int,int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void EndBatch()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void SetToneMappingScaleLinear(const Vector &)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ float GetFloatRenderingParameter(int) const
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return 0;
+ }
+
+ int GetIntRenderingParameter(int) const
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return 0;
+ }
+
+ Vector GetVectorRenderingParameter(int) const
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return Vector(0,0,0);
+ }
+
+ void SwapBuffers()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void ForceDepthFuncEquals(bool)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ bool InFlashlightMode() const
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return true;
+ }
+
+ void BindStandardTexture(TextureStage_t,StandardTextureId_t)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void GetLightmapDimensions(int *,int *)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ MorphFormat_t GetBoundMorphFormat()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return 0;
+ }
+
+ void DrawClearBufferQuad(unsigned char,unsigned char,unsigned char,unsigned char,bool,bool,bool)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ bool OnDrawMesh(IMesh *,CPrimList *,int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return true;
+ }
+
+ bool OnDrawMesh(IMesh *,int,int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return true;
+ }
+
+ bool OnSetFlexMesh(IMesh *,IMesh *,int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return true;
+ }
+
+ bool OnSetColorMesh(IMesh *,IMesh *,int)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return true;
+ }
+
+ bool OnSetPrimitiveType(IMesh *,MaterialPrimitiveType_t)
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return true;
+ }
+
+ bool OnFlushBufferedPrimitives()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ return true;
+ }
+
+ void ForceHardwareSync()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void BeginFrame()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void EndFrame()
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void AsyncCreateTextureFromRenderTarget( ITexture* pSrcRt, const char* pDstName, ImageFormat dstFmt, bool bGenMips, int nAdditionalCreationFlags, IAsyncTextureOperationReceiver* pRecipient, void* pExtraArgs ) OVERRIDE
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ virtual void AsyncMap( ITextureInternal* pTexToMap, IAsyncTextureOperationReceiver* pRecipient, void* pExtraArgs ) OVERRIDE
+ {
+
+ }
+
+ virtual void AsyncUnmap( ITextureInternal* pTexToUnmap ) OVERRIDE
+ {
+
+ }
+
+ virtual void AsyncCopyRenderTargetToStagingTexture( ITexture* pDst, ITexture* pSrc, IAsyncTextureOperationReceiver* pRecipient, void* pExtraArgs ) OVERRIDE
+ {
+
+ }
+
+ void SetShadowDepthBiasFactors( float fSlopeScaleDepthBias, float fDepthBias )
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ void BindStandardTexture( Sampler_t, StandardTextureId_t )
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+// ------------ New Vertex/Index Buffer interface ----------------------------
+ // Do we need support for bForceTempMesh and bSoftwareVertexShader?
+ // I don't think we use bSoftwareVertexShader anymore. .need to look into bForceTempMesh.
+ IVertexBuffer *CreateStaticVertexBuffer( VertexFormat_t fmt, int nVertexCount, const char *pBudgetGroup )
+ {
+ Assert( 0 );
+ return NULL;
+ }
+ IIndexBuffer *CreateStaticIndexBuffer( MaterialIndexFormat_t fmt, int nIndexCount, const char *pBudgetGroup )
+ {
+ Assert( 0 );
+ return NULL;
+ }
+ void DestroyVertexBuffer( IVertexBuffer * )
+ {
+ Assert( 0 );
+ }
+ void DestroyIndexBuffer( IIndexBuffer * )
+ {
+ Assert( 0 );
+ }
+ // Do we need to specify the stream here in the case of locking multiple dynamic VBs on different streams?
+ IVertexBuffer *GetDynamicVertexBuffer( int streamID, VertexFormat_t vertexFormat, bool bBufferedtrue )
+ {
+ Assert( 0 );
+ return NULL;
+ }
+ IIndexBuffer *GetDynamicIndexBuffer( MaterialIndexFormat_t fmt, bool bBufferedtrue )
+ {
+ Assert( 0 );
+ return NULL;
+ }
+ void BindVertexBuffer( int streamID, IVertexBuffer *pVertexBuffer, int nOffsetInBytes, int nFirstVertex, int nVertexCount, VertexFormat_t fmt, int nRepetitions1 )
+ {
+ Assert( 0 );
+ }
+ void BindIndexBuffer( IIndexBuffer *pIndexBuffer, int nOffsetInBytes )
+ {
+ Assert( 0 );
+ }
+ void Draw( MaterialPrimitiveType_t primitiveType, int firstIndex, int numIndices )
+ {
+ Assert( 0 );
+ }
+ virtual void BeginMorphAccumulation()
+ {
+ Assert( 0 );
+ }
+ virtual void EndMorphAccumulation()
+ {
+ Assert( 0 );
+ }
+ virtual void AccumulateMorph( IMorph* pMorph, int nMorphCount, const MorphWeight_t* pWeights )
+ {
+ Assert( 0 );
+ }
+ virtual bool GetMorphAccumulatorTexCoord( Vector2D *pTexCoord, IMorph *pMorph, int nVertex )
+ {
+ Assert(0);
+ pTexCoord->Init();
+ return false;
+ }
+ virtual void SetFlexWeights( int nFirstWeight, int nCount, const MorphWeight_t* pWeights ) {}
+
+ virtual void FogMaxDensity( float flMaxDensity )
+ {
+ AssertMsg( 0, "CMatNullRenderContext only provides base features, not a stub (right now)" );
+ }
+
+ virtual void EnableColorCorrection( bool bEnable ) {}
+ virtual ColorCorrectionHandle_t AddLookup( const char *pName ) { return 0; }
+ virtual bool RemoveLookup( ColorCorrectionHandle_t handle ) { return true; }
+ virtual void LockLookup( ColorCorrectionHandle_t handle ) {}
+ virtual void LoadLookup( ColorCorrectionHandle_t handle, const char *pLookupName ) {}
+ virtual void UnlockLookup( ColorCorrectionHandle_t handle ) {}
+ virtual void SetLookupWeight( ColorCorrectionHandle_t handle, float flWeight ) {}
+ virtual void ResetLookupWeights( ) {}
+ virtual void SetResetable( ColorCorrectionHandle_t handle, bool bResetable ) {}
+ virtual void SetFullScreenDepthTextureValidityFlag( bool bIsValid ) {}
+
+ virtual void SetNonInteractivePacifierTexture( ITexture *pTexture, float flNormalizedX, float flNormalizedY, float flNormalizedSize ) {}
+ virtual void SetNonInteractiveTempFullscreenBuffer( ITexture *pTexture, MaterialNonInteractiveMode_t mode ) {}
+ virtual void EnableNonInteractiveMode( MaterialNonInteractiveMode_t mode ) {}
+ virtual void RefreshFrontBufferNonInteractive() {}
+
+#if defined( _X360 )
+ virtual void PushVertexShaderGPRAllocation( int iVertexShaderCount = 64 )
+ {
+ Assert( 0 );
+ }
+
+ virtual void PopVertexShaderGPRAllocation( void )
+ {
+ Assert( 0 );
+ }
+#endif
+
+#ifdef DX_TO_GL_ABSTRACTION
+ void DoStartupShaderPreloading( void ) {};
+#endif
+
+ void TextureManagerUpdate( void ) { }
+
+ int m_WidthBackBuffer, m_HeightBackBuffer;
+};
+
+
+CMatRenderContextBase *CreateNullRenderContext()
+{
+ return new CMatNullRenderContext;
+}