﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blockedby	blocking	notify_on_close	platform	project
1466	Can't save offscreen image	Greg Couch	Tom Goddard	"After fixing many offscreen bugs, saving an image now fails with:
{{{
Traceback (most recent call last):
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/nogui.py"", line 211, in execute
    self._cmd.run(text)
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/commands/cli.py"", line 2581, in run
    result = ci.function(session, **kw_args)
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/commands/save.py"", line 61, in save
    fmt.export(session, filename, fmt.nicknames[0], **kw)
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/io.py"", line 198, in export
    result = self.export_func(session, path, **kw)
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/image.py"", line 149, in save_image
    transparent_background=transparent_background)
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/graphics/view.py"", line 378, in image
    if not fb.activate():
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/graphics/opengl.py"", line 1817, in activate
    fbo = self.framebuffer_id
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/graphics/opengl.py"", line 1813, in framebuffer_id
    self._fbo = fbo = self._create_framebuffer()
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/graphics/opengl.py"", line 1694, in _create_framebuffer
    self.depth_texture or self._depth_rb)
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/graphics/opengl.py"", line 1699, in _create_fbo
    self._opengl_context._framebuffers.add(self)
AttributeError: 'OffScreenRenderingContext' object has no attribute '_framebuffers'

}}}

And after naively adding _framebuffers and _bindings to OffScreenRenderingContext (not checked in):
{{{
Traceback (most recent call last):
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/nogui.py"", line 211, in execute
    self._cmd.run(text)
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/commands/cli.py"", line 2581, in run
    result = ci.function(session, **kw_args)
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/commands/save.py"", line 61, in save
    fmt.export(session, filename, fmt.nicknames[0], **kw)
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/io.py"", line 198, in export
    result = self.export_func(session, path, **kw)
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/image.py"", line 149, in save_image
    transparent_background=transparent_background)
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/graphics/view.py"", line 414, in image
    r.pop_framebuffer()
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/graphics/opengl.py"", line 561, in pop_framebuffer
    fb.activate()
  File ""..../ChimeraX.app/lib/python3.6/site-packages/chimerax/core/graphics/opengl.py"", line 1821, in activate
    GL.glDrawBuffer(self._draw_buffer)
  File ""errorchecker.pyx"", line 53, in OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError (src/errorchecker.c:1218)
OpenGL.error.GLError: GLError(
        err = 1282,
        description = b'invalid operation',
        baseOperation = glDrawBuffer,
        cArguments = (GL_BACK,)
)
}}}"	defect	closed	blocker	0.8	Graphics		fixed				1427		all	ChimeraX
