blob: efc3582a7b90605982c1cf541df76f4d1210d01a [file] [log] [blame]
shannonwoods@chromium.org7e0904d2013-05-30 00:06:45 +00001//
2// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6
Jamie Madill1cb333e2013-08-30 13:21:05 -04007#include "compiler/ShaderVariable.h"
shannonwoods@chromium.org7e0904d2013-05-30 00:06:45 +00008
9namespace sh
10{
11
Jamie Madill9d2ffb12013-08-30 13:21:04 -040012ShaderVariable::ShaderVariable(GLenum typeIn, GLenum precisionIn, const char *nameIn, unsigned int arraySizeIn)
13 : type(typeIn),
14 precision(precisionIn),
15 name(nameIn),
16 arraySize(arraySizeIn)
17{
18}
19
20Uniform::Uniform(GLenum typeIn, GLenum precisionIn, const char *nameIn, unsigned int arraySizeIn, unsigned int registerIndexIn)
21 : ShaderVariable(typeIn, precisionIn, nameIn, arraySizeIn),
22 registerIndex(registerIndexIn)
23{
24}
25
26Attribute::Attribute()
27 : ShaderVariable(GL_NONE, GL_NONE, "", 0),
Jamie Madilldefb6742013-06-20 11:55:51 -040028 location(-1)
29{
30}
31
Jamie Madill9d2ffb12013-08-30 13:21:04 -040032Attribute::Attribute(GLenum typeIn, GLenum precisionIn, const char *nameIn, unsigned int arraySizeIn, int locationIn)
33 : ShaderVariable(typeIn, precisionIn, nameIn, arraySizeIn),
34 location(locationIn)
Jamie Madill46131a32013-06-20 11:55:50 -040035{
36}
37
Jamie Madill9d2ffb12013-08-30 13:21:04 -040038InterfaceBlockField::InterfaceBlockField(GLenum typeIn, GLenum precisionIn, const char *nameIn, unsigned int arraySizeIn, bool isRowMajorMatrix)
39 : ShaderVariable(typeIn, precisionIn, nameIn, arraySizeIn),
40 isRowMajorMatrix(isRowMajorMatrix)
shannonwoods@chromium.org7e0904d2013-05-30 00:06:45 +000041{
shannonwoods@chromium.org7e0904d2013-05-30 00:06:45 +000042}
43
Jamie Madill47fdd132013-08-30 13:21:04 -040044Varying::Varying(GLenum typeIn, GLenum precisionIn, const char *nameIn, unsigned int arraySizeIn)
45 : ShaderVariable(typeIn, precisionIn, nameIn, arraySizeIn)
46{
47}
48
shannonwoods@chromium.orgd7784172013-05-30 00:07:03 +000049BlockMemberInfo::BlockMemberInfo(int offset, int arrayStride, int matrixStride, bool isRowMajorMatrix)
50 : offset(offset),
51 arrayStride(arrayStride),
52 matrixStride(matrixStride),
53 isRowMajorMatrix(isRowMajorMatrix)
54{
55}
56
57const BlockMemberInfo BlockMemberInfo::defaultBlockInfo(-1, -1, -1, false);
58
shannonwoods@chromium.org1500f092013-05-30 00:11:20 +000059InterfaceBlock::InterfaceBlock(const char *name, unsigned int arraySize, unsigned int registerIndex)
60 : name(name),
61 arraySize(arraySize),
shannonwoods@chromium.org70961b32013-05-30 00:17:48 +000062 layout(BLOCKLAYOUT_SHARED),
Jamie Madill9060a4e2013-08-12 16:22:57 -070063 registerIndex(registerIndex),
64 isRowMajorLayout(false)
shannonwoods@chromium.org1500f092013-05-30 00:11:20 +000065{
66}
67
shannonwoods@chromium.org7e0904d2013-05-30 00:06:45 +000068}