Inheritance: MonoBehaviour
Example #1
0
 public void ApplyEffects(RenderImage image)
 {
     foreach (PostProcessingEffect e in _effects)
     {
         e.ProcessImage(image);
     }
 }
Example #2
0
        private void SetupGorgon()
        {
            Gorgon.Initialize(true, false);
            Gorgon.SetMode(this);
            //Gorgon.AllowBackgroundRendering = true;
            //Gorgon.Screen.BackgroundColor = Color.FromArgb(50, 50, 50);

            //Gorgon.CurrentClippingViewport = new Viewport(0, 20, Gorgon.Screen.Width, Gorgon.Screen.Height - 20);
            //PreciseTimer preciseTimer = new PreciseTimer();
            //Gorgon.MinimumFrameTime = PreciseTimer.FpsToMilliseconds(66);
            Gorgon.Idle += new FrameEventHandler(Gorgon_Idle);
            Gorgon.FrameStatsVisible = true;
            Gorgon.DeviceReset += MainWindowResizeEnd;

            bouncesprite = new Sprite("flyingball", GorgonLibrary.Graphics.Image.FromFile(mediadir + @"flyingball.png"));
            //bouncesprite.SetScale(3, 3);

            baseTarget = new RenderImage("baseTarget", 32, 32, ImageBufferFormats.BufferRGB888A8);
            baseTargetSprite = new Sprite("baseTargetSprite", baseTarget);

            screenTarget = new RenderImage("screenTarget", Gorgon.CurrentClippingViewport.Width, Gorgon.CurrentClippingViewport.Height, ImageBufferFormats.BufferRGB888A8);

            bounceysprites = new BounceySprite[10];
            for (int i = 0; i < 10; i++)
            {
                bounceysprites[i] = new BounceySprite(bouncesprite, new Vector2D(random.Next(0, Gorgon.CurrentClippingViewport.Width), random.Next(0, Gorgon.CurrentClippingViewport.Height)), 
                                        new Vector2D((float)random.Next(-100000,100000) / 100000, (float)random.Next(-100000,100000) / 100000)
                                       , this);
            }
        }
        public void GaussianBlurRadius11_ShouldBlur()
        {
            preblur = new RenderImage("testGaussianBlur", 1280, 768);
            _gaussianBlur = new GaussianBlur(_resourceManager);

            _gaussianBlur.SetRadius(11);
            _gaussianBlur.SetAmount(2);
            _gaussianBlur.SetSize(new Vector2f(preblur.Width, preblur.Height));

            while (CluwneLib.IsRunning)
            {
                var lastFrameTime = clock.ElapsedTime.AsSeconds();
                clock.Restart();
                _frameEvent = new FrameEventArgs(lastFrameTime);
                CluwneLib.ClearCurrentRendertarget(Color.Black);
                CluwneLib.Screen.DispatchEvents();

                preblur.BeginDrawing(); // set temp as CRT (Current Render Target)
                //preblur.Clear();       //Clear
                sprite = _resourceManager.GetSprite("flashlight_mask");
                sprite.Position = new Vector2f();
                sprite.Draw();
                preblur.EndDrawing();  // set previous rendertarget as CRT (screen in this case)

                //_gaussianBlur.PerformGaussianBlur(preblur); // blur rendertarget

                preblur.Blit(0,0, preblur.Width, preblur.Height,Color.White, BlitterSizeMode.Crop ); // draw blurred nosprite logo

                CluwneLib.Screen.Display();

            }
        }
        public ScrollableContainer(string uniqueName, Vector2i size, IResourceManager resourceManager)
        {
            _resourceManager = resourceManager;

            Size = size;

            //if (RenderTargetCache.Targets.Contains(uniqueName))
            //    //Now this is an ugly hack to work around duplicate RenderImages. Have to fix this later.
            //    uniqueName = uniqueName + Guid.NewGuid();

            clippingRI = new RenderImage(uniqueName,(uint)Size.X,(uint) Size.Y);

            //clippingRI.SourceBlend = AlphaBlendOperation.SourceAlpha;
            //clippingRI.DestinationBlend = AlphaBlendOperation.InverseSourceAlpha;
            //clippingRI.SourceBlendAlpha = AlphaBlendOperation.SourceAlpha;
            //clippingRI.DestinationBlendAlpha = AlphaBlendOperation.InverseSourceAlpha;
            clippingRI.BlendSettings.ColorSrcFactor = BlendMode.Factor.SrcAlpha;
            clippingRI.BlendSettings.ColorDstFactor = BlendMode.Factor.OneMinusSrcAlpha;
            clippingRI.BlendSettings.AlphaSrcFactor = BlendMode.Factor.SrcAlpha;
            clippingRI.BlendSettings.AlphaDstFactor = BlendMode.Factor.OneMinusSrcAlpha;

            scrollbarH = new Scrollbar(true, _resourceManager);
            scrollbarV = new Scrollbar(false, _resourceManager);
            scrollbarV.size = Size.Y;

            scrollbarH.Update(0);
            scrollbarV.Update(0);

            Update(0);
        }
        public ScrollableContainer(string uniqueName, Size size, IResourceManager resourceManager)
        {
            _resourceManager = resourceManager;

            Size = size;

            if (RenderTargetCache.Targets.Contains(uniqueName))
                //Now this is an ugly hack to work around duplicate RenderImages. Have to fix this later.
                uniqueName = uniqueName + Guid.NewGuid();

            clippingRI = new RenderImage(uniqueName, Size.Width, Size.Height, ImageBufferFormats.BufferRGB888A8);
            scrollbarH = new Scrollbar(true, _resourceManager);
            scrollbarV = new Scrollbar(false, _resourceManager);
            scrollbarV.size = Size.Height;

            scrollbarH.Update(0);
            scrollbarV.Update(0);

            clippingRI.SourceBlend = AlphaBlendOperation.SourceAlpha;
            clippingRI.DestinationBlend = AlphaBlendOperation.InverseSourceAlpha;

            clippingRI.SourceBlendAlpha = AlphaBlendOperation.SourceAlpha;
            clippingRI.DestinationBlendAlpha = AlphaBlendOperation.InverseSourceAlpha;

            Update(0);
        }
Example #6
0
 /// <summary>
 /// Creates a new CluwneSprite with a key and a specific renderTarget
 /// </summary>
 /// <param name="key"> key </param>
 /// <param name="_renderImage"> RenderTarget to use </param>
 public CluwneSprite(string key, RenderImage target)
 {
     Key = key;
     renderTarget = target;
     Position = new Vector2(X,Y);
     Size = new Vector2(Width, Height);
 }
