1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- 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))
- }
- type RunMainCallback func(args []string, data interface{}) int
- type runMainContext struct {
- fn RunMainCallback
- data interface{}
- }
- var runMain runMainContext
- func go_run_main_callback(argc C.int, argv ** C.char) C.int {
- args := GoStrings(argc, argv)
- return C.int(runMain.fn(args, runMain.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))
- }
|