Função glPixelStoref

Define modos de armazenamento de pixels.

Sintaxe

void WINAPI glPixelStoref(
   GLenum  pname,
   GLfloat param
);

Parâmetros

Pname

O nome simbólico do parâmetro a ser definido. Seis dos parâmetros de armazenamento afetam como os dados de pixel são retornados à memória do cliente e, portanto, são significativos apenas para comandos glReadPixels . Elas são as seguintes:

Parâmetro de armazenamento Descrição
GL_PACK_SWAP_BYTES Se for true, a ordenação de bytes para componentes de cores multibyte, componentes de profundidade, índices de cores ou índices de estêncil será invertida. Ou seja, se um componente de quatro bytes for composto por bytes b0 , b1 , b2 , b3 , ele será armazenado na memória como b3 , b2 , b1 , b0 se GL_PACK_SWAP_BYTES for verdadeiro. GL_PACK_SWAP_BYTES não tem efeito na ordem de memória dos componentes em um pixel, somente na ordem dos bytes dentro de componentes ou índices. Por exemplo, os três componentes de um pixel de formato GL_RGB são sempre armazenados com vermelho primeiro, segundo verde e terceiro azul, independentemente do valor de GL_PACK_SWAP_BYTES.
GL_PACK_LSB_FIRST Se for true, os bits serão ordenados dentro de um byte de menos significativos para mais significativos; caso contrário, o primeiro bit em cada byte é o mais significativo. Esse parâmetro é significativo apenas para dados de bitmap.
GL_PACK_ROW_LENGTH Se for maior que zero, GL_PACK_ROW_LENGTH definirá o número de pixels em uma linha. Se o primeiro pixel de uma linha for colocado no local p na memória, o local do primeiro pixel da próxima linha será obtido ignorando equação mostrando o local do primeiro pixel da próxima linha em GL_PACK_ROW_LENGTH. [newline] components or indexes, where n is the number of components or indexes in a pixel, l is the number of pixels in a row (gl-pack-row-length if it is greater than zero, the width argument to the pixel routine otherwise), a is the value of gl-pack-alignment, and s is the size, in bytes, of a single component (if a<s, então é como se um = s). no caso de valores de 1 bit, o local da próxima linha é obtido ignorando equação mostrando o local da próxima linha em GL_PACK_ROW_LENGTH.
componentes ou índices. O componente de palavra nesta descrição refere-se aos valores nonindex vermelhos, verdes, azuis, alfa e profundidade. O formato de armazenamento GL_RGB, por exemplo, tem três componentes por pixel: primeiro vermelho, depois verde e finalmente azul.
GL_PACK_SKIP_PIXELS e
GL_PACK_SKIP_ROWS
Esses valores são fornecidos como uma conveniência para o programador; eles não fornecem nenhuma funcionalidade que não pode ser duplicada simplesmente incrementando o ponteiro passado para glReadPixels. Definir GL_PACK_SKIP_PIXELS como i é equivalente a incrementar o ponteiro por i n componentes ou índices, em que n é o número de componentes ou índices em cada pixel. Definir GL_PACK_SKIP_ROWS como j é equivalente a incrementar o ponteiro por componentes ou índices j k , em que k é o número de componentes ou índices por linha, conforme calculado acima na seção GL_PACK_ROW_LENGTH.
GL_PACK_ALIGNMENT Especifica os requisitos de alinhamento para o início de cada linha de pixel na memória. Os valores permitidos são 1 (alinhamento de bytes), 2 (linhas alinhadas a bytes com numeração uniforme), 4 (alinhamento de palavras) e 8 (as linhas começam em limites de palavras duplas).

Os outros seis parâmetros de armazenamento afetam a forma como os dados de pixel são lidos da memória do cliente. Esses valores são significativos para glDrawPixels, glTexImage1D, glTexImage2D, glBitmap e glPolygonStipple. Elas são as seguintes:

