Я использую IDirect3DDevice8 из DirectXGraphics. Когда я подключаю D3DX8, для ID3DXFont, и вытаюсь скомпилировать компилятор пишет, что для D3DXCreateFont, в качестве устройства требуется не DirectXGraphics.IDirect3DDevice8, а Direct3D8.Idirect3DDevice8. Переписал так чтобы использовать Direct3D8.Idirect3DDevice8 - при запуске программы выдаёт ошибку, что не найдена библиотека D3DX81ab.dll. Вот код создания устройтсва Direct3D8.Idirect3DDevice8 и шрифта, этот код выдаёт ошибку. Можете сказать в чём здесь ошибка или как можно выводить текст другими способами (желательно при помощи DirectXGraphcis.IDirect3DDevice8), и что это за библиотека о которой идёт речь в сообщении об ошибке.
private
DirectX : IDirect3D8;
Device : IDirect3DDevice8;
font : ID3DXFont;
hfnt : HFONT;
procedure TForm1.FormCreate(Sender: TObject);
var
ps : TD3DPRESENT_PARAMETERS;
dm : TD3DDISPLAYMODE;
begin
DirectX := Direct3DCreate8(D3D_SDK_VERSION);
DirectX.GetAdapterDisplayMode(D3DADAPTER_DEFAULT, dm);
ZeroMemory(@ps, sizeof(ps));
with ps do
begin
Windowed := true;
SwapEffect := D3DSWAPEFFECT_DISCARD;
BackBufferFormat := dm.Format;
end;
DirectX.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, Handle, D3DCREATE_SOFTWARE_VERTEXPROCESSING, ps, Device);
hfnt := CreateFont(30, 10, 0, 0, FW_NORMAL, 0, 0, 0, 1, 0, 0, 0, DEFAULT_PITCH, 'Arial');
D3DXCreateFont(Device, hfnt, font);