mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-22 06:06:50 +00:00
60 lines
1.6 KiB
C++
60 lines
1.6 KiB
C++
//========= Copyright 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
|