alcCreateContext: Unterschied zwischen den Versionen
Flash (Diskussion | Beiträge) (Artikel begonnen. Bitte korrekturlesen und fertigstellen.) |
(Einige Korrekturen und Ergänzungen; Codebeispiel eingefügt.) |
||
Zeile 5: | Zeile 5: | ||
== Name == | == Name == | ||
− | '''alcCreateContext''' - Erzeugt einen neuen [[ALC | + | '''alcCreateContext''' - Erzeugt einen neuen [[ALC-Kontext]]. |
Zeile 15: | Zeile 15: | ||
== Parameter == | == Parameter == | ||
− | |||
{| border="1" rules="all" | {| border="1" rules="all" | ||
! ''pDevice'' | ! ''pDevice'' | ||
− | | Zeiger auf das Gerät für das ein neuer ALC Context erstellt werden soll. | + | | Zeiger auf das Gerät, für das ein neuer ALC Context erstellt werden soll. |
|- | |- | ||
! ''attrList'' | ! ''attrList'' | ||
Zeile 28: | Zeile 27: | ||
== Beschreibung == | == Beschreibung == | ||
− | '''alcCreateContext''' erstellt für das ALC Gerät ''pDevice'' einen neuen Kontext. | + | Die Funktion '''alcCreateContext''' erstellt für das ALC-Gerät ''pDevice'' einen neuen Kontext und gibt den Zeiger auf den neuen Kontext zurück. Bei Fehlschlag wird ein '''nil'''-Zeiger zurückgegeben. |
− | AL (bzw. ALC) ordnet jedem Kontext ein entsprechendes Gerät zu. Folglich kann ein Kontext erst (mit Hilfe der Funktion | + | AL (bzw. ALC) ordnet jedem Kontext ein entsprechendes Gerät zu. Folglich kann ein Kontext erst (mit Hilfe der Funktion '''alcCreateContext''') erstellt werden, wenn zuvor ein Gerät geöffnet wurde. Siehe dazu [[alcOpenDevice]]. |
Beim Erstellen eines Kontextes können bestimmte Attribute gesetzt werden. Werden diese nicht gesetzt, werden implementationsabhängige Standardwerte benutzt. | Beim Erstellen eines Kontextes können bestimmte Attribute gesetzt werden. Werden diese nicht gesetzt, werden implementationsabhängige Standardwerte benutzt. | ||
Zeile 39: | Zeile 38: | ||
*der Wert eines spezifizierten Attributes bzw. eine Kombination von Attributen nicht mit den Standardwerten für unspezifizierte Attribute übereinstimmt. | *der Wert eines spezifizierten Attributes bzw. eine Kombination von Attributen nicht mit den Standardwerten für unspezifizierte Attribute übereinstimmt. | ||
− | Als Attribute kann | + | Als Attribute kann '''nil''' oder eine 0-terminierte Liste von Integer-Paaren verwendet werden. Jedes Paar besteht dabei aus einer der nachfolgenden Konstanten und dem zugehörigen Wert. |
Folgende Konstanten können genutzt werden: | Folgende Konstanten können genutzt werden: | ||
===ALC_FREQUENCY=== | ===ALC_FREQUENCY=== | ||
− | Erwartet als Wert die Frequenz in | + | : Erwartet als Wert die Frequenz in Hertz für das Zusammenmischen von Ausgabepuffern. |
+ | |||
+ | ===ALC_MONO_SOURCES=== | ||
+ | : Erwartet als Wert einen Hinweis, wie viele Source-Objekte in der Lage sein sollen, Monoaudiodaten zu unterstützen. | ||
===ALC_REFRESH=== | ===ALC_REFRESH=== | ||
− | Erwartet als Wert die Frequenz in | + | : Erwartet als Wert die Frequenz in Hertz für das Refreshintervall. |
+ | |||
+ | ===ALC_STEREO_SOURCES=== | ||
+ | : Erwartet als Wert einen Hinweis, wie viele Source-Objekte in der Lage sein sollen, Stereodaten zu unterstützen. | ||
===ALC_SYNC=== | ===ALC_SYNC=== | ||
− | Erwartet ein Flag welches einen synchronen Kontext symbolisiert. | + | : Erwartet ein Flag, welches einen synchronen Kontext symbolisiert. |
== Hinweise == | == Hinweise == | ||
− | + | Awendungen haben möglicherweise einen festen oder beschränkten Rhythmus für Zustandsänderungen (z.B. synchron mit der OpenGL-Framerate). In diesem Fall ist es wünschenswert den '''''mixahead interval (milliseconds)''''' oder die Refreshrate (Hz) für den Thread anzugeben. Dies ist besonders für synchrone Kontexte wichtig, wo die Anwendung ein Refreshintervall, welches sie einhalten möchte, anzugeben hat. | |
+ | |||
+ | |||
+ | |||
+ | == Beispiel == | ||
+ | Folgender Code öffnet ein Gerät und erzeugt darin einen Kontext, der zum aktuellen Kontext gemacht wird. | ||
+ | <pascal>var device: PALCdevice; | ||
+ | context: PALCcontext; | ||
+ | ... | ||
+ | device:= alcOpenDevice(nil); //öffnet das Standardgerät | ||
+ | if device<>nil then | ||
+ | begin | ||
+ | context:= alcCreateContext(device, nil); //erzeugt einen ALC-Kontext | ||
+ | if context<>nil then | ||
+ | alcMakeContextCurrent(context); //setzt den aktiven Kontext | ||
+ | end;</pascal> | ||
+ | |||
== Fehlermeldungen == | == Fehlermeldungen == | ||
+ | '''ALC_INVALID_DEVICE''' wird generiert, wenn kein gültiges Gerät angegeben wurde. | ||
+ | '''ALC_INVALID_OPERATION''' wird generiert, falls kein weiterer ALC-Kontext für das angegebene Gerät erstellt werden kann. | ||
== Siehe auch == | == Siehe auch == | ||
− | [[alcGetCurrentContext]] | + | [[alcDestroyContext]], [[alcGetCurrentContext]] |
− | [[Kategorie:AL| | + | [[Kategorie:AL|CreateContext]] |
− | [[Kategorie:ALC| | + | [[Kategorie:ALC|CreateContext]] |
Version vom 4. Juni 2008, 20:31 Uhr
(Mehr Informationen/weitere Artikel)
Muss noch fertig übersetzt werden. |
Inhaltsverzeichnis
alcCreateContext
Name
alcCreateContext - Erzeugt einen neuen ALC-Kontext.
Delphi-Spezifikation
function alcCreateContext(pDevice: PALCdevice; attrList: PALCint): PALCcontext;
Parameter
pDevice | Zeiger auf das Gerät, für das ein neuer ALC Context erstellt werden soll. |
---|---|
attrList | Zeiger auf eine Liste mit Attributen. Siehe Beschreibung. |
Beschreibung
Die Funktion alcCreateContext erstellt für das ALC-Gerät pDevice einen neuen Kontext und gibt den Zeiger auf den neuen Kontext zurück. Bei Fehlschlag wird ein nil-Zeiger zurückgegeben.
AL (bzw. ALC) ordnet jedem Kontext ein entsprechendes Gerät zu. Folglich kann ein Kontext erst (mit Hilfe der Funktion alcCreateContext) erstellt werden, wenn zuvor ein Gerät geöffnet wurde. Siehe dazu alcOpenDevice.
Beim Erstellen eines Kontextes können bestimmte Attribute gesetzt werden. Werden diese nicht gesetzt, werden implementationsabhängige Standardwerte benutzt.
Die Kontexterstellung schlägt fehl, wenn
- die Anwendung Attribute anfordert, welche nicht geliefert werden können oder
- eine ungültige Kombination von Attributen angefordert wurde oder
- der Wert eines spezifizierten Attributes bzw. eine Kombination von Attributen nicht mit den Standardwerten für unspezifizierte Attribute übereinstimmt.
Als Attribute kann nil oder eine 0-terminierte Liste von Integer-Paaren verwendet werden. Jedes Paar besteht dabei aus einer der nachfolgenden Konstanten und dem zugehörigen Wert.
Folgende Konstanten können genutzt werden:
ALC_FREQUENCY
- Erwartet als Wert die Frequenz in Hertz für das Zusammenmischen von Ausgabepuffern.
ALC_MONO_SOURCES
- Erwartet als Wert einen Hinweis, wie viele Source-Objekte in der Lage sein sollen, Monoaudiodaten zu unterstützen.
ALC_REFRESH
- Erwartet als Wert die Frequenz in Hertz für das Refreshintervall.
ALC_STEREO_SOURCES
- Erwartet als Wert einen Hinweis, wie viele Source-Objekte in der Lage sein sollen, Stereodaten zu unterstützen.
ALC_SYNC
- Erwartet ein Flag, welches einen synchronen Kontext symbolisiert.
Hinweise
Awendungen haben möglicherweise einen festen oder beschränkten Rhythmus für Zustandsänderungen (z.B. synchron mit der OpenGL-Framerate). In diesem Fall ist es wünschenswert den mixahead interval (milliseconds) oder die Refreshrate (Hz) für den Thread anzugeben. Dies ist besonders für synchrone Kontexte wichtig, wo die Anwendung ein Refreshintervall, welches sie einhalten möchte, anzugeben hat.
Beispiel
Folgender Code öffnet ein Gerät und erzeugt darin einen Kontext, der zum aktuellen Kontext gemacht wird.
var device: PALCdevice; context: PALCcontext; ... device:= alcOpenDevice(nil); //öffnet das Standardgerät if device<>nil then begin context:= alcCreateContext(device, nil); //erzeugt einen ALC-Kontext if context<>nil then alcMakeContextCurrent(context); //setzt den aktiven Kontext end;
Fehlermeldungen
ALC_INVALID_DEVICE wird generiert, wenn kein gültiges Gerät angegeben wurde.
ALC_INVALID_OPERATION wird generiert, falls kein weiterer ALC-Kontext für das angegebene Gerät erstellt werden kann.