ui/app/internal/gl: parse WebGL versions

And drop a redundant error message while here.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2019-05-04 13:29:44 +02:00
parent 2d7fb556a4
commit 2af0f63cfb
2 changed files with 10 additions and 6 deletions
+1 -1
View File
@@ -26,7 +26,7 @@ func NewSRGBFBO(f *Functions) (*SRGBFBO, error) {
glVer := f.GetString(VERSION)
ver, err := ParseGLVersion(glVer)
if err != nil {
return nil, fmt.Errorf("failed to parse OpenGL ES version (%s): %v", glVer, err)
return nil, err
}
if ver[0] >= 3 {
es3 = true
+9 -5
View File
@@ -76,10 +76,14 @@ func BytesView(s interface{}) []byte {
func ParseGLVersion(glVer string) ([2]int, error) {
var ver [2]int
if _, err := fmt.Sscanf(glVer, "OpenGL ES %d.%d", &ver[0], &ver[1]); err != nil {
if _, err := fmt.Sscanf(glVer, "%d.%d", &ver[0], &ver[1]); err != nil {
return [2]int{}, fmt.Errorf("failed to parse OpenGL ES version (%s): %v", glVer, err)
}
if _, err := fmt.Sscanf(glVer, "OpenGL ES %d.%d", &ver[0], &ver[1]); err == nil {
return ver, nil
} else if _, err := fmt.Sscanf(glVer, "WebGL %d.%d", &ver[0], &ver[1]); err == nil {
// WebGL major version v corresponds to OpenGL ES version v + 1
ver[0]++
return ver, nil
} else if _, err := fmt.Sscanf(glVer, "%d.%d", &ver[0], &ver[1]); err == nil {
return ver, nil
}
return ver, nil
return ver, fmt.Errorf("failed to parse OpenGL ES version (%s)", glVer)
}