Share via


Función glPixelStorei

Establece los modos de almacenamiento de píxeles.

Sintaxis

void WINAPI glPixelStorei(
   GLenum pname,
   GLint  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 tanto, solo son significativos para los comandos glReadPixels . 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 primero rojo, 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 ecuación que muestra la ubicación del primer píxel de la siguiente fila en GL_PACK_ROW_LENGTH. [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 ecuación que muestra la ubicación de la siguiente fila en GL_PACK_ROW_LENGTH.
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_ROWS
Estos 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 i n componentes o índices, 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 los 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 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 primero rojo, 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 ecuación que muestra la ubicación del primer píxel de la siguiente fila en GL_UNPACK_ROW_LENGTH. [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 ecuación que muestra la ubicación de la siguiente fila en GL_UNPACK_ROW_LENGTH.
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_ROWS
Estos 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 i n componentes o índices, 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 los 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 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 los siguientes glDrawPixels y glReadPixels, 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
Gl.h
Biblioteca
Opengl32.lib
Archivo DLL
Opengl32.dll

Consulte también

glBegin

glBitmap

glDrawPixels

glEnd

glPixelMap

glPixelTransfer

glPixelZoom

glPolygonStipple

glReadPixels

glTexImage1D

glTexImage2D