protected BaseRenderContext(IViewPerspective perspective,
                             IVisualSurrogateProvider surrogateProvider,
                             IThemeProvider themeProvider,
                             IVisualLineage visualLineage,
                             Dictionary <IVisualElement, ValueCube> renderPositions,
                             ILayoutQueue layoutQueue)
     : this(perspective, surrogateProvider,
            renderPositions,
            new Dictionary <IVisualElement, ValueSize>(),
            themeProvider, visualLineage, layoutQueue)
 {
 }
        public GraphicsRenderer(GraphicsDevice device, SpriteBatch spriteBatch, IViewPerspective perspective)
        {
            _camera      = new Camera(350, 0);
            _spriteBatch = spriteBatch;
            _device      = device;
            PushPerspective(perspective);

            if (_perspective.Count != 1)
            {
                throw new InvalidOperationException("Bad internal state: renderer perspective stack should be of size 1");
            }
        }
Пример #3
0
 public GLRenderContext(IViewPerspective perspective,
                        IGLContext openGlContext,
                        IFontProvider fontProvider,
                        IVisualSurrogateProvider surrogateProvider,
                        IThemeProvider themeProvider,
                        IVisualLineage visualLineage,
                        Dictionary <IVisualElement, ValueCube> renderPositions,
                        ILayoutQueue layoutQueue)
     : base(perspective, surrogateProvider, themeProvider,
            visualLineage, renderPositions, layoutQueue)
 {
     _openGlContext = openGlContext;
     _fontProvider  = fontProvider;
 }
Пример #4
0
 public GdiRenderContext(IViewPerspective perspective,
                         Graphics nullGraphics,
                         IVisualSurrogateProvider surrogateProvider,
                         Dictionary <IVisualElement, ValueSize> lastMeasures,
                         Dictionary <IVisualElement, ValueCube> renderPositions,
                         IThemeProvider themeProvider,
                         IVisualLineage visualLineage,
                         ILayoutQueue layoutQueue)
     : base(perspective, surrogateProvider, renderPositions,
            lastMeasures, themeProvider, visualLineage, layoutQueue)
 {
     _testPen = new Pen(Color.Yellow, 1);
     Graphics = nullGraphics;
 }
Пример #5
0
 public GdiRenderKit(IViewPerspective viewPerspective,
                     IWindowProvider <IVisualHost> windowProvider,
                     IResolver resolver,
                     IThemeProvider styleContext,
                     IVisualBootstrapper visualBootstrapper,
                     IViewInflater viewInflater,
                     IImageProvider imageProvider)
     : base(resolver, visualBootstrapper, viewInflater,
            new Dictionary <IVisualElement, ValueCube>(), imageProvider)
 {
     _windowProvider = windowProvider;
     Init(windowProvider, styleContext, viewPerspective, _renderPositions,
          ref _imageProvider !, ref _measureContext !, ref _renderContext !);
 }
 public AndroidRenderContext(IViewPerspective perspective,
                             AndroidFontProvider fontProvider,
                             IViewState viewState,
                             IVisualSurrogateProvider surrogateProvider,
                             Dictionary <IVisualElement, ValueCube> renderPositions,
                             Dictionary <IVisualElement, ValueSize> lastMeasurements,
                             IThemeProvider themeProvider,
                             IVisualLineage visualLineage,
                             ILayoutQueue layoutQueue)
     : base(perspective, surrogateProvider, renderPositions, lastMeasurements,
            themeProvider, visualLineage, layoutQueue)
 {
     _fontProvider = fontProvider;
     _paint        = new Paint();
     ViewState     = viewState;
 }
        public AndroidRenderKit(IViewPerspective viewPerspective,
                                IViewState viewState,
                                AndroidFontProvider fontProvider,
                                IWindowManager windowManager,
                                IUiProvider uiProvider,
                                IThemeProvider themeProvider,
                                DisplayMetrics displayMetrics,
                                IResolver container,
                                IImageProvider imageProvider)
            : base(imageProvider, Serializer,
                   new SvgPathBuilder(imageProvider, Serializer), container)
        {
            ViewState      = viewState;
            DisplayMetrics = displayMetrics;

            Init(windowManager, themeProvider, viewPerspective, displayMetrics,
                 fontProvider, viewState, uiProvider,
                 ref _measureContext !, ref _renderContext !, ref _refreshRenderContext !);
        }
Пример #8
0
        //public StaticGdiRenderKit(IViewPerspective viewPerspective,
        //                          IMultiSerializer xmlSerializer)
        //: this(viewPerspective, xmlSerializer)
        //{}

        public StaticGdiRenderKit(IViewPerspective viewPerspective,
                                  IMultiSerializer xmlSerializer)
            : base(new GdiImageProvider(), xmlSerializer,
                   NullSvgBuilder.Instance, null)
        {
            var defaultSurrogates = new BaseSurrogateProvider();

            var lastMeasure   = new Dictionary <IVisualElement, ValueSize>();
            var visualLineage = new VisualLineage();
            var layoutQueue   = new LayoutQueue();

            MeasureContext = new GdiMeasureContext(defaultSurrogates, lastMeasure,
                                                   BaselineThemeProvider.Instance, visualLineage, layoutQueue);

            RenderContext = new GdiRenderContext(viewPerspective,
                                                 MeasureContext.Graphics, defaultSurrogates, lastMeasure,
                                                 new Dictionary <IVisualElement, ValueCube>(),
                                                 BaselineThemeProvider.Instance, visualLineage, layoutQueue);
        }
        protected BaseRenderContext(IViewPerspective perspective,
                                    IVisualSurrogateProvider surrogateProvider,
                                    Dictionary <IVisualElement, ValueCube> renderPositions,
                                    Dictionary <IVisualElement, ValueSize> lastMeasurements,
                                    IThemeProvider themeProvider,
                                    IVisualLineage visualLineage,
                                    ILayoutQueue layoutQueue)
            : base(lastMeasurements, themeProvider, surrogateProvider,
                   visualLineage, layoutQueue)
        {
            RenderPositions     = renderPositions;
            LastRenderPositions = new Dictionary <IVisualElement, ValueCube>();

            _renderLock        = new Object();
            Perspective        = perspective;
            CurrentElementRect = ValueRenderRectangle.Empty;
            _locations         = new Stack <ValueRenderRectangle>();
            _locations.Push(CurrentElementRect);

            _boxModel = new BoxModelLayoutTree();
        }
        // TODO: Define custom render methods here with camera offsets applied

        public void PushPerspective([NotNull] IViewPerspective perspective) => _perspective.Push(perspective);