File indexing completed on 2024-05-12 15:42:40

0001 /*
0002  *  SPDX-FileCopyrightText: 2020 Arjen Hiemstra <ahiemstra@heimr.nl>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 
0007 #pragma once
0008 
0009 #include <QSGTexture>
0010 
0011 #include "shadowedborderrectanglematerial.h"
0012 
0013 class ShadowedBorderTextureMaterial : public ShadowedBorderRectangleMaterial
0014 {
0015 public:
0016     ShadowedBorderTextureMaterial();
0017 
0018 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
0019     QSGMaterialShader *createShader() const override;
0020 #else
0021     QSGMaterialShader *createShader(QSGRendererInterface::RenderMode) const override;
0022 #endif
0023     QSGMaterialType *type() const override;
0024     int compare(const QSGMaterial *other) const override;
0025 
0026     QSGTexture *textureSource = nullptr;
0027 
0028     static QSGMaterialType staticType;
0029 };
0030 
0031 class ShadowedBorderTextureShader : public ShadowedBorderRectangleShader
0032 {
0033 public:
0034     ShadowedBorderTextureShader(ShadowedRectangleMaterial::ShaderType shaderType);
0035 
0036 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
0037     void initialize() override;
0038     void updateState(const QSGMaterialShader::RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) override;
0039 #else
0040     void
0041     updateSampledImage(QSGMaterialShader::RenderState &state, int binding, QSGTexture **texture, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) override;
0042 #endif
0043 };