blob: 538668b584e2284316c3d41f098bf5f4832c3e13 [file] [log] [blame]
Alexis Hetu1f23d8c2018-10-16 14:40:19 -04001// Copyright 2018 The SwiftShader Authors. All Rights Reserved.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#ifndef VK_EVENT_HPP_
16#define VK_EVENT_HPP_
17
18#include "VkObject.hpp"
19
20namespace vk
21{
22
23class Event : public Object<Event, VkEvent>
24{
25public:
26 Event(const VkEventCreateInfo* pCreateInfo, void* mem)
27 {
28 }
29
30 ~Event() = delete;
31
32 static size_t ComputeRequiredAllocationSize(const VkEventCreateInfo* pCreateInfo)
33 {
34 return 0;
35 }
36
37 void signal()
38 {
39 status = VK_EVENT_SET;
40 }
41
42 void reset()
43 {
44 status = VK_EVENT_RESET;
45 }
46
47 VkResult getStatus() const
48 {
49 return status;
50 }
51
52private:
53 VkResult status = VK_EVENT_RESET;
54};
55
56static inline Event* Cast(VkEvent object)
57{
58 return reinterpret_cast<Event*>(object);
59}
60
61} // namespace vk
62
63#endif // VK_EVENT_HPP_