Inheritance: PostProcessingEffect
Beispiel #1
0
        private static void PostFxWithRenderTexture()
        {
            Window win = new Window(800, 600, "RenderTV");

            Sprite bkgSprite = new Sprite(win.Width, win.Height);

            GrayScaleFX grayFx = new GrayScaleFX();

            RenderTexture renderTxt = new RenderTexture(win.Width, win.Height);
            Sprite        renderSpr = new Sprite(win.Width, win.Height);

            Texture prova = new Texture(win.Width, win.Height);


            while (win.IsOpened)
            {
                win.RenderTo(renderTxt);
                bkgSprite.DrawColor(255, 0, 0);
                grayFx.Apply(renderTxt);

                win.RenderTo(null);
                renderSpr.DrawRenderTexture(renderTxt);

                /*
                 * byte[] data = renderTxt.Download();
                 * prova.Update(data);
                 * renderSpr.DrawTexture(prova);
                 */


                win.Update();
            }
        }
Beispiel #2
0
        private static void FullExample()
        {
            Window Win = new Window(1280, 720, "RenderTV");

            Texture bgTexture = new Texture("RenderTV/Assets/vaporBg.jpg");
            Sprite  bg        = new Sprite(bgTexture.Width, bgTexture.Height);

            Texture shipTexture = new Texture("RenderTV/Assets/futurama_ship.png");
            Sprite  ship        = new Sprite(shipTexture.Width, shipTexture.Height);

            ship.position = new Vector2(300, 300);

            RenderTexture renderT      = new RenderTexture(Win.Width, Win.Height);
            Sprite        renderSprite = new Sprite(Win.Width * 0.4f, Win.Height * 0.4f);

            renderSprite.pivot    = new Vector2(renderSprite.Width * 0.5f, renderSprite.Height * 0.5f);
            renderSprite.position = new Vector2(Win.Width * 0.5f, Win.Height * 0.5f);

            Texture tvTexture = new Texture("RenderTV/Assets/tv.png");
            Sprite  tv        = new Sprite(tvTexture.Width, tvTexture.Height);

            tv.pivot    = new Vector2(tv.Width * 0.5f, tv.Height * 0.5f);
            tv.position = renderSprite.position;
            tv.scale    = new Vector2(0.4f, 0.4f);


            float accumulator = 0;

            WobbleFX    wobble    = new WobbleFX(2);
            GrayScaleFX grayScale = new GrayScaleFX();


            while (Win.IsOpened)
            {
                //Update
                accumulator     += Win.DeltaTime * 2;
                ship.position.Y -= (float)Math.Sin(accumulator) * 50 * Win.DeltaTime;
                wobble.Update(Win);

                //Draw
                Win.RenderTo(renderT);
                bg.DrawTexture(bgTexture);
                ship.DrawTexture(shipTexture);

                renderT.ApplyPostProcessingEffect(wobble);
                renderT.ApplyPostProcessingEffect(grayScale);


                Win.RenderTo(null);
                renderSprite.DrawRenderTexture(renderT);
                tv.DrawTexture(tvTexture);

                Win.Update();
            }
        }
Beispiel #3
0
        private static void PostFxOnWindow()
        {
            Window win = new Window(800, 600, "RenderTV");

            Sprite bkgSprite = new Sprite(win.Width, win.Height);

            GrayScaleFX grayFx = new GrayScaleFX();

            win.AddPostProcessingEffect(grayFx);

            while (win.IsOpened)
            {
                bkgSprite.DrawColor(255, 0, 0);
                win.Update();
            }
        }