Función glPixelStoref
Establece los modos de almacenamiento de píxeles.
Sintaxis
void WINAPI glPixelStoref(
GLenum pname,
GLfloat param
);
Parámetros
-
pname
-
Nombre simbólico del parámetro que se va a establecer. Seis de los parámetros de almacenamiento afectan a cómo se devuelven los datos de píxeles a la memoria del cliente y, por lo tanto, solo son significativos para los comandos glReadPixels . Los pasos son los siguientes:
Parámetro de almacenamiento Descripción GL_PACK_SWAP_BYTES Si es true, se invierte la ordenación de bytes para componentes de color multibyte, componentes de profundidad, índices de color o índices de galería de símbolos. Es decir, si un componente de cuatro bytes se compone de bytes b0 , b1 , b2 , b3 , se almacena en memoria como b3 , b2 , b1 , b0 si GL_PACK_SWAP_BYTES es true. GL_PACK_SWAP_BYTES no tiene ningún efecto en el orden de memoria de los componentes dentro de un píxel, solo en el orden de bytes dentro de los componentes o índices. Por ejemplo, los tres componentes de un píxel de formato de GL_RGB siempre se almacenan con el rojo primero, el segundo verde y el tercero azul, independientemente del valor de GL_PACK_SWAP_BYTES. GL_PACK_LSB_FIRST Si es true, los bits se ordenan dentro de un byte de menos significativo a más significativo; de lo contrario, el primer bit de cada byte es el más significativo. Este parámetro es significativo solo para los datos de mapa de bits. GL_PACK_ROW_LENGTH Si es mayor que cero, GL_PACK_ROW_LENGTH define el número de píxeles de una fila. Si el primer píxel de una fila se coloca en la ubicación p en la memoria, la ubicación del primer píxel de la fila siguiente se obtiene omitiendo [nueva línea] componentes o índices, donde n es el número de componentes o índices de un píxel, l es el número de píxeles de una fila (gl-pack-row-length si es mayor que cero, el argumento width para la rutina de píxeles de lo contrario), es el valor de gl-pack-alignment, y s es el tamaño, en bytes, de un único componente (si< es, entonces es como si un = s). en el caso de los valores de 1 bits, la ubicación de la siguiente fila se obtiene omitiendo
componentes o índices. El componente de palabra de esta descripción hace referencia a los valores que no son de índice rojo, verde, azul, alfa y profundidad. El formato de almacenamiento GL_RGB, por ejemplo, tiene tres componentes por píxel: primero rojo, luego verde y, por último, azul.GL_PACK_SKIP_PIXELS y
GL_PACK_SKIP_ROWSEstos valores se proporcionan como una comodidad para el programador; no proporcionan ninguna funcionalidad que no se pueda duplicar simplemente incrementando el puntero pasado a glReadPixels. Establecer GL_PACK_SKIP_PIXELS en i equivale a incrementar el puntero por componentes o índices i n , donde n es el número de componentes o índices de cada píxel. Establecer GL_PACK_SKIP_ROWS en j equivale a incrementar el puntero por componentes o índices j k , donde k es el número de componentes o índices por fila, como se calculó anteriormente en la sección de GL_PACK_ROW_LENGTH. GL_PACK_ALIGNMENT Especifica los requisitos de alineación para el inicio de cada fila de píxeles en memoria. Los valores permitidos son 1 (alineación de bytes), 2 (filas alineadas con bytes pares), 4 (alineación de palabras) y 8 (las filas comienzan en límites de doble palabra). Los otros seis parámetros de almacenamiento afectan a cómo se leen los datos de píxeles de la memoria del cliente. Estos valores son significativos para glDrawPixels, glTexImage1D, glTexImage2D, glBitmap y glPolygonStipple. Los pasos son los siguientes:
Parámetro de almacenamiento Descripción GL_UNPACK_SWAP_BYTES Si es true, se invierte la ordenación de bytes para componentes de color multibyte, componentes de profundidad, índices de color o índices de galería de símbolos. Es decir, si un componente de cuatro bytes se compone de bytes b0 , b1 , b2 , b3 , se almacena en memoria como b3 , b2 , b1 , b0 si GL_UNPACK_SWAP_BYTES es true. GL_UNPACK_SWAP_BYTES no tiene ningún efecto en el orden de memoria de los componentes dentro de un píxel, solo en el orden de bytes dentro de los componentes o índices. Por ejemplo, los tres componentes de un píxel de formato de GL_RGB siempre se almacenan con el rojo primero, el segundo verde y el tercero azul, independientemente del valor de GL_UNPACK_SWAP_BYTES. GL_UNPACK_LSB_FIRST Si es true, los bits se ordenan dentro de un byte de menos significativo a más significativo; de lo contrario, el primer bit de cada byte es el más significativo. Esto es significativo solo para los datos de mapa de bits. GL_UNPACK_ROW_LENGTH Si es mayor que cero, GL_UNPACK_ROW_LENGTH define el número de píxeles de una fila. Si el primer píxel de una fila se coloca en la ubicación p en la memoria, la ubicación del primer píxel de la fila siguiente se obtiene omitiendo [nueva línea] componentes o índices, donde n es el número de componentes o índices de un píxel, l es el número de píxeles de una fila (gl-pack-row-length si es mayor que cero, el argumento width para la rutina de píxeles de lo contrario), es el valor de gl-pack-alignment, y s es el tamaño, en bytes, de un único componente (si< es, entonces es como si un = s). en el caso de valores de 1 bits, la ubicación de la siguiente fila se obtiene omitiendo
componentes o índices. El componente de palabra de esta descripción hace referencia a los valores que no son de índice rojo, verde, azul, alfa y profundidad. El formato de almacenamiento GL_RGB, por ejemplo, tiene tres componentes por píxel: primero rojo, luego verde y, por último, azul.GL_UNPACK_SKIP_PIXELS y
GL_UNPACK_SKIP_ROWSEstos valores se proporcionan como una comodidad para el programador; no proporcionan ninguna funcionalidad que no se pueda duplicar simplemente incrementando el puntero pasado a glDrawPixels, glTexImage1D, glTexImage2D, glBitmap o glPolygonStipple. Establecer GL_UNPACK_SKIP_PIXELS en i equivale a incrementar el puntero por componentes o índices i n , donde n es el número de componentes o índices de cada píxel. Establecer GL_UNPACK_SKIP_ROWS en j equivale a incrementar el puntero por componentes o índices j k , donde k es el número de componentes o índices por fila, como se calcula anteriormente en la sección de GL_UNPACK_ROW_LENGTH. GL_UNPACK_ALIGNMENT Especifica los requisitos de alineación para el inicio de cada fila de píxeles en memoria. Los valores permitidos son 1 (alineación de bytes), 2 (filas alineadas con bytes pares), 4 (alineación de palabras) y 8 (las filas comienzan en límites de doble palabra). -
param
-
Valor en el que se establece pname .
Valor devuelto
Esta función no devuelve ningún valor.
Observaciones
La función glPixelStore establece modos de almacenamiento de píxeles que afectan al funcionamiento de glDrawPixels y glReadPixels posteriores, así como al desempaquetado de patrones de stipple de polígono (vea glPolygonStipple), mapas de bits (vea glBitmap) y patrones de textura (consulte glTexImage1D, glTexImage2D, glTexSubImage1D y glTexSubImage2D).
En la tabla siguiente se proporciona el tipo, el valor inicial y el intervalo de valores válidos para cada uno de los parámetros de almacenamiento que se pueden establecer con glPixelStore.
Pname | Tipo | Valor inicial | Intervalo válido |
---|---|---|---|
GL_PACK_SWAP_BYTES | Boolean | false | true o false |
GL_PACK_SWAP_BYTES | Boolean | false | true o false |
GL_PACK_ROW_LENGTH | integer | 0 | [0,?) |
GL_PACK_SKIP_ROWS | integer | 0 | [0,?) |
GL_PACK_SKIP_PIXELS | integer | 0 | [0,?) |
GL_PACK_ALIGNMENT | integer | 4 | 1, 2, 4 o 8 |
GL_UNPACK_SWAP_BYTES | Boolean | false | true o false |
GL_UNPACK_LSB_FIRST | Boolean | false | true o false |
GL_UNPACK_ROW_LENGTH | integer | 0 | [0,?) |
GL_UNPACK_SKIP_ROWS | integer | 0 | [0,?) |
GL_UNPACK_SKIP_PIXELS | integer | 0 | [0,?) |
GL_UNPACK_ALIGNMENT | integer | 4 | 1, 2, 4 o 8 |
La función glPixelStoref se puede usar para establecer cualquier parámetro de almacén de píxeles. Si el tipo de parámetro es Boolean y si el parámetro es 0,0, el parámetro es false; de lo contrario, se establece en true. Si pname es un parámetro de tipo entero, el parámetro se redondea al entero más cercano.
Del mismo modo, la función glPixelStorei también se puede usar para establecer cualquiera de los parámetros del almacén de píxeles. Los parámetros booleanos se establecen en false si el parámetro es 0 y true de lo contrario. El parámetro param se convierte en punto flotante antes de asignarse a parámetros con valores reales.
Los modos de almacenamiento de píxeles en vigor cuando glDrawPixels, glReadPixels, glTexImage1D, glTexImage2D, glBitmap o glPolygonStipple se colocan en un control de lista para mostrar la interpretación de los datos de memoria. Los modos de almacenamiento de píxeles en vigor cuando se ejecuta una lista de visualización no son significativos.
Las siguientes funciones recuperan información relacionada con glPixelStore:
glGet con GL_PACK_SWAP_BYTES de argumentos
glGet con GL_PACK_LSB_FIRST de argumentos
glGet con GL_PACK_ROW_LENGTH de argumentos
glGet con GL_PACK_SKIP_ROWS de argumentos
glGet con GL_PACK_SKIP_PIXELS de argumentos
glGet con GL_PACK_ALIGNMENT de argumentos
glGet con GL_UNPACK_SWAP_BYTES de argumentos
glGet con GL_UNPACK_LSB_FIRST de argumentos
glGet con GL_UNPACK_ROW_LENGTH de argumentos
glGet con GL_UNPACK_SKIP_ROWS de argumentos
glGet con GL_UNPACK_SKIP_PIXELS de argumentos
glGet con GL_UNPACK_ALIGNMENT de argumentos
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado |
|
Biblioteca |
|
Archivo DLL |
|