Exclude shared_presentable_image scale down from Android CTS am: 4e9d89ac4a
[platform/upstream/VK-GL-CTS.git] / framework / randomshaders / rsgNameAllocator.cpp
1 /*-------------------------------------------------------------------------
2  * drawElements Quality Program Random Shader Generator
3  * ----------------------------------------------------
4  *
5  * Copyright 2014 The Android Open Source Project
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  *//*!
20  * \file
21  * \brief Name Allocator.
22  *//*--------------------------------------------------------------------*/
23
24 #include "rsgNameAllocator.hpp"
25
26 namespace rsg
27 {
28
29 NameAllocator::NameAllocator (void)
30         : m_nextName(1)
31 {
32 }
33
34 NameAllocator::~NameAllocator (void)
35 {
36 }
37
38 inline std::string nameNdxToStr (deUint32 name)
39 {
40         std::string     str                     = "";
41         deUint32        alphabetLen     = 'z' - 'a' + 1;
42
43         while (name > alphabetLen)
44         {
45                 str.insert(str.begin(), (char)('a' + ((name-1)%alphabetLen)));
46                 name = ((name-1) / alphabetLen);
47         }
48
49         str.insert(str.begin(), (char)('a' + (name%(alphabetLen+1)) - 1));
50
51         return str;
52 }
53
54 std::string NameAllocator::allocate (void)
55 {
56         DE_ASSERT(m_nextName != 0);
57         return nameNdxToStr(m_nextName++);
58 }
59
60 } // rsg