Função glPixelStorei
Define modos de armazenamento de pixels.
Sintaxe
void WINAPI glPixelStorei(
GLenum pname,
GLint 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 . Eles são os 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 [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
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_ROWSEsses 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 [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
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_ROWSEsses 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 | Tipo | Valor inicial | Intervalo Válido |
---|---|---|---|
GL_PACK_SWAP_BYTES | Booliano | false | true ou false |
GL_PACK_SWAP_BYTES | Booliano | 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 | Booliano | false | true ou false |
GL_UNPACK_LSB_FIRST | Booliano | 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, 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 de 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 |
|
Biblioteca |
|
DLL |
|