Exemplo n.º 1
0
        public void AbleToSetTheBackgroundColorOfASurface()
        {
            _renderer.DrawColor = Color.FromArgb(255, 100, 50, 250);
            _renderer.Clear();

            var color = _surface.GetPixel(0, 0);

            color.Should().Be(Color.FromArgb(255, 100, 50, 250));
        }
Exemplo n.º 2
0
        private void RenderEvent()
        {
            _renderer.Clear(Color.Black);

            _renderer.DrawRectangle(new OpenGLBrush
            {
                Color = new Color(Color.Gray, 1f)
            }, new Rectangle(20, 20, 200, 500), 50);

            _renderer.DrawRectangle(new OpenGLBrush
            {
                Color = new Color(Color.White, 1f)
            }, new Rectangle(30, 30, 50, 50), 18);

            _renderer.DrawRectangle(new OpenGLBrush
            {
                Color = new Color(Color.White, .75f)
            }, new Rectangle(30, 130, 50, 50), 18);

            _renderer.DrawRectangle(new OpenGLBrush
            {
                Color = new Color(Color.White, .55f)
            }, new Rectangle(30, 230, 50, 50), 18);

            _renderer.DrawRectangle(new OpenGLBrush
            {
                Color = new Color(Color.White, .25f)
            }, new Rectangle(30, 330, 50, 50), 18);

            if (stringLayout == null)
            {
                stringLayout = _renderer.CreateStringLayout("LOL THIS WORKS WOOHOO", "arial", 35);
            }

            _renderer.DrawString(new Rectangle(300, 300, 0, 0), stringLayout, new OpenGLBrush()
            {
                Color = Color.RoyalBlue
            });

            if (imageResource == null)
            {
                imageResource = _renderer.CreateImage(@"C:\source\CarMp\trunk\Images\Skins\BMW\pause.png");
            }

            _renderer.DrawImage(new Rectangle(100, 30, 50, 51), imageResource, 1);

            // DrawDirect2D();
            _fpsCalcFramesCurrent++;
            if (DateTime.Now > _fpsCalcDate)
            {
                _controlForm.FPS      = _fpsCalcFramesCurrent;
                _fpsCalcFramesCurrent = 0;
                _fpsCalcDate          = DateTime.Now.AddSeconds(1);
            }
        }
 public void Redraw()
 {
     renderer.Clear();
     renderer.DrawHeader();
     renderer.DrawGrid(block, currentTile, finishTile);
     renderer.DrawCurrentPos(currentTile);
 }
        /// <summary>
        /// Parse method, implements the Strategy pattern.
        /// </summary>
        /// <remarks>
        /// The object recieves concrete strategy implementation of the renderer
        /// </remarks>
        /// <param name="renderer">
        /// Must be an instance of IRenderer
        /// </param>
        /// <param name="score">
        /// Must be an instance of IScoreBoard
        /// </param>
        public void Parse(IRenderer renderer, IScoreBoard score)
        {
            switch (this.Player.Command)
            {
            case PlayerCommand.InvalidMove:
                renderer.Render(INVALID_MOVE_MESSAGE);
                break;

            case PlayerCommand.InvalidCommand:
                renderer.Render(INVALID_COMMAND_MESSAGE);
                break;

            case PlayerCommand.PrintTopScores:
                score.Render(renderer);
                break;

            case PlayerCommand.Restart:
                this.IsRestartCommandEntered = true;
                renderer.Clear();
                return;

            case PlayerCommand.Exit:
                renderer.Render(GOODBYE_MESSAGE);
                this.IsExitCommandEntered = true;
                return;
            }
        }
Exemplo n.º 5
0
        public void Run()
        {
            while (_window.IsOpen)
            {
                _renderer.SetClearColor(25, 25, 25);
                _renderer.Clear();

                _renderer.SetScene(_camera.Camera);

                OperatePlayer();
                OperateObstacles();

                if (_player.State == PlayerState.IsDead)
                {
                    _gameOver.Position = new Vector2(
                        _window.Width / 2 + _gameOver.Size.X + _camera.X,
                        _window.Height / 2);
                    _renderer.Draw(_gameOver);
                }
                else
                {
                    _camera.X += _player.RunSpeed;
                }

                _renderer.Draw(
                    new Vector2(_window.Width / 2 + _camera.X - _player.RunSpeed, Ground),
                    new Vector2(_window.Width * 2, 1),
                    Color.White
                    );

                _window.Display();
            }
        }
