1
0
mirror of https://github.com/Halofreak1990/XFXFramework synced 2024-12-26 13:49:34 +01:00

Added new headers

This commit is contained in:
Tom Lint 2013-07-11 19:35:08 +02:00
parent 66a012689c
commit 2dc086540d
9 changed files with 574 additions and 0 deletions

View File

@ -0,0 +1,98 @@
/*****************************************************************************
* DynamicSoundEffectInstance.h *
* *
* XFX::Audio::DynamicSoundEffectInstance definition file *
* Copyright (c) XFX Team. All Rights Reserved *
*****************************************************************************/
#include <Audio/SoundEffectInstance.h>
#include <System/Event.h>
#include <System/TimeSpan.h>
using namespace System;
namespace XFX
{
namespace Audio
{
/**
* Provides properties, methods, and events for play back of the audio buffer.
*/
class DynamicSoundEffectInstance : SoundEffectInstance
{
private:
protected:
void Dispose(bool disposing);
public:
/**
* The event that occurs when the number of audio capture buffers awaiting playback is less than or equal to two.
*/
EventHandler BufferNeeded;
/**
* Initializes a new instance of this class, which creates a dynamic sound effect based on the specified sample rate and audio channel.
*
* @param sampleRate
* Sample rate, in Hertz (Hz), of audio content.
*
* @param channels
* Number of channels in the audio data.
*
* @throws System.ArgumentOutOfRangeException
*
*/
DynamicSoundEffectInstance(int sampleRate, AudioChannels_t channels);
/**
* Returns the sample duration based on the specified size of the audio buffer.
*
* @param sizeInBytes
* Size, in bytes, of the audio data.
*
* @throws System.ObjectDisposedException
*
* @throws System.ArgumentException
*
*/
TimeSpan GetSampleDuration(int sizeInBytes);
/**
* Returns the size of the audio buffer required to contain audio samples based on the specified duration.
*
* @param duration
* TimeSpan object that contains the duration of the audio sample.
*
* @throws System.ObjectDisposedException
*
* @throws System.ArgumentOutOfException
*
*/
int GetSampleSizeInBytes(TimeSpan duration);
/**
* Begins or resumes audio playback.
*
* @throws System.ObjectDisposedException
*/
void Play();
/**
* Submits an audio buffer for playback. Playback begins at the specified offset, and the byte count determines the size of the sample played.
*
* @param buffer
* Buffer that contains the audio data. The audio format must be PCM wave data.
*
* @param offset
* Offset, in bytes, to the starting position of the data.
*
* @param count
* Amount, in bytes, of data sent.
*
* @throws System.ObjectDisposedException
*
* @throws System.ArgumentException
*
*/
void SubmitBuffer(byte buffer[], int offset, int count);
};
}
}

View File

@ -0,0 +1,91 @@
/*****************************************************************************
* EffectAnnotation.h *
* *
* XFX::Graphics::EffectAnnotation definition file *
* Copyright (c) XFX Team. All Rights Reserved *
*****************************************************************************/
#ifndef _XFX_GRAPHICS_EFFECTANNOTATION_
#define _XFX_GRAPHICS_EFFECTANNOTATION_
#include <System/String.h>
#include "Enums.h"
using namespace System;
namespace XFX
{
struct Matrix;
struct Vector2;
struct Vector3;
struct Vector4;
namespace Graphics
{
/**
* Represents an annotation to an EffectParameter.
*/
class EffectAnnotation
{
public:
/**
* Gets the number of columns in this effect annotation.
*/
int getColumnCount() const;
/**
* Gets the name of the effect annotation.
*/
String& getName() const;
/**
* Gets the parameter class of this effect annotation.
*/
EffectParameterClass_t getParameterClass() const;
/**
* Gets the parameter type of this effect annotation.
*/
EffectParameterType_t getParameterType() const;
/**
* Gets the row count of this effect annotation.
*/
int getRowCount() const;
/**
* Gets the semantic of this effect annotation.
*/
String& getSemantic() const;
/**
* Gets the value of the EffectAnnotation as a Boolean.
*/
bool GetValueBoolean() const;
/**
* Gets the value of the EffectAnnotation as a Int32.
*/
int GetValueInt32() const;
/**
* Gets the value of the EffectAnnotation as a Matrix.
*/
Matrix GetValueMatrix() const;
/**
* Gets the value of the EffectAnnotation as a Single.
*/
float GetValueSingle() const;
/**
* Gets the value of the EffectAnnotation as a String.
*/
String& GetValueString() const;
/**
* Gets the value of the EffectAnnotation as a Vector2.
*/
Vector2 GetValueVector2() const;
/**
* Gets the value of the EffectAnnotation as a Vector3.
*/
Vector3 GetValueVector3() const;
/**
* Gets the value of the EffectAnnotation as a Vector4.
*/
Vector4 GetValueVector4() const;
};
}
}
#endif //_XFX_GRAPHICS_EFFECTANNOTATION_

