/***************************************************************************************
*****                        INTERFACE IMRTSHADER                                  *****
****************************************************************************************
** Author: Peter Stuart
** Date:   8/1/98
** Description: This is used to interface with a shader. The shader will color a point
**   based on many variables which are part of the ShaderInfo structure. The structure
**   of the shaders are very similar to RenderMan shaders.
**
** Interface Functions:
** 
** Shade - This function takes the information in the ShaderInfo structure and 
**         based on that colors the pixel.
** GetShaderType - This returns the type of shader. Types can be:
**    SHADER_MODEL - This type does the actual shading of an object
**    SHADER_PATTERN - This type changes the color of the object
**    SHADER_SURFACE - This type does both coloring and shading
**    SHADER_ATMOSPHERE - This type can be used as an environment shader
***************************************************************************************/


#include 
#include 
#include "IMRTInterface.hpp"
#include "3DMath.hpp"
#include "Shader.hpp"

#ifndef __IMRTSHADER__
#define __IMRTSHADER__

interface IMRTShader : public IMRTInterface
{
   virtual HRESULT pascal Shade (ShaderInfo*) = 0;
   virtual HRESULT pascal GetShaderType (int*) = 0;
};

#endif

    Source: geocities.com/collegepark/4206

               ( geocities.com/collegepark)