func Str(str string) *uint8 {
	if !strings.HasSuffix(str, "\x00") {
		panic("str argument missing null terminator: " + str)
	}
	header := (*reflect.StringHeader)(unsafe.Pointer(&str))
	return (*uint8)(unsafe.Pointer(header.Data))
}
func Str(str string) *uint8 {
	if !strings.HasSuffix(str, "\x00") {
		panic("str argument missing null terminator: " + str)
	}
	header := (*reflect.StringHeader)(unsafe.Pointer(&str))
	return (*uint8)(unsafe.Pointer(header.Data))
}
func Str ( str string ) * uint8 { if ! strings . HasSuffix ( str , " \x00 " ) { panic ( " " + str ) } header := ( * reflect . StringHeader ) ( unsafe . Pointer ( & str ) ) return ( * uint8 ) ( unsafe . Pointer ( header . Data ) ) }
// Str takes a null-terminated Go string and returns its GL-compatible address.
// This function reaches into Go string storage in an unsafe way so the caller
// must ensure the string is not garbage collected.
Str takes a null - terminated Go string and returns its GL - compatible address . This function reaches into Go string storage in an unsafe way so the caller must ensure the string is not garbage collected .