44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
//=============================================================================
|
|
|
|
#ifndef ISCENEFILECACHE_H
|
|
#define ISCENEFILECACHE_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "interface.h"
|
|
#include "appframework/IAppSystem.h"
|
|
|
|
// the file cache can support persisting some calcs
|
|
struct SceneCachedData_t
|
|
{
|
|
unsigned int msecs;
|
|
int numSounds;
|
|
int sceneId;
|
|
};
|
|
|
|
class ISceneFileCache : public IAppSystem
|
|
{
|
|
public:
|
|
|
|
// async implemenation
|
|
virtual size_t GetSceneBufferSize( char const *filename ) = 0;
|
|
virtual bool GetSceneData( char const *filename, byte *buf, size_t bufsize ) = 0;
|
|
|
|
// persisted scene data, returns true if valid, false otherwise
|
|
virtual bool GetSceneCachedData( char const *pFilename, SceneCachedData_t *pData ) = 0;
|
|
virtual short GetSceneCachedSound( int iScene, int iSound ) = 0;
|
|
virtual const char *GetSceneString( short stringId ) = 0;
|
|
|
|
// Physically reloads image from disk
|
|
virtual void Reload() = 0;
|
|
};
|
|
|
|
#define SCENE_FILE_CACHE_INTERFACE_VERSION "SceneFileCache002"
|
|
|
|
#endif // ISCENEFILECACHE_H
|