blob: ac869c9524824c4b24feaa5ff21ebd03a30ff6a7 [file] [log] [blame]
daniel@transgaming.com15186aa2012-12-20 21:08:23 +00001//
daniel@transgaming.come76b64b2013-01-11 04:10:08 +00002// Copyright (c) 2010-2013 The ANGLE Project Authors. All rights reserved.
daniel@transgaming.com15186aa2012-12-20 21:08:23 +00003// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6
7#include "libGLESv2/Uniform.h"
8
9#include "libGLESv2/utilities.h"
10
11namespace gl
12{
13
daniel@transgaming.comdb019952012-12-20 21:13:32 +000014Uniform::Uniform(GLenum type, const std::string &name, unsigned int arraySize)
15 : type(type), name(name), arraySize(arraySize)
daniel@transgaming.com15186aa2012-12-20 21:08:23 +000016{
daniel@transgaming.come6d12e92012-12-20 21:12:47 +000017 int bytes = gl::UniformInternalSize(type) * elementCount();
daniel@transgaming.com15186aa2012-12-20 21:08:23 +000018 data = new unsigned char[bytes];
19 memset(data, 0, bytes);
20 dirty = true;
daniel@transgaming.come76b64b2013-01-11 04:10:08 +000021
22 psRegisterIndex = -1;
23 vsRegisterIndex = -1;
24 registerCount = VariableRowCount(type) * elementCount();
daniel@transgaming.com15186aa2012-12-20 21:08:23 +000025}
26
27Uniform::~Uniform()
28{
29 delete[] data;
30}
31
daniel@transgaming.come6d12e92012-12-20 21:12:47 +000032bool Uniform::isArray() const
daniel@transgaming.com15186aa2012-12-20 21:08:23 +000033{
daniel@transgaming.comdb019952012-12-20 21:13:32 +000034 return arraySize > 0;
daniel@transgaming.come6d12e92012-12-20 21:12:47 +000035}
36
37unsigned int Uniform::elementCount() const
38{
39 return arraySize > 0 ? arraySize : 1;
40}
41
daniel@transgaming.com15186aa2012-12-20 21:08:23 +000042}