blob: 179504dedfa5e9ba6233389c4803744c832bae93 [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 Madill139b9092013-08-30 13:21:06 -040044Varying::Varying(GLenum typeIn, GLenum precisionIn, const char *nameIn, unsigned int arraySizeIn, InterpolationType interpolationIn)
45 : ShaderVariable(typeIn, precisionIn, nameIn, arraySizeIn),
Jamie Madilla6da33a2013-08-30 13:21:07 -040046 interpolation(interpolationIn),
47 registerIndex(GL_INVALID_INDEX),
48 elementIndex(GL_INVALID_INDEX)
Jamie Madill47fdd132013-08-30 13:21:04 -040049{
50}
51
Jamie Madilla6da33a2013-08-30 13:21:07 -040052void Varying::resetRegisterAssignment()
53{
54 registerIndex = GL_INVALID_INDEX;
55 elementIndex = GL_INVALID_INDEX;
56}
57
shannonwoods@chromium.orgd7784172013-05-30 00:07:03 +000058BlockMemberInfo::BlockMemberInfo(int offset, int arrayStride, int matrixStride, bool isRowMajorMatrix)
59 : offset(offset),
60 arrayStride(arrayStride),
61 matrixStride(matrixStride),
62 isRowMajorMatrix(isRowMajorMatrix)
63{
64}
65
66const BlockMemberInfo BlockMemberInfo::defaultBlockInfo(-1, -1, -1, false);
67
shannonwoods@chromium.org1500f092013-05-30 00:11:20 +000068InterfaceBlock::InterfaceBlock(const char *name, unsigned int arraySize, unsigned int registerIndex)
69 : name(name),
70 arraySize(arraySize),
shannonwoods@chromium.org70961b32013-05-30 00:17:48 +000071 layout(BLOCKLAYOUT_SHARED),
Jamie Madill9060a4e2013-08-12 16:22:57 -070072 registerIndex(registerIndex),
73 isRowMajorLayout(false)
shannonwoods@chromium.org1500f092013-05-30 00:11:20 +000074{
75}
76
shannonwoods@chromium.org7e0904d2013-05-30 00:06:45 +000077}