Two call helper functions.
More...
Go to the source code of this file.
|
#define | OXR_TWO_CALL_HELPER(log, cnt_input, cnt_output, output, count, data, sval) |
|
#define | OXR_TWO_CALL_FILL_IN_HELPER(log, cnt_input, cnt_output, output_structs, count, fill_fn, source_structs, sval) |
| Calls fill_fn(&output_struct[i], &source_struct[i]) to fill output_structs. More...
|
|
◆ OXR_TWO_CALL_FILL_IN_HELPER
#define OXR_TWO_CALL_FILL_IN_HELPER |
( |
|
log, |
|
|
|
cnt_input, |
|
|
|
cnt_output, |
|
|
|
output_structs, |
|
|
|
count, |
|
|
|
fill_fn, |
|
|
|
source_structs, |
|
|
|
sval |
|
) |
| |
Value: do { \
if (cnt_output == NULL) { \
return
oxr_error(log, XR_ERROR_VALIDATION_FAILURE, #cnt_output); \
} \
*cnt_output = count; \
\
if (cnt_input == 0) { \
return sval; \
} \
if (cnt_input < count) { \
return
oxr_error(log, XR_ERROR_SIZE_INSUFFICIENT, #cnt_input); \
} \
for (uint32_t i = 0; i < count; i++) { \
fill_fn(&output_structs[i], &source_structs[i]); \
} \
return sval; \
} while (false)
XrResult oxr_error(struct oxr_logger *logger, XrResult result, const char *fmt,...)
Definition: oxr_logger.c:203
Calls fill_fn(&output_struct[i], &source_struct[i]) to fill output_structs.
◆ OXR_TWO_CALL_HELPER
#define OXR_TWO_CALL_HELPER |
( |
|
log, |
|
|
|
cnt_input, |
|
|
|
cnt_output, |
|
|
|
output, |
|
|
|
count, |
|
|
|
data, |
|
|
|
sval |
|
) |
| |
Value: do { \
if ((cnt_output) == NULL) { \
return
oxr_error(log, XR_ERROR_VALIDATION_FAILURE, #cnt_output); \
} \
*(cnt_output) = (uint32_t)(count); \
\
if ((cnt_input) == 0) { \
return sval; \
} \
if ((cnt_input) < (uint32_t)(count)) { \
return
oxr_error(log, XR_ERROR_SIZE_INSUFFICIENT, #cnt_input); \
} \
for (uint32_t i = 0; i < (count); i++) { \
(output)[i] = (data)[i]; \
} \
return (sval); \
} while (false)