• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright 2013 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 
7 // loadimage.h: Defines image loading functions
8 
9 #ifndef IMAGEUTIL_LOADIMAGE_H_
10 #define IMAGEUTIL_LOADIMAGE_H_
11 
12 #include <stddef.h>
13 #include <stdint.h>
14 
15 namespace angle
16 {
17 
18 void LoadA8ToRGBA8(size_t width,
19                    size_t height,
20                    size_t depth,
21                    const uint8_t *input,
22                    size_t inputRowPitch,
23                    size_t inputDepthPitch,
24                    uint8_t *output,
25                    size_t outputRowPitch,
26                    size_t outputDepthPitch);
27 
28 void LoadA8ToBGRA8(size_t width,
29                    size_t height,
30                    size_t depth,
31                    const uint8_t *input,
32                    size_t inputRowPitch,
33                    size_t inputDepthPitch,
34                    uint8_t *output,
35                    size_t outputRowPitch,
36                    size_t outputDepthPitch);
37 
38 void LoadA32FToRGBA32F(size_t width,
39                        size_t height,
40                        size_t depth,
41                        const uint8_t *input,
42                        size_t inputRowPitch,
43                        size_t inputDepthPitch,
44                        uint8_t *output,
45                        size_t outputRowPitch,
46                        size_t outputDepthPitch);
47 
48 void LoadA16FToRGBA16F(size_t width,
49                        size_t height,
50                        size_t depth,
51                        const uint8_t *input,
52                        size_t inputRowPitch,
53                        size_t inputDepthPitch,
54                        uint8_t *output,
55                        size_t outputRowPitch,
56                        size_t outputDepthPitch);
57 
58 void LoadL8ToRGBA8(size_t width,
59                    size_t height,
60                    size_t depth,
61                    const uint8_t *input,
62                    size_t inputRowPitch,
63                    size_t inputDepthPitch,
64                    uint8_t *output,
65                    size_t outputRowPitch,
66                    size_t outputDepthPitch);
67 
68 void LoadL8ToBGRA8(size_t width,
69                    size_t height,
70                    size_t depth,
71                    const uint8_t *input,
72                    size_t inputRowPitch,
73                    size_t inputDepthPitch,
74                    uint8_t *output,
75                    size_t outputRowPitch,
76                    size_t outputDepthPitch);
77 
78 void LoadL32FToRGBA32F(size_t width,
79                        size_t height,
80                        size_t depth,
81                        const uint8_t *input,
82                        size_t inputRowPitch,
83                        size_t inputDepthPitch,
84                        uint8_t *output,
85                        size_t outputRowPitch,
86                        size_t outputDepthPitch);
87 
88 void LoadL16FToRGBA16F(size_t width,
89                        size_t height,
90                        size_t depth,
91                        const uint8_t *input,
92                        size_t inputRowPitch,
93                        size_t inputDepthPitch,
94                        uint8_t *output,
95                        size_t outputRowPitch,
96                        size_t outputDepthPitch);
97 
98 void LoadLA8ToRGBA8(size_t width,
99                     size_t height,
100                     size_t depth,
101                     const uint8_t *input,
102                     size_t inputRowPitch,
103                     size_t inputDepthPitch,
104                     uint8_t *output,
105                     size_t outputRowPitch,
106                     size_t outputDepthPitch);
107 
108 void LoadLA8ToBGRA8(size_t width,
109                     size_t height,
110                     size_t depth,
111                     const uint8_t *input,
112                     size_t inputRowPitch,
113                     size_t inputDepthPitch,
114                     uint8_t *output,
115                     size_t outputRowPitch,
116                     size_t outputDepthPitch);
117 
118 void LoadLA32FToRGBA32F(size_t width,
119                         size_t height,
120                         size_t depth,
121                         const uint8_t *input,
122                         size_t inputRowPitch,
123                         size_t inputDepthPitch,
124                         uint8_t *output,
125                         size_t outputRowPitch,
126                         size_t outputDepthPitch);
127 
128 void LoadLA16FToRGBA16F(size_t width,
129                         size_t height,
130                         size_t depth,
131                         const uint8_t *input,
132                         size_t inputRowPitch,
133                         size_t inputDepthPitch,
134                         uint8_t *output,
135                         size_t outputRowPitch,
136                         size_t outputDepthPitch);
137 
138 void LoadRGB8ToBGR565(size_t width,
139                       size_t height,
140                       size_t depth,
141                       const uint8_t *input,
142                       size_t inputRowPitch,
143                       size_t inputDepthPitch,
144                       uint8_t *output,
145                       size_t outputRowPitch,
146                       size_t outputDepthPitch);
147 
148 void LoadRGB565ToBGR565(size_t width,
149                         size_t height,
150                         size_t depth,
151                         const uint8_t *input,
152                         size_t inputRowPitch,
153                         size_t inputDepthPitch,
154                         uint8_t *output,
155                         size_t outputRowPitch,
156                         size_t outputDepthPitch);
157 
158 void LoadRGB8ToBGRX8(size_t width,
159                      size_t height,
160                      size_t depth,
161                      const uint8_t *input,
162                      size_t inputRowPitch,
163                      size_t inputDepthPitch,
164                      uint8_t *output,
165                      size_t outputRowPitch,
166                      size_t outputDepthPitch);
167 
168 void LoadRG8ToBGRX8(size_t width,
169                     size_t height,
170                     size_t depth,
171                     const uint8_t *input,
172                     size_t inputRowPitch,
173                     size_t inputDepthPitch,
174                     uint8_t *output,
175                     size_t outputRowPitch,
176                     size_t outputDepthPitch);
177 
178 void LoadR8ToBGRX8(size_t width,
179                    size_t height,
180                    size_t depth,
181                    const uint8_t *input,
182                    size_t inputRowPitch,
183                    size_t inputDepthPitch,
184                    uint8_t *output,
185                    size_t outputRowPitch,
186                    size_t outputDepthPitch);
187 
188 void LoadR5G6B5ToBGRA8(size_t width,
189                        size_t height,
190                        size_t depth,
191                        const uint8_t *input,
192                        size_t inputRowPitch,
193                        size_t inputDepthPitch,
194                        uint8_t *output,
195                        size_t outputRowPitch,
196                        size_t outputDepthPitch);
197 
198 void LoadR5G6B5ToRGBA8(size_t width,
199                        size_t height,
200                        size_t depth,
201                        const uint8_t *input,
202                        size_t inputRowPitch,
203                        size_t inputDepthPitch,
204                        uint8_t *output,
205                        size_t outputRowPitch,
206                        size_t outputDepthPitch);
207 
208 void LoadRGBA8ToBGRA8(size_t width,
209                       size_t height,
210                       size_t depth,
211                       const uint8_t *input,
212                       size_t inputRowPitch,
213                       size_t inputDepthPitch,
214                       uint8_t *output,
215                       size_t outputRowPitch,
216                       size_t outputDepthPitch);
217 
218 void LoadRGBA8ToBGRA4(size_t width,
219                       size_t height,
220                       size_t depth,
221                       const uint8_t *input,
222                       size_t inputRowPitch,
223                       size_t inputDepthPitch,
224                       uint8_t *output,
225                       size_t outputRowPitch,
226                       size_t outputDepthPitch);
227 
228 void LoadRGBA8ToRGBA4(size_t width,
229                       size_t height,
230                       size_t depth,
231                       const uint8_t *input,
232                       size_t inputRowPitch,
233                       size_t inputDepthPitch,
234                       uint8_t *output,
235                       size_t outputRowPitch,
236                       size_t outputDepthPitch);
237 
238 void LoadRGBA4ToARGB4(size_t width,
239                       size_t height,
240                       size_t depth,
241                       const uint8_t *input,
242                       size_t inputRowPitch,
243                       size_t inputDepthPitch,
244                       uint8_t *output,
245                       size_t outputRowPitch,
246                       size_t outputDepthPitch);
247 
248 void LoadRGBA4ToRGBA4(size_t width,
249                       size_t height,
250                       size_t depth,
251                       const uint8_t *input,
252                       size_t inputRowPitch,
253                       size_t inputDepthPitch,
254                       uint8_t *output,
255                       size_t outputRowPitch,
256                       size_t outputDepthPitch);
257 
258 void LoadRGBA4ToBGRA8(size_t width,
259                       size_t height,
260                       size_t depth,
261                       const uint8_t *input,
262                       size_t inputRowPitch,
263                       size_t inputDepthPitch,
264                       uint8_t *output,
265                       size_t outputRowPitch,
266                       size_t outputDepthPitch);
267 
268 void LoadRGBA4ToRGBA8(size_t width,
269                       size_t height,
270                       size_t depth,
271                       const uint8_t *input,
272                       size_t inputRowPitch,
273                       size_t inputDepthPitch,
274                       uint8_t *output,
275                       size_t outputRowPitch,
276                       size_t outputDepthPitch);
277 
278 void LoadBGRA4ToBGRA8(size_t width,
279                       size_t height,
280                       size_t depth,
281                       const uint8_t *input,
282                       size_t inputRowPitch,
283                       size_t inputDepthPitch,
284                       uint8_t *output,
285                       size_t outputRowPitch,
286                       size_t outputDepthPitch);
287 
288 void LoadRGBA8ToBGR5A1(size_t width,
289                        size_t height,
290                        size_t depth,
291                        const uint8_t *input,
292                        size_t inputRowPitch,
293                        size_t inputDepthPitch,
294                        uint8_t *output,
295                        size_t outputRowPitch,
296                        size_t outputDepthPitch);
297 
298 void LoadRGBA8ToRGB5A1(size_t width,
299                        size_t height,
300                        size_t depth,
301                        const uint8_t *input,
302                        size_t inputRowPitch,
303                        size_t inputDepthPitch,
304                        uint8_t *output,
305                        size_t outputRowPitch,
306                        size_t outputDepthPitch);
307 
308 void LoadRGB10A2ToBGR5A1(size_t width,
309                          size_t height,
310                          size_t depth,
311                          const uint8_t *input,
312                          size_t inputRowPitch,
313                          size_t inputDepthPitch,
314                          uint8_t *output,
315                          size_t outputRowPitch,
316                          size_t outputDepthPitch);
317 
318 void LoadRGB10A2ToRGB5A1(size_t width,
319                          size_t height,
320                          size_t depth,
321                          const uint8_t *input,
322                          size_t inputRowPitch,
323                          size_t inputDepthPitch,
324                          uint8_t *output,
325                          size_t outputRowPitch,
326                          size_t outputDepthPitch);
327 
328 void LoadRGB5A1ToRGB5A1(size_t width,
329                         size_t height,
330                         size_t depth,
331                         const uint8_t *input,
332                         size_t inputRowPitch,
333                         size_t inputDepthPitch,
334                         uint8_t *output,
335                         size_t outputRowPitch,
336                         size_t outputDepthPitch);
337 
338 void LoadRGB5A1ToBGR5A1(size_t width,
339                         size_t height,
340                         size_t depth,
341                         const uint8_t *input,
342                         size_t inputRowPitch,
343                         size_t inputDepthPitch,
344                         uint8_t *output,
345                         size_t outputRowPitch,
346                         size_t outputDepthPitch);
347 
348 void LoadRGB5A1ToA1RGB5(size_t width,
349                         size_t height,
350                         size_t depth,
351                         const uint8_t *input,
352                         size_t inputRowPitch,
353                         size_t inputDepthPitch,
354                         uint8_t *output,
355                         size_t outputRowPitch,
356                         size_t outputDepthPitch);
357 
358 void LoadRGB5A1ToBGRA8(size_t width,
359                        size_t height,
360                        size_t depth,
361                        const uint8_t *input,
362                        size_t inputRowPitch,
363                        size_t inputDepthPitch,
364                        uint8_t *output,
365                        size_t outputRowPitch,
366                        size_t outputDepthPitch);
367 
368 void LoadRGB5A1ToRGBA8(size_t width,
369                        size_t height,
370                        size_t depth,
371                        const uint8_t *input,
372                        size_t inputRowPitch,
373                        size_t inputDepthPitch,
374                        uint8_t *output,
375                        size_t outputRowPitch,
376                        size_t outputDepthPitch);
377 
378 void LoadBGR5A1ToBGRA8(size_t width,
379                        size_t height,
380                        size_t depth,
381                        const uint8_t *input,
382                        size_t inputRowPitch,
383                        size_t inputDepthPitch,
384                        uint8_t *output,
385                        size_t outputRowPitch,
386                        size_t outputDepthPitch);
387 
388 void LoadRGB10A2ToRGBA8(size_t width,
389                         size_t height,
390                         size_t depth,
391                         const uint8_t *input,
392                         size_t inputRowPitch,
393                         size_t inputDepthPitch,
394                         uint8_t *output,
395                         size_t outputRowPitch,
396                         size_t outputDepthPitch);
397 
398 void LoadRGB10A2ToRGB10X2(size_t width,
399                           size_t height,
400                           size_t depth,
401                           const uint8_t *input,
402                           size_t inputRowPitch,
403                           size_t inputDepthPitch,
404                           uint8_t *output,
405                           size_t outputRowPitch,
406                           size_t outputDepthPitch);
407 
408 void LoadRGB16FToRGB9E5(size_t width,
409                         size_t height,
410                         size_t depth,
411                         const uint8_t *input,
412                         size_t inputRowPitch,
413                         size_t inputDepthPitch,
414                         uint8_t *output,
415                         size_t outputRowPitch,
416                         size_t outputDepthPitch);
417 
418 void LoadRGB32FToRGB9E5(size_t width,
419                         size_t height,
420                         size_t depth,
421                         const uint8_t *input,
422                         size_t inputRowPitch,
423                         size_t inputDepthPitch,
424                         uint8_t *output,
425                         size_t outputRowPitch,
426                         size_t outputDepthPitch);
427 
428 void LoadRGB16FToRG11B10F(size_t width,
429                           size_t height,
430                           size_t depth,
431                           const uint8_t *input,
432                           size_t inputRowPitch,
433                           size_t inputDepthPitch,
434                           uint8_t *output,
435                           size_t outputRowPitch,
436                           size_t outputDepthPitch);
437 
438 void LoadRGB32FToRG11B10F(size_t width,
439                           size_t height,
440                           size_t depth,
441                           const uint8_t *input,
442                           size_t inputRowPitch,
443                           size_t inputDepthPitch,
444                           uint8_t *output,
445                           size_t outputRowPitch,
446                           size_t outputDepthPitch);
447 
448 void LoadG8R24ToR24G8(size_t width,
449                       size_t height,
450                       size_t depth,
451                       const uint8_t *input,
452                       size_t inputRowPitch,
453                       size_t inputDepthPitch,
454                       uint8_t *output,
455                       size_t outputRowPitch,
456                       size_t outputDepthPitch);
457 
458 void LoadD24S8ToD32FS8X24(size_t width,
459                           size_t height,
460                           size_t depth,
461                           const uint8_t *input,
462                           size_t inputRowPitch,
463                           size_t inputDepthPitch,
464                           uint8_t *output,
465                           size_t outputRowPitch,
466                           size_t outputDepthPitch);
467 
468 void LoadD24S8ToD32F(size_t width,
469                      size_t height,
470                      size_t depth,
471                      const uint8_t *input,
472                      size_t inputRowPitch,
473                      size_t inputDepthPitch,
474                      uint8_t *output,
475                      size_t outputRowPitch,
476                      size_t outputDepthPitch);
477 
478 void LoadD32ToD32FX32(size_t width,
479                       size_t height,
480                       size_t depth,
481                       const uint8_t *input,
482                       size_t inputRowPitch,
483                       size_t inputDepthPitch,
484                       uint8_t *output,
485                       size_t outputRowPitch,
486                       size_t outputDepthPitch);
487 
488 void LoadD32ToD32F(size_t width,
489                    size_t height,
490                    size_t depth,
491                    const uint8_t *input,
492                    size_t inputRowPitch,
493                    size_t inputDepthPitch,
494                    uint8_t *output,
495                    size_t outputRowPitch,
496                    size_t outputDepthPitch);
497 
498 void LoadD32FToD32F(size_t width,
499                     size_t height,
500                     size_t depth,
501                     const uint8_t *input,
502                     size_t inputRowPitch,
503                     size_t inputDepthPitch,
504                     uint8_t *output,
505                     size_t outputRowPitch,
506                     size_t outputDepthPitch);
507 
508 void LoadD32FS8X24ToD24S8(size_t width,
509                           size_t height,
510                           size_t depth,
511                           const uint8_t *input,
512                           size_t inputRowPitch,
513                           size_t inputDepthPitch,
514                           uint8_t *output,
515                           size_t outputRowPitch,
516                           size_t outputDepthPitch);
517 
518 void LoadX24S8ToS8(size_t width,
519                    size_t height,
520                    size_t depth,
521                    const uint8_t *input,
522                    size_t inputRowPitch,
523                    size_t inputDepthPitch,
524                    uint8_t *output,
525                    size_t outputRowPitch,
526                    size_t outputDepthPitch);
527 
528 void LoadX32S8ToS8(size_t width,
529                    size_t height,
530                    size_t depth,
531                    const uint8_t *input,
532                    size_t inputRowPitch,
533                    size_t inputDepthPitch,
534                    uint8_t *output,
535                    size_t outputRowPitch,
536                    size_t outputDepthPitch);
537 
538 void LoadD32FS8X24ToD32F(size_t width,
539                          size_t height,
540                          size_t depth,
541                          const uint8_t *input,
542                          size_t inputRowPitch,
543                          size_t inputDepthPitch,
544                          uint8_t *output,
545                          size_t outputRowPitch,
546                          size_t outputDepthPitch);
547 
548 void LoadD32FS8X24ToD32FS8X24(size_t width,
549                               size_t height,
550                               size_t depth,
551                               const uint8_t *input,
552                               size_t inputRowPitch,
553                               size_t inputDepthPitch,
554                               uint8_t *output,
555                               size_t outputRowPitch,
556                               size_t outputDepthPitch);
557 
558 template <typename type, size_t componentCount>
559 inline void LoadToNative(size_t width,
560                          size_t height,
561                          size_t depth,
562                          const uint8_t *input,
563                          size_t inputRowPitch,
564                          size_t inputDepthPitch,
565                          uint8_t *output,
566                          size_t outputRowPitch,
567                          size_t outputDepthPitch);
568 
569 template <typename type, uint32_t fourthComponentBits>
570 inline void LoadToNative3To4(size_t width,
571                              size_t height,
572                              size_t depth,
573                              const uint8_t *input,
574                              size_t inputRowPitch,
575                              size_t inputDepthPitch,
576                              uint8_t *output,
577                              size_t outputRowPitch,
578                              size_t outputDepthPitch);
579 
580 template <size_t componentCount>
581 inline void Load32FTo16F(size_t width,
582                          size_t height,
583                          size_t depth,
584                          const uint8_t *input,
585                          size_t inputRowPitch,
586                          size_t inputDepthPitch,
587                          uint8_t *output,
588                          size_t outputRowPitch,
589                          size_t outputDepthPitch);
590 
591 void LoadRGB32FToRGBA16F(size_t width,
592                          size_t height,
593                          size_t depth,
594                          const uint8_t *input,
595                          size_t inputRowPitch,
596                          size_t inputDepthPitch,
597                          uint8_t *output,
598                          size_t outputRowPitch,
599                          size_t outputDepthPitch);
600 
601 void LoadRGB32FToRGB16F(size_t width,
602                         size_t height,
603                         size_t depth,
604                         const uint8_t *input,
605                         size_t inputRowPitch,
606                         size_t inputDepthPitch,
607                         uint8_t *output,
608                         size_t outputRowPitch,
609                         size_t outputDepthPitch);
610 
611 template <size_t blockWidth, size_t blockHeight, size_t blockDepth, size_t blockSize>
612 inline void LoadCompressedToNative(size_t width,
613                                    size_t height,
614                                    size_t depth,
615                                    const uint8_t *input,
616                                    size_t inputRowPitch,
617                                    size_t inputDepthPitch,
618                                    uint8_t *output,
619                                    size_t outputRowPitch,
620                                    size_t outputDepthPitch);
621 
622 void LoadR32ToR16(size_t width,
623                   size_t height,
624                   size_t depth,
625                   const uint8_t *input,
626                   size_t inputRowPitch,
627                   size_t inputDepthPitch,
628                   uint8_t *output,
629                   size_t outputRowPitch,
630                   size_t outputDepthPitch);
631 
632 template <typename type,
633           uint32_t firstBits,
634           uint32_t secondBits,
635           uint32_t thirdBits,
636           uint32_t fourthBits>
637 inline void Initialize4ComponentData(size_t width,
638                                      size_t height,
639                                      size_t depth,
640                                      uint8_t *output,
641                                      size_t outputRowPitch,
642                                      size_t outputDepthPitch);
643 
644 void LoadR32ToR24G8(size_t width,
645                     size_t height,
646                     size_t depth,
647                     const uint8_t *input,
648                     size_t inputRowPitch,
649                     size_t inputDepthPitch,
650                     uint8_t *output,
651                     size_t outputRowPitch,
652                     size_t outputDepthPitch);
653 
654 void LoadETC1RGB8ToRGBA8(size_t width,
655                          size_t height,
656                          size_t depth,
657                          const uint8_t *input,
658                          size_t inputRowPitch,
659                          size_t inputDepthPitch,
660                          uint8_t *output,
661                          size_t outputRowPitch,
662                          size_t outputDepthPitch);
663 
664 void LoadETC1RGB8ToBC1(size_t width,
665                        size_t height,
666                        size_t depth,
667                        const uint8_t *input,
668                        size_t inputRowPitch,
669                        size_t inputDepthPitch,
670                        uint8_t *output,
671                        size_t outputRowPitch,
672                        size_t outputDepthPitch);
673 
674 void LoadEACR11ToR8(size_t width,
675                     size_t height,
676                     size_t depth,
677                     const uint8_t *input,
678                     size_t inputRowPitch,
679                     size_t inputDepthPitch,
680                     uint8_t *output,
681                     size_t outputRowPitch,
682                     size_t outputDepthPitch);
683 
684 void LoadEACR11SToR8(size_t width,
685                      size_t height,
686                      size_t depth,
687                      const uint8_t *input,
688                      size_t inputRowPitch,
689                      size_t inputDepthPitch,
690                      uint8_t *output,
691                      size_t outputRowPitch,
692                      size_t outputDepthPitch);
693 
694 void LoadEACRG11ToRG8(size_t width,
695                       size_t height,
696                       size_t depth,
697                       const uint8_t *input,
698                       size_t inputRowPitch,
699                       size_t inputDepthPitch,
700                       uint8_t *output,
701                       size_t outputRowPitch,
702                       size_t outputDepthPitch);
703 
704 void LoadEACRG11SToRG8(size_t width,
705                        size_t height,
706                        size_t depth,
707                        const uint8_t *input,
708                        size_t inputRowPitch,
709                        size_t inputDepthPitch,
710                        uint8_t *output,
711                        size_t outputRowPitch,
712                        size_t outputDepthPitch);
713 
714 void LoadEACR11ToR16(size_t width,
715                      size_t height,
716                      size_t depth,
717                      const uint8_t *input,
718                      size_t inputRowPitch,
719                      size_t inputDepthPitch,
720                      uint8_t *output,
721                      size_t outputRowPitch,
722                      size_t outputDepthPitch);
723 
724 void LoadEACR11SToR16(size_t width,
725                       size_t height,
726                       size_t depth,
727                       const uint8_t *input,
728                       size_t inputRowPitch,
729                       size_t inputDepthPitch,
730                       uint8_t *output,
731                       size_t outputRowPitch,
732                       size_t outputDepthPitch);
733 
734 void LoadEACRG11ToRG16(size_t width,
735                        size_t height,
736                        size_t depth,
737                        const uint8_t *input,
738                        size_t inputRowPitch,
739                        size_t inputDepthPitch,
740                        uint8_t *output,
741                        size_t outputRowPitch,
742                        size_t outputDepthPitch);
743 
744 void LoadEACRG11SToRG16(size_t width,
745                         size_t height,
746                         size_t depth,
747                         const uint8_t *input,
748                         size_t inputRowPitch,
749                         size_t inputDepthPitch,
750                         uint8_t *output,
751                         size_t outputRowPitch,
752                         size_t outputDepthPitch);
753 
754 void LoadEACR11ToR16F(size_t width,
755                       size_t height,
756                       size_t depth,
757                       const uint8_t *input,
758                       size_t inputRowPitch,
759                       size_t inputDepthPitch,
760                       uint8_t *output,
761                       size_t outputRowPitch,
762                       size_t outputDepthPitch);
763 
764 void LoadEACR11SToR16F(size_t width,
765                        size_t height,
766                        size_t depth,
767                        const uint8_t *input,
768                        size_t inputRowPitch,
769                        size_t inputDepthPitch,
770                        uint8_t *output,
771                        size_t outputRowPitch,
772                        size_t outputDepthPitch);
773 
774 void LoadEACRG11ToRG16F(size_t width,
775                         size_t height,
776                         size_t depth,
777                         const uint8_t *input,
778                         size_t inputRowPitch,
779                         size_t inputDepthPitch,
780                         uint8_t *output,
781                         size_t outputRowPitch,
782                         size_t outputDepthPitch);
783 
784 void LoadEACRG11SToRG16F(size_t width,
785                          size_t height,
786                          size_t depth,
787                          const uint8_t *input,
788                          size_t inputRowPitch,
789                          size_t inputDepthPitch,
790                          uint8_t *output,
791                          size_t outputRowPitch,
792                          size_t outputDepthPitch);
793 
794 void LoadETC2RGB8ToRGBA8(size_t width,
795                          size_t height,
796                          size_t depth,
797                          const uint8_t *input,
798                          size_t inputRowPitch,
799                          size_t inputDepthPitch,
800                          uint8_t *output,
801                          size_t outputRowPitch,
802                          size_t outputDepthPitch);
803 
804 void LoadETC2RGB8ToBC1(size_t width,
805                        size_t height,
806                        size_t depth,
807                        const uint8_t *input,
808                        size_t inputRowPitch,
809                        size_t inputDepthPitch,
810                        uint8_t *output,
811                        size_t outputRowPitch,
812                        size_t outputDepthPitch);
813 
814 void LoadETC2SRGB8ToRGBA8(size_t width,
815                           size_t height,
816                           size_t depth,
817                           const uint8_t *input,
818                           size_t inputRowPitch,
819                           size_t inputDepthPitch,
820                           uint8_t *output,
821                           size_t outputRowPitch,
822                           size_t outputDepthPitch);
823 
824 void LoadETC2SRGB8ToBC1(size_t width,
825                         size_t height,
826                         size_t depth,
827                         const uint8_t *input,
828                         size_t inputRowPitch,
829                         size_t inputDepthPitch,
830                         uint8_t *output,
831                         size_t outputRowPitch,
832                         size_t outputDepthPitch);
833 
834 void LoadETC2RGB8A1ToRGBA8(size_t width,
835                            size_t height,
836                            size_t depth,
837                            const uint8_t *input,
838                            size_t inputRowPitch,
839                            size_t inputDepthPitch,
840                            uint8_t *output,
841                            size_t outputRowPitch,
842                            size_t outputDepthPitch);
843 
844 void LoadETC2RGB8A1ToBC1(size_t width,
845                          size_t height,
846                          size_t depth,
847                          const uint8_t *input,
848                          size_t inputRowPitch,
849                          size_t inputDepthPitch,
850                          uint8_t *output,
851                          size_t outputRowPitch,
852                          size_t outputDepthPitch);
853 
854 void LoadETC2SRGB8A1ToRGBA8(size_t width,
855                             size_t height,
856                             size_t depth,
857                             const uint8_t *input,
858                             size_t inputRowPitch,
859                             size_t inputDepthPitch,
860                             uint8_t *output,
861                             size_t outputRowPitch,
862                             size_t outputDepthPitch);
863 
864 void LoadETC2SRGB8A1ToBC1(size_t width,
865                           size_t height,
866                           size_t depth,
867                           const uint8_t *input,
868                           size_t inputRowPitch,
869                           size_t inputDepthPitch,
870                           uint8_t *output,
871                           size_t outputRowPitch,
872                           size_t outputDepthPitch);
873 
874 void LoadETC2RGBA8ToRGBA8(size_t width,
875                           size_t height,
876                           size_t depth,
877                           const uint8_t *input,
878                           size_t inputRowPitch,
879                           size_t inputDepthPitch,
880                           uint8_t *output,
881                           size_t outputRowPitch,
882                           size_t outputDepthPitch);
883 
884 void LoadETC2SRGBA8ToSRGBA8(size_t width,
885                             size_t height,
886                             size_t depth,
887                             const uint8_t *input,
888                             size_t inputRowPitch,
889                             size_t inputDepthPitch,
890                             uint8_t *output,
891                             size_t outputRowPitch,
892                             size_t outputDepthPitch);
893 
894 }  // namespace angle
895 
896 #include "loadimage.inc"
897 
898 #endif  // IMAGEUTIL_LOADIMAGE_H_
899