aboutsummaryrefslogtreecommitdiff
path: root/src/gpu/GrTest.cpp
diff options
context:
space:
mode:
authorAndroid Chromium Automerger <chromium-automerger@android>2014-11-06 04:27:54 +0000
committerAndroid Chromium Automerger <chromium-automerger@android>2014-11-06 04:27:54 +0000
commitb7abfbcba2b34c239ec27a469fc0098fe96f57cc (patch)
treef9534c36e04abd374ff41973eedaee8e2dbe21ee /src/gpu/GrTest.cpp
parente49c2b93f09c396df8922d7f68433f0f98904aef (diff)
parent334355742137cc238887d4f85856e6c4d9ec8aa8 (diff)
downloadskia-b7abfbcba2b34c239ec27a469fc0098fe96f57cc.tar.gz
Merge third_party/skia from https://chromium.googlesource.com/skia.git at 334355742137cc238887d4f85856e6c4d9ec8aa8
This commit was generated by merge_from_chromium.py. Change-Id: I46261bbd5519fbbf5e509f2a85ca5581e7164ad3
Diffstat (limited to 'src/gpu/GrTest.cpp')
-rw-r--r--src/gpu/GrTest.cpp135
1 files changed, 135 insertions, 0 deletions
diff --git a/src/gpu/GrTest.cpp b/src/gpu/GrTest.cpp
index 6013b1636..efb37ca88 100644
--- a/src/gpu/GrTest.cpp
+++ b/src/gpu/GrTest.cpp
@@ -40,3 +40,138 @@ void GrContext::setMaxTextureSizeOverride(int maxTextureSizeOverride) {
void GrContext::purgeAllUnlockedResources() {
fResourceCache->purgeAllUnlocked();
}
+
+///////////////////////////////////////////////////////////////////////////////
+// Code for the mock context. It's built on a mock GrGpu class that does nothing.
+////
+
+#include "GrBufferAllocPool.h"
+#include "GrInOrderDrawBuffer.h"
+#include "GrGpu.h"
+
+class MockGpu : public GrGpu {
+public:
+ MockGpu(GrContext* context) : INHERITED(context) { fCaps.reset(SkNEW(GrDrawTargetCaps)); }
+ virtual ~MockGpu() { }
+ virtual bool canWriteTexturePixels(const GrTexture*,
+ GrPixelConfig srcConfig) const SK_OVERRIDE {
+ return true;
+ }
+
+ virtual bool readPixelsWillPayForYFlip(GrRenderTarget* renderTarget,
+ int left, int top,
+ int width, int height,
+ GrPixelConfig config,
+ size_t rowBytes) const SK_OVERRIDE { return false; }
+ virtual void buildProgramDesc(const GrOptDrawState&,
+ const GrProgramDesc::DescInfo&,
+ GrGpu::DrawType,
+ const GrDeviceCoordTexture* dstCopy,
+ GrProgramDesc* desc) SK_OVERRIDE { }
+
+ virtual void discard(GrRenderTarget*) SK_OVERRIDE { }
+
+private:
+ virtual void onResetContext(uint32_t resetBits) { };
+ virtual GrTexture* onCreateTexture(const GrSurfaceDesc& desc,
+ const void* srcData,
+ size_t rowBytes) SK_OVERRIDE {
+ return NULL;
+ }
+
+ virtual GrTexture* onCreateCompressedTexture(const GrSurfaceDesc& desc,
+ const void* srcData) SK_OVERRIDE {
+ return NULL;
+ }
+
+ virtual GrTexture* onWrapBackendTexture(const GrBackendTextureDesc&) SK_OVERRIDE {
+ return NULL;
+ }
+
+ virtual GrRenderTarget* onWrapBackendRenderTarget(
+ const GrBackendRenderTargetDesc&) SK_OVERRIDE {
+ return NULL;
+ }
+
+ virtual GrVertexBuffer* onCreateVertexBuffer(size_t size, bool dynamic) SK_OVERRIDE {
+ return NULL;
+ }
+
+ virtual GrIndexBuffer* onCreateIndexBuffer(size_t size, bool dynamic) SK_OVERRIDE {
+ return NULL;
+ }
+
+ virtual void onGpuClear(GrRenderTarget*, const SkIRect* rect, GrColor color,
+ bool canIgnoreRect) SK_OVERRIDE { }
+
+ virtual void onClearStencilClip(GrRenderTarget*,
+ const SkIRect& rect,
+ bool insideClip) SK_OVERRIDE { }
+
+ virtual void onGpuDraw(const DrawInfo&) SK_OVERRIDE { }
+ virtual bool onReadPixels(GrRenderTarget* target,
+ int left, int top, int width, int height,
+ GrPixelConfig,
+ void* buffer,
+ size_t rowBytes) SK_OVERRIDE {
+ return false;
+ }
+
+ virtual bool onWriteTexturePixels(GrTexture* texture,
+ int left, int top, int width, int height,
+ GrPixelConfig config, const void* buffer,
+ size_t rowBytes) SK_OVERRIDE {
+ return false;
+ }
+
+ virtual void onResolveRenderTarget(GrRenderTarget* target) SK_OVERRIDE {
+ return;
+ }
+
+ virtual bool createStencilBufferForRenderTarget(GrRenderTarget*, int width,
+ int height) SK_OVERRIDE {
+ return false;
+ }
+
+ virtual bool attachStencilBufferToRenderTarget(GrStencilBuffer*, GrRenderTarget*) SK_OVERRIDE {
+ return false;
+ }
+
+ virtual bool flushGraphicsState(DrawType,
+ const GrClipMaskManager::ScissorState&,
+ const GrDeviceCoordTexture* dstCopy) SK_OVERRIDE {
+ return false;
+ }
+
+ virtual void clearStencil(GrRenderTarget* target) SK_OVERRIDE { }
+
+ virtual void didAddGpuTraceMarker() SK_OVERRIDE { }
+ virtual void didRemoveGpuTraceMarker() SK_OVERRIDE { }
+
+ typedef GrGpu INHERITED;
+};
+
+GrContext* GrContext::CreateMockContext() {
+ GrContext* context = SkNEW_ARGS(GrContext, (Options()));
+
+ context->initMockContext();
+ return context;
+}
+
+void GrContext::initMockContext() {
+ SkASSERT(NULL == fGpu);
+ fGpu = SkNEW_ARGS(MockGpu, (this));
+ SkASSERT(fGpu);
+ this->initCommon();
+
+ // We delete these because we want to test the cache starting with zero resources. Also, none of
+ // these objects are required for any of tests that use this context. TODO: make stop allocating
+ // resources in the buffer pools.
+ SkDELETE(fDrawBuffer);
+ SkDELETE(fDrawBufferVBAllocPool);
+ SkDELETE(fDrawBufferIBAllocPool);
+
+ fDrawBuffer = NULL;
+ fDrawBufferVBAllocPool = NULL;
+ fDrawBufferIBAllocPool = NULL;
+}