Jump to content

What's next for brush factory?


Recommended Posts

@welshblue My last message was in response to what seemed to be some confusion about which version was in use. Testing is always useful; I don't have the changes in source code yet and null54 is making a lot of changes, so I'm waiting for him to submit a PR to test it all independently myself. I'll just fix whatever isn't working at that point. Your intermittent testing helps, too, I'm just really busy this week and didn't have a lot of time to contribute yet.

  • Like 1

Untitled.png.28dedeebdce78c42589f24716981923f.png

Link to comment
Share on other sites

@Joshua Lamusga

 

Two pull requests:

 

Moving the undo files out of the temp folder: https://github.com/JoshuaLamusga/Brush-Factory/pull/8

Downscale brushes larger than the maximum brush size: https://github.com/JoshuaLamusga/Brush-Factory/pull/9

 

I am still trying to decide how I want to submit the ListView and background loading changes.

I am thinking that making those separate PRs would be easier to read, due to the amount of changes involved.

PdnSig.png

Plugin Pack | PSFilterPdn | Content Aware Fill | G'MICPaint Shop Pro Filetype | RAW Filetype | WebP Filetype

The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait

 

Link to comment
Share on other sites

On 11/1/2018 at 1:22 PM, null54 said:

Here is a version that implements background loading of the brushes.

It also implements the memory optimization that I described in my previous post. 

 

This is fantastic work!

 

However, I made it crash.  What happened was I painted a bunch of gibberish using two different ABR files in Brush Factory on the default layer.  Then I made a new layer, and tried to run Brush Factory again.

 

Quote

This text file was created because paint.net crashed. Please e-mail this to crashlog4@getpaint.net so we can diagnose and fix the problem.

 

Application version: paint.net 4.1.3 (Final 4.103.6872.5058)

Time of crash: 11/2/18 3:46:23 PM

Application uptime: 00:12:02.3331174

Application state: Running

Working set: 154,996 KiB

Handles and threads: 1167 handles, 34 threads, 245 gdi, 230 user

Install type: Classic

Application directory: C:\Program Files\paint.net

Current directory: C:\Program Files\paint.net

Install directory: C:\Program Files\paint.net

OS Version: Windows 10 Education 10.0.17134.0 x64 (0x79)

.NET version: CLR 4.0.30319.42000 x64

Processor: "Intel(R) Core(TM) i5-4570R CPU @ 2.70GHz" @ ~2694MHz (2C/2T, DEP, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, XSAVE)

Physical memory: 2047 MB

Video card: Parallels Display Adapter (WDDM) (v:1AB8, d:4005, r:0), Microsoft Basic Render Driver (v:1414, d:8C, r:0)

Hardware acceleration: True (default: True)

UI animations: False

UI DPI: 96.00 dpi (1.00x scale)

UI theme: VisualStyleClass=Aero, EffectiveTheme=Aero, DWM=yes, AeroColorScheme=Light, ThemeFileName=Aero.msstyles

Updates: True, 11/2/18

Locale: pdnr.c: en-US, hklm: en-US, hkcu: en-US, cc: en-US, cuic: en-US

Flags: EnableSmoothMouseInput=False

 

Exception details:

System.NullReferenceException: Object reference not set to an instance of an object.

   at BrushFactory.WinBrushFactory.GetListViewItemHeight()

   at BrushFactory.WinBrushFactory.backgroundWorker_DoWork(Object sender, DoWorkEventArgs e)

   at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)

   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

 

