Files
radiantwave/archive/vendor/github.com/veandco/go-sdl2/sdl/guid.go
T
2026-08-07 14:51:41 -05:00

49 lines
1.0 KiB
Go

package sdl
/*
#include "sdl_wrapper.h"
#if !SDL_VERSION_ATLEAST(2,24,0)
#if defined(WARN_OUTDATED)
#pragma message("SDL_GUIDToString is not supported before SDL 2.24.0")
#pragma message("SDL_GUIDFromString is not supported before SDL 2.24.0")
#endif
typedef struct {
Uint8 data[16];
} SDL_GUID;
static inline void SDL_GUIDToString(SDL_GUID guid, char *pszGUID, int cbGUID)
{
return;
}
static inline SDL_GUID SDL_GUIDFromString(const char *pchGUID)
{
SDL_GUID guid;
return guid;
}
#endif
*/
import "C"
import (
"unsafe"
)
type GUID C.SDL_GUID
// ToString returns an ASCII string representation for a given GUID.
func (guid GUID) ToString() (ascii string) {
_cap := C.size_t(33)
_buf := (*C.char)(C.SDL_malloc(_cap))
defer C.SDL_free(unsafe.Pointer(_buf))
C.SDL_GUIDToString(C.SDL_GUID(guid), _buf, C.int(_cap))
return C.GoString(_buf)
}
// GUIDFromString converts a GUID string into a GUID structure.
func GUIDFromString(ascii string) (guid GUID) {
_ascii := C.CString(ascii)
return GUID(C.SDL_GUIDFromString(_ascii))
}