Skip to content

Commit 587aaee

Browse files
cleanup enums
clean default features again
1 parent 4ca44fb commit 587aaee

4 files changed

Lines changed: 404 additions & 236 deletions

File tree

build.rs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ fn generate_bindings() {
3131
.allowlist_function(allowlist_function)
3232
.allowlist_type(allowlist_type)
3333
.allowlist_var(".*xess.*")
34+
.bitfield_enum(".*(flags|bits).*")
35+
.default_enum_style(bindgen::EnumVariation::Rust {
36+
non_exhaustive: false,
37+
})
38+
.parse_callbacks(Box::new(RenameCallback))
3439
.derive_default(true)
3540
.clang_args(["-x", "c++"])
3641
.prepend_enum_name(false)
@@ -107,6 +112,36 @@ fn generate_bindings() {
107112
);
108113
}
109114

115+
#[derive(Debug)]
116+
struct RenameCallback;
117+
impl bindgen::callbacks::ParseCallbacks for RenameCallback {
118+
fn enum_variant_name(
119+
&self,
120+
enum_name: Option<&str>,
121+
original_variant_name: &str,
122+
_variant_value: bindgen::callbacks::EnumVariantValue,
123+
) -> Option<String> {
124+
if let Some(enum_name) = enum_name {
125+
if enum_name.starts_with("_xess") {
126+
return original_variant_name
127+
.strip_prefix("XESS_")
128+
.map(|s| s.to_string());
129+
}
130+
if enum_name.starts_with("_xell") {
131+
return original_variant_name
132+
.strip_prefix("XELL_")
133+
.map(|s| s.to_string());
134+
}
135+
if enum_name.starts_with("_xefg_swapchain") {
136+
return original_variant_name
137+
.strip_prefix("XEFG_SWAPCHAIN_")
138+
.map(|s| s.to_string());
139+
}
140+
}
141+
None
142+
}
143+
}
144+
110145
fn main() {
111146
#[cfg(feature = "generate-bindings")]
112147
generate_bindings();

src/xefg_swapchain/swapchain.rs

Lines changed: 166 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -6,42 +6,83 @@ pub struct _xefg_swapchain_handle_t {
66
_unused: [u8; 0],
77
}
88
pub type xefg_swapchain_handle_t = *mut _xefg_swapchain_handle_t;
9-
#[doc = " Resource is valid until the next present."]
10-
pub const XEFG_SWAPCHAIN_RV_UNTIL_NEXT_PRESENT: _xefg_swapchain_resource_validity_t = 0;
11-
#[doc = " Resource is only valid now."]
12-
pub const XEFG_SWAPCHAIN_RV_ONLY_NOW: _xefg_swapchain_resource_validity_t = 1;
13-
#[doc = " Resource is only valid now."]
14-
pub const XEFG_SWAPCHAIN_RV_COUNT: _xefg_swapchain_resource_validity_t = 2;
9+
#[repr(i32)]
1510
#[doc = " @brief Informs the library about the lifetime of the\n resource being provided. The library will take appropriate action based\n on this value to either make a copy of the resource or store a reference\n to it."]
16-
pub type _xefg_swapchain_resource_validity_t = ::std::os::raw::c_int;
11+
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
12+
pub enum _xefg_swapchain_resource_validity_t {
13+
#[doc = " Resource is valid until the next present."]
14+
RV_UNTIL_NEXT_PRESENT = 0,
15+
#[doc = " Resource is only valid now."]
16+
RV_ONLY_NOW = 1,
17+
#[doc = " Resource is only valid now."]
18+
RV_COUNT = 2,
19+
}
1720
#[doc = " @brief Informs the library about the lifetime of the\n resource being provided. The library will take appropriate action based\n on this value to either make a copy of the resource or store a reference\n to it."]
1821
pub use self::_xefg_swapchain_resource_validity_t as xefg_swapchain_resource_validity_t;
19-
#[doc = " No flags are enabled."]
20-
pub const XEFG_SWAPCHAIN_INIT_FLAG_NONE: _xefg_swapchain_init_flags_t = 0;
21-
#[doc = " Use inverted (increased precision) depth encoding."]
22-
pub const XEFG_SWAPCHAIN_INIT_FLAG_INVERTED_DEPTH: _xefg_swapchain_init_flags_t = 1;
23-
#[doc = " Use external descriptor heap."]
24-
pub const XEFG_SWAPCHAIN_INIT_FLAG_EXTERNAL_DESCRIPTOR_HEAP: _xefg_swapchain_init_flags_t = 2;
25-
#[doc = " Deprecated. Setting this flag has no effect."]
26-
pub const XEFG_SWAPCHAIN_INIT_FLAG_HIGH_RES_MV: _xefg_swapchain_init_flags_t = 4;
27-
#[doc = " Use velocity in normalized device coordinates (NDC)."]
28-
pub const XEFG_SWAPCHAIN_INIT_FLAG_USE_NDC_VELOCITY: _xefg_swapchain_init_flags_t = 8;
29-
#[doc = " Remove jitter from input velocity."]
30-
pub const XEFG_SWAPCHAIN_INIT_FLAG_JITTERED_MV: _xefg_swapchain_init_flags_t = 16;
31-
#[doc = " UI texture rgb values are not premultiplied by its alpha value"]
32-
pub const XEFG_SWAPCHAIN_INIT_FLAG_UITEXTURE_NOT_PREMUL_ALPHA: _xefg_swapchain_init_flags_t = 32;
22+
impl _xefg_swapchain_init_flags_t {
23+
#[doc = " No flags are enabled."]
24+
pub const INIT_FLAG_NONE: _xefg_swapchain_init_flags_t = _xefg_swapchain_init_flags_t(0);
25+
#[doc = " Use inverted (increased precision) depth encoding."]
26+
pub const INIT_FLAG_INVERTED_DEPTH: _xefg_swapchain_init_flags_t =
27+
_xefg_swapchain_init_flags_t(1);
28+
#[doc = " Use external descriptor heap."]
29+
pub const INIT_FLAG_EXTERNAL_DESCRIPTOR_HEAP: _xefg_swapchain_init_flags_t =
30+
_xefg_swapchain_init_flags_t(2);
31+
#[doc = " Deprecated. Setting this flag has no effect."]
32+
pub const INIT_FLAG_HIGH_RES_MV: _xefg_swapchain_init_flags_t = _xefg_swapchain_init_flags_t(4);
33+
#[doc = " Use velocity in normalized device coordinates (NDC)."]
34+
pub const INIT_FLAG_USE_NDC_VELOCITY: _xefg_swapchain_init_flags_t =
35+
_xefg_swapchain_init_flags_t(8);
36+
#[doc = " Remove jitter from input velocity."]
37+
pub const INIT_FLAG_JITTERED_MV: _xefg_swapchain_init_flags_t =
38+
_xefg_swapchain_init_flags_t(16);
39+
#[doc = " UI texture rgb values are not premultiplied by its alpha value"]
40+
pub const INIT_FLAG_UITEXTURE_NOT_PREMUL_ALPHA: _xefg_swapchain_init_flags_t =
41+
_xefg_swapchain_init_flags_t(32);
42+
}
43+
impl ::std::ops::BitOr<_xefg_swapchain_init_flags_t> for _xefg_swapchain_init_flags_t {
44+
type Output = Self;
45+
#[inline]
46+
fn bitor(self, other: Self) -> Self {
47+
_xefg_swapchain_init_flags_t(self.0 | other.0)
48+
}
49+
}
50+
impl ::std::ops::BitOrAssign for _xefg_swapchain_init_flags_t {
51+
#[inline]
52+
fn bitor_assign(&mut self, rhs: _xefg_swapchain_init_flags_t) {
53+
self.0 |= rhs.0;
54+
}
55+
}
56+
impl ::std::ops::BitAnd<_xefg_swapchain_init_flags_t> for _xefg_swapchain_init_flags_t {
57+
type Output = Self;
58+
#[inline]
59+
fn bitand(self, other: Self) -> Self {
60+
_xefg_swapchain_init_flags_t(self.0 & other.0)
61+
}
62+
}
63+
impl ::std::ops::BitAndAssign for _xefg_swapchain_init_flags_t {
64+
#[inline]
65+
fn bitand_assign(&mut self, rhs: _xefg_swapchain_init_flags_t) {
66+
self.0 &= rhs.0;
67+
}
68+
}
69+
#[repr(transparent)]
3370
#[doc = " @brief XeSS-FG Swap Chain initialization flags."]
34-
pub type _xefg_swapchain_init_flags_t = ::std::os::raw::c_int;
71+
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
72+
pub struct _xefg_swapchain_init_flags_t(pub ::std::os::raw::c_int);
3573
#[doc = " @brief XeSS-FG Swap Chain initialization flags."]
3674
pub use self::_xefg_swapchain_init_flags_t as xefg_swapchain_init_flags_t;
37-
pub const XEFG_SWAPCHAIN_RES_HUDLESS_COLOR: _xefg_swapchain_resource_type_t = 0;
38-
pub const XEFG_SWAPCHAIN_RES_DEPTH: _xefg_swapchain_resource_type_t = 1;
39-
pub const XEFG_SWAPCHAIN_RES_MOTION_VECTOR: _xefg_swapchain_resource_type_t = 2;
40-
pub const XEFG_SWAPCHAIN_RES_UI: _xefg_swapchain_resource_type_t = 3;
41-
pub const XEFG_SWAPCHAIN_RES_BACKBUFFER: _xefg_swapchain_resource_type_t = 4;
42-
pub const XEFG_SWAPCHAIN_RES_COUNT: _xefg_swapchain_resource_type_t = 5;
75+
#[repr(i32)]
4376
#[doc = " @brief XeSS-FG Swap Chain resources type."]
44-
pub type _xefg_swapchain_resource_type_t = ::std::os::raw::c_int;
77+
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
78+
pub enum _xefg_swapchain_resource_type_t {
79+
RES_HUDLESS_COLOR = 0,
80+
RES_DEPTH = 1,
81+
RES_MOTION_VECTOR = 2,
82+
RES_UI = 3,
83+
RES_BACKBUFFER = 4,
84+
RES_COUNT = 5,
85+
}
4586
#[doc = " @brief XeSS-FG Swap Chain resources type."]
4687
pub use self::_xefg_swapchain_resource_type_t as xefg_swapchain_resource_type_t;
4788
#[doc = " @brief XeSS-FG Swap Chain version.\n\n XeSS-FG Swap Chain uses major.minor.patch version format and Numeric 90+ scheme for development stage builds."]
@@ -108,89 +149,97 @@ pub struct _xefg_swapchain_properties_t {
108149
}
109150
#[doc = " @brief Properties for internal XeSS-FG Swap Chain resources."]
110151
pub type xefg_swapchain_properties_t = _xefg_swapchain_properties_t;
111-
#[doc = " An old or outdated driver."]
112-
pub const XEFG_SWAPCHAIN_RESULT_WARNING_OLD_DRIVER: _xefg_swapchain_result_t = 2;
113-
#[doc = " Warning. Frame ID should be over 0."]
114-
pub const XEFG_SWAPCHAIN_RESULT_WARNING_TOO_FEW_FRAMES: _xefg_swapchain_result_t = 3;
115-
#[doc = " Warning. Data for interpolation came in wrong order."]
116-
pub const XEFG_SWAPCHAIN_RESULT_WARNING_FRAMES_ID_MISMATCH: _xefg_swapchain_result_t = 4;
117-
#[doc = " Warning. There is no present status for last present."]
118-
pub const XEFG_SWAPCHAIN_RESULT_WARNING_MISSING_PRESENT_STATUS: _xefg_swapchain_result_t = 5;
119-
#[doc = " Warning. Resource sizes for the interpolation doesn't match between previouse and next frames.\nInterpolation skipped."]
120-
pub const XEFG_SWAPCHAIN_RESULT_WARNING_RESOURCE_SIZES_MISMATCH: _xefg_swapchain_result_t = 6;
121-
#[doc = " Operation was successful."]
122-
pub const XEFG_SWAPCHAIN_RESULT_SUCCESS: _xefg_swapchain_result_t = 0;
123-
#[doc = " Operation not supported on the GPU."]
124-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_UNSUPPORTED_DEVICE: _xefg_swapchain_result_t = -1;
125-
#[doc = " An unsupported driver."]
126-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_UNSUPPORTED_DRIVER: _xefg_swapchain_result_t = -2;
127-
#[doc = " Execute called without initialization."]
128-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_UNINITIALIZED: _xefg_swapchain_result_t = -3;
129-
#[doc = " Invalid argument were provided to the API call."]
130-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_INVALID_ARGUMENT: _xefg_swapchain_result_t = -4;
131-
#[doc = " Not enough available GPU memory."]
132-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_DEVICE_OUT_OF_MEMORY: _xefg_swapchain_result_t = -5;
133-
#[doc = " Device function such as resource or descriptor creation."]
134-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_DEVICE: _xefg_swapchain_result_t = -6;
135-
#[doc = " The function is not implemented."]
136-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_NOT_IMPLEMENTED: _xefg_swapchain_result_t = -7;
137-
#[doc = " Invalid context."]
138-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_INVALID_CONTEXT: _xefg_swapchain_result_t = -8;
139-
#[doc = " Operation not finished yet."]
140-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_OPERATION_IN_PROGRESS: _xefg_swapchain_result_t = -9;
141-
#[doc = " Operation not supported in current configuration."]
142-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_UNSUPPORTED: _xefg_swapchain_result_t = -10;
143-
#[doc = " The library cannot be loaded."]
144-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_CANT_LOAD_LIBRARY: _xefg_swapchain_result_t = -11;
145-
#[doc = " Input resources does not meet requirements based on UI Mode."]
146-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_MISMATCH_INPUT_RESOURCES: _xefg_swapchain_result_t = -12;
147-
#[doc = " Output resources does not meet requirements."]
148-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_INCORRECT_OUTPUT_RESOURCES: _xefg_swapchain_result_t = -13;
149-
#[doc = " Input is insufficient to evaluate interpolation."]
150-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_INCORRECT_INPUT_RESOURCES: _xefg_swapchain_result_t = -14;
151-
#[doc = " Requirements regarding XeLL Latency Reduction are not met."]
152-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_LATENCY_REDUCTION_UNSUPPORTED: _xefg_swapchain_result_t = -15;
153-
#[doc = " XeLL library does not contains required functions."]
154-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_LATENCY_REDUCTION_FUNCTION_MISSING: _xefg_swapchain_result_t =
155-
-16;
156-
#[doc = " One of the Windows functions has failed. For details, see the logs or debug layer."]
157-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_HRESULT_FAILURE: _xefg_swapchain_result_t = -17;
158-
#[doc = " DXGI call failed with invalid call error."]
159-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_DXGI_INVALID_CALL: _xefg_swapchain_result_t = -18;
160-
#[doc = " XeFG SwapChain pointer is still in use during destroy."]
161-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_POINTER_STILL_IN_USE: _xefg_swapchain_result_t = -19;
162-
#[doc = " Invalid or missing descriptor heap."]
163-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_INVALID_DESCRIPTOR_HEAP: _xefg_swapchain_result_t = -20;
164-
#[doc = " Call to function done in invalid order."]
165-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_WRONG_CALL_ORDER: _xefg_swapchain_result_t = -21;
166-
#[doc = " Unknown internal failure"]
167-
pub const XEFG_SWAPCHAIN_RESULT_ERROR_UNKNOWN: _xefg_swapchain_result_t = -1000;
152+
#[repr(i32)]
168153
#[doc = " @brief XeSS-FG Swap Chain return codes."]
169-
pub type _xefg_swapchain_result_t = ::std::os::raw::c_int;
154+
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
155+
pub enum _xefg_swapchain_result_t {
156+
#[doc = " An old or outdated driver."]
157+
RESULT_WARNING_OLD_DRIVER = 2,
158+
#[doc = " Warning. Frame ID should be over 0."]
159+
RESULT_WARNING_TOO_FEW_FRAMES = 3,
160+
#[doc = " Warning. Data for interpolation came in wrong order."]
161+
RESULT_WARNING_FRAMES_ID_MISMATCH = 4,
162+
#[doc = " Warning. There is no present status for last present."]
163+
RESULT_WARNING_MISSING_PRESENT_STATUS = 5,
164+
#[doc = " Warning. Resource sizes for the interpolation doesn't match between previouse and next frames.\nInterpolation skipped."]
165+
RESULT_WARNING_RESOURCE_SIZES_MISMATCH = 6,
166+
#[doc = " Operation was successful."]
167+
RESULT_SUCCESS = 0,
168+
#[doc = " Operation not supported on the GPU."]
169+
RESULT_ERROR_UNSUPPORTED_DEVICE = -1,
170+
#[doc = " An unsupported driver."]
171+
RESULT_ERROR_UNSUPPORTED_DRIVER = -2,
172+
#[doc = " Execute called without initialization."]
173+
RESULT_ERROR_UNINITIALIZED = -3,
174+
#[doc = " Invalid argument were provided to the API call."]
175+
RESULT_ERROR_INVALID_ARGUMENT = -4,
176+
#[doc = " Not enough available GPU memory."]
177+
RESULT_ERROR_DEVICE_OUT_OF_MEMORY = -5,
178+
#[doc = " Device function such as resource or descriptor creation."]
179+
RESULT_ERROR_DEVICE = -6,
180+
#[doc = " The function is not implemented."]
181+
RESULT_ERROR_NOT_IMPLEMENTED = -7,
182+
#[doc = " Invalid context."]
183+
RESULT_ERROR_INVALID_CONTEXT = -8,
184+
#[doc = " Operation not finished yet."]
185+
RESULT_ERROR_OPERATION_IN_PROGRESS = -9,
186+
#[doc = " Operation not supported in current configuration."]
187+
RESULT_ERROR_UNSUPPORTED = -10,
188+
#[doc = " The library cannot be loaded."]
189+
RESULT_ERROR_CANT_LOAD_LIBRARY = -11,
190+
#[doc = " Input resources does not meet requirements based on UI Mode."]
191+
RESULT_ERROR_MISMATCH_INPUT_RESOURCES = -12,
192+
#[doc = " Output resources does not meet requirements."]
193+
RESULT_ERROR_INCORRECT_OUTPUT_RESOURCES = -13,
194+
#[doc = " Input is insufficient to evaluate interpolation."]
195+
RESULT_ERROR_INCORRECT_INPUT_RESOURCES = -14,
196+
#[doc = " Requirements regarding XeLL Latency Reduction are not met."]
197+
RESULT_ERROR_LATENCY_REDUCTION_UNSUPPORTED = -15,
198+
#[doc = " XeLL library does not contains required functions."]
199+
RESULT_ERROR_LATENCY_REDUCTION_FUNCTION_MISSING = -16,
200+
#[doc = " One of the Windows functions has failed. For details, see the logs or debug layer."]
201+
RESULT_ERROR_HRESULT_FAILURE = -17,
202+
#[doc = " DXGI call failed with invalid call error."]
203+
RESULT_ERROR_DXGI_INVALID_CALL = -18,
204+
#[doc = " XeFG SwapChain pointer is still in use during destroy."]
205+
RESULT_ERROR_POINTER_STILL_IN_USE = -19,
206+
#[doc = " Invalid or missing descriptor heap."]
207+
RESULT_ERROR_INVALID_DESCRIPTOR_HEAP = -20,
208+
#[doc = " Call to function done in invalid order."]
209+
RESULT_ERROR_WRONG_CALL_ORDER = -21,
210+
#[doc = " Unknown internal failure"]
211+
RESULT_ERROR_UNKNOWN = -1000,
212+
}
170213
#[doc = " @brief XeSS-FG Swap Chain return codes."]
171214
pub use self::_xefg_swapchain_result_t as xefg_swapchain_result_t;
172-
pub const XEFG_SWAPCHAIN_LOGGING_LEVEL_DEBUG: _xefg_swapchain_logging_level_t = 0;
173-
pub const XEFG_SWAPCHAIN_LOGGING_LEVEL_INFO: _xefg_swapchain_logging_level_t = 1;
174-
pub const XEFG_SWAPCHAIN_LOGGING_LEVEL_WARNING: _xefg_swapchain_logging_level_t = 2;
175-
pub const XEFG_SWAPCHAIN_LOGGING_LEVEL_ERROR: _xefg_swapchain_logging_level_t = 3;
215+
#[repr(i32)]
176216
#[doc = " @brief XeSS-FG Swap Chain logging level."]
177-
pub type _xefg_swapchain_logging_level_t = ::std::os::raw::c_int;
217+
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
218+
pub enum _xefg_swapchain_logging_level_t {
219+
LOGGING_LEVEL_DEBUG = 0,
220+
LOGGING_LEVEL_INFO = 1,
221+
LOGGING_LEVEL_WARNING = 2,
222+
LOGGING_LEVEL_ERROR = 3,
223+
}
178224
#[doc = " @brief XeSS-FG Swap Chain logging level."]
179225
pub use self::_xefg_swapchain_logging_level_t as xefg_swapchain_logging_level_t;
180-
#[doc = " Determine UI handling mode automatically, based on provided inputs: hudless color and UI texture."]
181-
pub const XEFG_SWAPCHAIN_UI_MODE_AUTO: _xefg_swapchain_ui_mode_t = 0;
182-
#[doc = " Interpolate on backbuffer, without any UI handling."]
183-
pub const XEFG_SWAPCHAIN_UI_MODE_NONE: _xefg_swapchain_ui_mode_t = 1;
184-
#[doc = " Interpolate on backbuffer, refine UI using UI texture + alpha."]
185-
pub const XEFG_SWAPCHAIN_UI_MODE_BACKBUFFER_UITEXTURE: _xefg_swapchain_ui_mode_t = 2;
186-
#[doc = " Interpolate on hudless color, blend UI from UI texture + alpha."]
187-
pub const XEFG_SWAPCHAIN_UI_MODE_HUDLESS_UITEXTURE: _xefg_swapchain_ui_mode_t = 3;
188-
#[doc = " Interpolate on hudless color, extract UI from backbuffer."]
189-
pub const XEFG_SWAPCHAIN_UI_MODE_BACKBUFFER_HUDLESS: _xefg_swapchain_ui_mode_t = 4;
190-
#[doc = " Interpolate on hudless color, blend UI from UI texture + alpha and refine it by extracting from backbuffer."]
191-
pub const XEFG_SWAPCHAIN_UI_MODE_BACKBUFFER_HUDLESS_UITEXTURE: _xefg_swapchain_ui_mode_t = 5;
226+
#[repr(i32)]
192227
#[doc = " @brief XeSS-FG Swap Chain UI handling mode."]
193-
pub type _xefg_swapchain_ui_mode_t = ::std::os::raw::c_int;
228+
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
229+
pub enum _xefg_swapchain_ui_mode_t {
230+
#[doc = " Determine UI handling mode automatically, based on provided inputs: hudless color and UI texture."]
231+
UI_MODE_AUTO = 0,
232+
#[doc = " Interpolate on backbuffer, without any UI handling."]
233+
UI_MODE_NONE = 1,
234+
#[doc = " Interpolate on backbuffer, refine UI using UI texture + alpha."]
235+
UI_MODE_BACKBUFFER_UITEXTURE = 2,
236+
#[doc = " Interpolate on hudless color, blend UI from UI texture + alpha."]
237+
UI_MODE_HUDLESS_UITEXTURE = 3,
238+
#[doc = " Interpolate on hudless color, extract UI from backbuffer."]
239+
UI_MODE_BACKBUFFER_HUDLESS = 4,
240+
#[doc = " Interpolate on hudless color, blend UI from UI texture + alpha and refine it by extracting from backbuffer."]
241+
UI_MODE_BACKBUFFER_HUDLESS_UITEXTURE = 5,
242+
}
194243
#[doc = " @brief XeSS-FG Swap Chain UI handling mode."]
195244
pub use self::_xefg_swapchain_ui_mode_t as xefg_swapchain_ui_mode_t;
196245
#[doc = " @brief Contains status data for the present."]
@@ -223,17 +272,19 @@ pub type xefg_swapchain_app_log_callback_t = ::std::option::Option<
223272
userData: *mut ::std::os::raw::c_void,
224273
),
225274
>;
226-
#[doc = " Present only interpolated frames. If interpolation fails, current back buffer will be presented."]
227-
pub const XEFG_SWAPCHAIN_DEBUG_FEATURE_SHOW_ONLY_INTERPOLATION: _xefg_swapchain_debug_feature_t = 0;
228-
#[doc = " Adds a quads in the corners of interpolated frame."]
229-
pub const XEFG_SWAPCHAIN_DEBUG_FEATURE_TAG_INTERPOLATED_FRAMES: _xefg_swapchain_debug_feature_t = 1;
230-
#[doc = " Present black image instead of skipping failed interpolation."]
231-
pub const XEFG_SWAPCHAIN_DEBUG_FEATURE_PRESENT_FAILED_INTERPOLATION:
232-
_xefg_swapchain_debug_feature_t = 2;
233-
#[doc = " Present black image instead of skipping failed interpolation."]
234-
pub const XEFG_SWAPCHAIN_DEBUG_FEATURE_RES_COUNT: _xefg_swapchain_debug_feature_t = 3;
275+
#[repr(i32)]
235276
#[doc = " @brief XeSS-FG Swap Chain debug features list."]
236-
pub type _xefg_swapchain_debug_feature_t = ::std::os::raw::c_int;
277+
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
278+
pub enum _xefg_swapchain_debug_feature_t {
279+
#[doc = " Present only interpolated frames. If interpolation fails, current back buffer will be presented."]
280+
DEBUG_FEATURE_SHOW_ONLY_INTERPOLATION = 0,
281+
#[doc = " Adds a quads in the corners of interpolated frame."]
282+
DEBUG_FEATURE_TAG_INTERPOLATED_FRAMES = 1,
283+
#[doc = " Present black image instead of skipping failed interpolation."]
284+
DEBUG_FEATURE_PRESENT_FAILED_INTERPOLATION = 2,
285+
#[doc = " Present black image instead of skipping failed interpolation."]
286+
DEBUG_FEATURE_RES_COUNT = 3,
287+
}
237288
#[doc = " @brief XeSS-FG Swap Chain debug features list."]
238289
pub use self::_xefg_swapchain_debug_feature_t as xefg_swapchain_debug_feature_t;
239290
pub struct XessLoaded {

0 commit comments

Comments
 (0)