1 #include "precompiled.h"
3 // Copyright 2014 The ANGLE Project Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style license that can be
5 // found in the LICENSE file.
7 // Implementation of the state class for mananging GLES 3 Vertex Array Objects.
10 #include "libGLESv2/VertexAttribute.h"
15 VertexAttribute::VertexAttribute()
27 size_t ComputeVertexAttributeTypeSize(const VertexAttribute& attrib)
29 GLuint size = attrib.size;
32 case GL_BYTE: return size * sizeof(GLbyte);
33 case GL_UNSIGNED_BYTE: return size * sizeof(GLubyte);
34 case GL_SHORT: return size * sizeof(GLshort);
35 case GL_UNSIGNED_SHORT: return size * sizeof(GLushort);
36 case GL_INT: return size * sizeof(GLint);
37 case GL_UNSIGNED_INT: return size * sizeof(GLuint);
38 case GL_INT_2_10_10_10_REV: return 4;
39 case GL_UNSIGNED_INT_2_10_10_10_REV: return 4;
40 case GL_FIXED: return size * sizeof(GLfixed);
41 case GL_HALF_FLOAT: return size * sizeof(GLhalf);
42 case GL_FLOAT: return size * sizeof(GLfloat);
43 default: UNREACHABLE(); return size * sizeof(GLfloat);
47 size_t ComputeVertexAttributeStride(const VertexAttribute& attrib)
53 return attrib.stride ? attrib.stride : ComputeVertexAttributeTypeSize(attrib);