Hi @Edivando
Thanks for taking the time to make a Delphi version of BGRABitmap.
I agree with the changes regarding the overload keyword. Sometimes it was missing and sometimes I suppose keyword position is not accepted by Delphi. I have merged those changes in the dev branch of BGRABitmap.
There are other changes that we need to talk about. Basically, I would like that the number of change in the code to be the smallest possible to make it easier to maintain.
For example renaming all types like Word -> BGRAWord seems unnecessary to me as there is no ambiguity in the meaning of this type. This may be useful when porting into another language but that's not what we are doing here. What are the types that are not compatible between Delphi and FreePascal that would necessitate an alias? NativeInt? UInt64?
Also about the function LEToN, NToLE, BEToN and NToBE, as they do not exist in Delphi I suggest to emulate those functions, so that the rest of the code is unchanged.
Regarding removing the $PUSH / $POP when it is not FPC, I have some doubts. At the end of the $POP, the options are back to what they were. The switches $HINTS and $OPTIMIZATION are there to fix some compiler problems, so maybe they are not necessary with Delphi and you could include them inside the $IFDEF FPC.
There other things but let's start with that.