Bruce Bowyer-Smyth

Members
  • Content Count

    179
  • Joined

  • Last visited

Posts posted by Bruce Bowyer-Smyth


  1. I have an update to my Blur Pack (http://forums.getpaint.net/index.php?/topic/19364-hardware-accelerated-blur-pack-v24/) targeting paint.net 4. Thought that I would put it out for a bit of a test first seeing that I have switched over to using SharpDX and made some other performance improvements.

     

    Download here -> http://www.wmf2wpf.com/downloads/hablurpack3.zip

     

    If there are no issues I'll add it to the other post for general download.

     

    Thanks


  2. It's a weird one. Doing some more testing it only seems to happen during the effect preview. So the codelab script is working fine.

     

    Using the basic effect below, put a breakpoint on the line indicated with a condition of "rect.Right == dst.Width"

     

    Using an 800x600 the breakpoint is hit during preview and after clicking ok to commit.

     

    Opening a 4800x6400 the first rect in the preview is {X=0,Y=0,Width=4798,Height=1} and the breakpoint is never hit during the preview. Click OK and the first rect is {X=4798,Y=0,Width=2,Height=1} and the break point is hit. The preview seems to be missing the width of 2 rects. If you zoom right in on the right hand edge of the image the breakpoint IS hit during the preview.

     

    It does seem to be related to zoom levels. If I zoom out 2 times it starts working. This screen size is 1280x1024 and image as opened at zoom level "Window".

    using PaintDotNet;
    using PaintDotNet.Effects;
    using PaintDotNet.PropertySystem;
    using System.Collections.Generic;
    using System.Drawing;
    
    namespace ClassLibrary1
    {
        [PluginSupportInfo(typeof(PluginSupportInfo), DisplayName = "Width Test")]
        public class Class1 : PaintDotNet.Effects.PropertyBasedEffect
        {
            public static string StaticName
            {
                get
                {
                    return "Width Test";
                }
            }
    
            public static Bitmap StaticIcon
            {
                get
                {
                    return new Bitmap(16, 16);
                }
            }
    
            public Class1()
                : base(Class1.StaticName, Class1.StaticIcon, SubmenuNames.Blurs, PaintDotNet.Effects.EffectFlags.Configurable | PaintDotNet.Effects.EffectFlags.SingleThreaded)
            {
            }
    
            protected override void OnRender(Rectangle[] rois, int startIndex, int length)
            {
                var dst = base.DstArgs.Surface;
    
                foreach (Rectangle rect in rois)
                {
                    // Breakpoint next line
                    for (int y = rect.Top; y < rect.Bottom; y++)
                    {
    
                        for (int x = rect.Left; x < rect.Right; x++)
                        {
    
                            dst[x, y] = ColorBgra.Red;
    
                        }
                    }
                }
            }
    
            protected override PropertyCollection OnCreatePropertyCollection()
            {
                List<Property> props = new List<Property>();
    
                return new PropertyCollection(props);
            }
        }
    }
    
    

  3. No sorry there is still an issue. Rectangle.Right is defined as "The value of the Right property represents the x-coordinate of the first point at the right edge of the rectangle that is not contained in the rectangle". So Right will equal Width when Left = 0.

     

    At some point Paint.NET is passing in Rectangles that do not reach the width as in the 4800 to 4798 above. There are also no additional rois passed in that will cover the gap in the width.

     

    Mentioned above I was sure this didn't used to be a problem on my old Win7 box.


  4. Thanks Rick, The abstract statement was missing from that class. That fixed up the warning.

    New version posted:

    Fixed plugin load warning

    Fixed issue where some blurs were off by half a pixel

    Added support for falling back to the Windows 8 software based compute shader if you GPU doesn't have the required features.