oracular (3) wxGLContext.3erl.gz

Provided by: erlang-manpages_25.3.2.12+dfsg-1ubuntu2_all bug

NAME

       wxGLContext - Functions for wxGLContext class

DESCRIPTION

       An  instance  of a wxGLContext represents the state of an OpenGL state machine and the connection between
       OpenGL and the system.

       The OpenGL state includes everything that can be set with the OpenGL API:  colors,  rendering  variables,
       buffer  data  ids,  texture objects, etc. It is possible to have multiple rendering contexts share buffer
       data and textures. This feature is specially  useful  when  the  application  use  multiple  threads  for
       updating data into the memory of the graphics card.

       Whether one only rendering context is used with or bound to multiple output windows or if each window has
       its own bound context is a developer decision. It is important to take into account that GPU  makers  may
       set  different  pointers  to  the  same  OGL  function for different contexts. The way these pointers are
       retrieved from the OGL driver should be used again for each new context.

       Binding (making current) a rendering context with another instance of a wxGLCanvas however works only  if
       the both wxGLCanvas instances were created with the same attributes.

       OpenGL  version  3  introduced  a  new  type  of  specification profile, the modern core profile. The old
       compatibility profile maintains all legacy features. Since wxWidgets 3.1.0 you can  choose  the  type  of
       context and even ask for a specified OGL version number. However, its advised to use only core profile as
       the compatibility profile may run a bit slower.

       OpenGL core profile specification defines several flags at context creation that determine not  only  the
       type  of context but also some features. Some of these flags can be set in the list of attributes used at
       wxGLCanvas ctor. But since wxWidgets 3.1.0 it is strongly encouraged to use the  new  mechanism:  setting
       the  context  attributes with a wxGLContextAttrs (not implemented in wx) object and the canvas attributes
       with a wxGLAttributes (not implemented in wx) object.

       The best way of knowing if your OpenGL environment supports a specific type  of  context  is  creating  a
       wxGLContext  instance  and  checking  isOK/1.  If  it returns false, then simply delete that instance and
       create a new one with other attributes.

       wxHAS_OPENGL_ES is defined on platforms that only have this implementation available  (e.g.  the  iPhone)
       and don't support the full specification.

       See: wxGLCanvas, wxGLContextAttrs (not implemented in wx), wxGLAttributes (not implemented in wx)

       wxWidgets docs: wxGLContext

DATA TYPES

       wxGLContext() = wx:wx_object()

EXPORTS

       new(Win) -> wxGLContext()

              Types:

                 Win = wxGLCanvas:wxGLCanvas()

       new(Win, Options :: [Option]) -> wxGLContext()

              Types:

                 Win = wxGLCanvas:wxGLCanvas()
                 Option = {other, wxGLContext()}

              Constructor.

       setCurrent(This, Win) -> boolean()

              Types:

                 This = wxGLContext()
                 Win = wxGLCanvas:wxGLCanvas()

              Makes  the  OpenGL state that is represented by this rendering context current with the wxGLCanvas
              win.

              Note: win can be a different wxGLCanvas window than the one that was passed to the constructor  of
              this   rendering   context.   If   RC   is   an   object   of  type  wxGLContext,  the  statements
              "RC.SetCurrent(win);" and "win.SetCurrent(RC);" are equivalent, see wxGLCanvas:setCurrent/2.

       isOK(This) -> boolean()

              Types:

                 This = wxGLContext()

              Checks if the underlying OpenGL rendering context was correctly created by  the  system  with  the
              requested attributes.

              If  this  function  returns false then the wxGLContext object is useless and should be deleted and
              recreated with different attributes.

              Since: 3.1.0

       destroy(This :: wxGLContext()) -> ok

              Destroys the object.