Exemplo n.º 6
0
 public void Redraw()
 {
     _renderer.Clear();
     _renderer.DrawHeader();
     _renderer.DrawGrid(_tiles, _currentTile, _finishTile);
     _renderer.DrawCurrentPos(_currentTile);
 }
        public static void Render(IRenderer rend, Polygon[] polys, float width, bool fade)
        {
            rend.Clear(new Color(0, 0, 0));

            foreach (Polygon poly in polys)
            {
                for (int historyIndex = 0; historyIndex < poly.Corners[0].Points.Count(); historyIndex++)
                {
                    var historyFrac = (double)historyIndex / (poly.Corners[0].Points.Count() - 1);

                    byte  alpha = (fade) ? (byte)(255 * historyFrac) : poly.Color.A;
                    Color color = new Color(poly.Color.R, poly.Color.G, poly.Color.B, alpha);

                    for (int cornerIndex = 0; cornerIndex < poly.Corners.Count(); cornerIndex++)
                    {
                        var cornerA = poly.Corners[cornerIndex];
                        var pointA  = new Point(cornerA.Points[historyIndex].X, cornerA.Points[historyIndex].Y);

                        var cornerB = poly.Corners[(cornerIndex == poly.Corners.Count() - 1) ? 0 : cornerIndex + 1];
                        var pointB  = new Point(cornerB.Points[historyIndex].X, cornerB.Points[historyIndex].Y);

                        rend.DrawLine(pointA, pointB, width, color);
                    }
                }
            }
        }
Exemplo n.º 8
0
        public void StartGame()
        {
            this.renderer.Clear();

            //AttachListenersToKeyboard();
            this.AttachListenersToKeyboard();

            hangmanGameLogic.ShouldPassControl = false;
            while (true)
            {
                this.gameEvents.ProcessInput();

                //render all
                renderer.DrawObjects(field, hangmanGameLogic.GameObjects);

                Thread.Sleep(700);
                renderer.Clear();

                if (this.hangmanGameLogic.ShouldPassControl)
                {
                    DetachListenersFromKeyboard();
                    break;
                }
            }
        }
Exemplo n.º 9
0
        private Bitmap renderMazeAsImage(bool systemDPI = false)
        {
            if (maze == null)
            {
                return(null);
            }
            int       gap          = 32;
            Rectangle renderBounds = new Rectangle(gap, gap, maze.TotalSizeInPixels.Width, maze.TotalSizeInPixels.Height);
            IRenderer r            = IRendererFactory.GetPreferredRenderer(renderBounds.Width + (gap * 2), renderBounds.Height + (gap * 2));

            r.Clear(maze.FillColor);
            maze.Render(r, renderBounds);

            if (currentPath != null)
            {
                maze.renderPath(r, renderBounds, currentPath);
            }
            if (currentMazeMask != null)
            {
                maze.renderMask(r, renderBounds, currentMazeMask);
            }



            Bitmap b = r.RenderTargetAsGDIBitmap();

            if (!systemDPI)
            {
                b.SetResolution((float)maze.DPI, (float)maze.DPI);
            }
            return(b);
        }
Exemplo n.º 10
0
    private void draw(object state)
    {
        //is the window minimized?
        if (p_Window.WindowState == FormWindowState.Minimized)
        {
            return;
        }

        Game           game     = state as Game;
        IRenderContext context  = game.p_Window.Context;
        IRenderer      renderer = game.p_Window.Renderer;

        renderer.BeginFrame(game.p_Window.Context);
        renderer.SetColor(Color.Black);
        renderer.Clear();

        p_MapRenderer.Draw(context, renderer);

        drawUI(context, renderer);

        p_Cursor.Draw(context, renderer);

        try  {
            renderer.SetFont(new Font("Arial", 12, FontStyle.Bold));
            renderer.DrawString(
                p_Hotloader["print"].ToString(),
                10, 100);
        }
        catch { }

        renderer.EndFrame();
    }
Exemplo n.º 11
0
        private void GameLoop(object sender, EventArgs e)
        {
            HighScore += ScoreForTick;
            if (Enemies.Any(enemy => CollisionDetector.AreCollided(Batwing, enemy)))
            {
                timer.Stop();
                renderer.ShowEndGameScreen(HighScore);
                return;
            }

            renderer.Clear();
            renderer.Draw(Batwing);

            if (rand.Next(100) < SpawnEnemyChange)
            {
                var enemy = enemiesFactory.Get(renderer.ScreenWidth, rand.Next(renderer.ScreenHeight));
                Enemies.Add(enemy);
                GameObjects.Add(enemy);
            }

            KillEnemiesIfColliding();

            HighScore += Enemies.Count(enemy => !enemy.IsAlive) * ScoreForKill;
            RemoveNotAliveGameObjects();
            UpdateObjectsPositions();
            DrawGameObjects();
        }
