fix: align merged hmd declarations and webapi tests

This commit is contained in:
boykopovar committed 2026-10-21 21:56:08 +03:00
1 parent 9301f2ffeb
commit dfe41f1f45
3 files changed
+14 -9

No files matched your search

+9 -4
View File
@@ -51,6 +51,11 @@ static_assert(offsetof(DeviceInformation, hmuMount) == 24);
}
struct HmdFieldOfView;
struct HmdEyeOffset;
struct HmdInertialSensorData;
struct HmdAssemblyError;
extern "C" {
std::int32_t APS5_VABI sceHmdInitialize(const Hmd::InitializeParam* param);
std::int32_t APS5_VABI sceHmdInitialize315(const Hmd::InitializeParam* param);
@@ -69,10 +74,10 @@ int APS5_VABI sceHmdReprojectionQueryGarlicBuffAlign(void);
int APS5_VABI sceHmdReprojectionQueryGarlicBuffSize(void);
int APS5_VABI sceHmdReprojectionQueryOnionBuffAlign(void);
int APS5_VABI sceHmdReprojectionQueryOnionBuffSize(void);
int APS5_VABI sceHmdGetFieldOfView(std::int32_t handle, void* fieldOfView);
int APS5_VABI sceHmdGet2DEyeOffset(std::int32_t handle, void* leftOffset, void* rightOffset);
int APS5_VABI sceHmdGetInertialSensorData(std::int32_t handle, void* data, std::int32_t count);
int APS5_VABI sceHmdGetAssyError(void* data);
int APS5_VABI sceHmdGetFieldOfView(std::int32_t handle, HmdFieldOfView* fieldOfView);
int APS5_VABI sceHmdGet2DEyeOffset(std::int32_t handle, HmdEyeOffset* leftOffset, HmdEyeOffset* rightOffset);
int APS5_VABI sceHmdGetInertialSensorData(std::int32_t handle, HmdInertialSensorData* data, std::uint32_t count);
int APS5_VABI sceHmdGetAssyError(HmdAssemblyError* data);
}
#endif
+4 -4
View File
@@ -42,10 +42,10 @@ void CheckHandleQueries(std::int32_t expected) {
std::memset(sensor, 0x5a, sizeof(sensor));
for (const auto handle : {0, -1, 1, 0x0f000000}) {
Require(sceHmdGetFieldOfView(handle, nullptr) == Hmd::ParameterNull, "null field of view accepted");
Require(sceHmdGetFieldOfView(handle, fieldOfView) == expected, "field of view without a headset");
Require(sceHmdGet2DEyeOffset(handle, left, right) == expected, "eye offset without a headset");
Require(sceHmdGetFieldOfView(handle, reinterpret_cast<HmdFieldOfView*>(fieldOfView)) == expected, "field of view without a headset");
Require(sceHmdGet2DEyeOffset(handle, reinterpret_cast<HmdEyeOffset*>(left), reinterpret_cast<HmdEyeOffset*>(right)) == expected, "eye offset without a headset");
Require(sceHmdGet2DEyeOffset(handle, nullptr, nullptr) == expected, "eye offset with null outputs");
Require(sceHmdGetInertialSensorData(handle, sensor, 1) == expected, "sensor data without a headset");
Require(sceHmdGetInertialSensorData(handle, reinterpret_cast<HmdInertialSensorData*>(sensor), 1) == expected, "sensor data without a headset");
}
for (const auto* bytes : {left, right, fieldOfView}) {
for (std::size_t index = 0; index < 16; ++index) Require(bytes[index] == 0x5a, "a refused query wrote its output");
@@ -57,7 +57,7 @@ void CheckAssyError(std::int32_t expected) {
unsigned char data[32];
std::memset(data, 0x5a, sizeof(data));
Require(sceHmdGetAssyError(nullptr) == Hmd::ParameterNull, "null assembly error output accepted");
Require(sceHmdGetAssyError(data) == expected, "assembly error query without a headset");
Require(sceHmdGetAssyError(reinterpret_cast<HmdAssemblyError*>(data)) == expected, "assembly error query without a headset");
for (const auto byte : data) Require(byte == 0x5a, "a refused assembly error query wrote its output");
}
+1 -1
View File
@@ -92,7 +92,7 @@ int main() {
Require(presence > 0 && sceNpWebApi2GetMemoryPoolStats(presence, &stats) == 0 && stats.pool_size == 0x2000);
for (const int created : {internal, internal2, presence}) {
Require(sceNpWebApi2Terminate(created) == 0);
Require(Throws([&] { sceNpWebApi2GetMemoryPoolStats(created, &stats); }));
Require(sceNpWebApi2GetMemoryPoolStats(created, &stats) == invalidContext);
}
return 0;
}