Beispiel #1
0
        public UserInterfaceScene(GraphicsDevice graphicsDevice,
                                  IUserInterfaceRenderer userInterfaceRenderer,
                                  IContentLayoutEngine contentLayoutEngine,
                                  IFontProvider fontProvider,
                                  IStyleConfigurator styleConfigurator,
                                  IAnimationFactory animationFactory = null,
                                  IUserInterfaceAudio audio          = null,
                                  IDoubleBuffer doubleBuffer         = null,
                                  RenderTarget2D renderTarget        = null)
        {
            DrawBelow   = true;
            UpdateBelow = false;

            Animations     = animationFactory ?? new AnimationFactory();
            GraphicsDevice = graphicsDevice;

            renderContext = new UserInterfaceRenderContext(
                graphicsDevice,
                contentLayoutEngine,
                userInterfaceRenderer,
                styleConfigurator,
                fontProvider,
                Animations,
                renderTarget,
                null,
                doubleBuffer);

            driver = new UserInterfaceSceneDriver(
                renderContext,
                styleConfigurator,
                fontProvider,
                audio);

            driver.ScreenArea = new Rectangle(Point.Zero,
                                              GraphicsDeviceRenderTargetSize);

            driver.Desktop.Empty += () =>
            {
                if (ExitWhenEmpty)
                {
                    IsFinished = true;
                }
            };

            BlendState = new BlendState
            {
                ColorSourceBlend      = Blend.SourceAlpha,
                ColorDestinationBlend = Blend.InverseSourceAlpha,
                AlphaSourceBlend      = Blend.One,
                AlphaDestinationBlend = Blend.InverseSourceAlpha,
            };
        }
        public LabelWithLocalizationTest()
        {
            fontCore = new FakeFontCore("default");
            font     = new Font(fontCore);

            fontProvider = new FontProvider();
            fontProvider.Add("default", font);

            textRepo = new TextRepository();

            contentLayout = new LocalizedContentLayoutEngine(
                new ContentLayoutEngine(fontProvider), textRepo);

            context = CommonMocks.RenderContext(contentLayout);
        }
        public UserInterfaceRenderContext(UserInterfaceRenderContext parent,
                                          SpriteBatch spriteBatch,
                                          RenderTarget2D renderTarget)
        {
            this.GraphicsDevice = parent.GraphicsDevice;
            this.SpriteBatch    = spriteBatch;
            this.RenderTarget   = renderTarget;

            this.contentLayoutEngine   = parent.contentLayoutEngine;
            this.GameTime              = parent.GameTime;
            this.UserInterfaceRenderer = parent.UserInterfaceRenderer;
            this.DoubleBuffer          = parent.DoubleBuffer;

            this.WorkspaceIsActive = parent.WorkspaceIsActive;

            this.parentRenderContext = parent;
        }
 public UserInterfaceRenderContext(
     GraphicsDevice graphicsDevice,
     IContentLayoutEngine contentLayoutEngine,
     IUserInterfaceRenderer uiRenderer,
     IStyleConfigurator styleConfigurator,
     IFontProvider fonts,
     IAnimationFactory animation,
     RenderTarget2D renderTarget = null,
     SpriteBatch spriteBatch     = null,
     IDoubleBuffer doubleBuffer  = null)
 {
     this.GraphicsDevice        = graphicsDevice;
     this.contentLayoutEngine   = contentLayoutEngine;
     this.UserInterfaceRenderer = uiRenderer;
     this.fonts            = fonts;
     this.animationFactory = animation;
     this.RenderTarget     = renderTarget;
     this.SpriteBatch      = spriteBatch ?? new SpriteBatch(graphicsDevice);
     this.DoubleBuffer     = doubleBuffer ?? new DoubleBuffer();
 }
Beispiel #5
0
        public static Mock <IUserInterfaceRenderContext> RenderContext(IContentLayoutEngine contentLayoutEngine = null)
        {
            var styleRenderer = new Mock <IComponentStyleRenderer>();
            var uiRenderer    = new UserInterfaceRenderer(styleRenderer.Object);

            var result = new Mock <IUserInterfaceRenderContext>();

            result.SetupGet(x => x.UserInterfaceRenderer)
            .Returns(uiRenderer);

            contentLayoutEngine = contentLayoutEngine ??
                                  new ContentLayoutEngine(FontProvider().Object);

            result
            .Setup(x => x.CreateContentLayout(It.IsAny <string>(), It.IsAny <ContentLayoutOptions>(), It.IsAny <bool>()))
            .Returns <string, ContentLayoutOptions, bool>((text, options, localize) => contentLayoutEngine.LayoutContent(text, options, localize));

            result.SetupGet(x => x.GameTime).Returns(new GameTime());

            return(result);
        }
Beispiel #6
0
        public TestUIDriver(IRenderable app,
                            IStyleConfigurator styleConfigurator     = null,
                            IFontProvider fontProvider               = null,
                            IContentLayoutEngine contentLayoutEngine = null)
        {
            var renderContext = CommonMocks.RenderContext(contentLayoutEngine).Object;

            uiDriver = new UserInterfaceSceneDriver(
                renderContext,
                styleConfigurator ?? new ThemeStyler(new ThemeCollection {
                ["default"] = Theme.CreateDefaultTheme()
            }),
                fontProvider ?? CommonMocks.FontProvider().Object);

            defaultWorkspace = new Workspace("default", app);

            input = new ManualInputState();

            uiDriver.Desktop.PushWorkspace(defaultWorkspace);

            DoLayout();
        }
Beispiel #7
0
 public ContentLabel(IContentLayoutEngine layoutEngine, ITextRepository textRepo)
 {
     this.layoutEngine = layoutEngine;
     this.textRepo     = textRepo;
 }
Beispiel #8
0
 public ConsoleTextEngine(IFontProvider fontProvider)
 {
     consoleFontProvider = fontProvider;
     contentLayoutEngine = new ContentLayoutEngine(consoleFontProvider);
 }
 public LocalizedContentLayoutEngine(IContentLayoutEngine baseEngine, ITextRepository textRepo)
 {
     this.baseEngine = baseEngine;
     this.textRepo   = textRepo;
 }
 public ContentLayoutEngineLogger(IContentLayoutEngine engine)
 {
     this.engine = engine;
 }
Beispiel #11
0
 public ConsoleTextEngine(IContentProvider contentProvider)
 {
     consoleFontProvider = new ConsoleFontProvider(contentProvider);
     contentLayoutEngine = new ContentLayoutEngine(consoleFontProvider);
 }