5#ifndef QSGRENDERERINTERFACE_H
6#define QSGRENDERERINTERFACE_H
8#include <QtQuick/qsgnode.h>
29 Direct3D11Rhi = Direct3D11,
42 RhiRedirectCommandBuffer,
43 RhiRedirectRenderTarget,
44 PhysicalDeviceResource,
45 OpenGLContextResource,
46 DeviceContextResource,
47 CommandEncoderResource,
48 VulkanInstanceResource,
51 GraphicsQueueFamilyIndexResource,
52 GraphicsQueueIndexResource,
56 UnknownShadingLanguage,
62 enum ShaderCompilationType {
63 RuntimeCompilation = 0x01,
64 OfflineCompilation = 0x02
66 Q_DECLARE_FLAGS(ShaderCompilationTypes, ShaderCompilationType)
68 enum ShaderSourceType {
69 ShaderSourceString = 0x01,
70 ShaderSourceFile = 0x02,
73 Q_DECLARE_FLAGS(ShaderSourceTypes, ShaderSourceType)
77 RenderMode2DNoDepthBuffer,
81 virtual ~QSGRendererInterface();
83 virtual GraphicsApi graphicsApi()
const = 0;
85 virtual void *getResource(QQuickWindow *window, Resource resource)
const;
86 virtual void *getResource(QQuickWindow *window,
const char *resource)
const;
88 virtual ShaderType shaderType()
const = 0;
89 virtual ShaderCompilationTypes shaderCompilationType()
const = 0;
90 virtual ShaderSourceTypes shaderSourceType()
const = 0;
92 static bool isApiRhiBased(GraphicsApi api);
95Q_DECLARE_OPERATORS_FOR_FLAGS(QSGRendererInterface::ShaderCompilationTypes)
96Q_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.
Combined button and popup list for selecting options.