View File

@ -0,0 +1,59 @@
/*****************************************************************************
* EffectAnnotationCollection.h *
* *
* XFX::Graphics::EffectAnnotationCollection definition file *
* Copyright (c) XFX Team. All Rights Reserved *
*****************************************************************************/
#ifndef _XFX_GRAPHICS_EFFECTANNOTATIONCOLLECTION_
#define _XFX_GRAPHICS_EFFECTANNOTATIONCOLLECTION_
#include <Graphics/EffectAnnotation.h>
#include <System/Collections/Generic/Interfaces.h>
using namespace System;
using namespace System::Collections::Generic;
namespace XFX
{
namespace Graphics
{
/**
* Manipulates a collection of EffectAnnotation objects.
*/
class EffectAnnotationCollection : public IEnumerable<EffectAnnotation>, public Object
{
public:
/**
* Gets the number of EffectAnnotation objects in this EffectAnnotationCollection.
*/
int Count() const;
/**
* Gets an enumerator that can iterate through the EffectAnnotationCollection.
*/
IEnumerator<EffectAnnotation>* GetEnumerator();
/**
*
*/
int GetType() const;
/**
* Gets a specific EffectAnnotation object by using an index value.
*
* @param index
* Index of the EffectAnnotation to get.
*/
const EffectAnnotation operator[](const int index) const;
/**
* Gets a specific EffectAnnotation object by using a name.
*
* @param name
* Name of the EffectAnnotation to get.
*/
const EffectAnnotation operator[](const String& name) const;
};
}
}
#endif //_XFX_GRAPHICS_EFFECTANNOTATIONCOLLECTION_

View File

@ -0,0 +1,65 @@
/*****************************************************************************
* EffectParameterCollection.h *
* *
* XFX::Graphics::EffectParameterCollection definition file *
* Copyright (c) XFX Team. All Rights Reserved *
*****************************************************************************/
#ifndef _XFX_GRAPHICS_EFFECTPARAMETERCOLLECTION_
#define _XFX_GRAPHICS_EFFECTPARAMETERCOLLECTION_
#include <Graphics/EffectParameter.h>
#include <System/Collections/Generic/Interfaces.h>
using namespace System;
using namespace System::Collections::Generic;
namespace XFX
{
namespace Graphics
{
/**
* Manipulates a collection of EffectParameter objects.
*/
class EffectParameterCollection : public IEnumerable<EffectParameter *>, public Object
{
public:
/**
* Gets the number of EffectParameter objects in this EffectParameterCollection.
*/
int Count() const;
/**
* Gets an enumerator that can iterate through EffectParameterCollection.
*/
IEnumerator<EffectParameter *>* GetEnumerator();
/**
* Gets an effect parameter from its semantic usage.
*
* @param semantic
* The semantic meaning, or usage, of the parameter.
*/
EffectParameter * const GetParameterBySemantic(const String& semantic);
/**
*
*/
int GetType() const;
/**
* Gets a specific EffectParameter object by using an index value.
*
* @param index
* Index of the EffectParameter to get.
*/
EffectParameter * const operator[](const int index) const;
/**
* Gets a specific EffectParameter by name.
*
* @param name
* The name of the EffectParameter to retrieve.
*/
EffectParameter * const operator[](const String& name) const;
};
}
}
#endif //_XFX_GRAPHICS_EFFECTPARAMETERCOLLECTION_

View File

@ -0,0 +1,42 @@
/*****************************************************************************
* EffectPass.h *
* *
* XFX::Graphics::EffectPass definition file *
* Copyright (c) XFX Team. All Rights Reserved *
*****************************************************************************/
#ifndef _XFX_GRAPHICS_EFFECTPASS_
#define _XFX_GRAPHICS_EFFECTPASS_
#include <Graphics/EffectAnnotationCollection.h>
#include <System/String.h>
using namespace System;
namespace XFX
{
namespace Graphics
{
/**
* Contains rendering state for drawing with an effect; an effect can contain one or more passes.
*/
class EffectPass
{
public:
/**
* Gets the set of EffectAnnotation objects for this EffectPass.
*/
EffectAnnotationCollection& getAnnotations() const;
/**
* Gets the name of this pass.
*/
String& getName();
/**
* Begins this pass.
*/
void Apply();
};
}
}
#endif //_XFX_GRAPHICS_EFFECTPASS_

View File

