From cbb8b9baed07f2a5e0e3cd8335f4ad1cfc4c8079 Mon Sep 17 00:00:00 2001 From: georgemoralis Date: Tue, 12 Nov 2024 17:19:42 +0200 Subject: [PATCH] cleanup structs and error codes --- src/core/libraries/error_codes.h | 12 +++++- src/core/libraries/libpng/pngdec.h | 65 +++++++++++++++--------------- 2 files changed, 44 insertions(+), 33 deletions(-) diff --git a/src/core/libraries/error_codes.h b/src/core/libraries/error_codes.h index 6bbdc3080..280ddf1cb 100644 --- a/src/core/libraries/error_codes.h +++ b/src/core/libraries/error_codes.h @@ -593,7 +593,6 @@ constexpr int ORBIS_VIDEODEC2_ERROR_INVALID_SEQUENCE = 0x811D0303; constexpr int ORBIS_VIDEODEC2_ERROR_FATAL_STREAM = 0x811D0304; // Videodec library - constexpr int ORBIS_VIDEODEC_ERROR_API_FAIL = 0x80C10000; constexpr int ORBIS_VIDEODEC_ERROR_CODEC_TYPE = 0x80C10001; constexpr int ORBIS_VIDEODEC_ERROR_STRUCT_SIZE = 0x80C10002; @@ -616,3 +615,14 @@ constexpr int ORBIS_VIDEODEC_ERROR_MISMATCH_SPEC = 0x80C10012; constexpr int ORBIS_VIDEODEC_ERROR_INVALID_SEQUENCE = 0x80C10013; constexpr int ORBIS_VIDEODEC_ERROR_FATAL_STREAM = 0x80C10014; constexpr int ORBIS_VIDEODEC_ERROR_FATAL_STATE = 0x80C10015; + +// PngDec library +constexpr int ORBIS_PNG_DEC_ERROR_INVALID_ADDR = 0x80690001; +constexpr int ORBIS_PNG_DEC_ERROR_INVALID_SIZE = 0x80690002; +constexpr int ORBIS_PNG_DEC_ERROR_INVALID_PARAM = 0x80690003; +constexpr int ORBIS_PNG_DEC_ERROR_INVALID_HANDLE = 0x80690004; +constexpr int ORBIS_PNG_DEC_ERROR_INVALID_WORK_MEMORY = 0x80690005; +constexpr int ORBIS_PNG_DEC_ERROR_INVALID_DATA = 0x80690010; +constexpr int ORBIS_PNG_DEC_ERROR_UNSUPPORT_DATA = 0x80690011; +constexpr int ORBIS_PNG_DEC_ERROR_DECODE_ERROR = 0x80690012; +constexpr int ORBIS_PNG_DEC_ERROR_FATAL = 0x80690020; \ No newline at end of file diff --git a/src/core/libraries/libpng/pngdec.h b/src/core/libraries/libpng/pngdec.h index 35034a196..9d807166c 100644 --- a/src/core/libraries/libpng/pngdec.h +++ b/src/core/libraries/libpng/pngdec.h @@ -8,54 +8,55 @@ namespace Core::Loader { class SymbolsResolver; } + namespace Libraries::PngDec { -constexpr int ORBIS_PNG_DEC_ERROR_INVALID_ADDR = 0x80690001; -constexpr int ORBIS_PNG_DEC_ERROR_INVALID_SIZE = 0x80690002; -constexpr int ORBIS_PNG_DEC_ERROR_INVALID_PARAM = 0x80690003; -constexpr int ORBIS_PNG_DEC_ERROR_INVALID_HANDLE = 0x80690004; -constexpr int ORBIS_PNG_DEC_ERROR_INVALID_WORK_MEMORY = 0x80690005; -constexpr int ORBIS_PNG_DEC_ERROR_INVALID_DATA = 0x80690010; -constexpr int ORBIS_PNG_DEC_ERROR_UNSUPPORT_DATA = 0x80690011; -constexpr int ORBIS_PNG_DEC_ERROR_DECODE_ERROR = 0x80690012; -constexpr int ORBIS_PNG_DEC_ERROR_FATAL = 0x80690020; - -typedef struct OrbisPngDecParseParam { - const void* pngMemAddr; - u32 pngMemSize; - u32 reserved; -} OrbisPngDecParseParam; - -typedef struct OrbisPngDecImageInfo { - u32 imageWidth; - u32 imageHeight; - u16 colorSpace; - u16 bitDepth; - u32 imageFlag; -} OrbisPngDecImageInfo; - -typedef enum OrbisPngDecColorSpace { +enum OrbisPngDecColorSpace { ORBIS_PNG_DEC_COLOR_SPACE_GRAYSCALE = 2, ORBIS_PNG_DEC_COLOR_SPACE_RGB, ORBIS_PNG_DEC_COLOR_SPACE_CLUT, ORBIS_PNG_DEC_COLOR_SPACE_GRAYSCALE_ALPHA = 18, ORBIS_PNG_DEC_COLOR_SPACE_RGBA -} ScePngDecColorSpace; +}; -typedef enum OrbisPngDecImageFlag { +enum OrbisPngDecImageFlag { ORBIS_PNG_DEC_IMAGE_FLAG_ADAM7_INTERLACE = 1, ORBIS_PNG_DEC_IMAGE_FLAG_TRNS_CHUNK_EXIST = 2 -} OrbisPngDecImageFlag; +}; -typedef struct OrbisPngDecCreateParam { +enum OrbisPngDecPixelFormat { + ORBIS_PNG_DEC_PIXEL_FORMAT_R8G8B8A8 = 0, + ORBIS_PNG_DEC_PIXEL_FORMAT_B8G8R8A8 +}; + +enum OrbisPngDecAttribute { + ORBIS_PNG_DEC_ATTRIBUTE_NONE = 0, + ORBIS_PNG_DEC_ATTRIBUTE_BIT_DEPTH_16 +}; + +struct OrbisPngDecParseParam { + const void* pngMemAddr; + u32 pngMemSize; + u32 reserved; +}; + +struct OrbisPngDecImageInfo { + u32 imageWidth; + u32 imageHeight; + u16 colorSpace; + u16 bitDepth; + u32 imageFlag; +}; + +struct OrbisPngDecCreateParam { u32 thisSize; u32 attribute; u32 maxImageWidth; -} OrbisPngDecCreateParam; +}; typedef void* OrbisPngDecHandle; -typedef struct OrbisPngDecDecodeParam { +struct OrbisPngDecDecodeParam { const void* pngMemAddr; void* imageMemAddr; u32 pngMemSize; @@ -63,7 +64,7 @@ typedef struct OrbisPngDecDecodeParam { u16 pixelFormat; u16 alphaValue; u32 imagePitch; -} OrbisPngDecDecodeParam; +}; s32 PS4_SYSV_ABI scePngDecCreate(const OrbisPngDecCreateParam* param, void* memoryAddress, u32 memorySize, OrbisPngDecHandle* handle);