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