@ -0,0 +1,55 @@
/*****************************************************************************
* EffectPassCollection.h *
* *
* XFX::Graphics::EffectPassCollection definition file *
* Copyright (c) XFX Team. All Rights Reserved *
*****************************************************************************/
#ifndef _XFX_GRAPHICS_EFFECTPASSCOLLECTION_
#define _XFX_GRAPHICS_EFFECTPASSCOLLECTION_
#include <Graphics/EffectPass.h>
#include <System/Collections/Generic/Interfaces.h>
using namespace System;
using namespace System::Collections::Generic;
namespace XFX
{
namespace Graphics
{
/**
* Manipulates a collection of EffectPass objects.
*/
class EffectPassCollection : public IEnumerable<EffectPass *>, public Object
{
public:
/**
* Gets the number of objects in the collection.
*/
int Count() const;
/**
* Gets an enumerator that can iterate through the EffectPassCollection.
*/
IEnumerator<EffectPass *>* GetEnumerator();
int GetType() const;
/**
* Gets a specific element in the collection by using an index value.
*
* @param index
* Index of the EffectPass to get.
*/
EffectPass * const operator[](const int index) const;
/**
* Gets a specific element in the collection by using a name.
*
* @param name
* Name of the EffectPass to get.
*/
EffectPass * const operator[](const String& name) const;
};
}
}
#endif //_XFX_GRAPHICS_EFFECTPASSCOLLECTION_

View File

@ -0,0 +1,45 @@
/*****************************************************************************
* EffectTechnique.h *
* *
* XFX::Graphics::EffectTechnique definition file *
* Copyright (c) XFX Team. All Rights Reserved *
*****************************************************************************/
#ifndef _XFX_GRAPHICS_EFFECTTECHNIQUE_
#define _XFX_GRAPHICS_EFFECTTECHNIQUE_
#include <Graphics/EffectAnnotationCollection.h>
#include <Graphics/EffectPassCollection.h>
#include <System/String.h>
using namespace System;
namespace XFX
{
namespace Graphics
{
/**
* Represents an effect technique.
*/
class EffectTechnique
{
private:
EffectAnnotationCollection _annotations;
public:
/**
* Gets the EffectAnnotation objects associated with this technique.
*/
EffectAnnotationCollection& getAnnotations() const;
/**
* Gets the name of this technique.
*/
String& getName() const;
/**
* Gets the collection of EffectPass objects this rendering technique requires.
*/
EffectPassCollection& getPasses() const;
};
}
}
#endif //_XFX_GRAPHICS_EFFECTTECHNIQUE_

View File

@ -0,0 +1,55 @@
/*****************************************************************************
* EffectTechniqueCollection.h *
* *
* XFX::Graphics::EffectTechniqueCollection definition file *
* Copyright (c) XFX Team. All Rights Reserved *
*****************************************************************************/
#ifndef _XFX_GRAPHICS_EFFECTTECHNIQUECOLLECTION_
#define _XFX_GRAPHICS_EFFECTTECHNIQUECOLLECTION_
#include <Graphics/EffectTechnique.h>
#include <System/Collections/Generic/Interfaces.h>
using namespace System;
using namespace System::Collections::Generic;
namespace XFX
{
namespace Graphics
{
/**
* Manipulates a collection of EffectTechnique objects.
*/
class EffectTechniqueCollection : public IEnumerable<EffectTechnique *>, public Object
{
public:
/**
* Gets the number of objects in the collection.
*/
int Count() const;
/**
* Gets an enumerator that can iterate through the EffectTechniqueCollection.
*/
IEnumerator<EffectTechnique *>* GetEnumerator();
int GetType() const;
/**
* Gets a specific element in the collection by using an index value.
*
* @param index
* Index of the EffectTechnique to get.
*/
EffectTechnique * const operator[](const int index) const;
/**
* Gets a specific element in the collection by using a name.
*
* @param name
* Name of the EffectTechnique to get.
*/
EffectTechnique * const operator[](const String& name) const;
};
}
}
#endif //_XFX_GRAPHICS_EFFECTTECHNIQUECOLLECTION_

View File

@ -0,0 +1,64 @@
// Copyright (C) XFX Team
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// * Neither the name of the copyright holder nor the names of any
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
#include <Graphics/AlphaTestEffect.h>
#include <Graphics/Texture2D.h>
namespace XFX
{
namespace Graphics
{
AlphaTestEffect::AlphaTestEffect(AlphaTestEffect const * const cloneSource)
: Effect(cloneSource),
Alpha(cloneSource->Alpha), AlphaFunction(cloneSource->AlphaFunction),
DiffuseColor(cloneSource->DiffuseColor), FogColor(cloneSource->FogColor),
FogEnabled(cloneSource->FogEnabled), FogEnd(cloneSource->FogEnd), FogStart(cloneSource->FogStart),
Projection(cloneSource->Projection), ReferenceAlpha(cloneSource->ReferenceAlpha),
Texture(cloneSource->Texture), VertexColorEnabled(cloneSource->VertexColorEnabled),
View(cloneSource->View), World(cloneSource->World)
{
}
void AlphaTestEffect::OnApply()
{
}
AlphaTestEffect::AlphaTestEffect(GraphicsDevice * const device)
: Effect(device, effectCode)
{
}
Effect* AlphaTestEffect::Clone() const
{
return new AlphaTestEffect(this);
}
int AlphaTestEffect::GetType() const
{
}
}
}