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