Хочу в качестве хобби выбрать такую вещь, как програмирование виртуальной реальности. Подскажите, плиз, какой язык выбрать?
+у меня есть опыт прогамирования на С++
+у меня есть опыт прогамирования на С++
А DirectX вообще возможно использовать только в C++, C# и VB. Ибо MS не дает заголовков/модулей для иных языков.
Ну дык! Дельфи и Билдер вообще годятся только чтоб мелкие приложения работающие с БД делать. А если кто и делает что-то другое, то это уже из области извращений
Все зависит от кривизны рук.
Первый раз такой гон слышу.
Чета многовата получается извращенцев...
Отвечать на вопрос желания нету
а документация тут причем, позвольте узнать?
var
pD3D: IDirect3D9;
begin
Result:= nil;
pD3D := Direct3DCreate9( D3D_SDK_VERSION);
if (pD3D = nil) then Exit;
IDirect3D --- это что? Интерфейс? Почему pD3D? Указатель? Тогда почему IDirect3D9, а не LPDIRECT3D9?
IDirect3D9 = interface(IUnknown)
['{81BDCBCA-64D4-426d-AE8D-AD0147F4275C}']
(*** IDirect3D9 methods ***)
function RegisterSoftwareDevice(pInitializeFunction: Pointer): HResult; stdcall;
function GetAdapterCount: LongWord; stdcall;
function GetAdapterIdentifier(Adapter: LongWord; Flags: DWord; out pIdentifier: TD3DAdapterIdentifier9): HResult; stdcall;
function GetAdapterModeCount(Adapter: LongWord; Format: TD3DFormat): LongWord; stdcall;
function EnumAdapterModes(Adapter: LongWord; Format: TD3DFormat; Mode: LongWord; out pMode: TD3DDisplayMode): HResult; stdcall;
function GetAdapterDisplayMode(Adapter: LongWord; out pMode: TD3DDisplayMode): HResult; stdcall;
function CheckDeviceType(Adapter: LongWord; CheckType: TD3DDevType; AdapterFormat, BackBufferFormat: TD3DFormat; Windowed: BOOL): HResult; stdcall;
function CheckDeviceFormat(Adapter: LongWord; DeviceType: TD3DDevType; AdapterFormat: TD3DFormat; Usage: DWord; RType: TD3DResourceType; CheckFormat: TD3DFormat): HResult; stdcall;
function CheckDeviceMultiSampleType(Adapter: LongWord; DeviceType: TD3DDevType; SurfaceFormat: TD3DFormat; Windowed: BOOL; MultiSampleType: TD3DMultiSampleType; pQualityLevels: PDWORD): HResult; stdcall;
function CheckDepthStencilMatch(Adapter: LongWord; DeviceType: TD3DDevType; AdapterFormat, RenderTargetFormat, DepthStencilFormat: TD3DFormat): HResult; stdcall;
function CheckDeviceFormatConversion(Adapter: LongWord; DeviceType: TD3DDevType; SourceFormat, TargetFormat: TD3DFormat): HResult; stdcall;
function GetDeviceCaps(Adapter: LongWord; DeviceType: TD3DDevType; out pCaps: TD3DCaps9): HResult; stdcall;
function GetAdapterMonitor(Adapter: LongWord): HMONITOR; stdcall;
function CreateDevice(Adapter: LongWord; DeviceType: TD3DDevType; hFocusWindow: HWND; BehaviorFlags: DWord; pPresentationParameters: PD3DPresentParameters; out ppReturnedDeviceInterface: IDirect3DDevice9): HResult; stdcall;
end;
Var
ID: IDemo;
begin
ID:= IDemo.Create(); //неявно AddReff;
...
...
ID:= nil; //Неявно IUnknown._Release;
end;
var
Test: ITest;
T: TTest;
begin
T := TTest.Create;
Test := T;
T:= nil;
.......
Test.Beep;
end;
Предыдущая тема: Зацикливание функции в VBScript