1. Pascal / Говнокод #2776

    +87.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    function LockBack:bool;
    var sd:tddsurfacedesc2;
    begin
    fillchar(sd,sizeof(sd),0);
    sd.dwSize:=sizeof(sd);
    result:=fbacksurface.Lock(nil,sd,DDLOCK_SURFACEMEMORYPTR  or ddlock_nosyslock or DDLOCK_WAIT,0)=dd_ok;
    if not result then exit;
    BackPtr:=sd.lpSurface;
    end;
    function UnLockBack:bool;
    begin
    result:=fbacksurface.UnLock(nil)=dd_ok;
    BackPtr:=nil;
    end;
    function MakeSceenBackPtr:bool;
    begin
    result:=true;
    if backptr=nil then
     result:=lockBack;
    end;
    function GetSceenSafeBackPtr:pointer;//use only this
    begin
    result:=nil;
    if not MakeSceenBackPtr then exit;
    result:=backptr;
    end;

    Тот же проЭкт, что и ниже на DirectDraw7.
    Не смотря на то, что была функция function UnLockBack:bool; - она никогда не вызывалась. Странно, что на многих машинах это работало, тк я успешно выполнял блитинг в заблокированные поверхности в течении многих часов. :D

    Запостил: Говногость, 13 Марта 2010

    Комментарии (2) RSS

    • Странно, что с заблокированной поверхностью вы что-то могли делать.
      Ответить
    • Где здесь С++?
      Ответить

    Добавить комментарий