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