func GoStr(cstr *uint8) string {
	str := ""
	for {
		if *cstr == 0 {
			break
		}
		str += string(*cstr)
		cstr = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(cstr)) + 1))
	}
	return str
}
func GoStr(cstr *uint8) string {
	str := ""
	for {
		if *cstr == 0 {
			break
		}
		str += string(*cstr)
		cstr = (*uint8)(unsafe.Pointer(uintptr(unsafe.Pointer(cstr)) + 1))
	}
	return str
}
func GoStr ( cstr * uint8 ) string { str := " " for { if * cstr == 0 { break } str += string ( * cstr ) cstr = ( * uint8 ) ( unsafe . Pointer ( uintptr ( unsafe . Pointer ( cstr ) ) + 1 ) ) } return str }
// GoStr takes a null-terminated string returned by OpenGL and constructs a
// corresponding Go string.
GoStr takes a null - terminated string returned by OpenGL and constructs a corresponding Go string .