Esempio n. 1
0
        public Engine(ObservableDictionary <string, D3D11HwndDescription> d3d11HwndDescriptions)
        {
            Console.WriteLine("\nMojo initializing...\n");

            try
            {
                D3D11.Initialize(out mDxgiFactory, out mD3D11Device);
                //Cuda.Initialize( mD3D11Device );
                //Thrust.Initialize();

                TileManager = new TileManager(new Interop.TileManager(mD3D11Device, mD3D11Device.ImmediateContext, Constants.ConstParameters));

                Tools = new ObservableDictionary <ViewerMode, ObservableDictionary <ToolMode, ITool> >
                {
                    {
                        ViewerMode.TileManager2D,
                        new ObservableDictionary <ToolMode, ITool>
                        {
                            { ToolMode.Null, new NullTool() },
                            { ToolMode.AdjustSegmentation, new AdjustSegmentationTool(TileManager, this) },
                            { ToolMode.MergeSegmentation, new MergeSegmentationTool(TileManager, this) },
                            { ToolMode.DrawMergeSegmentation, new DrawMergeSegmentationTool(TileManager, this) },
                            { ToolMode.SplitSegmentation, new SplitSegmentationTool(TileManager, this) }
                        }
                    }
                };

                RenderingStrategies = new ObservableDictionary <ViewerMode, ObservableDictionary <ToolMode, IRenderingStrategy> >
                {
                    {
                        ViewerMode.TileManager2D,
                        new ObservableDictionary <ToolMode, IRenderingStrategy>
                        {
                            { ToolMode.Null, new NullRenderingStrategy(mD3D11Device, mD3D11Device.ImmediateContext) },
                            { ToolMode.AdjustSegmentation, new AdjustSegmentationRenderingStrategy(mD3D11Device, mD3D11Device.ImmediateContext, TileManager) },
                            { ToolMode.MergeSegmentation, new MergeSegmentationRenderingStrategy(mD3D11Device, mD3D11Device.ImmediateContext, TileManager) },
                            { ToolMode.DrawMergeSegmentation, new DrawMergeSegmentationRenderingStrategy(mD3D11Device, mD3D11Device.ImmediateContext, TileManager) },
                            { ToolMode.SplitSegmentation, new SplitSegmentationRenderingStrategy(mD3D11Device, mD3D11Device.ImmediateContext, TileManager) }
                        }
                    }
                };

                Viewers = new ObservableDictionary <ViewerMode, Viewer>
                {
                    {
                        ViewerMode.TileManager2D,
                        new Viewer
                        {
                            D3D11RenderingPane = new D3D11RenderingPane(mDxgiFactory,
                                                                        mD3D11Device,
                                                                        mD3D11Device.ImmediateContext,
                                                                        d3d11HwndDescriptions.Get("TileManager2D"))
                            {
                                RenderingStrategy = RenderingStrategies.Internal[ViewerMode.TileManager2D].Internal[ToolMode.Null]
                            },
                            UserInputHandler = Tools.Internal[ViewerMode.TileManager2D].Internal[ToolMode.Null]
                        }
                    }
                };
            }
            catch (Exception e)
            {
                String errorMessage = "Error opening main window:\n\n" + e.Message + "\n\nYou might want to try one of the following:\n - Install the \"DirectX End-User Runtime\" (from the Microsoft website).\n - Install the latest graphics drivers for your graphics card.\n - Reinstall the latest Mojo release.";
                MessageBox.Show(errorMessage, "Initialization Error", MessageBoxButton.OK, MessageBoxImage.Error);
                Console.WriteLine(errorMessage);
                Application.Current.Shutdown(1);
            }
        }
Esempio n. 2
0
        public Engine( ObservableDictionary<string, D3D11HwndDescription> d3d11HwndDescriptions )
        {
            Console.WriteLine( "\nMojo initializing...\n" );

            try
            {

                D3D11.Initialize( out mDxgiFactory, out mD3D11Device );
                //Cuda.Initialize( mD3D11Device );
                //Thrust.Initialize();

                TileManager = new TileManager( new Interop.TileManager( mD3D11Device, mD3D11Device.ImmediateContext, Constants.ConstParameters ) );

                Tools = new ObservableDictionary<ViewerMode, ObservableDictionary<ToolMode, ITool>>
                        {
                            {
                                ViewerMode.TileManager2D,
                                new ObservableDictionary< ToolMode, ITool >
                                {
                                    { ToolMode.Null, new NullTool() },
                                    { ToolMode.AdjustSegmentation, new AdjustSegmentationTool( TileManager, this ) },
                                    { ToolMode.MergeSegmentation, new MergeSegmentationTool( TileManager, this ) },
                                    { ToolMode.DrawMergeSegmentation, new DrawMergeSegmentationTool( TileManager, this ) },
                                    { ToolMode.SplitSegmentation, new SplitSegmentationTool( TileManager, this ) }
                                }
                                }
                        };

                RenderingStrategies = new ObservableDictionary<ViewerMode, ObservableDictionary<ToolMode, IRenderingStrategy>>
                                      {
                                          {
                                              ViewerMode.TileManager2D,
                                              new ObservableDictionary< ToolMode, IRenderingStrategy >
                                              {
                                                  { ToolMode.Null, new NullRenderingStrategy( mD3D11Device, mD3D11Device.ImmediateContext ) },
                                                  { ToolMode.AdjustSegmentation, new AdjustSegmentationRenderingStrategy( mD3D11Device, mD3D11Device.ImmediateContext, TileManager ) },
                                                  { ToolMode.MergeSegmentation, new MergeSegmentationRenderingStrategy( mD3D11Device, mD3D11Device.ImmediateContext, TileManager ) },
                                                  { ToolMode.DrawMergeSegmentation, new DrawMergeSegmentationRenderingStrategy( mD3D11Device, mD3D11Device.ImmediateContext, TileManager ) },
                                                  { ToolMode.SplitSegmentation, new SplitSegmentationRenderingStrategy( mD3D11Device, mD3D11Device.ImmediateContext, TileManager ) }
                                              }
                                              }
                                      };

                Viewers = new ObservableDictionary<ViewerMode, Viewer>
                          {
                              {
                                  ViewerMode.TileManager2D,
                                  new Viewer
                                  {
                                      D3D11RenderingPane = new D3D11RenderingPane( mDxgiFactory,
                                                                                   mD3D11Device,
                                                                                   mD3D11Device.ImmediateContext,
                                                                                   d3d11HwndDescriptions.Get( "TileManager2D" ) )
                                                           {
                                                               RenderingStrategy = RenderingStrategies.Internal[ ViewerMode.TileManager2D ].Internal[ ToolMode.Null ]
                                                           },
                                      UserInputHandler = Tools.Internal[ ViewerMode.TileManager2D ].Internal[ ToolMode.Null ]
                                  }
                                  }
                          };
            }
            catch ( Exception e )
            {
                String errorMessage = "Error opening main window:\n\n" + e.Message + "\n\nYou might want to try one of the following:\n - Install the \"DirectX End-User Runtime\" (from the Microsoft website).\n - Install the latest graphics drivers for your graphics card.\n - Reinstall the latest Mojo release.";
                MessageBox.Show( errorMessage, "Initialization Error", MessageBoxButton.OK, MessageBoxImage.Error );
                Console.WriteLine( errorMessage );
                Application.Current.Shutdown( 1 );
            }
        }