1//
2// Copyright (c) 2002-2012 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
7#ifndef COMPILER_TRANSLATOR_HASHNAMES_H_
8#define COMPILER_TRANSLATOR_HASHNAMES_H_
9
10#include <map>
11
12#include "GLSLANG/ShaderLang.h"
13#include "compiler/translator/Common.h"
14
15namespace sh
16{
17
18typedef std::map<TPersistString, TPersistString> NameMap;
19
20class ImmutableString;
21class TSymbol;
22
23ImmutableString HashName(const ImmutableString &name,
24 ShHashFunction64 hashFunction,
25 NameMap *nameMap);
26
27// Hash user-defined name for GLSL output, with special handling for internal names.
28// The nameMap parameter is optional and is used to cache hashed names if set.
29ImmutableString HashName(const TSymbol *symbol, ShHashFunction64 hashFunction, NameMap *nameMap);
30
31} // namespace sh
32
33#endif // COMPILER_TRANSLATOR_HASHNAMES_H_
34