non-ref overloads for gen/delete functions (AL&Efx)

This commit is contained in:
chrisbrandtner 2008-03-27 16:46:23 +00:00
parent 63608b1dd7
commit 17d7e4da92
2 changed files with 239 additions and 1 deletions

View file

@ -422,6 +422,20 @@ namespace OpenTK.OpenAL
} }
} }
/// <summary>This function generates one or more sources. References to sources are int values, which are used wherever a source reference is needed (in calls such as AL.DeleteSources and AL.Source with parameter ALSourcei).</summary>
/// <param name="n">The number of sources to be generated.</param>
/// <param name="sources">Pointer to an array of int values which will store the names of the new sources.</param>
[CLSCompliant( true )]
public static void GenSources( int[] sources )
{
uint[] temp = new uint[sources.Length];
GenSources( temp.Length, out temp[0] );
for ( int i = 0 ; i < temp.Length ; i++ )
{
sources[i] = (int) temp[i];
}
}
/// <summary>This function generates one source only. References to sources are uint values, which are used wherever a source reference is needed (in calls such as AL.DeleteSources and AL.Source with parameter ALSourcei).</summary> /// <summary>This function generates one source only. References to sources are uint values, which are used wherever a source reference is needed (in calls such as AL.DeleteSources and AL.Source with parameter ALSourcei).</summary>
/// <param name="source">Pointer to an uint value which will store the name of the new source.</param> /// <param name="source">Pointer to an uint value which will store the name of the new source.</param>
[CLSCompliant( false )] [CLSCompliant( false )]
@ -440,6 +454,16 @@ namespace OpenTK.OpenAL
source = (int) temp; source = (int) temp;
} }
/// <summary>This function generates one source only. References to sources are int values, which are used wherever a source reference is needed (in calls such as AL.DeleteSources and AL.Source with parameter ALSourcei).</summary>
/// <param name="source">Pointer to an int value which will store the name of the new source.</param>
[CLSCompliant( true )]
public static int GenSources( )
{
uint temp;
GenSources( 1, out temp );
return (int) temp;
}
#endregion GenSources() #endregion GenSources()
#region DeleteSources() #region DeleteSources()
@ -477,6 +501,20 @@ namespace OpenTK.OpenAL
DeleteSources( n, ref temp ); DeleteSources( n, ref temp );
} }
/// <summary>This function deletes one or more sources.</summary>
/// <param name="n">The number of sources to be deleted.</param>
/// <param name="sources">Pointer to an array of source names identifying the sources to be deleted.</param>
[CLSCompliant( true )]
public static void DeleteSources( int[] sources )
{
uint[] temp = new uint[sources.Length];
for ( int i = 0 ; i < temp.Length ; i++ )
{
temp[i] = (uint) sources[i];
}
DeleteSources( temp.Length, ref temp );
}
/// <summary>This function deletes one source only.</summary> /// <summary>This function deletes one source only.</summary>
/// <param name="source">Pointer to a source name identifying the source to be deleted.</param> /// <param name="source">Pointer to a source name identifying the source to be deleted.</param>
[CLSCompliant( false )] [CLSCompliant( false )]
@ -497,6 +535,16 @@ namespace OpenTK.OpenAL
DeleteSources( 1, ref temp ); DeleteSources( 1, ref temp );
} }
/// <summary>This function deletes one source only.</summary>
/// <param name="source">Pointer to a source name identifying the source to be deleted.</param>
[CLSCompliant( true )]
public static void DeleteSources( int source )
{
uint[] temp = new uint[1];
temp[0] = (uint) source;
DeleteSources( 1, ref temp );
}
#endregion DeleteSources() #endregion DeleteSources()
#region IsSource() #region IsSource()
@ -1289,6 +1337,20 @@ namespace OpenTK.OpenAL
} }
} }
/// <summary>This function generates one or more buffers, which contain audio data (see AL.BufferData). References to buffers are uint values, which are used wherever a buffer reference is needed (in calls such as AL.DeleteBuffers, AL.Source with parameter ALSourcei, AL.SourceQueueBuffers, and AL.SourceUnqueueBuffers).</summary>
/// <param name="n">The number of buffers to be generated.</param>
/// <param name="buffers">Pointer to an array of uint values which will store the names of the new buffers.</param>
[CLSCompliant( true )]
public static void GenBuffers( int[] buffers )
{
uint[] temp = new uint[buffers.Length];
GenBuffers( temp.Length, out temp[0] );
for ( int i = 0 ; i <temp.Length ; i++ )
{
buffers[i] = (int) temp[i];
}
}
/// <summary>This function generates one buffer only, which contain audio data (see AL.BufferData). References to buffers are uint values, which are used wherever a buffer reference is needed (in calls such as AL.DeleteBuffers, AL.Source with parameter ALSourcei, AL.SourceQueueBuffers, and AL.SourceUnqueueBuffers).</summary> /// <summary>This function generates one buffer only, which contain audio data (see AL.BufferData). References to buffers are uint values, which are used wherever a buffer reference is needed (in calls such as AL.DeleteBuffers, AL.Source with parameter ALSourcei, AL.SourceQueueBuffers, and AL.SourceUnqueueBuffers).</summary>
/// <param name="buffer">Pointer to an uint value which will store the name of the new buffer.</param> /// <param name="buffer">Pointer to an uint value which will store the name of the new buffer.</param>
[CLSCompliant( false )] [CLSCompliant( false )]
@ -1307,6 +1369,16 @@ namespace OpenTK.OpenAL
buffer = (int) temp; buffer = (int) temp;
} }
/// <summary>This function generates one buffer only, which contain audio data (see AL.BufferData). References to buffers are uint values, which are used wherever a buffer reference is needed (in calls such as AL.DeleteBuffers, AL.Source with parameter ALSourcei, AL.SourceQueueBuffers, and AL.SourceUnqueueBuffers).</summary>
/// <param name="buffer">Pointer to an uint value which will store the name of the new buffer.</param>
[CLSCompliant( true )]
public static int GenBuffers( )
{
uint temp;
GenBuffers( 1, out temp );
return (int) temp;
}
#endregion GenBuffers #endregion GenBuffers
#region DeleteBuffers #region DeleteBuffers
@ -1347,6 +1419,20 @@ namespace OpenTK.OpenAL
DeleteBuffers( n, ref temp ); DeleteBuffers( n, ref temp );
} }
/// <summary>This function deletes one or more buffers, freeing the resources used by the buffer. Buffers which are attached to a source can not be deleted. See AL.Source (ALSourcei) and AL.SourceUnqueueBuffers for information on how to detach a buffer from a source.</summary>
/// <param name="n">The number of buffers to be deleted.</param>
/// <param name="buffers">Pointer to an array of buffer names identifying the buffers to be deleted.</param>
[CLSCompliant( true )]
public static void DeleteBuffers( int[] buffers )
{
uint[] temp = new uint[buffers.Length];
for ( int i = 0 ; i < temp.Length ; i++ )
{
temp[i] = (uint) buffers[i];
}
DeleteBuffers( temp.Length, ref temp );
}
/// <summary>This function deletes one buffer only, freeing the resources used by the buffer. Buffers which are attached to a source can not be deleted. See AL.Source (ALSourcei) and AL.SourceUnqueueBuffers for information on how to detach a buffer from a source.</summary> /// <summary>This function deletes one buffer only, freeing the resources used by the buffer. Buffers which are attached to a source can not be deleted. See AL.Source (ALSourcei) and AL.SourceUnqueueBuffers for information on how to detach a buffer from a source.</summary>
/// <param name="buffer">Pointer to a buffer name identifying the buffer to be deleted.</param> /// <param name="buffer">Pointer to a buffer name identifying the buffer to be deleted.</param>
[CLSCompliant( false )] [CLSCompliant( false )]
@ -1370,6 +1456,15 @@ namespace OpenTK.OpenAL
DeleteBuffers( ref temp ); DeleteBuffers( ref temp );
} }
/// <summary>This function deletes one buffer only, freeing the resources used by the buffer. Buffers which are attached to a source can not be deleted. See AL.Source (ALSourcei) and AL.SourceUnqueueBuffers for information on how to detach a buffer from a source.</summary>
/// <param name="buffer">Pointer to a buffer name identifying the buffer to be deleted.</param>
[CLSCompliant( true )]
public static void DeleteBuffers( int buffer )
{
uint temp = (uint) buffer;
DeleteBuffers( ref temp );
}
#endregion DeleteBuffers #endregion DeleteBuffers
#region IsBuffer #region IsBuffer

