IGameRenderedSurface.h

Go to the documentation of this file.
00001 /**********************************************************************
00002  *<
00003     FILE: IGameRenderedSurface.h
00004 
00005     DESCRIPTION: IGameRenderSurface interfaces for IGame.  This interface
00006     provide access to the lighting and color of an object at the face level.
00007     Any IGame Object can provide access to the data calculated here.  It uses
00008     the same basic approach as the Vertex Color Utility
00009 
00010     CREATED BY: Neil Hazzard, Discreet 
00011 
00012     HISTORY: created 12/11/02
00013 
00014     IGame Version: 1.122
00015 
00016  *> Copyright (c) 2002, All Rights Reserved.
00017  **********************************************************************/
00018 
00019 #pragma once
00020 #include "..\maxheap.h"
00021 #include <WTypes.h>
00022 #include "IGameExport.h"
00023 
00033 #define EVAL_MAPS       (1<<0)  //!< Flag indicates if texture maps should be applied
00034 #define EVAL_SHADOWS    (1<<1)  //!< Flag indicates if shadows should be applied
00035 
00036 namespace LightingModel
00037 {
00038    // SR NOTE64: Merge with istdplug.h's definition? (different values!)
00040    enum LightingModel_Game  
00041    {
00042         SHADED,            
00043         LIGHTING_ONLY,     
00044         SHADED_ONLY        
00045    };
00046 }
00047 
00049 
00052 class IGameRenderedSurface: public MaxHeapOperators
00053 {
00054 public:
00055     
00056    typedef LightingModel::LightingModel_Game   LightingModel;
00058      virtual ~IGameRenderedSurface() {;}
00059 
00061     virtual bool InitialiseRenderedSurfaceData() = 0;
00062 
00064     virtual void ReleaseRenderedSurfaceData() = 0 ;
00065 
00067     virtual void SetLightingModel(LightingModel lm) = 0;
00068 
00070     virtual void SetFlag(DWORD mask) = 0;
00071 
00073     virtual void ClearFlag(DWORD mask) = 0;
00074 };
00075 
00077 IGAMEEXPORT IGameRenderedSurface *GetIGameRenderedSurfaceInterface();
00078