| 
              
35b92525
               | 
              
2025-08-13T15:27:32
               | 
              
               | 
              
Remove lock from GenVertexArrays/IsVertexArray
VertexArrays are per context anyway and is thread safe, so there is no
need for shared lock. This CL moves mVertexArrayMap from Context to
PrivateState so that it won't be accessed by other APIs.
Bug: b/433331119
Change-Id: I466a79762e887dbec78b796b52028420837cff59
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6977163
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
               | 
            
            
              
   
               | 
              
25390156
               | 
              
2025-08-21T00:13:19
               | 
              
               | 
              
Suppress unsafe buffers on a file-by-file basis in src/ [1 of N]
In this CL, we suppress many files but stop short of actually
enabling the warning by not removing the line from the
unsafe_buffers_paths.txt file. That will happen in a follow-on
CL, along with resolving any stragglers missed here.
This is mostly a manual change so as to familiarize myself with
the kinds of issues faced by the Angle codebase when applying buffer
safety warnings.
-- Re-generate affected hashes.
-- Clang-format applied to all changed files.
-- Add a few missing .reserve() calls to vectors as noticed.
-- Fix some mismatches between file names and header comments.
-- Be more consistent with header comment format (blank lines and
   trailing //-only lines when a filename comment adjoins license
   boilerplate).
Bug: b/436880895
Change-Id: I3bde5cc2059acbe8345057289214f1a26f1c34aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6869022
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
9e6f44bc
               | 
              
2025-04-18T00:00:00
               | 
              
               | 
              
Autogen support checks for extension entry points
As a side effect, added missing support checks
for the following extension entry points:
-  GL_ANGLE_memory_object_flags
  - TexStorageMemFlags2DMultisampleANGLE
  - TexStorageMemFlags3DANGLE
  - TexStorageMemFlags3DMultisampleANGLE
-  GL_EXT_buffer_storage
  - BufferStorageEXT
-  GL_EXT_external_buffer
  - BufferStorageExternalEXT
-  GL_EXT_robustness
  - GetnUniformfvEXT
  - GetnUniformivEXT
  - ReadnPixelsEXT
-  GL_EXT_separate_shader_objects
  - ProgramUniform4ivEXT
  - ProgramUniform4uivEXT
-  GL_MESA_framebuffer_flip_y
  - FramebufferParameteriMESA
  - GetFramebufferParameterivMESA
-  GL_OES_matrix_palette
  - CurrentPaletteMatrixOES
  - LoadPaletteFromModelViewMatrixOES
  - MatrixIndexPointerOES
  - WeightPointerOES
-  GL_OES_query_matrix
  - QueryMatrixxOES
-  GL_OES_texture_cube_map
  - GetTexGenf*OES
  - TexGen*OES
-  GL_QCOM_framebuffer_foveated
  - FramebufferFoveationConfigQCOM
  - FramebufferFoveationParametersQCOM
-  GL_QCOM_texture_foveated
  - TextureFoveationParametersQCOM
Bug: angleproject:409484297
Change-Id: I7fe05afe2a4575ae5d913bf9f60d5575404f808b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6494399
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
61bfe86c
               | 
              
2025-04-04T00:00:00
               | 
              
               | 
              
Autogen context version checks for 1.0 entry points
* Added missing extension support checks for
  glPointSizePointerOES and glDrawTex*OES.
* Removed incorrect validation
  from ValidateDepthRangex.
* Removed unused functions.
Bug: angleproject:409484297
Change-Id: I9c12be4c0ed60f943fa3c16a8e23693d8fb7a76f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6479833
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
               | 
            
            
              
   
               | 
              
4b9525b2
               | 
              
2025-04-04T00:00:00
               | 
              
               | 
              
Remove all getClientMajorVersion helpers
Client version checks should use
proper struct compare operations.
Bug: angleproject:408843436
Change-Id: I92cd91d1e7e6daa761f79060835aa534c5671264
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6467460
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
e914b53d
               | 
              
2025-02-18T17:13:08
               | 
              
               | 
              
Add validation of null pointers for certain APIs
Bug: angleproject:397315932
Change-Id: I3b253a7ca0bbdf4fd55cf67943971426d825cd24
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6275697
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
b16d105f
               | 
              
2024-10-03T10:25:32
               | 
              
               | 
              
Remove Desktop GL front-end support
For Desktop GL applications, please use Zink!
Bug: angleproject:370937467
Change-Id: Ie734634bb62a2e98c80e1b32d8b3d34624da3c04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5905428
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
74cf6a3a
               | 
              
2023-07-12T14:44:17
               | 
              
               | 
              
Ensure lockless entry point validations only access private data
Bug: angleproject:8224
Change-Id: I19e867923b088879f9f37d0a3b4ff8b681470be0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4678352
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
c9a42949
               | 
              
2023-07-12T15:07:17
               | 
              
               | 
              
