nodes: revert shader ID to string
Much easier to manage this way and fixes a compile issue on several platforms.
This commit is contained in:
@@ -182,12 +182,11 @@ QVariant OpenGLProxy::PreCachedFrameToValue(FramePtr frame)
|
||||
return QVariant::fromValue(texture_cache_.Get(ctx_, frame));
|
||||
}
|
||||
|
||||
OpenGLShaderPtr OpenGLProxy::ResolveShaderFromCache(const Node *node, const QByteArray &shader_id)
|
||||
OpenGLShaderPtr OpenGLProxy::ResolveShaderFromCache(const Node *node, const QString &shader_id)
|
||||
{
|
||||
// Make a composite of the node ID and the shader ID (if applicable)
|
||||
QByteArray id = node->id().toUtf8();
|
||||
id.append(shader_id);
|
||||
OpenGLShaderPtr shader = shader_cache_.value(id);
|
||||
QString full_shader_id = QStringLiteral("%1:%2").arg(node->id(), shader_id);
|
||||
OpenGLShaderPtr shader = shader_cache_.value(full_shader_id);
|
||||
|
||||
if (!shader) {
|
||||
// Since we have shader code, compile it now
|
||||
@@ -213,7 +212,7 @@ OpenGLShaderPtr OpenGLProxy::ResolveShaderFromCache(const Node *node, const QByt
|
||||
&& shader->addShaderFromSourceCode(QOpenGLShader::Fragment, frag_code)
|
||||
&& shader->addShaderFromSourceCode(QOpenGLShader::Vertex, vert_code)
|
||||
&& shader->link()) {
|
||||
shader_cache_.insert(shader_id, shader);
|
||||
shader_cache_.insert(full_shader_id, shader);
|
||||
} else {
|
||||
qWarning() << "Failed to compile shader for" << node->id();
|
||||
shader = nullptr;
|
||||
|
||||
@@ -84,7 +84,7 @@ public slots:
|
||||
QVariant PreCachedFrameToValue(OLIVE_NAMESPACE::FramePtr frame);
|
||||
|
||||
private:
|
||||
OpenGLShaderPtr ResolveShaderFromCache(const Node* node, const QByteArray& shader_id);
|
||||
OpenGLShaderPtr ResolveShaderFromCache(const Node* node, const QString &shader_id);
|
||||
|
||||
QOpenGLContext* ctx_;
|
||||
QOffscreenSurface surface_;
|
||||
@@ -97,7 +97,7 @@ private:
|
||||
|
||||
OpenGLShaderPtr copy_pipeline_;
|
||||
|
||||
QHash<QByteArray, OpenGLShaderPtr> shader_cache_;
|
||||
QHash<QString, OpenGLShaderPtr> shader_cache_;
|
||||
|
||||
OpenGLTextureCache texture_cache_;
|
||||
|
||||
|
||||
@@ -93,12 +93,12 @@ public:
|
||||
alpha_channel_required_ = false;
|
||||
}
|
||||
|
||||
const QByteArray& GetShaderID() const
|
||||
const QString& GetShaderID() const
|
||||
{
|
||||
return id_;
|
||||
}
|
||||
|
||||
void SetShaderID(const QByteArray& id)
|
||||
void SetShaderID(const QString& id)
|
||||
{
|
||||
id_ = id;
|
||||
}
|
||||
@@ -130,7 +130,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
QByteArray id_;
|
||||
QString id_;
|
||||
|
||||
int iterations_;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user