4#ifndef QSGRENDERERINTERFACE_H
5#define QSGRENDERERINTERFACE_H
7#include <QtQuick/qsgnode.h>
28 Direct3D11Rhi = Direct3D11,
41 RhiRedirectCommandBuffer,
42 RhiRedirectRenderTarget,
43 PhysicalDeviceResource,
44 OpenGLContextResource,
45 DeviceContextResource,
46 CommandEncoderResource,
47 VulkanInstanceResource,
50 GraphicsQueueFamilyIndexResource,
51 GraphicsQueueIndexResource,
55 UnknownShadingLanguage,
61 enum ShaderCompilationType {
62 RuntimeCompilation = 0x01,
63 OfflineCompilation = 0x02
65 Q_DECLARE_FLAGS(ShaderCompilationTypes, ShaderCompilationType)
67 enum ShaderSourceType {
68 ShaderSourceString = 0x01,
69 ShaderSourceFile = 0x02,
72 Q_DECLARE_FLAGS(ShaderSourceTypes, ShaderSourceType)
76 RenderMode2DNoDepthBuffer,
80 virtual ~QSGRendererInterface();
82 virtual GraphicsApi graphicsApi()
const = 0;
84 virtual void *getResource(QQuickWindow *window, Resource resource)
const;
85 virtual void *getResource(QQuickWindow *window,
const char *resource)
const;
87 virtual ShaderType shaderType()
const = 0;
88 virtual ShaderCompilationTypes shaderCompilationType()
const = 0;
89 virtual ShaderSourceTypes shaderSourceType()
const = 0;
91 static bool isApiRhiBased(GraphicsApi api);
94Q_DECLARE_OPERATORS_FOR_FLAGS(QSGRendererInterface::ShaderCompilationTypes)
95Q_DECLARE_OPERATORS_FOR_FLAGS(QSGRendererInterface::ShaderSourceTypes)
QSGContext * create(const QString &key) const override
QSGRenderLoop * createWindowManager() override
Flags flags(const QString &key) const override
QStringList keys() const override
QSurfaceFormat defaultSurfaceFormat() const override
QSGNinePatchNode * createNinePatchNode() override
QSGRenderContext * createRenderContext() override
QSGGlyphNode * createGlyphNode(QSGRenderContext *rc, bool preferNativeGlyphNode, int renderTypeQuality) override
QSGLayer * createLayer(QSGRenderContext *renderContext) override
QSGInternalImageNode * createInternalImageNode(QSGRenderContext *renderContext) override
QSGImageNode * createImageNode() override
QSGInternalRectangleNode * createInternalRectangleNode() override
QSGRectangleNode * createRectangleNode() override
QSGPainterNode * createPainterNode(QQuickPaintedItem *item) override
QSGRendererInterface * rendererInterface(QSGRenderContext *renderContext) override
Returns a pointer to the (presumably) global renderer interface.
QOpenVGContext * vgContext()
ShaderSourceTypes shaderSourceType() const override
void renderNextFrame(QSGRenderer *renderer) override
int maxTextureSize() const override
static const int INIT_PARAMS_MAGIC
ShaderType shaderType() const override
GraphicsApi graphicsApi() const override
Returns the graphics API that is in use by the Qt Quick scenegraph.
void initialize(const QSGRenderContext::InitParams *params) override
void invalidate() override
ShaderCompilationTypes shaderCompilationType() const override
QSGRenderer * createRenderer(QSGRendererInterface::RenderMode renderMode=QSGRendererInterface::RenderMode2D) override
QSGTexture * createTexture(const QImage &image, uint flags) const override
QSGOpenVGFontGlyphCache * glyphCache(const QRawFont &rawFont)
An interface providing access to some of the graphics API specific internals of the scenegraph.