Example #7
0
 public LightArea(ShadowmapSize size)
 {
     int baseSize = 2 << (int) size;
     LightAreaSize = new Vector2D(baseSize, baseSize);
     renderTarget = new RenderImage("lightTest" + baseSize + IoCManager.Resolve<IRand>().Next(100000, 999999),
                                    baseSize, baseSize, ImageBufferFormats.BufferRGB888A8);
     Mask = IoCManager.Resolve<IResourceManager>().GetSprite("whitemask");
 }
 public AcidPostProcessingEffect(float duration)
     : base(duration)
 {
     _shader = IoCManager.Resolve<IResourceManager>().GetShader("acid2").Techniques["PerlinNoise"];
     copyImage = new RenderImage("perlinnoiseimage" + RandomString.Generate(10),
                                 Gorgon.CurrentClippingViewport.Width, Gorgon.CurrentClippingViewport.Height,
                                 ImageBufferFormats.BufferRGB888A8);
 }
Example #9
0
        public LightArea(ShadowmapSize shadowmapSize)
        {
            int baseSize = 2 << (int)shadowmapSize;
            LightAreaSize = new Vector2f(baseSize, baseSize);
            RenderTarget = new RenderImage("LightArea"+ shadowmapSize,(uint)baseSize, (uint)baseSize);

            Mask = IoCManager.Resolve<IResourceManager>().GetSprite("whitemask");
        }
Example #10
0
 /// <summary>
 /// 调用工具类生成图片
 /// </summary>
 /// <returns></returns>
 private async Task RefreshImage()
 {
     RenderImage randerImage = new RenderImage();
     foreach (var item in gridNameDict)
     {
         await randerImage.RenderImageToFileAsync(item.Value, item.Key.Key + this.title??"" + ".png");
     }
 }
Example #11
0
        public LightArea(ShadowmapSize size)
        {
            int baseSize = 2 << (int)size;

            LightAreaSize = new Vector2D(baseSize, baseSize);
            renderTarget  = new RenderImage("lightTest" + baseSize + IoCManager.Resolve <IRand>().Next(100000, 999999),
                                            baseSize, baseSize, ImageBufferFormats.BufferRGB888A8);
            Mask = IoCManager.Resolve <IResourceManager>().GetSprite("whitemask");
        }
        public TestShader_Test()
        {
            base.InitializeCluwneLib();
            clock = new Clock();

            resources = base.GetResourceManager;
            testRenderImage = new RenderImage("TestShaders",1000,1000);
            testsprite = resources.GetSprite("ChatBubble");
        }
Example #13
0
 public void Dispose()
 {
     contentPane.Dispose();
     if (_renderImage != null)
     {
         _renderImage.Dispose();
         _renderImage = null;
     }
 }
Example #14
0
        public void RenderSkipsDeathMagenta()
        {
            IRenderImage src  = new BufferImage(16, 16, CreatePixels(16, 16, MAGENTA));
            IRenderImage dest = RenderImage.Create(16, 16);

            dest.Clear(BLACK);

            Render.render(dest, 0, 0, src, false);
            Assert.AreEqual(dest.GetArray(), CreatePixels(16, 16, BLACK));
        }
Example #15
0
        public LightArea(int size)
        {
            int baseSize = 2 << (int)size;

            LightAreaSize = new Vector2(baseSize, baseSize);
            renderTarget  = new RenderImage((uint)baseSize, (uint)baseSize);


            Mask = IoCManager.Resolve <IResourceManager>().GetSprite("whitemask");
        }
Example #16
0
 private void SetUpIntermediateTarget(uint width, uint height)
 {
     if (_intermediateTarget == null || width != lastWidth || height != lastHeight)
     {
         _intermediateTarget     = new RenderImage("intermediateTarget", width, height);
         _intermediateTarget.Key = targetName;
         lastWidth  = width;
         lastHeight = height;
     }
 }
        public CluwneSprite_Test()
        {
            resources = base.GetResourceManager;

            base.InitializeCluwneLib();

            SS14UnitTest.InjectedMethod += DefaultDrawMethod_ShouldDrawToScreen;
            test = new RenderImage("testtst", 1280, 720);
            base.StartCluwneLibLoop();
        }
Example #18
0
    public void LoadModelItem(string modelUrl)
    {
        RenderImage _renderImage = RenderImage;

        _renderImage.LoadModel(modelUrl);
        _renderImage.SetCamLockModel();
        _renderImage.SetShader("Unlit/Texture");
        _renderImage.StartRotate(-1);
        _model.visible = true;
    }
Example #19
0
        public LightArea(ShadowmapSize shadowmapSize)
        {
            int baseSize = 2 << (int)shadowmapSize;

            LightAreaSize = new Vector2f(baseSize, baseSize);
            RenderTarget  = new RenderImage("LightArea" + shadowmapSize, (uint)baseSize, (uint)baseSize);


            Mask = IoCManager.Resolve <IResourceCache>().GetSprite("whitemask");
        }
        public CluwneSprite_Test()
        {
            resources = base.GetResourceManager;

            base.InitializeCluwneLib();

            SS14UnitTest.InjectedMethod += DefaultDrawMethod_ShouldDrawToScreen;
            test = new RenderImage("testtst", 1280, 720);
            base.StartCluwneLibLoop();
        }
 public override void Dispose()
 {
     if (disposing) return;
     disposing = true;
     components.ForEach(c => c.Dispose());
     components.Clear();
     clippingRI.Dispose();
     clippingRI = null;
     base.Dispose();
     GC.SuppressFinalize(this);
 }
Example #22
0
        /// <summary>
        /// Makes render object representing a check mark.
        /// </summary>
        /// <param name="chk">The check status (must not be None).</param>
        /// <param name="name">The name for the created render object (may be null).</param>
        /// <returns>The render object representing the check mark.</returns>
        private RenderObject MakeCheckboxRO(CheckEnum chk, string name)
        {
            Debug.Assert(chk != CheckEnum.None);
            RenderImage rimg = MakeGlyphRO(s_CheckToGlyph[chk]);

            if (!string.IsNullOrEmpty(name))
            {
                rimg.Name = name;
            }
            return(rimg);
        }
