1use std::u32;
4
5use bitflags::bitflags;
6
7#[repr(u32)]
9#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
10pub enum CaptureOption {
11 AllowVSync = renderdoc_sys::eRENDERDOC_Option_AllowVSync,
13 AllowFullscreen = renderdoc_sys::eRENDERDOC_Option_AllowFullscreen,
15 ApiValidation = renderdoc_sys::eRENDERDOC_Option_APIValidation,
19 CaptureCallstacks = renderdoc_sys::eRENDERDOC_Option_CaptureCallstacks,
21 CaptureCallstacksOnlyDraws = renderdoc_sys::eRENDERDOC_Option_CaptureCallstacksOnlyDraws,
25 DelayForDebugger = renderdoc_sys::eRENDERDOC_Option_DelayForDebugger,
28 VerifyMapWrites = renderdoc_sys::eRENDERDOC_Option_VerifyMapWrites,
31 HookIntoChildren = renderdoc_sys::eRENDERDOC_Option_HookIntoChildren,
34 RefAllResources = renderdoc_sys::eRENDERDOC_Option_RefAllResources,
39 SaveAllInitials = renderdoc_sys::eRENDERDOC_Option_SaveAllInitials,
45 CaptureAllCmdLists = renderdoc_sys::eRENDERDOC_Option_CaptureAllCmdLists,
57 DebugOutputMute = renderdoc_sys::eRENDERDOC_Option_DebugOutputMute,
59 AllowUnsupportedVendorExtensions =
62 renderdoc_sys::eRENDERDOC_Option_AllowUnsupportedVendorExtensions,
63}
64
65#[allow(missing_docs)]
67#[repr(u32)]
68#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
69pub enum InputButton {
70 Key0 = renderdoc_sys::eRENDERDOC_Key_0,
72 Key1 = renderdoc_sys::eRENDERDOC_Key_1,
74 Key2 = renderdoc_sys::eRENDERDOC_Key_2,
76 Key3 = renderdoc_sys::eRENDERDOC_Key_3,
78 Key4 = renderdoc_sys::eRENDERDOC_Key_4,
80 Key5 = renderdoc_sys::eRENDERDOC_Key_5,
82 Key6 = renderdoc_sys::eRENDERDOC_Key_6,
84 Key7 = renderdoc_sys::eRENDERDOC_Key_7,
86 Key8 = renderdoc_sys::eRENDERDOC_Key_8,
88 Key9 = renderdoc_sys::eRENDERDOC_Key_9,
90
91 A = renderdoc_sys::eRENDERDOC_Key_A,
92 B = renderdoc_sys::eRENDERDOC_Key_B,
93 C = renderdoc_sys::eRENDERDOC_Key_C,
94 D = renderdoc_sys::eRENDERDOC_Key_D,
95 E = renderdoc_sys::eRENDERDOC_Key_E,
96 F = renderdoc_sys::eRENDERDOC_Key_F,
97 G = renderdoc_sys::eRENDERDOC_Key_G,
98 H = renderdoc_sys::eRENDERDOC_Key_H,
99 I = renderdoc_sys::eRENDERDOC_Key_I,
100 J = renderdoc_sys::eRENDERDOC_Key_J,
101 K = renderdoc_sys::eRENDERDOC_Key_K,
102 L = renderdoc_sys::eRENDERDOC_Key_L,
103 M = renderdoc_sys::eRENDERDOC_Key_M,
104 N = renderdoc_sys::eRENDERDOC_Key_N,
105 O = renderdoc_sys::eRENDERDOC_Key_O,
106 P = renderdoc_sys::eRENDERDOC_Key_P,
107 Q = renderdoc_sys::eRENDERDOC_Key_Q,
108 R = renderdoc_sys::eRENDERDOC_Key_R,
109 S = renderdoc_sys::eRENDERDOC_Key_S,
110 T = renderdoc_sys::eRENDERDOC_Key_T,
111 U = renderdoc_sys::eRENDERDOC_Key_U,
112 V = renderdoc_sys::eRENDERDOC_Key_V,
113 W = renderdoc_sys::eRENDERDOC_Key_W,
114 X = renderdoc_sys::eRENDERDOC_Key_X,
115 Y = renderdoc_sys::eRENDERDOC_Key_Y,
116 Z = renderdoc_sys::eRENDERDOC_Key_Z,
117
118 NonPrintable = renderdoc_sys::eRENDERDOC_Key_NonPrintable,
121
122 Divide = renderdoc_sys::eRENDERDOC_Key_Divide,
124 Multiply = renderdoc_sys::eRENDERDOC_Key_Multiply,
126 Subtract = renderdoc_sys::eRENDERDOC_Key_Subtract,
128 Plus = renderdoc_sys::eRENDERDOC_Key_Plus,
130
131 F1 = renderdoc_sys::eRENDERDOC_Key_F1,
132 F2 = renderdoc_sys::eRENDERDOC_Key_F2,
133 F3 = renderdoc_sys::eRENDERDOC_Key_F3,
134 F4 = renderdoc_sys::eRENDERDOC_Key_F4,
135 F5 = renderdoc_sys::eRENDERDOC_Key_F5,
136 F6 = renderdoc_sys::eRENDERDOC_Key_F6,
137 F7 = renderdoc_sys::eRENDERDOC_Key_F7,
138 F8 = renderdoc_sys::eRENDERDOC_Key_F8,
139 F9 = renderdoc_sys::eRENDERDOC_Key_F9,
140 F10 = renderdoc_sys::eRENDERDOC_Key_F10,
141 F11 = renderdoc_sys::eRENDERDOC_Key_F11,
142 F12 = renderdoc_sys::eRENDERDOC_Key_F12,
143
144 Home = renderdoc_sys::eRENDERDOC_Key_Home,
145 End = renderdoc_sys::eRENDERDOC_Key_End,
146 Insert = renderdoc_sys::eRENDERDOC_Key_Insert,
147 Delete = renderdoc_sys::eRENDERDOC_Key_Delete,
148 PageUp = renderdoc_sys::eRENDERDOC_Key_PageUp,
149 PageDn = renderdoc_sys::eRENDERDOC_Key_PageDn,
150
151 Backspace = renderdoc_sys::eRENDERDOC_Key_Backspace,
152 Tab = renderdoc_sys::eRENDERDOC_Key_Tab,
153 PrtScrn = renderdoc_sys::eRENDERDOC_Key_PrtScrn,
154 Pause = renderdoc_sys::eRENDERDOC_Key_Pause,
155
156 Max = renderdoc_sys::eRENDERDOC_Key_Max,
157}
158
159#[cfg(feature = "winit")]
160impl From<winit::event::VirtualKeyCode> for InputButton {
161 fn from(code: winit::event::VirtualKeyCode) -> InputButton {
162 use winit::event::VirtualKeyCode;
163 match code {
164 VirtualKeyCode::Key1 => InputButton::Key1,
165 VirtualKeyCode::Key2 => InputButton::Key2,
166 VirtualKeyCode::Key3 => InputButton::Key3,
167 VirtualKeyCode::Key4 => InputButton::Key4,
168 VirtualKeyCode::Key5 => InputButton::Key5,
169 VirtualKeyCode::Key6 => InputButton::Key6,
170 VirtualKeyCode::Key7 => InputButton::Key7,
171 VirtualKeyCode::Key8 => InputButton::Key8,
172 VirtualKeyCode::Key9 => InputButton::Key9,
173 VirtualKeyCode::Key0 => InputButton::Key0,
174 VirtualKeyCode::A => InputButton::A,
175 VirtualKeyCode::B => InputButton::B,
176 VirtualKeyCode::C => InputButton::C,
177 VirtualKeyCode::D => InputButton::D,
178 VirtualKeyCode::E => InputButton::E,
179 VirtualKeyCode::F => InputButton::F,
180 VirtualKeyCode::G => InputButton::G,
181 VirtualKeyCode::H => InputButton::H,
182 VirtualKeyCode::I => InputButton::I,
183 VirtualKeyCode::J => InputButton::J,
184 VirtualKeyCode::K => InputButton::K,
185 VirtualKeyCode::L => InputButton::L,
186 VirtualKeyCode::M => InputButton::M,
187 VirtualKeyCode::N => InputButton::N,
188 VirtualKeyCode::O => InputButton::O,
189 VirtualKeyCode::P => InputButton::P,
190 VirtualKeyCode::Q => InputButton::Q,
191 VirtualKeyCode::R => InputButton::R,
192 VirtualKeyCode::S => InputButton::S,
193 VirtualKeyCode::T => InputButton::T,
194 VirtualKeyCode::U => InputButton::U,
195 VirtualKeyCode::V => InputButton::V,
196 VirtualKeyCode::W => InputButton::W,
197 VirtualKeyCode::X => InputButton::X,
198 VirtualKeyCode::Y => InputButton::Y,
199 VirtualKeyCode::Z => InputButton::Z,
200 VirtualKeyCode::NumpadDivide => InputButton::Divide,
201 VirtualKeyCode::NumpadMultiply => InputButton::Multiply,
202 VirtualKeyCode::NumpadSubtract => InputButton::Subtract,
203 VirtualKeyCode::NumpadAdd => InputButton::Plus,
204 VirtualKeyCode::F1 => InputButton::F1,
205 VirtualKeyCode::F2 => InputButton::F2,
206 VirtualKeyCode::F3 => InputButton::F3,
207 VirtualKeyCode::F4 => InputButton::F4,
208 VirtualKeyCode::F5 => InputButton::F5,
209 VirtualKeyCode::F6 => InputButton::F6,
210 VirtualKeyCode::F7 => InputButton::F7,
211 VirtualKeyCode::F8 => InputButton::F8,
212 VirtualKeyCode::F9 => InputButton::F9,
213 VirtualKeyCode::F10 => InputButton::F10,
214 VirtualKeyCode::F11 => InputButton::F11,
215 VirtualKeyCode::F12 => InputButton::F12,
216 VirtualKeyCode::Home => InputButton::Home,
217 VirtualKeyCode::End => InputButton::End,
218 VirtualKeyCode::Insert => InputButton::Insert,
219 VirtualKeyCode::Delete => InputButton::Delete,
220 VirtualKeyCode::PageUp => InputButton::PageUp,
221 VirtualKeyCode::PageDown => InputButton::PageDn,
222 VirtualKeyCode::Back => InputButton::Backspace,
223 VirtualKeyCode::Tab => InputButton::Tab,
224 VirtualKeyCode::Snapshot => InputButton::PrtScrn,
225 VirtualKeyCode::Pause => InputButton::Pause,
226 _ => InputButton::Max,
227 }
228 }
229}
230
231bitflags! {
232 pub struct OverlayBits: u32 {
234 const ENABLED = renderdoc_sys::eRENDERDOC_Overlay_Enabled;
236 const FRAME_RATE = renderdoc_sys::eRENDERDOC_Overlay_FrameRate;
238 const FRAME_NUMBER = renderdoc_sys::eRENDERDOC_Overlay_FrameNumber;
240 const CAPTURE_LIST = renderdoc_sys::eRENDERDOC_Overlay_CaptureList;
242 const DEFAULT = renderdoc_sys::eRENDERDOC_Overlay_Default;
244 const ALL = u32::MAX;
246 const NONE = u32::MIN;
248 }
249}