1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package al
- import "C"
- import "unsafe"
- type CreateCustomBitmapCallback func(bitmap *Bitmap, data interface{}) bool
- type createCustomBitmapContext struct {
- fn CreateCustomBitmapCallback
- data interface{}
- }
- func go_create_custom_bitmap_callback(ptr unsafe.Pointer, context unsafe.Pointer) C.bool {
- ccbd := (*createCustomBitmapContext)(context)
- cbmp := (*C.ALLEGRO_BITMAP)(ptr)
- bmp := wrapBitmapRaw(cbmp)
- fptr := ccbd.fn
- return b2cb((fptr)(bmp, ccbd.data))
- }
- var CallbackInt func() int = nil
- func go_generic_callback_int() int {
- if CallbackInt != nil {
- return CallbackInt()
- }
- return 0
- }
- type CallbackFunction func() int
- type callbackData struct {
- fn CallbackFunction
- data unsafe.Pointer
- }
- func go_take_callback_callback(context unsafe.Pointer) int {
- cbd := (*callbackData)(context)
- fn := cbd.fn
- return fn()
- }
- func TakeCallback(fn CallbackFunction) int {
- ctx := unsafe.Pointer(&callbackData{fn, nil})
- return int(C.go_take_callback(ctx))
- }
|