API 参考 / 能力接口(capability 包)
ResultOverlayRenderer
结算覆盖渲染器,经 UiCustomization.addResultOverlay 注册。每次结算界面渲染帧调用一次,在所有原版内容之上附加自绘。
方法速览
| 方法 | 用途 |
|---|---|
render(RenderCanvas, ResultSnapshot, ResultLayout) | 绘制模组自定义内容 |
完整签名
java
public interface UiCustomization {
interface ResultOverlayRenderer {
void render(RenderCanvas canvas, ResultSnapshot snapshot, ResultLayout layout);
}
}render(RenderCanvas canvas, ResultSnapshot snapshot, ResultLayout layout)
签名:
java
void render(RenderCanvas canvas, ResultSnapshot snapshot, ResultLayout layout);行为:在原版结算内容(窗口镶边、判定行、按钮)绘制完成后调用,模组可在画布任意位置附加内容。
canvas:绘制画布,逻辑坐标与结算界面同一空间。snapshot:本局结算数据快照(成绩、判定计数、曲目信息等),同一帧内所有渲染器共享同一份。layout:结算界面布局原语(画布尺寸与结果窗口矩形)。- 在游戏渲染线程执行,回调内不应做阻塞操作;异常由宿主隔离,不影响结算界面与其它模组。
示例:
java
(canvas, snapshot, layout) -> {
canvas.drawText("ACC " + String.format("%.2f", snapshot.accuracy()) + "%",
layout.windowX() + 12, layout.windowY() + layout.windowHeight() - 12,
TextStyle.of(14, java.awt.Color.WHITE));
}线程:游戏渲染线程,每结算渲染帧一次。
稳定性:2.0 起冻结:2.x 内只增不破。