Ejemplo n.º 1
0
        public override void Start()
        {
            base.Start();
            var uiComponent = Entity.Get <UIComponent>();

            _imageElement = uiComponent.Page.RootElement.VisualChildren.FirstOrDefault() as ImageElement;
            _width        = (uint)uiComponent.Resolution.X;
            _height       = (uint)uiComponent.Resolution.Y;
            _texture      = Texture.New2D(this.GraphicsDevice, (int)_width, (int)_height, Stride.Graphics.PixelFormat.B8G8R8A8_UNorm, TextureFlags.ShaderResource | TextureFlags.RenderTarget);
            _sprite       = new SpriteFromTexture();
            if (_renderer == null)
            {
                InitializeUltralight();
            }
            var session = new Session(_renderer, false, "");

            _view = new View(_renderer, _width, _height, true, session);
            _view.LoadUrl("file:///" + HtmlFile);

            bool loaded = false;

            _view.SetFinishLoadingCallback((data, caller, frameId, isMainFrame, url) =>
            {
                loaded = true;
            }, default);

            while (!loaded)
            {
                _renderer.Update();
                _renderer.Render();
            }
        }
Ejemplo n.º 2
0
        public override void Start()
        {
            base.Start();

            var uiComponent = Entity.Get <UIComponent>();

            _imageElement = uiComponent.Page.RootElement.VisualChildren.FirstOrDefault() as ImageElement;
            _width        = (int)uiComponent.Resolution.X;
            _height       = (int)uiComponent.Resolution.Y;
            _texture      = Texture.New2D(this.GraphicsDevice, _width, _height, Xenko.Graphics.PixelFormat.R8G8B8A8_UNorm, TextureFlags.ShaderResource | TextureFlags.RenderTarget);
            _sprite       = new SpriteFromTexture();
            if (!_rendererInitialized)
            {
                UltralightDll.InitializeApp(this.AssetDirectory);
                _rendererInitialized = true;
            }
            UltralightDll.CreateView(_width, _height, "file:///" + HtmlFile);
        }
Ejemplo n.º 3
0
        public void SpriteFromTextureTests()
        {
            PerformTest(game =>
            {
                var provider = new SpriteFromTexture();
                Assert.Equal(1, provider.SpritesCount);
                Assert.NotNull(provider.GetSprite());

                var sprite = provider.GetSprite();
                Assert.Null(sprite.Texture);
                Assert.Equal(new RectangleF(), sprite.Region);
                Assert.Equal(Vector2.Zero, sprite.Center);

                var texture1     = Texture.New2D(game.GraphicsDevice, 123, 234, 1, PixelFormat.B8G8R8A8_UNorm);
                provider.Texture = texture1;
                Assert.Equal(texture1, sprite.Texture);
                Assert.Equal(new RectangleF(0, 0, texture1.Width, texture1.Height), sprite.Region);
                Assert.Equal(new Vector2(texture1.Width, texture1.Height) / 2, sprite.Center);

                var texture2     = Texture.New2D(game.GraphicsDevice, 12, 23, 1, PixelFormat.B8G8R8A8_UNorm);
                provider.Texture = texture2;
                Assert.Equal(texture2, sprite.Texture);
                Assert.Equal(new RectangleF(0, 0, texture2.Width, texture2.Height), sprite.Region);
                Assert.Equal(new Vector2(texture2.Width, texture2.Height) / 2, sprite.Center);

                provider.IsTransparent = false;
                Assert.False(sprite.IsTransparent);
                provider.IsTransparent = true;
                Assert.True(sprite.IsTransparent);

                provider.CenterFromMiddle = false;
                Assert.Equal(Vector2.Zero, sprite.Center);
                provider.Center = new Vector2(43, 54);
                Assert.Equal(provider.Center, sprite.Center);
                provider.CenterFromMiddle = true;
                Assert.Equal(provider.Center + new Vector2(texture2.Width, texture2.Height) / 2, sprite.Center);

                Assert.Equal(new Vector2(provider.PixelsPerUnit), sprite.PixelsPerUnit);
                provider.PixelsPerUnit = 1;
                Assert.Equal(new Vector2(provider.PixelsPerUnit), sprite.PixelsPerUnit);
                Assert.Equal(new Vector2(texture2.Width, texture2.Height), sprite.Size);
            });
        }