Source: rendering/renderers/shared/geometry/const.ts

import { deprecation, v8_0_0 } from '../../../../utils/logging/deprecation';

/**
 * The different topology types supported by the renderer used to describe how the geometry should be renderer
 * @memberof rendering
 */
export type Topology =
    'point-list'
    | 'line-list'
    | 'line-strip'
    | 'triangle-list'
    | 'triangle-strip';

const DEPRECATED_DRAW_MODES = {
    POINTS: 'point-list',
    LINES: 'line-list',
    LINE_STRIP: 'line-strip',
    TRIANGLES: 'triangle-list',
    TRIANGLE_STRIP: 'triangle-strip',
};

/** @deprecated since 8.0.0 */
export const DRAW_MODES = new Proxy(DEPRECATED_DRAW_MODES, {
    get(target, prop: keyof typeof DEPRECATED_DRAW_MODES)
    {
        // #if _DEBUG
        deprecation(v8_0_0, `DRAW_MODES.${prop} is deprecated, use '${DEPRECATED_DRAW_MODES[prop]}' instead`);
        // #endif

        return target[prop];
    },
});

/**
 * The different types of vertex formats supported by the renderer
 * @memberof rendering
 */
export type VertexFormat =
    | 'uint8x2'
    | 'uint8x4'
    | 'sint8x2'
    | 'sint8x4'
    | 'unorm8x2'
    | 'unorm8x4'
    | 'snorm8x2'
    | 'snorm8x4'
    | 'uint16x2'
    | 'uint16x4'
    | 'sint16x2'
    | 'sint16x4'
    | 'unorm16x2'
    | 'unorm16x4'
    | 'snorm16x2'
    | 'snorm16x4'
    | 'float16x2'
    | 'float16x4'
    | 'float32'
    | 'float32x2'
    | 'float32x3'
    | 'float32x4'
    | 'uint32'
    | 'uint32x2'
    | 'uint32x3'
    | 'uint32x4'
    | 'sint32'
    | 'sint32x2'
    | 'sint32x3'
    | 'sint32x4';