当前位置: 首页>>代码示例>>C++>>正文


C++ GrContext::internalWriteTexturePixels方法代码示例

本文整理汇总了C++中GrContext::internalWriteTexturePixels方法的典型用法代码示例。如果您正苦于以下问题:C++ GrContext::internalWriteTexturePixels方法的具体用法?C++ GrContext::internalWriteTexturePixels怎么用?C++ GrContext::internalWriteTexturePixels使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在GrContext的用法示例。


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

示例1: addSubImage

bool GrAtlas::addSubImage(int width, int height, const void* image,
                          GrIPoint16* loc) {
    if (!fRects->addRect(width + BORDER, height + BORDER, loc)) {
        return false;
    }

    SkAutoSMalloc<1024> storage;
    int dstW = width + 2*BORDER;
    int dstH = height + 2*BORDER;
    if (BORDER) {
        const int bpp = GrMaskFormatBytesPerPixel(fMaskFormat);
        const size_t dstRB = dstW * bpp;
        uint8_t* dst = (uint8_t*)storage.reset(dstH * dstRB);
        Gr_bzero(dst, dstRB);                // zero top row
        dst += dstRB;
        for (int y = 0; y < height; y++) {
            dst = zerofill(dst, bpp);   // zero left edge
            memcpy(dst, image, width * bpp);
            dst += width * bpp;
            dst = zerofill(dst, bpp);   // zero right edge
            image = (const void*)((const char*)image + width * bpp);
        }
        Gr_bzero(dst, dstRB);                // zero bottom row
        image = storage.get();
    }
    adjustForPlot(loc, fPlot);
    GrContext* context = fTexture->getContext();
    // We call the internal version so that we don't force a flush. We assume
    // our caller is smart and hasn't referenced the part of the texture we're
    // about to update since the last flush.
    context->internalWriteTexturePixels(fTexture, loc->fX, loc->fY,
                                        dstW, dstH, fTexture->config(),
                                        image, 0,
                                        GrContext::kDontFlush_PixelOpsFlag);

    // now tell the caller to skip the top/left BORDER
    loc->fX += BORDER;
    loc->fY += BORDER;
    return true;
}
开发者ID:lofter2011,项目名称:Icefox,代码行数:40,代码来源:GrAtlas.cpp


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