Delphi7: вывод изображения через Direct 3d
Есть программа, для вывода видео используется некий юнит (см. вложение).
Задача этого юнита - получить массив байт (RGB24) и вывести в виде изображения на экран.
В настоящий момент используется DirectDraw7 и в Windows 7 работает косячно - не включается аппаратное сглаживание, производительность оставляет желать лучшего. Необходимо переписать этот юнит используя Direct3d. (Как вариант - решить проблемы не переписывая)
Необходимый набор методов такой:
constructor Create; overload;
destructor Destroy; override;
function Init(AMainForm: TForm; AOut: TWinControl; const AWidth, AHeight: Integer): HRESULT;
function Render(const pBit: pointer): HRESULT;
property Width: Integer read FWidth;
property Height: Integer read FHeight;
property WaitForVerticalBlank: Boolean read FWaitForVerticalBlank write FWaitForVerticalBlank;
В архиве сам юнит (DXDrawImg.pas) и тестовая программа.
Требования такие:
1. Объект должен нормально работать в многомониторной конфигурации. В рамках одного процесса может быть использовано несколько объектов.
2. Производительность должна быть не хуже чем в текущей версии. Желательно - побыстрее.
3. Должны поддерживаться WindowsXP, Windows7
4. Изображение должно быть со сглаживанием - на низком разрешении не должно быть ступенек на градиенте (lo.bmp - правильно).
5. Возможность включения и отключения вертикальной синхронизации.
Оплата 50% по получению скомпилированной тестовой программы, остаток после получения и проверки исходных кодов в реальной программе. Для имеющих положительные отзывы возможна 50% предоплата.