Split VR tracker and Camera

This commit is contained in:
igor725 2024-04-03 15:45:39 +03:00
parent 8c36506f14
commit c20a166a92
No known key found for this signature in database
GPG Key ID: 46F13BBE46F8569D
6 changed files with 91 additions and 56 deletions

View File

@ -0,0 +1,8 @@
set(libName libSceCamera)
include(../setupModule.cmake)
project(${libName})
add_library(${libName} SHARED entry.cpp)
setupModule(${libName})

View File

@ -0,0 +1,7 @@
#pragma once
#include <stdint.h>
namespace Err {} // namespace Err
constexpr uint32_t SCE_CAMERA_MAX_DEVICE_NUM = 2;
constexpr uint32_t SCE_CAMERA_MAX_FORMAT_LEVEL_NUM = 4;

View File

@ -0,0 +1,19 @@
#include "common.h"
#include "logging.h"
#include "types.h"
LOG_DEFINE_MODULE(libSceCamera);
namespace {} // namespace
extern "C" {
EXPORT const char* MODULE_NAME = "libSceCamera";
EXPORT SYSV_ABI int32_t sceCameraOpen() {
LOG_USE_MODULE(libSceCamera);
LOG_ERR(L"todo %S", __FUNCTION__);
return Ok;
}
}

View File

@ -0,0 +1,56 @@
#pragma once
#include "codes.h"
#include "modules_include/sceTypes.h"
struct SceCameraFramePosition {
uint32_t x;
uint32_t y;
uint32_t xSize;
uint32_t ySize;
};
struct SceCameraExposureGain {
uint32_t exposureControl;
uint32_t exposure;
uint32_t gain;
uint32_t mode;
};
struct SceCameraWhiteBalance {
uint32_t whiteBalanceControl;
uint32_t gainRed;
uint32_t gainBlue;
uint32_t gainGreen;
};
struct SceCameraGamma {
uint32_t gammaControl;
uint32_t value;
uint8_t reserved[16];
};
struct SceCameraMeta {
uint32_t metaMode;
uint32_t format[SCE_CAMERA_MAX_DEVICE_NUM][SCE_CAMERA_MAX_FORMAT_LEVEL_NUM];
uint64_t frame[SCE_CAMERA_MAX_DEVICE_NUM];
uint64_t timestamp[SCE_CAMERA_MAX_DEVICE_NUM];
uint32_t deviceTimestamp[SCE_CAMERA_MAX_DEVICE_NUM];
SceCameraExposureGain exposureGain[SCE_CAMERA_MAX_DEVICE_NUM];
SceCameraWhiteBalance whiteBalance[SCE_CAMERA_MAX_DEVICE_NUM];
SceCameraGamma gamma[SCE_CAMERA_MAX_DEVICE_NUM];
uint32_t luminance[SCE_CAMERA_MAX_DEVICE_NUM];
SceFVector3 acceleration;
uint64_t vcounter;
uint32_t reserved[16];
};
struct SceCameraFrameData {
uint32_t sizeThis;
uint32_t readMode;
SceCameraFramePosition framePosition[SCE_CAMERA_MAX_DEVICE_NUM][SCE_CAMERA_MAX_FORMAT_LEVEL_NUM];
void* pFramePointerList[SCE_CAMERA_MAX_DEVICE_NUM][SCE_CAMERA_MAX_FORMAT_LEVEL_NUM];
uint32_t frameSize[SCE_CAMERA_MAX_DEVICE_NUM][SCE_CAMERA_MAX_FORMAT_LEVEL_NUM];
uint32_t status[SCE_CAMERA_MAX_DEVICE_NUM];
SceCameraMeta meta;
void* pFramePointerListGarlic[SCE_CAMERA_MAX_DEVICE_NUM][SCE_CAMERA_MAX_FORMAT_LEVEL_NUM];
};

View File

@ -2,6 +2,3 @@
#include <stdint.h>
namespace Err {} // namespace Err
constexpr uint32_t SCE_CAMERA_MAX_DEVICE_NUM = 2;
constexpr uint32_t SCE_CAMERA_MAX_FORMAT_LEVEL_NUM = 4;

View File

@ -1,6 +1,7 @@
#pragma once
#include "codes.h"
#include "modules_include/sceTypes.h"
#include "modules/libSceCamera/types.h"
enum class SceVrTrackerProfile {
PROFILE_000 = 0,
@ -96,59 +97,6 @@ struct SceVrTrackerQueryMemoryResult {
uint32_t reserved[9];
};
struct SceCameraFramePosition {
uint32_t x;
uint32_t y;
uint32_t xSize;
uint32_t ySize;
};
struct SceCameraExposureGain {
uint32_t exposureControl;
uint32_t exposure;
uint32_t gain;
uint32_t mode;
};
struct SceCameraWhiteBalance {
uint32_t whiteBalanceControl;
uint32_t gainRed;
uint32_t gainBlue;
uint32_t gainGreen;
};
struct SceCameraGamma {
uint32_t gammaControl;
uint32_t value;
uint8_t reserved[16];
};
struct SceCameraMeta {
uint32_t metaMode;
uint32_t format[SCE_CAMERA_MAX_DEVICE_NUM][SCE_CAMERA_MAX_FORMAT_LEVEL_NUM];
uint64_t frame[SCE_CAMERA_MAX_DEVICE_NUM];
uint64_t timestamp[SCE_CAMERA_MAX_DEVICE_NUM];
uint32_t deviceTimestamp[SCE_CAMERA_MAX_DEVICE_NUM];
SceCameraExposureGain exposureGain[SCE_CAMERA_MAX_DEVICE_NUM];
SceCameraWhiteBalance whiteBalance[SCE_CAMERA_MAX_DEVICE_NUM];
SceCameraGamma gamma[SCE_CAMERA_MAX_DEVICE_NUM];
uint32_t luminance[SCE_CAMERA_MAX_DEVICE_NUM];
SceFVector3 acceleration;
uint64_t vcounter;
uint32_t reserved[16];
};
struct SceCameraFrameData {
uint32_t sizeThis;
uint32_t readMode;
SceCameraFramePosition framePosition[SCE_CAMERA_MAX_DEVICE_NUM][SCE_CAMERA_MAX_FORMAT_LEVEL_NUM];
void* pFramePointerList[SCE_CAMERA_MAX_DEVICE_NUM][SCE_CAMERA_MAX_FORMAT_LEVEL_NUM];
uint32_t frameSize[SCE_CAMERA_MAX_DEVICE_NUM][SCE_CAMERA_MAX_FORMAT_LEVEL_NUM];
uint32_t status[SCE_CAMERA_MAX_DEVICE_NUM];
SceCameraMeta meta;
void* pFramePointerListGarlic[SCE_CAMERA_MAX_DEVICE_NUM][SCE_CAMERA_MAX_FORMAT_LEVEL_NUM];
};
struct SceVrTrackerGpuSubmitParam {
int32_t sizeOfThis;
SceVrTrackerPreferenceType padTrackingPreference;