gfx/skia/trunk/src/gpu/gl/GrGLRenderTarget.cpp

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 /*
     2  * Copyright 2011 Google Inc.
     3  *
     4  * Use of this source code is governed by a BSD-style license that can be
     5  * found in the LICENSE file.
     6  */
     8 #include "GrGLRenderTarget.h"
    10 #include "GrGpuGL.h"
    12 #define GPUGL static_cast<GrGpuGL*>(getGpu())
    14 #define GL_CALL(X) GR_GL_CALL(GPUGL->glInterface(), X)
    16 void GrGLRenderTarget::init(const Desc& desc,
    17                             const GrGLIRect& viewport,
    18                             GrGLTexID* texID) {
    19     fRTFBOID                = desc.fRTFBOID;
    20     fTexFBOID               = desc.fTexFBOID;
    21     fMSColorRenderbufferID  = desc.fMSColorRenderbufferID;
    22     fViewport               = viewport;
    23     fTexIDObj.reset(SkSafeRef(texID));
    24 }
    26 namespace {
    27 GrTextureDesc MakeDesc(GrTextureFlags flags,
    28                        int width, int height,
    29                        GrPixelConfig config, int sampleCnt,
    30                        GrSurfaceOrigin origin) {
    31     GrTextureDesc temp;
    32     temp.fFlags = flags;
    33     temp.fWidth = width;
    34     temp.fHeight = height;
    35     temp.fConfig = config;
    36     temp.fSampleCnt = sampleCnt;
    37     temp.fOrigin = origin;
    38     return temp;
    39 }
    41 };
    43 GrGLRenderTarget::GrGLRenderTarget(GrGpuGL* gpu,
    44                                    const Desc& desc,
    45                                    const GrGLIRect& viewport,
    46                                    GrGLTexID* texID,
    47                                    GrGLTexture* texture)
    48     : INHERITED(gpu,
    49                 desc.fIsWrapped,
    50                 texture,
    51                 MakeDesc(kNone_GrTextureFlags,
    52                          viewport.fWidth, viewport.fHeight,
    53                          desc.fConfig, desc.fSampleCnt,
    54                          desc.fOrigin)) {
    55     SkASSERT(NULL != texID);
    56     SkASSERT(NULL != texture);
    57     // FBO 0 can't also be a texture, right?
    58     SkASSERT(0 != desc.fRTFBOID);
    59     SkASSERT(0 != desc.fTexFBOID);
    61     // we assume this is true, TODO: get rid of viewport as a param.
    62     SkASSERT(viewport.fWidth == texture->width());
    63     SkASSERT(viewport.fHeight == texture->height());
    65     this->init(desc, viewport, texID);
    66 }
    68 GrGLRenderTarget::GrGLRenderTarget(GrGpuGL* gpu,
    69                                    const Desc& desc,
    70                                    const GrGLIRect& viewport)
    71     : INHERITED(gpu,
    72                 desc.fIsWrapped,
    73                 NULL,
    74                 MakeDesc(kNone_GrTextureFlags,
    75                          viewport.fWidth, viewport.fHeight,
    76                          desc.fConfig, desc.fSampleCnt,
    77                          desc.fOrigin)) {
    78     this->init(desc, viewport, NULL);
    79 }
    81 void GrGLRenderTarget::onRelease() {
    82     GPUGL->notifyRenderTargetDelete(this);
    83     if (!this->isWrapped()) {
    84         if (fTexFBOID) {
    85             GL_CALL(DeleteFramebuffers(1, &fTexFBOID));
    86         }
    87         if (fRTFBOID && fRTFBOID != fTexFBOID) {
    88             GL_CALL(DeleteFramebuffers(1, &fRTFBOID));
    89         }
    90         if (fMSColorRenderbufferID) {
    91             GL_CALL(DeleteRenderbuffers(1, &fMSColorRenderbufferID));
    92         }
    93     }
    94     fRTFBOID                = 0;
    95     fTexFBOID               = 0;
    96     fMSColorRenderbufferID  = 0;
    97     fTexIDObj.reset(NULL);
    98     INHERITED::onRelease();
    99 }
   101 void GrGLRenderTarget::onAbandon() {
   102     fRTFBOID                = 0;
   103     fTexFBOID               = 0;
   104     fMSColorRenderbufferID  = 0;
   105     if (NULL != fTexIDObj.get()) {
   106         fTexIDObj->abandon();
   107         fTexIDObj.reset(NULL);
   108     }
   109     INHERITED::onAbandon();
   110 }

mercurial