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); }