Index: src/gpu/gl/GrGLGpu.h |
diff --git a/src/gpu/gl/GrGLGpu.h b/src/gpu/gl/GrGLGpu.h |
index c2dda0a222be2ef16a73b1d8cd4fc1f5c4b6543c..c8b5d70f1b1d12ee573ee682376a930598f75761 100644 |
--- a/src/gpu/gl/GrGLGpu.h |
+++ b/src/gpu/gl/GrGLGpu.h |
@@ -60,6 +60,8 @@ public: |
void bindTexture(int unitIdx, const GrTextureParams& params, bool dstConfigAllowsSRGB, |
GrGLTexture* texture); |
+ void bindTexelBuffer(int unitIdx, intptr_t offsetInBytes, GrPixelConfig, GrGLBuffer*); |
+ |
bool onGetReadPixelsInfo(GrSurface* srcSurface, int readWidth, int readHeight, size_t rowBytes, |
GrPixelConfig readConfig, DrawPreference*, |
ReadPixelTempDrawInfo*) override; |
@@ -88,6 +90,9 @@ public: |
// If the caller wishes to bind an index buffer to a specific VAO, it can call glBind directly. |
GrGLenum bindBuffer(GrBufferType type, const GrGLBuffer*); |
+ // Called by GrGLBuffer after its buffer object has been destroyed. |
+ void notifyBufferReleased(const GrGLBuffer*); |
+ |
const GrGLContext* glContextForTesting() const override { |
return &this->glContext(); |
} |
@@ -206,6 +211,8 @@ private: |
// binds texture unit in GL |
void setTextureUnit(int unitIdx); |
+ void setTextureSwizzle(int unitIdx, GrGLenum target, const GrGLenum swizzle[]); |
+ |
// Flushes state from GrPipeline to GL. Returns false if the state couldn't be set. |
bool flushGLState(const GrPipeline& pipeline, const GrPrimitiveProcessor& primProc); |
@@ -498,6 +505,23 @@ private: |
TriState fHWSRGBFramebuffer; |
SkTArray<uint32_t, true> fHWBoundTextureUniqueIDs; |
+ struct BufferTexture { |
+ BufferTexture() : fTextureID(0), fKnownBound(false), |
+ fAttachedBufferUniqueID(SK_InvalidUniqueID), |
+ fSwizzle(GrSwizzle::RGBA()) {} |
+ |
+ GrGLuint fTextureID; |
+ bool fKnownBound; |
+ intptr_t fOffsetInBytes; |
+ GrPixelConfig fTexelConfig; |
+ size_t fAttachedSizeInBytes; |
+ uint32_t fAttachedBufferUniqueID; |
+ GrSwizzle fSwizzle; |
+ }; |
+ |
+ SkTArray<BufferTexture, true> fHWBufferTextures; |
+ int fHWMaxUsedBufferTextureUnit; |
+ |
// EXT_raster_multisample. |
TriState fHWRasterMultisampleEnabled; |
int fHWNumRasterSamples; |