Main runtime class.
The Runtime class is the main entry point to the Umbra runtime API. It is responsible for creating other runtime classes as well as streaming data from network or disk into memory. It also provides jobs for decompressing and handling assets to the application.
- ~Runtime() virtual
- auto createScene() -> Scene* pure virtual
- Create an empty scene object.
- void destroy(Scene*) pure virtual
- auto createView() -> View* pure virtual
- Create a view.
- void destroy(View*) pure virtual
- auto copyScene(SceneCopy::DestinationType dstType, const char* dst, const char* srcSecretKey, const ProjectContext& prj, EnvironmentInfo* env) -> SceneCopy* pure virtual
- Offline sync support.
- auto copyScene(SceneCopy::DestinationType dstType, const char* dst, const char* srcSecretKey, const ProjectContext& prj, EnvironmentInfo* env, const Float3* sphereCenter, float sphereRadius, int lodLevel) -> SceneCopy* pure virtual
- void destroy(SceneCopy*) pure virtual
- void update() pure virtual
- Per-frame update of the streaming state.
- auto getNextAssetJob() -> AssetJob* pure virtual
- Get next asset load/unload request.
- void getDebugInfo(char* out, int len) pure virtual
- void getState(StreamingState& state) pure virtual
- Get statistics on currently active streaming operations.
Assume that reading back from asset unpack buffers is expensive, as is generally the case when loading asset data directly into mapped video memory.
Setting this is equivalent to forcing
Never unload data once it has been loaded. May be useful for small data sets.
static Runtime* Umbra::
Runtime:: create(UmbraClient* context,
const EnvironmentInfo& env,
const char* fileCachePath = NULL,
const char* configPath = NULL,
uint32_t flags = 0)
|context||Context and platform integration utilities to use|
|env||Other platform details and preferences|
|fileCachePath||Directory path for disk cache|
|configPath||Directory path for configuration|
Runtime:: getNextAssetJob() pure virtual
Get next asset load/unload request.
|Returns||Pointer to an AssetJob that should be completed by user code or NULL if all available assets have been processed.|
Finds an asset that needs loading or unloading based on parameters from previous Scene or View updates. Asset loading attempts to keep an asset set that allows rendering all views, with their last updated quality and position, resident in memory. In general assets that are visible or close to any View origins are loaded and others unloaded. AssetJobs do.
This function may be called as many or as few times as desired during a frame. AssetJobs are returned in priority order, with unloads before loads.