проблема с прямым доступом к памяти изображения решена.
адрес который я описывал как брал - правильный
при детальном рассмотрении метода Colors оказалось что там хранится цвет не в RGB формате, а как индек у палитры (странно конечно)
по-этому нужно сначала
col:=FP_Image.Palette.IndexOf(fpcolor($00,$9f00,$ff00));
потом это можно напрямую в память записывать...
буду искать свою старую графическую библиотеку, которую когда-то писал на ASM-е...
как найду и доделаю там полигоны, выложу в эту ветку