Merge vk-gl-cts/opengl-es-cts-3.2.3 into vk-gl-cts/opengl-es-cts-3.2.4
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / modules / vulkan / geometry / vktGeometryBasicClass.hpp
1 #ifndef _VKTGEOMETRYBASICCLASS_HPP
2 #define _VKTGEOMETRYBASICCLASS_HPP
3 /*------------------------------------------------------------------------
4  * Vulkan Conformance Tests
5  * ------------------------
6  *
7  * Copyright (c) 2016 The Khronos Group Inc.
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  *//*!
22  * \file
23  * \brief Geometry Basic Class
24  *//*--------------------------------------------------------------------*/
25
26 #include "tcuDefs.hpp"
27 #include "vktTestCase.hpp"
28 #include "vkTypeUtil.hpp"
29 #include "vkRef.hpp"
30 #include "vktGeometryTestsUtil.hpp"
31
32 namespace vkt
33 {
34 namespace geometry
35 {
36
37 class GeometryExpanderRenderTestInstance : public TestInstance
38 {
39 public:
40                                                                         GeometryExpanderRenderTestInstance      (Context&                                               context,
41                                                                                                                                                  const vk::VkPrimitiveTopology  primitiveType,
42                                                                                                                                                  const char*                                    name);
43
44         tcu::TestStatus                                 iterate                                                         (void);
45
46 protected:
47         virtual vk::Move<vk::VkPipelineLayout>  createPipelineLayout            (const vk::DeviceInterface& vk, const vk::VkDevice device);
48         virtual void                                                    bindDescriptorSets                      (const vk::DeviceInterface&             /*vk*/,
49                                                                                                                                                  const vk::VkDevice                             /*device*/,
50                                                                                                                                                  vk::Allocator&                                 /*memAlloc*/,
51                                                                                                                                                  const vk::VkCommandBuffer&             /*cmdBuffer*/,
52                                                                                                                                                  const vk::VkPipelineLayout&    /*pipelineLayout*/){};
53         virtual void                                            drawCommand                                             (const vk::VkCommandBuffer&             cmdBuffer);
54
55         const vk::VkPrimitiveTopology   m_primitiveType;
56         const std::string                               m_name;
57         int                                                             m_numDrawVertices;
58         std::vector<tcu::Vec4>                  m_vertexPosData;
59         std::vector<tcu::Vec4>                  m_vertexAttrData;
60
61 };
62
63 } // geometry
64 } // vkt
65
66 #endif // _VKTGEOMETRYBASICCLASS_HPP