/*
 * Java
 *
 * Copyright 2023-2024 MicroEJ Corp. All rights reserved.
 * This library is provided in source code for use, modification and test, subject to license terms.
 * Any modification of the source code will break MicroEJ Corp. warranties on the whole library.
 * This document has been released and published by E-S-R consortium, a non-profit entity.
 * To learn more about E-S-R consortium, please visit http://www.e-s-r.net/.
 * The matter contained in this document is not subject to copyright; you are free to use it for any purpose, for more information see E-S-R consortium policies.
 */
package ej.microui.display;

/**
 * Contains all the available buffer formats.
 */
public enum Format {

    /**
     * Same format as the display.
     * <p>
     * It can be an alias for one of the other formats if the display uses a standard format. Otherwise, it represents
     * the display custom format.
     * <p>
     * Useful to create a buffered image with the same format as the display for instance.
     */
    DISPLAY,
    /**
     * ARGB8888 format.
     */
    ARGB8888,
    /**
     * ARGB4444 format.
     */
    ARGB4444,
    /**
     * ARGB1555 format.
     */
    ARGB1555,
    /**
     * ARGB8888 pre-multiplied format (each color component is multiplied by the opacity).
     */
    ARGB8888_PRE,
    /**
     * ARGB4444 pre-multiplied format (each color component is multiplied by the opacity).
     */
    ARGB4444_PRE,
    /**
     * ARGB1555 pre-multiplied format (each color component is multiplied by the opacity).
     */
    ARGB1555_PRE,
    /**
     * RGB888 format.
     */
    RGB888,
    /**
     * RGB565 format.
     */
    RGB565,
    /**
     * A8 format.
     */
    A8,
    /**
     * A4 format.
     */
    A4,
    /**
     * A2 format.
     */
    A2,
    /**
     * A1 format.
     */
    A1,
    /**
     * C4 format.
     */
    C4,
    /**
     * C2 format.
     */
    C2,
    /**
     * C1 format.
     */
    C1,
    /**
     * AC44 format.
     */
    AC44,
    /**
     * AC22 format.
     */
    AC22,
    /**
     * AC11 format.
     */
    AC11,
    /**
     * Custom format 0.
     */
    CUSTOM_0,
    /**
     * Custom format 1.
     */
    CUSTOM_1,
    /**
     * Custom format 2.
     */
    CUSTOM_2,
    /**
     * Custom format 3.
     */
    CUSTOM_3,
    /**
     * Custom format 4.
     */
    CUSTOM_4,
    /**
     * Custom format 5.
     */
    CUSTOM_5,
    /**
     * Custom format 6.
     */
    CUSTOM_6,
    /**
     * Custom format 7.
     */
    CUSTOM_7
}