Example #23
0
        public bool Initialize(GameMain gameMain, out string reason)
        {
            _gameMain = gameMain;

            _energyX = (_gameMain.ScreenSize.X / 2) - 190;
            _shipStatsBackground = new BBStretchableImage();
            _miniMapBackground = new BBStretchableImage();
            if (!_shipStatsBackground.Initialize((_gameMain.ScreenSize.X / 2) - 200, -20, 400, 90, StretchableImageType.ThinBorderBG, _gameMain.Random, out reason))
            {
                return false;
            }
            if (!_miniMapBackground.Initialize(_gameMain.ScreenSize.X - 250, _gameMain.ScreenSize.Y - 250, 300, 300, StretchableImageType.ThinBorderBG, _gameMain.Random, out reason))
            {
                return false;
            }

            _bankAmount = new BBLabel();
            _energyAmount = new BBLabel();

            if (!_bankAmount.Initialize(_energyX, 40, string.Empty, Color.White, out reason))
            {
                return false;
            }
            if (!_energyAmount.Initialize(_energyX + 380, 40, string.Empty, Color.White, out reason))
            {
                return false;
            }
            _energyAmount.SetAlignment(true);

            _horizontalEnergyBar = SpriteManager.GetSprite("ScrollHorizontalBar", gameMain.Random);
            if (_horizontalEnergyBar == null)
            {
                reason = "ScrollHorizontalBar sprite not found";
                return false;
            }

            /*_debuggingText = new BBTextBox();
            if (!_debuggingText.Initialize(0, 0, 300, 300, true, false, "DebugText", gameMain.Random, out reason))
            {
                return false;
            }*/

            _miniMapTarget = new RenderImage("MiniMapRender", 230, 230, ImageBufferFormats.BufferRGB888A8);
            _miniMapTarget.BlendingMode = BlendingModes.Modulated;

            _dot = SpriteManager.GetSprite("BackgroundStar", _gameMain.Random);
            if (_dot == null)
            {
                reason = "Star sprite doesn't exist.";
                return false;
            }
            _delay = 0;
            return true;
        }
    protected override void OnInit()
    {
        this.contentPane = UIPackage.CreateObject("RenderTexture", "TestWin").asCom;
        this.SetXY(200, 50);

        _renderImage = new RenderImage(contentPane.GetChild("holder").asGraph);
        //RenderImage是不透明的,可以设置最多两张图片作为背景图
        _renderImage.SetBackground(contentPane.GetChild("frame").asCom.GetChild("n0"), contentPane.GetChild("n20"));

        contentPane.GetChild("btnLeft").onTouchBegin.Add(__clickLeft);
        contentPane.GetChild("btnRight").onTouchBegin.Add(__clickRight);
    }
        public TestShader_Test()
        {
            base.InitializeCluwneLib(1280,720,false,60);

            resources = base.GetResourceManager;
            testRenderImage = new RenderImage("TestShaders",1280,720);
            testsprite = resources.GetSprite("flashlight_mask");

            SS14UnitTest.InjectedMethod += LoadTestShader_ShouldDrawAllRed;

            base.StartCluwneLibLoop();
        }
Example #26
0
        public void Setup()
        {
            base.InitializeCluwneLib(1280, 720, false, 60);

            resources       = base.GetResourceCache;
            testRenderImage = new RenderImage("TestShaders", 1280, 720);
            testsprite      = resources.GetSprite("flashlight_mask");

            SS14UnitTest.InjectedMethod += LoadTestShader_ShouldDrawAllRed;

            base.StartCluwneLibLoop();
        }
 public override void Destroy()
 {
     if (Disposing)
     {
         return;
     }
     Disposing = true;
     _clippingRi.Dispose();
     _clippingRi = null;
     base.Destroy();
     GC.SuppressFinalize(this);
 }
Example #28
0
    protected override void OnInit()
    {
        this.contentPane = UIPackage.CreateObject("RenderTexture", "TestWin").asCom;
        this.SetXY(200, 50);

        _renderImage = new RenderImage(contentPane.GetChild("holder").asGraph);
        //RenderImage是不透明的,可以设置最多两张图片作为背景图
        _renderImage.SetBackground(contentPane.GetChild("frame").asCom.GetChild("n0"), contentPane.GetChild("n20"));

        contentPane.GetChild("btnLeft").onTouchBegin.Add(__clickLeft);
        contentPane.GetChild("btnRight").onTouchBegin.Add(__clickRight);
    }
Example #29
0
        private async void Image_MouseUp(object sender, MouseButtonEventArgs e)
        {
            if (!DrawSelectionBox)
            {
                return;
            }
            // Release the mouse capture and stop tracking it.
            DrawSelectionBox = false;
            OuterGrid.ReleaseMouseCapture();

            // Hide the drag selection box.
            SelectionBox.Visibility = Visibility.Collapsed;
            var l          = RenderImage.TranslatePoint(new Point(0, 0), OuterGrid);
            var mouseUpPos = e.GetPosition(OuterGrid);

            if (mouseUpPos.X < l.X || mouseUpPos.X > l.X + RenderImage.ActualWidth)
            {
                return;
            }


            if (!(DataContext is MandelbrotViewModel dc) || !dc.CanRender())
            {
                return;
            }
            var topLeft   = SelectionBox.TranslatePoint(new Point(0, 0), RenderImage);
            var downRight = topLeft;

            downRight.X += SelectionBox.Width;
            downRight.Y += SelectionBox.Height;

            var oldL = dc.LeftEdge;
            var oldR = dc.RightEdge;
            var oldD = dc.BottomEdge;
            var oldU = dc.UpperEdge;

            var newL = oldL + (oldR - oldL) * topLeft.X / dc.CurrentBitmap.PixelWidth *
                       MandelbrotViewModel.DpiScale;
            var newR = oldL + (oldR - oldL) * downRight.X / dc.CurrentBitmap.PixelWidth *
                       MandelbrotViewModel.DpiScale;
            var newU = oldU - (oldU - oldD) * topLeft.Y / dc.CurrentBitmap.PixelHeight *
                       MandelbrotViewModel.DpiScale;
            var newD = oldU - (oldU - oldD) * downRight.Y / dc.CurrentBitmap.PixelHeight *
                       MandelbrotViewModel.DpiScale;

            dc.LeftEdge   = newL;
            dc.RightEdge  = newR;
            dc.UpperEdge  = newU;
            dc.BottomEdge = newD;

            await dc.ExecuteRender();
        }
        public override void ProcessImage(RenderImage image)
        {
            if (_duration < 3)
                _gaussianBlur.SetRadius(3);
            else if (_duration < 10)
                _gaussianBlur.SetRadius(5);
            else
                _gaussianBlur.SetRadius(7);

            _gaussianBlur.SetSize(new SizeF(image.Width, image.Height));
            _gaussianBlur.SetAmount(Math.Min(_duration/2, 3f));
            _gaussianBlur.PerformGaussianBlur(image);
        }
