Artemis.Models.EffectModel.Render C# (CSharp) Метод

Render() публичный Метод

Renders the currently active profile
public Render ( RenderFrame frame, bool keyboardOnly ) : void
frame Artemis.Managers.RenderFrame
keyboardOnly bool
Результат void
        public virtual void Render(RenderFrame frame, bool keyboardOnly)
        {
            if (Profile == null || DataModel == null || MainManager.DeviceManager.ActiveKeyboard == null)
                return;

            lock (DataModel)
            {
                // Get all enabled layers who's conditions are met
                var renderLayers = GetRenderLayers(keyboardOnly);

                // Render the keyboard layer-by-layer
                var keyboardRect = MainManager.DeviceManager.ActiveKeyboard.KeyboardRectangle(KeyboardScale);
                using (var g = Graphics.FromImage(frame.KeyboardBitmap))
                {
                    Profile?.DrawLayers(g, renderLayers.Where(rl => rl.LayerType.DrawType == DrawType.Keyboard),
                        DataModel, keyboardRect, false, true);
                }
                // Render mice layer-by-layer
                var devRec = new Rect(0, 0, 40, 40);
                using (var g = Graphics.FromImage(frame.MouseBitmap))
                {
                    Profile?.DrawLayers(g, renderLayers.Where(rl => rl.LayerType.DrawType == DrawType.Mouse), DataModel,
                        devRec, false, true);
                }
                // Render headsets layer-by-layer
                using (var g = Graphics.FromImage(frame.HeadsetBitmap))
                {
                    Profile?.DrawLayers(g, renderLayers.Where(rl => rl.LayerType.DrawType == DrawType.Headset),
                        DataModel, devRec, false, true);
                }
                // Render generic devices layer-by-layer
                using (var g = Graphics.FromImage(frame.GenericBitmap))
                {
                    Profile?.DrawLayers(g, renderLayers.Where(rl => rl.LayerType.DrawType == DrawType.Generic),
                        DataModel, devRec, false, true);
                }
                // Render mousemats layer-by-layer
                using (var g = Graphics.FromImage(frame.MousematBitmap))
                {
                    Profile?.DrawLayers(g, renderLayers.Where(rl => rl.LayerType.DrawType == DrawType.Mousemat),
                        DataModel, devRec, false, true);
                }

                // Trace debugging
                if (DateTime.Now.AddSeconds(-2) <= LastTrace)
                    return;
                LastTrace = DateTime.Now;
                MainManager.Logger.Trace("Effect datamodel as JSON: \r\n{0}",
                    JsonConvert.SerializeObject(DataModel, Formatting.Indented));
                MainManager.Logger.Trace("Effect {0} has to render {1} layers", Name, renderLayers.Count);
                foreach (var renderLayer in renderLayers)
                    MainManager.Logger.Trace("- Layer name: {0}, layer type: {1}", renderLayer.Name,
                        renderLayer.LayerType);
            }
        }