SDL_BlitSurface

Nome

SDL_BlitSurface -- Realiza uma rápida plotagem da superfície fonte para a superfície destino.

Sinopse

#include "SDL.h"

int SDL_BlitSurface(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect);

Descrição

Realiza uma rápida plotagem da superfície fonte para a superfície destino.

Apenas a posição é usada em dstrect (a largura e altura são ignoradas).

Se srcrect ou dstrect são NULL, toda a superfície (src ou dst) é copiada.

O retângulo de plotagem final é salvo em dstrect depois que todo o recorte for realizado (srcrect não é modificado).

A função plotar não deve ser chamada em uma superfície bloqueada.

O resultado da operação de plotagem varia dependendo se o SDL_SRCAPLHA está definido ou não. Veja SDL_SetAlpha para uma explicação de como isto afeta seus resultados. Os atributos colorkey e alpha também interagem com a superfície de plotagem, como o seguinte pseudocódigo deverá explicar:

if (source surface has SDL_SRCALPHA set) {
    if (source surface has alpha channel (that is, format->Amask != 0))
        blit using per-pixel alpha, ignoring any colour key
    else {
        if (source surface has SDL_SRCCOLORKEY set)
            blit using the colour key AND the per-surface alpha value
        else
            blit using the per-surface alpha value
    }
} else {
    if (source surface has SDL_SRCCOLORKEY set)
        blit using the colour key
    else
        ordinary opaque rectangular blit
}

Valor de Retorno

Se o blit for bem sucedido, irá retornar 0, de outra forma retorna -1.

Se qualquer uma das superfícies estiver na memória de vídeo, e a plotagem retornar -2, a memória de vídeo foi perdida, e então deverá ser recarregada com os dados e re-plotada:

        while ( SDL_BlitSurface(image, imgrect, screen, dstrect) == -2 ) {
                while ( SDL_LockSurface(image)) < 0 )
                        Sleep(10);
                -- Write image pixels to image->pixels --
                SDL_UnlockSurface(image);
        }

Isso ocorre com o uso de DirectX 5.0 quando o sistema comuta da tela do seu programa. Travar a superfície também não será possível até que você acesse a memória de vídeo novamente.

Veja Também

SDL_LockSurface, SDL_FillRect, SDL_Surface, SDL_Rect

SDLDoc-ptBR/SDL_BlitSurface (last edited 2008-04-17 08:18:46 by localhost)