Managed assemblies:

    mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @ C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll

    PaintDotNet, Version=4.103.6872.5058, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\PaintDotNet.exe

    PaintDotNet.Base, Version=4.103.6872.5058, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\PaintDotNet.Base.dll

    WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\WindowsBase\v4.0_4.0.0.0__31bf3856ad364e35\WindowsBase.dll

    System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll

    System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll

    System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll

    PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework\v4.0_4.0.0.0__31bf3856ad364e35\PresentationFramework.dll

    PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_64\PresentationCore\v4.0_4.0.0.0__31bf3856ad364e35\PresentationCore.dll

    System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll

    PaintDotNet.Core, Version=4.103.6872.5058, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\PaintDotNet.Core.dll

    PaintDotNet.SystemLayer, Version=4.103.6872.5058, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\PaintDotNet.SystemLayer.dll

    PaintDotNet.Framework, Version=4.103.6872.5058, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\PaintDotNet.Framework.dll

    PaintDotNet.Resources, Version=4.103.6872.5058, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\PaintDotNet.Resources.dll

    PaintDotNet.Data, Version=4.103.6872.5058, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\PaintDotNet.Data.dll

    PaintDotNet.Effects, Version=4.103.6872.5058, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\PaintDotNet.Effects.dll

    System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll

    System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll

    PaintDotNet.SystemLayer.Native.x64, Version=4.103.6872.5058, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\PaintDotNet.SystemLayer.Native.x64.dll

    System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @ C:\Program Files\paint.net\System.Runtime.CompilerServices.Unsafe.dll

    System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xaml\v4.0_4.0.0.0__b77a5c561934e089\System.Xaml.dll

    "AA's_Assistant", Version=1.1.4329.33034, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\AA's_Assistant.dll

    Alpha2Gray, Version=4.5.6832.21862, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Alpha2Gray.dll

    AlphaMask, Version=2.0.3574.41943, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\AlphaMask.dll

    BasicPhotoAdjustments, Version=2.1.4020.485, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\BasicPhotoAdjustments.dll

    Bidirectional Blur, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Bidirectional Blur.dll

    BlackAndWhiteConverter, Version=1.1.3472.36275, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Black and White Converter.dll

    BlurBlend, Version=1.1.6601.26020, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\BlurBlend.dll

    "Borders N' Shapes", Version=4.0.4642.26476, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Borders N' Shapes.dll

    BrushFactory, Version=1.5.0.11367, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\BrushFactory.dll

    Burninate, Version=4.5.6827.39185, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Burninate.dll

    CircleText, Version=1.4.4415.32488, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\CircleText.dll

    Color Match, Version=4.0.4642.26532, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Color Match.dll

    ColorBalance, Version=4.5.6832.41698, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\ColorBalance.dll

    ContentAwareFill, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\ContentAwareFill.dll

    Curves+, Version=4.0.6119.31044, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Curves+.dll

    dpyColorBalance, Version=1.1.4330.37850, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\dpyColorBalance.dll

    Dream, Version=4.5.6832.41729, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Dream.dll

    EdHarvey.Effects, Version=4.0.5120.42730, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\EdHarvey.Effects.dll

    EOEffects, Version=1.10.16.12, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\EOEffects.dll

    Eyeshine, Version=1.0.3700.25905, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Eyeshine.dll

    FillFromClipboard, Version=4.5.6826.30801, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\FillFromClipboard.dll

    FillFromFile, Version=4.5.6826.31854, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\FillFromFile.dll

    Film, Version=4.0.4642.26607, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Film.dll

    Flip, Version=4.5.6832.41809, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Flip.dll

    FloydSteinbergDithering, Version=4.5.6828.38953, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\FloydSteinbergDithering.dll

    GaussianBlurPlus, Version=4.2.5691.27401, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\GaussianBlurPlus.dll

    Gradient Bars, Version=4.0.5152.23084, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Gradient Bars.dll

    Gradient Blocks, Version=4.0.4642.26658, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Gradient Blocks.dll

    Gradient Grid, Version=4.0.6436.36068, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Gradient Grid.dll

    Gradient Mapping, Version=4.0.6547.33963, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Gradient Mapping.dll

    Grain, Version=1.0.3854.25523, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Grain.dll

    Gray2Alpha, Version=4.5.6826.36897, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Gray2Alpha.dll

    Grid Warp, Version=4.0.6544.34496, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Grid Warp.dll

    GridCheckerboard, Version=4.5.6828.36789, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\GridCheckerboard.dll

    HSVGradients, Version=4.5.6832.41864, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\HSVGradients.dll

    HueSatPlus, Version=4.5.6832.41926, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\HueSatPlus.dll

    Jitter, Version=4.0.4642.26986, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Jitter.dll

    Kill Color Keeper, Version=1.0.6641.13453, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Kill Color Keeper.dll

    Landscape, Version=4.5.6826.38591, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Landscape.dll

    LevelHorizon, Version=4.5.6826.37471, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\LevelHorizon.dll

    Liquify, Version=4.0.5873.25113, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Liquify.dll

    LocalContrast, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\LocalContrast.dll

    MemeMaker, Version=4.5.6828.38061, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\MemeMaker.dll

    Metallize, Version=1.2.4415.32969, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Metallize.dll

    ObjectTools, Version=4.5.6832.42044, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\ObjectTools.dll

    OilPaintingPlus, Version=4.5.6832.21777, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\OilPaintingPlus.dll

    Feather, Version=2.3.4315.37038, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\OldFeather.dll

    Outline Object, Version=4.0.4642.26954, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Outline Object.dll

    PasteAlpha, Version=4.5.6826.36532, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\PasteAlpha.dll

    Pastel, Version=4.5.6832.42132, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Pastel.dll

    PhotoAdjustments, Version=4.5.6826.37237, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\PhotoAdjustments.dll

    Pixelate+, Version=4.0.4642.26940, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Pixelate+.dll

    Polygon, Version=4.5.6828.38648, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Polygon.dll

    Random Effect, Version=4.0.4642.26928, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Random Effect.dll

    Random Shape Fill, Version=4.0.4642.26910, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Random Shape Fill.dll

    RedEyeQuickFix, Version=1.1.3161.39688, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\RedEyeQuickFix.dll

    RemoveDust, Version=4.5.6826.37862, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\RemoveDust.dll

    ScriptLab, Version=4.0.6107.18914, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\ScriptLab.dll

    SeamCarving, Version=4.5.6838.35770, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\SeamCarving.dll

    SelectionTools, Version=4.5.6832.22117, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\SelectionTools.dll

    ShadowHighlight, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\ShadowHighlight.dll

    Shape3D, Version=1.2.6.2, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Shape3D.dll

    Sharpen+, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Sharpen+.dll

    Smudge, Version=4.0.5873.25097, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Smudge.dll

    Splatter, Version=4.0.5873.25083, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Splatter.dll

    Stitch, Version=4.0.4642.26808, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Stitch.dll

    Temperature, Version=4.5.6832.41128, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Temperature.dll

    Texture Object Rounder, Version=1.0.6464.41586, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Texture Object Rounder.dll

    TextureSmoother, Version=1.0.6096.31689, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\TextureSmoother.dll

    Trail, Version=4.0.4642.26791, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Trail.dll

    Transparency, Version=4.5.6832.41213, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Transparency.dll

    TRsAlphaCutter, Version=3.0.4.0, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\TRsAlphaCutter.dll

    TRsDodgeBurn, Version=1.4.0.33503, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\TRsDodgeBurn.dll

    TRsDodgeBurn.resources, Version=1.3.26.12436, Culture=zh-CN, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\TRsDodgeBurn.resources.dll

    Twist, Version=4.0.5873.25056, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Twist.dll

    Vandermotten.PaintDotNetEffects.Blurs, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Vandermotten.PaintDotNetEffects.Blurs.dll

    Vandermotten.PaintDotNetEffects.ColorAccent, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Vandermotten.PaintDotNetEffects.ColorAccent.dll

    Vandermotten.PaintDotNetEffects, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Vandermotten.PaintDotNetEffects.dll

    Vandermotten.PaintDotNetEffects.DropShadow, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Vandermotten.PaintDotNetEffects.DropShadow.dll

    Vandermotten.PaintDotNetEffects.ObjectAlign, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\Vandermotten.PaintDotNetEffects.ObjectAlign.dll

    VignettePlus, Version=4.5.6826.39332, Culture=neutral, PublicKeyToken=null @ C:\Program Files\paint.net\Effects\VignettePlus.dll

    System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Design\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Design.dll

 

