|
|
|
@ -240,6 +240,19 @@ public:
|
|
|
|
|
CVertexProgamDrvInfosD3D(IDriver *drv, ItVtxPrgDrvInfoPtrList it);
|
|
|
|
|
~CVertexProgamDrvInfosD3D();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ***************************************************************************
|
|
|
|
|
class CPixelProgramDrvInfosD3D : public IPixelProgramDrvInfos
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
// The shader
|
|
|
|
|
IDirect3DPixelShader9 *Shader;
|
|
|
|
|
|
|
|
|
|
CPixelProgramDrvInfosD3D(IDriver *drv, ItPixelPrgDrvInfoPtrList it);
|
|
|
|
|
~CPixelProgramDrvInfosD3D();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ***************************************************************************
|
|
|
|
@ -773,6 +786,7 @@ public:
|
|
|
|
|
|
|
|
|
|
// Driver parameters
|
|
|
|
|
virtual void disableHardwareVertexProgram();
|
|
|
|
|
virtual void disableHardwarePixelProgram();
|
|
|
|
|
virtual void disableHardwareIndexArrayAGP();
|
|
|
|
|
virtual void disableHardwareVertexArrayAGP();
|
|
|
|
|
virtual void disableHardwareTextureShader();
|
|
|
|
@ -993,8 +1007,10 @@ public:
|
|
|
|
|
|
|
|
|
|
// Vertex program
|
|
|
|
|
virtual bool isVertexProgramSupported () const;
|
|
|
|
|
virtual bool isPixelProgramSupported () const;
|
|
|
|
|
virtual bool isVertexProgramEmulated () const;
|
|
|
|
|
virtual bool activeVertexProgram (CVertexProgram *program);
|
|
|
|
|
virtual bool activePixelProgram (CPixelProgram *program);
|
|
|
|
|
virtual void setConstant (uint index, float, float, float, float);
|
|
|
|
|
virtual void setConstant (uint index, double, double, double, double);
|
|
|
|
|
virtual void setConstant (uint index, const NLMISC::CVector& value);
|
|
|
|
@ -1006,6 +1022,15 @@ public:
|
|
|
|
|
virtual void enableVertexProgramDoubleSidedColor(bool doubleSided);
|
|
|
|
|
virtual bool supportVertexProgramDoubleSidedColor() const;
|
|
|
|
|
|
|
|
|
|
// Pixel program
|
|
|
|
|
virtual void setPixelProgramConstant (uint index, float, float, float, float);
|
|
|
|
|
virtual void setPixelProgramConstant (uint index, double, double, double, double);
|
|
|
|
|
virtual void setPixelProgramConstant (uint index, const NLMISC::CVector& value);
|
|
|
|
|
virtual void setPixelProgramConstant (uint index, const NLMISC::CVectorD& value);
|
|
|
|
|
virtual void setPixelProgramConstant (uint index, uint num, const float *src);
|
|
|
|
|
virtual void setPixelProgramConstant (uint index, uint num, const double *src);
|
|
|
|
|
virtual void setPixelProgramConstantMatrix (uint index, IDriver::TMatrix matrix, IDriver::TTransform transform);
|
|
|
|
|
|
|
|
|
|
// Occlusion query
|
|
|
|
|
virtual bool supportOcclusionQuery() const;
|
|
|
|
|
virtual IOcclusionQuery *createOcclusionQuery();
|
|
|
|
@ -1892,6 +1917,15 @@ public:
|
|
|
|
|
return d3dtex;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Get the d3dtext mirror of an existing setuped pixel program.
|
|
|
|
|
static inline CPixelProgramDrvInfosD3D* getPixelProgramD3D(CPixelProgram& pixelProgram)
|
|
|
|
|
{
|
|
|
|
|
H_AUTO_D3D(CDriverD3D_getPixelProgramD3D);
|
|
|
|
|
CPixelProgramDrvInfosD3D* d3dPixelProgram;
|
|
|
|
|
d3dPixelProgram = (CPixelProgramDrvInfosD3D*)(IPixelProgramDrvInfos*)(pixelProgram._DrvInfo);
|
|
|
|
|
return d3dPixelProgram;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Get the d3dtext mirror of an existing setuped vertex program.
|
|
|
|
|
static inline CVertexProgamDrvInfosD3D* getVertexProgramD3D(CVertexProgram& vertexProgram)
|
|
|
|
|
{
|
|
|
|
@ -2197,8 +2231,10 @@ private:
|
|
|
|
|
bool _ForceDXTCCompression:1;
|
|
|
|
|
bool _TextureCubeSupported;
|
|
|
|
|
bool _VertexProgram;
|
|
|
|
|
bool _PixelProgram;
|
|
|
|
|
bool _PixelShader;
|
|
|
|
|
bool _DisableHardwareVertexProgram;
|
|
|
|
|
bool _DisableHardwarePixelProgram;
|
|
|
|
|
bool _DisableHardwareVertexArrayAGP;
|
|
|
|
|
bool _DisableHardwareIndexArrayAGP;
|
|
|
|
|
bool _DisableHardwarePixelShader;
|
|
|
|
|