Make validation make straight calls to ErrorSet
... and avoid going through the context (just to get a const cast).
This change is also in preparation for an follow up where some entry
points directly use ErrorSet and don't access context at all.
Bug: angleproject:8224
Change-Id: Idef0a88d9407870e7a84b4fe6967fbff175c269b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4678350
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
97926f80
               | 
              
2022-09-15T00:10:49
               | 
              
               | 
              
GL: Implement GL_ANGLE_logic_op
Enabled only on Desktop GL where logic op is available.
Bug: angleproject:7654
Change-Id: I3c17ffb5b21abf31aec247319a625526f1bec37d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3898316
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
02eb5f49
               | 
              
2022-08-19T12:41:11
               | 
              
               | 
              
validation: Annotate kEnumNotSupported errors with values.
Use validationErrorF to annotate all unsupported enum errors with the
corresponding value of the enum in hex.
This makes the errors more meaningful and reduces the amount of
debugging required to find out the invalid enum used.
Add kEnumInvalid error string in cases an InvalidEnum is provided and
can't be resolved to the given GL enum.
Before:
glEnable: GL error: HIGH: Enum is not currently supported.
After:
glEnable: GL error: HIGH: Enum 0x809D is currently not supported.
Bug: angleproject:7595
Bug: angleproject:7596
Change-Id: Iff060a1c3a2f482f4df5b5b7ea036b93025df7d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3849475
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
               | 
            
            
              
   
               | 
              
98a49220
               | 
              
2021-11-19T15:02:47
               | 
              
               | 
              
