RAMSES Documentation  27.0.130
Information for RAMSES users and developers
DefaultRendererResourceCache.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // Copyright (C) 2017 BMW Car IT GmbH
3 // -------------------------------------------------------------------------
4 // This Source Code Form is subject to the terms of the Mozilla Public
5 // License, v. 2.0. If a copy of the MPL was not distributed with this
6 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
7 // -------------------------------------------------------------------------
8 
9 #ifndef RAMSES_RENDERERAPI_DEFAULTRENDERERRESOURCECACHE_H
10 #define RAMSES_RENDERERAPI_DEFAULTRENDERERRESOURCECACHE_H
11 
13 
14 namespace ramses
15 {
22  {
23  public:
24 
30  explicit DefaultRendererResourceCache(uint32_t maxCacheSizeInBytes);
31 
35  virtual ~DefaultRendererResourceCache() override;
36 
45  bool hasResource(rendererResourceId_t resourceId, uint32_t& size) const override;
46 
57  bool getResourceData(rendererResourceId_t resourceId, uint8_t* buffer, uint32_t bufferSize) const override;
58 
71  bool shouldResourceBeCached(rendererResourceId_t resourceId, uint32_t resourceDataSize, resourceCacheFlag_t cacheFlag, sceneId_t sceneId) const override;
72 
84  void storeResource(rendererResourceId_t resourceId, const uint8_t* resourceData, uint32_t resourceDataSize, resourceCacheFlag_t cacheFlag, sceneId_t sceneId) override;
85 
90  void saveToFile(const char* filePath) const;
91 
97  bool loadFromFile(const char* filePath);
98 
104 
111 
115  class DefaultRendererResourceCacheImpl& impl;
116  };
117 }
118 
119 #endif
#define RAMSES_API
Definition: APIExport.h:35
The DefaultRendererResourceCache provides a simple example on how the IRendererResourceCache interfac...
Definition: DefaultRendererResourceCache.h:22
void storeResource(rendererResourceId_t resourceId, const uint8_t *resourceData, uint32_t resourceDataSize, resourceCacheFlag_t cacheFlag, sceneId_t sceneId) override
Called by RamsesRenderer with the final resource for storing. This is called immediately after should...
bool shouldResourceBeCached(rendererResourceId_t resourceId, uint32_t resourceDataSize, resourceCacheFlag_t cacheFlag, sceneId_t sceneId) const override
Called by RamsesRenderer when a resource was not in the cache and is now available from other source....
class DefaultRendererResourceCacheImpl & impl
Definition: DefaultRendererResourceCache.h:115
virtual ~DefaultRendererResourceCache() override
Destructor of DefaultRendererResourceCache.
bool loadFromFile(const char *filePath)
Load all content from a file. It is assumed that the file has been created using saveToFile(....
bool hasResource(rendererResourceId_t resourceId, uint32_t &size) const override
Called by RamsesRenderer to ask for a resource with the given id.
DefaultRendererResourceCache(uint32_t maxCacheSizeInBytes)
Construct a DefaultRendererResourceCache with a given maximum size. Whenever the size limit is exceed...
DefaultRendererResourceCache(const DefaultRendererResourceCache &other)=delete
Deleted copy constructor.
DefaultRendererResourceCache & operator=(const DefaultRendererResourceCache &other)=delete
Deleted copy assignment.
bool getResourceData(rendererResourceId_t resourceId, uint8_t *buffer, uint32_t bufferSize) const override
Called by RamsesRenderer to get the resource data associated with a given resource id....
void saveToFile(const char *filePath) const
Save current content of the cache to a file.
An interface used to implement a caching mechanism for resources used on the RamsesRenderer....
Definition: IRendererResourceCache.h:22
Helper class to create strongly typed values out of various types.
Definition: StronglyTypedValue.h:23
The RAMSES namespace contains all client side objects and functions used to implement RAMSES applicat...
Definition: AnimatedProperty.h:15
Resource identifier used to refer to a resource on the renderer.
Definition: Types.h:33