latest rev: 861
Use "myName" for application name, not "this.Text".
Pick up CreateAssemblyVersion usage.
Pick up reorganisation of RCOL chunk handlers distributed with s3pi to split out the specific chunk handlers into their own DLL, away from the generic implementation.
Pick up CreateAssemblyVersion.
ViewDDS: Doc comments in DDSPanel, DdsFile.
DdsFile: Source code reformatting.
DdsFile: Added support for HSV processing. When enabled, an array of "struct ColorHSVA { byte h, s, v a; }" exists, as well as the original pixmap data. Either pass "true" as second argument to DdsFile.Load(Stream, bool) or use the DdsFile.SupportsHSV property.
DdsFile: More helpful error messages, designed to indicate what actually went wrong with reading the file.
DdsFile: Redesigned DDS to pixmap translation to use delegate methods, rather than using multiple if statements buried inside a for loop. I hope the use of the delegate is more efficient.
DdsFile: MaskedHSVShift(DdsFile, HSVShift, HSVShift, HSVShift, HSVShift) applies the four HSVShifts to the current image, based on the pixels in each channel of the first argument. Each channel adds to the effect.
DdsFile: MaskedHSVShiftNoBlend(DdsFile, HSVShift, HSVShift, HSVShift, HSVShift) applies the four HSVShifts to the current image, based on the pixels in each channel of the first argument. Each channel is applied sequentially, overwriting any earlier effect on a pixel.
DdsFile: MaskedSetColour(DdsFile, uint?, uint?, uint?, uint?) applies the four colours to the current image, based on the pixels in each channel of the first argument.
DdsFile: ClearMask() reverts to the original pixmap.
DdsFile: HSVShift is a new property that applies an HSVShift to the whole of the current image.
DdsFile: SetColour(r, g, b, a, w, h, supportsHSV) creates a pixel array of the specified w x h coloured r/g/b/a, with optional HSV support.
DdsFile: SetColour(argb, w, h, supportsHSV) calls the above appropriately.
DdsFile: Size property returns the image size.
DDSPanel: New property SupportsHSV, linked to the loaded DdsFile's SupportsHSV property. I need to check the implementation here (looks like it won't work properly without a DdsFile loaded and it's not handled well).
DDSPanel: New HueShift, SaturationShift and ValueShift properties. New method HSVShift to set all three at once.
DDSPanel: DDSLoad() method now takes an optional second argument; when true, the image will be loaded with SupportsHSV turned on to start with.
DDSPanel: New method "LoadMask(Stream)" to load a mask.
DDSPanel: New method "ApplyHSVShift(HSVShift, HSVShift, HSVShift, HSVShift, bool)" uses the current mask to call MaskedSetColour on the current image.
DDSPanel: New method "ApplyHSVShift(Stream, HSVShift, HSVShift, HSVShift, HSVShift, bool)" calls LoadMask and the stream-less ApplyHSVShift.
DDSPanel: New method "ApplyColours(uint?, uint?, uint?, uint?)" uses the current mask to call MaskedHSVShift or MaskedHSVShiftNoBlend on the current image.
DDSPanel: New method "ApplyColours(Stream, uint?, uint?, uint?, uint?)" calls LoadMask and the stream-less ApplyColours.
DDSPanel: New method "ClearMask()" clears the mask on the current image.
DDSPanel: New SetColour() methods to create an image of a specified colour rather than loading one.
DDSPanel: MaskLoaded property (read-only) true when a dds mask is loaded.
DDSPanel: ImageSize property (read-only) returns the loaded image size (or empty, if not loaded).
DDSPanel: MaskSize property (read-only) returns the applied mask size (or empty, if none applied).
ViewDDS: New Test app for DDSPanel.