mirror of
https://github.com/Halofreak1990/XFXFramework
synced 2024-12-26 13:49:34 +01:00
Added new headers
This commit is contained in:
parent
66a012689c
commit
2dc086540d
98
include/Audio/DynamicSoundEffectInstance.h
Normal file
98
include/Audio/DynamicSoundEffectInstance.h
Normal 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);
|
||||
};
|
||||
}
|
||||
}
|
91
include/Graphics/EffectAnnotation.h
Normal file
91
include/Graphics/EffectAnnotation.h
Normal 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_
|
59
include/Graphics/EffectAnnotationCollection.h
Normal file
59
include/Graphics/EffectAnnotationCollection.h
Normal 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_
|
65
include/Graphics/EffectParameterCollection.h
Normal file
65
include/Graphics/EffectParameterCollection.h
Normal 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_
|
42
include/Graphics/EffectPass.h
Normal file
42
include/Graphics/EffectPass.h
Normal 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_
|
55
include/Graphics/EffectPassCollection.h
Normal file
55
include/Graphics/EffectPassCollection.h
Normal 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_
|
45
include/Graphics/EffectTechnique.h
Normal file
45
include/Graphics/EffectTechnique.h
Normal 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_
|
55
include/Graphics/EffectTechniqueCollection.h
Normal file
55
include/Graphics/EffectTechniqueCollection.h
Normal 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_
|
64
src/libXFX/AlphaTestEffect.cpp
Normal file
64
src/libXFX/AlphaTestEffect.cpp
Normal 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
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user