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

Side by Side Diff: core/fxcodec/lbmp/fx_bmp.cpp

Issue 2477443002: Remove FX_BOOL from core (Closed)
Patch Set: Created 4 years, 1 month 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 | « core/fxcodec/lbmp/fx_bmp.h ('k') | core/fxcodec/lgif/fx_gif.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "core/fxcodec/lbmp/fx_bmp.h" 7 #include "core/fxcodec/lbmp/fx_bmp.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 bmp_ptr->skip_size = skip_size_org; 98 bmp_ptr->skip_size = skip_size_org;
99 return 2; 99 return 2;
100 } 100 }
101 bmp_ptr->width = 101 bmp_ptr->width =
102 GetWord_LSBFirst((uint8_t*)&bmp_core_header_ptr->bcWidth); 102 GetWord_LSBFirst((uint8_t*)&bmp_core_header_ptr->bcWidth);
103 bmp_ptr->height = 103 bmp_ptr->height =
104 GetWord_LSBFirst((uint8_t*)&bmp_core_header_ptr->bcHeight); 104 GetWord_LSBFirst((uint8_t*)&bmp_core_header_ptr->bcHeight);
105 bmp_ptr->bitCounts = 105 bmp_ptr->bitCounts =
106 GetWord_LSBFirst((uint8_t*)&bmp_core_header_ptr->bcBitCount); 106 GetWord_LSBFirst((uint8_t*)&bmp_core_header_ptr->bcBitCount);
107 bmp_ptr->compress_flag = BMP_RGB; 107 bmp_ptr->compress_flag = BMP_RGB;
108 bmp_ptr->imgTB_flag = FALSE; 108 bmp_ptr->imgTB_flag = false;
109 } break; 109 } break;
110 case kBmpInfoHeaderSize: { 110 case kBmpInfoHeaderSize: {
111 BmpInfoHeaderPtr bmp_info_header_ptr = nullptr; 111 BmpInfoHeaderPtr bmp_info_header_ptr = nullptr;
112 if (!bmp_read_data(bmp_ptr, (uint8_t**)&bmp_info_header_ptr, 112 if (!bmp_read_data(bmp_ptr, (uint8_t**)&bmp_info_header_ptr,
113 bmp_ptr->img_ifh_size)) { 113 bmp_ptr->img_ifh_size)) {
114 bmp_ptr->skip_size = skip_size_org; 114 bmp_ptr->skip_size = skip_size_org;
115 return 2; 115 return 2;
116 } 116 }
117 bmp_ptr->width = 117 bmp_ptr->width =
118 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biWidth); 118 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biWidth);
119 bmp_ptr->height = 119 bmp_ptr->height =
120 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biHeight); 120 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biHeight);
121 bmp_ptr->bitCounts = 121 bmp_ptr->bitCounts =
122 GetWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biBitCount); 122 GetWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biBitCount);
123 bmp_ptr->compress_flag = 123 bmp_ptr->compress_flag =
124 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biCompression); 124 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biCompression);
125 bmp_ptr->color_used = 125 bmp_ptr->color_used =
126 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biClrUsed); 126 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biClrUsed);
127 bmp_ptr->dpi_x = (int32_t)GetDWord_LSBFirst( 127 bmp_ptr->dpi_x = (int32_t)GetDWord_LSBFirst(
128 (uint8_t*)&bmp_info_header_ptr->biXPelsPerMeter); 128 (uint8_t*)&bmp_info_header_ptr->biXPelsPerMeter);
129 bmp_ptr->dpi_y = (int32_t)GetDWord_LSBFirst( 129 bmp_ptr->dpi_y = (int32_t)GetDWord_LSBFirst(
130 (uint8_t*)&bmp_info_header_ptr->biYPelsPerMeter); 130 (uint8_t*)&bmp_info_header_ptr->biYPelsPerMeter);
131 if (bmp_ptr->height < 0) { 131 if (bmp_ptr->height < 0) {
132 bmp_ptr->height = -bmp_ptr->height; 132 bmp_ptr->height = -bmp_ptr->height;
133 bmp_ptr->imgTB_flag = TRUE; 133 bmp_ptr->imgTB_flag = true;
134 } 134 }
135 } break; 135 } break;
136 default: { 136 default: {
137 if (bmp_ptr->img_ifh_size > 137 if (bmp_ptr->img_ifh_size >
138 std::min(kBmpInfoHeaderSize, sizeof(BmpInfoHeader))) { 138 std::min(kBmpInfoHeaderSize, sizeof(BmpInfoHeader))) {
139 BmpInfoHeaderPtr bmp_info_header_ptr = nullptr; 139 BmpInfoHeaderPtr bmp_info_header_ptr = nullptr;
140 if (!bmp_read_data(bmp_ptr, (uint8_t**)&bmp_info_header_ptr, 140 if (!bmp_read_data(bmp_ptr, (uint8_t**)&bmp_info_header_ptr,
141 bmp_ptr->img_ifh_size)) { 141 bmp_ptr->img_ifh_size)) {
142 bmp_ptr->skip_size = skip_size_org; 142 bmp_ptr->skip_size = skip_size_org;
143 return 2; 143 return 2;
144 } 144 }
145 uint16_t biPlanes; 145 uint16_t biPlanes;
146 bmp_ptr->width = 146 bmp_ptr->width =
147 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biWidth); 147 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biWidth);
148 bmp_ptr->height = 148 bmp_ptr->height =
149 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biHeight); 149 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biHeight);
150 bmp_ptr->bitCounts = 150 bmp_ptr->bitCounts =
151 GetWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biBitCount); 151 GetWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biBitCount);
152 bmp_ptr->compress_flag = 152 bmp_ptr->compress_flag =
153 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biCompression); 153 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biCompression);
154 bmp_ptr->color_used = 154 bmp_ptr->color_used =
155 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biClrUsed); 155 GetDWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biClrUsed);
156 biPlanes = GetWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biPlanes); 156 biPlanes = GetWord_LSBFirst((uint8_t*)&bmp_info_header_ptr->biPlanes);
157 bmp_ptr->dpi_x = GetDWord_LSBFirst( 157 bmp_ptr->dpi_x = GetDWord_LSBFirst(
158 (uint8_t*)&bmp_info_header_ptr->biXPelsPerMeter); 158 (uint8_t*)&bmp_info_header_ptr->biXPelsPerMeter);
159 bmp_ptr->dpi_y = GetDWord_LSBFirst( 159 bmp_ptr->dpi_y = GetDWord_LSBFirst(
160 (uint8_t*)&bmp_info_header_ptr->biYPelsPerMeter); 160 (uint8_t*)&bmp_info_header_ptr->biYPelsPerMeter);
161 if (bmp_ptr->height < 0) { 161 if (bmp_ptr->height < 0) {
162 bmp_ptr->height = -bmp_ptr->height; 162 bmp_ptr->height = -bmp_ptr->height;
163 bmp_ptr->imgTB_flag = TRUE; 163 bmp_ptr->imgTB_flag = true;
164 } 164 }
165 if (bmp_ptr->compress_flag == BMP_RGB && biPlanes == 1 && 165 if (bmp_ptr->compress_flag == BMP_RGB && biPlanes == 1 &&
166 bmp_ptr->color_used == 0) { 166 bmp_ptr->color_used == 0) {
167 break; 167 break;
168 } 168 }
169 } 169 }
170 bmp_error(bmp_ptr, "Unsupported Bmp File"); 170 bmp_error(bmp_ptr, "Unsupported Bmp File");
171 return 0; 171 return 0;
172 } 172 }
173 } 173 }
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 : (bmp_ptr->height - 1 - bmp_ptr->row_num++), 383 : (bmp_ptr->height - 1 - bmp_ptr->row_num++),
384 bmp_ptr->out_row_buffer); 384 bmp_ptr->out_row_buffer);
385 } 385 }
386 bmp_save_decoding_status(bmp_ptr, BMP_D_STATUS_TAIL); 386 bmp_save_decoding_status(bmp_ptr, BMP_D_STATUS_TAIL);
387 return 1; 387 return 1;
388 } 388 }
389 int32_t bmp_decode_rle8(bmp_decompress_struct_p bmp_ptr) { 389 int32_t bmp_decode_rle8(bmp_decompress_struct_p bmp_ptr) {
390 uint8_t* first_byte_ptr = nullptr; 390 uint8_t* first_byte_ptr = nullptr;
391 uint8_t* second_byte_ptr = nullptr; 391 uint8_t* second_byte_ptr = nullptr;
392 bmp_ptr->col_num = 0; 392 bmp_ptr->col_num = 0;
393 while (TRUE) { 393 while (true) {
394 uint32_t skip_size_org = bmp_ptr->skip_size; 394 uint32_t skip_size_org = bmp_ptr->skip_size;
395 if (!bmp_read_data(bmp_ptr, &first_byte_ptr, 1)) 395 if (!bmp_read_data(bmp_ptr, &first_byte_ptr, 1))
396 return 2; 396 return 2;
397 397
398 switch (*first_byte_ptr) { 398 switch (*first_byte_ptr) {
399 case RLE_MARKER: { 399 case RLE_MARKER: {
400 if (!bmp_read_data(bmp_ptr, &first_byte_ptr, 1)) { 400 if (!bmp_read_data(bmp_ptr, &first_byte_ptr, 1)) {
401 bmp_ptr->skip_size = skip_size_org; 401 bmp_ptr->skip_size = skip_size_org;
402 return 2; 402 return 2;
403 } 403 }
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 } 485 }
486 } 486 }
487 } 487 }
488 bmp_error(bmp_ptr, "Any Uncontrol Error"); 488 bmp_error(bmp_ptr, "Any Uncontrol Error");
489 return 0; 489 return 0;
490 } 490 }
491 int32_t bmp_decode_rle4(bmp_decompress_struct_p bmp_ptr) { 491 int32_t bmp_decode_rle4(bmp_decompress_struct_p bmp_ptr) {
492 uint8_t* first_byte_ptr = nullptr; 492 uint8_t* first_byte_ptr = nullptr;
493 uint8_t* second_byte_ptr = nullptr; 493 uint8_t* second_byte_ptr = nullptr;
494 bmp_ptr->col_num = 0; 494 bmp_ptr->col_num = 0;
495 while (TRUE) { 495 while (true) {
496 uint32_t skip_size_org = bmp_ptr->skip_size; 496 uint32_t skip_size_org = bmp_ptr->skip_size;
497 if (!bmp_read_data(bmp_ptr, &first_byte_ptr, 1)) 497 if (!bmp_read_data(bmp_ptr, &first_byte_ptr, 1))
498 return 2; 498 return 2;
499 499
500 switch (*first_byte_ptr) { 500 switch (*first_byte_ptr) {
501 case RLE_MARKER: { 501 case RLE_MARKER: {
502 if (!bmp_read_data(bmp_ptr, &first_byte_ptr, 1)) { 502 if (!bmp_read_data(bmp_ptr, &first_byte_ptr, 1)) {
503 bmp_ptr->skip_size = skip_size_org; 503 bmp_ptr->skip_size = skip_size_org;
504 return 2; 504 return 2;
505 } 505 }
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
889 } else { 889 } else {
890 i += rle[0]; 890 i += rle[0];
891 dst_buf[dst_pos++] = rle[0]; 891 dst_buf[dst_pos++] = rle[0];
892 dst_buf[dst_pos++] = rle[1]; 892 dst_buf[dst_pos++] = rle[1];
893 } 893 }
894 } 894 }
895 dst_buf[dst_pos++] = RLE_MARKER; 895 dst_buf[dst_pos++] = RLE_MARKER;
896 dst_buf[dst_pos++] = RLE_EOI; 896 dst_buf[dst_pos++] = RLE_EOI;
897 dst_size = dst_pos; 897 dst_size = dst_pos;
898 } 898 }
899 FX_BOOL bmp_encode_image(bmp_compress_struct_p bmp_ptr, 899 bool bmp_encode_image(bmp_compress_struct_p bmp_ptr,
900 uint8_t*& dst_buf, 900 uint8_t*& dst_buf,
901 uint32_t& dst_size) { 901 uint32_t& dst_size) {
902 uint32_t head_size = sizeof(BmpFileHeader) + sizeof(BmpInfoHeader); 902 uint32_t head_size = sizeof(BmpFileHeader) + sizeof(BmpInfoHeader);
903 uint32_t pal_size = sizeof(uint32_t) * bmp_ptr->pal_num; 903 uint32_t pal_size = sizeof(uint32_t) * bmp_ptr->pal_num;
904 if (bmp_ptr->info_header.biClrUsed > 0 && 904 if (bmp_ptr->info_header.biClrUsed > 0 &&
905 bmp_ptr->info_header.biClrUsed < bmp_ptr->pal_num) { 905 bmp_ptr->info_header.biClrUsed < bmp_ptr->pal_num) {
906 pal_size = sizeof(uint32_t) * bmp_ptr->info_header.biClrUsed; 906 pal_size = sizeof(uint32_t) * bmp_ptr->info_header.biClrUsed;
907 } 907 }
908 dst_size = head_size + sizeof(uint32_t) * bmp_ptr->pal_num; 908 dst_size = head_size + sizeof(uint32_t) * bmp_ptr->pal_num;
909 dst_buf = FX_TryAlloc(uint8_t, dst_size); 909 dst_buf = FX_TryAlloc(uint8_t, dst_size);
910 if (!dst_buf) 910 if (!dst_buf)
911 return FALSE; 911 return false;
912 912
913 FXSYS_memset(dst_buf, 0, dst_size); 913 FXSYS_memset(dst_buf, 0, dst_size);
914 bmp_ptr->file_header.bfOffBits = head_size; 914 bmp_ptr->file_header.bfOffBits = head_size;
915 if (bmp_ptr->pal_ptr && pal_size) { 915 if (bmp_ptr->pal_ptr && pal_size) {
916 FXSYS_memcpy(&dst_buf[head_size], bmp_ptr->pal_ptr, pal_size); 916 FXSYS_memcpy(&dst_buf[head_size], bmp_ptr->pal_ptr, pal_size);
917 bmp_ptr->file_header.bfOffBits += pal_size; 917 bmp_ptr->file_header.bfOffBits += pal_size;
918 } 918 }
919 WriteInfoHeader(&bmp_ptr->info_header, dst_buf); 919 WriteInfoHeader(&bmp_ptr->info_header, dst_buf);
920 switch (bmp_ptr->info_header.biCompression) { 920 switch (bmp_ptr->info_header.biCompression) {
921 case BMP_RGB: 921 case BMP_RGB:
922 bmp_encode_rgb(bmp_ptr, dst_buf, dst_size); 922 bmp_encode_rgb(bmp_ptr, dst_buf, dst_size);
923 break; 923 break;
924 case BMP_BITFIELDS: 924 case BMP_BITFIELDS:
925 bmp_encode_bitfields(bmp_ptr, dst_buf, dst_size); 925 bmp_encode_bitfields(bmp_ptr, dst_buf, dst_size);
926 break; 926 break;
927 case BMP_RLE8: 927 case BMP_RLE8:
928 bmp_encode_rle8(bmp_ptr, dst_buf, dst_size); 928 bmp_encode_rle8(bmp_ptr, dst_buf, dst_size);
929 break; 929 break;
930 case BMP_RLE4: 930 case BMP_RLE4:
931 bmp_encode_rle4(bmp_ptr, dst_buf, dst_size); 931 bmp_encode_rle4(bmp_ptr, dst_buf, dst_size);
932 break; 932 break;
933 default: 933 default:
934 break; 934 break;
935 } 935 }
936 bmp_ptr->file_header.bfSize = dst_size; 936 bmp_ptr->file_header.bfSize = dst_size;
937 WriteFileHeader(&bmp_ptr->file_header, dst_buf); 937 WriteFileHeader(&bmp_ptr->file_header, dst_buf);
938 return TRUE; 938 return true;
939 } 939 }
OLDNEW
« no previous file with comments | « core/fxcodec/lbmp/fx_bmp.h ('k') | core/fxcodec/lgif/fx_gif.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698