home | help
WAFFLE_CONTEXT(3)		  Waffle Manual 	       WAFFLE_CONTEXT(3)

NAME
     waffle_context,  waffle_context_create, waffle_context_destroy, waffle_con-
     text_get_native - class waffle_context

SYNOPSIS
     #include <waffle.h>

     struct waffle_context;

     struct waffle_context*  waffle_context_create(struct waffle_config *config,
						  struct waffle_con-
						  text *shared_ctx);

     bool waffle_context_destroy(struct waffle_context *self);

     union  waffle_native_context*  waffle_context_get_native(struct waffle_con-
							    text *self);

DESCRIPTION
     struct waffle_context
	 An opaque type.

     waffle_context_create()
	 Create a context for OpenGL rendering with the properties specified  by
	 config.

	 The returned context's actual properties may differ from, but are guar-
	 anteed  to  be compatible with, the properties specified by config. See
	 the section called "VERSION PROMOTION" below for details.

	 If share_ctx is not null, then the newly created context  is  added  to
	 the  share  group  of	share_ctx. Some data, such as display lists, are
	 shared among all contexts that belong to the same share group. For  de-
	 tails	on  what  data is shared, see the specification for the relevant
	 native platform: the GLX 1.4 Specification[1], the EGL  1.4  Specifica-
	 tion[2], or the CGL Reference[3].

     waffle_context_destroy()
	 Destroy the context and release its memory.

     waffle_context_get_native()
	 Get  the context's underlying native objects. Use free(3) to deallocate
	 the returned pointer. See waffle_native(3) for the definition of  union
	 waffle_native_context.

VERSION PROMOTION
     The  context's requested version and profile is given by the config attrib-
     utes   WAFFLE_CONTEXT_MAJOR_VERSION,   WAFFLE_CONTEXT_MINOR_VERSION,   WAF-
     FLE_CONTEXT_PROFILE.  The context returned by waffle_context_create may im-
     plement any version and profile that is backwards compatible with that  re-
     quested, as described below.

     *	 If  the  chosen  API  is  WAFFLE_OPENGL_ES1, WAFFLE_OPENGL_ES2, or WAF-
	 FLE_OPENGL_ES3, then the returned context may implement any of:
	     * The requested version.
	     * Any later version, so long as no features  have	been  from  that
	     later version.

     *	 If  the  chosen API is WAFFLE_CONTEXT_OPENGL and version 3.0 or less is
	 requested, then the returned context may implement any of:
	     * Any version no less than that requested and no greater than 3.0.
	     * Version 3.1, if the GL_ARB_compatibility extension is also imple-
	     mented.
	     * The compatibility profile of version 3.2 or greater.

     *	 If the chosen API is  WAFFLE_CONTEXT_OPENGL  and  version  3.1  is  re-
	 quested, then the returned context may implement any of:
	     * Version 3.1, with or without the GL_ARB_compatibility extension.
	     * The core profile of version 3.2 or greater.

     *	 If  the  chosen API is WAFFLE_CONTEXT_OPENGL and version 3.2 or greater
	 is requested, then the returned context may implement any of:
	     * The requested profile and version.
	     * The requested profile of any later version, so long  as	no  fea-
	     tures have been from that later version and profile.

RETURN VALUE
     Functions	whose  return  type  is bool return true on success and false on
     failure. Functions whose return type is a pointer return NULL  on	failure.
     Use waffle_error_get_info(3) to get information about any errors.

ERRORS
     See waffle_error(3) for the complete list of waffle's error codes.

     No errors are specific to the waffle_context functions.

ISSUES
     Please	 report      bugs     or     and     feature	 requests     to
     https://gitlab.freedesktop.org/mesa/waffle/issues.

SEE ALSO
     waffle(7) waffle_config_choose(3)

AUTHOR
     Chad Versace <chad.versace@linux.intel.com>
	 Former maintainer

COPYRIGHT
     Copyright (C) 2013 Intel

     This manual page is licensed under the Creative Commons  Attribution-Share-
     Alike  3.0 United States License (CC BY-SA 3.0). To view a copy of this li-
     cense, visit http://creativecommons.org.license/by-sa/3.0/us.

NOTES
      1. GLX 1.4 Specification
	 http://www.opengl.org/registry/doc/glx1.4.pdf

      2. EGL 1.4 Specification
	 http://www.khronos.org/registry/egl/specs/eglspec.1.4.20110406.pdf

      3. CGL Reference
	 https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CGL_OpenGL/Reference/reference.html

waffle				   08/27/2026		       WAFFLE_CONTEXT(3)

home | help