2012-08-11 22:03:44 +00:00

83 lines
2.1 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using ANX.Framework.Graphics;
using ANX.Framework.NonXNA;
using Sce.PlayStation.Core.Graphics;
// This file is part of the ANX.Framework created by the
// "ANX.Framework developer group" and released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license
namespace ANX.RenderSystem.PsVita
{
public class PsVitaEffect : INativeEffect
{
#region Private
private ShaderProgram nativeShader;
#endregion
#region Public
public IEnumerable<EffectTechnique> Techniques
{
get
{
throw new NotImplementedException();
}
}
public IEnumerable<EffectParameter> Parameters
{
get
{
throw new NotImplementedException();
}
}
#endregion
#region Constructor
public PsVitaEffect(Effect managedEffect, Stream shaderByteStream)
{
int length = (int)(shaderByteStream.Length - shaderByteStream.Position);
byte[] shaderByteData = new byte[length];
shaderByteStream.Read(shaderByteData, 0, length);
nativeShader = new ShaderProgram(shaderByteData);
}
public PsVitaEffect(Effect managedEffect, Stream vertexShaderByteStream,
Stream pixelShaderByteStream)
{
int vertexBytesLength = (int)(vertexShaderByteStream.Length -
vertexShaderByteStream.Position);
byte[] vertexShaderByteData = new byte[vertexBytesLength];
vertexShaderByteStream.Read(vertexShaderByteData, 0, vertexBytesLength);
int fragmentBytesLength = (int)(pixelShaderByteStream.Length -
pixelShaderByteStream.Position);
byte[] fragmentShaderByteData = new byte[fragmentBytesLength];
pixelShaderByteStream.Read(fragmentShaderByteData, 0, fragmentBytesLength);
nativeShader = new ShaderProgram(vertexShaderByteData, fragmentShaderByteData);
}
#endregion
#region Apply
public void Apply(GraphicsDevice graphicsDevice)
{
throw new NotImplementedException();
}
#endregion
#region Dispose
public void Dispose()
{
if (nativeShader != null)
{
nativeShader.Dispose();
nativeShader = null;
}
}
#endregion
}
}