Función SDL_BlitSurface
Sintaxis
int SDL_BlitSurface(SDL_Surface* src, const SDL_Rect* srcrect, SDL_Surface* dst, SDL_Rect* dstrect)
Descripción
Usar esta función para realizar una copia de superficie rápida a una superficie de destino.
Parámetros
- srv
- La estructura SDL_Surface desde la que copiar.
- srcrect
- La estructura SDL_Rect que representa el rectángulo a copiar, o NULL para copiar la superficie completa.
- dst
- La estructura SDL_Surface objetivo de destino.
- dstrect
- La estructura SDL_Rect que representa el rectángulo al que se copia.
Valor de retorno
Devuelve 0 si la copia tiene éxito o un código de error negativo en caso de fallo. Llamar a SDL_GetError() para más información.
Observaciones
Se debería llamar a SDL_BlitSurface() a menos que sepa exactamente cómo funciona internamente el blitting de SDL y cómo usar las otras funciones de blit.
Esta es la función blit pública, y realiza la validación del rectángulo y el recorte antes de pasarlo a SDL_LowerBlit().
La función blit no debe ser llamada en una superficie bloqueada.
La anchura y la altura en srcrect determinan el tamaño del rectángulo copiado. En dstrect solo se utiliza la posición (la anchura y la altura se ignoran). Los blits con coordenadas dstrect negativas se recortarán correctamente.
Si srcrect es NULL, se copia toda la superficie. Si dstrect es NULL, la posición de destino (esquina superior izquierda) es (0, 0).
El rectángulo blit final se guarda en dstrect después de que se haya realizado todo el recorte (srcrect no se modifica).
La semántica de blit para superficies con y sin blending y colorkey se define como sigue:
RGBA->RGB: El modo de mezcla de la superficie fuente se establece en SDL_BLENDMODE_BLEND: alpha-blend (usando el canal alfa fuente y el alfa por superficie) SDL_SRCCOLORKEY ignorado. El modo de mezcla de la superficie fuente se establece en SDL_BLENDMODE_NONE: copia RGB. Si SDL_SRCCOLORKEY está activado, sólo copia los píxeles que coincidan con los valores RGB de la clave de color de origen, ignorando alfa en la comparación. RGB->RGBA: El modo de mezcla de la superficie fuente se establece en SDL_BLENDMODE_BLEND: alpha-blend (usando el alfa de la superficie fuente) Modo de mezcla de la superficie de origen a SDL_BLENDMODE_NONE: copia RGB, establece el alfa de destino al valor alfa por superficie de origen. ambos: si SDL_SRCCOLORKEY está establecido, sólo copia los píxeles que coincidan con la clave de color de origen. RGBA->RGBA: El modo de mezcla de la superficie fuente se establece en SDL_BLENDMODE_BLEND: alpha-blend (usando el canal alfa fuente y el alfa por superficie) SDL_SRCCOLORKEY ignorado. El modo de mezcla de la superficie fuente se establece en SDL_BLENDMODE_NONE: copia todo el RGBA al destino. si SDL_SRCCOLORKEY está definido, sólo copia los píxeles que coincidan con los valores RGB de la clave de color de origen, ignorando alfa en la comparación. RGB->RGB: El modo de mezcla de la superficie fuente se establece en SDL_BLENDMODE_BLEND: alpha-blend (usando el alfa por superficie fuente) Modo de mezcla de la superficie fuente establecido a SDL_BLENDMODE_NONE: copia RGB. ambos: si SDL_SRCCOLORKEY está establecido, sólo copia los píxeles que coinciden con la clave de color fuente.
Ejemplo
SDL_BlitSurface(surface, &source_rect, temp_surface, NULL);