alGet

Aus DGL Wiki
Wechseln zu: Navigation, Suche

alGet

Name

alGet - Gibt einen globalen Zustand der OpenAL zurück.


Delphi-Spezifikation

function alGetBoolean(param: TALenum): TALboolean;
function alGetDouble(param: TALenum): TALdouble;
function alGetFloat(param: TALenum): TALfloat;
function alGetInteger(param: TALenum): TALint;
procedure alGetBooleanv(param: TALenum; data: PALboolean);
procedure alGetDoublev(param: TALenum; data: PALdouble);
procedure alGetFloatv(param: TALenum; data: PALfloat);
procedure alGetIntegerv(param: TALenum; data: PALint);


Parameter

param Symbolische Konstante, welche den zurückzugebenden Wert festlegt
data Zeiger auf TALboolean-/ TALdouble-/ TALfloat-/ TALint-Werte, in denen der zurückgegebene Zustand abgespeichert wird (nur bei den Funktionsvarianten, die auf v enden)


Beschreibung

Die Funktion alGet bzw. ihre Varianten alGetBoolean, alGetBooleanv, alGetDouble, alGetDoublev, alGetFloat, alGetFloatv, alGetInteger und alGetIntegerv geben einen bestimmten Zustand/ Eigenschaft der AL zurück. Welcher Wert zurückgegeben wird, hängt dabei vom Parameter param ab.

Folgende Werte sind für param zulässig:

AL_DISTANCE_MODEL

Gibt das aktuelle Distance Model zurück. (Siehe auch alDistanceModel.)

AL_DOPPLER_FACTOR

(Ab OpenAL 1.1) Gibt den Dopplerfaktor zurück, welcher von der AL bei den Berechnungen des Dopplereffekts benutzt wird. (Siehe auch alDopplerFactor.)

AL_DOPPLER_VELOCITY

(Nur für OpenAL 1.0) Gibt die Geschwindigkeit für den Dopplereffekt zurück. (Siehe dazu auch alDopplerVelocity.)

AL_SPEED_OF_SOUND

Gibt die aktuelle Schallgeschwindigkeit (für Dopplerberechnungen u.ä.) zurück, welche man mit alSpeedOfSound setzen kann.



Hinweise

Für den Fall, dass data der nil-Zeiger ist, wird der Aufruf der Funktion von der AL stillschweigend übergangen. (Das heißt im Besonderen auch, dass kein Fehler generiert wird.)

Wird durch einen Aufruf von alGet ein Wert erfragt, dessen Typ nicht mit dem Typ des erfragten Wertes übereinstimmt, so wird eine Typumwandlung durchgeführt.
Falls alGetBoolean oder alGetBooleanv aufgerufen wird, wird ein Ganzzahl- oder Fließkommawert genau dann in AL_FALSE umgewandelt, wenn dieser null ist. Andernfalls wird der Wert in AL_TRUE umgewandelt. Im Fall von alGetInteger bzw. alGetIntegerv wird ein boolescher Wert entweder als 1 (entspricht AL_TRUE) oder 0 (entspricht AL_FALSE) interpretiert. Ein Fließkommawert wird auf den nächstgelegenen Ganzzahlwert gerundet. Beim Aufruf von alGetFloat bzw. alGetFloatv wird ein boolescher Wert entweder als 1.0 oder 0.0 interpretiert, ein Ganzzahlwert wird in den entsprechenden Fließkommawert umgewandelt. Ein Fließkommawert doppelter Genauigkeit wird in den entsprechenden Wert einfacher Genauigkeit umgewandelt. Analoge Umwandlungen finden für alGetDouble und alGetDoublev statt. Falls ein Wert so groß sein sollte, dass er in dem gefragten Datentyp nicht darstellbar ist, wird er in den nächstgelegenen darstellbaren Wert dieses Typs umgewandelt.


Falls bei der Ausführung von alGet ein Fehler auftritt, kann dieser mit alGetError erfragt werden.


Änderungen

Folgende Erweiterungen hat die Funktion erfahren:

Ab OpenAL-Version 1.1

Da mit OpenAL 1.1 das System zur Berechnung des geschwindigkeitsabhängigen Dopplereffektes geändert wurde und die Funktion alDopplerVelocity entfiel, sollte alGet nicht mehr mit dem Parameter AL_DOPPLER_VELOCITY benutzt werden. Stattdessen sollte man auf AL_DOPPLER_FACTOR zurückzugreifen.


Fehlermeldungen

AL_INVALID_ENUM wird generiert, wenn der angegebene Parameter param einen unzulässigen Wert hat.

AL_INVALID_OPERATION wird generiert, falls es keinen aktuellen Kontext gibt. (Siehe dazu auch alcMakeContextCurrent.)

AL_INVALID_VALUE wird generiert, falls der Zeiger data unzulässig ist. (Dies kann nur bei alGetBooleanv, alGetDoublev, alGetFloatv und alGetIntegerv auftreten.)


Siehe auch

alGetString