您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GrPrintf函数代码示例

51自学网 2021-06-01 21:19:23
  C++
这篇教程C++ GrPrintf函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中GrPrintf函数的典型用法代码示例。如果您正苦于以下问题:C++ GrPrintf函数的具体用法?C++ GrPrintf怎么用?C++ GrPrintf使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了GrPrintf函数的27个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: switch

void GrDrawTarget::setBlendFunc(GrBlendCoeff srcCoeff,                                GrBlendCoeff dstCoeff) {    fCurrDrawState.fSrcBlend = srcCoeff;    fCurrDrawState.fDstBlend = dstCoeff;#if GR_DEBUG    switch (dstCoeff) {    case kDC_BlendCoeff:    case kIDC_BlendCoeff:    case kDA_BlendCoeff:    case kIDA_BlendCoeff:        GrPrintf("Unexpected dst blend coeff. Won't work correctly with"                 "coverage stages./n");        break;    default:        break;    }    switch (srcCoeff) {    case kSC_BlendCoeff:    case kISC_BlendCoeff:    case kSA_BlendCoeff:    case kISA_BlendCoeff:        GrPrintf("Unexpected src blend coeff. Won't work correctly with"                 "coverage stages./n");        break;    default:        break;    }#endif}
开发者ID:Beifeng,项目名称:WTL-DUI,代码行数:29,


示例2: GR_GL

GrGLuint GrGLProgram::CompileShader(GrGLenum type,                                      int stringCnt,                                      const char** strings,                                      int* stringLengths) {    GrGLuint shader = GR_GL(CreateShader(type));    if (0 == shader) {        return 0;    }    GrGLint compiled = GR_GL_INIT_ZERO;    GR_GL(ShaderSource(shader, stringCnt, strings, stringLengths));    GR_GL(CompileShader(shader));    GR_GL(GetShaderiv(shader, GR_GL_COMPILE_STATUS, &compiled));    if (!compiled) {        GrGLint infoLen = GR_GL_INIT_ZERO;        GR_GL(GetShaderiv(shader, GR_GL_INFO_LOG_LENGTH, &infoLen));        GrAutoMalloc log(sizeof(char)*(infoLen+1)); // outside if for debugger        if (infoLen > 0) {            GR_GL(GetShaderInfoLog(shader, infoLen+1, NULL, (char*)log.get()));            for (int i = 0; i < stringCnt; ++i) {                if (NULL == stringLengths || stringLengths[i] < 0) {                    GrPrintf(strings[i]);                } else {                    GrPrintf("%.*s", stringLengths[i], strings[i]);                }            }            GrPrintf("/n%s", log.get());        }        GrAssert(!"Shader compilation failed!");        GR_GL(DeleteShader(shader));        return 0;    }    return shader;}
开发者ID:xuchiheng,项目名称:ucore-arm-skia,代码行数:35,


示例3: GrPrintf

void GrGLCaps::print() const {    for (int i = 0; i < fStencilFormats.count(); ++i) {        GrPrintf("Stencil Format %d, stencil bits: %02d, total bits: %02d/n",                 i,                 fStencilFormats[i].fStencilBits,                 fStencilFormats[i].fTotalBits);    }    GR_STATIC_ASSERT(0 == kNone_MSFBOType);    GR_STATIC_ASSERT(1 == kDesktopARB_MSFBOType);    GR_STATIC_ASSERT(2 == kDesktopEXT_MSFBOType);    GR_STATIC_ASSERT(3 == kAppleES_MSFBOType);    static const char* gMSFBOExtStr[] = {        "None",        "ARB",        "EXT",        "Apple",    };    GrPrintf("MSAA Type: %s/n", gMSFBOExtStr[fMSFBOType]);    GrPrintf("Max FS Uniform Vectors: %d/n", fMaxFragmentUniformVectors);    GrPrintf("Support RGBA8 Render Buffer: %s/n",             (fRGBA8RenderbufferSupport ? "YES": "NO"));    GrPrintf("BGRA is an internal format: %s/n",             (fBGRAIsInternalFormat ? "YES": "NO"));    GrPrintf("Support texture swizzle: %s/n",             (fTextureSwizzleSupport ? "YES": "NO"));    GrPrintf("Unpack Row length support: %s/n",             (fUnpackRowLengthSupport ? "YES": "NO"));    GrPrintf("Unpack Flip Y support: %s/n",             (fUnpackFlipYSupport ? "YES": "NO"));    GrPrintf("Pack Row length support: %s/n",             (fPackRowLengthSupport ? "YES": "NO"));    GrPrintf("Pack Flip Y support: %s/n",             (fPackFlipYSupport ? "YES": "NO"));}
开发者ID:ghub,项目名称:NVprSDK,代码行数:35,


示例4: attach_shader

// Compiles a GL shader and attaches it to a program. Returns the shader ID if// successful, or 0 if not.static GrGLuint attach_shader(const GrGLContext& glCtx,                              GrGLuint programId,                              GrGLenum type,                              const SkString& shaderSrc) {    const GrGLInterface* gli = glCtx.interface();    GrGLuint shaderId;    GR_GL_CALL_RET(gli, shaderId, CreateShader(type));    if (0 == shaderId) {        return 0;    }    const GrGLchar* sourceStr = shaderSrc.c_str();    GrGLint sourceLength = static_cast<GrGLint>(shaderSrc.size());    GR_GL_CALL(gli, ShaderSource(shaderId, 1, &sourceStr, &sourceLength));    GR_GL_CALL(gli, CompileShader(shaderId));    // Calling GetShaderiv in Chromium is quite expensive. Assume success in release builds.    bool checkCompiled = !glCtx.isChromium();#ifdef SK_DEBUG    checkCompiled = true;#endif    if (checkCompiled) {        GrGLint compiled = GR_GL_INIT_ZERO;        GR_GL_CALL(gli, GetShaderiv(shaderId, GR_GL_COMPILE_STATUS, &compiled));        if (!compiled) {            GrGLint infoLen = GR_GL_INIT_ZERO;            GR_GL_CALL(gli, GetShaderiv(shaderId, GR_GL_INFO_LOG_LENGTH, &infoLen));            SkAutoMalloc log(sizeof(char)*(infoLen+1)); // outside if for debugger            if (infoLen > 0) {                // retrieve length even though we don't need it to workaround bug in Chromium cmd                // buffer param validation.                GrGLsizei length = GR_GL_INIT_ZERO;                GR_GL_CALL(gli, GetShaderInfoLog(shaderId, infoLen+1,                                                 &length, (char*)log.get()));                GrPrintf(shaderSrc.c_str());                GrPrintf("/n%s", log.get());            }            SkDEBUGFAIL("Shader compilation failed!");            GR_GL_CALL(gli, DeleteShader(shaderId));            return 0;        }    }    TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("skia.gpu"), "skia_gpu::GLShader",                         TRACE_EVENT_SCOPE_THREAD, "shader", TRACE_STR_COPY(shaderSrc.c_str()));    if (c_PrintShaders) {        GrPrintf(shaderSrc.c_str());        GrPrintf("/n");    }    // Attach the shader, but defer deletion until after we have linked the program.    // This works around a bug in the Android emulator's GLES2 wrapper which    // will immediately delete the shader object and free its memory even though it's    // attached to a program, which then causes glLinkProgram to fail.    GR_GL_CALL(gli, AttachShader(programId, shaderId));    return shaderId;}
开发者ID:xuwakao,项目名称:skia,代码行数:62,


示例5: attach_shader

// Compiles a GL shader, attaches it to a program, and releases the shader's reference.// (That way there's no need to hang on to the GL shader id and delete it later.)static bool attach_shader(const GrGLContext& glCtx,                          GrGLuint programId,                          GrGLenum type,                          const SkString& shaderSrc) {    const GrGLInterface* gli = glCtx.interface();    GrGLuint shaderId;    GR_GL_CALL_RET(gli, shaderId, CreateShader(type));    if (0 == shaderId) {        return false;    }    const GrGLchar* sourceStr = shaderSrc.c_str();    GrGLint sourceLength = static_cast<GrGLint>(shaderSrc.size());    GR_GL_CALL(gli, ShaderSource(shaderId, 1, &sourceStr, &sourceLength));    GR_GL_CALL(gli, CompileShader(shaderId));    // Calling GetShaderiv in Chromium is quite expensive. Assume success in release builds.    bool checkCompiled = !glCtx.info().isChromium();#ifdef SK_DEBUG    checkCompiled = true;#endif    if (checkCompiled) {        GrGLint compiled = GR_GL_INIT_ZERO;        GR_GL_CALL(gli, GetShaderiv(shaderId, GR_GL_COMPILE_STATUS, &compiled));        if (!compiled) {            GrGLint infoLen = GR_GL_INIT_ZERO;            GR_GL_CALL(gli, GetShaderiv(shaderId, GR_GL_INFO_LOG_LENGTH, &infoLen));            SkAutoMalloc log(sizeof(char)*(infoLen+1)); // outside if for debugger            if (infoLen > 0) {                // retrieve length even though we don't need it to workaround bug in Chromium cmd                // buffer param validation.                GrGLsizei length = GR_GL_INIT_ZERO;                GR_GL_CALL(gli, GetShaderInfoLog(shaderId, infoLen+1,                                                 &length, (char*)log.get()));                GrPrintf(shaderSrc.c_str());                GrPrintf("/n%s", log.get());            }            SkDEBUGFAIL("Shader compilation failed!");            GR_GL_CALL(gli, DeleteShader(shaderId));            return false;        }    }    if (c_PrintShaders) {        GrPrintf(shaderSrc.c_str());        GrPrintf("/n");    }    GR_GL_CALL(gli, AttachShader(programId, shaderId));    GR_GL_CALL(gli, DeleteShader(shaderId));    return true;}
开发者ID:rzr,项目名称:Tizen_Crosswalk,代码行数:55,


示例6: GrGLCheckErr

void GrGLCheckErr(const char* location, const char* call) {    uint32_t err =  GrGLGetGLInterface()->fGetError();    if (GR_GL_NO_ERROR != err) {        GrPrintf("---- glGetError %x", err);        if (NULL != location) {            GrPrintf(" at/n/t%s", location);        }        if (NULL != call) {            GrPrintf("/n/t/t%s", call);        }        GrPrintf("/n");    }}
开发者ID:ACSOP,项目名称:android_external_skia,代码行数:13,


示例7: aa_rect_layout

void GrAARectRenderer::fillAARect(GrGpu* gpu,                                  GrDrawTarget* target,                                  const GrRect& devRect,                                  bool useVertexCoverage) {    GrVertexLayout layout = aa_rect_layout(useVertexCoverage);    size_t vsize = GrDrawState::VertexSize(layout);    GrDrawTarget::AutoReleaseGeometry geo(target, layout, 8, 0);    if (!geo.succeeded()) {        GrPrintf("Failed to get space for vertices!/n");        return;    }    GrIndexBuffer* indexBuffer = this->aaFillRectIndexBuffer(gpu);    if (NULL == indexBuffer) {        GrPrintf("Failed to create index buffer!/n");        return;    }    intptr_t verts = reinterpret_cast<intptr_t>(geo.vertices());    GrPoint* fan0Pos = reinterpret_cast<GrPoint*>(verts);    GrPoint* fan1Pos = reinterpret_cast<GrPoint*>(verts + 4 * vsize);    set_inset_fan(fan0Pos, vsize, devRect, -SK_ScalarHalf, -SK_ScalarHalf);    set_inset_fan(fan1Pos, vsize, devRect,  SK_ScalarHalf,  SK_ScalarHalf);    verts += sizeof(GrPoint);    for (int i = 0; i < 4; ++i) {        *reinterpret_cast<GrColor*>(verts + i * vsize) = 0;    }    GrColor innerColor;    if (useVertexCoverage) {        innerColor = 0xffffffff;    } else {        innerColor = target->getDrawState().getColor();    }    verts += 4 * vsize;    for (int i = 0; i < 4; ++i) {        *reinterpret_cast<GrColor*>(verts + i * vsize) = innerColor;    }    target->setIndexSourceToBuffer(indexBuffer);    target->drawIndexedInstances(kTriangles_GrPrimitiveType, 1,                                 kVertsPerAAFillRect,                                 kIndicesPerAAFillRect);}
开发者ID:DanialLiu,项目名称:SkiaWin32Port,代码行数:50,


示例8: GrGLCheckErr

void GrGLCheckErr(const GrGLInterface* gl,                  const char* location,                  const char* call) {    uint32_t err = GR_GL_GET_ERROR(gl);    if (GR_GL_NO_ERROR != err) {        GrPrintf("---- glGetError 0x%x(%s)", err, get_error_string(err));        if (NULL != location) {            GrPrintf(" at/n/t%s", location);        }        if (NULL != call) {            GrPrintf("/n/t/t%s", call);        }        GrPrintf("/n");    }}
开发者ID:JCROM-FxOS,项目名称:b2jc_gecko,代码行数:15,


示例9: GrLockCachedBitmapTexture

GrTexture* GrLockCachedBitmapTexture(GrContext* ctx,                                     const SkBitmap& bitmap,                                     const GrTextureParams* params) {    GrTexture* result = NULL;    if (!bitmap.isVolatile()) {        // If the bitmap isn't changing try to find a cached copy first        uint64_t key = bitmap.getGenerationID();        key |= ((uint64_t) bitmap.pixelRefOffset()) << 32;        GrTextureDesc desc;        desc.fWidth = bitmap.width();        desc.fHeight = bitmap.height();        desc.fConfig = SkBitmapConfig2GrPixelConfig(bitmap.config());        GrCacheData cacheData(key);        result = ctx->findAndLockTexture(desc, cacheData, params);        if (NULL == result) {            result = sk_gr_create_bitmap_texture(ctx, key, params, bitmap);        }    } else {        result = sk_gr_create_bitmap_texture(ctx, GrCacheData::kScratch_CacheID, params, bitmap);    }    if (NULL == result) {        GrPrintf("---- failed to create texture for cache [%d %d]/n",                    bitmap.width(), bitmap.height());    }    return result;}
开发者ID:gw280,项目名称:skia,代码行数:30,


示例10: GrGLDefaultInterface

GrGpu* GrGpu::Create(GrBackend backend, GrBackendContext backendContext, GrContext* context) {    const GrGLInterface* glInterface = NULL;    SkAutoTUnref<const GrGLInterface> glInterfaceUnref;    if (kOpenGL_GrBackend == backend) {        glInterface = reinterpret_cast<const GrGLInterface*>(backendContext);        if (NULL == glInterface) {            glInterface = GrGLDefaultInterface();            // By calling GrGLDefaultInterface we've taken a ref on the            // returned object. We only want to hold that ref until after            // the GrGpu is constructed and has taken ownership.            glInterfaceUnref.reset(glInterface);        }        if (NULL == glInterface) {#ifdef SK_DEBUG            GrPrintf("No GL interface provided!/n");#endif            return NULL;        }        GrGLContext ctx(glInterface);        if (ctx.isInitialized()) {            return SkNEW_ARGS(GrGpuGL, (ctx, context));        }    }    return NULL;}
开发者ID:venkatarajasekhar,项目名称:Qt,代码行数:27,


示例11: SkASSERT

bool GrGLShaderBuilder::finish() {    SkASSERT(0 == fOutput.fProgramID);    GL_CALL_RET(fOutput.fProgramID, CreateProgram());    if (!fOutput.fProgramID) {        return false;    }    SkTDArray<GrGLuint> shadersToDelete;    if (!this->compileAndAttachShaders(fOutput.fProgramID, &shadersToDelete)) {        GL_CALL(DeleteProgram(fOutput.fProgramID));        return false;    }    this->bindProgramLocations(fOutput.fProgramID);    if (fUniformManager->isUsingBindUniform()) {        fUniformManager->getUniformLocations(fOutput.fProgramID, fUniforms);    }    GL_CALL(LinkProgram(fOutput.fProgramID));    // Calling GetProgramiv is expensive in Chromium. Assume success in release builds.    bool checkLinked = !fGpu->ctxInfo().isChromium();#ifdef SK_DEBUG    checkLinked = true;#endif    if (checkLinked) {        GrGLint linked = GR_GL_INIT_ZERO;        GL_CALL(GetProgramiv(fOutput.fProgramID, GR_GL_LINK_STATUS, &linked));        if (!linked) {            GrGLint infoLen = GR_GL_INIT_ZERO;            GL_CALL(GetProgramiv(fOutput.fProgramID, GR_GL_INFO_LOG_LENGTH, &infoLen));            SkAutoMalloc log(sizeof(char)*(infoLen+1));  // outside if for debugger            if (infoLen > 0) {                // retrieve length even though we don't need it to workaround                // bug in chrome cmd buffer param validation.                GrGLsizei length = GR_GL_INIT_ZERO;                GL_CALL(GetProgramInfoLog(fOutput.fProgramID,                                          infoLen+1,                                          &length,                                          (char*)log.get()));                GrPrintf((char*)log.get());            }            SkDEBUGFAIL("Error linking program");            GL_CALL(DeleteProgram(fOutput.fProgramID));            fOutput.fProgramID = 0;            return false;        }    }    if (!fUniformManager->isUsingBindUniform()) {        fUniformManager->getUniformLocations(fOutput.fProgramID, fUniforms);    }    for (int i = 0; i < shadersToDelete.count(); ++i) {      GL_CALL(DeleteShader(shadersToDelete[i]));    }    return true;}
开发者ID:cnh,项目名称:skia,代码行数:60,


示例12: GrAssert

void GrResourceCache::addResource(const GrResourceKey& key,                                  GrResource* resource,                                  uint32_t ownershipFlags) {    GrAssert(NULL == resource->getCacheEntry());    // we don't expect to create new resources during a purge. In theory    // this could cause purgeAsNeeded() into an infinite loop (e.g.    // each resource destroyed creates and locks 2 resources and    // unlocks 1 thereby causing a new purge).    GrAssert(!fPurging);    GrAutoResourceCacheValidate atcv(this);    GrResourceEntry* entry = SkNEW_ARGS(GrResourceEntry, (key, resource));    resource->setCacheEntry(entry);    this->attachToHead(entry);    fCache.insert(key, entry);#if GR_DUMP_TEXTURE_UPLOAD    GrPrintf("--- add resource to cache %p, count=%d bytes= %d %d/n",             entry, fEntryCount, resource->sizeInBytes(), fEntryBytes);#endif    if (ownershipFlags & kHide_OwnershipFlag) {        this->makeExclusive(entry);    }}
开发者ID:bunhere,项目名称:skia,代码行数:27,


示例13: GrLockAndRefCachedBitmapTexture

GrTexture* GrLockAndRefCachedBitmapTexture(GrContext* ctx,                                           const SkBitmap& bitmap,                                           const GrTextureParams* params) {    GrTexture* result = NULL;    bool cache = !bitmap.isVolatile();    if (cache) {        // If the bitmap isn't changing try to find a cached copy first.        GrCacheID cacheID;        generate_bitmap_cache_id(bitmap, &cacheID);        GrTextureDesc desc;        generate_bitmap_texture_desc(bitmap, &desc);        result = ctx->findAndRefTexture(desc, cacheID, params);    }    if (NULL == result) {        result = sk_gr_create_bitmap_texture(ctx, cache, params, bitmap);    }    if (NULL == result) {        GrPrintf("---- failed to create texture for cache [%d %d]/n",                    bitmap.width(), bitmap.height());    }    return result;}
开发者ID:ConradIrwin,项目名称:gecko-dev,代码行数:27,


示例14: set_vertex_attributes

void GrDrawTarget::onDrawRect(const SkRect& rect,                              const SkMatrix* matrix,                              const SkRect* localRect,                              const SkMatrix* localMatrix) {    GrDrawState::AutoViewMatrixRestore avmr;    if (NULL != matrix) {        avmr.set(this->drawState(), *matrix);    }    set_vertex_attributes(this->drawState(), NULL != localRect);    AutoReleaseGeometry geo(this, 4, 0);    if (!geo.succeeded()) {        GrPrintf("Failed to get space for vertices!/n");        return;    }    size_t vsize = this->drawState()->getVertexSize();    geo.positions()->setRectFan(rect.fLeft, rect.fTop, rect.fRight, rect.fBottom, vsize);    if (NULL != localRect) {        SkPoint* coords = GrTCast<SkPoint*>(GrTCast<intptr_t>(geo.vertices()) +                                            sizeof(SkPoint));        coords->setRectFan(localRect->fLeft, localRect->fTop,                           localRect->fRight, localRect->fBottom,                           vsize);        if (NULL != localMatrix) {            localMatrix->mapPointsWithStride(coords, vsize, 4);        }    }    SkRect bounds;    this->getDrawState().getViewMatrix().mapRect(&bounds, rect);    this->drawNonIndexed(kTriangleFan_GrPrimitiveType, 0, 4, &bounds);}
开发者ID:danielbak,项目名称:skia,代码行数:35,


示例15: are

void GrBitmapTextContext::flushGlyphs() {    if (NULL == fDrawTarget) {        return;    }    GrDrawState* drawState = fDrawTarget->drawState();    GrDrawState::AutoRestoreEffects are(drawState);    drawState->setFromPaint(fPaint, SkMatrix::I(), fContext->getRenderTarget());    if (fCurrVertex > 0) {        // setup our sampler state for our text texture/atlas        SkASSERT(SkIsAlign4(fCurrVertex));        SkASSERT(fCurrTexture);        GrTextureParams params(SkShader::kRepeat_TileMode, GrTextureParams::kNone_FilterMode);        // This effect could be stored with one of the cache objects (atlas?)        drawState->addCoverageEffect(                                GrCustomCoordsTextureEffect::Create(fCurrTexture, params),                                kGlyphCoordsAttributeIndex)->unref();        if (NULL != fStrike && kARGB_GrMaskFormat == fStrike->getMaskFormat()) {            drawState->setBlendFunc(fPaint.getSrcBlendCoeff(), fPaint.getDstBlendCoeff());            drawState->setColor(0xffffffff);        } else if (!GrPixelConfigIsAlphaOnly(fCurrTexture->config())) {            if (kOne_GrBlendCoeff != fPaint.getSrcBlendCoeff() ||                kISA_GrBlendCoeff != fPaint.getDstBlendCoeff() ||                fPaint.numColorStages()) {                GrPrintf("LCD Text will not draw correctly./n");            }            // We don't use the GrPaint's color in this case because it's been premultiplied by            // alpha. Instead we feed in a non-premultiplied color, and multiply its alpha by            // the mask texture color. The end result is that we get            //            mask*paintAlpha*paintColor + (1-mask*paintAlpha)*dstColor            int a = SkColorGetA(fSkPaint.getColor());            // paintAlpha            drawState->setColor(SkColorSetARGB(a, a, a, a));            // paintColor            drawState->setBlendConstant(skcolor_to_grcolor_nopremultiply(fSkPaint.getColor()));            drawState->setBlendFunc(kConstC_GrBlendCoeff, kISC_GrBlendCoeff);        } else {            // set back to normal in case we took LCD path previously.            drawState->setBlendFunc(fPaint.getSrcBlendCoeff(), fPaint.getDstBlendCoeff());            drawState->setColor(fPaint.getColor());        }        int nGlyphs = fCurrVertex / 4;        fDrawTarget->setIndexSourceToBuffer(fContext->getQuadIndexBuffer());        fDrawTarget->drawIndexedInstances(kTriangles_GrPrimitiveType,                                          nGlyphs,                                          4, 6, &fVertexBounds);        fDrawTarget->resetVertexSource();        fVertices = NULL;        fMaxVertices = 0;        fCurrVertex = 0;        fVertexBounds.setLargestInverted();        SkSafeSetNull(fCurrTexture);    }}
开发者ID:Tkkg1994,项目名称:Platfrom-kccat6,代码行数:59,


示例16: GrPrintf

bool GrDrawTarget::setupDstReadIfNecessary(GrDeviceCoordTexture* dstCopy, const SkRect* drawBounds) {    if (this->caps()->dstReadInShaderSupport() || !this->getDrawState().willEffectReadDstColor()) {        return true;    }    GrRenderTarget* rt = this->drawState()->getRenderTarget();    SkIRect copyRect;    const GrClipData* clip = this->getClip();    clip->getConservativeBounds(rt, &copyRect);    if (NULL != drawBounds) {        SkIRect drawIBounds;        drawBounds->roundOut(&drawIBounds);        if (!copyRect.intersect(drawIBounds)) {#ifdef SK_DEBUG            GrPrintf("Missed an early reject. Bailing on draw from setupDstReadIfNecessary./n");#endif            return false;        }    } else {#ifdef SK_DEBUG        //GrPrintf("No dev bounds when dst copy is made./n");#endif    }    // MSAA consideration: When there is support for reading MSAA samples in the shader we could    // have per-sample dst values by making the copy multisampled.    GrTextureDesc desc;    this->initCopySurfaceDstDesc(rt, &desc);    desc.fWidth = copyRect.width();    desc.fHeight = copyRect.height();    GrAutoScratchTexture ast(fContext, desc, GrContext::kApprox_ScratchTexMatch);    if (NULL == ast.texture()) {        GrPrintf("Failed to create temporary copy of destination texture./n");        return false;    }    SkIPoint dstPoint = {0, 0};    if (this->copySurface(ast.texture(), rt, copyRect, dstPoint)) {        dstCopy->setTexture(ast.texture());        dstCopy->setOffset(copyRect.fLeft, copyRect.fTop);        return true;    } else {        return false;    }}
开发者ID:danielbak,项目名称:skia,代码行数:46,


示例17: SkSafeUnref

GrAtlasMgr::~GrAtlasMgr() {    SkSafeUnref(fTexture);    SkDELETE_ARRAY(fPlotArray);    fGpu->unref();#if FONT_CACHE_STATS      GrPrintf("Num uploads: %d/n", g_UploadCount);#endif}
开发者ID:rgraebert,项目名称:skia,代码行数:9,


示例18: GrPrintf

void GrGLExtensions::print(const char* sep) const {    if (NULL == sep) {        sep = " ";    }    int cnt = fStrings->count();    for (int i = 0; i < cnt; ++i) {        GrPrintf("%s%s", (*fStrings)[i].c_str(), (i < cnt - 1) ? sep : "");    }}
开发者ID:venkatarajasekhar,项目名称:Qt,代码行数:9,


示例19: GrPrintf

GrAtlas::~GrAtlas() {    fAtlasMgr->freePlot(fPlot.fX, fPlot.fY);    delete fRects;#if GR_DEBUG    --gCounter;    GrPrintf("~GrAtlas %p [%d %d] %d/n", this, fPlot.fX, fPlot.fY, gCounter);#endif}
开发者ID:BBKeeper,项目名称:Skia,代码行数:10,


示例20: GrPrintf

GrFontCache::~GrFontCache() {    fCache.deleteAll();    for (int i = 0; i < kAtlasCount; ++i) {        delete fAtlasMgr[i];    }    fGpu->unref();#if FONT_CACHE_STATS      GrPrintf("Num purges: %d/n", g_PurgeCount);#endif}
开发者ID:Adenilson,项目名称:skia,代码行数:10,


示例21: while

/** * Destroying a resource may potentially trigger the unlock of additional * resources which in turn will trigger a nested purge. We block the nested * purge using the fPurging variable. However, the initial purge will keep * looping until either all resources in the cache are unlocked or we've met * the budget. There is an assertion in createAndLock to check against a * resource's destructor inserting new resources into the cache. If these * new resources were unlocked before purgeAsNeeded completed it could * potentially make purgeAsNeeded loop infinitely. */void GrResourceCache::purgeAsNeeded() {    if (!fPurging) {        fPurging = true;        bool withinBudget = false;        bool changed = false;        // The purging process is repeated several times since one pass        // may free up other resources        do {            EntryList::Iter iter;            changed = false;            // Note: the following code relies on the fact that the            // doubly linked list doesn't invalidate its data/pointers            // outside of the specific area where a deletion occurs (e.g.,            // in internalDetach)            GrResourceEntry* entry = iter.init(fList, EntryList::Iter::kTail_IterStart);            while (NULL != entry) {                GrAutoResourceCacheValidate atcv(this);                if (fEntryCount <= fMaxCount && fEntryBytes <= fMaxBytes) {                    withinBudget = true;                    break;                }                GrResourceEntry* prev = iter.prev();                if (1 == entry->fResource->getRefCnt()) {                    changed = true;                    // remove from our cache                    fCache.remove(entry->key(), entry);                    // remove from our llist                    this->internalDetach(entry);        #if GR_DUMP_TEXTURE_UPLOAD                    GrPrintf("--- ~resource from cache %p [%d %d]/n",                             entry->resource(),                             entry->resource()->width(),                             entry->resource()->height());        #endif                    delete entry;                }                entry = prev;            }        } while (!withinBudget && changed);        fPurging = false;    }}
开发者ID:bunhere,项目名称:skia,代码行数:62,


示例22: SkSafeUnref

GrAtlasMgr::~GrAtlasMgr() {    for (size_t i = 0; i < GR_ARRAY_COUNT(fTexture); i++) {        SkSafeUnref(fTexture[i]);    }    for (int i = 0; i < kCount_GrMaskFormats; ++i) {        delete fPlotMgr[i];    }    fGpu->unref();#if FONT_CACHE_STATS      GrPrintf("Num uploads: %d/n", g_UploadCount);#endif}
开发者ID:caiyongjian,项目名称:kalpa,代码行数:13,


示例23: iter

GrFontCache::~GrFontCache() {    SkTDynamicHash<GrTextStrike, GrFontDescKey>::Iter iter(&fCache);    while (!iter.done()) {        SkDELETE(&(*iter));        ++iter;    }    for (int i = 0; i < kAtlasCount; ++i) {        delete fAtlases[i];    }    fGpu->unref();#if FONT_CACHE_STATS      GrPrintf("Num purges: %d/n", g_PurgeCount);#endif}
开发者ID:435420057,项目名称:soui,代码行数:14,


示例24: SK_TRACE_EVENT0

bool GrGLShaderBuilder::finish(GrGLuint* outProgramId) {    SK_TRACE_EVENT0("GrGLShaderBuilder::finish");    GrGLuint programId = 0;    GL_CALL_RET(programId, CreateProgram());    if (!programId) {        return false;    }    if (!this->compileAndAttachShaders(programId)) {        GL_CALL(DeleteProgram(programId));        return false;    }    this->bindProgramLocations(programId);    GL_CALL(LinkProgram(programId));    // Calling GetProgramiv is expensive in Chromium. Assume success in release builds.    bool checkLinked = !fGpu->ctxInfo().isChromium();#ifdef SK_DEBUG    checkLinked = true;#endif    if (checkLinked) {        GrGLint linked = GR_GL_INIT_ZERO;        GL_CALL(GetProgramiv(programId, GR_GL_LINK_STATUS, &linked));        if (!linked) {            GrGLint infoLen = GR_GL_INIT_ZERO;            GL_CALL(GetProgramiv(programId, GR_GL_INFO_LOG_LENGTH, &infoLen));            SkAutoMalloc log(sizeof(char)*(infoLen+1));  // outside if for debugger            if (infoLen > 0) {                // retrieve length even though we don't need it to workaround                // bug in chrome cmd buffer param validation.                GrGLsizei length = GR_GL_INIT_ZERO;                GL_CALL(GetProgramInfoLog(programId,                                          infoLen+1,                                          &length,                                          (char*)log.get()));                GrPrintf((char*)log.get());            }            SkDEBUGFAIL("Error linking program");            GL_CALL(DeleteProgram(programId));            return false;        }    }    fUniformManager.getUniformLocations(programId, fUniforms);    *outProgramId = programId;    return true;}
开发者ID:rzr,项目名称:Tizen_Crosswalk,代码行数:50,


示例25: GrGLSetDefaultGLInterface

GrGpu* GrGpu::Create(GrEngine engine, GrPlatform3DContext context3D) {    if (kOpenGL_Shaders_GrEngine == engine ||        kOpenGL_Fixed_GrEngine == engine) {        // If no GL bindings have been installed, fall-back to calling the        // GL functions that have been linked with the executable.        if (!GrGLGetGLInterface()) {            GrGLSetDefaultGLInterface();            // If there is no platform-default then just fail.            if (!GrGLGetGLInterface()) {                return NULL;            }        }        if (!GrGLGetGLInterface()->validate(engine)) {#if GR_DEBUG            GrPrintf("Failed GL interface validation!");#endif            return NULL;        }    }    GrGpu* gpu = NULL;    switch (engine) {        case kOpenGL_Shaders_GrEngine:            {#if 0 // old code path, will be removed soon                gpu = new GrGpuGLShaders2;#else                gpu = new GrGpuGLShaders(context3D);#endif            }            break;        case kOpenGL_Fixed_GrEngine:            gpu = new GrGpuGLFixed(context3D);            break;        case kDirect3D9_GrEngine:            GrAssert(NULL != (void*)context3D);#if GR_WIN32_BUILD//            gpu = new GrGpuD3D9((IDirect3DDevice9*)context3D);#endif            break;        default:            GrAssert(!"unknown engine");            break;    }    return gpu;}
开发者ID:BBKeeper,项目名称:Skia,代码行数:49,


示例26: GrPrintf

void GrGpu::printStats() const {    if (GR_COLLECT_STATS) {     GrPrintf(     "-v-------------------------GPU STATS----------------------------v-/n"     "Stats collection is: %s/n"     "Draws: %04d, Verts: %04d, Indices: %04d/n"     "ProgChanges: %04d, TexChanges: %04d, RTChanges: %04d/n"     "TexCreates: %04d, RTCreates:%04d/n"     "-^--------------------------------------------------------------^-/n",     (GR_COLLECT_STATS ? "ON" : "OFF"),    fStats.fDrawCnt, fStats.fVertexCnt, fStats.fIndexCnt,    fStats.fProgChngCnt, fStats.fTextureChngCnt, fStats.fRenderTargetChngCnt,    fStats.fTextureCreateCnt, fStats.fRenderTargetCreateCnt);    }}
开发者ID:achellies,项目名称:DUI_LIb,代码行数:15,


示例27: geo

bool GrAndroidPathRenderer::onDrawPath(const SkPath& origPath,                                       const SkStrokeRec& stroke,                                       GrDrawTarget* target,                                       bool antiAlias) {    // generate verts using Android algorithm    android::uirenderer::VertexBuffer vertices;    android::uirenderer::PathRenderer::ConvexPathVertices(origPath, stroke, antiAlias, NULL,                                                          &vertices);    // set vertex layout depending on anti-alias    GrVertexLayout layout = antiAlias ? GrDrawState::kCoverage_VertexLayoutBit : 0;    // allocate our vert buffer    int vertCount = vertices.getSize();    GrDrawTarget::AutoReleaseGeometry geo(target, layout, vertCount, 0);    if (!geo.succeeded()) {        GrPrintf("Failed to get space for vertices!/n");        return false;    }    // copy android verts to our vertex buffer    if (antiAlias) {        ColorVertex* outVert = reinterpret_cast<ColorVertex*>(geo.vertices());        android::uirenderer::AlphaVertex* inVert =            reinterpret_cast<android::uirenderer::AlphaVertex*>(vertices.getBuffer());        for (int i = 0; i < vertCount; ++i) {            // copy vertex position            outVert->pos.set(inVert->position[0], inVert->position[1]);            // copy alpha            int coverage = static_cast<int>(inVert->alpha * 0xff);            outVert->color = GrColorPackRGBA(coverage, coverage, coverage, coverage);            ++outVert;            ++inVert;        }    } else {       size_t vsize = GrDrawState::VertexSize(layout);       size_t copySize = vsize*vertCount;       memcpy(geo.vertices(), vertices.getBuffer(), copySize);    }    // render it    target->drawNonIndexed(kTriangleStrip_GrPrimitiveType, 0, vertCount);    return true;}
开发者ID:DanialLiu,项目名称:SkiaWin32Port,代码行数:47,



注:本文中的GrPrintf函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ GrRectDraw函数代码示例
C++ GrMapWindow函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。