/// <summary>
 /// Creates a new instance of <see cref="XNAEffectImplementation"/>.
 /// </summary>
 /// <param name="renderer">The XNA renderer.</param>
 /// <param name="byteCode">The compiled byte code.</param>
 internal XNAEffectImplementation(XNARenderer renderer, byte[] byteCode)
 {
     _renderer       = renderer;
     _graphicsDevice = renderer.GraphicsDevice;
     _cachedByteCode = byteCode;
     _effect         = new XFG.Effect(_graphicsDevice, byteCode);
     base.SetParameters(new XNAEffectParameterCollection(_effect.Parameters));
     base.SetTechniques(new XNAEffectTechniqueCollection(_effect.Techniques));
     _currentTechnique = (XNAEffectTechnique)base.Techniques[0];
 }
Beispiel #2
0
        /// <summary>
        /// Creates a new instance of <see cref="XNAIndexBufferImplementation"/>.
        /// </summary>
        /// <param name="renderer">The XNA renderer.</param>
        /// <param name="format">The index format.</param>
        /// <param name="indexCount">The number of indices.</param>
        /// <param name="usage">The buffer usage specifying what type of memory the buffer should be created in.</param>
        internal XNAIndexBufferImplementation(XNARenderer renderer, IndexFormat format, int indexCount, ResourceUsage usage)
            : base(format, indexCount, usage)
        {
            _renderer       = renderer;
            _graphicsDevice = renderer.GraphicsDevice;

            if (usage == ResourceUsage.Static)
            {
                _indexBuffer = new XFG.IndexBuffer(_graphicsDevice, XNAIndexFormat, indexCount, XFG.BufferUsage.None);
            }
            else
            {
                _indexBuffer = new XFG.DynamicIndexBuffer(_graphicsDevice, XNAIndexFormat, indexCount, XFG.BufferUsage.None);
            }
        }
Beispiel #3
0
        /// <summary>
        /// Creates a new instance of <see cref="XNAIndexBufferImplementation"/>.
        /// </summary>
        /// <param name="renderer">The XNA renderer.</param>
        /// <param name="indices">The index data</param>
        /// <param name="usage">The buffer usage specifying what type of memory the buffer should be created in.</param>
        internal XNAIndexBufferImplementation(XNARenderer renderer, DataBuffer <int> indices, ResourceUsage usage)
            : base(indices, usage)
        {
            _renderer       = renderer;
            _graphicsDevice = renderer.GraphicsDevice;

            if (usage == ResourceUsage.Static)
            {
                _indexBuffer = new XFG.IndexBuffer(_graphicsDevice, XNAIndexFormat, indices.Length, XFG.BufferUsage.None);
            }
            else
            {
                _indexBuffer = new XFG.DynamicIndexBuffer(_graphicsDevice, XNAIndexFormat, indices.Length, XFG.BufferUsage.None);
            }
            _indexBuffer.SetData <int>(indices.Buffer);
        }
Beispiel #4
0
        public XNAGraphicsContext(GraphicsDeviceManager gdm, ContentManager cm)
        {
            _gdm = gdm;
            _gd = gdm.GraphicsDevice;
            _spriteBatch = new SpriteBatch(_gd);
            _cm = cm;
            _gContentManager = new GraphicsContentManager();
            _renderer = new XNARenderer(this);

            _cameraWidth = 720;
            _cameraHeight = 480;

            _gdm.PreferredBackBufferWidth = 1280;
            _gdm.PreferredBackBufferHeight = 720;

            _basicEffect = new BasicEffect(_gd);
        }
        /// <summary>
        /// Creates a new instance of <see cref="XNAVertexBufferImplementation"/>.
        /// </summary>
        /// <param name="renderer">The XNA renderer.</param>
        /// <param name="decl">The vertex declaration.</param>
        /// <param name="vertexCount">The vertex count.</param>
        /// <param name="usage">The resource usage.</param>
        /// <exception cref="Tesla.Core.TeslaException">Thrown if there was an error creating the XNA buffer</exception>
        internal XNAVertexBufferImplementation(XNARenderer renderer, VertexDeclaration decl, int vertexCount, ResourceUsage usage)
            : base(decl, vertexCount, usage)
        {
            _renderer       = renderer;
            _graphicsDevice = renderer.GraphicsDevice;

            try {
                XFG.VertexDeclaration xnaDecl = XNAHelper.ToXNAVertexDeclaration(decl);
                if (usage == ResourceUsage.Static)
                {
                    _vertexBuffer = new XFG.VertexBuffer(_graphicsDevice, xnaDecl, vertexCount, XFG.BufferUsage.None);
                }
                else
                {
                    _vertexBuffer = new XFG.DynamicVertexBuffer(_graphicsDevice, xnaDecl, vertexCount, XFG.BufferUsage.None);
                }
            } catch (Exception e) {
                Dispose();
                throw new TeslaException("Error creating XNA buffer: \n" + e.Message, e);
            }
        }
Beispiel #6
0
        /// <summary>
        /// Creates a new instance of <see cref="XNAIndexBufferImplementation"/>.
        /// </summary>
        /// <param name="renderer">The XNA renderer.</param>
        /// <param name="indices">The index data</param>
        /// <param name="usage">The buffer usage specifying what type of memory the buffer should be created in.</param>
        internal XNAIndexBufferImplementation(XNARenderer renderer, DataBuffer <short> indices, ResourceUsage usage)
            : base(indices, usage)
        {
            if (indices == null)
            {
                throw new ArgumentNullException("indices", "Indices cannot be null.");
            }

            _renderer       = renderer;
            _graphicsDevice = renderer.GraphicsDevice;

            if (usage == ResourceUsage.Static)
            {
                _indexBuffer = new XFG.IndexBuffer(_graphicsDevice, XNAIndexFormat, indices.Length, XFG.BufferUsage.None);
            }
            else
            {
                _indexBuffer = new XFG.DynamicIndexBuffer(_graphicsDevice, XNAIndexFormat, indices.Length, XFG.BufferUsage.None);
            }

            _indexBuffer.SetData <short>(indices.Buffer);
        }
        private void initGui()
        {
            DrawableUIElemts = new List <IEnumDrawableUIElemt>();

            renderer = new XNARenderer();
            panel    = new StackPanel()
            {
                Orientation  = Orientation.Veritical,
                ActualWidth  = 240,
                ActualHeight = 440,
                X            = 990,
                Y            = 200
            };
            DrawableUIElemts.Add(panel);
            panel.UpdateLayout();

            const int PanelRaw = 2;

            tilesPanel = new MultiScrollStackPanel(PanelRaw)
            {
                ActualWidth  = 960,
                ActualHeight = PanelRaw * 32,
                X            = 0,
                Y            = 0,
            };
            DrawableUIElemts.Add(tilesPanel);
            tilesPanel.UpdateLayout();

            var button = new SampleButton(10, 220)
            {
                Content = "Add",
            };

            panel.AddChild(button, () => { Status = S_Add; });

            var button2 = new SampleButton(10, 350)
            {
                Content = "Remove",
            };

            panel.AddChild(button2, () => { Status = S_Remove; });

            var button3 = new SampleButton(10, 450)
            {
                Content = "Clear",
            };

            panel.AddChild(button3, new Action(OnClear));

            var button4 = new SampleButton(10, 10)
            {
                Content = "Load",
            };

            panel.AddChild(button4, new Action(OnLoad));

            var button5 = new SampleButton(10, 10)
            {
                Content = "Save",
            };

            panel.AddChild(button5, new Action(OnSave));

            ShowAllTiles();
        }