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


C++ SkBitmap::flatten方法代码示例

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


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

示例1: writeBitmap

void SkOrderedWriteBuffer::writeBitmap(const SkBitmap& bitmap) {
    bool encoded = false;
    if (fBitmapEncoder != NULL) {
        SkDynamicMemoryWStream pngStream;
        if (fBitmapEncoder(&pngStream, bitmap)) {
            encoded = true;
            if (encoded) {
                uint32_t offset = fWriter.bytesWritten();
                // Write the length to indicate that the bitmap was encoded successfully.
                size_t length = pngStream.getOffset();
                this->writeUInt(length);
                // Now write the stream.
                if (pngStream.read(fWriter.reservePad(length), 0, length)) {
                    // Write the width and height in case the reader does not have a decoder.
                    this->writeInt(bitmap.width());
                    this->writeInt(bitmap.height());
                } else {
                    // Writing the stream failed, so go back to original state to store another way.
                    fWriter.rewindToOffset(offset);
                    encoded = false;
                }
            }
        }
    }
    if (!encoded) {
        // Bitmap was not encoded. Record a zero, implying that the reader need not decode.
        this->writeUInt(0);
        if (fBitmapHeap) {
            int32_t slot = fBitmapHeap->insert(bitmap);
            fWriter.write32(slot);
            // crbug.com/155875
            // The generation ID is not required information. We write it to prevent collisions
            // in SkFlatDictionary.  It is possible to get a collision when a previously
            // unflattened (i.e. stale) instance of a similar flattenable is in the dictionary
            // and the instance currently being written is re-using the same slot from the
            // bitmap heap.
            fWriter.write32(bitmap.getGenerationID());
        } else {
            bitmap.flatten(*this);
        }
    }
}
开发者ID:bunhere,项目名称:skia,代码行数:42,代码来源:SkOrderedWriteBuffer.cpp

示例2: Flatten

 static void Flatten(SkWriteBuffer& buffer, const SkBitmap& bitmap) {
     bitmap.flatten(buffer);
 }
开发者ID:UIKit0,项目名称:skia,代码行数:3,代码来源:FlatDataTest.cpp


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