4#include <Gfx/Graph/RenderState.hpp>
6#include <score/gfx/OpenGL.hpp>
7#include <score/tools/Debug.hpp>
8#include <score/tools/std/StringHash.hpp>
10#include <ossia/detail/hash_map.hpp>
12#if __has_include(<QtShaderTools/rhi/qshaderbaker.h>)
13#include <QtShaderTools/rhi/qshaderbaker.h>
15#include <QtShaderTools/private/qshaderbaker_p.h>
31SCORE_PLUGIN_GFX_EXPORT
45 static const std::pair<QShader, QString>& get(
46 const RenderState& v,
const QByteArray& shader, QShader::Stage stage,
47 int multiViewCount = 0);
48 static const std::pair<QShader, QString>& get(
49 GraphicsApi api,
const QShaderVersion& v,
const QByteArray& shader,
50 QShader::Stage stage,
int multiViewCount = 0);
57 explicit Baker(
GraphicsApi api,
const QShaderVersion& v,
int multiViewCount);
60 QShaderVersion version;
73 static constexpr int stageCount = 6;
74 std::array<ossia::hash_map<QByteArray, std::pair<QShader, QString>>, stageCount>
77 auto& forStage(QShader::Stage s)
noexcept
80 SCORE_ASSERT(i >= 0 && i < stageCount);
85 std::vector<std::unique_ptr<Baker>> m_bakers;
Graphics rendering pipeline for ossia score.
Definition Filter/PreviewWidget.hpp:11
GraphicsApi
Available graphics APIs to use.
Definition RenderState.hpp:22
QByteArray hlslIntrinsicCollision(const QByteArray &raw) noexcept
The identifier a shader declares that collides with an HLSL intrinsic.
Definition ShaderCache.cpp:250
Global state associated to a rendering context.
Definition RenderState.hpp:37
Cache of baked QShader instances.
Definition ShaderCache.hpp:38