public void Draw(ImageDisplayParameters displayParameters) { _Device.Clear(ClearFlags.Target, Color.Beige.ToArgb(), 1.0f, 0); if (_Device.BeginScene().IsSuccess) { SetupMatrices(displayParameters.ViewerPosition); _Device.SetStreamSource(0, _VertexBuffer, 0, _VertexStride); _Device.VertexFormat = CUSTOMVERTEXFORMAT; for (int i = 0; i < 4; i++) { switch (i) { case 0: _Effect.SetTexture(_Effect.GetParameter(null, "g_Texture"), _TexTopLeft); break; case 1: _Effect.SetTexture(_Effect.GetParameter(null, "g_Texture"), _TexTopRight); break; case 2: _Effect.SetTexture(_Effect.GetParameter(null, "g_Texture"), _TexLowerLeft); break; case 3: _Effect.SetTexture(_Effect.GetParameter(null, "g_Texture"), _TexLowerRight); break; } _Effect.SetValue(_Effect.GetParameter(null, "g_DisplayRangeH"), displayParameters.DisplayLimitHigh); _Effect.SetValue(_Effect.GetParameter(null, "g_DisplayRangeL"), displayParameters.DisplayLimitLow); _Effect.SetValue(_Effect.GetParameter(null, "g_mWorldViewProjection"), _WorldViewProj); _Effect.Technique = _Effect.GetTechnique("DefaultRenderingTechnique"); if (Result.Last.IsFailure) { return; } _Effect.Begin(); if (Result.Last.IsFailure) { return; } _Effect.BeginPass(0); _Device.DrawPrimitives(PrimitiveType.TriangleStrip, i * 4, 2); _Effect.EndPass(); _Effect.End(); } _Device.EndScene(); } }
public void Draw(ImageDisplayParameters displayParameters) { _Renderer.Draw(displayParameters); }