GLES 1: Fix missing validation returns.
The validation was correctly generating an error but ANGLE
was not aborting the API calls for several validation calls.
This was detected by UBSAN tests which would trip a division
by zero.
Test: GLSLTest_ES3.GLVertexIDIntegerTextureDrawArrays/*
Bug: angleproject:5795
Change-Id: I5d5d8448454ce19cb4bdf1cd76a6ce513a6e9c6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3293821
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
2aa5286d
               | 
              
2021-10-12T17:05:48
               | 
              
               | 
              
Add Entry Point name to validation errors
Add gl/gles entry point names to validation error messages
some special cases:
1. Debug::insertPerfWarning() is invoked from multiple places,
such as TextureVK, ContextVK,
adding an extra entryPoint function parameter
in these files will need
extra investigations.
I am passing the entryPoint name GLInvalid as a
temp workaround.
2.ErrorSet::hangleError() is invoked from multiple
Context*.cpp files,
adding an extra entryPoint function parameter
in these files will need
extra investigations.
I am passing the entryPoint name GLInvalid as a
temp workaround.
3. Debug::insertMessage(), Debug::popGroup(), Debug::pushGroup()
can be invoked from more than one GL entry points,
e.g. Debug::pushGroup() can be invoked from
either GL_APIENTRY GL_PushDebugGroup() or
GL_APIENTRY GL_PushDebugGroupKHR()
through context->pushDebugGroup() call.
Right now the same entry point name glPushDebugGroup will
be printed out in the error message for both cases.
However, we should be able to tell the actual entry point
by checking which version: KHR version or core version the
application uses, and this helps avoid the confusion.
For now we will let the same entry point name
getting printed for both cases.
Bug: angleproject:6523
Change-Id: I64a5463d9168d8444d376d1f428c3b3d894f2ea9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3215063
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
               | 
            
            
              
   
               | 
              
1ca1589f
               | 
              
2021-09-13T10:56:58
               | 
              
               | 
              
Give GLES extension bools a vendor suffix.
This is in preparation for auto-generation which will give all of
these bools suffixes.
Bug: angleproject:6379
Change-Id: I7e3f6c9b644c41a2165e6bf7b62d661fd352a250
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3158503
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
1bffabe8
               | 
              
2021-06-29T18:13:39
               | 
              
               | 
              
Fix -Wunreachable-code-aggressive.
Bug: chromium:1066980
Change-Id: I1fa08a40dbf223d60a10681af33ca8a29b12bf8b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2991094
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
ccd0b7e1
               | 
              
2020-11-30T08:37:04
               | 
              
               | 
              
Add support for OES_framebuffer_object extension
Expose OES_framebuffer_object extension for GLES1 contexts.
Bug: angleproject:5401
Test: FramebufferObjectTest*
Change-Id: I63b504f580cdab4655b4bfbd3438bcd807b422ea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2561795
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
e815afbf
               | 
              
2020-09-07T22:09:22
               | 
              
               | 
              
First pass at increasing inclusivity
Link to the inclusivity rules
https://source.android.com/setup/contribute/respectful-code
Bug: b/162834212
Bug: chromium:1097198
Change-Id: Ied5a9e3879d72bff3f77ea6fcda9b82f30c32c2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2396737
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Trevor Black <vantablack@google.com>
               | 
            
            
              
   
               | 
              
6b4962e8
               | 
              
2020-09-22T16:37:16
               | 
              
               | 
              
Allow GL_UNSIGNED_BYTE as a type for glColorPointer
Previously glColorPointer would reject GL_UNSIGNED_BYTE.
This should be allowed in both the gles 1 and 1.1 specifications.
See page 6 of the gles 1 specification and page 20 of the gles 1.1
specification.
This change allows doodle jump to work on angle on both the gl
and vulkan backend
Bug: angleproject:4308
Tests: angle_end2end_tests
       --gtest_filter=VertexPointerTest.AssignRetrieveColorUnsignedByte*
Change-Id: I35f41b28d94cb34bc36256420b57793691b78cff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2424465
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
5bb36cc0
               | 
              
2020-02-21T18:25:54
               | 
              
               | 
              
Passing covgl/covgl
Fix the following gles1-API implementation codes and some validation functions:
glClearColorx
glClearDepthx
glDepthRangex
glGetFixedv
glGetTexParameterxv
glLineWidthx
glPolygonOffsetx
glSampleCoveragex
glTexParameterx
glTexParameterxv
ValidateMaterialCommon
ValidateFogx
ValidateFogxv
ValidatePointSizex
ValidateRotatex
ValidateTexEnvx
ValidateTexEnvxv
Bug: angleproject:4281
Change-Id: Ia1d9e53c3ffde2bc77b7ca7eaa0d790e8ca43f10
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2075341
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
6c56c579
               | 
              
2020-01-21T11:08:36
               | 
              
               | 
              
Add Android boot animation and rounding error test
This introduces an end2end test that makes the same GLES1
calls as Android's default boot animation. The test uses
images of much smaller sizes, but we do the same thing
with the images as the original code (it uses one image as a
mask and moves the other along behind it).
The original default boot animation code can be found here:
https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/cmds/bootanimation/BootAnimation.cpp#422
This change also implements glTexParameterx since the default boot
animation requires it. This function is part of OES_FIXED_POINT.
This also includes a test to check for int to floating point cast errors
when using GL_TEXTURE_CROP_RECT_OES.
Tests: angle_end2end_tests --gtest_filter=*DefaultBootAnimation*
       angle_end2end_tests
       --gtest_filter=*TextureParameterTest.IntConversionsAndIntBounds*
Bug: angleproject:3644
Change-Id: Ib7e99c9dc1c001c71543d03ea4dd76082192f6a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2053506
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
               | 
            
            
              
   
               | 
              
b185002d
               | 
              
2020-02-21T16:58:39
               | 
              
               | 
              
Fix the condition of glOrtho{fx} validation
According to the OpenGL ES 1.1 spec, remove the conditions
of glOrtho validation that n and f must be positive.
Bug: angleproject:4281
Change-Id: I644a25408a026ce87211f2203b8e8203eeaf69bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2067002
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
bd4e756a
               | 
              
2020-02-17T09:49:45
               | 
              
               | 
              
Const-ify the validation layer.
Enforces that the validation layers should be working pretty much read-
only with the exeption of updating caches. Requires a few tricks:
 - updates EP code generation to add 'const' to pointer parameters
 - enables a kludge const_cast to enable the robust query extension
 - makes some members of Framebuffer mutable to work around syncState
 - makes 'is' queries and other methods in Context/State const
Will allow us to more safely expose the no_error extension.
Bug: angleproject:1280
Change-Id: Id9756757854c9e68fc096ecec8d93759fbe6b3a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2060689
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
94de306d
               | 
              
2020-01-14T16:18:56
               | 
              
               | 
              
Extensions suffixes
Added NV/OES suffixes to relevant Extensions members.
Bug: angleproject:3104
Change-Id: Ia1798157086230bde8d11c6fcb4fe93211e996ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2013168
Reviewed-by: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
d200a77a
               | 
              
2019-10-10T00:44:01
               | 
              
               | 
              
Metal backend skeleton implementation.
Bug: angleproject:2634
Change-Id: I34be82f4a80a6851fecb53a51e069b134d82613a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1849079
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
aa292a59
               | 
              
2019-10-10T08:22:04
               | 
              
               | 
              
Generate GLES 3.2 entry points
This is a combination of:
- Changing the "scripts/generate_entry_points.py" script to tell it to
  also auto-generate GLES 3.2.  Also changing "scripts/gen_proc_table.py".
- Generating new and modified files needed to add GLES 3.2 to the
  ANGLE front-end.  This is done by running the following command:
  "python scripts/run_code_generation.py".
- Creating the following files:
  - src/libANGLE/validationES32.h
  - src/libANGLE/validationES32.cpp
  - src/libANGLE/capture_gles_3_2_params.cpp
- Hand-editing the following files:
  - src/libGLESv1_CM/libGLESv1_CM.cpp
  - include/GLES2/gl2ext_angle.h
  - src/libGLESv2.gni
  - src/libANGLE/Context.h
  - src/libANGLE/Context.cpp
  - src/libANGLE/Context_gl.cpp
  - src/libANGLE/ErrorStrings.h
  - src/libANGLE/State.h
  - src/libANGLE/validationES1.cpp
  - src/libANGLE/validationGL3.cpp
  - src/libANGLE/validationGL31.cpp
  - src/libANGLE/validationGL32.cpp
  - src/libANGLE/validationGL33.cpp
  - src/libANGLE/validationGL4.cpp
  - src/libANGLE/validationGL43.cpp
  - src/libANGLE/validationGL45.cpp
Bug: angleproject:3649
Change-Id: I5b67f72e3e3b55e74039ec3e28aa8d399ec08cf2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1850231
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
               | 
            
            
              
   
               | 
              
2c5d48a6
               | 
              
2019-08-23T09:28:35
               | 
              
               | 
              
Use FramebufferID in place of GLuint handle
Bug: angleproject:3804
Change-Id: I5e1b5f1903b05a91468379e00ec130802315cdc2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769039
Reviewed-by: Jiacheng Lu <lujc@google.com>
Commit-Queue: Jiacheng Lu <lujc@google.com>
               | 
            
            
              
   
               | 
              
9d737966
               | 
              
2019-08-14T12:25:12
               | 
              
               | 
              
Standardize copyright notices to project style
For all "ANGLE Project" copyrights, standardize to the format specified
by the style guide. Changes:
- "Copyright (c)" and "Copyright(c)" changed to just "Copyright".
- Removed the second half of date ranges ("Y1Y1-Y2Y2"->"Y1Y1").
- Fixed a small number of files that had no copyright date using the
  initial commit year from the version control history.
- Fixed one instance of copyright being "The ANGLE Project" rather than
  "The ANGLE Project Authors"
These changes are applied both to the copyright of source file, and
where applicable to copyright statements that are generated by
templates.
BUG=angleproject:3811
Change-Id: I973dd65e4ef9deeba232d5be74c768256a0eb2e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1754397
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
2ab08edc
               | 
              
2019-08-12T16:20:21
               | 
              
               | 
              
Use TextureID in place of GLuint handles.
Bug: angleproject:3611
Change-Id: Ie6156e8732b3ca4dc6c4439c059a5481a4dfd250
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1738753
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
7c7dec01
               | 
              
2019-08-06T17:44:11
               | 
              
               | 
              
Use RenderbufferID in place of GLuint handles.
This will allow frame capture/replay to more easily emulate object
handle manipulation. It also provides a bit of type safety. Also
generalizes ResourceMap to handle non-GLuint IDs.
Bug: angleproject:3611
Change-Id: I174fd260f326e0dbe2aca3f818215c91d82cf48c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1706559
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
f2412bca
               | 
              
2019-07-16T15:47:34
               | 
              
               | 
              
Get rendering to texture working
Other small fixes for desktop compatibility
Bug: angleproject:3620
Change-Id: I8e75bce1f850fb891c8bb6e16f79302a6d59276c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1707932
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
c09ae15c
               | 
              
2019-02-01T14:16:32
               | 
              
               | 
              
Enable -Wextra-semi and -Wextra-semi-stmt.
This will prevent users from accidentally making semicolon errors in
the future.
Bug: chromium:926235
Change-Id: I79a6fa376fb1ad8f0fcf1b65b1f572a035d1f4e9
Reviewed-on: https://chromium-review.googlesource.com/c/1446493
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
dd34b3b9
               | 
              
2019-01-16T09:59:54
               | 
              
               | 
              
Pack VertexAttribType enum.
This improves performance slightly in vertex array format checks.
Instead of needing to switch on GLenum values we can use packed arrays
and tables to determine the values we need.
Does not significantly affect performance but will enable future work.
Bug: angleproject:3074
Change-Id: I6f4821a463e9b41fe3f8c8967eb3ed4c1d6b84be
Reviewed-on: https://chromium-review.googlesource.com/c/1393903
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
c3dc5d48
               | 
              
2018-12-30T12:12:04
               | 
              
               | 
              
Merge gl::Context and gl::ContextState.
This reduces the number of indrections when accessing the Extensions
or Caps structures. It will provide a small speed-up to some methods.
It also cleans up the code.
Bug: angleproject:2966
Change-Id: Idddac70758c42c1c2b75c885d0cacc8a5c458685
Reviewed-on: https://chromium-review.googlesource.com/c/1392391
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Markus Tavenrath <matavenrath@nvidia.com>
               | 
            
            
              
   
               | 
              
e0472f3d
               | 
              
2018-11-27T16:32:45
               | 
              
               | 
              
Slight refactor to ErrorStrings.h.
Allows for better readability. Also sort the error strings by ID.
Bug: angleproject:2957
Change-Id: Ib3900a4c90507ac84496fd5ff916417eb768667b
Reviewed-on: https://chromium-review.googlesource.com/c/1337461
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
               | 
            
            
              
   
               | 
              
610640fa
               | 
              
2018-11-21T17:28:41
               | 
              
               | 
              
Don't use gl::Error in validation.
Instead pass error code and error message directly to the Context. As
a side effect every validation error has an associated message now.
Reduces binary size by almost 100k.
Bug: angleproject:2957
Change-Id: I045e8ab57f8f9d787654a32f6f037011fe3a9f24
Reviewed-on: https://chromium-review.googlesource.com/c/1335890
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
               | 
            
            
              
   
               | 
              
778bf09d
               | 
              
2018-11-14T09:54:36
               | 
              
               | 
              
Auto-generate validation headers.
This will make them easier to maintain. Add to add new features.
Bug: angleproject:2964
Change-Id: I8c1f92e0d0ca15fc4f555f6c537fa9311320ef7d
Reviewed-on: https://chromium-review.googlesource.com/c/1334429
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
               | 
            
            
              
   
               | 
              
b8543630
               | 
              
2018-10-02T19:46:14
               | 
              
               | 
              
Support GL_OES_texture_border_clamp
Added support for GL_TEXTURE_BORDER_COLOR and GL_CLAMP_TO_BORDER in
OpenGL/OpenGLES, Direct3D9 and Direct3D11 backends.
For integer textures in OpenGLES3 contexts these additional entry points
are available now:
void glTexParameterIivOES(enum target, enum pname, const int *params);
void glTexParameterIuivOES(enum target, enum pname, const uint *params);
void glGetTexParameterIivOES(enum target, enum pname, int *params);
void glGetTexParameterIuivOES(enum target, enum pname, uint *params);
void glSamplerParameterIivOES(uint sampler, enum pname, const int *params);
void glSamplerParameterIuivOES(uint sampler, enum pname, const uint *params);
void glGetSamplerParameterIivOES(uint sampler, enum pname, int *params);
void glGetSamplerParameterIuivOES(uint sampler, enum pname, uint *params);
BUG=angleproject:2890
TEST=angle_end2end_tests.TextureBorderClamp*
Change-Id: Iee3eeb399d8d7851b3b30694ad8f21a2111f5828
Reviewed-on: https://chromium-review.googlesource.com/c/1257824
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
6e5bf36f
               | 
              
2018-08-15T09:53:17
               | 
              
               | 
              
GLES1: Fixes for Gets() test
- Fixed wrong face parameter for glGetMaterial*.
- Enabled GL_LINE_SMOOTH capability in state only (no rendering yet)
- Enabled logical operation capability in state only (no rendering yet)
- Fixed wrong handling of GL_RGB/ALPHA_SCALE and
GL_POINT_COORD_REPLACE_OES
Test: Enable and pass Gets() GLES1 conformance test
BUG=angleproject:2306
Change-Id: Ib5c50a2055129b76ad24053baf0dac24dcc00761
Reviewed-on: https://chromium-review.googlesource.com/1176161
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
               | 
            
            
              
   
               | 
              
0df813c3
               | 
              
2018-07-12T12:52:06
               | 
              
               | 
              
GLES1: GL_OES_draw_texture
BUG=angleproject:2306
This implements GL_OES_draw_texture using a few bits of new state
in the renderer and adding a code path for it in the shader, using
gl_VertexID to draw the quad backing the texture draw. This allows us
to avoid allocating a separate vertex array for the texture draw and
reuses the current shader as much as possible, plugging in to the
existing multitexturing pipeline.
- Add unit test and sample
- No new test expectations, but advertising GL_OES_draw_texture makes
the DrawTex GLES1 conformance test non-trivial and actually test
glDrawTex*.
Change-Id: I1485098249fe44d46a01cab4bb7b2c39d0492923
Reviewed-on: https://chromium-review.googlesource.com/1135930
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
               | 
            
            
              
   
               | 
              
f97641c1
               | 
              
2018-06-21T19:22:45
               | 
              
               | 
              
GLES1: Texture parameters
Note: minimum buffer size is now checked for texture parameters in
GLES2.
- Mipmap generation hint
- Crop rect
- Update test expectations
BUG=angleproject:2306
Change-Id: Ib459b8191111732a1326b44f2226b72ca297325a
Reviewed-on: https://chromium-review.googlesource.com/1111575
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
               | 
            
            
              
   
               | 
              
9c4c0926
               | 
              
2018-06-13T09:29:00
               | 
              
               | 
              
Reland "GLES1: Point rasterization (partial implementation)"
This is a reland of 4004ae0e033a0169de3cb53c0a036833ad47178a
Fix: Put the missing early-out in ValidatePointParameterCommon
Original change's description:
> GLES1: Point rasterization (partial implementation)
>
> - Not included: Smooth points
>
> - GL_OES_point_sprite
> - Update test expectations. Note: due to different random sampling,
> edge cases were hit in UserClip. Disabling that test for now.
>
> BUG=angleproject:2306
>
> Change-Id: If8367bc3321804b3299d3bc381d6a8e236754baa
> Reviewed-on: https://chromium-review.googlesource.com/1101910
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Commit-Queue: Lingfeng Yang <lfy@google.com>
Bug: angleproject:2306
Change-Id: Id8e71352a77ff0ce71cb604965effbfb8aca613e
Reviewed-on: https://chromium-review.googlesource.com/1108458
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
               | 
            
            
              
   
               | 
              
a58d69e9
               | 
              
2018-06-20T18:07:11
               | 
              
               | 
              
Revert "GLES1: Point rasterization (partial implementation)"
This reverts commit 4004ae0e033a0169de3cb53c0a036833ad47178a.
Crash in PointParameterTest.NegativeEnum/ES1_OPENGL.
https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Mac%20FYI%20GPU%20ASAN%20Release/1178
angle_end2end_tests on Intel GPU on Mac on Mac-10.12.6 
angle_end2end_tests on ATI GPU on Mac Retina on Mac-10.12.6
Original change's description:
> GLES1: Point rasterization (partial implementation)
> 
> - Not included: Smooth points
> 
> - GL_OES_point_sprite
> - Update test expectations. Note: due to different random sampling,
> edge cases were hit in UserClip. Disabling that test for now.
> 
> BUG=angleproject:2306
> 
> Change-Id: If8367bc3321804b3299d3bc381d6a8e236754baa
> Reviewed-on: https://chromium-review.googlesource.com/1101910
> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
> Commit-Queue: Lingfeng Yang <lfy@google.com>
TBR=geofflang@chromium.org,jmadill@chromium.org,cwallez@chromium.org,lfy@google.com
Change-Id: I776ce0506d349382b3af035c962aa2c3f6826b99
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2306
Bug: angleproject:2680
Reviewed-on: https://chromium-review.googlesource.com/1108457
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
               | 
            
            
              
   
               | 
              
4004ae0e
               | 
              
2018-06-13T09:29:00
               | 
              
               | 
              
GLES1: Point rasterization (partial implementation)
- Not included: Smooth points
- GL_OES_point_sprite
- Update test expectations. Note: due to different random sampling,
edge cases were hit in UserClip. Disabling that test for now.
BUG=angleproject:2306
Change-Id: If8367bc3321804b3299d3bc381d6a8e236754baa
Reviewed-on: https://chromium-review.googlesource.com/1101910
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
               | 
            
            
              
   
               | 
              
45b5a875
               | 
              
2018-06-07T11:33:25
               | 
              
               | 
              
GLES1: Texture environment API
BUG=angleproject:2306
Change-Id: Ibb168d5c9f7aa96a48c96ffbe96ecead2276975e
Reviewed-on: https://chromium-review.googlesource.com/1092101
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
74be296b
               | 
              
2018-06-07T09:13:38
               | 
              
               | 
              
GLES1: Texture environments setup
- Revise entry point definitions to use packed enums
BUG=angleproject:2306
Change-Id: I06ad95f475d1dbaf07ec24ff2544503c4a44e826
Reviewed-on: https://chromium-review.googlesource.com/1090996
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
               | 
            
            
              
   
               | 
              
7ba3f425
               | 
              
2018-06-01T09:43:04
               | 
              
               | 
              
GLES1: Fog API and rendering
- Update test expectations
BUG=angleproject:2306
Change-Id: Ic5aa5f052bcbe9c5adaf0eb0c6c06df66fd1720c
Reviewed-on: https://chromium-review.googlesource.com/1082978
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
060088a5
               | 
              
2018-05-30T20:40:57
               | 
              
               | 
              
GLES1: Clip plane API and rendering
- Add unit tests for the API
- Update test expectations
+ Pass through point size from the vertex array to the shader,
required for new tests to pass.
BUG=angleproject:2306
Change-Id: Ib19436c1f4cb12873adea94f734c821363f9e27d
Reviewed-on: https://chromium-review.googlesource.com/1079993
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
a0cfa873
               | 
              
2018-05-30T21:12:17
               | 
              
               | 
              
GLES1: Shade model API
+ add sample
BUG=angleproject:2306
Change-Id: Ie0c391618ec2b771cc99b96db02b9008a86272b9
Reviewed-on: https://chromium-review.googlesource.com/1079992
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
d0febe7a
               | 
              
2018-05-17T22:36:52
               | 
              
               | 
              
Reland "GLES1: Entry points for lighting and materials"
This is a reland of 4a09c1a245c406e402b3996b7ed33798b897e60f
Entry points have been autogenerated again.
Original change's description:
> GLES1: Entry points for lighting and materials
>
> - glLight*/glMaterial and their queries
> - Use new packed enums in these entry points, except for lightmodel
> which stays GLenum to be consistent with other generic glGet's
> - State.cpp: New glGet* queries related to light model and
> light/normal rescale enablement
> - GLES1State.cpp: Functions to get/set lighting/material state
> - Validation for lighting/materials
>
> + Add a few convenience methods to random_utils for sampling
> non-negative floats and a sampler for random booleans
>
> BUG=angleproject:2306
>
> Change-Id: If7ba0c0a0dc75f88fbaa986b904f1ea96ee6512e
> Reviewed-on: https://chromium-review.googlesource.com/1065502
> Commit-Queue: Lingfeng Yang <lfy@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:2306
Change-Id: I434273acd5200dd9f4925e239a032cc8db31a434
Reviewed-on: https://chromium-review.googlesource.com/1072849
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
               | 
            
            
              
   
               | 
              
