コード例 #1
0
        private void UpdateTargetVitals(NetworkMessageEventArgs e)
        {
            int         guid        = e.Message.Value <int>("object");
            WorldObject worldObject = lib.MyCore.WorldFilter[guid];

            if (worldObject == null)
            {
                return;
            }
            try
            {
                if (guid.Equals(lib.MyCore.Actions.CurrentSelection))
                {
                    bool flag = false;
                    if ((e.Message.Value <int>("flags") & 256) > 0)
                    {
                        int currentHealth  = e.Message.Value <int>("health");
                        int maxHealth      = e.Message.Value <int>("healthMax");
                        int currentStamina = e.Message.Value <int>("stamina");
                        int maxStamina     = e.Message.Value <int>("staminaMax");
                        int currentMana    = e.Message.Value <int>("mana");
                        int maxMana        = e.Message.Value <int>("manaMax");
                        TargetCache.AddOrUpdate(worldObject, currentHealth, maxHealth, currentStamina, maxStamina, currentMana, maxMana);
                        flag = true;
                    }
                    if (TargetSurface != null && flag)
                    {
                        TargetSurface.Invalidate();
                    }
                }
            }
            catch (Exception ex) { Repo.RecordException(ex); }
        }
コード例 #2
0
 protected override void UpdateOutputSurface()
 {
     base.UpdateOutputSurface();
     using (var targetResource = TargetSurface.QueryInterface <SharpDX.Direct3D11.Resource>())
         using (var cpuResource = CpuSurface.QueryInterface <SharpDX.Direct3D11.Resource>())
         {
             context.ResolveSubresource(targetResource, 0, cpuResource, 0, Format.B8G8R8A8_UNorm);
             context.Flush();
         }
 }
コード例 #3
0
        private void OnEngineEvent(MediaEngineEvent mediaevent, long param1, int param2)
        {
            switch (mediaevent)
            {
            case MediaEngineEvent.DurationChange:
                SetDuration(engine.Duration);
                break;

            case MediaEngineEvent.LoadStart:
                SetCurrentState(StreamPlayerState.LoadingSource);
                break;

            case MediaEngineEvent.LoadedMetadata:
                int x, y;
                engine.GetNativeVideoSize(out x, out y);
                using (var texture = new Texture2D(Device, new Texture2DDescription
                {
                    Format = Format.B8G8R8A8_UNorm,
                    Width = x,
                    Height = y,
                    ArraySize = 1,
                    MipLevels = 1,
                    SampleDescription = new SampleDescription
                    {
                        Count = 1
                    },
                    BindFlags = BindFlags.RenderTarget,
                }))
                {
                    TargetSurface?.Dispose();
                    TargetSurface = texture.QueryInterface <Surface>();
                    OnNewSurface(x, y);
                    SetCurrentTime(TimeSpan.Zero);
                }
                break;

            case MediaEngineEvent.CanPlay:
                SetCurrentState(StreamPlayerState.CanPlay);
                break;

            case MediaEngineEvent.CanPlayThrough:
                SetCurrentState(StreamPlayerState.CanPlayFully);
                break;

            case MediaEngineEvent.Error:
                // We don't want to throw on this thread, so instead break the debugger
                if (System.Diagnostics.Debugger.IsAttached)
                {
                    var exception = System.Runtime.InteropServices.Marshal.GetExceptionForHR(param2);
                    System.Diagnostics.Debugger.Break();
                }
                break;
            }
        }