NinthDesertDude Posted November 2, 2018 Author Share Posted November 2, 2018 @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. 1 Quote Link to comment Share on other sites More sharing options...
null54 Posted November 2, 2018 Share Posted November 2, 2018 @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. Quote Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint 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 More sharing options...
TrevorOutlaw Posted November 2, 2018 Share Posted November 2, 2018 (edited) 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 November 2, 2018 by TrevorOutlaw 1 Quote Paint.NET Gallery | Remove Foreground Object Tutorial | Dispersion Effect Tutorial Link to comment Share on other sites More sharing options...
null54 Posted November 3, 2018 Share Posted November 3, 2018 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. Quote Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint 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 More sharing options...
Eli Posted November 3, 2018 Share Posted November 3, 2018 Could this feature/algorithm be added to Brush Factory? Quote Link to comment Share on other sites More sharing options...
TrevorOutlaw Posted November 3, 2018 Share Posted November 3, 2018 @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) Quote Paint.NET Gallery | Remove Foreground Object Tutorial | Dispersion Effect Tutorial Link to comment Share on other sites More sharing options...
null54 Posted November 3, 2018 Share Posted November 3, 2018 @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. 1 Quote Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint 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 More sharing options...
TrevorOutlaw Posted November 3, 2018 Share Posted November 3, 2018 Good job. Looks like the crashes has been fixed, @null54 Quote Paint.NET Gallery | Remove Foreground Object Tutorial | Dispersion Effect Tutorial Link to comment Share on other sites More sharing options...
NinthDesertDude Posted November 3, 2018 Author Share Posted November 3, 2018 (edited) @Eli Out of scope. If I add a line tool, where do I stop? I don't want to make paint.net inside paint.net I can do it as a separate plugin. @null54 I added a review comment on the PR if you want to look at it. Edited November 3, 2018 by Joshua Lamusga Quote Link to comment Share on other sites More sharing options...
null54 Posted November 3, 2018 Share Posted November 3, 2018 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. 1 Quote Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint 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 More sharing options...
Eli Posted November 3, 2018 Share Posted November 3, 2018 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. Quote Link to comment Share on other sites More sharing options...
NinthDesertDude Posted November 4, 2018 Author Share Posted November 4, 2018 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 Quote Link to comment Share on other sites More sharing options...
null54 Posted November 5, 2018 Share Posted November 5, 2018 @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. Quote Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint 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 More sharing options...
NinthDesertDude Posted November 6, 2018 Author Share Posted November 6, 2018 Thanks, I attempted to test the image scaling by calculator and testing and apparently didn't notice it. Quote Link to comment Share on other sites More sharing options...
null54 Posted November 7, 2018 Share Posted November 7, 2018 @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. Quote Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint 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 More sharing options...
NinthDesertDude Posted November 8, 2018 Author Share Posted November 8, 2018 I want to support portable mode, so it's a good idea to store in an .ini file or something. I don't think the add folder change will be necessary due to infrequent use, like you say. Thanks again for taking an interest. Quote Link to comment Share on other sites More sharing options...
null54 Posted November 8, 2018 Share Posted November 8, 2018 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. Quote Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint 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 More sharing options...
NinthDesertDude Posted November 8, 2018 Author Share Posted November 8, 2018 XML is fine. Quote Link to comment Share on other sites More sharing options...
null54 Posted November 8, 2018 Share Posted November 8, 2018 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. ? Quote Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint 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 More sharing options...
Ego Eram Reputo Posted November 8, 2018 Share Posted November 8, 2018 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) Quote ebook: Mastering Paint.NET | resources: Plugin Index | Stereogram Tut | proud supporter of Codelab plugins: EER's Plugin Pack | Planetoid | StickMan | WhichSymbol+ | Dr Scott's Markup Renderer | CSV Filetype | dwarf horde plugins: Plugin Browser | ShapeMaker Link to comment Share on other sites More sharing options...
NinthDesertDude Posted November 9, 2018 Author Share Posted November 9, 2018 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). Quote Link to comment Share on other sites More sharing options...
null54 Posted November 9, 2018 Share Posted November 9, 2018 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. Quote Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint 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 More sharing options...
null54 Posted November 9, 2018 Share Posted November 9, 2018 @Joshua Lamusga Two pull requests. Do not create unnecessary RenderArgs instances Use a ListView for brush selection Quote Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint 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 More sharing options...
LionsDragon Posted November 10, 2018 Share Posted November 10, 2018 8 hours ago, welshblue said: A not so exciting Easter Egg find ? Makes sense ... and lets face it how many loons are going to sit there just clicking apart from one ... Two? 1 Quote Link to comment Share on other sites More sharing options...
NinthDesertDude Posted November 10, 2018 Author Share Posted November 10, 2018 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 brushes, default, custom 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. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.