668e507f
               | 
              
2018-05-24T17:12:14
               | 
              
               | 
              
Revert "GLES1: Entry points for lighting and materials"
This reverts commit 4a09c1a245c406e402b3996b7ed33798b897e60f.
Reason for revert: Seems to break the build
Original change's description:
> GLES1: Entry points for lighting and materials
> 
> - glLight*/glMaterial and their queries
> - Use new packed enums in these entry points, except for lightmodel
> which stays GLenum to be consistent with other generic glGet's
> - State.cpp: New glGet* queries related to light model and
> light/normal rescale enablement
> - GLES1State.cpp: Functions to get/set lighting/material state
> - Validation for lighting/materials
> 
> + Add a few convenience methods to random_utils for sampling
> non-negative floats and a sampler for random booleans
> 
> BUG=angleproject:2306
> 
> Change-Id: If7ba0c0a0dc75f88fbaa986b904f1ea96ee6512e
> Reviewed-on: https://chromium-review.googlesource.com/1065502
> Commit-Queue: Lingfeng Yang <lfy@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=geofflang@chromium.org,jmadill@chromium.org,cwallez@chromium.org,lfy@google.com
Change-Id: Ifabd708ded87c7484ad6d466508e2c2d6ea2557c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2306
Reviewed-on: https://chromium-review.googlesource.com/1071828
Reviewed-by: Lingfeng Yang <lfy@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
4a09c1a2
               | 
              
