本文整理汇总了C#中SharpDX.Direct3D9.Device.SetTransform方法的典型用法代码示例。如果您正苦于以下问题:C# Device.SetTransform方法的具体用法?C# Device.SetTransform怎么用?C# Device.SetTransform使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SharpDX.Direct3D9.Device
的用法示例。
在下文中一共展示了Device.SetTransform方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Initialize
public void Initialize()
{
Direct3D = new Direct3D();
Device = new Device(Direct3D, 0, DeviceType.Hardware, dxViewport.Handle, CreateFlags.HardwareVertexProcessing, new PresentParameters(dxViewport.Width, dxViewport.Height));
Device.SetTransform(TransformState.Projection, Matrix.OrthoLH(dxViewport.Width, dxViewport.Height, -1, 1));
Device.SetRenderState(RenderState.AlphaBlendEnable, true);
Device.SetRenderState(RenderState.SourceBlend, Blend.SourceAlpha);
Device.SetRenderState(RenderState.DestinationBlend, Blend.InverseSourceAlpha);
Content = new ContentManager(Device);
spriteBatch = new SpriteBatch(Device, Content);
Initialized = true;
}
示例2: Main
public static void Main()
{
var form = new RenderForm("SimpleD3D9 by C#") { ClientSize = new Size(1024, 768) };
var device = new D3D9Device(
new Direct3D(),
CUDADevice.Default.ID,
DeviceType.Hardware,
form.Handle,
CreateFlags.HardwareVertexProcessing,
new PresentParameters(form.ClientSize.Width, form.ClientSize.Height));
var vertices = new VertexBuffer(device, Utilities.SizeOf<Vector4>()*Total, Usage.WriteOnly,
VertexFormat.None, Pool.Default);
var vertexElems = new []
{
new VertexElement(0, 0, DeclarationType.Float3, DeclarationMethod.Default, DeclarationUsage.Position, 0),
new VertexElement(0, 12, DeclarationType.Ubyte4, DeclarationMethod.Default, DeclarationUsage.Color, 0),
VertexElement.VertexDeclarationEnd
};
var vertexDecl = new VertexDeclaration(device, vertexElems);
var worker = Worker.CreateByFunc(() => Generate(device));
var updater = new SimpleD3D9(GPUModuleTarget.Worker(worker));
var view = Matrix.LookAtLH(
new Vector3(0.0f, 3.0f, -2.0f), // the camera position
new Vector3(0.0f, 0.0f, 0.0f), // the look-at position
new Vector3(0.0f, 1.0f, 0.0f)); // the up direction
var proj = Matrix.PerspectiveFovLH(
(float) (Math.PI/4.0), // the horizontal field of view
1.0f,
1.0f,
100.0f);
device.SetTransform(TransformState.View, view);
device.SetTransform(TransformState.Projection, proj);
device.SetRenderState(RenderState.Lighting, false);
var vbres = RegisterVerticesResource(vertices);
var clock = System.Diagnostics.Stopwatch.StartNew();
RenderLoop.Run(form, () =>
{
var time = (float) (clock.Elapsed.TotalMilliseconds)/300.0f;
updater.Update(vbres, time);
// Now normal D3D9 rendering procedure.
device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, new ColorBGRA(0, 40, 100, 0), 1.0f, 0);
device.BeginScene();
device.VertexDeclaration = vertexDecl;
device.SetStreamSource(0, vertices, 0, Utilities.SizeOf<Vector4>());
// we use PointList as the graphics primitives
device.DrawPrimitives(SharpDX.Direct3D9.PrimitiveType.PointList, 0, Total);
device.EndScene();
device.Present();
});
UnregisterVerticesResource(vbres);
updater.Dispose();
worker.Dispose();
vertexDecl.Dispose();
vertices.Dispose();
device.Dispose();
form.Dispose();
}