• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    OES_surfaceless_context
4
5Name Strings
6
7    GL_OES_surfaceless_context
8
9Contributors
10
11    Kristian Hoegsberg, Intel
12    Steven Holte, NVIDIA
13    Greg Roth, NVIDIA
14
15Contact
16
17    Steven Holte, NVIDIA (sholte 'at' nvidia.com)
18
19Notice
20
21    Copyright (c) 2010-2013 The Khronos Group Inc. Copyright terms at
22        http://www.khronos.org/registry/speccopyright.html
23
24Status
25
26    Complete.
27    Approved by the OpenGL ES Working Group.
28    Ratified by the Khronos Board of Promoters on July 28, 2012.
29
30Version
31
32    Version 4, 2012/05/30
33
34Number
35
36    OpenGL ES Extension #116
37
38Dependencies
39
40    This extension is written against the OpenGL ES 2.0 Specification
41    but can apply to OpenGL ES 1.1 with the GL_OES_framebuffer_object
42    extension.
43
44    Support for creating contexts that this extension applies to may
45    require extensions to companion APIs (see
46    EGL_KHR_surfaceless_context)
47
48Overview
49
50    Applications that only want to render to framebuffer objects should
51    not need to create a throw-away EGL surface (typically a 1x1
52    pbuffer) just to get a current context.  The EGL extension
53    KHR_surfaceless_context provides a mechanism for making a context
54    current without a surface.  This extensions specifies the behaviour
55    of OpenGL ES 1.x and OpenGL ES 2.0 when such a context is made
56    current.
57
58New Procedures and Functions
59
60    None
61
62New Tokens
63
64    Returned by glCheckFramebufferStatusOES and glCheckFramebufferStatus:
65
66        GL_FRAMEBUFFER_UNDEFINED_OES                    0x8219
67
68Additions to Chapter 2 'OpenGL ES Operation' of the OpenGL ES 2.0
69Specification:
70
71    In section 2.1 'OpenGL ES Fundamentals', replace the paragraphs
72    beginning:
73
74    "   The GL interacts with two classes of framebuffers: window-
75    system-provided framebuffers and application-created framebuffers ...
76        The effects of GL commands on the window-system-provided
77    framebuffer are ultimately controlled by the window-system that
78    allocates framebuffer resources ...
79        The initialization of a GL context itself occurs when the
80    window-system allocates a window for GL rendering and is influenced
81    by the state of the windowsystem-provided framebuffer"
82
83    with the following paragraphs:
84
85    "    The GL interacts with two classes of framebuffers: window
86    system-provided and application-created. There is at most one window
87    system-provided framebuffer at any time, referred to as the default
88    framebuffer. Application-created framebuffers, referred to as
89    framebuffer objects, may be created as desired. These two types of
90    framebuffer are distinguished primarily by the interface for
91    configuring and managing their state.
92        The effects of GL commands on the default framebuffer are
93    ultimately controlled by the window system, which allocates
94    framebuffer resources, determines which portions of the default
95    framebuffer the GL may access at any given time, and communicates to
96    the GL how those portions are structured. Therefore, there are no GL
97    commands to initialize a GL context or configure the default
98    framebuffer.
99        Similarly, display of framebuffer contents on a physical display
100    device (including the transformation of individual framebuffer
101    values by such techniques as gamma correction) is not addressed by
102    the GL.
103        Allocation and configuration of the default framebuffer occurs
104    outside of the GL in conjunction with the window system, using
105    companion APIs, such as EGL. Allocation and initialization of GL
106    contexts is also done using these companion APIs. GL contexts can
107    typically be associated with different default framebuffers, and
108    some context state is determined at the time this association is
109    performed.
110        It is possible to use a GL context without a default framebuffer,
111    in which case a framebuffer object must be used to perform all
112    rendering. This is useful for applications needing to perform
113    offscreen rendering."
114
115    In the last paragraph of section 2.12 'Controlling the viewport',
116    after the sentence:
117
118    " In the initial state, w and h are set to the width and height,
119    respectively, of the window into which the GL is to do its
120    rendering."
121
122    Add the sentence:
123
124    " If no default framebuffer is associated with the GL context (see
125    chapter 4), then w and h are initially set to zero."
126
127Additions to Chapter 4 'Per-Fragment Operations and the Framebuffer', of
128the OpenGL ES 2.0 Specification:
129
130    In the introduction, after the sentence:
131
132    " Further, and implementation or context may not provide depth or
133    stencil buffers."
134
135    Add the sentence:
136    " If no default framebuffer is associated with the GL context, the
137    framebuffer is incomplete except when a framebuffer object is bound.
138    (see sections 4.4.1 and 4.4.5)"
139
140    In the last paragraph of section 4.1.2 'Scissor Test', after the
141    sentence
142
143    " The state required consists of four integer values and a bit
144    indicating whether the test is enabled or disabled. In the initial
145    state left = bottom = 0; width and height are determined by the size
146    of the GL window."
147
148    Add the sentence:
149
150    " If the default framebuffer is bound but no default framebuffer is
151    associated with the GL context (see chapter 4), then width and
152    height are initially set to zero."
153
154    In section 4.4.5 'Framebuffer Completeness', before the first
155    paragraph, add the paragraphs:
156
157    "   A framebuffer must be framebuffer complete to effectively be
158    used as the draw or read framebuffer of the GL.
159        The default framebuffer is always complete if it exists; however,
160    if no default framebuffer exists (no window system-provided drawable
161    is associated with the GL context), it is deemed to be incomplete."
162
163    In the subsection 'Framebuffer Completeness', add to the list of
164    rules for framebuffer completeness and associated errors:
165
166    "* if target is the default framebuffer, the default framebuffer
167    exists. { FRAMEBUFFER_UNDEFINED_OES } "
168
169    To the list of actions which may affect framebuffer completeness,
170    add the action:
171
172    " Associating a different window system-provided drawable, or no
173    drawable, with the default framebuffer using a window system binding
174    API such as EGL."
175
176Revision History
177
178    Version 4, 2012/05/30 (Greg Roth) - OESify. Add suffix. Omit
179    indiscression. Revise widths.
180
181    Version 3, 2012/05/29 (Steven Holte) - Typo corrections.
182
183    Version 2, 2012/04/13 (Steven Holte) - Language modifications
184    expanded to include harmonize with related specifications.
185
186    Version 1, 2010/08/19 (Kristian Hoegsberg) - Initial draft, based
187    on Jon's wording in the EGL_KHR_surfaceless_gles extension.
188