Example #31
0
    protected override void OnLoad(System.EventArgs e)
    {
        Player = new Player()
        {
            transform = new RectPosition(new Vector2(300, 540), new Vector2(50, 50)),
            image     = new RenderImage(Renderer.LoadImage("./images/player.png"), false)
        };

        FloorImage = new RenderImage(Renderer.LoadImage("./images/chao.png"), false);
        CactoImage = new RenderImage(Renderer.LoadImage("./images/cacto.png"), false);
        VSync      = VSyncMode.On;
        StartGame();
    }
Example #32
0
    public void SetBrightnessLevel(float level)
    {
        RenderImage renderi = GetComponent <RenderImage>();

        if (renderi)
        {
            renderi.brightnessAmount = level;
        }
        else
        {
            brightness = level;
        }
    }
        public override void Initialize()
        {
            RenderGroup group = new RenderGroup("PressStart");
            parentManager.renderCore.renderGroups.Add(group);

            background = new RenderImage(parentManager.renderCore, parentManager.game.Content.Load<Texture2D>("Graphic/PressStartScreen/BG"), group, 0,false, Vector2.Zero);
            pressStart = new RenderImage(parentManager.renderCore, parentManager.game.Content.Load<Texture2D>("Graphic/PressStartScreen/Message"), group, 1, false, new Vector2(500, 500));

            parentManager.renderCore.objects.Add(background);
            parentManager.renderCore.objects.Add(pressStart);

            parentManager.inputManager.registerHandler("PressStartHandler", new PressStartHandler(parentManager), true);
        }
Example #34
0
        public void RenderStipple()
        {
            IRenderImage dest = RenderImage.Create(16, 16);

            Render.renderColoredStippleTile(dest, 0, 0, GREEN, WHITE);
            Assert.AreEqual(WHITE, dest.GetPixel(0, 0));
            Assert.AreEqual(GREEN, dest.GetPixel(1, 0));
            Assert.AreEqual(WHITE, dest.GetPixel(2, 0));
            Assert.AreEqual(GREEN, dest.GetPixel(3, 0));

            Assert.AreEqual(GREEN, dest.GetPixel(0, 1));
            Assert.AreEqual(WHITE, dest.GetPixel(1, 1));
        }
Example #35
0
        public SpeechBubble(string mobname)
        {
            _resourceCache        = IoCManager.Resolve <IResourceCache>();
            _mobName              = mobname;
            _buildTime            = DateTime.Now;
            _textSprite           = new Text(String.Empty, _resourceCache.GetResource <FontResource>("Fonts/CALIBRI.TTF").Font);
            _textSprite.FillColor = Color.Black;
            // TODO Word wrap!
            _textSprite.Position = new Vector2f(5, 3);
            _stringBuilder       = new StringBuilder();

            _bubbleRender = new RenderImage("bubble ", 1, 1);
            _bubbleSprite = new Sprite(_bubbleRender.Texture);
        }
Example #36
0
        public SpeechBubble(string mobname)
        {
            _resourceManager = IoCManager.Resolve<IResourceManager>();
            _mobName = mobname;
            _buildTime = DateTime.Now;
            _textSprite = new Text(String.Empty, _resourceManager.GetFont("CALIBRI"));
            _textSprite.Color = Color.Black;
            // TODO Word wrap!
            _textSprite.Position = new Vector2f(5, 3);
            _stringBuilder = new StringBuilder();

            _bubbleRender = new RenderImage("bubble ",1, 1);
            _bubbleSprite = new Sprite(_bubbleRender.Texture);
        }
        public SpeechBubble(string mobname)
        {
            _resourceManager  = IoCManager.Resolve <IResourceManager>();
            _mobName          = mobname;
            _buildTime        = DateTime.Now;
            _textSprite       = new Text(String.Empty, _resourceManager.GetFont("CALIBRI"));
            _textSprite.Color = SFML.Graphics.Color.Black;
            // TODO Word wrap!
            _textSprite.Position = new Vector2(5, 3);
            _stringBuilder       = new StringBuilder();

            _bubbleRender = new RenderImage(1, 1);
            _bubbleSprite = new Sprite(_bubbleRender);
        }
Example #38
0
 public override void Dispose()
 {
     if (disposing)
     {
         return;
     }
     disposing = true;
     components.ForEach(c => c.Dispose());
     components.Clear();
     clippingRI.Dispose();
     clippingRI = null;
     base.Dispose();
     GC.SuppressFinalize(this);
 }
Example #39
0
        private void CustomEditors_Load(object sender, EventArgs e)
        {
            //Create business-card sized page settings
            C1.C1Preview.PageLayout pl = new C1.C1Preview.PageLayout();
            pl.PageSettings                      = new C1.C1Preview.C1PageSettings();
            pl.PageSettings.PaperKind            = System.Drawing.Printing.PaperKind.Custom;
            pl.PageSettings.Width                = new Unit(3.5, UnitTypeEnum.Inch);
            pl.PageSettings.Height               = new Unit(2, UnitTypeEnum.Inch);
            pl.PageSettings.TopMargin            = new Unit(3, UnitTypeEnum.Mm);
            pl.PageSettings.RightMargin          = new Unit(3, UnitTypeEnum.Mm);
            pl.PageSettings.LeftMargin           = new Unit(3, UnitTypeEnum.Mm);
            pl.PageSettings.BottomMargin         = new Unit(3, UnitTypeEnum.Mm);
            c1PrintDocument1.PageLayouts.Default = pl;

            //Create watermark
            RenderImage ri = new RenderImage();

            ri.Image = Properties.Resources.Referesh;
            c1PrintDocument1.PageLayout.Watermark   = ri;
            c1PrintDocument1.PageLayout.Watermark.X = new Unit(1.75, UnitTypeEnum.Inch);

            //Create data table with border
            rtMain                      = new RenderTable(3, 2);
            rtSub                       = new RenderTable(3, 1);
            rtBorder                    = new RenderTable(1, 1);
            rtBorder.Width              = 3.26;
            rtBorder.Height             = 1.76;
            rtBorder.Style.Borders.All  = new C1.C1Preview.LineDef("2pt", Color.Gray);
            rtBorder.Style.Padding.Left = new Unit(1, UnitTypeEnum.Mm);
            rtMain.Style.Padding.Top    = new Unit(1, UnitTypeEnum.Mm);
            rtMain.Cells[1, 1].Area.Children.Add(rtSub);
            rtBorder.Cells[0, 0].Area.Children.Add(rtMain);
            rtMain.Cols[0].Width    = 1;
            rtMain.Cells[0, 0].Text = "ComponentOne Dev-Tools License";
            rtMain.Cells[0, 0].Style.TextAlignHorz = AlignHorzEnum.Center;
            rtMain.Rows[0].Style.FontBold          = true;
            rtMain.Cells[0, 0].SpanCols            = 2;
            rtSub.Cells[0, 0].Text      = "Name: ";
            rtSub.Cells[1, 0].Text      = "Age: ";
            rtSub.Cells[2, 0].Text      = "Gender: ";
            rtMain.Cells[2, 0].Text     = "Expertise: ";
            rtMain.Cells[2, 0].SpanCols = 2;
            c1PrintDocument1.Body.Children.Add(rtBorder);
            c1PrintDocument1.Style.Borders.All = new C1.C1Preview.LineDef("2pt", Color.Red);

            loadImage();
            c1PreviewPane1.Document = c1PrintDocument1;

            textBoxHost1.TextBox.BorderStyle = BorderStyle.None;
        }
