Partager via


glAccum, fonction

La fonction glAccum fonctionne sur la mémoire tampon d’accumulation.

Syntaxe

void WINAPI glAccum(
   GLenum  op,
   GLfloat value
);

Paramètres

Op

Opération de mémoire tampon d’accumulation. Les constantes symboliques acceptées sont les suivantes.

Valeur Signification
GL_ACCUM
Obtient les valeurs R, G, B et A de la mémoire tampon actuellement sélectionnée pour la lecture (voir glReadBuffer). Chaque valeur de composant est divisée par 2n 1, où n est le nombre de bits alloués à chaque composant de couleur dans la mémoire tampon actuellement sélectionnée. Le résultat est une valeur à virgule flottante dans la plage [0,1], qui est multipliée par valeur et ajoutée au composant de pixels correspondant dans la mémoire tampon d’accumulation, mettant ainsi à jour la mémoire tampon d’accumulation.
GL_LOAD
Semblable à GL_ACCUM, sauf que la valeur actuelle dans la mémoire tampon d’accumulation n’est pas utilisée dans le calcul de la nouvelle valeur. Autrement dit, les valeurs R, G, B et A de la mémoire tampon actuellement sélectionnée sont divisées par 2n 1, multipliées par valeur, puis stockées dans la cellule de mémoire tampon d’accumulation correspondante, en remplaçant la valeur actuelle.
GL_ADD
Ajoute de la valeur à chaque R, G, B et A dans la mémoire tampon d’accumulation.
GL_MULT
Multiplie chaque R, G, B et A dans la mémoire tampon d’accumulation par valeur et retourne le composant mis à l’échelle à son emplacement de mémoire tampon d’accumulation correspondant.
GL_RETURN
Transfère les valeurs de mémoire tampon d’accumulation à la mémoire tampon de couleur ou aux mémoires tampons actuellement sélectionnées pour l’écriture. Chaque composant R, G, B et A est multiplié par valeur, puis multiplié par 2n 1, limité à la plage [0, 2n 1], et stocké dans la cellule de mémoire tampon d’affichage correspondante. Les seules opérations de fragment appliquées à ce transfert sont la propriété des pixels, des ciseaux, des trames et des masques d’écriture en couleur.

value

Valeur à virgule flottante utilisée dans l’opération de mémoire tampon d’accumulation. Le paramètre op détermine la façon dont la valeur est utilisée.

Valeur renvoyée

Cette fonction ne retourne pas de valeur.

Codes d’erreur

Les codes d’erreur suivants peuvent être récupérés par la fonction glGetError .

Name Signification
GL_INVALID_ENUM
op n’était pas une valeur acceptée.
GL_INVALID_OPERATION
Il n’y avait pas de mémoire tampon d’accumulation ou la fonction glAccum a été appelée entre un appel à glBegin et l’appel correspondant à glEnd.

Notes

La mémoire tampon d’accumulation est une mémoire tampon de couleur à plage étendue. Les images ne sont pas restituées. Au lieu de cela, les images rendues dans l’une des mémoires tampons de couleur sont ajoutées au contenu de la mémoire tampon d’accumulation après le rendu. Vous pouvez créer des effets tels que l’anticrénelage (de points, de lignes et de polygones), le flou de mouvement et la profondeur de champ en accumulant des images générées avec différentes matrices de transformation.

Chaque pixel de la mémoire tampon d’accumulation se compose de valeurs rouges, vertes, bleues et alpha. Le nombre de bits par composant dans la mémoire tampon d’accumulation dépend de l’implémentation. Vous pouvez examiner ce numéro en appelant glGetIntegerv quatre fois, avec les arguments GL_ACCUM_RED_BITS, GL_ACCUM_GREEN_BITS, GL_ACCUM_BLUE_BITS et GL_ACCUM_ALPHA_BITS, respectivement. Toutefois, quel que soit le nombre de bits par composant, la plage de valeurs stockées par chaque composant est [ 1,?1]. Les pixels de mémoire tampon d’accumulation sont mappés un-à-un avec des pixels framebuffer.

La fonction glAccum fonctionne sur la mémoire tampon d’accumulation. Le premier argument, op, est une constante symbolique qui sélectionne une opération de mémoire tampon d’accumulation. Le deuxième argument, value, est une valeur à virgule flottante à utiliser dans cette opération. Cinq opérations sont spécifiées : GL_ACCUM, GL_LOAD, GL_ADD, GL_MULT et GL_RETURN.

Toutes les opérations de mémoire tampon d’accumulation sont limitées à la zone de la boîte de ciseaux actuelle et sont appliquées de manière identique aux composants rouge, vert, bleu et alpha de chaque pixel. Le contenu d’un composant de pixel de mémoire tampon d’accumulation n’est pas défini si l’opération glAccum génère une valeur en dehors de la plage [ 1,1].

Pour effacer la mémoire tampon d’accumulation, utilisez la fonction glClearAccum pour spécifier les valeurs R, G, B et A à définir, et émettez une fonction glClear avec la mémoire tampon d’accumulation activée.

Seuls les pixels de la zone de ciseaux en cours sont mis à jour par une opération glAccum .

Les fonctions suivantes récupèrent des informations relatives à la fonction glAccum :

glGet avec GL_ACCUM_RED_BITS d’arguments

glGet avec argument GL_ACCUM_GREEN_BITS

glGet avec argument GL_ACCUM_BLUE_BITS

glGet avec argument GL_ACCUM_ALPHA_BITS

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge
Windows 2000 Server [applications de bureau uniquement]
En-tête
Gl.h
Bibliothèque
Opengl32.lib
DLL
Opengl32.dll

Voir aussi

glBegin

glBlendFunc

glClear

glClearAccum

glCopyPixels

glEnd

glGet

glLogicOp

glPixelStore

glPixelTransfer

glReadBuffer

glReadPixels

glScissor

glStencilOp