//---------------------------------------------------------------------
        //typedef renderer_outline_image<BaseRenderer, ImagePattern> self_type;

        //---------------------------------------------------------------------
        public renderer_outline_image(IPixelFormat ren, line_image_pattern patt)
        {
            m_ren      = ren;
            m_pattern  = patt;
            m_start    = (0);
            m_scale_x  = (1.0);
            m_clip_box = new rect_i(0, 0, 0, 0);
            m_clipping = (false);
        }
Esempio n. 2
0
        private void renderScene()
        {
            SetupScene3();

            RayTracer.RayTracer raytracer = new RayTracer.RayTracer(AntiAliasing.Medium, true, true, true, true, true);
            raytracer.RenderUpdate += new RenderUpdateDelegate(raytracer_RenderUpdate);

            rect_i rect = new rect_i(0, 0, 512, 512);

            bitmap = new ImageBuffer(rect.Width, rect.Height, 32, new BlenderBGRA());

            Graphics2D graphics2D = bitmap.NewGraphics2D();

            raytracer.RayTraceScene(graphics2D, rect, scene);

            graphics2D.Rect(new rect_d(bitmap.GetBoundingRect()), RGBA_Bytes.Black);
        }
Esempio n. 3
0
        private void rayTraceScene()
        {
            rect_i rect = new rect_i(0, 0, (int)Width, (int)Height);

            if (destImage == null || destImage.Width != rect.Width || destImage.Height != rect.Height)
            {
                destImage = new ImageBuffer(rect.Width, rect.Height, 32, new BlenderBGRA());
            }

            //rect_i rect = new rect_i(0, 0, (int)32, (int)32);

            Graphics2D graphics2D = destImage.NewGraphics2D();

            renderTime.Restart();
            raytracer.RayTraceScene(graphics2D, rect, scene);
            //raytracer.AntiAliasScene(graphics2D, rect, scene, raytracer.RayTraceColorBuffer, 13);
            renderTime.Stop();

            //graphics2D.Rect(new rect_d(bitmap.GetBoundingRect()), RGBA_Bytes.Black);
        }
        private void rayTraceScene()
        {
            rect_i rect = new rect_i(0, 0, (int)Width, (int)Height);
            if (destImage == null || destImage.Width != rect.Width || destImage.Height != rect.Height)
            {
                destImage = new ImageBuffer(rect.Width, rect.Height, 32, new BlenderBGRA());
            }

            //rect_i rect = new rect_i(0, 0, (int)32, (int)32);

            Graphics2D graphics2D = destImage.NewGraphics2D();

            renderTime.Restart();
            raytracer.RayTraceScene(graphics2D, rect, scene);
            //raytracer.AntiAliasScene(graphics2D, rect, scene, raytracer.RayTraceColorBuffer, 13);
            renderTime.Stop();

            //graphics2D.Rect(new rect_d(bitmap.GetBoundingRect()), RGBA_Bytes.Black);
        }
 //---------------------------------------------------------------------
 //typedef renderer_outline_image<BaseRenderer, ImagePattern> self_type;
 //---------------------------------------------------------------------
 public renderer_outline_image(IPixelFormat ren, line_image_pattern patt)
 {
     m_ren=ren;
     m_pattern=patt;
     m_start=(0);
     m_scale_x=(1.0);
     m_clip_box=new rect_i(0,0,0,0);
     m_clipping=(false);
 }
Esempio n. 6
0
        public override void OnDraw(RendererBase rendererToDrawWith)
        {
            ImageBuffer levelMap = playfield.LevelMap;
            int         offset;

            byte[] buffer = levelMap.GetBuffer(out offset);

            if (!haveDrawnWalls)
            {
                RendererBase backgroundRenderer = BackgroundImage.NewRenderer();
                rect_i       boundsI            = BackgroundImage.GetBoundingRect();
                rect_d       bounds             = new rect_d(boundsI.Left, boundsI.Bottom, boundsI.Right, boundsI.Top);
                backgroundRenderer.SetClippingRect(bounds);
                ImageSequence wallTileSequence = (ImageSequence)DataAssetCache.Instance.GetAsset(typeof(ImageSequence), "WallTile");
                for (int y = 0; y < levelMap.Height(); y++)
                {
                    for (int x = 0; x < levelMap.Width(); x++)
                    {
                        if (buffer[levelMap.GetBufferOffsetXY(x, y)] == 0)
                        {
                            int index = 0;
                            // what type of wall
                            if (x < levelMap.Width() - 1 &&
                                buffer[levelMap.GetBufferOffsetXY(x + 1, y + 0)] == 0)
                            {
                                index |= 8;
                            }

                            if (y < levelMap.Height() - 1 &&
                                buffer[levelMap.GetBufferOffsetXY(x + 0, y + 1)] == 0)
                            {
                                index |= 4;
                            }

                            if (x > 0 &&
                                buffer[levelMap.GetBufferOffsetXY(x - 1, y + 0)] == 0)
                            {
                                index |= 2;
                            }

                            if (y > 0 &&
                                buffer[levelMap.GetBufferOffsetXY(x + 0, y - 1)] == 0)
                            {
                                index |= 1;
                            }

                            backgroundRenderer.Render(wallTileSequence.GetImageByIndex(index), x * 16, y * 16);
                        }
                    }
                }
                haveDrawnWalls = true;
            }

            //for (int i = 0; i < 1; i++)
            for (int i = 0; i < numPlayers; i++)
            {
                playerViews[i].SetRendererPreDraw(BackgroundImage, rendererToDrawWith, playfield.PlayerList[i]);

                rendererToDrawWith.Render(BackgroundImage, 0, 0);

                foreach (SequenceEntity aSequenceEntity in playfield.SequenceEntityList)
                {
                    aSequenceEntity.Draw(rendererToDrawWith);
                }

                foreach (Player aPlayer in playfield.PlayerList)
                {
                    aPlayer.Draw(rendererToDrawWith);
                }

                playfield.sword.Draw(rendererToDrawWith);
                playfield.key.Draw(rendererToDrawWith);
                playfield.shield.Draw(rendererToDrawWith);

                playerViews[i].SetRendererPostDraw(rendererToDrawWith);
            }

            ImageSequence hud = (ImageSequence)DataAssetCache.Instance.GetAsset(typeof(ImageSequence), (playfield.PlayerList.Count).ToString() + "PlayerHUD");

            rendererToDrawWith.Render(hud.GetImageByIndex(0), 400, 300);

            foreach (Player aPlayer in playfield.PlayerList)
            {
                aPlayer.DrawScore(rendererToDrawWith);
            }

            rendererToDrawWith.Line(0.5, 300.5, 800.5, 300.5, new RGBA_Bytes(255, 20, 20));
            rendererToDrawWith.Line(400.5, 0.5, 400.5, 600.5, new RGBA_Bytes(255, 20, 20));

            base.OnDraw(rendererToDrawWith);
        }
Esempio n. 7
0
        private void renderScene()
        {
            SetupScene3();

            RayTracer.RayTracer raytracer = new RayTracer.RayTracer(AntiAliasing.Medium, true, true, true, true, true);
            raytracer.RenderUpdate += new RenderUpdateDelegate(raytracer_RenderUpdate);

            rect_i rect = new rect_i(0, 0, 512, 512);
            bitmap = new ImageBuffer(rect.Width, rect.Height, 32, new BlenderBGRA());

            Graphics2D graphics2D = bitmap.NewGraphics2D();

            raytracer.RayTraceScene(graphics2D, rect, scene);

            graphics2D.Rect(new rect_d(bitmap.GetBoundingRect()), RGBA_Bytes.Black);
        }