generalized object render caches so they can be used for any object types
This commit is contained in:
@@ -21,9 +21,6 @@ add_subdirectory(vulkan)
|
||||
set(OLIVE_SOURCES
|
||||
${OLIVE_SOURCES}
|
||||
|
||||
render/backend/decodercache.h
|
||||
render/backend/decodercache.cpp
|
||||
|
||||
render/backend/renderbackend.h
|
||||
render/backend/renderbackend.cpp
|
||||
render/backend/renderworker.h
|
||||
@@ -40,6 +37,10 @@ set(OLIVE_SOURCES
|
||||
render/backend/videorenderframecache.cpp
|
||||
render/backend/videorenderworker.h
|
||||
render/backend/videorenderworker.cpp
|
||||
|
||||
render/backend/rendercache.h
|
||||
render/backend/colorprocessorcache.h
|
||||
render/backend/decodercache.h
|
||||
|
||||
PARENT_SCOPE
|
||||
)
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
#ifndef COLORPROCESSORCACHE_H
|
||||
#define COLORPROCESSORCACHE_H
|
||||
|
||||
#include "project/item/footage/stream.h"
|
||||
#include "render/colorprocessor.h"
|
||||
#include "rendercache.h"
|
||||
|
||||
using ColorProcessorCache = RenderCache<Stream*, ColorProcessorPtr>;
|
||||
|
||||
#endif // COLORPROCESSORCACHE_H
|
||||
@@ -1,21 +0,0 @@
|
||||
#include "decodercache.h"
|
||||
|
||||
DecoderCache::DecoderCache()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void DecoderCache::Clear()
|
||||
{
|
||||
decoders_.clear();
|
||||
}
|
||||
|
||||
void DecoderCache::AddDecoder(Stream *stream, DecoderPtr shader)
|
||||
{
|
||||
decoders_.insert(stream, shader);
|
||||
}
|
||||
|
||||
DecoderPtr DecoderCache::GetDecoder(Stream *stream)
|
||||
{
|
||||
return decoders_.value(stream);
|
||||
}
|
||||
@@ -3,24 +3,8 @@
|
||||
|
||||
#include "decoder/decoder.h"
|
||||
#include "project/item/footage/stream.h"
|
||||
#include "rendercache.h"
|
||||
|
||||
/**
|
||||
* @brief Thread-safe cache of decoders
|
||||
*/
|
||||
class DecoderCache
|
||||
{
|
||||
public:
|
||||
DecoderCache();
|
||||
|
||||
void Clear();
|
||||
|
||||
void AddDecoder(Stream* stream, DecoderPtr shader);
|
||||
|
||||
DecoderPtr GetDecoder(Stream* stream);
|
||||
|
||||
private:
|
||||
QMap<Stream*, DecoderPtr> decoders_;
|
||||
|
||||
};
|
||||
using DecoderCache = RenderCache<Stream*, DecoderPtr>;
|
||||
|
||||
#endif // DECODERCACHE_H
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
#ifndef RENDERCACHE_H
|
||||
#define RENDERCACHE_H
|
||||
|
||||
#include <QMap>
|
||||
|
||||
template<class K, class V>
|
||||
class RenderCache
|
||||
{
|
||||
public:
|
||||
RenderCache() = default;
|
||||
|
||||
void Clear(){values_.clear();}
|
||||
|
||||
void Add(K stream, V shader){values_.insert(stream, shader);}
|
||||
|
||||
V Get(K stream){return values_.value(stream);}
|
||||
|
||||
private:
|
||||
QMap<K, V> values_;
|
||||
};
|
||||
|
||||
#endif // RENDERCACHE_H
|
||||
Reference in New Issue
Block a user