Migrate GrDstProxyView to its own header.
Change-Id: Ic1b362a38d60c50ee6b4ead307fb57eb26c375e0 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/415459 Auto-Submit: John Stiles <johnstiles@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: John Stiles <johnstiles@google.com>
This commit is contained in:
parent
6dd19477c5
commit
87960de2ae
@ -100,6 +100,7 @@ skia_gpu_sources = [
|
||||
"$_src/gpu/GrDrawingManager.cpp",
|
||||
"$_src/gpu/GrDrawingManager.h",
|
||||
"$_src/gpu/GrDriverBugWorkarounds.cpp",
|
||||
"$_src/gpu/GrDstProxyView.h",
|
||||
"$_src/gpu/GrDynamicAtlas.cpp",
|
||||
"$_src/gpu/GrDynamicAtlas.h",
|
||||
"$_src/gpu/GrEagerVertexAllocator.h",
|
||||
|
67
src/gpu/GrDstProxyView.h
Normal file
67
src/gpu/GrDstProxyView.h
Normal file
@ -0,0 +1,67 @@
|
||||
/*
|
||||
* 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 GrDstProxyView_DEFINED
|
||||
#define GrDstProxyView_DEFINED
|
||||
|
||||
#include "include/gpu/GrTypes.h"
|
||||
#include "include/private/GrTypesPriv.h"
|
||||
#include "src/gpu/GrSurfaceProxyView.h"
|
||||
|
||||
/**
|
||||
* GrDstProxyView holds a texture containing the destination pixel values, and an integer-coordinate
|
||||
* offset from device-space to the space of the texture. When framebuffer fetch is not available, a
|
||||
* GrDstProxyView may be used to support blending in the fragment shader/xfer processor.
|
||||
*/
|
||||
class GrDstProxyView {
|
||||
public:
|
||||
GrDstProxyView() {}
|
||||
|
||||
GrDstProxyView(const GrDstProxyView& other) {
|
||||
*this = other;
|
||||
}
|
||||
|
||||
GrDstProxyView& operator=(const GrDstProxyView& other) {
|
||||
fProxyView = other.fProxyView;
|
||||
fOffset = other.fOffset;
|
||||
fDstSampleType = other.fDstSampleType;
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool operator==(const GrDstProxyView& that) const {
|
||||
return fProxyView == that.fProxyView &&
|
||||
fOffset == that.fOffset &&
|
||||
fDstSampleType == that.fDstSampleType;
|
||||
}
|
||||
bool operator!=(const GrDstProxyView& that) const { return !(*this == that); }
|
||||
|
||||
const SkIPoint& offset() const { return fOffset; }
|
||||
|
||||
void setOffset(const SkIPoint& offset) { fOffset = offset; }
|
||||
void setOffset(int ox, int oy) { fOffset.set(ox, oy); }
|
||||
|
||||
GrSurfaceProxy* proxy() const { return fProxyView.proxy(); }
|
||||
const GrSurfaceProxyView& proxyView() const { return fProxyView; }
|
||||
|
||||
void setProxyView(GrSurfaceProxyView view) {
|
||||
fProxyView = std::move(view);
|
||||
if (!fProxyView.proxy()) {
|
||||
fOffset = {0, 0};
|
||||
}
|
||||
}
|
||||
|
||||
GrDstSampleType dstSampleType() const { return fDstSampleType; }
|
||||
|
||||
void setDstSampleType(GrDstSampleType dstSampleType) { fDstSampleType = dstSampleType; }
|
||||
|
||||
private:
|
||||
GrSurfaceProxyView fProxyView;
|
||||
SkIPoint fOffset = {0, 0};
|
||||
GrDstSampleType fDstSampleType = GrDstSampleType::kNone;
|
||||
};
|
||||
|
||||
#endif
|
@ -21,6 +21,7 @@
|
||||
#include "src/core/SkStringUtils.h"
|
||||
#include "src/core/SkTLazy.h"
|
||||
#include "src/gpu/GrAppliedClip.h"
|
||||
#include "src/gpu/GrDstProxyView.h"
|
||||
#include "src/gpu/GrGeometryProcessor.h"
|
||||
#include "src/gpu/GrRenderTask.h"
|
||||
#include "src/gpu/ops/GrDrawOp.h"
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include "include/core/SkMatrix.h"
|
||||
#include "include/core/SkRefCnt.h"
|
||||
#include "src/gpu/GrColor.h"
|
||||
#include "src/gpu/GrDstProxyView.h"
|
||||
#include "src/gpu/GrFragmentProcessor.h"
|
||||
#include "src/gpu/GrProcessorSet.h"
|
||||
#include "src/gpu/GrScissorState.h"
|
||||
|
@ -28,6 +28,7 @@ class GrClip;
|
||||
class GrColorSpaceXform;
|
||||
class GrCoverageCountingPathRenderer;
|
||||
class GrDrawOp;
|
||||
class GrDstProxyView;
|
||||
class GrOp;
|
||||
class GrRenderTarget;
|
||||
class GrStyledShape;
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include "src/gpu/GrSurfaceFillContext.h"
|
||||
|
||||
#include "include/private/GrImageContext.h"
|
||||
#include "src/gpu/GrDstProxyView.h"
|
||||
#include "src/gpu/GrImageContextPriv.h"
|
||||
#include "src/gpu/GrProxyProvider.h"
|
||||
#include "src/gpu/GrSurfaceDrawContext.h"
|
||||
|
@ -40,58 +40,6 @@ enum class GrXferBarrierFlags {
|
||||
|
||||
GR_MAKE_BITFIELD_CLASS_OPS(GrXferBarrierFlags)
|
||||
|
||||
/**
|
||||
* GrDstProxyView holds a texture containing the destination pixel values, and an integer-coordinate
|
||||
* offset from device-space to the space of the texture. When framebuffer fetch is not available, a
|
||||
* GrDstProxyView may be used to support blending in the fragment shader/xfer processor.
|
||||
*/
|
||||
class GrDstProxyView {
|
||||
public:
|
||||
GrDstProxyView() { fOffset.set(0, 0); }
|
||||
|
||||
GrDstProxyView(const GrDstProxyView& other) {
|
||||
*this = other;
|
||||
}
|
||||
|
||||
GrDstProxyView& operator=(const GrDstProxyView& other) {
|
||||
fProxyView = other.fProxyView;
|
||||
fOffset = other.fOffset;
|
||||
fDstSampleType = other.fDstSampleType;
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool operator==(const GrDstProxyView& that) const {
|
||||
return fProxyView == that.fProxyView &&
|
||||
fOffset == that.fOffset &&
|
||||
fDstSampleType == that.fDstSampleType;
|
||||
}
|
||||
bool operator!=(const GrDstProxyView& that) const { return !(*this == that); }
|
||||
|
||||
const SkIPoint& offset() const { return fOffset; }
|
||||
|
||||
void setOffset(const SkIPoint& offset) { fOffset = offset; }
|
||||
void setOffset(int ox, int oy) { fOffset.set(ox, oy); }
|
||||
|
||||
GrSurfaceProxy* proxy() const { return fProxyView.proxy(); }
|
||||
const GrSurfaceProxyView& proxyView() const { return fProxyView; }
|
||||
|
||||
void setProxyView(GrSurfaceProxyView view) {
|
||||
fProxyView = std::move(view);
|
||||
if (!fProxyView.proxy()) {
|
||||
fOffset = {0, 0};
|
||||
}
|
||||
}
|
||||
|
||||
GrDstSampleType dstSampleType() const { return fDstSampleType; }
|
||||
|
||||
void setDstSampleType(GrDstSampleType dstSampleType) { fDstSampleType = dstSampleType; }
|
||||
|
||||
private:
|
||||
GrSurfaceProxyView fProxyView;
|
||||
SkIPoint fOffset;
|
||||
GrDstSampleType fDstSampleType = GrDstSampleType::kNone;
|
||||
};
|
||||
|
||||
/**
|
||||
* GrXferProcessor is responsible for implementing the xfer mode that blends the src color and dst
|
||||
* color, and for applying any coverage. It does this by emitting fragment shader code and
|
||||
|
@ -10,6 +10,7 @@
|
||||
|
||||
#include "include/gpu/GrDirectContext.h"
|
||||
#include "src/gpu/GrDirectContextPriv.h"
|
||||
#include "src/gpu/GrDstProxyView.h"
|
||||
#include "src/gpu/GrGpu.h"
|
||||
#include "src/gpu/ops/GrMeshDrawOp.h"
|
||||
|
||||
|
@ -22,6 +22,7 @@
|
||||
|
||||
class GrAppliedClip;
|
||||
class GrCaps;
|
||||
class GrDstProxyView;
|
||||
class GrOpFlushState;
|
||||
class GrOpsRenderPass;
|
||||
class GrPaint;
|
||||
|
Loading…
Reference in New Issue
Block a user