Rip out GrPlatformSurface (has been deprecated for some time, use GrPlatformTexture...
authorbsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 27 Jan 2012 00:47:24 +0000 (00:47 +0000)
committerbsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 27 Jan 2012 00:47:24 +0000 (00:47 +0000)
Review URL: http://codereview.appspot.com/5576052/

git-svn-id: http://skia.googlecode.com/svn/trunk@3094 2bbb7eff-a529-9590-31e7-b0007b416f81

include/gpu/GrContext.h
include/gpu/GrTypes.h
src/gpu/GrContext.cpp
src/gpu/GrGpu.cpp
src/gpu/GrGpu.h
src/gpu/GrGpuGL.cpp
src/gpu/GrGpuGL.h

index 0308b5d..d27b963 100644 (file)
@@ -295,26 +295,6 @@ public:
      GrRenderTarget* createPlatformRenderTarget(
                                     const GrPlatformRenderTargetDesc& desc);
 
-    /**
-     * This interface is depracted and will be removed in a future revision.
-     * Callers should use createPlatformTexture or createPlatformRenderTarget
-     * instead.
-     *
-     * Wraps an existing 3D API surface in a GrObject. desc.fFlags determines
-     * the type of object returned. If kIsTexture is set the returned object
-     * will be a GrTexture*. Otherwise, it will be a GrRenderTarget*. If both 
-     * are set the render target object is accessible by
-     * GrTexture::asRenderTarget().
-     *
-     * GL: if the object is a texture Gr may change its GL texture parameters
-     *     when it is drawn.
-     *
-     * @param   desc    description of the object to create.
-     * @return either a GrTexture* or GrRenderTarget* depending on desc. NULL
-     *         on failure.
-     */
-    GrResource* createPlatformSurface(const GrPlatformSurfaceDesc& desc);
-
     ///////////////////////////////////////////////////////////////////////////
     // Matrix state
 
index 0bcab7d..a19918b 100644 (file)
@@ -702,133 +702,6 @@ struct GrPlatformRenderTargetDesc {
     GrPlatform3DObject              fRenderTargetHandle;
 };
 
-///////////////////////////////////////////////////////////////////////////////
-// DEPRECATED. createPlatformSurface is replaced by createPlatformTexture
-// and createPlatformRenderTarget. These enums and structs will be removed.
-
-enum GrPlatformSurfaceType {
-    /**
-     * Specifies that the object being created is a render target.
-     */
-    kRenderTarget_GrPlatformSurfaceType,
-    /**
-     * Specifies that the object being created is a texture.
-     */
-    kTexture_GrPlatformSurfaceType,
-    /**
-     * Specifies that the object being created is a texture and a render
-     * target.
-     */
-    kTextureRenderTarget_GrPlatformSurfaceType,
-};
-
-enum GrPlatformRenderTargetFlags {
-    kNone_GrPlatformRenderTargetFlagBit             = 0x0,
-
-    /**
-     * Gives permission to Gr to perform the downsample-resolve of a
-     * multisampled render target. If this is not set then read pixel
-     * operations may fail. If the object is both a texture and render target
-     * then this *must* be set. Otherwise, if the client wants do its own
-     * resolves it must create separate GrRenderTarget and GrTexture objects
-     * and insert appropriate flushes and resolves betweeen data hazards.
-     * GrRenderTarget has a flagForResolve()
-     */
-    kGrCanResolve_GrPlatformRenderTargetFlagBit     = 0x2,
-};
-
-GR_MAKE_BITFIELD_OPS(GrPlatformRenderTargetFlags)
-
-struct GrPlatformSurfaceDesc {
-    GrPlatformSurfaceType           fSurfaceType;   // type of surface to create
-    /**
-     * Flags for kRenderTarget and kTextureRenderTarget surface types
-     */
-    GrPlatformRenderTargetFlags     fRenderTargetFlags;
-
-    int                             fWidth;         // width in pixels
-    int                             fHeight;        // height in pixels
-    GrPixelConfig                   fConfig;        // color format
-    /**
-     * Number of per sample stencil buffer. Only relevant if kIsRenderTarget is
-     * set in fFlags.
-     */
-    int                             fStencilBits;
-
-    /**
-     * Number of samples per-pixel. Only relevant if kIsRenderTarget is set in
-     * fFlags.
-     */
-    int                             fSampleCnt;
-
-    /**
-     * Texture object in 3D API. Only relevant if fSurfaceType is kTexture or
-     * kTextureRenderTarget.
-     * GL: this is a texture object (glGenTextures)
-     */
-    GrPlatform3DObject              fPlatformTexture;
-    /**
-     * Render target object in 3D API. Only relevant if fSurfaceType is
-     * kRenderTarget or kTextureRenderTarget
-     * GL: this is a FBO object (glGenFramebuffers)
-     */
-    GrPlatform3DObject              fPlatformRenderTarget;
-    /**
-     * 3D API object used as destination of resolve. Only relevant if
-     * fSurfaceType is kRenderTarget or kTextureRenderTarget and
-     * kGrCanResolve is set in fRenderTargetFlags.
-     * fFlags.
-     * GL: this is a FBO object (glGenFramebuffers)
-     */
-    GrPlatform3DObject              fPlatformResolveDestination;
-
-    void reset() { memset(this, 0, sizeof(GrPlatformSurfaceDesc)); }
-};
-
-/**
- * Example of how to wrap render-to-texture-with-MSAA GL objects with a GrPlatformSurace
- *
- * GLint colorBufferID;
- * glGenRenderbuffers(1, &colorID);
- * glBindRenderbuffer(GL_RENDERBUFFER, colorBufferID);
- * glRenderbufferStorageMultisample(GL_RENDERBUFFER, S, GL_RGBA, W, H);
- *
- * GLint stencilBufferID;
- * glGenRenderBuffers(1, &stencilBufferID);
- * glBindRenderbuffer(GL_RENDERBUFFER, stencilBufferID);
- * glRenderbufferStorageMultisample(GL_RENDERBUFFER, S, GL_STENCIL_INDEX8, W, H);
- *
- * GLint drawFBOID;
- * glGenFramebuffers(1, &drawFBOID);
- * glBindFramebuffer(GL_FRAMEBUFFER, drawFBOID);
- * glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, colorBufferID);
- * glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, stencilBufferID);
- *
- * GLint textureID;
- * glGenTextures(1, &textureID);
- * glBindTexture(GL_TEXTURE_2D, textureID);
- * glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, W, H, ...);
- *
- * GLint readFBOID;
- * glGenFramebuffers(1, &readFBOID);
- * glBindFramebuffer(GL_FRAMEBUFFER, readFBOID);
- * glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, textureID, 0);
- *
- * GrPlatformSurfaceDesc renderTargetTextureDesc;
- * renderTargetTextureDesc.fSurfaceType       = kTextureRenderTarget_GrPlatformSurfaceType;
- * renderTargetTextureDesc.fRenderTargetFlags = kGrCanResolve_GrPlatformRenderTargetFlagBit;
- * renderTargetTextureDesc.fWidth = W;
- * renderTargetTextureDesc.fHeight = H;
- * renderTargetTextureDesc.fConfig = kSkia8888_PM_GrPixelConfig
- * renderTargetTextureDesc.fStencilBits = 8;
- * renderTargetTextureDesc.fSampleCnt = S;
- * renderTargetTextureDesc.fPlatformTexture = textureID;
- * renderTargetTextureDesc.fPlatformRenderTarget = drawFBOID;
- * renderTargetTextureDesc.fPlatformResolveDestination = readFBOID;
- *
- * GrTexture* texture = static_cast<GrTexture*>(grContext->createPlatrformSurface(renderTargetTextureDesc));
- */
-
 
 ///////////////////////////////////////////////////////////////////////////////
 
index 754063d..2132ed6 100644 (file)
@@ -541,24 +541,6 @@ GrRenderTarget* GrContext::createPlatformRenderTarget(const GrPlatformRenderTarg
     return fGpu->createPlatformRenderTarget(desc);
 }
 
-GrResource* GrContext::createPlatformSurface(const GrPlatformSurfaceDesc& desc) {
-    // validate flags here so that GrGpu subclasses don't have to check
-    if (kTexture_GrPlatformSurfaceType == desc.fSurfaceType &&
-        0 != desc.fRenderTargetFlags) {
-        return NULL;
-    }
-    if (desc.fSampleCnt &&
-        (kGrCanResolve_GrPlatformRenderTargetFlagBit & desc.fRenderTargetFlags)) {
-        return NULL;
-    }
-    if (kTextureRenderTarget_GrPlatformSurfaceType == desc.fSurfaceType &&
-        desc.fSampleCnt &&
-        !(kGrCanResolve_GrPlatformRenderTargetFlagBit & desc.fRenderTargetFlags)) {
-        return NULL;
-    }
-    return fGpu->createPlatformSurface(desc);
-}
-
 ///////////////////////////////////////////////////////////////////////////////
 
 bool GrContext::supportsIndex8PixelConfig(const GrSamplerState* sampler,
index 8a7d3e4..8ee98b7 100644 (file)
@@ -215,11 +215,6 @@ GrRenderTarget* GrGpu::createPlatformRenderTarget(const GrPlatformRenderTargetDe
     return this->onCreatePlatformRenderTarget(desc);
 }
 
-GrResource* GrGpu::createPlatformSurface(const GrPlatformSurfaceDesc& desc) {
-    this->handleDirtyContext();
-    return this->onCreatePlatformSurface(desc);
-}
-
 GrVertexBuffer* GrGpu::createVertexBuffer(uint32_t size, bool dynamic) {
     this->handleDirtyContext();
     return this->onCreateVertexBuffer(size, dynamic);
index 0836ec8..8c23daa 100644 (file)
@@ -132,11 +132,6 @@ public:
     GrRenderTarget* createPlatformRenderTarget(const GrPlatformRenderTargetDesc& desc);
 
     /**
-     * DEPRECATED. This will be removed.
-     */
-    GrResource* createPlatformSurface(const GrPlatformSurfaceDesc& desc);
-
-    /**
      * Creates a vertex buffer.
      *
      * @param size    size in bytes of the vertex buffer
@@ -401,7 +396,6 @@ protected:
                                        size_t rowBytes) = 0;
     virtual GrTexture* onCreatePlatformTexture(const GrPlatformTextureDesc& desc) = 0;
     virtual GrRenderTarget* onCreatePlatformRenderTarget(const GrPlatformRenderTargetDesc& desc) = 0;
-    virtual GrResource* onCreatePlatformSurface(const GrPlatformSurfaceDesc& desc) = 0;
     virtual GrVertexBuffer* onCreateVertexBuffer(uint32_t size,
                                                  bool dynamic) = 0;
     virtual GrIndexBuffer* onCreateIndexBuffer(uint32_t size,
index f1bc63d..83087f4 100644 (file)
@@ -643,79 +643,6 @@ GrRenderTarget* GrGpuGL::onCreatePlatformRenderTarget(const GrPlatformRenderTarg
     return tgt;
 }
 
-GrResource* GrGpuGL::onCreatePlatformSurface(const GrPlatformSurfaceDesc& desc) {
-
-    bool isTexture = kTexture_GrPlatformSurfaceType == desc.fSurfaceType ||
-                     kTextureRenderTarget_GrPlatformSurfaceType == desc.fSurfaceType;
-    bool isRenderTarget = kRenderTarget_GrPlatformSurfaceType == desc.fSurfaceType ||
-                          kTextureRenderTarget_GrPlatformSurfaceType == desc.fSurfaceType;
-
-    GrGLRenderTarget::Desc rtDesc;
-    SkAutoTUnref<GrGLStencilBuffer> sb;
-
-    if (isRenderTarget) {
-        rtDesc.fRTFBOID = desc.fPlatformRenderTarget;
-        rtDesc.fConfig = desc.fConfig;
-        if (desc.fSampleCnt) {
-            if (kGrCanResolve_GrPlatformRenderTargetFlagBit  & desc.fRenderTargetFlags) {
-                rtDesc.fTexFBOID = desc.fPlatformResolveDestination;
-            } else {
-                GrAssert(!isTexture); // this should have been filtered by GrContext
-                rtDesc.fTexFBOID = GrGLRenderTarget::kUnresolvableFBOID;
-            }
-        } else {
-            rtDesc.fTexFBOID = desc.fPlatformRenderTarget;
-        }
-        // we don't know what the RB ids are without glGets and we don't care
-        // since we aren't responsible for deleting them.
-        rtDesc.fMSColorRenderbufferID = 0;
-        rtDesc.fSampleCnt = desc.fSampleCnt;
-        if (desc.fStencilBits) {
-            GrGLStencilBuffer::Format format;
-            format.fInternalFormat = GrGLStencilBuffer::kUnknownInternalFormat;
-            format.fPacked = false;
-            format.fStencilBits = desc.fStencilBits;
-            format.fTotalBits = desc.fStencilBits;
-            sb.reset(new GrGLStencilBuffer(this, 0, desc.fWidth, desc.fHeight,
-                                           rtDesc.fSampleCnt, format));
-        }
-        rtDesc.fOwnIDs = false;
-    }
-
-    if (isTexture) {
-        GrGLTexture::Desc texDesc;
-        if (!this->configToGLFormats(desc.fConfig, false, NULL, NULL, NULL)) {
-            return NULL;
-        }
-        texDesc.fWidth  = desc.fWidth;
-        texDesc.fHeight = desc.fHeight;
-
-        texDesc.fConfig             = desc.fConfig;
-        texDesc.fOrientation        = GrGLTexture::kBottomUp_Orientation;
-        texDesc.fTextureID          = desc.fPlatformTexture;
-        texDesc.fOwnsID             = false;
-        
-        if (isRenderTarget) {
-            GrTexture* tex = new GrGLTexture(this, texDesc, rtDesc);
-            tex->asRenderTarget()->setStencilBuffer(sb.get());
-            return tex;
-        } else {
-            return new GrGLTexture(this, texDesc);
-        }
-    } else {
-        GrGLIRect viewport;
-        viewport.fLeft   = 0;
-        viewport.fBottom = 0;
-        viewport.fWidth  = desc.fWidth;
-        viewport.fHeight = desc.fHeight;
-
-        GrGLRenderTarget* rt =  new GrGLRenderTarget(this, rtDesc, viewport);
-        rt->setStencilBuffer(sb.get());
-        return rt;
-    }
-}
-
-
 ////////////////////////////////////////////////////////////////////////////////
 
 void GrGpuGL::onWriteTexturePixels(GrTexture* texture,
index 36fead1..12b3771 100644 (file)
@@ -173,7 +173,6 @@ protected:
                                                  bool dynamic);
     virtual GrIndexBuffer* onCreateIndexBuffer(uint32_t size,
                                                bool dynamic);
-    virtual GrResource* onCreatePlatformSurface(const GrPlatformSurfaceDesc& desc);
     virtual GrTexture* onCreatePlatformTexture(const GrPlatformTextureDesc& desc) SK_OVERRIDE;
     virtual GrRenderTarget* onCreatePlatformRenderTarget(const GrPlatformRenderTargetDesc& desc) SK_OVERRIDE;
     virtual bool createStencilBufferForRenderTarget(GrRenderTarget* rt,