View file

@ -158,6 +158,21 @@ namespace OpenTK.OpenAL
} }
} }
/// <summary>The GenEffects function is used to create one or more Effect objects. An Effect object stores an effect type and a set of parameter values to control that Effect. In order to use an Effect it must be attached to an Auxiliary Effect Slot object</summary>
/// <remarks>After creation an Effect has no type (EfxEffectType.Null), so before it can be used to store a set of parameters, the application must specify what type of effect should be stored in the object, using Effect() with EfxEffecti.</remarks>
/// <param name="n">Number of Effects to be created.</param>
/// <param name="effects">Pointer addressing sufficient memory to store n Effect object identifiers.</param>
[CLSCompliant( true )]
public void GenEffects( int[] effects )
{
uint[] temp = new uint[effects.Length];
GenEffects( temp.Length, out temp[0] );
for ( int i = 0 ; i < temp.Length ; i++ )
{
effects[i] = (int) temp[i];
}
}
/// <summary>This function generates only one Effect.</summary> /// <summary>This function generates only one Effect.</summary>
/// <param name="effect">Storage UInt32 for the new effect name/handle.</param> /// <param name="effect">Storage UInt32 for the new effect name/handle.</param>
[CLSCompliant( false )] [CLSCompliant( false )]
@ -182,6 +197,16 @@ namespace OpenTK.OpenAL
effect = (int) temp; effect = (int) temp;
} }
/// <summary>This function generates only one Effect.</summary>
/// <param name="effect">Storage UInt32 for the new effect name/handle.</param>
[CLSCompliant( true )]
public int GenEffects( )
{
uint temp;
GenEffects( out temp );
return (int) temp;
}
#endregion alGenEffects #endregion alGenEffects
#region alDeleteEffects #region alDeleteEffects
@ -222,6 +247,20 @@ namespace OpenTK.OpenAL
DeleteEffects( n, ref temp ); DeleteEffects( n, ref temp );
} }
/// <summary>The DeleteEffects function is used to delete and free resources for Effect objects previously created with GenEffects.</summary>
/// <param name="n">Number of Effects to be deleted.</param>
/// <param name="effects">Pointer to n Effect object identifiers.</param>
[CLSCompliant( true )]
public void DeleteEffects( int[] effects )
{
uint[] temp = new uint[effects.Length];
for ( int i = 0 ; i < temp.Length ; i++ )
{
temp[i] = (uint) effects[i];
}
DeleteEffects( temp.Length, ref temp );
}
/// <summary>This function deletes one Effect only.</summary> /// <summary>This function deletes one Effect only.</summary>
/// <param name="effect">Pointer to an effect name/handle identifying the Effect Object to be deleted.</param> /// <param name="effect">Pointer to an effect name/handle identifying the Effect Object to be deleted.</param>
[CLSCompliant(false)] [CLSCompliant(false)]
@ -238,13 +277,22 @@ namespace OpenTK.OpenAL
/// <summary>This function deletes one Effect only.</summary> /// <summary>This function deletes one Effect only.</summary>
/// <param name="effect">Pointer to an effect name/handle identifying the Effect Object to be deleted.</param> /// <param name="effect">Pointer to an effect name/handle identifying the Effect Object to be deleted.</param>
[CLSCompliant( false )] [CLSCompliant( true)]
public void DeleteEffects( ref int effect ) public void DeleteEffects( ref int effect )
{ {
uint temp = (uint) effect; uint temp = (uint) effect;
DeleteEffects( ref temp ); DeleteEffects( ref temp );
} }
/// <summary>This function deletes one Effect only.</summary>
/// <param name="effect">Pointer to an effect name/handle identifying the Effect Object to be deleted.</param>
[CLSCompliant( true )]
public void DeleteEffects( int effect )
{
uint temp = (uint) effect;
DeleteEffects( ref temp );
}
#endregion alDeleteEffects #endregion alDeleteEffects
#region alIsEffect #region alIsEffect
@ -539,6 +587,21 @@ namespace OpenTK.OpenAL
} }
} }
/// <summary>The GenFilters function is used to create one or more Filter objects. A Filter object stores a filter type and a set of parameter values to control that Filter. Filter objects can be attached to Sources as Direct Filters or Auxiliary Send Filters.</summary>
/// <remarks>After creation a Filter has no type (EfxFilterType.Null), so before it can be used to store a set of parameters, the application must specify what type of filter should be stored in the object, using Filter() with EfxFilteri.</remarks>
/// <param name="n">Number of Filters to be created.</param>
/// <param name="filters">Pointer addressing sufficient memory to store n Filter object identifiers.</param>
[CLSCompliant( true )]
public void GenFilters( int[] filters )
{
uint[] temp = new uint[filters.Length];
GenFilters( temp.Length, out temp[0] );
for ( int i = 0 ; i < temp.Length ; i++ )
{
filters[i] = (int) temp[i];
}
}
/// <summary>This function generates only one Filter.</summary> /// <summary>This function generates only one Filter.</summary>
/// <param name="filter">Storage UInt32 for the new filter name/handle.</param> /// <param name="filter">Storage UInt32 for the new filter name/handle.</param>
[CLSCompliant( false )] [CLSCompliant( false )]
@ -563,6 +626,16 @@ namespace OpenTK.OpenAL
filter = (int) temp; filter = (int) temp;
} }
/// <summary>This function generates only one Filter.</summary>
/// <param name="filter">Storage UInt32 for the new filter name/handle.</param>
[CLSCompliant( true )]
public int GenFilters( )
{
uint temp;
GenFilters( out temp );
return (int) temp;
}
#endregion alGenFilters #endregion alGenFilters
#region alDeleteFilters #region alDeleteFilters
@ -603,6 +676,20 @@ namespace OpenTK.OpenAL
DeleteFilters( n, ref temp ); DeleteFilters( n, ref temp );
} }
/// <summary>The DeleteFilters function is used to delete and free resources for Filter objects previously created with GenFilters.</summary>
/// <param name="n">Number of Filters to be deleted.</param>
/// <param name="filters">Pointer to n Filter object identifiers.</param>
[CLSCompliant( true )]
public void DeleteFilters( int[] filters )
{
uint[] temp = new uint[filters.Length];
for ( int i = 0 ; i < temp.Length ; i++ )
{
temp[i] = (uint) filters[i];
}
DeleteFilters( temp.Length, ref temp );
}
/// <summary>This function deletes one Filter only.</summary> /// <summary>This function deletes one Filter only.</summary>
/// <param name="filter">Pointer to an filter name/handle identifying the Filter Object to be deleted.</param> /// <param name="filter">Pointer to an filter name/handle identifying the Filter Object to be deleted.</param>
[CLSCompliant(false)] [CLSCompliant(false)]
@ -626,6 +713,15 @@ namespace OpenTK.OpenAL
DeleteFilters( ref temp ); DeleteFilters( ref temp );
} }
/// <summary>This function deletes one Filter only.</summary>
/// <param name="filter">Pointer to an filter name/handle identifying the Filter Object to be deleted.</param>
[CLSCompliant( true )]
public void DeleteFilters( int filter )
{
uint temp = (uint) filter;
DeleteFilters( ref temp );
}
#endregion alDeleteFilters #endregion alDeleteFilters
#region alIsFilter #region alIsFilter
@ -845,6 +941,20 @@ namespace OpenTK.OpenAL
} }
} }
/// <summary>The GenAuxiliaryEffectSlots function is used to create one or more Auxiliary Effect Slots. The number of slots that can be created will be dependant upon the Open AL device used.</summary>
/// <remarks>An application should check the OpenAL error state after making this call to determine if the Effect Slot was successfully created. If the function call fails then none of the requested Effect Slots are created. A good strategy for creating any OpenAL object is to use a for-loop and generate one object each loop iteration and then check for an error condition. If an error is set then the loop can be broken and the application can determine if sufficient resources are available.</remarks>
/// <param name="n">Number of Auxiliary Effect Slots to be created.</param>
/// <param name="slots">Pointer addressing sufficient memory to store n Effect Slot object identifiers.</param>
[CLSCompliant( true )]
public void GenAuxiliaryEffectSlots( int[] slots )
{
uint[] temp = new uint[slots.Length];
GenAuxiliaryEffectSlots( temp.Length, out temp[0] );
for ( int i = 0 ; i < temp.Length ; i++ )
{
slots[i] = (int) temp[i];
}
}
/// <summary>This function generates only one Auxiliary Effect Slot.</summary> /// <summary>This function generates only one Auxiliary Effect Slot.</summary>
/// <param name="slot">Storage UInt32 for the new auxiliary effect slot name/handle.</param> /// <param name="slot">Storage UInt32 for the new auxiliary effect slot name/handle.</param>
@ -871,6 +981,16 @@ namespace OpenTK.OpenAL
slot = (int) temp; slot = (int) temp;
} }
/// <summary>This function generates only one Auxiliary Effect Slot.</summary>
/// <param name="slot">Storage UInt32 for the new auxiliary effect slot name/handle.</param>
[CLSCompliant( true )]
public int GenAuxiliaryEffectSlots( )
{
uint temp;
GenAuxiliaryEffectSlots( out temp );
return (int) temp;
}
#endregion alGenAuxiliaryEffectSlots #endregion alGenAuxiliaryEffectSlots
#region alDeleteAuxiliaryEffectSlots #region alDeleteAuxiliaryEffectSlots
@ -911,6 +1031,20 @@ namespace OpenTK.OpenAL
DeleteAuxiliaryEffectSlots( n, ref temp ); DeleteAuxiliaryEffectSlots( n, ref temp );
} }
/// <summary>The DeleteAuxiliaryEffectSlots function is used to delete and free resources for Auxiliary Effect Slots previously created with GenAuxiliaryEffectSlots.</summary>
/// <param name="n">Number of Auxiliary Effect Slots to be deleted.</param>
/// <param name="slots">Pointer to n Effect Slot object identifiers.</param>
[CLSCompliant( true )]
public void DeleteAuxiliaryEffectSlots( int[] slots )
{
uint[] temp = new uint[slots.Length];
for ( int i = 0 ; i < temp.Length ; i++ )
{
temp[i] = (uint) slots[i];
}
DeleteAuxiliaryEffectSlots( temp.Length, ref temp );
}
/// <summary>This function deletes one AuxiliaryEffectSlot only.</summary> /// <summary>This function deletes one AuxiliaryEffectSlot only.</summary>
/// <param name="slot">Pointer to an auxiliary effect slot name/handle identifying the Auxiliary Effect Slot Object to be deleted.</param> /// <param name="slot">Pointer to an auxiliary effect slot name/handle identifying the Auxiliary Effect Slot Object to be deleted.</param>
[CLSCompliant(false)] [CLSCompliant(false)]
@ -934,6 +1068,15 @@ namespace OpenTK.OpenAL
DeleteAuxiliaryEffectSlots( ref temp ); DeleteAuxiliaryEffectSlots( ref temp );
} }
/// <summary>This function deletes one AuxiliaryEffectSlot only.</summary>
/// <param name="slot">Pointer to an auxiliary effect slot name/handle identifying the Auxiliary Effect Slot Object to be deleted.</param>
[CLSCompliant( true )]
public void DeleteAuxiliaryEffectSlots( int slot )
{
uint temp = (uint) slot;
DeleteAuxiliaryEffectSlots( ref temp );
}
#endregion alDeleteAuxiliaryEffectSlots #endregion alDeleteAuxiliaryEffectSlots
#region alIsAuxiliaryEffectSlot #region alIsAuxiliaryEffectSlot