Native modules:

    C:\Program Files\paint.net\PaintDotNet.exe, version=4.103.6872.5058

    C:\WINDOWS\SYSTEM32\ntdll.dll, version=10.0.17134.228 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\MSCOREE.DLL, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\KERNEL32.dll, version=10.0.17134.228 (WinBuild.160101.0800)

    C:\WINDOWS\System32\KERNELBASE.dll, version=10.0.17134.228 (WinBuild.160101.0800)

    C:\WINDOWS\System32\ADVAPI32.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\msvcrt.dll, version=7.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\sechost.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\RPCRT4.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscoreei.dll, version=4.7.3056.0 built by: NET472REL1

    C:\WINDOWS\System32\SHLWAPI.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\combase.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\ucrtbase.dll, version=10.0.17134.319 (WinBuild.160101.0800)

    C:\WINDOWS\System32\bcryptPrimitives.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\GDI32.dll, version=10.0.17134.285 (WinBuild.160101.0800)

    C:\WINDOWS\System32\gdi32full.dll, version=10.0.17134.345 (WinBuild.160101.0800)

    C:\WINDOWS\System32\msvcp_win.dll, version=10.0.17134.137 (WinBuild.160101.0800)

    C:\WINDOWS\System32\USER32.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\win32u.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\IMM32.DLL, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\kernel.appcore.dll, version=10.0.17134.112 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\VERSION.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll, version=4.7.3190.0 built by: NET472REL1LAST_C

    C:\WINDOWS\SYSTEM32\MSVCR120_CLR0400.dll, version=12.00.52519.0 built by: VSWINSERVICING

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\mscorlib\702ac456510c6f6cb7389de8df32ae7a\mscorlib.ni.dll, version=4.7.3190.0 built by: NET472REL1LAST_C

    C:\WINDOWS\System32\ole32.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\system32\uxtheme.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System\e7b63b6b792b262c81a8eec015c3e0ac\System.ni.dll, version=4.7.3190.0 built by: NET472REL1LAST_C

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Core\afd0a55227c285cad30d3e86d959db47\System.Core.ni.dll, version=4.7.3190.0 built by: NET472REL1LAST_C

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\WindowsBase\ab61410293dde7ee843b4b85d1d50c88\WindowsBase.ni.dll, version=4.7.3190.0 built by: NET472REL1LAST_C

    C:\WINDOWS\SYSTEM32\CRYPTSP.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\system32\rsaenh.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\bcrypt.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\CRYPTBASE.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Drawing\c99b30a8adcc2e330c85a88e63eda3c2\System.Drawing.ni.dll, version=4.7.3056.0 built by: NET472REL1

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PresentationCore\5f225c81c1d66a654a34a43dd9504d40\PresentationCore.ni.dll, version=4.7.3190.0 built by: NET472REL1LAST_C

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\Presentatio5ae0f00f#\9a96a5d47283a7dca16693065a9640ef\PresentationFramework.ni.dll, version=4.7.3190.0

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet.Base\0f2971460b22a1c51b668cc388bd1177\PaintDotNet.Base.ni.dll, version=4.103.6872.5058

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Windows.Forms\ade68b7a739043dc843f645157b0b636\System.Windows.Forms.ni.dll, version=4.7.3056.0 built by: NET472REL1

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet500b2e4f#\5b78b759d6ec0374523eef08a3bbeeb6\PaintDotNet.SystemLayer.ni.dll, version=4.103.6872.5058

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet.Core\4025127bbbabf58b3038174f678d038d\PaintDotNet.Core.ni.dll, version=4.103.6872.5058

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet26779e70#\a2655741420ab84fe070f9130d96c252\PaintDotNet.Resources.ni.dll, version=4.103.6872.5058

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet7afaaa15#\6fc0b32cf1688eb8c0edcfd599fc1625\PaintDotNet.Framework.ni.dll, version=4.103.6872.5058

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet.Data\99bc3fa6a93342dc94f0582a4b668fcb\PaintDotNet.Data.ni.dll, version=4.103.6872.5058

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet.Effects\bb19a6d919598338f47178b2903e7a69\PaintDotNet.Effects.ni.dll, version=4.103.6872.5058

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet\b6c29919e9e2355f48e6fbd483503a32\PaintDotNet.ni.exe, version=4.103.6872.5058

    C:\WINDOWS\SYSTEM32\dwrite.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\wpfgfx_v0400.dll, version=4.7.3190.0 built by: NET472REL1LAST_C

    C:\WINDOWS\System32\OLEAUT32.dll, version=10.0.17134.48 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\MSVCP120_CLR0400.dll, version=12.00.52519.0 built by: VSWINSERVICING

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\PresentationNative_v0400.dll, version=4.7.3190.0 built by: NET472REL1LAST_C

    C:\WINDOWS\System32\shell32.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\cfgmgr32.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\shcore.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\windows.storage.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\profapi.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\powrprof.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\FLTLIB.DLL, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Program Files\paint.net\SxS\X64\vcruntime140.dll, version=14.14.26405.0 built by: VCTOOLSREL

    C:\Program Files\paint.net\SxS\X64\msvcp140.dll, version=14.14.26405.0 built by: VCTOOLSREL

    C:\Program Files\paint.net\SxS\X64\msvcp140_1.dll, version=14.14.26405.0 built by: VCTOOLSREL

    C:\Program Files\paint.net\SxS\X64\msvcp140_2.dll, version=14.14.26405.0 built by: VCTOOLSREL

    C:\Program Files\paint.net\SxS\X64\vcomp140.dll, version=14.14.26405.0 built by: VCTOOLSREL

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Configuration\a8263d1ee784438a6f7c3daac021df95\System.Configuration.ni.dll, version=4.7.3056.0 built by: NET472REL1

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Xml\cfddfd74dc3f71baae94415fb5c58491\System.Xml.ni.dll, version=4.7.3056.0 built by: NET472REL1

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clrjit.dll, version=4.7.3190.0 built by: NET472REL1LAST_C

    C:\WINDOWS\System32\MSCTF.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNetc8826574#\a6443aa4f71a6b658155e42043717359\PaintDotNet.SystemLayer.Native.x64.ni.dll, version=4.103.6872.5058

    C:\Program Files\paint.net\PaintDotNet.SystemLayer.Native.x64.dll, version=4.103.6872.5058

    C:\WINDOWS\SYSTEM32\PROPSYS.dll, version=7.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\WinSxS\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.17134.345_none_2c2d8d3e8af7dd26\gdiplus.dll, version=10.0.17134.345 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\dxgi.dll, version=10.0.17134.112 (WinBuild.160101.0800)

    C:\WINDOWS\system32\dwmapi.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\clbcatq.dll, version=2001.12.10941.16384 (WinBuild.160101.0800)

    C:\WINDOWS\System32\UIAnimation.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.17134.345_none_fb429a5930656358\comctl32.dll, version=6.10 (WinBuild.160101.0800)

    C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.17134.345_none_f95245bf3095c4c9\comctl32.dll, version=6.10 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\WindowsCodecs.dll, version=10.0.17134.345 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\d2d1.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\d3d11.dll, version=10.0.17134.112 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\D3D10Warp.dll, version=10.0.17134.112 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\wtsapi32.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\WINSTA.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Runtea61dfd5#\c2627bc7071bb3bbc86e49213e67aead\System.Runtime.CompilerServices.Unsafe.ni.dll, version=

    C:\WINDOWS\system32\dataexchange.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\system32\dcomp.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\system32\twinapi.appcore.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\system32\RMCLIENT.dll, version=10.0.17134.81 (WinBuild.160101.0800)

    C:\WINDOWS\System32\TextInputFramework.dll, version=10.0.17134.191 (WinBuild.160101.0800)

    C:\WINDOWS\System32\CoreUIComponents.dll, version=10.0.17134.112

    C:\WINDOWS\System32\CoreMessaging.dll, version=10.0.17134.1

    C:\WINDOWS\SYSTEM32\ntmarta.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\wintypes.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Xaml\3b0c8a89c86b9b9e644aa07aed7a84c5\System.Xaml.ni.dll, version=4.7.3190.0 built by: NET472REL1LAST_C

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\diasymreader.dll, version=14.7.3056.0 built by: NET472REL1

    C:\WINDOWS\SYSTEM32\winmm.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\WINMMBASE.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\prl_umdd10.dll, version=8.15.10.43368

    C:\WINDOWS\SYSTEM32\XmlLite.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\system32\explorerframe.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Design\bf68868709abd72de3aeec26f1dcf5a4\System.Design.ni.dll, version=4.7.3056.0 built by: NET472REL1

    C:\WINDOWS\System32\comdlg32.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\apphelp.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\system32\NetworkExplorer.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\MPR.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\prl_np.dll, version=13.3.2 (43368)

    C:\WINDOWS\System32\drprov.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\ntlanman.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\davclnt.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\DAVHLPR.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Program Files\Common Files\microsoft shared\ink\tiptsf.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\edputil.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\system32\DUI70.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\system32\DUser.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Windows\System32\thumbcache.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\policymanager.dll, version=10.0.17134.191 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\msvcp110_win.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Windows\System32\Windows.Globalization.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Windows\System32\bcp47mrm.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Windows\System32\Bcp47Langs.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\globinputhost.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\StructuredQuery.dll, version=7.0.17134.228 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\atlthunk.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\system32\Windows.Storage.Search.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Windows\System32\Windows.StateRepositoryPS.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\system32\IconCodecService.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Windows\System32\USERENV.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\LINKINFO.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Windows\System32\OneCoreUAPCommonProxyStub.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Windows\System32\twinapi.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\CLDAPI.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\wkscli.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\cscapi.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\netutils.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\ntshrui.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\SspiCli.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\srvcli.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Windows\System32\ActXPrxy.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Users\admin\AppData\Local\Microsoft\OneDrive\18.192.0920.0012\amd64\FileSyncShell64.dll, version=18.192.0920.0012

    C:\WINDOWS\SYSTEM32\ktmw32.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\SYSTEM32\WININET.dll, version=11.00.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\coml2.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Windows\System32\EhStorShell.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\SETUPAPI.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\cscui.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\Program Files (x86)\Parallels\Parallels Tools\ShellExtentions\PrlToolsShellExt.dll, version=13.3.2 (43368)

    C:\WINDOWS\System32\cscobj.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\provsvc.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\WS2_32.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\DSROLE.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\DEVOBJ.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\WINTRUST.dll, version=10.0.17134.81 (WinBuild.160101.0800)

    C:\WINDOWS\System32\MSASN1.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\CRYPT32.dll, version=10.0.17134.1 (WinBuild.160101.0800)

    C:\WINDOWS\System32\psapi.dll, version=10.0.17134.1 (WinBuild.160101.0800)

