1 // GENERATED FILE - DO NOT EDIT. 2 // Generated by gen_packed_gl_enums.py using data from packed_gl_enums.json. 3 // 4 // Copyright 2017 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 // PackedGLEnums_autogen.cpp: 9 // Implements ANGLE-specific enums classes for GLEnum and functions operating 10 // on them. 11 12 #include "libANGLE/PackedGLEnums_autogen.h" 13 #include "common/debug.h" 14 15 namespace gl 16 { 17 18 template <> FromGLenum(GLenum from)19BufferBinding FromGLenum<BufferBinding>(GLenum from) 20 { 21 switch (from) 22 { 23 case GL_ARRAY_BUFFER: 24 return BufferBinding::Array; 25 case GL_ATOMIC_COUNTER_BUFFER: 26 return BufferBinding::AtomicCounter; 27 case GL_COPY_READ_BUFFER: 28 return BufferBinding::CopyRead; 29 case GL_COPY_WRITE_BUFFER: 30 return BufferBinding::CopyWrite; 31 case GL_DISPATCH_INDIRECT_BUFFER: 32 return BufferBinding::DispatchIndirect; 33 case GL_DRAW_INDIRECT_BUFFER: 34 return BufferBinding::DrawIndirect; 35 case GL_ELEMENT_ARRAY_BUFFER: 36 return BufferBinding::ElementArray; 37 case GL_PIXEL_PACK_BUFFER: 38 return BufferBinding::PixelPack; 39 case GL_PIXEL_UNPACK_BUFFER: 40 return BufferBinding::PixelUnpack; 41 case GL_SHADER_STORAGE_BUFFER: 42 return BufferBinding::ShaderStorage; 43 case GL_TRANSFORM_FEEDBACK_BUFFER: 44 return BufferBinding::TransformFeedback; 45 case GL_UNIFORM_BUFFER: 46 return BufferBinding::Uniform; 47 default: 48 return BufferBinding::InvalidEnum; 49 } 50 } 51 ToGLenum(BufferBinding from)52GLenum ToGLenum(BufferBinding from) 53 { 54 switch (from) 55 { 56 case BufferBinding::Array: 57 return GL_ARRAY_BUFFER; 58 case BufferBinding::AtomicCounter: 59 return GL_ATOMIC_COUNTER_BUFFER; 60 case BufferBinding::CopyRead: 61 return GL_COPY_READ_BUFFER; 62 case BufferBinding::CopyWrite: 63 return GL_COPY_WRITE_BUFFER; 64 case BufferBinding::DispatchIndirect: 65 return GL_DISPATCH_INDIRECT_BUFFER; 66 case BufferBinding::DrawIndirect: 67 return GL_DRAW_INDIRECT_BUFFER; 68 case BufferBinding::ElementArray: 69 return GL_ELEMENT_ARRAY_BUFFER; 70 case BufferBinding::PixelPack: 71 return GL_PIXEL_PACK_BUFFER; 72 case BufferBinding::PixelUnpack: 73 return GL_PIXEL_UNPACK_BUFFER; 74 case BufferBinding::ShaderStorage: 75 return GL_SHADER_STORAGE_BUFFER; 76 case BufferBinding::TransformFeedback: 77 return GL_TRANSFORM_FEEDBACK_BUFFER; 78 case BufferBinding::Uniform: 79 return GL_UNIFORM_BUFFER; 80 default: 81 UNREACHABLE(); 82 return GL_NONE; 83 } 84 } 85 86 template <> FromGLenum(GLenum from)87BufferUsage FromGLenum<BufferUsage>(GLenum from) 88 { 89 switch (from) 90 { 91 case GL_DYNAMIC_COPY: 92 return BufferUsage::DynamicCopy; 93 case GL_DYNAMIC_DRAW: 94 return BufferUsage::DynamicDraw; 95 case GL_DYNAMIC_READ: 96 return BufferUsage::DynamicRead; 97 case GL_STATIC_COPY: 98 return BufferUsage::StaticCopy; 99 case GL_STATIC_DRAW: 100 return BufferUsage::StaticDraw; 101 case GL_STATIC_READ: 102 return BufferUsage::StaticRead; 103 case GL_STREAM_COPY: 104 return BufferUsage::StreamCopy; 105 case GL_STREAM_DRAW: 106 return BufferUsage::StreamDraw; 107 case GL_STREAM_READ: 108 return BufferUsage::StreamRead; 109 default: 110 return BufferUsage::InvalidEnum; 111 } 112 } 113 ToGLenum(BufferUsage from)114GLenum ToGLenum(BufferUsage from) 115 { 116 switch (from) 117 { 118 case BufferUsage::DynamicCopy: 119 return GL_DYNAMIC_COPY; 120 case BufferUsage::DynamicDraw: 121 return GL_DYNAMIC_DRAW; 122 case BufferUsage::DynamicRead: 123 return GL_DYNAMIC_READ; 124 case BufferUsage::StaticCopy: 125 return GL_STATIC_COPY; 126 case BufferUsage::StaticDraw: 127 return GL_STATIC_DRAW; 128 case BufferUsage::StaticRead: 129 return GL_STATIC_READ; 130 case BufferUsage::StreamCopy: 131 return GL_STREAM_COPY; 132 case BufferUsage::StreamDraw: 133 return GL_STREAM_DRAW; 134 case BufferUsage::StreamRead: 135 return GL_STREAM_READ; 136 default: 137 UNREACHABLE(); 138 return GL_NONE; 139 } 140 } 141 142 template <> FromGLenum(GLenum from)143CullFaceMode FromGLenum<CullFaceMode>(GLenum from) 144 { 145 switch (from) 146 { 147 case GL_BACK: 148 return CullFaceMode::Back; 149 case GL_FRONT: 150 return CullFaceMode::Front; 151 case GL_FRONT_AND_BACK: 152 return CullFaceMode::FrontAndBack; 153 default: 154 return CullFaceMode::InvalidEnum; 155 } 156 } 157 ToGLenum(CullFaceMode from)158GLenum ToGLenum(CullFaceMode from) 159 { 160 switch (from) 161 { 162 case CullFaceMode::Back: 163 return GL_BACK; 164 case CullFaceMode::Front: 165 return GL_FRONT; 166 case CullFaceMode::FrontAndBack: 167 return GL_FRONT_AND_BACK; 168 default: 169 UNREACHABLE(); 170 return GL_NONE; 171 } 172 } 173 174 } // namespace gl 175