added Bind* Helpers.

This commit is contained in:
chrisbrandtner 2008-01-24 22:53:09 +00:00
parent d24cc61a23
commit 08409b1ca3
3 changed files with 38 additions and 7 deletions

View file

@ -498,7 +498,16 @@ namespace OpenTK.OpenAL
Source(sid,(Enums.ALSourcei) param,( value ) ? 1 : 0);
}
// <summary>This function sets 3 integer properties of a source. This property is used to establish connections between Sources and Auxiliary Effect Slots.</summary>
/// <summary>(Helper) Binds a Buffer to a Source handle.</summary>
/// <param name="source">Source name to attach the Buffer to.</param>
/// <param name="buffer">Buffer name which is attached to the Source.</param>
[CLSCompliant(false)]
public static void BindBufferToSource( uint source,uint buffer )
{
Source(source,Enums.ALSourcei.Buffer,(int)buffer);
}
/// <summary>This function sets 3 integer properties of a source. This property is used to establish connections between Sources and Auxiliary Effect Slots.</summary>
/// <param name="sid">Source name whose attribute is being set.</param>
/// <param name="param">The name of the attribute to set: EfxAuxiliarySendFilter</param>
/// <param name="value1">The value to set the attribute to. (EFX Extension) The destination Auxiliary Effect Slot ID</param>
@ -508,6 +517,18 @@ namespace OpenTK.OpenAL
public static extern void Source( uint sid,Enums.ALSource3i param,int value1,int value2,int value3 );
// AL_API void AL_APIENTRY alSource3i( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
/// <summary>(Helper) Reroutes a Source's output into an Auxiliary Effect Slot.</summary>
/// <param name="source">The Source handle who's output is forwarded.</param>
/// <param name="slot">The Auxiliary Effect Slot handle that receives input from the Source.</param>
/// <param name="slotnumber">Every Source has only a limited number of slots it can feed data to. The number must stay below AlcContextAttributes.EfxMaxAuxiliarySends</param>
/// <param name="filter">Filter handle to be attached between Source ouput and Auxiliary Slot input. Use 0 or EfxFilterType.FilterNull for no filter. </param>
[CLSCompliant(false)]
public static void BindSourceToAuxiliarySlot( uint source,uint slot,int slotnumber, uint filter )
{
AL.Source(source,Enums.ALSource3i.EfxAuxiliarySendFilter,(int) slot,slotnumber,(int) filter);
}
// Not used by any Enum:
// AL_API void AL_APIENTRY alSourcefv( ALuint sid, ALenum param, const ALfloat* values );
// AL_API void AL_APIENTRY alSourceiv( ALuint sid, ALenum param, const ALint* values );

View file

@ -139,8 +139,8 @@ namespace OpenTK.OpenAL
Imported_alEffecti(eid,param,value);
}
/// <summary>(Helper) internally calls alEffecti(eid,Enums.EfxEffecti.EffectType,(int) type)</summary>
/// <param name="eid">Effect id.</param>
/// <summary>(Helper) Selects the Effect type used by this Effect handle.</summary>
/// <param name="eid">Effect id returned from a successful call to Efx.GenEffects.</param>
/// <param name="type">Effect type.</param>
[CLSCompliant(false)]
public void BindEffect( uint eid,Enums.EfxEffectType type )
@ -612,6 +612,15 @@ namespace OpenTK.OpenAL
Imported_alAuxiliaryEffectSloti(asid,param,value);
}
/// <summary>(Helper) Attaches an Effect to an Auxiliary Effect Slot.</summary>
/// <param name="auxiliaryeffectslot">The slot handle to attach the Effect to.</param>
/// <param name="effect">The Effect handle that is being attached.</param>
[CLSCompliant(false)]
public void BindEffectToAuxiliarySlot( uint auxiliaryeffectslot,uint effect )
{
AuxiliaryEffectSlot(auxiliaryeffectslot,Enums.EfxAuxiliaryi.EffectslotEffect,(int) effect);
}
#endregion alAuxiliaryEffectSloti
#region alAuxiliaryEffectSlotf

View file

@ -22,8 +22,7 @@ Efx: Functions not imported:
alEffectiv, alGetEffectiv
alFilteriv, alFilterfv, alGetFilteriv, alGetFilterfv
alAuxiliaryEffectSlotiv, alAuxiliaryEffectSlotfv, alGetAuxiliaryEffectSlotiv, alGetAuxiliaryEffectSlotfv
- Added AL.Null for convenience when working with C Manuals.
- Added Function AL.GetErrorString()
- Added overloads for requesting/deleting a single buffer/source at a time.
- Refactored -i -fv -3f functions to be overloads e.g AL.GetSource, AL.GetListener
@ -35,13 +34,15 @@ Alpha v0.9
-added alEffectfv and alGetEffectfv
-ported samples from SDK
Alpha v0.95
-full cleanup of AL class documentation
-added *.Bind* helpers.
Todo for beta:
- Identify: AL_FILTER_FIRST_PARAMETER, AL_FILTER_LAST_PARAMETER
AL_EFFECT_FIRST_PARAMETER, AL_EFFECT_LAST_PARAMETER
- AL.BindBuffer helper function ala GL.BindBuffer? (Wraps AL.Source, better consistency)
- change all "name" into "handle" to avoid confusion?
- replace EaxEfx reverbs with Efx reverbs.
Todo for final:
- Enums themselves require summaries (do after some more serious tests)