Share via


funzione glAccum

La funzione glAccum opera sul buffer di accumulo.

Sintassi

void WINAPI glAccum(
   GLenum  op,
   GLfloat value
);

Parametri

Op

Operazione di buffer di accumulo. Le costanti simboliche accettate sono le seguenti.

Valore Significato
GL_ACCUM
Ottiene i valori R, G, B e A dal buffer attualmente selezionato per la lettura (vedere glReadBuffer). Ogni valore del componente è diviso per 2n 1, dove n è il numero di bit allocati a ogni componente colore nel buffer attualmente selezionato. Il risultato è un valore a virgola mobile nell'intervallo [0,1], moltiplicato per valore e aggiunto al componente pixel corrispondente nel buffer di accumulo, aggiornando così il buffer di accumulo.
GL_LOAD
Analogamente a GL_ACCUM, ad eccezione del fatto che il valore corrente nel buffer di accumulo non viene utilizzato nel calcolo del nuovo valore. Ovvero i valori R, G, B e A del buffer attualmente selezionato sono divisi per 2n 1, moltiplicati per valore e quindi archiviati nella cella del buffer di accumulo corrispondente, sovrascrivendo il valore corrente.
GL_ADD
Aggiunge valore a ogni R, G, B e A nel buffer di accumulo.
GL_MULT
Moltiplica ogni R, G, B e A nel buffer di accumulo per valore e restituisce il componente ridimensionato alla posizione corrispondente del buffer di accumulo.
GL_RETURN
Trasferisce i valori del buffer di accumulo nel buffer dei colori o nei buffer attualmente selezionati per la scrittura. Ogni componente R, G, B e A viene moltiplicato per valore, quindi moltiplicato per 2n 1, bloccato all'intervallo [0, 2n 1 ], e archiviato nella cella del buffer di visualizzazione corrispondente. Le uniche operazioni di frammento applicate a questo trasferimento sono la proprietà dei pixel, la scissor, il dithering e le maschera di scrittura dei colori.

value

Valore a virgola mobile utilizzato nell'operazione di buffer di accumulo. Il parametro op determina la modalità di utilizzo del valore .

Valore restituito

Questa funzione non restituisce un valore.

Codici di errore

I codici di errore seguenti possono essere recuperati dalla funzione glGetError .

Nome Significato
GL_INVALID_ENUM
op non è un valore accettato.
GL_INVALID_OPERATION
Nessun buffer di accumulo o la funzione glAccum è stata chiamata tra una chiamata a glBegin e la chiamata corrispondente a glEnd.

Commenti

Il buffer di accumulo è un buffer di colori di intervallo esteso. Il rendering delle immagini non viene eseguito. Le immagini di cui viene eseguito il rendering in uno dei buffer di colore vengono invece aggiunte al contenuto del buffer di accumulo dopo il rendering. È possibile creare effetti come l'antialiasing (di punti, linee e poligoni), sfocatura del movimento e profondità del campo accumulando immagini generate con matrici di trasformazione diverse.

Ogni pixel nel buffer di accumulo è costituito da valori rosso, verde, blu e alfa. Il numero di bit per componente nel buffer di accumulo dipende dall'implementazione. È possibile esaminare questo numero chiamando glGetIntegerv quattro volte, con gli argomenti GL_ACCUM_RED_BITS, GL_ACCUM_GREEN_BITS, GL_ACCUM_BLUE_BITS e GL_ACCUM_ALPHA_BITS rispettivamente. Indipendentemente dal numero di bit per componente, tuttavia, l'intervallo di valori archiviati da ogni componente è [ 1,?1]. I pixel del buffer di accumulo vengono mappati uno a uno con pixel framebuffer.

La funzione glAccum opera sul buffer di accumulo. Il primo argomento, op, è una costante simbolica che seleziona un'operazione di buffer di accumulo. Il secondo argomento, value, è un valore a virgola mobile da utilizzare in tale operazione. Vengono specificate cinque operazioni: GL_ACCUM, GL_LOAD, GL_ADD, GL_MULT e GL_RETURN.

Tutte le operazioni di buffer di accumulo sono limitate all'area della casella di scissor corrente e vengono applicate in modo identico ai componenti rosso, verde, blu e alfa di ogni pixel. Il contenuto di un componente pixel del buffer di accumulo non è definito se l'operazione glAccum restituisce un valore non compreso nell'intervallo [ 1,1].

Per cancellare il buffer di accumulo, usare la funzione glClearAccum per specificare i valori R, G, B e A su cui impostarlo ed eseguire una funzione glClear con il buffer di accumulo abilitato.

Solo i pixel all'interno della casella di scissor corrente vengono aggiornati da qualsiasi operazione glAccum .

Le funzioni seguenti recuperano informazioni correlate alla funzione glAccum :

glGet con argomento GL_ACCUM_RED_BITS

glGet con argomento GL_ACCUM_GREEN_BITS

glGet con argomento GL_ACCUM_BLUE_BITS

glGet con argomento GL_ACCUM_ALPHA_BITS

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Gl.h
Libreria
Opengl32.lib
DLL
Opengl32.dll

Vedi anche

glBegin

glBlendFunc

glClear

glClearAccum

glCopyPixels

glEnd

glGet

glLogicOp

glPixelStore

glPixelTransfer

glReadBuffer

glReadPixels

glScissor

glStencilOp