Example #40
0
    protected override void OnInit()
    {
        this.contentPane = UIPackage.CreateObject("Demo", "TestWin").asCom;
        this.Center();

        _renderImage = new RenderImage(contentPane.GetChild("holder").asGraph);
        //RenderImage是不透明的,可以设置最多两张图片作为背景图
        _renderImage.SetBackground(contentPane.GetChild("frame").asCom.GetChild("n0"), contentPane.GetChild("n20"));

        contentPane.GetChild("btnLeft").onMouseDown.Add(__clickLeft);
        contentPane.GetChild("btnRight").onMouseDown.Add(__clickRight);

        //弹出窗口的动效已中心为轴心
        this.SetPivot(this.width / 2, this.height / 2);
    }
Example #41
0
 public void ResolveShadows(Image shadowCastersTexture, RenderImage result, Vector2D lightPosition,
                            bool attenuateShadows, Image mask, Vector4D maskProps, Vector4D diffuseColor)
 {
     resolveShadowsEffect.Parameters["AttenuateShadows"].SetValue(attenuateShadows ? 0 : 1);
     resolveShadowsEffect.Parameters["MaskProps"].SetValue(maskProps);
     resolveShadowsEffect.Parameters["DiffuseColor"].SetValue(diffuseColor);
     //Gorgon.CurrentRenderTarget.BlendingMode = BlendingModes.None;
     ExecuteTechnique(shadowCastersTexture, distancesRT, "ComputeDistances");
     ExecuteTechnique(distancesRT.Image, distortRT, "Distort");
     ApplyHorizontalReduction(distortRT, shadowMap);
     ExecuteTechnique(mask, result, "DrawShadows", shadowMap);
     //ExecuteTechnique(shadowsRT.Image, processedShadowsRT, "BlurHorizontally");
     //ExecuteTechnique(processedShadowsRT.Image, result, "BlurVerticallyAndAttenuate");
     Gorgon.CurrentShader = null;
 }
 public void ResolveShadows(Image shadowCastersTexture, RenderImage result, Vector2 lightPosition,
                            bool attenuateShadows, Image mask, Vector4 maskProps, Vector4 diffuseColor)
 {
     //resolveShadowsEffect.Parameters["AttenuateShadows"].SetValue(attenuateShadows ? 0 : 1);
     //resolveShadowsEffect.Parameters["MaskProps"].SetValue(maskProps);
     //resolveShadowsEffect.Parameters["DiffuseColor"].SetValue(diffuseColor);
     //  CluwneLib.CurrentRenderTarget.BlendingMode = BlendingModes.None;
     ExecuteTechnique(shadowCastersTexture, distancesRT, "ComputeDistances");
     //  ExecuteTechnique(distancesRT.Image, distortRT, "Distort");
     ApplyHorizontalReduction(distortRT, shadowMap);
     ExecuteTechnique(mask, result, "DrawShadows", shadowMap);
     //ExecuteTechnique(shadowsRT.Image, processedShadowsRT, "BlurHorizontally");
     //ExecuteTechnique(processedShadowsRT.Image, result, "BlurVerticallyAndAttenuate");
     CluwneLib.CurrentShader = null;
 }
Example #43
0
    protected override void OnInit()
    {
        this.contentPane = UIPackage.CreateObject("Demo", "TestWin").asCom;
        this.Center();

        _renderImage = new RenderImage(contentPane.GetChild("holder").asGraph);
        //RenderImage是不透明的,可以设置最多两张图片作为背景图
        _renderImage.SetBackground(contentPane.GetChild("frame").asCom.GetChild("n0"), contentPane.GetChild("n20"));

        contentPane.GetChild("btnLeft").onMouseDown.Add(__clickLeft);
        contentPane.GetChild("btnRight").onMouseDown.Add(__clickRight);

        //弹出窗口的动效已中心为轴心
        this.SetPivot(this.width / 2, this.height / 2);
    }
Example #44
0
        public void DrawImage()
        {
            int[] pixels = new int[16 * 16];
            for (int i = 0; i < pixels.Length; i++)
            {
                pixels[i] = 1;
            }
            IRenderImage img = new BufferImage(16, 16, pixels);

            IRenderImage destImage = RenderImage.Create(16, 16);

            Render.render(destImage, 0, 0, img, true);

            int[] resultPixels = destImage.GetArray();
            Assert.AreEqual(pixels, resultPixels);
        }
        public override void ProcessImage(RenderImage image)
        {
            var OstafLikesTheCock = new RenderImage("OstafLikesTheCock", image.Width, image.Height,
                                                    ImageBufferFormats.BufferRGB888A8);
            Gorgon.CurrentRenderTarget = OstafLikesTheCock;
            image.Image.Blit(0, 0, image.Width, image.Height, Color.White, BlitterSizeMode.Crop);
            Gorgon.CurrentRenderTarget = image;
            Gorgon.CurrentShader = _shader.Techniques["DeathShader"];
            _shader.Parameters["SceneTexture"].SetValue(OstafLikesTheCock);
            _shader.Parameters["duration"].SetValue(Math.Abs(_duration));
            OstafLikesTheCock.Image.Blit(0, 0, image.Width, image.Height, Color.White, BlitterSizeMode.Crop);

            Gorgon.CurrentRenderTarget = null;
            Gorgon.CurrentShader = null;
            OstafLikesTheCock.Dispose();
        }