Exemplo n.º 12
0
        void Update()
        {
            System.Diagnostics.Debug.WriteLine("Draw..");
            renderer.Begin();
            renderer.Clear();

            // render normal triangle
            renderer.UseShader(shaderProgram);
            renderer.UseVertexBuffer(vb1);
            renderer.DrawVertexBuffer(PrimitiveType.Triangles, 0, 3);

            // render textured triangle
            renderer.UseShader(shaderProgramTextured);
            renderer.UseVertexBuffer(vb2.VertexBuffer);
            //renderer.UseTexture(brickTexture); // Either use only one texture
            renderer.UseTextures(new ITexture2D[] { brickTexture, mossTexture }); // or multiple textures
            shaderProgramTextured.SetUniform(sampler1, 0);                        // the order of the textures is determined by setting the uniform to the right index of the texture
            shaderProgramTextured.SetUniform(sampler2, 1);
            renderer.DrawVertexBufferIndexed(PrimitiveType.Triangles, 6);

            // animate color
            uniformValue = uniformValue + 0.01f;
            uniformValue = uniformValue > 1.0f ? 1.0f : uniformValue;
            shaderProgramColored.SetUniform(multiplicator, uniformValue);

            // render colored triangle
            renderer.UseShader(shaderProgramColored);
            renderer.UseVertexBuffer(vb3.VertexBuffer);
            renderer.DrawVertexBufferIndexed(PrimitiveType.Triangles, 3);

            renderer.SwapBuffers();

            // end probably useless.. don't know if possible failures are due to wpf
            //renderer.End();
        }
Exemplo n.º 13
0
        private void StartGameLoop()
        {
            var builer = new ConsoleBuilder();

            renderer.Render(builer.StartGameDraw(field, initialGameLogic.Character));
            AttachListenersToKeyboard();

            while (true)
            {
                gameEvents.ProcessInput();

                if (initialGameLogic.PassControlToSomeoneElse)
                {
                    DetachistenersFromKeyboard();
                    //Go to subgame loop;
                    initialGameLogic.SubGame.Invoke();
                    AttachListenersToKeyboard();
                    initialGameLogic.PassControlToSomeoneElse = false;
                }

                //render all
                IList <IRenderable> objs = new List <IRenderable>();
                objs.Add(initialGameLogic.Character);
                renderer.DrawObjects(field, objs);
                Thread.Sleep(20);
                renderer.Clear();
            }
        }
Exemplo n.º 14
0
 public RendererTests()
 {
     _sdl                = new SdlEngine();
     _surface            = _sdl.CreateSurface(10, 10);
     _renderer           = _surface.CreateSoftwareRenderer();
     _renderer.DrawColor = Color.Black;
     _renderer.Clear();
 }
Exemplo n.º 15
0
        public void Render(IRenderer renderer, Dimensions dims, bool lowQuality)
        {
            if (Visible == false)
            {
                return;
            }

            renderer.Clear(Color);
        }
Exemplo n.º 16
0
        private void OnRender(object sender, FrameEventArgs args)
        {
            var anchor = Player.Position.ToChunkPosition();

            renderer.Clear(Color.Aqua);
            var entities = World.GetChunksInRadius(anchor, Preferences.ChunkRenderRadius);

            renderer.Render(Player, textures, entities);

            SwapBuffers();
        }
Exemplo n.º 17
0
        public override void Render(IRenderer renderer)
        {
            renderer.ShowCursor(false);

            if (isFirstRender)
            {
                renderer.Clear();
                isFirstRender = false;
            }

            WriteCentral(SPLASH_MESSAGE, renderer);
        }
Exemplo n.º 18
0
        private void SaveLife()
        {
            FileReadWrite rw = FileReadWrite.GetReadWriteService;

            UniverseState[] st = new UniverseState[_gameSetup.universes.Length];
            for (int i = 0; i < _gameSetup.universes.Length; i++)
            {
                st[i] = _gameSetup.universes[i].UState;
            }
            rw.Serialize(st);

            Globals.Save  = false; //Class should controll self state
            Globals.Pause = true;

            _renderer.Clear();
            _renderer.Color(ConsoleColor.White);
            Console.WriteLine("Game Was Saved Press Enter to continue");
            Console.ReadLine();
            Globals.Pause = false;
            _renderer.Clear();
        }
