This commit is contained in:
w1naenator 2025-11-22 01:21:16 +02:00
parent e3e8561d58
commit 7600090b9c

View File

@ -12,19 +12,19 @@ struct OrbisFontHandleOpaque {
u32 reserved[64]; u32 reserved[64];
}; };
using OrbisFontLib = void*; using OrbisFontLib = void*;
using OrbisFontHandle = OrbisFontHandleOpaque*; using OrbisFontHandle = OrbisFontHandleOpaque*;
using OrbisFontRendererCreateParams = void*; using OrbisFontRendererCreateParams = void*;
using OrbisFontRenderer = void*; using OrbisFontRenderer = void*;
using OrbisFontLibCreateParams = void*; using OrbisFontLibCreateParams = void*;
struct OrbisFontMem; struct OrbisFontMem;
struct OrbisFontOpenParams { struct OrbisFontOpenParams {
u16 tag; u16 tag;
u16 pad16; u16 pad16;
u32 flags; u32 flags;
u32 subfont_index; u32 subfont_index;
s32 unique_id; s32 unique_id;
const void* reserved_ptr2; const void* reserved_ptr2;
const void* reserved_ptr1; const void* reserved_ptr1;
@ -48,62 +48,62 @@ struct OrbisFontKerning {
float py; float py;
}; };
struct OrbisFontGlyphImageMetrics { struct OrbisFontGlyphImageMetrics {
float bearing_x; float bearing_x;
float bearing_y; float bearing_y;
float dv; float dv;
float stride; float stride;
u32 width; u32 width;
u32 height; u32 height;
}; };
struct OrbisFontGenerateGlyphParams { struct OrbisFontGenerateGlyphParams {
u16 id; u16 id;
u16 res0; u16 res0;
u16 form_options; u16 form_options;
u8 glyph_form; u8 glyph_form;
u8 metrics_form; u8 metrics_form;
const OrbisFontMem* mem; const OrbisFontMem* mem;
void* res1; void* res1;
void* res2; void* res2;
}; };
struct OrbisFontGlyphOutlinePoint { struct OrbisFontGlyphOutlinePoint {
float x; float x;
float y; float y;
}; };
struct OrbisFontGlyphOutline { struct OrbisFontGlyphOutline {
s16 contours_cnt; s16 contours_cnt;
s16 points_cnt; s16 points_cnt;
u32 outline_flags; u32 outline_flags;
OrbisFontGlyphOutlinePoint* points_ptr; OrbisFontGlyphOutlinePoint* points_ptr;
u8* tags_ptr; u8* tags_ptr;
u16* contour_end_idx; u16* contour_end_idx;
}; };
struct OrbisFontGlyphOpaque { struct OrbisFontGlyphOpaque {
u16 magic; u16 magic;
u16 flags; u16 flags;
u8 glyph_form; u8 glyph_form;
u8 metrics_form; u8 metrics_form;
u16 em_size; u16 em_size;
u16 baseline; u16 baseline;
u16 height_px; u16 height_px;
u16 origin_x; u16 origin_x;
u16 origin_y; u16 origin_y;
float scale_x; float scale_x;
float base_scale; float base_scale;
const OrbisFontMem* memory; const OrbisFontMem* memory;
}; };
using OrbisFontGlyph = OrbisFontGlyphOpaque*; using OrbisFontGlyph = OrbisFontGlyphOpaque*;
struct OrbisFontResultStage { struct OrbisFontResultStage {
u8* p_00; u8* p_00;
u32 u32_08; u32 u32_08;
u32 u32_0C; u32 u32_0C;
u32 u32_10; u32 u32_10;
}; };
struct OrbisFontResultSlot { struct OrbisFontResultSlot {
@ -113,21 +113,21 @@ struct OrbisFontResultSlot {
u8 maybe_pixelFmt; u8 maybe_pixelFmt;
}; };
struct OrbisFontRenderOutput { struct OrbisFontRenderOutput {
const OrbisFontResultStage* stage; const OrbisFontResultStage* stage;
OrbisFontResultSlot slot; OrbisFontResultSlot slot;
u32 new_x; u32 new_x;
u32 new_y; u32 new_y;
u32 new_w; u32 new_w;
u32 new_h; u32 new_h;
OrbisFontGlyphImageMetrics ImageMetrics; OrbisFontGlyphImageMetrics ImageMetrics;
}; };
using OrbisFontAllocFn = void*(void* object, u32 size); using OrbisFontAllocFn = void*(void* object, u32 size);
using OrbisFontFreeFn = void(void* object, void* p); using OrbisFontFreeFn = void(void* object, void* p);
using OrbisFontReallocFn = void*(void* object, void* p, u32 newSize); using OrbisFontReallocFn = void*(void* object, void* p, u32 newSize);
using OrbisFontCallocFn = void*(void* object, u32 nBlock, u32 size); using OrbisFontCallocFn = void*(void* object, u32 nBlock, u32 size);
using OrbisFontMspaceCreateFn = void*(void* parent, const char* name, void* address, u32 size, using OrbisFontMspaceCreateFn = void*(void* parent, const char* name, void* address, u32 size,
u32 attr); u32 attr);
using OrbisFontMspaceDestroyFn = void(void* parent, void* mspace); using OrbisFontMspaceDestroyFn = void(void* parent, void* mspace);
using OrbisFontMemDestroyFn = void(OrbisFontMem* fontMemory, void* object, void* destroyArg); using OrbisFontMemDestroyFn = void(OrbisFontMem* fontMemory, void* object, void* destroyArg);
@ -258,22 +258,22 @@ s32 PS4_SYSV_ABI sceFontCreateRenderer(const OrbisFontMem* memory,
s32 PS4_SYSV_ABI sceFontCreateRendererWithEdition(const OrbisFontMem* memory, s32 PS4_SYSV_ABI sceFontCreateRendererWithEdition(const OrbisFontMem* memory,
OrbisFontRendererCreateParams create_params, OrbisFontRendererCreateParams create_params,
u64 edition, OrbisFontRenderer* pRenderer); u64 edition, OrbisFontRenderer* pRenderer);
s32 PS4_SYSV_ABI sceFontCreateString(); s32 PS4_SYSV_ABI sceFontCreateString();
s32 PS4_SYSV_ABI sceFontCreateWords(); s32 PS4_SYSV_ABI sceFontCreateWords();
s32 PS4_SYSV_ABI sceFontCreateWritingLine(); s32 PS4_SYSV_ABI sceFontCreateWritingLine();
s32 PS4_SYSV_ABI sceFontDefineAttribute(); s32 PS4_SYSV_ABI sceFontDefineAttribute();
s32 PS4_SYSV_ABI sceFontDeleteGlyph(const OrbisFontMem* memory, OrbisFontGlyph* glyph); s32 PS4_SYSV_ABI sceFontDeleteGlyph(const OrbisFontMem* memory, OrbisFontGlyph* glyph);
s32 PS4_SYSV_ABI sceFontDestroyGraphicsDevice(); s32 PS4_SYSV_ABI sceFontDestroyGraphicsDevice();
s32 PS4_SYSV_ABI sceFontDestroyGraphicsService(); s32 PS4_SYSV_ABI sceFontDestroyGraphicsService();
s32 PS4_SYSV_ABI sceFontDestroyLibrary(OrbisFontLib* pLibrary); s32 PS4_SYSV_ABI sceFontDestroyLibrary(OrbisFontLib* pLibrary);
s32 PS4_SYSV_ABI sceFontDestroyRenderer(OrbisFontRenderer* pRenderer); s32 PS4_SYSV_ABI sceFontDestroyRenderer(OrbisFontRenderer* pRenderer);
s32 PS4_SYSV_ABI sceFontDestroyString(); s32 PS4_SYSV_ABI sceFontDestroyString();
s32 PS4_SYSV_ABI sceFontDestroyWords(); s32 PS4_SYSV_ABI sceFontDestroyWords();
s32 PS4_SYSV_ABI sceFontDestroyWritingLine(); s32 PS4_SYSV_ABI sceFontDestroyWritingLine();
s32 PS4_SYSV_ABI sceFontDettachDeviceCacheBuffer(); s32 PS4_SYSV_ABI sceFontDettachDeviceCacheBuffer();
s32 PS4_SYSV_ABI sceFontGenerateCharGlyph(OrbisFontHandle glyph_handle, u32 codepoint, s32 PS4_SYSV_ABI sceFontGenerateCharGlyph(OrbisFontHandle glyph_handle, u32 codepoint,
const OrbisFontGenerateGlyphParams* gen_params, const OrbisFontGenerateGlyphParams* gen_params,
OrbisFontGlyph* glyph_out); OrbisFontGlyph* glyph_out);
s32 PS4_SYSV_ABI sceFontGetAttribute(); s32 PS4_SYSV_ABI sceFontGetAttribute();
s32 PS4_SYSV_ABI sceFontGetCharGlyphCode(); s32 PS4_SYSV_ABI sceFontGetCharGlyphCode();
s32 PS4_SYSV_ABI sceFontGetCharGlyphMetrics(OrbisFontHandle fontHandle, u32 code, s32 PS4_SYSV_ABI sceFontGetCharGlyphMetrics(OrbisFontHandle fontHandle, u32 code,
@ -309,16 +309,16 @@ s32 PS4_SYSV_ABI sceFontGetVerticalLayout(OrbisFontHandle fontHandle,
s32 PS4_SYSV_ABI sceFontGlyphDefineAttribute(); s32 PS4_SYSV_ABI sceFontGlyphDefineAttribute();
s32 PS4_SYSV_ABI sceFontGlyphGetAttribute(); s32 PS4_SYSV_ABI sceFontGlyphGetAttribute();
s32 PS4_SYSV_ABI sceFontGlyphGetGlyphForm(); s32 PS4_SYSV_ABI sceFontGlyphGetGlyphForm();
s32 PS4_SYSV_ABI sceFontGlyphGetMetricsForm(); s32 PS4_SYSV_ABI sceFontGlyphGetMetricsForm();
s32 PS4_SYSV_ABI sceFontGlyphGetScalePixel(); s32 PS4_SYSV_ABI sceFontGlyphGetScalePixel();
s32 PS4_SYSV_ABI sceFontGlyphRefersMetrics(); s32 PS4_SYSV_ABI sceFontGlyphRefersMetrics();
s32 PS4_SYSV_ABI sceFontGlyphRefersMetricsHorizontal(); s32 PS4_SYSV_ABI sceFontGlyphRefersMetricsHorizontal();
s32 PS4_SYSV_ABI sceFontGlyphRefersMetricsHorizontalAdvance(); s32 PS4_SYSV_ABI sceFontGlyphRefersMetricsHorizontalAdvance();
s32 PS4_SYSV_ABI sceFontGlyphRefersMetricsHorizontalX(); s32 PS4_SYSV_ABI sceFontGlyphRefersMetricsHorizontalX();
OrbisFontGlyphOutline* PS4_SYSV_ABI sceFontGlyphRefersOutline(OrbisFontGlyph glyph); OrbisFontGlyphOutline* PS4_SYSV_ABI sceFontGlyphRefersOutline(OrbisFontGlyph glyph);
s32 PS4_SYSV_ABI sceFontGlyphRenderImage(); s32 PS4_SYSV_ABI sceFontGlyphRenderImage();
s32 PS4_SYSV_ABI sceFontGlyphRenderImageHorizontal(); s32 PS4_SYSV_ABI sceFontGlyphRenderImageHorizontal();
s32 PS4_SYSV_ABI sceFontGlyphRenderImageVertical(); s32 PS4_SYSV_ABI sceFontGlyphRenderImageVertical();
s32 PS4_SYSV_ABI sceFontGraphicsBeginFrame(); s32 PS4_SYSV_ABI sceFontGraphicsBeginFrame();
s32 PS4_SYSV_ABI sceFontGraphicsDrawingCancel(); s32 PS4_SYSV_ABI sceFontGraphicsDrawingCancel();
s32 PS4_SYSV_ABI sceFontGraphicsDrawingFinish(); s32 PS4_SYSV_ABI sceFontGraphicsDrawingFinish();