API 参考 / 渲染、资源与语言
BackgroundRenderer
用途:背景渲染器。在游玩内容绘制之前执行,用来在轨道/音符之下画背景(曲绘、纯色、网格等)。
完整签名
java
public interface BackgroundRenderer {
default int zOrder();
void render(RenderCanvas canvas, FilterFrame frame);
}zOrder()
签名:
java
default int zOrder();行为:默认 0,任意整数;越小越先绘制、越靠下,相同层号按注册顺序。
render(canvas, frame)
签名:
java
void render(RenderCanvas canvas, FilterFrame frame);行为:canvas 位于游玩内容之下,frame 为当前帧只读视图(frame.layer() 为 BACKGROUND)。回调前后宿主自动 save/restore。
注册入口:ctx.registries().backgroundRenderers()。
示例:纯色渐变背景
java
public final class SolidBg implements BackgroundRenderer {
@Override public int zOrder() { return -10; } // 压到最底
@Override public void render(RenderCanvas c, FilterFrame f) {
c.save();
c.setAlpha(1.0);
c.setColor(new java.awt.Color(0x0B, 0x10, 0x18));
c.fillRect(0, 0, f.width(), f.height());
c.setColor(new java.awt.Color(0x14, 0x22, 0x33));
c.fillRect(0, f.height() * 0.6, f.width(), f.height() * 0.4);
c.restore();
}
}