[skip ci] Initial commit

This commit is contained in:
igor725 2024-04-04 21:32:31 +03:00
parent 5bc47aa04a
commit 634bb3c821
No known key found for this signature in database
GPG Key ID: 46F13BBE46F8569D
6 changed files with 41 additions and 6 deletions

4
.gitmodules vendored
View File

@ -11,3 +11,7 @@
path = third_party/SDL2
url = https://github.com/libsdl-org/SDL.git
branch = SDL2
[submodule "third_party/libpng"]
path = third_party/libpng
url = https://github.com/pnggroup/libpng
branch = libpng16

View File

@ -10,3 +10,14 @@ constexpr int32_t UNSUPPORT_DATA = 0x80690011;
constexpr int32_t DECODE_ERROR = 0x80690012;
constexpr int32_t FATAL = 0x80690020;
} // namespace Err
enum class ScePngDecColorSpace : uint16_t {
GRAYSCALE = 2,
RGB = 3,
CLUT = 4,
GRAYSCALE_ALPHA = 18,
RGBA = 19,
};
constexpr uint8_t SCE_PNG_DEC_IMAGE_FLAG_ADAM7_INTERLACE = 1;
constexpr uint8_t SCE_PNG_DEC_IMAGE_FLAG_TRNS_CHUNK_EXIST = 2;

View File

@ -27,14 +27,19 @@ EXPORT SYSV_ABI int32_t scePngDecDelete(ScePngDecHandle handle) {
}
EXPORT SYSV_ABI int32_t scePngDecParseHeader(const ScePngDecParseParam* param, ScePngDecImageInfo* ii) {
if (param->pngAddr == nullptr) return Err::INVALID_ADDR;
if (param->pngSize < 8) return Err::INVALID_SIZE;
LOG_USE_MODULE(libScePngDec);
LOG_ERR(L"todo %S", __FUNCTION__);
return Ok;
}
EXPORT SYSV_ABI int32_t scePngDecQueryMemorySize(const ScePngDecCreateParam* param) {
if (param == nullptr) return Err::INVALID_ADDR;
if (param->cbSize != sizeof(ScePngDecCreateParam)) return Err::INVALID_SIZE;
if (param->maxImageWidth > 1000000) return Err::INVALID_PARAM;
LOG_USE_MODULE(libScePngDec);
LOG_ERR(L"todo %S", __FUNCTION__);
return Ok;
return 0;
}
}

View File

@ -4,21 +4,21 @@
typedef void* ScePngDecHandle;
struct ScePngDecParseParam {
const void* pngMemAddr;
uint32_t pngMemSize;
uint32_t reserved0;
const void* pngAddr;
uint32_t pngSize;
uint32_t reserved;
};
struct ScePngDecImageInfo {
uint32_t imageWidth;
uint32_t imageHeight;
uint16_t colorSpace;
ScePngDecColorSpace colorSpace;
uint16_t bitDepth;
uint32_t imageFlag;
};
struct ScePngDecCreateParam {
uint32_t thisSize;
uint32_t cbSize;
uint32_t attribute;
uint32_t maxImageWidth;
};

View File

@ -6,6 +6,7 @@ include(ExternalProject)
add_subdirectory(optick)
add_subdirectory(p7)
add_subdirectory(SDL2)
add_subdirectory(libpng)
install(DIRECTORY "ffmpeg/bin/" DESTINATION "${CMAKE_BINARY_DIR}/bin"
FILES_MATCHING PATTERN "*.dll"
@ -24,4 +25,17 @@ set_target_properties(SDL2
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/install/bin"
)
set_target_properties(libpng
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/install/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/install/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/install/bin"
)
option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
set(PNG_SHARED ON CACHE BOOL "" FORCE)
set(PNG_STATIC OFF CACHE BOOL "" FORCE)
set(PNG_EXECUTABLES OFF CACHE BOOL "" FORCE)
set(PNG_TESTS OFF CACHE BOOL "" FORCE)
set(SKIP_INSTALL_ALL OFF CACHE BOOL "" FORCE)

1
third_party/libpng vendored Submodule

@ -0,0 +1 @@
Subproject commit f1848a3b560ddcad065242268433af475948461e