------------------------------------------------------------------------------

 

 

Edited by TrevorOutlaw
  • Like 1
Link to comment
Share on other sites

5 hours ago, TrevorOutlaw said:

However, I made it crash.  What happened was I painted a bunch of gibberish using two different ABR files in Brush Factory on the default layer.  Then I made a new layer, and tried to run Brush Factory again.

 

Fixed.

 

Also I am now including the pdb file with the effect, this should provide me with more information in the event of a crash.

Both files should be placed in the Effects folder.

 

PdnSig.png

Plugin Pack | PSFilterPdn | Content Aware Fill | G'MICPaint Shop Pro Filetype | RAW Filetype | WebP Filetype

The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait

 

Link to comment
Share on other sites

@null54 Nope.  Crashes again.  It looks like it is looking for a directory that doesn't exist.

 

Quote

Exception details:

System.NullReferenceException: Object reference not set to an instance of an object.

   at BrushFactory.WinBrushFactory.GetListViewItemHeight() in D:\Users\Nicholas\Downloads\Brush-Factory-master\Gui\BrushFactoryWindow.cs:line 2479

   at BrushFactory.WinBrushFactory.backgroundWorker_DoWork(Object sender, DoWorkEventArgs e) in D:\Users\Nicholas\Downloads\Brush-Factory-master\Gui\BrushFactoryWindow.cs:line 4064

   at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)

   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

 

