//GetVideoModes returns an array of all video modes supported by the monitor. //The returned array is sorted in ascending order, first by color bit depth //(the sum of all channel depths) and then by resolution area (the product of //width and height). func (m *Monitor) GetVideoModes() ([]*VideoMode, error) { var length int vC := C.glfwGetVideoModes(m.data, (*C.int)(unsafe.Pointer(&length))) if vC == nil { return nil, errors.New("Can't get the video mode list.") } v := make([]*VideoMode, length) for i := 0; i < length; i++ { t := C.GetVidmodeAtIndex(vC, C.int(i)) v[i] = &VideoMode{int(t.width), int(t.height), int(t.redBits), int(t.greenBits), int(t.blueBits), int(t.refreshRate)} } return v, nil }
// GetVideoModes returns an array of all video modes supported by the monitor. // The returned array is sorted in ascending order, first by color bit depth // (the sum of all channel depths) and then by resolution area (the product of // width and height). func (m *Monitor) GetVideoModes() []*VidMode { var length int vC := C.glfwGetVideoModes(m.data, (*C.int)(unsafe.Pointer(&length))) panicError() if vC == nil { return nil } v := make([]*VidMode, length) for i := 0; i < length; i++ { t := C.GetVidmodeAtIndex(vC, C.int(i)) v[i] = &VidMode{int(t.width), int(t.height), int(t.redBits), int(t.greenBits), int(t.blueBits), int(t.refreshRate)} } return v }