2018-05-17T22:36:52
               | 
              
               | 
              
GLES1: Entry points for lighting and materials
- glLight*/glMaterial and their queries
- Use new packed enums in these entry points, except for lightmodel
which stays GLenum to be consistent with other generic glGet's
- State.cpp: New glGet* queries related to light model and
light/normal rescale enablement
- GLES1State.cpp: Functions to get/set lighting/material state
- Validation for lighting/materials
+ Add a few convenience methods to random_utils for sampling
non-negative floats and a sampler for random booleans
BUG=angleproject:2306
Change-Id: If7ba0c0a0dc75f88fbaa986b904f1ea96ee6512e
Reviewed-on: https://chromium-review.googlesource.com/1065502
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
abb09f12
               | 
              
2018-04-16T10:43:53
               | 
              
               | 
              
GLES1: Client vertex array pointer API
glVertexPointer
glNormalPointer
glColorPointer
glPointSizePointerOES
glTexCoordPointer
BUG=angleproject:2306
Change-Id: Id022b467ac998ea116130c5cec0c77afefb0dd4c
Reviewed-on: https://chromium-review.googlesource.com/1014381
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
01074436
               | 
              
2018-04-16T10:19:51
               | 
              
               | 
              
GLES1: gl(Enable|Disable)ClientState
+ Introduce the GL_OES_point_size_array extension for point size array
support.
BUG=angleproject:2306
Change-Id: Ib1a60b7dcd0497eb807f0d3c80bc95b4748d9a96
Reviewed-on: https://chromium-review.googlesource.com/1014282
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
               | 
            
            
              
   
               | 
              
