diff --git a/app/render/backend/opengl/openglproxy.cpp b/app/render/backend/opengl/openglproxy.cpp index 267b3de9d..8528244d1 100644 --- a/app/render/backend/opengl/openglproxy.cpp +++ b/app/render/backend/opengl/openglproxy.cpp @@ -170,6 +170,11 @@ NodeValue OpenGLProxy::FrameToValue(FramePtr frame, StreamPtr stream, const Vide return NodeValue(NodeParam::kTexture, QVariant::fromValue(footage_tex_ref)); } +NodeValue OpenGLProxy::PreCachedFrameToValue(FramePtr frame) +{ + return NodeValue(NodeParam::kTexture, QVariant::fromValue(texture_cache_.Get(ctx_, frame))); +} + void OpenGLProxy::Close() { shader_cache_.clear(); diff --git a/app/render/backend/opengl/openglproxy.h b/app/render/backend/opengl/openglproxy.h index e2288ec88..6850bd675 100644 --- a/app/render/backend/opengl/openglproxy.h +++ b/app/render/backend/opengl/openglproxy.h @@ -82,6 +82,8 @@ public slots: const OLIVE_NAMESPACE::VideoParams ¶ms, const OLIVE_NAMESPACE::RenderMode::Mode &mode); + OLIVE_NAMESPACE::NodeValue PreCachedFrameToValue(OLIVE_NAMESPACE::FramePtr frame); + private: QOpenGLContext* ctx_; QOffscreenSurface surface_;