Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(190)

Side by Side Diff: src/codec/SkCodec_libbmp.h

Issue 1013743003: Adding premul and 565 swizzles for bmp: (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Clean up before public code review Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/codec/SkCodec_libbmp.cpp » ('j') | src/codec/SkCodec_libbmp.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkCodec.h" 8 #include "SkCodec.h"
9 #include "SkImageInfo.h" 9 #include "SkImageInfo.h"
10 #include "SkMaskSwizzler.h" 10 #include "SkMaskSwizzler.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 */ 68 */
69 enum BitmapInputFormat { 69 enum BitmapInputFormat {
70 kStandard_BitmapInputFormat, 70 kStandard_BitmapInputFormat,
71 kRLE_BitmapInputFormat, 71 kRLE_BitmapInputFormat,
72 kBitMask_BitmapInputFormat, 72 kBitMask_BitmapInputFormat,
73 kUnknown_BitmapInputFormat 73 kUnknown_BitmapInputFormat
74 }; 74 };
75 75
76 /* 76 /*
77 * 77 *
78 * Creates the color table
79 *
80 */
81 bool createColorTable(const SkAlphaType alphaType);
scroggo 2015/03/17 13:27:22 nit: We typically do not mark enum parameters as c
msarett 2015/03/17 16:54:06 Done.
82
83 /*
84 *
78 * Performs the bitmap decoding for bit masks input format 85 * Performs the bitmap decoding for bit masks input format
79 * 86 *
80 */ 87 */
81 Result decodeMask(const SkImageInfo& dstInfo, void* dst, 88 Result decodeMask(const SkImageInfo& dstInfo, void* dst,
82 size_t dstRowBytes); 89 size_t dstRowBytes);
83 90
84 /* 91 /*
85 * 92 *
86 * Set an RLE pixel using the color table 93 * Set an RLE pixel using the color table
87 * 94 *
88 */ 95 */
89 void setRLEPixel(SkPMColor* dst, size_t dstRowBytes, int height, 96 void setRLEPixel(SkPMColor* dst, size_t dstRowBytes,
90 uint32_t x, uint32_t y, uint8_t index); 97 const SkImageInfo& dstInfo, uint32_t x, uint32_t y,
98 uint8_t index);
99 /*
100 *
101 * Set an RLE24 pixel from R, G, B values
102 *
103 */
104 void setRLE24Pixel(SkPMColor* dst, size_t dstRowBytes,
105 const SkImageInfo& dstInfo, uint32_t x, uint32_t y,
106 uint8_t red, uint8_t green, uint8_t blue);
91 107
92 /* 108 /*
93 * 109 *
94 * Performs the bitmap decoding for RLE input format 110 * Performs the bitmap decoding for RLE input format
95 * 111 *
96 */ 112 */
97 Result decodeRLE(const SkImageInfo& dstInfo, void* dst, 113 Result decodeRLE(const SkImageInfo& dstInfo, void* dst,
98 size_t dstRowBytes); 114 size_t dstRowBytes);
99 115
100 /* 116 /*
101 * 117 *
102 * Performs the bitmap decoding for standard input format 118 * Performs the bitmap decoding for standard input format
103 * 119 *
104 */ 120 */
105 Result decode(const SkImageInfo& dstInfo, void* dst, size_t dstRowBytes); 121 Result decode(const SkImageInfo& dstInfo, void* dst, size_t dstRowBytes);
106 122
107 /* 123 /*
108 * 124 *
109 * Creates an instance of the decoder 125 * Creates an instance of the decoder
110 * Called only by NewFromStream 126 * Called only by NewFromStream
111 * 127 *
112 * @param srcInfo contains the source width and height 128 * @param srcInfo contains the source width and height
113 * @param stream the stream of image data 129 * @param stream the stream of image data
114 * @param bitsPerPixel the number of bits used to store each pixel 130 * @param bitsPerPixel the number of bits used to store each pixel
115 * @param format the format of the bmp file 131 * @param format the format of the bmp file
116 * @param masks optional color masks for certain bmp formats, passes 132 * @param masks optional color masks for certain bmp formats, passes
117 ownership to SkBmpCodec 133 ownership to SkBmpCodec
118 * @param colorTable array representing the color table for index-based bmp 134 * @param numColors the number of colors in the color table
119 * formats, colors are unpremultiplied, passes ownership 135 * @param bytesPerColor the number of bytes in the stream used to represent
120 * to SkBmpCodec 136 each color in the color table
137 * @param offset the offset of the image pixel data from the end of the
138 * color table
121 * @param rowOrder indicates whether rows are ordered top-down or bottom-up 139 * @param rowOrder indicates whether rows are ordered top-down or bottom-up
122 * @param remainingBytes used only for RLE decodes, as we must decode all 140 * @param remainingBytes used only for RLE decodes, as we must decode all
123 * of the data at once rather than row by row 141 * of the data at once rather than row by row
124 * it indicates the amount of data left in the stream 142 * it indicates the amount of data left in the stream
125 * after decoding the headers 143 * after decoding the headers
126 * 144 *
127 */ 145 */
128 SkBmpCodec(const SkImageInfo& srcInfo, SkStream* stream, 146 SkBmpCodec(const SkImageInfo& srcInfo, SkStream* stream,
129 uint16_t bitsPerPixel, BitmapInputFormat format, 147 uint16_t bitsPerPixel, BitmapInputFormat format,
130 SkMasks* masks, SkPMColor* colorTable, 148 SkMasks* masks, uint32_t numColors, uint32_t bytesPerColor,
131 RowOrder rowOrder, uint32_t remainingBytes); 149 uint32_t offset, RowOrder rowOrder, uint32_t remainingBytes);
132 150
133 // Fields 151 // Fields
134 const uint16_t fBitsPerPixel; 152 const uint16_t fBitsPerPixel;
135 const BitmapInputFormat fInputFormat; 153 const BitmapInputFormat fInputFormat;
136 SkAutoTDelete<SkMasks> fMasks; // owned 154 SkAutoTDelete<SkMasks> fMasks; // owned
137 const SkAutoTDeleteArray<SkPMColor> fColorTable; // owned, unpremul 155 SkAutoTDeleteArray<SkPMColor> fColorTable; // owned, unpremul
scroggo 2015/03/17 13:27:22 This is no longer necessarily unpremul.
msarett 2015/03/17 16:54:06 Sorry, I missed that.
156 const uint32_t fNumColors;
scroggo 2015/03/17 13:27:22 FWIW, you could use an SkColorTable which holds bo
msarett 2015/03/17 16:54:06 Unfortuntately, using SkColorTable does not allow
157 const uint32_t fBytesPerColor;
158 const uint32_t fOffset;
138 const RowOrder fRowOrder; 159 const RowOrder fRowOrder;
139 const uint32_t fRemainingBytes; 160 const uint32_t fRemainingBytes;
scroggo 2015/03/17 13:27:22 It seems like the meaning of fRemainingBytes has c
msarett 2015/03/17 16:54:06 Done.
140 161
141 typedef SkCodec INHERITED; 162 typedef SkCodec INHERITED;
142 }; 163 };
OLDNEW
« no previous file with comments | « no previous file | src/codec/SkCodec_libbmp.cpp » ('j') | src/codec/SkCodec_libbmp.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698