SysFn39.2:GetBackgroundPixel

Applications development, KoOS API questions
  • Сейчас вот так делаю

    Code: Select all

    {39.2}    Function  GetBackgroundPixel(X, Y: Integer): Dword; StdCall;
              Asm
                      push   ebx
              // at first need to know Background.Width
                      mov    eax, 39
                      mov    ebx, 1
                      int    64
              // at now eax = (Width << 16) | Height       
              // need to make ecx = (X + Y * Background.Width) * 3      
                      shr    eax, 16
                      mul    Y
                      add    eax, X
                      mov    ecx, eax
                      add    ecx, eax
                      add    ecx, eax                  
              // and now GetBackgroundPixel
                      mov    eax, 39
                      mov    ebx, 2
                      int    64            
                      pop    ebx
              End;
  • Это вредная функция. Один пиксель вряд ли кому-нибудь нужен, а делать по системному вызову на пиксель в больших объёмах - тормозно. Используй 15.6/15.7.
    Сделаем мир лучше!
  • CleverMouse, да я абсолютно согласен, что это тормозно. Но GetBackgroundSize всё равно придётся делать. Да, в любом случае, если пикселей >2, то MapBackground + UnMapBackground будет лучше.
  • Who is online

    Users browsing this forum: No registered users and 2 guests