public LauncherMenuViewModel(MenuItemViewModel vm, Util.Math.Point screenSize)
        {
            _babumiConfigRepository = ServiceLocator.Instance.GetInstance <BabumiConfigRepository>();
            MenuVM          = vm;
            IsOpen          = true;
            ScreenSize      = screenSize;
            this.ItemSource = new List <RadialMenu.Controls.RadialMenuItem>();

            Func <LauncherSettingsDataSet, Tuple <WrapPanel, ICommand> > createItem = new Func <LauncherSettingsDataSet, Tuple <WrapPanel, ICommand> >((LauncherSettingsDataSet item ) =>
            {
                var wrapPanel = new WrapPanel();
                System.Windows.Controls.Image soruce = new System.Windows.Controls.Image();
                soruce.Source         = Imaging.CreateBitmapSourceFromHIcon(Icon.ExtractAssociatedIcon(item.Path).Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
                wrapPanel.Orientation = Orientation.Vertical;
                wrapPanel.Children.Add(soruce);
                wrapPanel.Children.Add(new TextBlock {
                    Text = item.DisplayName
                });
                return(new Tuple <WrapPanel, ICommand>(wrapPanel, new ViewModelCommand(() => { Process.Start(item.Path); })));
            });

            foreach (var launcherItem in _babumiConfigRepository.GetConfig().Dataset)
            {
                var item = createItem(launcherItem);
                this.ItemSource.Add(new RadialMenu.Controls.RadialMenuItem
                {
                    Content = item.Item1,
                    Command = item.Item2
                });
            }
        }
        /// <summary>
        /// 初期化
        /// </summary>
        /// <param name="name">キャラクター名</param>
        /// <param name="screenSize">スクリーンサイズ</param>
        public void Initialize(Util.Math.Point screenSize)
        {
            //!< 初期化
            Initialized = true;
            //!< スクリーンサイズ設定
            _screenSize = screenSize;
            //!< キャラクターをロードする
            CharacterLoad(_babumiConfig.ModelJsonPath);
            //!< Debugの時だけバージョンチェックをする
            if (_babumiConfig.RequiredVersion > GraphicsManager.Instance.GetVersion())
            {
                return; //!< GL4.3以下なので処理をしない
            }
            _bitmapSource = new WriteableBitmap((int)_screenSize.X, (int)_screenSize.Y, 96, 96, PixelFormats.Bgra32, null);
            _sourceRect   = new Int32Rect(0, 0, (int)_screenSize.X - 20, (int)_screenSize.Y - 20);

            _renderTarget = new RenderTarget {
                Width = (uint)_screenSize.X, Height = (uint)_screenSize.Y
            };
            _renderTarget.Create();

            _sssbObject = new SSBObject();
            _sssbObject.Create((int)_screenSize.X * (int)_screenSize.Y * sizeof(uint));

            _computeShader = new Shader();
            _computeShader.CreateShader("Res/computeShader.fx", Shader.Type.ComputeShader);
            _computeShader.Attach();

            GraphicsManager.Instance.SetRenderTarget(_renderTarget);
        }