Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by xchellx

  1. Unfortunately, these templates use the .NET Framework. The newest Paint.NET alpha (which I wish to target with my plugin, for reasons of having the newest C# 9 features) uses .NET 5. If I do what these templates do (which is target the Paint.NET DLLs, copy plugin dll to FileTypes/Effects folder at post build, then start Paint.NET as the debug action) with the new SDK csproj format as well as targeting `net5.0-windows`, it'll complain of DLL conflicts due to different versions that the plugin is using compared to Paint.NET. Do you plan on fixing these templates for .NET 5? EDIT: After some messing around, I did get it to compile. Although, it would be nice to have these templates updated... New csproj format properties: Paint.NET DLL references: PostBuild event (new csproj format): Then add this to the end of your AssemblyInfo.cs: And finally, debugging paint.net at start debug:
  2. So how do I create plugins with this new alpha build? Looking forward to having the latest C# features with the plugin Im creating. I get assembly reference conflicts with "WindowsBase.dll" where my plugin wants 5.0.0 and yours wants 4.6.0. EDIT: I figured out how. See:
  3. In the end, I ended up making a standalone .NET application with Bitmap.Save. All the mipresults came out correctly. This is because I could create a bitmap each with it's own size for every mipmap iteration. It's too bad Paint.NET's API cannot handle graphics of various different sizes, at least from the API side.
  4. Again, I can't do it pixel by pixel. I decode blocks of pixels to a pixel array but the x/y coordinates are never known in the end. However I do convert the data to a Bitmap in the end. Also, this game's texture format (.TXTR) stores all it's mipmaps in it's texture data section. In it's header there is a mipmap count. Mipmap auto generation is never done here.
  5. How do I do that? All I have to render a Bitmap is `CopyFromGdipBitmap` and `CopySurface` with `Surface.CopyFromBitmap`. I could choose the top left rendering point with `ImageRendererBgra` but as Rick said, that is an internal class I shouldn't use. Again, I can't do the x,y pixel coordinates due to the way the target format handles pixel coordinates.
  6. Then what do I use? How do I render a Bitmap that is smaller than a layer on it's Surface?
  7. is there at least a way to use `ImageRendererBgra` to render an image smaller than the layer on it's surface? On Render, I get `System.ArgumentException: 'srcBounds ({X=0,Y=0,Width=128,Height=64}) does not contain renderBounds ({X=0,Y=0,Width=256,Height=128})'`
  8. I am making a FileType plugin where I read mipmap data from the file. Each mipmap is 2x smaller than each mipmap read. The issue is, having each layer the same size as the document size while using `CopyFromGdipBitmap` causes the image to repeat for the entire width of the image (not for the height though). Yes I am converting to bitmap then using `CopyFromGdipBitmap` because the file stores texture data in sequences of blocks of various sizes, and in the end its stored into an array full of pixel data but not x/y coordinates. Ergo I cant do `layer.Surface[x, y] = ...;`. How do I create a layer that is smaller in size compared to the document? Or is there an alternative to `CopyFromGdipBitmap` that supports data that is smaller than the document/layer?
  • Create New...