xref: /aosp_15_r20/external/deqp/external/vulkancts/modules/vulkan/geometry/vktGeometryBasicClass.hpp (revision 35238bce31c2a825756842865a792f8cf7f89930)
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, const vk::VkPrimitiveTopology primitiveType, const char *name);
41 
42     tcu::TestStatus iterate(void);
43 
44 protected:
45     virtual vk::Move<vk::VkPipelineLayout> createPipelineLayout(const vk::DeviceInterface &vk,
46                                                                 const vk::VkDevice device);
bindDescriptorSets(const vk::DeviceInterface &,const vk::VkDevice,vk::Allocator &,const vk::VkCommandBuffer &,const vk::VkPipelineLayout &)47     virtual void bindDescriptorSets(const vk::DeviceInterface & /*vk*/, const vk::VkDevice /*device*/,
48                                     vk::Allocator & /*memAlloc*/, const vk::VkCommandBuffer & /*cmdBuffer*/,
49                                     const vk::VkPipelineLayout & /*pipelineLayout*/)
50     {
51     }
52     virtual void drawCommand(const vk::VkCommandBuffer &cmdBuffer);
53 
54     const vk::VkPrimitiveTopology m_primitiveType;
55     const std::string m_name;
56     int m_numDrawVertices;
57     std::vector<tcu::Vec4> m_vertexPosData;
58     std::vector<tcu::Vec4> m_vertexAttrData;
59 };
60 
61 } // namespace geometry
62 } // namespace vkt
63 
64 #endif // _VKTGEOMETRYBASICCLASS_HPP
65