2011-11-03 12:37:07 +00:00
|
|
|
using System.Collections.ObjectModel;
|
2012-02-19 13:41:02 +00:00
|
|
|
using System.IO;
|
|
|
|
using ANX.Framework.Graphics;
|
2011-11-11 07:29:49 +00:00
|
|
|
using ANX.Framework.NonXNA.RenderSystem;
|
2011-10-31 05:36:24 +00:00
|
|
|
|
2012-08-09 09:45:04 +00:00
|
|
|
// 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
|
2011-10-31 05:36:24 +00:00
|
|
|
|
2011-11-30 09:56:34 +00:00
|
|
|
namespace ANX.Framework.NonXNA
|
2011-10-31 05:36:24 +00:00
|
|
|
{
|
2012-08-09 09:45:04 +00:00
|
|
|
public interface IRenderSystemCreator : ICreator
|
|
|
|
{
|
2012-09-03 21:54:12 +00:00
|
|
|
INativeGraphicsDevice CreateGraphicsDevice(PresentationParameters presentationParameters);
|
2011-10-31 05:36:24 +00:00
|
|
|
|
2012-09-03 21:54:12 +00:00
|
|
|
INativeTexture2D CreateTexture(GraphicsDevice graphics, SurfaceFormat surfaceFormat, int width, int height, int mipCount);
|
2011-10-31 05:36:24 +00:00
|
|
|
|
2012-09-03 21:54:12 +00:00
|
|
|
INativeRenderTarget2D CreateRenderTarget(GraphicsDevice graphics, int width, int height, bool mipMap,
|
|
|
|
SurfaceFormat preferredFormat, DepthFormat preferredDepthFormat, int preferredMultiSampleCount,
|
2012-08-09 09:45:04 +00:00
|
|
|
RenderTargetUsage usage);
|
2011-10-31 05:36:24 +00:00
|
|
|
|
2015-10-04 21:30:00 +02:00
|
|
|
INativeIndexBuffer CreateIndexBuffer(GraphicsDevice graphics, IndexBuffer managedBuffer, IndexElementSize size, int indexCount, BufferUsage usage);
|
2011-11-28 16:06:52 +00:00
|
|
|
|
2015-10-04 21:30:00 +02:00
|
|
|
INativeIndexBuffer CreateDynamicIndexBuffer(GraphicsDevice graphics, IndexBuffer managedBuffer, IndexElementSize size, int indexCount, BufferUsage usage);
|
|
|
|
|
|
|
|
INativeVertexBuffer CreateVertexBuffer(GraphicsDevice graphics, VertexBuffer managedBuffer, VertexDeclaration vertexDeclaration, int vertexCount, BufferUsage usage);
|
|
|
|
|
|
|
|
INativeVertexBuffer CreateDynamicVertexBuffer(GraphicsDevice graphics, DynamicVertexBuffer managedBuffer, VertexDeclaration vertexDeclaration, int vertexCount, BufferUsage usage);
|
2011-10-31 05:36:24 +00:00
|
|
|
|
2012-08-29 10:48:21 +00:00
|
|
|
#if XNAEXT
|
|
|
|
INativeConstantBuffer CreateConstantBuffer(GraphicsDevice graphics, ConstantBuffer managedBuffer, BufferUsage usage);
|
|
|
|
#endif
|
|
|
|
|
2012-09-03 21:54:12 +00:00
|
|
|
INativeEffect CreateEffect(GraphicsDevice graphics, Effect managedEffect, Stream byteCode);
|
|
|
|
INativeEffect CreateEffect(GraphicsDevice graphics, Effect managedEffect, Stream vertexShaderByteCode,
|
|
|
|
Stream pixelShaderByteCode);
|
|
|
|
|
|
|
|
IOcclusionQuery CreateOcclusionQuery();
|
2011-10-31 05:36:24 +00:00
|
|
|
|
2012-08-27 18:42:54 +00:00
|
|
|
bool IsLanguageSupported(EffectSourceLanguage sourceLanguage);
|
|
|
|
|
2012-08-09 09:45:04 +00:00
|
|
|
INativeBlendState CreateBlendState();
|
|
|
|
INativeRasterizerState CreateRasterizerState();
|
|
|
|
INativeDepthStencilState CreateDepthStencilState();
|
|
|
|
INativeSamplerState CreateSamplerState();
|
2011-10-31 05:36:24 +00:00
|
|
|
|
2012-08-09 09:45:04 +00:00
|
|
|
byte[] GetShaderByteCode(PreDefinedShader type);
|
2012-08-29 12:11:03 +00:00
|
|
|
EffectSourceLanguage GetStockShaderSourceLanguage { get; }
|
2011-11-03 12:37:07 +00:00
|
|
|
|
2015-10-24 19:26:27 +02:00
|
|
|
ReadOnlyCollection<INativeGraphicsAdapter> GetAdapterList();
|
2012-09-04 21:36:46 +00:00
|
|
|
|
|
|
|
void SetTextureSampler(int index, Texture value);
|
2012-08-09 09:45:04 +00:00
|
|
|
}
|
2011-10-31 05:36:24 +00:00
|
|
|
}
|