/*
 * Copyright 2021 Google LLC
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#ifndef SkBaseGpuDevice_DEFINED
#define SkBaseGpuDevice_DEFINED

#include "src/gpu/GrSurfaceProxyView.h"

// NOTE: when not defined, SkGpuDevice extends SkBaseDevice directly and manages its clip stack
// using GrClipStack. When false, SkGpuDevice continues to extend SkClipStackDevice and uses
// SkClipStack and GrClipStackClip to manage the clip stack.
#if !defined(SK_DISABLE_NEW_GR_CLIP_STACK)
    // For staging purposes, disable this for Android Framework
    #if defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)
        #define SK_DISABLE_NEW_GR_CLIP_STACK
    #endif
#endif

#if !defined(SK_DISABLE_NEW_GR_CLIP_STACK)
    #include "src/core/SkDevice.h"
    #define BASE_DEVICE   SkBaseDevice
#else
    #include "src/core/SkClipStackDevice.h"
    #define BASE_DEVICE   SkClipStackDevice
#endif

class SkBaseGpuDevice : public BASE_DEVICE {
public:
    enum InitContents {
        kClear_InitContents,
        kUninit_InitContents
    };

    SkBaseGpuDevice(const SkImageInfo& ii, const SkSurfaceProps& props)
        : INHERITED(ii, props) {
    }

    // TODO: SkGpuDevice/SkGpuDevice_nga shared stuff goes here
    virtual GrSurfaceProxyView readSurfaceView() = 0;
    GrRenderTargetProxy* targetProxy() {
        return this->readSurfaceView().asRenderTargetProxy();
    }

protected:

private:
    using INHERITED = BASE_DEVICE;
};

#undef BASE_DEVICE

#endif
