作者:kyleconro
项目:gold
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))
}
作者:kearsle
项目:Go-SD
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)
}
作者:willemvd
项目:sd
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
}
作者:gnanderso
项目:Go-SD
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)
}
作者:JalfRes
项目:go-sdl
func (src *Surface) UpperBlit(srcRect *Rect, dst *Surface, dstRect *Rect) int {
return int(C.SDL_UpperBlit(src.cptr(), srcRect.cptr(), dst.cptr(), dstRect.cptr()))
}
作者:emla
项目:go-sdl
// 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
}
作者:beora
项目:fung
// 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))
}