func (src *Surface) UpperBlit(srcrect *Rect, dst *Surface, dstrect *Rect) int { _src := (*C.SDL_Surface)(unsafe.Pointer(src)) _srcrect := (*C.SDL_Rect)(unsafe.Pointer(srcrect)) _dst := (*C.SDL_Surface)(unsafe.Pointer(dst)) _dstrect := (*C.SDL_Rect)(unsafe.Pointer(dstrect)) return (int)(C.SDL_UpperBlit(_src, _srcrect, _dst, _dstrect)) }
func (dst *Surface) Blit(dstrect *Rect, src *Surface, srcrect *Rect) int { GlobalMutex.Lock() global := true if (src != currentVideoSurface) && (dst != currentVideoSurface) { GlobalMutex.Unlock() global = false } // At this point: GlobalMutex is locked only if at least one of 'src' or 'dst' // was identical to 'currentVideoSurface' var ret C.int { src.mutex.RLock() dst.mutex.Lock() ret = C.SDL_UpperBlit( src.cSurface, (*C.SDL_Rect)(cast(srcrect)), dst.cSurface, (*C.SDL_Rect)(cast(dstrect))) dst.mutex.Unlock() src.mutex.RUnlock() } if global { GlobalMutex.Unlock() } return int(ret) }
func (s *Surface) UpperBlit(sr *Rect, dst *Surface, dr *Rect) error { if C.SDL_UpperBlit(s.c(), sr.c(), dst.c(), dr.c()) != 0 { return getError() } return nil }
func (dst *Surface) Blit(dstrect *Rect, src *Surface, srcrect *Rect) int { var ret = C.SDL_UpperBlit( (*C.SDL_Surface)(cast(src)), (*C.SDL_Rect)(cast(srcrect)), (*C.SDL_Surface)(cast(dst)), (*C.SDL_Rect)(cast(dstrect))) return int(ret) }
func (src *Surface) UpperBlit(srcRect *Rect, dst *Surface, dstRect *Rect) int { return int(C.SDL_UpperBlit(src.cptr(), srcRect.cptr(), dst.cptr(), dstRect.cptr())) }
// Surface (https://wiki.libsdl.org/SDL_UpperBlit) func (src *Surface) UpperBlit(srcRect *Rect, dst *Surface, dstRect *Rect) error { if C.SDL_UpperBlit(src.cptr(), srcRect.cptr(), dst.cptr(), dstRect.cptr()) != 0 { return GetError() } return nil }
// You should call SDL_BlitSurface() unless you know exactly how SDL // blitting works internally and how to use the other blit functions. func blitSurface(src, dst *C.SDL_Surface, srcrect, dstrect *C.SDL_Rect) int { return int(C.SDL_UpperBlit(src, srcrect, dst, dstrect)) }