Index: include/gpu/GrXferProcessor.h |
diff --git a/include/gpu/GrXferProcessor.h b/include/gpu/GrXferProcessor.h |
index 812a9b32ab353ec8f6172bf701a77042e2cc02bc..85e5aa04ed935e9d99e819be55ae8a805d521105 100644 |
--- a/include/gpu/GrXferProcessor.h |
+++ b/include/gpu/GrXferProcessor.h |
@@ -104,47 +104,6 @@ |
class GrXferProcessor : public GrProcessor { |
public: |
/** |
- * A texture that contains the dst pixel values and an integer coord offset from device space |
- * to the space of the texture. Depending on GPU capabilities a DstTexture may be used by a |
- * GrXferProcessor for blending in the fragment shader. |
- */ |
- class DstTexture { |
- public: |
- DstTexture() { fOffset.set(0, 0); } |
- |
- DstTexture(const DstTexture& other) { |
- *this = other; |
- } |
- |
- DstTexture(GrTexture* texture, const SkIPoint& offset) |
- : fTexture(SkSafeRef(texture)) |
- , fOffset(offset) { |
- } |
- |
- DstTexture& operator=(const DstTexture& other) { |
- fTexture.reset(SkSafeRef(other.fTexture.get())); |
- fOffset = other.fOffset; |
- return *this; |
- } |
- |
- const SkIPoint& offset() const { return fOffset; } |
- |
- void setOffset(const SkIPoint& offset) { fOffset = offset; } |
- void setOffset(int ox, int oy) { fOffset.set(ox, oy); } |
- |
- GrTexture* texture() const { return fTexture.get(); } |
- |
- GrTexture* setTexture(GrTexture* texture) { |
- fTexture.reset(SkSafeRef(texture)); |
- return texture; |
- } |
- |
- private: |
- SkAutoTUnref<GrTexture> fTexture; |
- SkIPoint fOffset; |
- }; |
- |
- /** |
* Sets a unique key on the GrProcessorKeyBuilder calls onGetGLProcessorKey(...) to get the |
* specific subclass's key. |
*/ |
@@ -240,15 +199,15 @@ |
* shader. If the returned texture is NULL then the XP is either not reading the dst or we have |
* extentions that support framebuffer fetching and thus don't need a copy of the dst texture. |
*/ |
- const GrTexture* getDstTexture() const { return fDstTexture.getTexture(); } |
- |
- /** |
- * Returns the offset in device coords to use when accessing the dst texture to get the dst |
- * pixel color in the shader. This value is only valid if getDstTexture() != NULL. |
- */ |
- const SkIPoint& dstTextureOffset() const { |
- SkASSERT(this->getDstTexture()); |
- return fDstTextureOffset; |
+ const GrTexture* getDstCopyTexture() const { return fDstCopy.getTexture(); } |
+ |
+ /** |
+ * Returns the offset into the DstCopyTexture to use when reading it in the shader. This value |
+ * is only valid if getDstCopyTexture() != NULL. |
+ */ |
+ const SkIPoint& dstCopyTextureOffset() const { |
+ SkASSERT(this->getDstCopyTexture()); |
+ return fDstCopyTextureOffset; |
} |
/** |
@@ -279,10 +238,10 @@ |
if (this->fReadsCoverage != that.fReadsCoverage) { |
return false; |
} |
- if (this->fDstTexture.getTexture() != that.fDstTexture.getTexture()) { |
- return false; |
- } |
- if (this->fDstTextureOffset != that.fDstTextureOffset) { |
+ if (this->fDstCopy.getTexture() != that.fDstCopy.getTexture()) { |
+ return false; |
+ } |
+ if (this->fDstCopyTextureOffset != that.fDstCopyTextureOffset) { |
return false; |
} |
return this->onIsEqual(that); |
@@ -290,7 +249,7 @@ |
protected: |
GrXferProcessor(); |
- GrXferProcessor(const DstTexture*, bool willReadDstColor); |
+ GrXferProcessor(const GrDeviceCoordTexture* dstCopy, bool willReadDstColor); |
private: |
virtual OptFlags onGetOptimizations(const GrProcOptInfo& colorPOI, |
@@ -327,8 +286,8 @@ |
bool fWillReadDstColor; |
bool fReadsCoverage; |
- SkIPoint fDstTextureOffset; |
- GrTextureAccess fDstTexture; |
+ SkIPoint fDstCopyTextureOffset; |
+ GrTextureAccess fDstCopy; |
typedef GrFragmentProcessor INHERITED; |
}; |
@@ -350,10 +309,9 @@ |
*/ |
class GrXPFactory : public SkRefCnt { |
public: |
- typedef GrXferProcessor::DstTexture DstTexture; |
GrXferProcessor* createXferProcessor(const GrProcOptInfo& colorPOI, |
const GrProcOptInfo& coveragePOI, |
- const DstTexture*, |
+ const GrDeviceCoordTexture* dstCopy, |
const GrCaps& caps) const; |
/** |
@@ -377,8 +335,8 @@ |
virtual void getInvariantOutput(const GrProcOptInfo& colorPOI, const GrProcOptInfo& coveragePOI, |
InvariantOutput*) const = 0; |
- bool willNeedDstTexture(const GrCaps& caps, const GrProcOptInfo& colorPOI, |
- const GrProcOptInfo& coveragePOI) const; |
+ bool willNeedDstCopy(const GrCaps& caps, const GrProcOptInfo& colorPOI, |
+ const GrProcOptInfo& coveragePOI) const; |
bool isEqual(const GrXPFactory& that) const { |
if (this->classID() != that.classID()) { |
@@ -408,7 +366,7 @@ |
virtual GrXferProcessor* onCreateXferProcessor(const GrCaps& caps, |
const GrProcOptInfo& colorPOI, |
const GrProcOptInfo& coveragePOI, |
- const DstTexture*) const = 0; |
+ const GrDeviceCoordTexture* dstCopy) const = 0; |
/** |
* Returns true if the XP generated by this factory will explicitly read dst in the fragment |
* shader. |