API reference
Every public class, method, and event in @codexo/exojs. Generated from source.
classRepeatingSprite
A sprite that fills its destination by repeating, mirroring, or stretching a source texture or atlas region. Supports independent per-axis modes (`modeX`, `modeY`) and fit strategies (`fitX`, `fitY`). ## Internal rendering strategy (selected automatically) | Source type | Internal path | |-------------------|-------------------------------------------------------| | Bare `Texture` | **Shader path** — one quad, GPU sampler repeat wrap. | | `TextureRegion` | **Geometry path** — Cartesian-product quads, clamped. | The public class identity and API do not change based on which path the renderer uses.
import { RepeatingSprite } from '@codexo/exojs' A sprite that fills its destination by repeating, mirroring, or stretching a source texture or atlas region.
Supports independent per-axis modes (`modeX`, `modeY`) and fit strategies (`fitX`, `fitY`).
| Source type | Internal path | |-------------------|-------------------------------------------------------| | Bare `Texture` | **Shader path** — one quad, GPU sampler repeat wrap. | | `TextureRegion` | **Geometry path** — Cartesian-product quads, clamped. |
The public class identity and API do not change based on which path the renderer uses.
new(source: Texture | TextureRegion, options?: RepeatingSpriteOptions): RepeatingSprite _invalidateBoundsCascade(): void _invalidateChildrenTransform(): void _invalidateSubtreeTransform(): void addFilter(filter: Filter): this clearFilters(): this collidesWith(target: Collidable): CollisionResponse | null contains(x: number, y: number): boolean destroy(): void getBounds(): Rectangle getGlobalTransform(): Matrix getLocalBounds(): Rectangle getNormals(): Vector[] getTransform(): Matrix intersectsWith(target: Collidable): boolean invalidateCache(): this inView(view: View): boolean move(x: number, y: number): this project(axis: Vector, result: Interval): Interval removeFilter(filter: Filter): this render(backend: RenderBackend): this rotate(degrees: number): this setAnchor(x: number, y: number): this setBlendMode(blendMode: BlendModes): this setOffset(offsetX: number, offsetY: number): this setOrigin(x: number, y: number): this setPosition(x: number, y: number): this setRotation(degrees: number): this setScale(x: number, y: number): this setSize(width: number, height: number): this setSkew(x: number, y: number): this setTint(color: Color): this updateBounds(): this updateParentTransform(): this updateTransform(): this setInternalSpriteFactory(factory: object | null): void clip: boolean clipShape: Rectangle | Geometry | null collisionType: CollisionType cursor: string | null draggable: boolean flags: Flags<SceneNodeTransformFlags> preserveDrawOrder: boolean anchor: ObservableVector blendMode: BlendModes cacheAsBitmap: boolean cullable: boolean filters: readonly Filter[] fitX: RepeatFit fitY: RepeatFit height: number interactive: boolean isAlignedBox: boolean mask: MaskSource modeX: RepeatMode modeY: RepeatMode offsetX: number offsetY: number origin: ObservableVector parent: Container | null pixelSnapMode: PixelSnapMode position: ObservableVector region: TextureRegion rotation: number scale: ObservableVector skewX: number skewY: number source: Texture | TextureRegion texture: Texture tint: Color visible: boolean width: number x: number y: number zIndex: number onDrag: Signal<[InteractionEvent]> onDragEnd: Signal<[InteractionEvent]> onDragStart: Signal<[InteractionEvent]> onPointerDown: Signal<[InteractionEvent]> onPointerMove: Signal<[InteractionEvent]> onPointerOut: Signal<[InteractionEvent]> onPointerOver: Signal<[InteractionEvent]> onPointerTap: Signal<[InteractionEvent]> onPointerUp: Signal<[InteractionEvent]>