Subject: bug#68452: w32-use-native-image-API makes weird behavior

From: Jinsong Zhao <[email-masked]>
Date: Mon, 15 Jan 2024 15:48:55 +0800

On 2024/1/15 11:34, Eli Zaretskii wrote:
>> Date: Mon, 15 Jan 2024 10:30:26 +0800
>> Cc: [email-masked]
>> From: Jinsong Zhao <[email-masked]>
>>
>> On 2024/1/15 0:34, Eli Zaretskii wrote:
>>>> Date: Sun, 14 Jan 2024 21:52:00 +0800
>>>> From: Jinsong Zhao <[email-masked]>
>>>>
>>>> I am not a skilled Emacs user. I mainly use Emacs as a front end for Maxima with the help of
>>>> imaxima. imaxima converts Maxima output into PNG image, which are then displayed in Emacs. I am
>>>> using Windows 10.
>>>>
>>>> It works fine on Emacs 28.2, when I type an expression, e.g. q^2 = 1; and return, Emacs 28.2
>>>> immediately displays the resulting PNG image.
>>>>
>>>> If I use Emacs 29.1, however, all I get after returning is an empty square. And if I type another
>>>> expression and return, a blank square appears. At the same time, the first empty square was
>>>> replaced by a PNG image of the first expression. That's weird.
>>>>
>>>> I saw the following messages in the *Messages* buffer:
>>>>
>>>> Processing Maxima output...done
>>>> Unable to load image (image :type png :file c:/Users/Jinso/AppData/Local/Temp/imaximatU5Y9B/1 :
>>>> scale 1.001595744680851 :ascent center :mask (heuristic (color-values imaxima-bg-color)) :
>>>> transform-smoothing t) [35 times]
>>>> Process imaxima finished
>>>>
>>>> After (setq w32-use-native-image-API nil), imaxima has the same behaviour on Emacs 28.2 and
>>>> 29.1.
>>>
>>> Thanks, but we'd need an example of such a PNG image to investigate.
>>> Can you send one such image, which works with w32-use-native-image-API
>>> nil, but not when it is non-nil?
>>>
>>> In any case, it is perfectly okay to reset w32-use-native-image-API to
>>> nil if the native image APIs fail to process an image you want to see.
>>> That's why we support both modes.
>>
>> Thanks for the reply.
>>
>> The PNG image is created on the fly by imaxima, a front end for Maxima.
>> I think it's a normal PNG image file, actually converted from a ps file
>> by ghostscript. I also tried to use JPEG, it's the same.
> 
> Well, we cannot do anything with this bug report unless we have an
> example of an image to work with.  So please find a way to ask imaxima
> to save the image on a file, and then send it.

I could provide the PNG files, please see the attachments.

File "1" and "2" are PNG files that were displayed in Emacs.

File "11.png" and "33.png" are the screenshots with 
w32-use-native-image-API set to nil after the first and second input.

File "22.png" and "44.png" are the screenshots with 
w32-use-native-image-API set to non-nil after the first and second input.

I don't know if I am clear.

Best wishes,
Jinsong