Конференция "Игры" » Проверка Direct'овских функций. [Delphi, Windows]
 
  • PROgrammist (08.05.09 12:44) [0]

    (* D I R E C T _ 3 D *)

    Function Clear(const ClearColor: TD3DColor = 0): HResult;      
    begin
     Result:= D3D.Clear(0, nil, D3DCLEAR_TARGET, ClearColor, 0.0, 0);
    End;

    ......

    Function No_ok(const COMHResult: HResult; var HRes: HResult): boolean;
    begin
     HRes:= COMHResult;
     Result:= Failed(HRes);
    End;

    Function Update: HResult;
    begin
     If No_ok(Clear, Result) then EXIT;    // Сокращение кода,
     If No_ok(....., Result) then EXIT;    // повышение читабельности.
     If No_ok(....., Result) then EXIT;
     .....

     {
       Раньше:
       Result:= Clear;
       If Failed(Result) then EXIT;  
       
       .....
     }

    End;

    Procedure Idling;                      // Цикл.
    begin
     HRes:= Update;
     If Failed(HRes) then ErrorOut('Error update', HRes);    // ErrorOut - Обёртка под  MessageBox.
    End;



    Начал изучать D3D и написал вот такую функцию проверки удачности выполнения функции.
    1) Не затормозит ли программу подобный метод?
    2) Как правильно проверять Direct'овские методы на удачное выполнение?
     Вернее, как правильно сообщаять об ошибке?
 
Конференция "Игры" » Проверка Direct'овских функций. [Delphi, Windows]
Есть новые Нет новых   [134430   +4][b:0][p:0.001]