Opengl ES 3.2 (October 22, 2019) CONTENTS Iii

Opengl ES 3.2 (October 22, 2019) CONTENTS Iii

OpenGL R ES Version 3.2 (October 22, 2019) Editor: Jon Leech Copyright c 2006-2019 The Khronos Group Inc. All Rights Reserved. This specification is protected by copyright laws and contains material proprietary to Khronos. Except as described by these terms, it or any components may not be reproduced, republished, distributed, transmitted, displayed, broadcast or otherwise exploited in any manner without the express prior written permission of Khronos. This specification has been created under the Khronos Intellectual Property Rights Policy, which is Attachment A of the Khronos Group Membership Agreement available at www.khronos.org/files/member agreement.pdf. Khronos grants a con- ditional copyright license to use and reproduce the unmodified specification for any purpose, without fee or royalty, EXCEPT no licenses to any patent, trade- mark or other intellectual property rights are granted under these terms. Parties desiring to implement the specification and make use of Khronos trademarks in relation to that implementation, and receive reciprocal patent license protection under the Khronos IP Policy must become Adopters and confirm the implementa- tion as conformant under the process defined by Khronos for this specification; see https://www.khronos.org/adopters. Khronos makes no, and expressly disclaims any, representations or warranties, ex- press or implied, regarding this specification, including, without limitation: mer- chantability, fitness for a particular purpose, non-infringement of any intellectual property, correctness, accuracy, completeness, timeliness, and reliability. Under no circumstances will Khronos, or any of its Promoters, Contributors or Members, or their respective partners, officers, directors, employees, agents or representatives be liable for any damages, whether direct, indirect, special or consequential damages for lost revenues, lost profits, or otherwise, arising from or in connection with these materials. Vulkan and Khronos are registered trademarks, and WebGL and EGL are trade- marks of The Khronos Group Inc. ASTC is a trademark of ARM Holdings PLC; OpenCL is a trademark of Apple Inc.; and OpenGL is a registered trademark, and the OpenGL ES and OpenGL SC logos are trademarks of Hewlett Packard Enter- prise, all used under license by Khronos. All other product names, trademarks, and/or company names are used solely for identification and belong to their respec- tive owners. Contents 1 Introduction1 1.1 Formatting of the OpenGL ES Specification . .1 1.2 What is the OpenGL ES Graphics System? . .1 1.3 Programmer’s View of OpenGL ES . .2 1.4 Implementor’s View of OpenGL ES . .2 1.5 Our View . .3 1.6 Related APIs . .3 1.6.1 OpenGL ES Shading Language . .3 1.6.2 WebGL . .4 1.6.3 Window System Bindings . .4 1.6.4 OpenCL . .4 1.7 Filing Bug Reports . .5 2 OpenGL ES Fundamentals6 2.1 OpenGL ES Fundamentals . .6 2.2 Command Syntax . .8 2.2.1 Data Conversion For State-Setting Commands . 10 2.2.2 Data Conversions For State Query Commands . 12 2.3 Command Execution . 13 2.3.1 Errors . 13 2.3.2 Graphics Reset Recovery . 16 2.3.3 Flush and Finish . 17 2.3.4 Numeric Representation and Computation . 18 2.3.5 Fixed-Point Data Conversions . 22 2.4 Rendering Commands . 24 2.5 Context State . 24 2.5.1 Generic Context State Queries . 25 2.6 Objects and the Object Model . 25 2.6.1 Object Management . 25 i CONTENTS ii 2.6.2 Buffer Objects . 26 2.6.3 Shader Objects . 27 2.6.4 Program Objects . 27 2.6.5 Program Pipeline Objects . 27 2.6.6 Texture Objects . 27 2.6.7 Sampler Objects . 28 2.6.8 Renderbuffer Objects . 28 2.6.9 Framebuffer Objects . 28 2.6.10 Vertex Array Objects . 28 2.6.11 Transform Feedback Objects . 29 2.6.12 Query Objects . 29 2.6.13 Sync Objects . 29 3 Dataflow Model 30 4 Event Model 33 4.1 Sync Objects and Fences . 33 4.1.1 Waiting for Sync Objects . 35 4.1.2 Signaling . 37 4.1.3 Sync Object Queries . 38 4.2 Query Objects and Asynchronous Queries . 39 4.2.1 Query Object Queries . 42 5 Shared Objects and Multiple Contexts 44 5.1 Object Deletion Behavior . 44 5.1.1 Side Effects of Shared Context Destruction . 44 5.1.2 Automatic Unbinding of Deleted Objects . 45 5.1.3 Deleted Object and Object Name Lifetimes . 45 5.2 Sync Objects and Multiple Contexts . 46 5.3 Propagating Changes to Objects . 46 5.3.1 Determining Completion of Changes to an object . 47 5.3.2 Definitions . 47 5.3.3 Rules . 48 6 Buffer Objects 50 6.1 Creating and Binding Buffer Objects . 51 6.1.1 Binding Buffer Objects to Indexed Targets . 53 6.2 Creating and Modifying Buffer Object Data Stores . 54 6.3 Mapping and Unmapping Buffer Data . 56 6.3.1 Unmapping Buffers . 60 OpenGL ES 3.2 (October 22, 2019) CONTENTS iii 6.3.2 Effects of Mapping Buffers on Other GL Commands . 60 6.4 Effects of Accessing Outside Buffer Bounds . 61 6.5 Copying Between Buffers . 61 6.6 Buffer Object Queries . 62 6.6.1 Indexed Buffer Object Limits and Binding Queries . 63 6.7 Buffer Object State . 65 7 Programs and Shaders 66 7.1 Shader Objects . 67 7.2 Shader Binaries . 70 7.3 Program Objects . 71 7.3.1 Program Interfaces . 79 7.4 Program Pipeline Objects . 94 7.4.1 Shader Interface Matching . 97 7.4.2 Program Pipeline Object State . 99 7.5 Program Binaries . 100 7.6 Uniform Variables . 102 7.6.1 Loading Uniform Variables In The Default Uniform Block 109 7.6.2 Uniform Blocks . 112 7.6.3 Uniform Buffer Object Bindings . 115 7.7 Atomic Counter Buffers . 116 7.7.1 Atomic Counter Buffer Object Storage . 117 7.7.2 Atomic Counter Buffer Bindings . 117 7.8 Shader Buffer Variables and Shader Storage Blocks . 118 7.9 Samplers . 120 7.10 Images . 120 7.11 Shader Memory Access . 121 7.11.1 Shader Memory Access Ordering . 121 7.11.2 Shader Memory Access Synchronization . 123 7.12 Shader, Program, and Program Pipeline Queries . 128 7.13 Required State . 136 8 Textures and Samplers 138 8.1 Texture Objects . 139 8.2 Sampler Objects . 141 8.3 Sampler Object Queries . 144 8.4 Pixel Rectangles . 145 8.4.1 Pixel Storage Modes and Pixel Buffer Objects . 145 8.4.2 Transfer of Pixel Rectangles . 147 8.5 Texture Image Specification . 158 OpenGL ES 3.2 (October 22, 2019) CONTENTS iv 8.5.1 Required Texture Formats . 161 8.5.2 Encoding of Special Internal Formats . 161 8.5.3 Texture Image Structure . 165 8.6 Alternate Texture Image Specification Commands . 168 8.6.1 Texture Copying Feedback Loops . 178 8.7 Compressed Texture Images . 178 8.8 Multisample Textures . 184 8.9 Buffer Textures . 186 8.10 Texture Parameters . 189 8.11 Texture Queries . 192 8.11.1 Active Texture . 192 8.11.2 Texture Parameter Queries . 192 8.11.3 Texture Level Parameter Queries . 193 8.12 Depth Component Textures . 194 8.13 Cube Map Texture Selection . 195 8.13.1 Seamless Cube Map Filtering . 195 8.14 Texture Minification . 196 8.14.1 Scale Factor and Level of Detail . 196 8.14.2 Coordinate Wrapping and Texel Selection . 198 8.14.3 Mipmapping . 203 8.14.4 Manual Mipmap Generation . 205 8.15 Texture Magnification . 206 8.16 Combined Depth/Stencil Textures . 206 8.17 Texture Completeness . 206 8.17.1 Effects of Sampler Objects on Texture Completeness . 208 8.17.2 Effects of Completeness on Texture Application . 208 8.17.3 Effects of Completeness on Texture Image Specification . 208 8.18 Immutable-Format Texture Images . 208 8.19 Texture State . 212 8.20 Texture Comparison Modes . 213 8.20.1 Depth Texture Comparison Mode . 213 8.21 sRGB Texture Color Conversion . 214 8.22 Shared Exponent Texture Color Conversion . 216 8.23 Texture Image Loads and Stores . 216 8.23.1 Image Unit Queries . 222 9 Framebuffers and Framebuffer Objects 223 9.1 Framebuffer Overview . 223 9.2 Binding and Managing Framebuffer Objects . 225 9.2.1 Framebuffer Object Parameters . 228 OpenGL ES 3.2 (October 22, 2019) CONTENTS v 9.2.2 Attaching Images to Framebuffer Objects . 230 9.2.3 Framebuffer Object Queries . 231 9.2.4 Renderbuffer Objects . ..

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    600 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us