bb5ce5cc
               | 
              
2018-04-09T08:08:46
               | 
              
               | 
              
GLES1: Built-in matrix operations
glRotate
glTranslate
glScale
glFrustum
glPerspective
glOrtho
BUG=angleproject:2306
Change-Id: Ia9321d52f5824ef7c15b56d94e23ff3b1fbc3151
Reviewed-on: https://chromium-review.googlesource.com/1002915
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
568fc39b
               | 
              
2018-04-09T07:57:23
               | 
              
               | 
              
GLES1: glMultMatrix(f|x)
BUG=angleproject:2306
Change-Id: I178b051c23da51d8eaf24c2a0df97f01ae5f3aaa
Reviewed-on: https://chromium-review.googlesource.com/1002914
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
3a41af64
               | 
              
2018-04-09T07:28:56
               | 
              
               | 
              
GLES1: glLoadIdentity / glLoadMatrix(f|x)
BUG=angleproject:2306
Change-Id: I46fe961e6eb87b2f41c39afe1e943d9146a0abfa
Reviewed-on: https://chromium-review.googlesource.com/1002913
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
e547aac7
               | 
              
2018-04-05T09:39:20
               | 
              
               | 
              
GLES1: gl(Push|Pop)Matrix
BUG=angleproject:2306
Change-Id: I96498aebbbc62ebd53e5320db17ef6a54d20d2dc
Reviewed-on: https://chromium-review.googlesource.com/998308
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
d2488aba
               | 
              
