xref: /aosp_15_r20/external/angle/doc/Update20150105.md (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# Multiplatform ANGLE Refactor Complete
2*8975f5c5SAndroid Build Coastguard Worker
3*8975f5c5SAndroid Build Coastguard WorkerANGLE's [multiplatform refactoring effort](MANGLE.md) is now complete, paving
4*8975f5c5SAndroid Build Coastguard Workerthe way for additional rendering backends, allowing ANGLE to enable OpenGL ES
5*8975f5c5SAndroid Build Coastguard Workernot just over Direct3D 9 and 11, but also desktop OpenGL.
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard WorkerThe refactoring we've done encapsulates D3D-related assumptions and API calls at
8*8975f5c5SAndroid Build Coastguard Workerthe renderer level, so that no D3D calls are made in the renderer-agnostic
9*8975f5c5SAndroid Build Coastguard Workerportions of the codebase, and D3D-specific feature implementations won't be
10*8975f5c5SAndroid Build Coastguard Workerincluded on non-D3D platforms. For example, the creation and maintenance of
11*8975f5c5SAndroid Build Coastguard WorkerCPU-side copies of texture data, which are required to enable GL-style
12*8975f5c5SAndroid Build Coastguard Workerper-mip-level texture creation over D3D's entire-mipchain texture creation API,
13*8975f5c5SAndroid Build Coastguard Workeris contained entirely within the D3D renderers, allowing a GL implementation to
14*8975f5c5SAndroid Build Coastguard Workeravoid this complication.
15*8975f5c5SAndroid Build Coastguard Worker
16*8975f5c5SAndroid Build Coastguard WorkerWork will now begin within ANGLE to add a desktop OpenGL renderer, and EGL
17*8975f5c5SAndroid Build Coastguard Workerimplementations compatible with OS X and Linux.
18*8975f5c5SAndroid Build Coastguard Worker
19*8975f5c5SAndroid Build Coastguard Worker# ES 3.0 Development Status
20*8975f5c5SAndroid Build Coastguard Worker
21*8975f5c5SAndroid Build Coastguard WorkerOur ES 3.0 development branch was merged into mainline ANGLE in April 2014, but
22*8975f5c5SAndroid Build Coastguard WorkerES 3.0 support is not yet complete. The majority of API functionality has been
23*8975f5c5SAndroid Build Coastguard Workerimplemented; features still pending include:
24*8975f5c5SAndroid Build Coastguard Worker
25*8975f5c5SAndroid Build Coastguard Worker* ETC2/EAC support
26*8975f5c5SAndroid Build Coastguard Worker* primitive restart index
27*8975f5c5SAndroid Build Coastguard Worker* drawRangeElements
28*8975f5c5SAndroid Build Coastguard Worker* full GetProgramBinary support in core
29*8975f5c5SAndroid Build Coastguard Worker
30*8975f5c5SAndroid Build Coastguard WorkerAdditional work remains in the compiler, including:
31*8975f5c5SAndroid Build Coastguard Worker
32*8975f5c5SAndroid Build Coastguard Worker* Array .length()
33*8975f5c5SAndroid Build Coastguard Worker* inf/nan detection
34*8975f5c5SAndroid Build Coastguard Worker* math utility functions, rounding
35*8975f5c5SAndroid Build Coastguard Worker* VertexID/InstanceID support
36*8975f5c5SAndroid Build Coastguard Worker* floating point packing functions
37*8975f5c5SAndroid Build Coastguard Worker* operators new in ES 3.0
38*8975f5c5SAndroid Build Coastguard Worker* name redeclaration
39*8975f5c5SAndroid Build Coastguard Worker* relaxed array indexing
40*8975f5c5SAndroid Build Coastguard Worker* switch statement support
41*8975f5c5SAndroid Build Coastguard Worker* loop & iteration improvements
42*8975f5c5SAndroid Build Coastguard Worker
43*8975f5c5SAndroid Build Coastguard WorkerES 3.0 features should not be considered stable, even where implemented, and
44*8975f5c5SAndroid Build Coastguard Workersome features are present only via naive implementation so far, but we welcome
45*8975f5c5SAndroid Build Coastguard Workerbugs filed against this functionality, and thank all our contributors!
46