Exemplo n.º 19
0
        public void Render()
        {
            try
            {
                mRenderer.Clear(UColor.Black);

                mPluginManager.Render(this.Renderer);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 20
0
 public void ChangeFigureColor(Point mPosition, Color color, bool filled) // If filled is true the figure should be/stay filled
 {
     foreach (BaseFigure figure in _figures)
     {
         if (figure.IsClicked(mPosition))
         {
             if (filled)
             {
                 figure.Fill();
                 figure.ColorChange(color);
             }
             else
             {
                 figure.ClearFill();
                 renderer.Clear(color);
             }
         }
     }
     foreach (BaseFigure figure in _figures)
     {
         figure.Draw(renderer);
     }
 }
Exemplo n.º 21
0
        public void Render(IRenderer renderer, Dimensions dims, bool lowQuality)
        {
            if (Visible == false)
            {
                return;
            }

            Point clipPoint = new Point(dims.DataOffsetX, dims.DataOffsetY);
            Size  clipSize  = new Size(dims.DataWidth, dims.DataHeight);

            renderer.Clip(clipPoint, clipSize);
            renderer.Clear(Color);
            renderer.ClipReset();
        }
Exemplo n.º 22
0
        public void Render(IRenderer renderer)
        {
            // clear background
            var backColor = new Color("#003366");

            renderer.Clear(backColor);

            // draw stars
            foreach (var star in Stars)
            {
                renderer.FillCircle(star.Point, star.Radius, star.Color);
            }

            // draw lines connecting close stars
            double connectDistance = 100;

            foreach (var star1 in Stars)
            {
                foreach (var star2 in Stars)
                {
                    // prevent duplicate lines
                    if (star1.Y >= star2.Y)
                    {
                        continue;
                    }

                    // determine star distance
                    double dX = Math.Abs(star1.X - star2.X);
                    double dY = Math.Abs(star1.Y - star2.Y);
                    if (dX > connectDistance || dY > connectDistance)
                    {
                        continue;
                    }
                    double distance = Math.Sqrt(dX * dX + dY * dY);

                    // set line alpha based on distance
                    int alpha = (int)(255 - distance / connectDistance * 255) * 2;
                    alpha = Math.Min(alpha, 255);
                    alpha = Math.Max(alpha, 0);
                    var lineColor = new Color(255, 255, 255, (byte)alpha);
                    if (distance < connectDistance)
                    {
                        renderer.DrawLine(star1.Point, star2.Point, 1, lineColor);
                    }
                }
            }
        }
Exemplo n.º 23
0
        public void Start()
        {
            while (true)
            {
                foreach (var gameObject in drawableObjects)
                {
                    gameObject.Draw();
                }

                foreach (var movableObject in movableObjects)
                {
                    movableObject.Move();
                }

                Thread.Sleep(100);
                renderer.Clear();
            }
        }
Exemplo n.º 24
0
        public override void Render(IRenderer renderer)
        {
            renderer.ShowCursor(false);

            if (isFirstRender)
            {
                renderer.Clear();
                isFirstRender = false;
            }

            WriteCentral($"{player.Name} - place your pieces", renderer);

            int x = 0, y = 5;

            DrawGrid(player.Grid, x, y);

            DrawInstruction(x + 30, y);
        }
Exemplo n.º 25
0
        private void ToggleBloom()
        {
            if (_isBloomEnabled)
            {
                _ndcTexture = _worldRenderer.Texture;
            }
            else
            {
                _ndcTexture = _postprocessTexture;
            }

            _ndcRenderer.Clear();
            var fullScreenQuad = new FullScreenQuad(new[] { _ndcTexture }, _fullscreenShader);

            _ndcRenderer.AddToScene(fullScreenQuad);

            _isBloomEnabled = !_isBloomEnabled;
        }
Exemplo n.º 26
0
    public void Run()
    {
        // handle events and render the frame
        while (Window.Open)
        {
            _fps.Tick();

            Window.HandleEvents();
            RelativeMouse.HandleEvents();

            if (!IsElapsedFrame())
            {
                continue;
            }
            _fps.Frame();

            UpdateScene();

            _renderer.Clear();
            _blockTexture.Use();

            foreach (var axis in _axis)
            {
                var renderable = (OpenGLRenderable)axis.Renderable;
                var shader     = renderable.Geometry.Program;
                shader.Use();
                shader["Color"].SetValue(axis.Color);

                _renderer.Render(_mainCamera, renderable);
            }

            _renderer.Render(_mainCamera, _chunkMeshes);

            //_renderer.Render(_mainCamera, _cube);

            //UserInterface.Draw();
            SwapBuffers();
        }
    }
Exemplo n.º 27
0
        public void StartSokoban()
        {
            this.renderer.Clear();

            AttachListenersToKeyboard();
            this.sokobanGameLogic.ShouldPassControl = false;
            while (true)
            {
                this.gameEvents.ProcessInput();

                renderer.DrawObjects((IRenderable)level1, sokobanGameLogic.GameObjects.Cast <IRenderable>().ToList());

                if (this.sokobanGameLogic.ShouldPassControl)
                {
                    DetachListenersFromKeyboard();
                    break;
                }

                Thread.Sleep(70);
                renderer.Clear();
            }
        }
Exemplo n.º 28
0
        public override void Render(IRenderer renderer)
        {
            renderer.ShowCursor(false);

            if (isFirstRender)
            {
                renderer.Clear();
                isFirstRender = false;
            }

            int y = 1;

            WriteCentral("Player Setup", renderer, y);

            y = 3;

            WriteCentral("Enter your name", renderer, y);

            y = 5;

            renderer.SetPosition((renderer.Width / 2) + playerNameBuilder.Length, y);

            renderer.ShowCursor(true);
        }
Exemplo n.º 29
0
 public void Clear(IRenderer renderer, Color background)
 {
     renderer.Clear(background);
 }
Exemplo n.º 30
0
        protected override void OnRenderPre(IRenderer renderer)
        {
            base.OnRenderPre(renderer);

            ICamera oldCam = renderer.CurrentCamera;

            lightCam.Viewport = new Viewport(0, 0, shadowMap.Width, shadowMap.Height);// oldCam.Viewport;
            lightCam.SetFrame(sl.Position, Matrix.LookAt(sl.Position, Vector3.Zero, Vector3.Up));
            lightCam.SetProjection(ProjectionMode.Orthographic, 400, 400, 1.0f, 1000.0f);
            // lightCam.SetProjection(45f, 1f, 500f);
            lightCam.Update();

            Viewport viewport  = lightCam.Viewport;
            float    invWidth  = (viewport.Width > 0) ? (1f / ((float)viewport.Width)) : 0f;
            float    invHeight = (viewport.Height > 0) ? (-1f / ((float)viewport.Height)) : 0f;
            Matrix   matrix    = new Matrix();

            matrix.M11 = invWidth * 2f;
            matrix.M22 = invHeight * 2f;
            matrix.M33 = 1f;
            matrix.M44 = 1f;
            matrix.M41 = -1f;
            matrix.M42 = 1f;
            matrix.M41 = matrix.M41 - invWidth;
            matrix.M42 = matrix.M42 - invHeight;

            Matrix projection = Matrix.CreateOrthoMatrix(0, viewport.Width, viewport.Height, 0, 0, 1);

            blurEffect.Parameters["SpriteTransform"].SetValue(projection);

            Matrix ortho       = Matrix.CreateOrthoMatrix(30, 30, 1.0f, 200f);
            Matrix view        = Matrix.CreateViewMatrix(sl.Position, Vector3.Zero, Vector3.Up);//Matrix.LookAt(sl.Position, Vector3.Zero, Vector3.Up);
            Matrix viewproj    = view * ortho;
            Matrix viewprojcam = lightCam.ViewProjectionMatrix;

            renderer.CurrentCamera = lightCam;

            renderer.SetRenderTarget(shadowMap);
            renderer.Clear(Color.White);

            renderer.EnforcedMaterial          = shadowMat;
            renderer.EnforcedDepthStencilState = dss;
            if (cullFront)
            {
                renderer.EnforcedRasterizerState = rs;
            }
            mesh.Render(renderer);
            renderer.ClearEnforcedStates();
            renderer.EnforcedMaterial = null;

            /*
             * //Pass 2 - Draw from shadow to blur rt blur horizontally
             * renderer.EnforcedRasterizerState = RasterizerState.CullNone;
             * renderer.SetRenderTarget(blurRT);
             * SetBlurEffectParameters(1.0f / (float) blurRT.Width, 0);
             * DrawFullScreenQuad(shadowMap, BlendState.Opaque, blurRT.Width, blurRT.Height, blurEffect);
             *
             * //Pass 3 - Draw from blurRT to shadowmap, blur vertically
             * renderer.SetRenderTarget(shadowMap);
             * SetBlurEffectParameters(0, 1.0f / (float) shadowMap.Height);
             * DrawFullScreenQuad(blurRT, BlendState.Opaque, shadowMap.Width, shadowMap.Height, blurEffect);
             */
            renderer.CurrentCamera = oldCam;
            renderer.SetRenderTarget(null);

            receiverMat.SetParameter("LightVP", lightCam.ViewProjectionMatrix);
            receiverMat.SetParameter("LightDirection", sl.Direction);
            receiverMat.SetParameter("ShadowMap", shadowMap);
        }