diff --git a/internal/graphicsdriver/opengl/context_desktop.go b/internal/graphicsdriver/opengl/context_desktop.go index c8454886b..fff5f6e13 100644 --- a/internal/graphicsdriver/opengl/context_desktop.go +++ b/internal/graphicsdriver/opengl/context_desktop.go @@ -22,7 +22,6 @@ package opengl import ( "errors" "fmt" - "unsafe" "github.com/hajimehoshi/ebiten/internal/driver" "github.com/hajimehoshi/ebiten/internal/graphicsdriver/opengl/gl" @@ -525,9 +524,9 @@ func (c *context) newPixelBufferObject(width, height int) buffer { return bf } -func (c *context) mapPixelBuffer(buffer buffer, t textureNative) unsafe.Pointer { +func (c *context) mapPixelBuffer(buffer buffer, t textureNative) uintptr { c.bindTexture(t) - var ptr unsafe.Pointer + var ptr uintptr _ = c.t.Call(func() error { gl.BindBuffer(gl.PIXEL_UNPACK_BUFFER, uint32(buffer)) ptr = gl.MapBuffer(gl.PIXEL_UNPACK_BUFFER, gl.READ_WRITE) diff --git a/internal/graphicsdriver/opengl/gl/package_notwindows.go b/internal/graphicsdriver/opengl/gl/package_notwindows.go index 2173c4aac..adc601cc2 100644 --- a/internal/graphicsdriver/opengl/gl/package_notwindows.go +++ b/internal/graphicsdriver/opengl/gl/package_notwindows.go @@ -626,9 +626,9 @@ func LinkProgram(program uint32) { C.glowLinkProgram(gpLinkProgram, (C.GLuint)(program)) } -func MapBuffer(target uint32, access uint32) unsafe.Pointer { +func MapBuffer(target uint32, access uint32) uintptr { ret := C.glowMapBuffer(gpMapBuffer, (C.GLenum)(target), (C.GLenum)(access)) - return (unsafe.Pointer)(ret) + return ret } func PixelStorei(pname uint32, param int32) { diff --git a/internal/graphicsdriver/opengl/gl/package_windows.go b/internal/graphicsdriver/opengl/gl/package_windows.go index 6d10fde21..f05184e21 100644 --- a/internal/graphicsdriver/opengl/gl/package_windows.go +++ b/internal/graphicsdriver/opengl/gl/package_windows.go @@ -271,9 +271,9 @@ func IsTexture(texture uint32) bool { return ret != 0 } -func MapBuffer(target uint32, access uint32) unsafe.Pointer { +func MapBuffer(target uint32, access uint32) uintptr { ret, _, _ := syscall.Syscall(gpMapBuffer, 2, uintptr(target), uintptr(access), 0) - return unsafe.Pointer(ret) + return ret } func LinkProgram(program uint32) { diff --git a/internal/graphicsdriver/opengl/pbo_desktop.go b/internal/graphicsdriver/opengl/pbo_desktop.go index 86418dec3..2c1eb4748 100644 --- a/internal/graphicsdriver/opengl/pbo_desktop.go +++ b/internal/graphicsdriver/opengl/pbo_desktop.go @@ -30,7 +30,7 @@ const canUsePBO = true type pboState struct { image *Image - mappedPBO unsafe.Pointer + mappedPBO uintptr mapped []byte } @@ -44,13 +44,13 @@ func (s *pboState) mapPBO(img *Image) { s.image = img s.mappedPBO = img.driver.context.mapPixelBuffer(img.pbo, img.textureNative) - if s.mappedPBO == nil { + if s.mappedPBO == 0 { panic("opengl: mapPixelBuffer failed") } var mapped []byte sh := (*reflect.SliceHeader)(unsafe.Pointer(&mapped)) - sh.Data = uintptr(s.mappedPBO) + sh.Data = s.mappedPBO sh.Len = 4 * w * h sh.Cap = 4 * w * h s.mapped = mapped @@ -71,6 +71,6 @@ func (s *pboState) unmapPBO() { i.driver.context.unmapPixelBuffer(i.pbo, w, h) s.image = nil - s.mappedPBO = nil + s.mappedPBO = 0 s.mapped = nil }