I have already reported the bug: https://gitlab.com/freepascal.org/lazarus/lazarus/-/work_items/42359
Thanks, let's see what happens.
In my fork of your repository (
https://github.com/wp-xyz/ExtTabCtrl), I so far completed scaling of the built-in button images. All these images have moved into an imagelist (FInternalImages) which enables scaling for free. As a consequence some of your code had to be dropped (cache).
Before continuing with the external imagelist (Images property) I would like to ask you whether you want to keep the Image property of the tabs. Advantage is that the user can easily assign an icon to a tab (without the need for an imagelist), disadvantage is that these images are not scaled (and that duplicate images may be included in an application when several ExtTabCtrls are used). In my preferences, the icon should only be taken from the Images imagelist and the tab's imageIndex.
And what is the purpose of the CachedTabImage? For the rotated image?
Do I understand correctly that the rotated images come into play only when the tabcontrol is in vertical orientation?
P.S.
When testing my fork please note that it certainly is not in sync with your current development, you'll probably have lots of conflicts when you want to merge it.