Example #46
0
        private void SetupGorgon()
        {
            Gorgon.Initialize(true, false);
            Gorgon.SetMode(this);
            //Gorgon.AllowBackgroundRendering = true;
            //Gorgon.Screen.BackgroundColor = Color.FromArgb(50, 50, 50);

            //Gorgon.CurrentClippingViewport = new Viewport(0, 20, Gorgon.Screen.Width, Gorgon.Screen.Height - 20);
            //PreciseTimer preciseTimer = new PreciseTimer();
            //Gorgon.MinimumFrameTime = PreciseTimer.FpsToMilliseconds(66);
            Gorgon.Idle += new FrameEventHandler(Gorgon_Idle);
            Gorgon.FrameStatsVisible = true;

            bouncesprite = new Sprite("bouncey", GorgonLibrary.Graphics.Image.FromFile(mediadir + @"\textures\0_Items.png"), new Vector2D(0, 0), new Vector2D(22, 20));
            bouncesprite.SetScale(3, 3);
            decalsprite = new Sprite("decal", GorgonLibrary.Graphics.Image.FromFile(mediadir + @"\textures\0_Decals.png"), new Vector2D(56, 0), new Vector2D(103, 29));
            decalsprite.SetScale(1, 1);
            decalShader = FXShader.FromFile(mediadir + @"\shaders\decalshader.fx", ShaderCompileOptions.Debug);
            decalShader.Parameters["tex1"].SetValue(decalsprite.Image);

            baseTarget       = new RenderImage("baseTarget", 32, 32, ImageBufferFormats.BufferRGB888A8);
            baseTargetSprite = new Sprite("baseTargetSprite", baseTarget);

            bounceysprites = new BounceySprite[10];
            for (int i = 0; i < 10; i++)
            {
                bounceysprites[i] = new BounceySprite(bouncesprite, new Vector2D(random.Next(0, Gorgon.Screen.Width), random.Next(0, Gorgon.Screen.Height)),
                                                      new Vector2D((float)random.Next(-100000, 100000) / 100000, (float)random.Next(-100000, 100000) / 100000),
                                                      decalsprite, new Vector2D(random.Next(-10, 15), random.Next(-10, 15)), decalShader, this);
            }


            //Calculate decal texcoord offsets

            /*Vector2D decalBToffset = new Vector2D(10,5);
             * float BTXDTL_x = decalBToffset.X / bouncesprite.Image.Width;
             * float BTXDTL_y = decalBToffset.Y / bouncesprite.Image.Height;
             * float BTXDBR_x = (decalBToffset.X + decalsprite.Width)/bouncesprite.Image.Width;
             * float BTXDBR_y = (decalBToffset.Y + decalsprite.Height)/bouncesprite.Image.Height;
             * float CFx = (float)decalsprite.Image.Width/(float)bouncesprite.Image.Width;
             * float CFy = (float)decalsprite.Image.Height / (float)bouncesprite.Image.Height;
             * float DOtc_xtl = (float)decalsprite.ImageOffset.X / (float)decalsprite.Image.Width;
             * float DOtc_ytl = (float)decalsprite.ImageOffset.Y / (float)decalsprite.Image.Height;
             *
             * Vector4D decalParms1 = new Vector4D(BTXDTL_x, BTXDTL_y, BTXDBR_x, BTXDBR_y);
             * Vector4D decalParms2 = new Vector4D(CFx, CFy, DOtc_xtl, DOtc_ytl);*/
        }
        public override void ProcessImage(RenderImage image)
        {
            var OstafLikesTheCock = new RenderImage(image.Height, image.Height);

            CluwneLib.CurrentRenderTarget = OstafLikesTheCock;

            image.Blit(0, 0, image.Height, image.Height, Color.White, BlitterSizeMode.Crop);
            CluwneLib.CurrentRenderTarget = image;
            CluwneLib.CurrentShader       = _shader;
            _shader.SetParameter("SceneTexture", OstafLikesTheCock);
            _shader.setDuration((Math.Abs(_duration)));
            OstafLikesTheCock.Blit(0, 0, image.Height, image.Height, Color.White, BlitterSizeMode.Crop);

            CluwneLib.CurrentRenderTarget = null;
            CluwneLib.CurrentShader       = null;
            OstafLikesTheCock.Dispose();
        }
Example #48
0
 internal void Start(Parametter para)
 {
     //Parametter para = new Parametter();
     //para.DEserialize();
     if (para.Type.Equals("china"))
     {
         RenderChina.Start(para.To, para.From);
     }
     if (para.Type.Equals("span"))
     {
         RenderSpan.Start(para.To, para.From);
     }
     if (para.Type.Equals("arabic"))
     {
         RenderImage.Start(para.To, para.From, para.Type);
     }
 }
Example #49
0
        public override void ProcessImage(RenderImage image)
        {
            var OstafLikesTheCock = new RenderImage("OstafLikesTheCock", image.Width, image.Height,
                                                    ImageBufferFormats.BufferRGB888A8);

            Gorgon.CurrentRenderTarget = OstafLikesTheCock;
            image.Image.Blit(0, 0, image.Width, image.Height, Color.White, BlitterSizeMode.Crop);
            Gorgon.CurrentRenderTarget = image;
            Gorgon.CurrentShader       = _shader.Techniques["DeathShader"];
            _shader.Parameters["SceneTexture"].SetValue(OstafLikesTheCock);
            _shader.Parameters["duration"].SetValue(Math.Abs(_duration));
            OstafLikesTheCock.Image.Blit(0, 0, image.Width, image.Height, Color.White, BlitterSizeMode.Crop);

            Gorgon.CurrentRenderTarget = null;
            Gorgon.CurrentShader       = null;
            OstafLikesTheCock.Dispose();
        }