2018-04-04T09:25:48
               | 
              
               | 
              
GLES1: glMatrixMode
BUG=angleproject:2306
Change-Id: I83e15990c10d9354c2db00766ddc7b0ab960aa5c
Reviewed-on: https://chromium-review.googlesource.com/996019
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
               | 
            
            
              
   
               | 
              
00af463e
               | 
              
2018-04-02T12:42:24
               | 
              
               | 
              
GLES1: Add MatrixType packed enum to entry points
(It's not called MatrixMode because that collides with the MatrixMode
entry point name)
BUG=angleproject:2306
Change-Id: I9a192701f6248f1e7d4f202c7d1ddfcdbe1b0089
Reviewed-on: https://chromium-review.googlesource.com/990585
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
               | 
            
            
              
   
               | 
              
038dd539
               | 
              
2018-03-29T17:31:52
               | 
              
               | 
              
GLES1: glMultiTexCoord4(f|x)
BUG=angleproject:2306
+ common validation for multitexturing units
+ clang-format
Change-Id: I6eb456c273490e85fc7008e7e11d15e22dd20276
Reviewed-on: https://chromium-review.googlesource.com/987298
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
5a7e61bb
               | 
              
2018-03-29T16:50:32
               | 
              
               | 
              
GLES1: glNormal3(f|x)
BUG=angleproject:2306
Change-Id: I42834078b14aaa20c4d4e6b67c097c810f5a17a3
Reviewed-on: https://chromium-review.googlesource.com/987297
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
a43994c9
               | 
              
