func initialize() { X, err := xgbutil.NewConn() if err != nil { log.Fatal(err) } mousebind.Initialize(X) xWindow := newWindow(X, INITIAL_WINDOW_WIDTH, INITIAL_WINDOW_HEIGHT) go xevent.Main(X) xorg.Initialize( egl.NativeWindowType(uintptr(xWindow.Id)), xorg.DefaultConfigAttributes, xorg.DefaultContextAttributes) }
func initialize() { var err error X, err := xgbutil.NewConn() if err != nil { log.Fatal(err) } mousebind.Initialize(X) newWindow(X) go xevent.Main(X) display = egl.GetDisplay(egl.DEFAULT_DISPLAY) if ok := egl.Initialize(display, nil, nil); !ok { egl.LogError(egl.GetError()) } if ok := egl.ChooseConfig(display, attr, &config, 1, &numConfig); !ok { egl.LogError(egl.GetError()) } if ok := egl.GetConfigAttrib(display, config, egl.NATIVE_VISUAL_ID, &vid); !ok { egl.LogError(egl.GetError()) } egl.BindAPI(egl.OPENGL_ES_API) context = egl.CreateContext(display, config, egl.NO_CONTEXT, nil) surface = egl.CreateWindowSurface(display, config, egl.NativeWindowType(uintptr(X.RootWin())), nil) var val egl.Int if ok := egl.QuerySurface(display, &val, egl.WIDTH, surface); !ok { egl.LogError(egl.GetError()) } if ok := egl.QuerySurface(display, &val, egl.HEIGHT, surface); !ok { egl.LogError(egl.GetError()) } if ok := egl.GetConfigAttrib(display, config, egl.SURFACE_TYPE, &val); !ok { egl.LogError(egl.GetError()) } gl.ClearColor(0.0, 0, 0, 1.0) p := Program(FragmentShader(fsh), VertexShader(vsh)) gl.UseProgram(p) gl.BindAttribLocation(p, gl.Uint(attrPos), "pos") gl.BindAttribLocation(p, gl.Uint(attrColor), "color") uMatrix = gl.Int(gl.GetUniformLocation(p, "modelviewProjection")) }