1) Функция 7 - вывести изображение в окно. Работает только с 24 битным исходным изображением. Используется многими старыми приложениями.
2) Функция 65 - вывести изображение с палитрой в окно. Расширенная версия функции 7. Поддерживает исходное изображение от 1 до 32 бит глубиной. Используется zSea, KIV, box_lib и др.
3) Функция 73 (не документирована! безобразие!) - блиттер, вывести изображение с 32 битной глубиной. Используется плеером видео FPLAY.
В данный момент я ломаю голову над решением для ICON (многопоточность и выскакивание иконки на вершину стека окон - проблемы которые надо решить) и у меня возникла мысль сделать функцию выводящую картинку на слой фона, т.е по сути слой принадлежащий ядру. С кодом отрисовки фона эта идей связана лишь по "событийным" соображениям.
Поскольку, если можно не создавать новую функцию, а расширять старую, то таковой стратегии и придерживаемся.
Я придумал вот что - в старом варианте:
В новом варианте:Функция 7.
ebx = указатель на изображение
Единственный минус на будущее - 2^31 = 2Гб, т.е. исходный рисунок должен располагаться в пределах первых 2 Гб виртуального адресного пространства приложения.Функция 7.
ebx = указатель на изображение + 31 бит флаг указатель нового формата.
В старом варианте (бит 31 установлен в 0) изображение выводится в окно, формат изображения BBGGRRBBGGRR...
В новом варианте (бит 31 установлен в 1) изображение выводится на фон , формат изображения BBGGRRTTBBGGRRTT...
Изображение 32-х битное и TT это указатель прозрачности. На первое время: от 1 до FF - непрозрачно, от 0 - прозрачно.
Соответственно:
edx = [координата по оси x]*65536 + [координата по оси y]
Координаты от начала экрана.
ЕМНИП в настоящее время потоку отведено только 1,5 Гб из которых на собственно прямое управление ф. 68 доступно только 900 Мб.
Другой вариант сделать независимую функцию - благо промежуточных пустых номеров много. Их есть у нас!
Ваши соображения товарищи разработчики?
З.Ы. Еще раз просьба не путать то что я предложил с ф. 15 (подфункциями 2,5,6,7) - это две разные вещи. Предложенное будет выводить именно в LFB, а не на область фонового рисунка, который потом масштабируется ф.15 в соответствии с режимом отрисовки и размером экрана.