2018-03-29T07:21:41
               | 
              
               | 
              
GLES1: glColor4(f|ub|x)
BUG=angleproject:2306
Change-Id: I4a57732d4c470c821a3847a7ee012cf3ccbba197
Reviewed-on: https://chromium-review.googlesource.com/986454
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
96310cda
               | 
              
2018-03-28T11:56:28
               | 
              
               | 
              
GLES1: glClientActiveTexture
+ adds query for GL_MAX_TEXTURE_UNITS
BUG=angleproject:2306
Change-Id: Ie89fa6a067551170856bf0f7e6d7b4452b3da132
Reviewed-on: https://chromium-review.googlesource.com/984894
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
13b708f2
               | 
              
2018-03-21T12:14:10
               | 
              
               | 
              
GLES1: glAlphaFunc
BUG=angleproject:2306
Change-Id: I0bf229d3ab8a4a1217c12b434dcd8fa67d7cbadc
Reviewed-on: https://chromium-review.googlesource.com/973897
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
a0648780
               | 
              
2018-03-12T14:45:25
               | 
              
               | 
              
GLES1: Revise entry points
- Move the entry points common to GLES1/2 to GLES2 since GLES2 is the
primary use case and we want to isolate the GLES1-only bits.
- Update entry points with all the wanted extensions for Android.
- Auto-generate GLES1-specific entry points and use them as a macro in
Context.h.
- Move all GLES1-specific renderer implementations to ContextGLES1.cpp
+ Fix getting pointer params in generate_entry_points.py
BUG=angleproject:2306
Change-Id: If32bfd2b63657acecaec6adb10cabf39f06c4832
Reviewed-on: https://chromium-review.googlesource.com/959630
Reviewed-by: Lingfeng Yang <lfy@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
               | 
            
            
              
   
               | 
              
f0e89be6
               | 
              
2017-11-08T14:00:32
               | 
              
               | 
              
Use packed enums for the texture types and targets, part 1
In OpenGL there are two enum "sets" used by the API that are very
similar: texture types (or bind point) and texture targets. They only
differ in that texture types have GL_TEXTURE_CUBEMAP and target have
GL_TEXTURE_CUBEMAP_[POSITIVE|NEGATIVE]_[X|Y|Z].
This is a problem because in ANGLE we use GLenum to pass around both
types of data, making it difficult to know which of type and target a
variable is.
In addition these enums are placed somewhat randomly in the space of
OpenGL enums, making it slow to have a mapping from texture types to
some data. Such a mapping is in hot-code with gl::State::mTextures.
This commit stack makes the texture types and target enums be
translated to internal packed enums right at the OpenGL entry point
and used throughout ANGLE to have type safety and performance gains.
This is the first of two commit which does the refactor for all of the
validation and stops inside gl::Context. This was the best place to
split patches without having many conversions from packed enums to GL
enums.
BUG=angleproject:2169
Change-Id: Ib43da7e71c253bd9fe210fb0ec0de61bc286e6d3
Reviewed-on: https://chromium-review.googlesource.com/758835
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
2aaa7b4e
               | 
              
2018-01-12T17:17:27
               | 
              
               | 
              
Add GLES1 targets and stub entry points.
 * Create a new libGLESv1_CM target.
 * Merge all autogenerated extension entry points into one file.
 * Allow creation of ES1 contexts.
BUG=angleproject:2306
Change-Id: I446258363a96a3c37d657089dd7c1cff0fa3cf78
Reviewed-on: https://chromium-review.googlesource.com/865718
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               |