ISoftShaderContext
Functions
const int * |
|
const RenderCode & |
|
void |
|
void |
|
void |
|
Object * |
|
double |
|
double |
|
int |
Detailed Description
-
class ISoftShaderContext : public RED::IREDObject
Shader evaluation context. Contains shader evaluation parameters.
@related The CPU Programming Pipeline, Writing a Custom Software Rendering Shader, class RED::ISoftRenderingContext, class RED::ISoftRayContext
Public Functions
-
SET_CID(CID_class_REDISoftShaderContext)
-
virtual const int *GetStateVector() const = 0
Gets the state vector.
The state vector is unused if we are used for a render shader.
- Returns
The statevector in this shader context.
-
virtual RenderCode &GetRenderCode() = 0
Gets the shader binding specification.
- Returns
The address of the RED::RenderCode to use for this shader.
-
virtual const RenderCode &GetRenderCode() const = 0
-
virtual void GetProgramLocal(double oParameter[4], int iBindPos, const RED::ISoftRayContext &iRayContext, const RED::ISoftRenderingContext &iRenderContext) const = 0
Gets a program parameter.
- Parameters
oParameter – Reference to the returned program local value.
iBindPos – Binding position of the parameter.
iRayContext – The actual ray context.
iRenderContext – The actual rendering context.
-
virtual void GetMatrixLocal(RED::Matrix &ioMatrix, int iBindPos, const RED::ISoftRayContext &iRayContext, const RED::ISoftRenderingContext &iRenderContext) const = 0
Gets a matrix parameter streamed as 4 program locals.
- Parameters
ioMatrix – Receive the matrix components.
iBindPos – The matrix binding position (first row out of 4).
iRayContext – The actual ray context.
iRenderContext – The actual rendering context.
-
virtual void MatrixLocalMultiply4(double oVector[4], int iBindPos, double iVector[4], const RED::ISoftRayContext &iRayContext, const RED::ISoftRenderingContext &iRenderContext) const = 0
Homogeneous product of a vector by a local matrix.
- Parameters
oVector – Resulting transformed vector (can be the same as ‘iVector’).
iBindPos – Binding position of the first matrix vector. If ‘iBindPos’ is negative, ‘oVector’ is returned equal to ‘iVector’.
iVector – Input vector.
iRayContext – The actual ray context.
iRenderContext – The actual rendering context.
-
virtual RED::Object *GetTexture(int iBindPos, const RED::ISoftRayContext &iRayContext, const RED::ISoftRenderingContext &iRenderContext) const = 0
Gets a shader texture.
- Parameters
iBindPos – Binding position of the texture.
iRayContext – The actual ray context.
iRenderContext – The actual rendering context.
- Returns
The texture address.
-
virtual double GetGlossyAngle() const = 0
- Returns
the glossiness angle.
-
virtual double GetGlossyAngleAniso() const = 0
- Returns
the anisotropic glossiness angle.
-
virtual int GetGlossySamplesCount() const = 0
- Returns
The number of glossiness samples to fire.
-
SET_CID(CID_class_REDISoftShaderContext)