diff options
author | Android Chromium Automerger <chromium-automerger@android> | 2014-11-06 04:27:54 +0000 |
---|---|---|
committer | Android Chromium Automerger <chromium-automerger@android> | 2014-11-06 04:27:54 +0000 |
commit | b7abfbcba2b34c239ec27a469fc0098fe96f57cc (patch) | |
tree | f9534c36e04abd374ff41973eedaee8e2dbe21ee /src/gpu/GrTest.cpp | |
parent | e49c2b93f09c396df8922d7f68433f0f98904aef (diff) | |
parent | 334355742137cc238887d4f85856e6c4d9ec8aa8 (diff) | |
download | skia-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.cpp | 135 |
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; +} |