feat(font): add missing font inventory exports

This commit is contained in:
Codex committed 2026-10-30 02:32:51 +02:00
1 parent 39fc186c97
commit 4c39b1f5c8
5 files changed
+238

No files matched your search

@@ -1 +1,3 @@
#pragma once
#include "prx/libSceFont/libSceFont.hpp"
@@ -1 +1,3 @@
#pragma once
#include "prx/libSceFont/libSceFont.hpp"
+45
View File
@@ -333,4 +333,49 @@ const FontWritingLineStep* APS5_VABI sceFontWritingLineRefersRenderStep(void* wr
int APS5_VABI sceFontWritingLineGetRenderMetrics(void* writingLine, FontWritingMetrics* writingMetrics);
int APS5_VABI sceFontWritingLineGetOrderingSpace(void* writingLine, float* advanceSpace, float* headSpace, float* inlineSpace, float* tailSpace);
int APS5_VABI sceFontGraphicsCanvasStartDrawing();
int APS5_VABI sceFontGraphicsGetDrawingFrameHandle();
int APS5_VABI sceFontGraphicsGetIndexedVertexesGlyph();
int APS5_VABI sceFontGraphicsProcessWaitAllSequences();
int APS5_VABI sceFontGraphicsStructureVertexesGlyph();
int APS5_VABI sceFontGraphicsTextureRefersSurface();
int APS5_VABI sceFontGraphicsUndefineIndexedVertexesGlyph();
int APS5_VABI sceFontGraphicsAppendGradientSegment();
int APS5_VABI sceFontSupportSystemUpdation();
int APS5_VABI sceFontGraphicsCanvasRenewal();
int APS5_VABI sceFontGraphicsDesignStartDrawing();
int APS5_VABI sceFontGraphicsGetVertexesGlyphMetrics();
int APS5_VABI sceFontGraphicsUpdateSlantShift();
int APS5_VABI sceFontGraphicsTextureMakeFillTexture();
int APS5_VABI sceFontGraphicsTextureMakeFillTextureImage();
int APS5_VABI sceFontGraphicsCanvasSetSurfaceFill();
int APS5_VABI sceFontGraphicsDrawVertexesGlyph();
int APS5_VABI sceFontGraphicsDrawRegionShape();
int APS5_VABI sceFontGraphicsProcessWaitSequence();
int APS5_VABI sceFontGraphicsTextureGetSurface();
int APS5_VABI sceFontGraphicsUndefineIndexedVertexesGlyphs();
int APS5_VABI sceFontGetCharVariationGlyphCode();
int APS5_VABI sceFontGraphicsSetupSlantShift();
int APS5_VABI sceFontGraphicsAdjustFillRadialGradient();
int APS5_VABI sceFontGraphicsDrawupFillFlatColor();
int APS5_VABI sceFontGraphicsDrawupFillLinearGradient();
int APS5_VABI sceFontGraphicsSetVertexesGlyphScale();
int APS5_VABI sceFontGlyphGetOutlineVertexes();
int APS5_VABI sceFontGraphicsDrawupFillRadialGradient();
int APS5_VABI sceFontGraphicsAdjustGradientSpread();
int APS5_VABI sceFontGraphicsCanvasSetSurfaceFillWithLayout();
int APS5_VABI sceFontGraphicsCanvasGetPreprocess();
int APS5_VABI sceFontGraphicsReportError();
int APS5_VABI sceFontGraphicsDrawRectangleShape();
int APS5_VABI sceFontGraphicsProcessSetSyncPolicy();
int APS5_VABI sceFontGraphicsCanvasSetSurfaceFillWithMapping();
int APS5_VABI sceFontGraphicsUndefineIndexedVertexesGlyphAll();
int APS5_VABI sceFontGraphicsGetVertexesGlyphScale();
int APS5_VABI sceFontGraphicsCanvasClearPreprocess();
int APS5_VABI sceFontGraphicsFindIndexedVertexesGlyph();
int APS5_VABI sceFontGraphicsDefineIndexedVertexesGlyph();
int APS5_VABI sceFontGraphicsProcessRenderSequence();
int APS5_VABI sceFontOutlineVertexesInterfaceInit();
int APS5_VABI sceFontGraphicsSurfaceSetTargetView();
}
@@ -368,6 +368,183 @@ int APS5_VABI sceFontGraphicsDrawupFillTexturePatternObject(FontGraphicsFrame* f
return 0;
}
int APS5_VABI sceFontGraphicsCanvasStartDrawing() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsGetDrawingFrameHandle() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsGetIndexedVertexesGlyph() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsProcessWaitAllSequences() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsStructureVertexesGlyph() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsTextureRefersSurface() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsUndefineIndexedVertexesGlyph() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsAppendGradientSegment() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontSupportSystemUpdation() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsCanvasRenewal() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsDesignStartDrawing() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsGetVertexesGlyphMetrics() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsUpdateSlantShift() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsTextureMakeFillTexture() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsTextureMakeFillTextureImage() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsCanvasSetSurfaceFill() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsDrawVertexesGlyph() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsDrawRegionShape() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsProcessWaitSequence() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsTextureGetSurface() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsUndefineIndexedVertexesGlyphs() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGetCharVariationGlyphCode() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsSetupSlantShift() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsAdjustFillRadialGradient() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsDrawupFillFlatColor() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsDrawupFillLinearGradient() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsSetVertexesGlyphScale() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGlyphGetOutlineVertexes() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsDrawupFillRadialGradient() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsAdjustGradientSpread() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsCanvasSetSurfaceFillWithLayout() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsCanvasGetPreprocess() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsReportError() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsDrawRectangleShape() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsProcessSetSyncPolicy() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsCanvasSetSurfaceFillWithMapping() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsUndefineIndexedVertexesGlyphAll() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsGetVertexesGlyphScale() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsCanvasClearPreprocess() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsFindIndexedVertexesGlyph() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsDefineIndexedVertexesGlyph() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsProcessRenderSequence() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontOutlineVertexesInterfaceInit() {
NotImplemented_nid_no_patch(__func__);
}
int APS5_VABI sceFontGraphicsSurfaceSetTargetView() {
NotImplemented_nid_no_patch(__func__);
}
}
#pragma GCC visibility pop
+12
View File
@@ -5,6 +5,18 @@
- [sceFontRenderCharGlyphImage, sceFontRenderCharGlyphImageHorizontal, sceFontRenderCharGlyphImageVertical](../../../core/libs/prx/libSceFont/src/Layout.cpp) (libSceFont) accept a surface whose width or height is 0, with any row stride, and return the glyph metrics and an empty update rectangle without writing to the surface. A negative width, height or stride, a zero stride on a surface with pixels, a null buffer and a pixel size other than 1 or 4 bytes still return `SCE_FONT_ERROR_NO_SUPPORT_SURFACE`; those cases and the exact console result for a zero-extent surface are not measured. The extent-0 behaviour is inferred from the Tekken Dark Resurrection PSP emulator which, to measure a string, initialises the surface with width 0 and height 31 and an unbound stride, renders each character and sums the returned advances.
The 44 additional exports below have unknown signatures and behavior. Their parameterless `int` declarations are import-resolution placeholders, not confirmed ABI signatures; every call throws through `NotImplemented_nid_no_patch`. Only names and NIDs are established by the [13.60 export inventory](https://github.com/xdCloudy/PS5-13.60-Function-Stub-Library/blob/bfec40deb4c47a17d7603ee2bc79aa6862c0c56b/data/firmware-13.60/libscefont-63ba420c2e.jsonl). They have not been measured on a console.
- [sceFontGraphicsCanvasStartDrawing, sceFontGraphicsGetDrawingFrameHandle, sceFontGraphicsGetIndexedVertexesGlyph, sceFontGraphicsProcessWaitAllSequences, sceFontGraphicsStructureVertexesGlyph, sceFontGraphicsTextureRefersSurface](../../../core/libs/prx/libSceFont/src/Unimplemented.cpp) - unknown signatures and behavior; every call throws.
- [sceFontGraphicsUndefineIndexedVertexesGlyph, sceFontGraphicsAppendGradientSegment, sceFontSupportSystemUpdation, sceFontGraphicsCanvasRenewal, sceFontGraphicsDesignStartDrawing, sceFontGraphicsGetVertexesGlyphMetrics](../../../core/libs/prx/libSceFont/src/Unimplemented.cpp) - unknown signatures and behavior; every call throws.
- [sceFontGraphicsUpdateSlantShift, sceFontGraphicsTextureMakeFillTexture, sceFontGraphicsTextureMakeFillTextureImage, sceFontGraphicsCanvasSetSurfaceFill, sceFontGraphicsDrawVertexesGlyph, sceFontGraphicsDrawRegionShape](../../../core/libs/prx/libSceFont/src/Unimplemented.cpp) - unknown signatures and behavior; every call throws.
- [sceFontGraphicsProcessWaitSequence, sceFontGraphicsTextureGetSurface, sceFontGraphicsUndefineIndexedVertexesGlyphs, sceFontGetCharVariationGlyphCode, sceFontGraphicsSetupSlantShift, sceFontGraphicsAdjustFillRadialGradient](../../../core/libs/prx/libSceFont/src/Unimplemented.cpp) - unknown signatures and behavior; every call throws.
- [sceFontGraphicsDrawupFillFlatColor, sceFontGraphicsDrawupFillLinearGradient, sceFontGraphicsSetVertexesGlyphScale, sceFontGlyphGetOutlineVertexes, sceFontGraphicsDrawupFillRadialGradient, sceFontGraphicsAdjustGradientSpread](../../../core/libs/prx/libSceFont/src/Unimplemented.cpp) - unknown signatures and behavior; every call throws.
- [sceFontGraphicsCanvasSetSurfaceFillWithLayout, sceFontGraphicsCanvasGetPreprocess, sceFontGraphicsReportError, sceFontGraphicsDrawRectangleShape, sceFontGraphicsProcessSetSyncPolicy, sceFontGraphicsCanvasSetSurfaceFillWithMapping](../../../core/libs/prx/libSceFont/src/Unimplemented.cpp) - unknown signatures and behavior; every call throws.
- [sceFontGraphicsUndefineIndexedVertexesGlyphAll, sceFontGraphicsGetVertexesGlyphScale, sceFontGraphicsCanvasClearPreprocess, sceFontGraphicsFindIndexedVertexesGlyph, sceFontGraphicsDefineIndexedVertexesGlyph, sceFontGraphicsProcessRenderSequence](../../../core/libs/prx/libSceFont/src/Unimplemented.cpp) - unknown signatures and behavior; every call throws.
- [sceFontOutlineVertexesInterfaceInit, sceFontGraphicsSurfaceSetTargetView](../../../core/libs/prx/libSceFont/src/Unimplemented.cpp) - unknown signatures and behavior; every call throws.
- [sceFontCreateString](../../../core/libs/prx/libSceFont/src/Text.cpp): a string created from a default-form (0x10) text source gets the direction of its first strong character, 0x11 for right to left and 0x12 for left to right, and 0x12 when there is none; explicit 0x11 and 0x12 sources keep their form and [sceFontStringGetWritingForm](../../../core/libs/prx/libSceFont/src/Text.cpp) returns the stored form. LRM and RLM count as strong, embeddings and overrides do not, and text between an isolate initiator and its PDI is skipped. The rule follows a run of the firmware 13.42 library in a harness reported on the pull request: for non-empty text it was checked before a later glyph-stage failure and only empty text completed, so it is not full native right-to-left rendering. Which characters are strong is decided here by Unicode block ranges, not by the full bidi class tables.
- [sceFontRenderCharGlyphImage, sceFontRenderCharGlyphImageHorizontal, sceFontRenderCharGlyphImageVertical](../../../core/libs/prx/libSceFont/src/Layout.cpp) (libSceFont) - four titles disassembled for this entry import them: PPSA01530 (CharGlyphImage, 2 call sites), PPSA13356 (CharGlyphImage, 4), PPSA15246 (Horizontal, 3) and PPSA14421 (Horizontal, 1); none imports Vertical. PPSA13356 initialises two surfaces of 64 x 64 and 1920 x 1080 at 1 byte per pixel (0xba084, 0xba5e8) and calls again with the character '_' (0x5f) at 0xba111 when the first call (0xba0e2) returns nonzero; PPSA15246 (0x229413) and PPSA14421 (0x1054d8) do not test the result. The extents of the other surfaces are run-time values, so whether any title passes 0 is not shown.