user stats

Member SinceFebruary 7, 2010
Last VisitJune 12, 2016


coordinator for

Paint.NET PSD Plugin


personal statement

activity stream

June 12, 2016 - PinyinTones: Pushed 060fc4b71c5e187afc6c0d653203f3ecd4aeeb8f, Return HRESULT from _StartComposition _StartComposition and DoEditSession were throwing away HRESULTs. The HRESULTs are now stored in a variable and returned to the caller. This makes it less likely for an error to leave the text service in an indeterminate state.

June 8, 2016 - PinyinTones: Pushed 626bf1de3b83c8135675b5e8467079456d669ed1, Update build environment to Visual Studio 2015 The Visual C++ project has been retargeted to Visual C++ 2015. The WDK build script inadvertently depended on Visual Studio 2012 by using headers from the bundled Windows SDK 7.1A. It now uses headers from the Windows SDK 7.1, which is a standalone download.

June 8, 2016 - PinyinTones: Pushed 07befc5e7807ae30920f70ff158ffb37d5cbc46c, Handle only specific characters in a composition The idea is to be in a composition as little as possible. Only keys in the Pinyin alphabet will start a composition, and only specific keys are handled within a composition. A tone number will terminate the composition, as will any non-Pinyin key. Previously, any key that produced a Unicode character would start a new composition or be handled by PinyinTones in an existing composition. This had many side effects. The Tab key could no longer be used to tab through a dialog, and the Delete key would leave the program in an indeterminate state. Numerals between 1 and 4 could not be typed. It is much better to handle only specific keys. Keys that are not handled by PinyinTones, such as control keys, can be typed directly into the application outside of a composition. It is also possible to type any number, since numerals are only eaten within a composition.

June 4, 2016 - Paint.NET PSD Plugin: Pushed 1025f0993cd1f1d4daf4fd19902661209560bcdc, Add compression to ImageData classes Zip and ZipPrediction have finally been implemented. It is now possible to compress image data using all four PSD compression methods.

June 4, 2016 - Paint.NET PSD Plugin: Pushed 2730bf4c1af762740c70d64d52967e9bc51ce5cf, Simplify pointer operations in Unpredict methods Using UInt16* and Int32* pointers removes the need to cast from byte*. This eliminates the issue of whether to add a byte offset or a word offset to get a pointer to the new row. There is also semantic value in knowing that the Unpredict method operates on words instead of bytes. The pointer parameters are used directly, reducing the number of temporary variables. Switching to bit-shifts for 32-bit Unpredict eliminates the need to advance pointers while unpacking each pixel, and it also makes the code endian-neutral.

May 23, 2016 - Paint.NET PSD Plugin: Pushed bd9a3e24e81f4b7bd34e6a53aef39429850b037a, Load channels that have length 0 Photoshop writes empty channels with length 2 to leave room for the two- byte compression method. However, in PSD files written by PhotoDeluxe, empty channels have length 0.

May 23, 2016 - Paint.NET PSD Plugin: Pushed f1c59ff355cf655080fbfeeefed34866f33eb08d, Load channels that have length 0 Photoshop writes empty channels with length 2 to leave room for the two- byte compression method. However, some programs write empty channels with length 0.

May 19, 2016 - Paint.NET PSD Plugin: Pushed 2a809e09da007572563ea38fcf94f22b270e6437, Flush PsdBinaryWriter before returning BaseStream An accurate Stream.Position is required for the PsdBlockLengthWriter and the debug messages to work properly. Therefore, the PsdBinaryWriter must be flushed before returning the BaseStream. This removes the need for the AutoFlush property. The caller should be responsible for properly disposing of the PsdBinaryWriter, just like with the .NET BinaryWriter. The AutoFlush property was not being checked in all Write overloads anyway.

May 18, 2016 - Paint.NET PSD Plugin: Pushed 1b77810d82782b1ccc1b201ad996a3c3dfc7b048, Refactor out classes for image decompression