xref: /aosp_15_r20/external/angle/src/libANGLE/es3_copy_conversion_table_autogen.cpp (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by gen_copy_conversion_table.py using data from es3_copy_conversion_formats.json.
3 //
4 // Copyright 2016 The ANGLE Project Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style license that can be
6 // found in the LICENSE file.
7 //
8 // format_map:
9 //   Determining the sized internal format from a (format,type) pair.
10 //   Also check es3 format combinations for validity.
11 
12 #include "angle_gl.h"
13 #include "common/debug.h"
14 
15 namespace gl
16 {
17 
ValidES3CopyConversion(GLenum textureFormat,GLenum framebufferFormat)18 bool ValidES3CopyConversion(GLenum textureFormat, GLenum framebufferFormat)
19 {
20     switch (textureFormat)
21     {
22         case GL_ALPHA:
23             switch (framebufferFormat)
24             {
25                 case GL_BGRA_EXT:
26                 case GL_RGBA:
27                     return true;
28                 default:
29                     break;
30             }
31             break;
32 
33         case GL_BGRA_EXT:
34             switch (framebufferFormat)
35             {
36                 case GL_BGRA_EXT:
37                 case GL_RGBA:
38                     return true;
39                 default:
40                     break;
41             }
42             break;
43 
44         case GL_LUMINANCE:
45             switch (framebufferFormat)
46             {
47                 case GL_BGRA_EXT:
48                 case GL_RED:
49                 case GL_RG:
50                 case GL_RGB:
51                 case GL_RGBA:
52                     return true;
53                 default:
54                     break;
55             }
56             break;
57 
58         case GL_LUMINANCE_ALPHA:
59             switch (framebufferFormat)
60             {
61                 case GL_BGRA_EXT:
62                 case GL_RGBA:
63                     return true;
64                 default:
65                     break;
66             }
67             break;
68 
69         case GL_RED:
70             switch (framebufferFormat)
71             {
72                 case GL_BGRA_EXT:
73                 case GL_RED:
74                 case GL_RG:
75                 case GL_RGB:
76                 case GL_RGBA:
77                     return true;
78                 default:
79                     break;
80             }
81             break;
82 
83         case GL_RED_INTEGER:
84             switch (framebufferFormat)
85             {
86                 case GL_RED_INTEGER:
87                 case GL_RGBA_INTEGER:
88                 case GL_RGB_INTEGER:
89                 case GL_RG_INTEGER:
90                     return true;
91                 default:
92                     break;
93             }
94             break;
95 
96         case GL_RG:
97             switch (framebufferFormat)
98             {
99                 case GL_BGRA_EXT:
100                 case GL_RG:
101                 case GL_RGB:
102                 case GL_RGBA:
103                     return true;
104                 default:
105                     break;
106             }
107             break;
108 
109         case GL_RGB:
110             switch (framebufferFormat)
111             {
112                 case GL_BGRA_EXT:
113                 case GL_RGB:
114                 case GL_RGBA:
115                     return true;
116                 default:
117                     break;
118             }
119             break;
120 
121         case GL_RGBA:
122             switch (framebufferFormat)
123             {
124                 case GL_BGRA_EXT:
125                 case GL_RGBA:
126                     return true;
127                 default:
128                     break;
129             }
130             break;
131 
132         case GL_RGBA_INTEGER:
133             switch (framebufferFormat)
134             {
135                 case GL_RGBA_INTEGER:
136                     return true;
137                 default:
138                     break;
139             }
140             break;
141 
142         case GL_RGB_INTEGER:
143             switch (framebufferFormat)
144             {
145                 case GL_RGBA_INTEGER:
146                 case GL_RGB_INTEGER:
147                     return true;
148                 default:
149                     break;
150             }
151             break;
152 
153         case GL_RG_INTEGER:
154             switch (framebufferFormat)
155             {
156                 case GL_RGBA_INTEGER:
157                 case GL_RGB_INTEGER:
158                 case GL_RG_INTEGER:
159                     return true;
160                 default:
161                     break;
162             }
163             break;
164 
165         default:
166             break;
167     }
168 
169     return false;
170 }
171 
172 }  // namespace gl
173