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)18bool 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