Repository: pixijs/pixijs
File: src/culling/CullerPlugin.ts (TypeScript)

Code before:
     * ```ts
     * // Basic culling options
     * const app = new Application();
     * await app.init({
     *     culler: {...}
     * });
     * ```
     */
    culler?: {
        /**
         * Skip updating the transform of culled objects.
         *
         * > [!IMPORTANT] Keeping this as `true` can improve performance by avoiding unnecessary calculations,
         * > however, the transform used for culling may not be up-to-date if the object has moved since the last render.
         * @default true
         * @example
         * ```ts
         * const app = new Application();
         * await app.init({
         *     culler: {
         *         skipUpdateTransform: true // Skip updating transforms for culled objects
         *     }
         * });
         * ```
         */
        skipUpdateTransform?: boolean;
    };
}

/**
 * An {@link Application} plugin that automatically culls (hides) display objects that are outside
 * the visible screen area. This improves performance by not rendering objects that aren't visible.
 *
 * Key Features:
 * - Automatic culling based on screen boundaries
 * - Configurable culling areas and behavior per container
 * - Can improve rendering performance
 * @example
 * ```ts
 * import { Application, CullerPlugin, Container, Rectangle } from 'pixi.js';
 *
 * // Register the plugin
 * extensions.add(CullerPlugin);
 *
 * // Create application
 * const app = new Application();
 * await app.init({...});
 *
 * // Create a container with culling enabled
 * const container = new Container();
 * container.cullable = true;         // Enable culling for this container

Review comment (suggestion):
nit. What about `updateTransform` named option instead which defaults to `false`, and you have to set it to `true` to opt-in. I don't love the design of opt-out option for enabling a different behavior.

Code after:
     * ```ts
     * // Basic culling options
     * const app = new Application();
     * await app.init({
     *     culler: {...}
     * });
     * ```
     */
    culler?: {
        /**
         * Update the transform of culled objects.
         *
         * > [!IMPORTANT] Keeping this as `false` can improve performance by avoiding unnecessary calculations,
         * > however, the transform used for culling may not be up-to-date if the object has moved since the last render.
         * @default true
         * @example
         * ```ts
         * const app = new Application();
         * await app.init({
         *     culler: {
         *         updateTransform: false // Skip updating transforms for culled objects
         *     }
         * });
         * ```
         */
        updateTransform?: boolean;
    };
}

/**
 * An {@link Application} plugin that automatically culls (hides) display objects that are outside
 * the visible screen area. This improves performance by not rendering objects that aren't visible.
 *
 * Key Features:
 * - Automatic culling based on screen boundaries
 * - Configurable culling areas and behavior per container
 * - Can improve rendering performance
 * @example
 * ```ts
 * import { Application, CullerPlugin, Container, Rectangle } from 'pixi.js';
 *
 * // Register the plugin
 * extensions.add(CullerPlugin);
 *
 * // Create application
 * const app = new Application();
 * await app.init({...});
 *
 * // Create a container with culling enabled
 * const container = new Container();
 * container.cullable = true;         // Enable culling for this container