diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2019-09-26 11:26:51 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2019-09-26 17:02:39 +0200 |
commit | 0628932fef349d217c0a50a192e7ee6a955994b7 (patch) | |
tree | 63645ca4ffa1598b03f9d79b152424ef88dd32bb /src/gui/opengl/qopenglprogrambinarycache.cpp | |
parent | c06627a230ea758c64ac70a9962a69c843fd0e08 (diff) |
Move cache key calculation to QOpenGLProgramBinaryCache
This class will likely be used by the OpenGL backend of QRhi as well.
Therefore, we need to make it more self-contained and independent.
Change-Id: If046ed41e25c70cc9abb45219b451f9179feaa1c
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
Diffstat (limited to 'src/gui/opengl/qopenglprogrambinarycache.cpp')
-rw-r--r-- | src/gui/opengl/qopenglprogrambinarycache.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gui/opengl/qopenglprogrambinarycache.cpp b/src/gui/opengl/qopenglprogrambinarycache.cpp index 54160e1240..1495471457 100644 --- a/src/gui/opengl/qopenglprogrambinarycache.cpp +++ b/src/gui/opengl/qopenglprogrambinarycache.cpp @@ -45,6 +45,7 @@ #include <QDir> #include <QSaveFile> #include <QLoggingCategory> +#include <QCryptographicHash> #ifdef Q_OS_UNIX #include <sys/mman.h> @@ -94,6 +95,15 @@ GLEnvInfo::GLEnvInfo() glversion = QByteArray(version); } +QByteArray QOpenGLProgramBinaryCache::ProgramDesc::cacheKey() const +{ + QCryptographicHash keyBuilder(QCryptographicHash::Sha1); + for (const QOpenGLProgramBinaryCache::ShaderDesc &shader : shaders) + keyBuilder.addData(shader.source); + + return keyBuilder.result().toHex(); +} + static inline bool qt_ensureWritableDir(const QString &name) { QDir::root().mkpath(name); |