[Lazarus] High-DPI TImageList
C Western
l at c-m-w.me.uk
Mon Jan 29 23:22:36 CET 2018
On 29/01/18 22:10, C Western via Lazarus wrote:
> On 29/01/18 09:44, Ondrej Pokorny via Lazarus wrote:
>> On 29.01.2018 10:02, C Western via Lazarus wrote:
>>> On 29/01/18 08:45, Ondrej Pokorny via Lazarus wrote:
>>>> On 28.01.2018 15:33, C Western via Lazarus wrote:
>>>>> On 27/01/18 18:59, Ondrej Pokorny via Lazarus wrote:
>>>>>> I merged the High-DPI (multi-resolution) ImageList into trunk.
>>>>>> I'll document the changes in
>>>>>> http://wiki.lazarus.freepascal.org/TImageList soon (tomorrow) and
>>>>>> also in http://wiki.freepascal.org/Lazarus_1.10.0_release_notes
>>>>>>
>>>>>> Ondrej
>>>>>
>>>>> With trunk my application now gives lots of tracebacks when using
>>>>> the main menu, which has some images set, though not using an
>>>>> imagelist:
>>>>>
>>>>> ERROR in LCL: TGtk2WidgetSet.CreateBitmapFromRawImage Incompatible
>>>>> BitsPerPixel
>>>>> Creating gdb catchable error:
>>>>>
>>>>> $000000000088BA69 DEBUGLNSTACK, line 731 of lazloggerbase.pas
>>>>> $00000000007788E0 DUMPSTACK, line 1392 of lclproc.pas
>>>>> $0000000000776043 RAISEGDBEXCEPTION, line 860 of lclproc.pas
>>>>> $00000000006EB170 RAWIMAGE_CREATEBITMAPS, line 417 of
>>>>> gtk2/gtk2lclintf.inc
>>>>> $0000000000787202 RAWIMAGE_CREATEBITMAPS, line 152 of
>>>>> include/lclintf.inc
>>>>> $00000000008F0FF0 CREATEBITMAPS, line 3633 of intfgraphics.pas
>>>>> $000000000095B362 INSERTMASKED, line 1802 of include/imglist.inc
>>>>> $0000000000958DC1 ADDMASKED, line 1143 of include/imglist.inc
>>>>> $000000000086717C DRAWMENUITEMICON, line 5809 of gtk2
>>>>>
>>>>> This is using GTK2. Has the implementation of the main menu changed
>>>>> significantly? Unfortunately this is slightly tricky to debug, as
>>>>> the entire desktop freezes.
>>>>
>>>> Do you use Glyphs in the menu? Anyway, please create a bug report
>>>> and if possible, attach a sample project to reproduce. Thanks.
>>> I do use glyphs on a few of the menu items. Unfortunately a small
>>> project with just this doesn't show the error, so a sample project
>>> will require some thought.
>>
>> I assume it's a specific glyph that doesn't work. Try to add a DebugLn
>> with the menu item name into DRAWMENUITEMICON so that you'll know what
>> menu item and glyph causes it.
>>
>> Ondrej
>
> I have submitted https://bugs.freepascal.org/view.php?id=33099
>
> It does not show the crash, but it does show some issues. My
> investigations show that the test program does not crash in the same way
> as Masked is false for the menu image, whereas it is true in my full
> program, and I haven't been able to track down why yet.
>
> Colin
Update: I found my main program had some code I had forgotten about that
explicitly sets transparent for each menu bitmap:
MenuItem2.Bitmap.Transparent := True;
and that is why the error is triggered in my main program. (The need to
do this may be a bug, but if so it has been present for a long time.)
Colin
More information about the Lazarus
mailing list