Link to comment
Share on other sites

@TrevorOutlaw

 

Now the crash should hopefully be fixed.

 

2 hours ago, TrevorOutlaw said:

It looks like it is looking for a directory that doesn't exist.

 

No it looks like another multi-threading race condition, it amazes me how many of those I keep finding.

  • Upvote 1

PdnSig.png

Plugin Pack | PSFilterPdn | Content Aware Fill | G'MICPaint Shop Pro Filetype | RAW Filetype | WebP Filetype

The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait

 

Link to comment
Share on other sites

1 hour ago, Joshua Lamusga said:

 I added a review comment on the PR if you want to look at it.

 

I replied to your review and amended the commit to remove the interop code.

 

  • Upvote 1

PdnSig.png

Plugin Pack | PSFilterPdn | Content Aware Fill | G'MICPaint Shop Pro Filetype | RAW Filetype | WebP Filetype

The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait

 

Link to comment
Share on other sites

2 hours ago, Joshua Lamusga said:

If I add a line tool, where do I stop? I don't want to make paint.net inside paint.net :)

☺️ Brush Factory has evolved a lot and has great features. You are right, it can do so many things already that adding another line could deviate from the original purpose.  Thanks for all the time you put into it. 

 

2 hours ago, Joshua Lamusga said:

