You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: egl.go
    path of file: ./repos/gdlv/vendor/gioui.org/internal/egl
    
    the code of the file until where you have to start completion: // SPDX-License-Identifier: Unlicense OR MIT

//go:build linux || windows || freebsd || openbsd
// +build linux windows freebsd openbsd

package egl

import (
	"errors"
	"fmt"
	"runtime"
	"strings"

	"gioui.org/gpu"
)

type Context struct {
	disp          _EGLDisplay
	eglCtx        *e
    
func (c *Context) MakeCurrent() error {
	// OpenGL contexts are implicit and thread-local. Lock the OS thread.
	runtime.LockOSThread()

	if c.eglSurf == nilEGLSurface && !c.eglCtx.surfaceless {
		return errors.New("no surface created yet EGL_KHR_surfaceless_context is not supported")
	}
	if !eglMakeCurrent(c.disp, c.eglSurf, c.eglSurf, c.eglCtx.ctx) {
		return fmt.Errorf("eglMakeCurrent error 0x%x", eglGetError())
	}
	return nil
}