Esempio n. 1
0
 //
 public static void SetInstalledTypefaceProvider(IInstalledTypefaceProvider provider)
 {
     //warning if duplicate
     if (s_installedTypefaceProvider != null)
     {
         //TODO: review here again
         return;
     }
     s_installedTypefaceProvider = provider;
 }
Esempio n. 2
0
        public static void CreateCanvasControlOnExistingControl(
            Control landingControl,
            int xpos, int ypos,
            int w, int h,
            InnerViewportKind internalViewportKind,
            out UISurfaceViewportControl canvasViewport)
        {
            //1. init
            InitWinform();
            IInstalledTypefaceProvider fontLoader = s_fontstore;
            //2.
            ITextService textService = null;

            switch (internalViewportKind)
            {
            default:
                //gdi, gdi on gles
                textService = PixelFarm.Drawing.WinGdi.WinGdiPlusPlatform.GetTextService();
                break;

            case InnerViewportKind.PureAgg:
            case InnerViewportKind.AggOnGLES:
            case InnerViewportKind.GLES:
                textService = new OpenFontTextService();
                break;
            }

            PixelFarm.Drawing.WinGdi.WinGdiPlusPlatform.SetInstalledTypefaceProvider(fontLoader);
            //---------------------------------------------------------------------------

            MyRootGraphic myRootGfx = new MyRootGraphic(w, h, textService);
            //---------------------------------------------------------------------------

            var       innerViewport        = canvasViewport = new UISurfaceViewportControl();
            Rectangle screenClientAreaRect = Conv.ToRect(Screen.PrimaryScreen.WorkingArea);

            canvasViewport.InitRootGraphics(myRootGfx, myRootGfx.TopWinEventPortal, internalViewportKind);
            canvasViewport.Bounds =
                new System.Drawing.Rectangle(xpos, ypos,
                                             screenClientAreaRect.Width,
                                             screenClientAreaRect.Height);

            landingControl.Controls.Add(canvasViewport);
            //
            Form ownerForm = landingControl.FindForm();

            if (ownerForm != null)
            {
                ownerForm.FormClosing += (s, e) =>
                {
                    innerViewport.Close();
                };
            }
        }
Esempio n. 3
0
        static void InitWinform()
        {
            if (s_platform != null)
            {
                return;
            }
            //----------------------------------------------------
            s_platform = new UIPlatformWinForm();
            var instTypefaces = new InstalledTypefaceCollection();

            instTypefaces.LoadSystemFonts();
            s_fontstore = instTypefaces;
        }
Esempio n. 4
0
 public static void SetInstalledTypefaceProvider(IInstalledTypefaceProvider provider)
 {
     WinGdiFontFace.SetInstalledTypefaceProvider(provider);
 }
Esempio n. 5
0
 public static void SetInstalledTypefaceProvider(IInstalledTypefaceProvider fontLoader)
 {
     s_installedTypefaceProvider = fontLoader;
 }
Esempio n. 6
0
 public static void SetInstalledTypefaceProvider(IInstalledTypefaceProvider provider)
 {
     s_installedTypefaceProvider = provider;
 }
Esempio n. 7
0
        public static void CreateCanvasControlOnExistingControl(
            Control landingControl,
            int xpos, int ypos,
            int w, int h,
            InnerViewportKind internalViewportKind,
            out GraphicsViewRoot view_root)
        {
            //1. init
            InitWinform();
            IInstalledTypefaceProvider fontLoader = YourImplementation.CommonTextServiceSetup.FontLoader;

            //2.


            switch (internalViewportKind)
            {
            default:
                //gdi, gdi on gles


                break;

            case InnerViewportKind.PureAgg:
            case InnerViewportKind.AggOnGLES:
            case InnerViewportKind.GLES:
            {
                var openFontTextService = new Typography.Text.OpenFontTextService();
                openFontTextService.SvgBmpBuilder = PaintLab.SvgBuilderHelper.ParseAndRenderSvg;

                PixelFarm.Drawing.GLES2.GLES2Platform.TextService = openFontTextService;

                Typography.Text.GlobalTextService.TxtClient = openFontTextService.CreateNewServiceClient();
            }
            break;
            }

            PixelFarm.Drawing.WinGdi.WinGdiPlusPlatform.SetInstalledTypefaceProvider(fontLoader);
            //---------------------------------------------------------------------------
            //3. root graphics

            PixelFarm.Drawing.Rectangle screenClientAreaRect = Conv.ToRect(Screen.PrimaryScreen.WorkingArea);
            w = screenClientAreaRect.Width;
            h = screenClientAreaRect.Height;



            MyRootGraphic myRootGfx = new MyRootGraphic(w, h);

            //4. create event bridge that will bridge from native window event to root graphics
            AbstractTopWindowBridge bridge = GetTopWindowBridge(internalViewportKind, myRootGfx, myRootGfx.TopWinEventPortal);

            //5. actualWinUI is platform specific
            var actualWinUI = new LayoutFarm.UI.MyWinFormsControl();

            actualWinUI.Size = new System.Drawing.Size(w, h);
            landingControl.Controls.Add(actualWinUI);


            //so we create abstraction of actual UI
            IGpuOpenGLSurfaceView viewAbstraction = actualWinUI.CreateWindowWrapper(bridge);

            var viewRoot = view_root = new GraphicsViewRoot(
                screenClientAreaRect.Width,
                screenClientAreaRect.Height);

            view_root.InitRootGraphics(
                myRootGfx,
                myRootGfx.TopWinEventPortal,
                internalViewportKind,
                viewAbstraction,
                bridge);

            //TODO: review here again
            myRootGfx.SetDrawboardReqDelegate(view_root.GetDrawBoard);
            //------
            //TODO: review here
            view_root.SetBounds(xpos, ypos,
                                screenClientAreaRect.Width,
                                screenClientAreaRect.Height);

            //
            Form ownerForm = landingControl.FindForm();

            if (ownerForm != null)
            {
                ownerForm.FormClosing += (s, e) =>
                {
                    //TODO: review here
                    viewRoot.Close();
                };
            }
        }
Esempio n. 8
0
 public static void SetInstalledTypefaceProvider(IInstalledTypefaceProvider provider)
 {
     // WinGdiFontFace.SetFontLoader(fontLoader);
 }
Esempio n. 9
0
 public static void SetInstalledTypefaceProvider(IInstalledTypefaceProvider provider)
 {
     GLES2PlatformFontMx.SetInstalledTypefaceProvider(provider);
 }
Esempio n. 10
0
 protected override void OnDispose()
 {
     s_installedTypefaceProvider = null;
 }