Name CHROMIUM_flipy Name Strings GL_CHROMIUM_flipy Version Last Modifed Date: April 9, 2012 Dependencies OpenGL ES 2.0 is required. Overview This extension adds the ability to vertically flip texture image data when calling TexImage2D and TexSubImage2D. Issues New Tokens Accepted by the <param> parameter of PixelStorei: UNPACK_FLIP_Y_CHROMIUM 0x9240 Additions to the OpenGL ES 2.0 Specification Modifications to Table 3.1 (PixelStore Parameters) Add the following entry: Parameter Name Type Initial Value Valid Range ============== ==== ============= =========== UNPACK_FLIP_Y_CHROMIUM boolean FALSE {TRUE, FALSE} Modifications to 3.6.2 Transfer of Pixel Rectangles, in the Unpacking section: Change "If p indicates the location in memory of the first element of the first row, then the first element of the Nth row is indicated by p + Nk (3.9)" to "If p indicates the location in memory of the first element of the first row, then the first element of the Nth row is indicated by p + Nk (3.9) if UNPACK_FLIP_Y is FALSE. Otherwise, the first element of the Nth row is indicated by p - Nk (3.10) After the sentence "If the number of bits per element is not 1, 2, 4, or 8 times the number of bits in a GL ubyte, then k = nl for all values of a." insert: "If UNPACK_FLIP_Y_CHROMIUM is FALSE then p is equal to pixels. Otherwise p is pixels + (height - 1)k." Interactions with GL_EXT_unpack_subimage Do not add the sentence "If UNPACK_FLIP_Y_CHROMIUM is FALSE ..." described in this extension. Instead do the following after applying GL_EXT_unpack_subimage: Change "There is a mechanism for selecting a sub-rectangle of groups from a larger containing rectangle. This mechanism relies on three integer parameters: UNPACK_ROW_LENGTH, UNPACK_SKIP_ROWS, and UNPACK_SKIP_PIXELS. Before obtaining the first group from memory, the pointer supplied to TexImage2D is effectively advanced by (UNPACK_SKIP_PIXELS)n + (UNPACK_SKIP_ROWS)k elements. Then <width> groups are obtained from contiguous elements in memory (without advancing the pointer), after which the pointer is advanced by k elements. <height> sets of <width> groups of values are obtained this way. See figure 3.6." to "There is a mechanism for selecting a sub-rectangle of groups from a larger containing rectangle. This mechanism relies on three integer parameters: UNPACK_ROW_LENGTH, UNPACK_SKIP_ROWS, and UNPACK_SKIP_PIXELS. IF UNPACK_FLIP_Y_CHROMIUM is FALSE then p, the location of the first element of the first group, is pixels + (UNPACK_SKIP_PIXELS)n + (UNPACK_SKIP_ROWS)k. When UNPACK_FLIP_Y_CHROMIUM is TRUE then p is pixels + (UNPACK_SKIP_PIXELS)n + (UNPACK_SKIP_ROWS + height - 1)k. After p is determined <width> groups are obtained from contiguous elements in memory (without advancing the pointer), after which the pointer is advanced by +/-k elements depending on the value of UNPACK_CHROMIUM_FLIP_Y. <height> sets of <width> groups of values are obtained this way. See figure 3.6." New Procedures and Functions None. Errors None. New State None. Revision History 7/22/2011 Documented the extension 4/09/2012 Added more documentation and described interactions with GL_EXT_unpack_subimage