跳转至

SDFRectTexture

Since 2.2.1

SDFRectTexture 使用 SDF(Signed Distance Field)GPU 着色器绘制圆角矩形。它能在任意尺寸下产生清晰、抗锯齿的边缘。支持逐角半径设置、可选的描边边框,以及平滑的 CSS 过渡插值。

注册名称: sdf_rect_texture
LSS 函数: rect(...) / sdf(...)

继承自 TransformTexture — 支持 rotate()scale()transform()


使用方法

// Filled rounded rect
IGuiTexture panel = new SDFRectTexture()
    .setColor(0xFF2A2A2A)
    .setRadius(6f);

// Rounded rect with a white stroke
IGuiTexture bordered = new SDFRectTexture()
    .setColor(0xFF1A1A1A)
    .setRadius(4f)
    .setStroke(1f)
    .setBorderColor(0xFFFFFFFF);

// Static factory
IGuiTexture simple = SDFRectTexture.of(0xFF3A3A3A);
val panel = SDFRectTexture()
    .setColor(0xFF2A2A2A.toInt())
    .setRadius(6f)

val bordered = SDFRectTexture.of(0xFF1A1A1A.toInt())
    .setRadius(4f)
    .setStroke(1f)
    .setBorderColor(0xFFFFFFFF.toInt())
let panel = new SDFRectTexture()
    .setColor(0xFF2A2A2A)
    .setRadius(6);

let bordered = SDFRectTexture.of(0xFF1A1A1A)
    .setRadius(4)
    .setStroke(1)
    .setBorderColor(0xFFFFFFFF);

LSS

/* rect(fillColor) */
background: rect(#2A2A2A);

/* rect(fillColor, radius) */
background: rect(#2A2A2A, 6);

/* rect(fillColor, radius, strokeWidth, borderColor) */
background: rect(#2A2A2A, 4, 1, #FFFFFF);

/* Per-corner radii: top-left top-right bottom-right bottom-left */
background: rect(#2A2A2A, 8 4 8 4);

字段

名称 类型 描述
color int 填充颜色(ARGB)。默认值: 0xFFFFFFFF
borderColor int 描边颜色(ARGB)。默认值: 0xFF000000
radius Vector4f 逐角半径: x = 左下, y = 右下, z = 右上, w = 左上。
stroke float 边框描边宽度(像素)。0 表示禁用边框。

方法

方法 返回类型 描述
setColor(int) SDFRectTexture 设置填充颜色。
setBorderColor(int) SDFRectTexture 设置描边颜色。
setRadius(float) SDFRectTexture 将四个角半径设置为相同值。
setRadius(Vector4f) SDFRectTexture 设置逐角半径。
setStroke(float) SDFRectTexture 设置描边宽度。
copy() SDFRectTexture 返回深拷贝。
interpolate(IGuiTexture, float) IGuiTexture 将所有属性向另一个 SDFRectTexture 混合插值。
SDFRectTexture.of(int) SDFRectTexture 静态工厂方法 — 使用指定填充颜色创建矩形。