Example #50
0
        private void SetupGorgon()
        {
            Gorgon.Initialize(true, false);
            Gorgon.SetMode(this);
            //Gorgon.AllowBackgroundRendering = true;
            //Gorgon.Screen.BackgroundColor = Color.FromArgb(50, 50, 50);

            //Gorgon.CurrentClippingViewport = new Viewport(0, 20, Gorgon.Screen.Width, Gorgon.Screen.Height - 20);
            //PreciseTimer preciseTimer = new PreciseTimer();
            //Gorgon.MinimumFrameTime = PreciseTimer.FpsToMilliseconds(66);
            Gorgon.Idle += new FrameEventHandler(Gorgon_Idle);
            Gorgon.FrameStatsVisible = true;

            bouncesprite = new Sprite("bouncey", GorgonLibrary.Graphics.Image.FromFile(mediadir + @"\textures\0_Items.png"), new Vector2D(0,0), new Vector2D(22,20));
            bouncesprite.SetScale(3, 3);
            decalsprite = new Sprite("decal", GorgonLibrary.Graphics.Image.FromFile(mediadir + @"\textures\0_Decals.png"), new Vector2D(56,0), new Vector2D(103,29));
            decalsprite.SetScale(1, 1);
            decalShader = FXShader.FromFile(mediadir + @"\shaders\decalshader.fx", ShaderCompileOptions.Debug);
            decalShader.Parameters["tex1"].SetValue(decalsprite.Image);

            baseTarget = new RenderImage("baseTarget", 32, 32, ImageBufferFormats.BufferRGB888A8);
            baseTargetSprite = new Sprite("baseTargetSprite", baseTarget);

            bounceysprites = new BounceySprite[10];
            for (int i = 0; i < 10; i++)
            {
                bounceysprites[i] = new BounceySprite(bouncesprite, new Vector2D(random.Next(0, Gorgon.Screen.Width), random.Next(0, Gorgon.Screen.Height)), 
                                        new Vector2D((float)random.Next(-100000,100000) / 100000, (float)random.Next(-100000,100000) / 100000),
                                        decalsprite, new Vector2D(random.Next(-10,15), random.Next(-10,15)), decalShader, this);
            }


            //Calculate decal texcoord offsets
            /*Vector2D decalBToffset = new Vector2D(10,5);
            float BTXDTL_x = decalBToffset.X / bouncesprite.Image.Width;
            float BTXDTL_y = decalBToffset.Y / bouncesprite.Image.Height;
            float BTXDBR_x = (decalBToffset.X + decalsprite.Width)/bouncesprite.Image.Width;
            float BTXDBR_y = (decalBToffset.Y + decalsprite.Height)/bouncesprite.Image.Height;
            float CFx = (float)decalsprite.Image.Width/(float)bouncesprite.Image.Width;
            float CFy = (float)decalsprite.Image.Height / (float)bouncesprite.Image.Height;
            float DOtc_xtl = (float)decalsprite.ImageOffset.X / (float)decalsprite.Image.Width;
            float DOtc_ytl = (float)decalsprite.ImageOffset.Y / (float)decalsprite.Image.Height;

            Vector4D decalParms1 = new Vector4D(BTXDTL_x, BTXDTL_y, BTXDBR_x, BTXDBR_y);
            Vector4D decalParms2 = new Vector4D(CFx, CFy, DOtc_xtl, DOtc_ytl);*/
        }
Example #51
0
        private void ApplyHorizontalReduction(RenderImage source, RenderImage destination)
        {
            int         step = reductionChainCount - 1;
            RenderImage src  = source;
            RenderImage HorizontalReduction = reductionRT[step];

            reductionEffectTechnique["HorizontalReduction"].setAsCurrentShader();
            // Disabled GLTexture stuff for now just to get the pipeline working.
            // The only side effect is that floating point precision will be low,
            // making light borders and shit have jaggy edges.
            //GLTexture GLHorizontalReduction = new GLTexture("desto", (int)source.Width, (int)source.Height, ImageBufferFormats.BufferGR1616F);
            //Debug.DebugRendertarget(source);
            while (step >= 0)
            {
                HorizontalReduction = reductionRT[step]; // next step

                HorizontalReduction.BeginDrawing();
                HorizontalReduction.Clear(Color.White);

                //reductionEffectTechnique["HorizontalReduction"].SetParameter("secondTexture", src);
                reductionEffectTechnique["HorizontalReduction"].SetParameter("TextureDimensions", 1.0f / src.Width);

                // Sourcetexture not needed... just blit!
                src.Blit(0, 0, HorizontalReduction.Width, HorizontalReduction.Height, BlitterSizeMode.Scale); // draw SRC to HR
                                                                                                              //fix
                                                                                                              //GLHorizontalReduction.Blit(src.Texture, CluwneLib.CurrentShader);

                HorizontalReduction.EndDrawing();
                src = HorizontalReduction; // hr becomes new src
                //Debug.DebugRendertarget(HorizontalReduction);
                step--;
            }


            CluwneLib.ResetShader();
            //copy to destination
            destination.BeginDrawing();
            destination.Clear(Color.White);

            HorizontalReduction.Blit(0, 0, destination.Height, destination.Width);
            //GLHorizontalReduction.Blit(HorizontalReduction.Texture, CluwneLib.CurrentShader);
            destination.EndDrawing();
            //Debug.DebugRendertarget(destination);
            CluwneLib.ResetRenderTarget();
        }
Example #52
0
        /// <summary>
        /// Makes sure the internal buffer is ready then returns a <see cref="RenderImage"/> to draw to it.
        /// </summary>
        /// <returns>The <see cref="RenderImage"/> to use, or null if the buffer could not be prepared.</returns>
        RenderImage GetRenderImage()
        {
            var oldRI = _ri;

            _ri = _window.CreateBufferRenderImage(_ri);

            if (_ri == null)
            {
                return(null);
            }

            if (!BypassClear || _ri != oldRI)
            {
                _ri.Clear(BufferClearColor);
            }

            return(_ri);
        }
        public override void ProcessImage(RenderImage image)
        {
            var OstafLikesTheCock = new RenderImage("CockLoverOstaf", image.Height, image.Height);

            OstafLikesTheCock.BeginDrawing();
            image.Blit(0, 0, image.Height, image.Height, SFML.Graphics.Color.White, BlitterSizeMode.Crop);
            OstafLikesTheCock.EndDrawing();

            image.BeginDrawing();
            _shader.setAsCurrentShader();
            _shader.SetParameter("SceneTexture", OstafLikesTheCock);
            _shader.setDuration((Math.Abs(_duration)));
            OstafLikesTheCock.Blit(0, 0, image.Height, image.Height, SFML.Graphics.Color.White, BlitterSizeMode.Crop);
            image.EndDrawing();

            _shader.ResetCurrentShader();
            OstafLikesTheCock.Dispose();
        }
        public void LoadContent()
        {
            reductionEffectTechnique = _resourceManager.GetTechnique("reductionEffect");
            resolveShadowsEffectTechnique = _resourceManager.GetTechnique("resolveShadowsEffect");

            //// BUFFER TYPES ARE VERY IMPORTANT HERE AND IT WILL BREAK IF YOU CHANGE THEM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! HONK HONK
            distortRT = new RenderImage("distortRT" + baseSize, baseSize, baseSize, ImageBufferFormats.BufferGR1616F);
            distancesRT = new RenderImage("distancesRT" + baseSize, baseSize, baseSize, ImageBufferFormats.BufferGR1616F);
            shadowMap = new RenderImage("shadowMap" + baseSize, 2, baseSize, ImageBufferFormats.BufferGR1616F);
            reductionRT = new RenderImage[reductionChainCount];
            for (int i = 0; i < reductionChainCount; i++)
            {
                reductionRT[i] = new RenderImage("reductionRT" + i + baseSize, 2 << i, baseSize,
                                                 ImageBufferFormats.BufferGR1616F);
            }
            shadowsRT = new RenderImage("shadowsRT" + baseSize, baseSize, baseSize, ImageBufferFormats.BufferRGB888A8);
            processedShadowsRT = new RenderImage("processedShadowsRT" + baseSize, baseSize, baseSize,
                                                 ImageBufferFormats.BufferRGB888A8);
        }
