//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef IBSPLIGHTING_H #define IBSPLIGHTING_H #ifdef _WIN32 #pragma once #endif class IBSPLighting { public: virtual ~IBSPLighting() {} virtual void Release() = 0; // Init for incremental lighting. // - load the VRAD DLL // - load the BSP file into it // - start the incremental lighting thread // - start lighting in the background if need be virtual bool Load( char const *pFilename ) = 0; // Shutdown everything (but keep the object around). virtual void Term() = 0; // Serialize the r0 and bsp files if any new lighting has been completed. // Note: this will return false if a lighting pass is currently in progress // (don't worry though - Term() will stop an active lighting pass and // serialize the lighting). virtual bool Serialize() = 0; // Start lighting in the background thread using the current state of the // entities in the editor's memory. virtual void StartLighting( char const *pVMFFileWithEnts ) = 0; // Returns a 0-1 value describing how far along the lighting is, or -1 if not lighting. virtual float GetPercentComplete() = 0; // Stop the lighting process. virtual void Interrupt() = 0; // This should be called during idle time. If it returns true, then it has // update all the lightmaps and the views should be redrawn. virtual bool CheckForNewLightmaps() = 0; // Render the current lightmaps. virtual void Draw() = 0; }; IBSPLighting* CreateBSPLighting(); #endif // IBSPLIGHTING_H