예제 #1
0
        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();
            }
        }
예제 #2
0
 public void Draw(ImageDisplayParameters displayParameters)
 {
     _Renderer.Draw(displayParameters);
 }