1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef WEBGLUNIFORMINFO_H_
7 #define WEBGLUNIFORMINFO_H_
10 #include "angle/ShaderLang.h"
14 struct WebGLUniformInfo
{
19 explicit WebGLUniformInfo(uint32_t s
= 0, bool a
= false, sh::GLenum t
= LOCAL_GL_NONE
)
20 : arraySize(s
), isArray(a
), type(t
) {}
22 int ElementSize() const {
26 case LOCAL_GL_UNSIGNED_INT
:
28 case LOCAL_GL_SAMPLER_2D
:
29 case LOCAL_GL_SAMPLER_3D
:
30 case LOCAL_GL_SAMPLER_CUBE
:
31 case LOCAL_GL_SAMPLER_2D_SHADOW
:
32 case LOCAL_GL_SAMPLER_2D_ARRAY
:
33 case LOCAL_GL_SAMPLER_2D_ARRAY_SHADOW
:
34 case LOCAL_GL_SAMPLER_CUBE_SHADOW
:
35 case LOCAL_GL_INT_SAMPLER_2D
:
36 case LOCAL_GL_INT_SAMPLER_3D
:
37 case LOCAL_GL_INT_SAMPLER_CUBE
:
38 case LOCAL_GL_INT_SAMPLER_2D_ARRAY
:
39 case LOCAL_GL_UNSIGNED_INT_SAMPLER_2D
:
40 case LOCAL_GL_UNSIGNED_INT_SAMPLER_3D
:
41 case LOCAL_GL_UNSIGNED_INT_SAMPLER_CUBE
:
42 case LOCAL_GL_UNSIGNED_INT_SAMPLER_2D_ARRAY
:
44 case LOCAL_GL_FLOAT_VEC2
:
45 case LOCAL_GL_INT_VEC2
:
46 case LOCAL_GL_UNSIGNED_INT_VEC2
:
47 case LOCAL_GL_BOOL_VEC2
:
49 case LOCAL_GL_FLOAT_VEC3
:
50 case LOCAL_GL_INT_VEC3
:
51 case LOCAL_GL_UNSIGNED_INT_VEC3
:
52 case LOCAL_GL_BOOL_VEC3
:
54 case LOCAL_GL_FLOAT_VEC4
:
55 case LOCAL_GL_INT_VEC4
:
56 case LOCAL_GL_UNSIGNED_INT_VEC4
:
57 case LOCAL_GL_BOOL_VEC4
:
58 case LOCAL_GL_FLOAT_MAT2
:
60 case LOCAL_GL_FLOAT_MAT2x3
:
61 case LOCAL_GL_FLOAT_MAT3x2
:
63 case LOCAL_GL_FLOAT_MAT2x4
:
64 case LOCAL_GL_FLOAT_MAT4x2
:
66 case LOCAL_GL_FLOAT_MAT3
:
68 case LOCAL_GL_FLOAT_MAT3x4
:
69 case LOCAL_GL_FLOAT_MAT4x3
:
71 case LOCAL_GL_FLOAT_MAT4
:
74 MOZ_ASSERT(false); // should never get here
80 } // namespace mozilla