Example #55
0
        public SpeechBubble(string mobname)
        {
            _resourceManager = IoCManager.Resolve<IResourceManager>();
            _mobName = mobname;
            _buildTime = DateTime.Now;
            _textSprite = new TextSprite
                (
                "chatBubbleTextSprite_" + _mobName,
                String.Empty,
                _resourceManager.GetFont("CALIBRI")
                )
                              {
                                  Color = Color.Black,
                                  WordWrap = true
                              };

            _textSprite.SetPosition(5, 3);
            _stringBuilder = new StringBuilder();

            _bubbleRender = new RenderImage("ChatBubbleRenderImage_" + _mobName, 1, 1, ImageBufferFormats.BufferRGB888A8);
            _bubbleSprite = new Sprite("ChatBubbleRenderSprite_" + _mobName, _bubbleRender);
        }
        public override void ProcessImage(RenderImage image)
        {
            if (_noiseBase == null)
                GenerateNoise(32);

            var shadowColor = new Vector4D(1, 0, 0, 1);
            var midtoneColor = new Vector4D(0, 0, 1, 1);
            var highlightColor = new Vector4D(0, 1, 0, 1);
            Gorgon.CurrentRenderTarget = copyImage;
            Gorgon.CurrentShader = _shader;
            _shader.Parameters["xTime"].SetValue(_duration/20);
            _shader.Parameters["xOvercast"].SetValue(1.0f);
            _shader.Parameters["NoiseTexture"].SetValue(_noiseBase);
            _shader.Parameters["SceneTexture"].SetValue(image);
            //_shader.Parameters["shadowColor"].SetValue(shadowColor);
            //_shader.Parameters["midtoneColor"].SetValue(midtoneColor);
            //_shader.Parameters["highlightColor"].SetValue(highlightColor);

            _noiseBase.Blit(0, 0, image.Width, image.Height);
            Gorgon.CurrentShader = null;
            Gorgon.CurrentRenderTarget = null;

            image.CopyFromImage(copyImage.Image);
        }
 private void ExecuteTechnique(Texture source, RenderImage destination, string techniqueName)
 {
     ExecuteTechnique(source, destination, techniqueName, null);
 }
        private void ExecuteTechnique(Texture source, RenderImage destination, string techniqueName, RenderImage shadowMap)
        {
            Vector2 renderTargetSize;
            renderTargetSize = new Vector2(baseSize, baseSize);

            CluwneLib.CurrentRenderTarget = destination;
            CluwneLib.CurrentRenderTarget.Clear(Color.White);

            CluwneLib.CurrentShader = resolveShadowsEffectTechnique[techniqueName];

                resolveShadowsEffectTechnique[techniqueName].SetParameter("renderTargetSize", renderTargetSize);
            if (source != null)
                resolveShadowsEffectTechnique[techniqueName].SetParameter("InputTexture", source);
            if (shadowMap != null)
                resolveShadowsEffectTechnique[techniqueName].SetParameter("ShadowMapTexture", shadowMap);

            quadRender.Render(new Vector2(1, 1)*-1, new Vector2(1, 1));

            CluwneLib.CurrentRenderTarget = null;
        }
        private void ApplyHorizontalReduction(RenderImage source, RenderImage destination)
        {
            int step = reductionChainCount - 1;
            RenderImage s = source;
            RenderImage d = reductionRT[step];
            CluwneLib.CurrentShader = reductionEffectTechnique["HorizontalReduction"];

            while (step >= 0)
            {
                d = reductionRT[step];

                CluwneLib.CurrentRenderTarget = d;
                d.Clear(Color.White);

                var textureDim = new Vector2(1.0f/s.Width, 1.0f/s.Height);
                reductionEffectTechnique["HorizontalReduction"].SetParameter("SourceTexture", s);
                reductionEffectTechnique["HorizontalReduction"].SetParameter("TextureDimensions",textureDim);
                quadRender.Render(new Vector2(1, 1)*-1, new Vector2(1, 1));
                s = d;
                step--;
            }

            //copy to destination
            CluwneLib.CurrentRenderTarget = destination;

            reductionEffectTechnique["Copy"].SetParameter("SourceTexture",d);
            reductionEffectTechnique["Copy"].SetParameter("SourceTexture", reductionRT[reductionChainCount - 1]);
            CluwneLib.CurrentShader = reductionEffectTechnique["Copy"];

            CluwneLib.CurrentRenderTarget.Clear(Color.White);
            quadRender.Render(new Vector2(1, 1)*-1, new Vector2(1, 1));

            CluwneLib.CurrentRenderTarget = null;
        }
        public void ResolveShadows(Texture shadowCastersTexture, RenderImage result, Vector2 lightPosition,
                                   bool attenuateShadows, Texture mask, Vector4 maskProps, Vector4 diffuseColor)
        {
            //only DrawShadows needs these vars
            resolveShadowsEffectTechnique["DrawShadows"].SetParameter("AttenuateShadows", attenuateShadows ? 0 : 1);
            resolveShadowsEffectTechnique["DrawShadows"].SetParameter("MaskProps", maskProps);
            resolveShadowsEffectTechnique["DrawShadows"].SetParameter("DiffuseColor", diffuseColor);

              // CluwneLib.CurrentRenderTarget.BlendingMode = BlendingModes.None;
            ExecuteTechnique(shadowCastersTexture, distancesRT, "ComputeDistances");
            ExecuteTechnique(distancesRT.Texture, distortRT, "Distort");
            ApplyHorizontalReduction(distortRT, shadowMap);
            ExecuteTechnique(mask, result, "DrawShadows", shadowMap);
            ExecuteTechnique(shadowsRT.Texture, processedShadowsRT, "BlurHorizontally");
            ExecuteTechnique(processedShadowsRT.Texture, result, "BlurVerticallyAndAttenuate");
            CluwneLib.CurrentShader = null;
        }