You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.8 KiB
54 lines
1.8 KiB
![]()
1 year ago
|
#include "pch_materialsystem.h"
|
||
|
#include "togl/rendermechanism.h"
|
||
|
|
||
|
#define MATSYS_INTERNAL
|
||
|
|
||
|
#include "cmaterialsystem.h"
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// The Base implementation of the shader rendering interface
|
||
|
//-----------------------------------------------------------------------------
|
||
|
class CShaderAPIBase : public IShaderAPI
|
||
|
{
|
||
|
public:
|
||
|
// constructor, destructor
|
||
|
CShaderAPIBase();
|
||
|
virtual ~CShaderAPIBase();
|
||
|
|
||
|
// Called when the device is initializing or shutting down
|
||
|
virtual bool OnDeviceInit() = 0;
|
||
|
virtual void OnDeviceShutdown() = 0;
|
||
|
|
||
|
// Pix events
|
||
|
virtual void BeginPIXEvent( unsigned long color, const char *szName ) = 0;
|
||
|
virtual void EndPIXEvent() = 0;
|
||
|
virtual void AdvancePIXFrame() = 0;
|
||
|
|
||
|
// Release, reacquire objects
|
||
|
virtual void ReleaseShaderObjects() = 0;
|
||
|
virtual void RestoreShaderObjects() = 0;
|
||
|
|
||
|
// Resets the render state to its well defined initial value
|
||
|
virtual void ResetRenderState( bool bFullReset = true ) = 0;
|
||
|
|
||
|
// Returns a d3d texture associated with a texture handle
|
||
|
virtual IDirect3DBaseTexture9* GetD3DTexture( ShaderAPITextureHandle_t hTexture ) = 0;
|
||
|
|
||
|
// Queues a non-full reset of render state next BeginFrame.
|
||
|
virtual void QueueResetRenderState() = 0;
|
||
|
|
||
|
// Methods of IShaderDynamicAPI
|
||
|
public:
|
||
|
virtual void GetCurrentColorCorrection( ShaderColorCorrectionInfo_t* pInfo );
|
||
|
|
||
|
protected:
|
||
|
};
|
||
|
|
||
|
uint32_t CMaterialSystem::GetShaderAPIGLTexture( ITexture *pTexture, int nFrame, int nTextureChannel )
|
||
|
{
|
||
|
ShaderAPITextureHandle_t handle = ShaderSystem()->GetShaderAPITextureBindHandle( pTexture, nFrame, nTextureChannel );
|
||
|
IDirect3DTexture9* pTex = ((CShaderAPIBase*)g_pShaderAPI)->GetD3DTexture(handle);
|
||
|
IDirect3DSurface9* surf = pTex->m_surfZero;
|
||
|
CGLMTex *tex = surf->m_tex;
|
||
|
return tex->GetTexName();
|
||
|
}
|