I can do it as a separate plugin.

That would be nice.  I am thinking of another feature : using shapes created with the Shape Maker effect. 

Link to comment
Share on other sites

Rendering a bitmap from vector? I'm in no hurry ;). Maybe after everything else and when I feel good about the code being neat and concise, but I wouldn't usually feel that needs incorporation. If I wanted to do it right, I'd want to treat vector-based bitmaps differently so I generate the bitmap when selected or when brush size changes instead of how I use bitmaps.

 

New points:

- Maybe, just maybe, vector-based brushes

Untitled.png.28dedeebdce78c42589f24716981923f.png

Link to comment
Share on other sites

@Joshua Lamusga

 

Two more pull requests:

 

Reorganize the cleanup code: https://github.com/JoshuaLamusga/Brush-Factory/pull/10

Store the final image as a Paint.NET Surface: https://github.com/JoshuaLamusga/Brush-Factory/pull/11

 

I hope I am not submitting too many pull requests for minor changes.

PdnSig.png

Plugin Pack | PSFilterPdn | Content Aware Fill | G'MICPaint Shop Pro Filetype | RAW Filetype | WebP Filetype

The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait

 

Link to comment
Share on other sites

@Joshua Lamusga

 

Another pull request and a few questions.

 

Override the On* methods instead of using event handlers

 

