xref: /third_party/mesa3d/src/util/tests/format/srgb.c (revision bf215546)
1#include <stdio.h>
2#include <stdlib.h>
3
4#include "util/macros.h"
5#include "util/format/u_format.h"
6#include "pipe/p_format.h"
7
8int main(void)
9{
10   for (enum pipe_format format = 0; format < PIPE_FORMAT_COUNT; format++)
11   {
12      if (!util_format_is_srgb(format)) {
13         const enum pipe_format linear = util_format_linear(format);
14         if (format != linear) {
15            fprintf(stderr, "%s converted to linear is %s\n",
16                    util_format_name(format),
17                    util_format_name(linear));
18            return EXIT_FAILURE;
19         }
20         continue;
21      }
22
23      const enum pipe_format linear = util_format_linear(format);
24      if (format == linear) {
25         fprintf(stderr, "%s can't be converted to a linear equivalent\n",
26                 util_format_name(format));
27         return EXIT_FAILURE;
28      }
29
30      const enum pipe_format srgb = util_format_srgb(linear);
31      if (format != srgb) {
32         fprintf(stderr, "%s converted to linear and back to srgb becomes %s\n",
33                 util_format_name(format),
34                 util_format_name(srgb));
35         return EXIT_FAILURE;
36      }
37   }
38
39   return EXIT_SUCCESS;
40}
41