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                     return true;
38                 default:
39                     break;
40             }
41             break;
42 
43         case GL_LUMINANCE:
44             switch (framebufferFormat)
45             {
46                 case GL_BGRA_EXT:
47                 case GL_RED:
48                 case GL_RG:
49                 case GL_RGB:
50                 case GL_RGBA:
51                     return true;
52                 default:
53                     break;
54             }
55             break;
56 
57         case GL_LUMINANCE_ALPHA:
58             switch (framebufferFormat)
59             {
60                 case GL_BGRA_EXT:
61                 case GL_RGBA:
62                     return true;
63                 default:
64                     break;
65             }
66             break;
67 
68         case GL_RED:
69             switch (framebufferFormat)
70             {
71                 case GL_BGRA_EXT:
72                 case GL_RED:
73                 case GL_RG:
74                 case GL_RGB:
75                 case GL_RGBA:
76                     return true;
77                 default:
78                     break;
79             }
80             break;
81 
82         case GL_RED_INTEGER:
83             switch (framebufferFormat)
84             {
85                 case GL_RED_INTEGER:
86                 case GL_RGBA_INTEGER:
87                 case GL_RGB_INTEGER:
88                 case GL_RG_INTEGER:
89                     return true;
90                 default:
91                     break;
92             }
93             break;
94 
95         case GL_RG:
96             switch (framebufferFormat)
97             {
98                 case GL_BGRA_EXT:
99                 case GL_RG:
100                 case GL_RGB:
101                 case GL_RGBA:
102                     return true;
103                 default:
104                     break;
105             }
106             break;
107 
108         case GL_RGB:
109             switch (framebufferFormat)
110             {
111                 case GL_BGRA_EXT:
112                 case GL_RGB:
113                 case GL_RGBA:
114                     return true;
115                 default:
116                     break;
117             }
118             break;
119 
120         case GL_RGBA:
121             switch (framebufferFormat)
122             {
123                 case GL_BGRA_EXT:
124                 case GL_RGBA:
125                     return true;
126                 default:
127                     break;
128             }
129             break;
130 
131         case GL_RGBA_INTEGER:
132             switch (framebufferFormat)
133             {
134                 case GL_RGBA_INTEGER:
135                     return true;
136                 default:
137                     break;
138             }
139             break;
140 
141         case GL_RGB_INTEGER:
142             switch (framebufferFormat)
143             {
144                 case GL_RGBA_INTEGER:
145                 case GL_RGB_INTEGER:
146                     return true;
147                 default:
148                     break;
149             }
150             break;
151 
152         case GL_RG_INTEGER:
153             switch (framebufferFormat)
154             {
155                 case GL_RGBA_INTEGER:
156                 case GL_RGB_INTEGER:
157                 case GL_RG_INTEGER:
158                     return true;
159                 default:
160                     break;
161             }
162             break;
163 
164         default:
165             break;
166     }
167 
168     return false;
169 }
170 
171 }  // namespace gl
172