func()

in gymvnc/gymvnc.go [225:256]


func (c *VNCSession) Render(close bool) error {
	if c.renderer == nil {
		return errors.Errorf("[%s] VNCSession has no renderer. This likely means your go_vncdriver was installed without the OpenGL viewer. See https://github.com/openai/go-vncdriver for details on how debug.", c.label)
	}

	c.lock.Lock()
	if c.closed {
		c.lock.Unlock()
		return errors.Errorf("[%s] VNCSession is already closed; can't render", c.label)
	}
	conn := c.conn
	c.lock.Unlock()

	if conn == nil {
		// Not connected yet; nothing to render!
		return nil
	}

	if !c.rendererActive {
		if err := c.renderer.Init(c.conn.FramebufferWidth, c.conn.FramebufferHeight, "go-vncdriver: "+c.conn.DesktopName, c.frontScreen.Data); err != nil {
			return errors.Annotate(err, "could not render")
		}
		c.rendererActive = true
	}

	if close {
		c.renderer.Close()
	} else {
		c.renderer.Render()
	}
	return nil
}