mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-22 18:15:14 +00:00
84 lines
2.0 KiB
C++
84 lines
2.0 KiB
C++
// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#pragma once
|
|
|
|
#include "common/enum.h"
|
|
#include "common/types.h"
|
|
|
|
namespace Core::Loader {
|
|
class SymbolsResolver;
|
|
}
|
|
|
|
namespace Libraries::PngDec {
|
|
|
|
enum class OrbisPngDecColorSpace : u16 {
|
|
Grayscale = 2,
|
|
Rgb,
|
|
Clut,
|
|
GrayscaleAlpha = 18,
|
|
Rgba,
|
|
};
|
|
|
|
enum class OrbisPngDecImageFlag : u32 {
|
|
None = 0,
|
|
Adam7Interlace = 1,
|
|
TrnsChunkExist = 2,
|
|
};
|
|
DECLARE_ENUM_FLAG_OPERATORS(OrbisPngDecImageFlag)
|
|
|
|
enum class OrbisPngDecPixelFormat : u16 {
|
|
R8G8B8A8 = 0,
|
|
B8G8R8A8,
|
|
};
|
|
|
|
enum class OrbisPngDecAttribute {
|
|
None = 0,
|
|
BitDepth16,
|
|
};
|
|
|
|
struct OrbisPngDecParseParam {
|
|
const u8* png_mem_addr;
|
|
u32 png_mem_size;
|
|
u32 reserved;
|
|
};
|
|
|
|
struct OrbisPngDecImageInfo {
|
|
u32 image_width;
|
|
u32 image_height;
|
|
OrbisPngDecColorSpace color_space;
|
|
u16 bit_depth;
|
|
OrbisPngDecImageFlag image_flag;
|
|
};
|
|
|
|
struct OrbisPngDecCreateParam {
|
|
u32 this_size;
|
|
u32 attribute;
|
|
u32 max_image_width;
|
|
};
|
|
|
|
using OrbisPngDecHandle = void*;
|
|
|
|
struct OrbisPngDecDecodeParam {
|
|
const u8* png_mem_addr;
|
|
u8* image_mem_addr;
|
|
u32 png_mem_size;
|
|
u32 image_mem_size;
|
|
OrbisPngDecPixelFormat pixel_format;
|
|
u16 alpha_value;
|
|
u32 image_pitch;
|
|
};
|
|
|
|
s32 PS4_SYSV_ABI scePngDecCreate(const OrbisPngDecCreateParam* param, void* memoryAddress,
|
|
u32 memorySize, OrbisPngDecHandle* handle);
|
|
s32 PS4_SYSV_ABI scePngDecDecode(OrbisPngDecHandle handle, const OrbisPngDecDecodeParam* param,
|
|
OrbisPngDecImageInfo* imageInfo);
|
|
s32 PS4_SYSV_ABI scePngDecDecodeWithInputControl();
|
|
s32 PS4_SYSV_ABI scePngDecDelete(OrbisPngDecHandle handle);
|
|
s32 PS4_SYSV_ABI scePngDecParseHeader(const OrbisPngDecParseParam* param,
|
|
OrbisPngDecImageInfo* imageInfo);
|
|
s32 PS4_SYSV_ABI scePngDecQueryMemorySize(const OrbisPngDecCreateParam* param);
|
|
|
|
void RegisterLib(Core::Loader::SymbolsResolver* sym);
|
|
} // namespace Libraries::PngDec
|