I was thinking of moving the settings into a separate class to allow for storing more general settings, such as the last folder in the add brush dialog.

Should the plugin store settings in the Paint.NET user files folder instead of the registry when Paint.NET is in portable mode?

 

I have also been considering changing the "Add Folder" button in the preferences dialog to use the Vista-style folder browser, basically an Explorer open file dialog that can select folders.

This would require adding a large amount of COM interop code, and even though this dialog is more user friendly I am not sure that users would browse for a folder often enough to make it worth the amount of code needed to implement it.

PdnSig.png

Plugin Pack | PSFilterPdn | Content Aware Fill | G'MICPaint Shop Pro Filetype | RAW Filetype | WebP Filetype

The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait

 

Link to comment
Share on other sites

3 hours ago, Joshua Lamusga said:

I want to support portable mode, so it's a good idea to store in an .ini file or something.

 

My plan is to convert the registry settings to an XML file stored in the Paint.NET user files folder.

This would allow the settings to be represented by a strongly-typed class, while letting the .NET Framework handle the conversion to/from XML.

 

 

PdnSig.png

Plugin Pack | PSFilterPdn | Content Aware Fill | G'MICPaint Shop Pro Filetype | RAW Filetype | WebP Filetype

The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait

 

Link to comment
Share on other sites

