// This file is generated by kconfig_compiler_kf5 from renderer.kcfg.
// All changes you do to this file will be lost.
#ifndef PLASMAQTQUICKSETTINGS_RENDERERSETTINGS_H
#define PLASMAQTQUICKSETTINGS_RENDERERSETTINGS_H

#include <qglobal.h>
#include <kconfigskeleton.h>
#include <QCoreApplication>
#include <QDebug>

namespace PlasmaQtQuickSettings {

class RendererSettings : public KConfigSkeleton
{
  public:
    enum RenderLoopType { automaticloop, basic, threaded };
    enum SceneGraphBackendType { automaticbackend, opengl, software, vulkan };

    RendererSettings( KSharedConfig::Ptr config = KSharedConfig::openConfig() );
    ~RendererSettings() override;

    /**
      Set RenderLoop
    */
    void setRenderLoop( RenderLoopType v )
    {
      if (!isRenderLoopImmutable())
        mRenderLoop = v;
    }

    /**
      Get RenderLoop
    */
    RenderLoopType renderLoop() const
    {
      return static_cast<RenderLoopType>(mRenderLoop);
    }

    /**
      Is RenderLoop Immutable
    */
    bool isRenderLoopImmutable() const
    {
      return isImmutable( QStringLiteral( "RenderLoop" ) );
    }

    /**
      Set SceneGraphBackend
    */
    void setSceneGraphBackend( SceneGraphBackendType v )
    {
      if (!isSceneGraphBackendImmutable())
        mSceneGraphBackend = v;
    }

    /**
      Get SceneGraphBackend
    */
    SceneGraphBackendType sceneGraphBackend() const
    {
      return static_cast<SceneGraphBackendType>(mSceneGraphBackend);
    }

    /**
      Is SceneGraphBackend Immutable
    */
    bool isSceneGraphBackendImmutable() const
    {
      return isImmutable( QStringLiteral( "SceneGraphBackend" ) );
    }

    /**
      Set ForceGlCoreProfile
    */
    void setForceGlCoreProfile( bool v )
    {
      if (!isForceGlCoreProfileImmutable())
        mForceGlCoreProfile = v;
    }

    /**
      Get ForceGlCoreProfile
    */
    bool forceGlCoreProfile() const
    {
      return mForceGlCoreProfile;
    }

    /**
      Is ForceGlCoreProfile Immutable
    */
    bool isForceGlCoreProfileImmutable() const
    {
      return isImmutable( QStringLiteral( "ForceGlCoreProfile" ) );
    }

  protected:

    // QtQuickRendererSettings
    int mRenderLoop;
    int mSceneGraphBackend;
    bool mForceGlCoreProfile;

  private:
};

}

#endif

