Re: [Mono-dev] Re: ImageList patches r51171 and r51889 are notcompatible with MS.NET behaviour

2005-10-19 Thread Kornél Pál

Hi,

Please read my original message one again.:) I explained the differences
between MS.NET and this implementation. This difference is documented in my
previous message, in ImageList.cs and was documented when the modifications
were approved. And told you that if you think that this difference is
important let me know and I will modify ImageList to match MS.NET behaviour.
I did not say that everything is the same as in MS.NET I only said that I
don't think that MS.NET behaviour should be followed.

Usually it's a bad practicle to add images befor setting ColorDepth and
Images size but if you do so images will be cleared on Mono currently but
will not be cleared on MS.NET if handle was not created yet. Note that on
MS.NET if you modify ImageSize after adding images image strips will be
added incorrectly (if their size matches new size) or exception will be
thrown when creating handle and you will be unable to use the image list.

Your patch should not be retained because images are not modified after
handle was created the list is cleared instead.

And reducing image size without using ReduceColorDepth will result in 32-bit
images because of calculated colors.

Kornél

- Original Message -
From: Jackson Harper [EMAIL PROTECTED]
To: Kornél Pál [EMAIL PROTECTED]
Cc: mono-devel-list@lists.ximian.com
Sent: Wednesday, October 19, 2005 6:27 PM
Subject: [Mono-dev] Re: ImageList patches r51171 and r51889 are
notcompatible with MS.NET behaviour



On Wed, 2005-10-19 at 11:10 +0200, Kornél Pál wrote:

Hi,

MS.NET ImageList creates handle when you first time retrieve or draw any
of
it's images. Until that is stores the original image object, after handle
creation it uses a native ImageList. It applies size and color depth when
handle is created. (This is documented in ImageList.cs.)

After handle is created modifying ColorDepth or ImageSize results in
handle
recreation and the loss of all images.

As we don't create any handle at all I decided to create it when images
are
added and apply size and colordepth when handle is created in other words
when they are added.

Patches r51171 and r51889 are not compatible with MS.NET behaviour as
they
don't clear images after handle was created so these modifications should
not be preserved.


Well what you had broke an existing application that runs fine on
MS.NET, so you aren't entirely right.  I'm writing a test application
now to find out when the images are cleared.

Jackson



I belive that caching the images until using them is a bad idea as we
don't
use any native image list and doing time consuming operations at
initializaion is better as if you create an ImageList you do it because
you
want to access the images.

If you think caching before handle creation behaviour is important after
considering the above things please let me know and I will implement that
behaviour.

Kornél



___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list



___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Re: ImageList patches r51171 and r51889 are notcompatible with MS.NET behaviour

2005-10-19 Thread Jackson Harper
On Wed, 2005-10-19 at 19:05 +0200, Kornél Pál wrote:
 Hi,
 
 Please read my original message one again.:) I explained the differences
 between MS.NET and this implementation. This difference is documented in my
 previous message, in ImageList.cs and was documented when the modifications
 were approved. And told you that if you think that this difference is
 important let me know and I will modify ImageList to match MS.NET behaviour.
 I did not say that everything is the same as in MS.NET I only said that I
 don't think that MS.NET behaviour should be followed.

Well we need it to be in a state where it does not crash existing
applictions. Please modify it to match the MS behavoir.  Many apps are
closed source and we can't modify them to use best practices, so we have
to match their behavoir as closely as possible.

Jackson


 Usually it's a bad practicle to add images befor setting ColorDepth and
 Images size but if you do so images will be cleared on Mono currently but
 will not be cleared on MS.NET if handle was not created yet. Note that on
 MS.NET if you modify ImageSize after adding images image strips will be
 added incorrectly (if their size matches new size) or exception will be
 thrown when creating handle and you will be unable to use the image list.
 
 Your patch should not be retained because images are not modified after
 handle was created the list is cleared instead.
 
 And reducing image size without using ReduceColorDepth will result in 32-bit
 images because of calculated colors.
 
 Kornél
 
 - Original Message -
 From: Jackson Harper [EMAIL PROTECTED]
 To: Kornél Pál [EMAIL PROTECTED]
 Cc: mono-devel-list@lists.ximian.com
 Sent: Wednesday, October 19, 2005 6:27 PM
 Subject: [Mono-dev] Re: ImageList patches r51171 and r51889 are
 notcompatible with MS.NET behaviour
 
 
  On Wed, 2005-10-19 at 11:10 +0200, Kornél Pál wrote:
  Hi,
 
  MS.NET ImageList creates handle when you first time retrieve or draw any
  of
  it's images. Until that is stores the original image object, after handle
  creation it uses a native ImageList. It applies size and color depth when
  handle is created. (This is documented in ImageList.cs.)
 
  After handle is created modifying ColorDepth or ImageSize results in
  handle
  recreation and the loss of all images.
 
  As we don't create any handle at all I decided to create it when images
  are
  added and apply size and colordepth when handle is created in other words
  when they are added.
 
  Patches r51171 and r51889 are not compatible with MS.NET behaviour as
  they
  don't clear images after handle was created so these modifications should
  not be preserved.
 
  Well what you had broke an existing application that runs fine on
  MS.NET, so you aren't entirely right.  I'm writing a test application
  now to find out when the images are cleared.
 
  Jackson
 
 
  I belive that caching the images until using them is a bad idea as we
  don't
  use any native image list and doing time consuming operations at
  initializaion is better as if you create an ImageList you do it because
  you
  want to access the images.
 
  If you think caching before handle creation behaviour is important after
  considering the above things please let me know and I will implement that
  behaviour.
 
  Kornél
 
 
  ___
  Mono-devel-list mailing list
  Mono-devel-list@lists.ximian.com
  http://lists.ximian.com/mailman/listinfo/mono-devel-list
 
 

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list