3 hours ago, Joshua Lamusga said:

XML is fine.

 

Here is the pull request: Save the settings to a file instead of the registry

 

I would have also submitted the ListView code, but it has conflicting changes.

 

37 minutes ago, welshblue said:

Not sure if this is a glitch guys or a dodgy mouse my side but:

Other >>> Select Rotate with mouse option >>> Drag and draw is fine.  Just a left click and it's sporadic when it chooses to draw. 25 clicks is the most I've done before it drew/rendered

 

I have not modified any of the drawing code, so I have no idea what could be causing that. ?

PdnSig.png

Plugin Pack | PSFilterPdn | Content Aware Fill | G'MICPaint Shop Pro Filetype | RAW Filetype | WebP Filetype

The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait

 

Link to comment
Share on other sites

6 hours ago, Joshua Lamusga said:

XML is fine.

Have you considered JSON?  (I'm a recent JSON convert - so I'd quite like to know why if you choose to stick with XML)

Link to comment
Share on other sites

Awesome for performing migration of stuff from registry, @null54. I was going to add that if you hadn't.

 

Quote

Not sure if this is a glitch guys or a dodgy mouse my side

You discovered a design choice, actually. I need two points to determine the direction to make the image face, and since I don't track the previous mouse position until you start drawing, I only have one point. In experiments where I did track previous mouse position at all times, I discovered I'd get some bad results because there was almost no space between the two points because I slow down a lot when I start drawing the line. Reducing space between the two points has the interesting effect of reducing the accuracy of the direction of the image, so it was frequently pointed in the wrong direction (slightly, or sometimes substantially).

 

image.png.6768841f83122f5b26af0fd6807b2e30.png

Untitled.png.28dedeebdce78c42589f24716981923f.png

Link to comment
Share on other sites

12 hours ago, Ego Eram Reputo said:

Have you considered JSON?  (I'm a recent JSON convert - so I'd quite like to know why if you choose to stick with XML)

 

As mentioned above I am using the serialization that is built-in to the .NET Framework, and XML is what the DataContractSerializer uses.

PdnSig.png

Plugin Pack | PSFilterPdn | Content Aware Fill | G'MICPaint Shop Pro Filetype | RAW Filetype | WebP Filetype

The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait

 

Link to comment
Share on other sites

PdnSig.png

Plugin Pack | PSFilterPdn | Content Aware Fill | G'MICPaint Shop Pro Filetype | RAW Filetype | WebP Filetype

The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait

 

Link to comment
Share on other sites

2 hours ago, LionsDragon said:

Two?

Turn off rotate with mouse (which is off by default), and you can click around without problems. Just clarifying in case you weren't aware and for silent readers.

@null54 I pulled your changes, but I got some interesting errors:

 

1. When settings were moved, my .xml file ended with "settings>ings>" which caused it to crash, We should try...catch and regenerate the file if it fails to de/serialize.

2. Default brushes only load on subsequent runs.

3. On subsequent runs, custom brushes are appended to the first run's brushes, so it's custom brushesdefaultcustom brushes. No change observed with further runs.

4. The brush I had selected in a previous run is selected, but as brushes load in, the selected brush changes to the last one.

 

All errors reproduced within two consecutive runs and are fully reproducible. Both folder paths are included in my .xml file, so I'll share all those contents in a .zip for you to try and reproduce.

 

Non-reproducible error:

- The brushes failed to load after deleting a folder that's listed in custom brushes at one point; clicking crashed because I didn't have a valid bitmap, but I couldn't reproduce the error.

 

Other things I noticed:

- Since the brush icon I made was for the list view, I created a 24x24 one that should fit the size of the button. Haven't committed it anywhere yet.

- Your changes to the inherited RenderArgs code and undo/redo fixed the long-standing transparency bug for the most part; drawing is still a problem. If you can find the fix for that, I'll be pretty happy.

  • Like 1

Untitled.png.28dedeebdce78c42589f24716981923f.png

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...