Parâmetro de armazenamento Descrição
GL_UNPACK_SWAP_BYTES Se for true, a ordenação de bytes para componentes de cores multibyte, componentes de profundidade, índices de cores ou índices de estêncil será invertida. Ou seja, se um componente de quatro bytes for composto por bytes b0 , b1 , b2 , b3 , ele será armazenado na memória como b3 , b2 , b1 , b0 se GL_UNPACK_SWAP_BYTES for true. GL_UNPACK_SWAP_BYTES não tem efeito na ordem de memória dos componentes em um pixel, somente na ordem dos bytes dentro de componentes ou índices. Por exemplo, os três componentes de um pixel de formato GL_RGB são sempre armazenados com vermelho primeiro, segundo verde e terceiro azul, independentemente do valor de GL_UNPACK_SWAP_BYTES.
GL_UNPACK_LSB_FIRST Se for true, os bits serão ordenados dentro de um byte de menos significativos para mais significativos; caso contrário, o primeiro bit em cada byte é o mais significativo. Isso é significativo apenas para dados de bitmap.
GL_UNPACK_ROW_LENGTH Se for maior que zero, GL_UNPACK_ROW_LENGTH definirá o número de pixels em uma linha. Se o primeiro pixel de uma linha for colocado no local p na memória, o local do primeiro pixel da próxima linha será obtido ignorando equação mostrando o local do primeiro pixel da próxima linha em GL_UNPACK_ROW_LENGTH. [newline] components or indexes, where n is the number of components or indexes in a pixel, l is the number of pixels in a row (gl-pack-row-length if it is greater than zero, the width argument to the pixel routine otherwise), a is the value of gl-pack-alignment, and s is the size, in bytes, of a single component (if a<s, então é como se um = s). no caso de valores de 1 bit, o local da próxima linha é obtido ignorando equação mostrando o local da próxima linha em GL_UNPACK_ROW_LENGTH.
componentes ou índices. O componente de palavra nesta descrição refere-se aos valores nonindex vermelhos, verdes, azuis, alfa e profundidade. O formato de armazenamento GL_RGB, por exemplo, tem três componentes por pixel: primeiro vermelho, depois verde e finalmente azul.
GL_UNPACK_SKIP_PIXELS e
GL_UNPACK_SKIP_ROWS
Esses valores são fornecidos como uma conveniência para o programador; eles não fornecem nenhuma funcionalidade que não possa ser duplicada simplesmente incrementando o ponteiro passado para glDrawPixels, glTexImage1D, glTexImage2D, glBitmap ou glPolygonStipple. Definir GL_UNPACK_SKIP_PIXELS como i é equivalente a incrementar o ponteiro por i n componentes ou índices, em que n é o número de componentes ou índices em cada pixel. Definir GL_UNPACK_SKIP_ROWS como j é equivalente a incrementar o ponteiro por componentes ou índices j k , em que k é o número de componentes ou índices por linha, conforme calculado acima na seção GL_UNPACK_ROW_LENGTH.
GL_UNPACK_ALIGNMENT Especifica os requisitos de alinhamento para o início de cada linha de pixel na memória. Os valores permitidos são 1 (alinhamento de bytes), 2 (linhas alinhadas a bytes com numeração uniforme), 4 (alinhamento de palavras) e 8 (as linhas começam em limites de palavras duplas).

param

O valor para o qual o pname está definido.

Retornar valor

Essa função não retorna um valor.

Comentários

A função glPixelStore define modos de armazenamento de pixel que afetam a operação de glDrawPixels e glReadPixels subsequentes , bem como o desempacotar padrões de dica de polígono (consulte glPolygonStipple), bitmaps (consulte glBitmap) e padrões de textura (consulte glTexImage1D, glTexImage2D, glTexSubImage1D e glTexSubImage2D).

A tabela a seguir fornece o tipo, o valor inicial e o intervalo de valores válidos para cada um dos parâmetros de armazenamento que podem ser definidos com glPixelStore.

Pname Type Valor inicial Intervalo Válido
GL_PACK_SWAP_BYTES Boolean false true ou false
GL_PACK_SWAP_BYTES Boolean false true ou false
GL_PACK_ROW_LENGTH inteiro 0 [0,?)
GL_PACK_SKIP_ROWS inteiro 0 [0,?)
GL_PACK_SKIP_PIXELS inteiro 0 [0,?)
GL_PACK_ALIGNMENT Número inteiro 4 1, 2, 4 ou 8
GL_UNPACK_SWAP_BYTES Boolean false true ou false
GL_UNPACK_LSB_FIRST Boolean false true ou false
GL_UNPACK_ROW_LENGTH inteiro 0 [0,?)
GL_UNPACK_SKIP_ROWS inteiro 0 [0,?)
GL_UNPACK_SKIP_PIXELS inteiro 0 [0,?)
GL_UNPACK_ALIGNMENT Número inteiro 4 1, 2, 4 ou 8

A função glPixelStoref pode ser usada para definir qualquer parâmetro de repositório de pixels. Se o tipo de parâmetro for booliano e se param for 0.0, o parâmetro será false; caso contrário, ele será definido como true. Se pname for um parâmetro de tipo inteiro, o parâmetro param será arredondado para o inteiro mais próximo.

Da mesma forma, a função glPixelStorei também pode ser usada para definir qualquer um dos parâmetros do repositório de pixels. Os parâmetros boolianos serão definidos como false se param for 0 e true caso contrário. O parâmetro param é convertido em ponto flutuante antes de ser atribuído a parâmetros com valor real.

Os modos de armazenamento de pixels em vigor quando glDrawPixels, glReadPixels, glTexImage1D, glTexImage2D, glBitmap ou glPolygonStipple são colocados em uma lista de exibição que controla a interpretação dos dados de memória. Os modos de armazenamento de pixels em vigor quando uma lista de exibição é executada não são significativos.

As seguintes funções recuperam informações relacionadas ao glPixelStore:

glGet com GL_PACK_SWAP_BYTES de argumento

glGet com GL_PACK_LSB_FIRST de argumento

glGet com GL_PACK_ROW_LENGTH de argumento

glGet com GL_PACK_SKIP_ROWS de argumento

glGet com GL_PACK_SKIP_PIXELS de argumento

glGet com GL_PACK_ALIGNMENT de argumento

glGet com GL_UNPACK_SWAP_BYTES de argumento

glGet com GL_UNPACK_LSB_FIRST de argumento

glGet com GL_UNPACK_ROW_LENGTH de argumento

glGet com GL_UNPACK_SKIP_ROWS de argumento

glGet com GL_UNPACK_SKIP_PIXELS de argumento

glGet com GL_UNPACK_ALIGNMENT de argumento

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Gl.h
Biblioteca
Opengl32.lib
DLL
Opengl32.dll

Confira também

glBegin

glBitmap

glDrawPixels

glEnd

glPixelMap

glPixelTransfer

glPixelZoom

glPolygonStipple

glReadPixels

glTexImage1D

glTexImage2D