Silverlight 5: GraphicsDevice всегда равен нулю - PullRequest
0 голосов
/ 01 марта 2012

Я занимаюсь разработкой 3D-приложений с использованием Silverlight 5.0.

Для меня System.Windows.Graphics.GraphicsDeviceManager.Current.GraphicsDevice всегда показывает null.

Вот мой код

private void DrawingSurface_Loaded(object sender, RoutedEventArgs e)
    {
        if (GraphicsDeviceManager.Current.RenderMode != RenderMode.Hardware)
        {
            if (GraphicsDeviceManager.Current.RenderModeReason == RenderModeReason.SecurityBlocked)
            {
                throw new  Exception();
            }
        }


        GraphicsDevice device = System.Windows.Graphics.GraphicsDeviceManager.Current.GraphicsDevice;

        _vertexBuffer = StreamHelper.ToMesh(device, "cube.obj");

        _effect = new BasicEffect(GraphicsDeviceManager.Current.GraphicsDevice);
        _effect.Texture = StreamHelper.ToTexture2D(device, "Tulips.jpg");
        _effect.TextureEnabled = true;
        _effect.World = Matrix.Identity;
        _effect.View = Matrix.CreateLookAt(new Vector3(5.0f, 5.0f, 5.0f), Vector3.Zero, Vector3.Up);
        _effect.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, 1.667f, 1.0f, 10.0f);
    }

Может ли кто-нибудь помочь мне в этом.

Ответы [ 2 ]

1 голос
/ 08 марта 2012

Вы разрешили 3D-графику? Если нет, запустите Silverlight.Configuration.exe (для меня он находится в «C: \ Program Files (x86) \ Microsoft Silverlight \ 5.0.61118.0 \») и выберите вкладку «Разрешения». Там разрешить 3D-графику.

0 голосов
/ 20 марта 2012

Возможно, вы захотите проверить некоторые другие значения GraphicsDeviceManager.Current.RenderModeReason.Как обсуждено немного больше в этом посте: http://blogs.msdn.com/b/eternalcoding/archive/2011/10/18/some-reasons-why-my-3d-is-not-working-with-silverlight-5.aspx

...