Home
Pages 15
- Home
- Breaking Changes
- Caching compiled program binaries
- Choosing a Visual Studio template
- Getting Good Performance From ANGLE
- How To Use the ANGLE NuGet Package
- Initializing ANGLE on D3D11 Feature Level 9
- Installing Templates
- Interop with other DirectX code
- Known Issues
- Loading textures from dds files
- Loading textures from image files
- Scaling your app to run at different resolution on the device
- Supporting D3D Device Trim requirement
- Using Instancing
Clone this wiki locally
Welcome to the Microsoft ANGLE wiki!
Navigation
- What is ANGLE?
- Which versions of OpenGL ES are supported?
- Where to get ANGLE
- Requirements for using ANGLE
- [Quick start from source] (#quickstartfromsource)
- Sample code and tutorials
- Improve your ANGLE app's performance
- Known issues and Breaking Changes
- Contributing to ANGLE
- Any more questions?
What is ANGLE?
ANGLE allows Windows users to seamlessly run OpenGL ES content by efficiently translating OpenGL ES API into DirectX 11 API calls.
The ms-master branch in this repository is maintained by Microsoft to support the use of ANGLE by Windows Store app developers. It contains:
- A copy of ANGLE that is regularly updated from the ANGLE master branch
- Recent changes made by Microsoft that have not yet been merged back to ANGLE master (our goal is to eventually merge everything, but if you want the latest and greatest Windows Store features, you will find them here first)
- Documentation and project templates focused on Windows Store app development
- Sample code and utilities such as DDS and WIC texture loaders
- This branch is the source for building the ANGLE binaries that we publish on NuGet
ANGLE fully supports these C++ app types:
- Universal Windows apps (Windows 10)
- Windows 8.1 and Windows Phone 8.1 apps
- Windows desktop applications
Experimental support for HoloLens is available in a dedicated branch found here.
What versions of OpenGL ES does ANGLE support?
ANGLE supports different versions of OpenGL ES depending on the capabilities of the underlying hardware. In particular, the supported version depends on which D3D Feature Levels the hardware supports:
| Hardware Feature Levels |
Example devices | What does ANGLE support? |
|---|---|---|
| 11_1 11_0 10_1 10_0 |
Modern Desktop PCs Surface Pros |
OpenGL ES 2.0 Parts of OpenGL ES 3.0 |
| 9_3 | Windows Phones | OpenGL ES 2.0 (except minor corner cases) |
| 9_2 9_1 |
Surface RT | OpenGL ES 2.0 (via software emulation) |
| None | Raspberry Pi 2 | OpenGL ES 2.0 (via software emulation) |
Getting ANGLE
There are three ways to get ANGLE for Windows Store applications:
- Use Visual Studio 2015's OpenGL ES template, targeting Windows (via ANGLE), iOS and Android
- Download compiled ANGLE binaries as a NuGet package. Instructions are available here
- Download and compile the ANGLE source code from this GitHub repository
Option 3 has also includes some additional Visual Studio app templates:
- Learn more about installing our Visual Studio templates!
- Visit this wiki page for help with deciding which template (e.g. CoreWindow vs XAML) is most suitable for your app.
Requirements for using ANGLE
Windows 10 Development:
- Visual Studio 2015 Community or higher
- Windows 10 for local Windows development
Windows 8.1 and/or Windows Phone 8.1 Development:
- Visual Studio Community 2013 (Update 4), or higher/later.
- Windows 8.1 for local Windows development.
Clasic Windows (Desktop) Development:
- Visual Studio 2015 Community or higher.
Quick start from source
- Clone or download ANGLE from our GitHub repository
- Install our easy-to-use Visual Studio templates by running install.bat in the /templates/ directory of your copy of ANGLE, or follow these manual steps.
- Open the appropriate ANGLE Visual Studio solution for your project, and build all flavors of it
- In Visual Studio go "File -> New -> Project", create a new ANGLE application, and hit F5 to run it!
The Windows 10 Visual Studio solution for ANGLE is located here:
- /winrt/10/src/angle.sln
The Windows 8.1 Visual Studio solutions for ANGLE are located here:
- /winrt/8.1/windows/src/angle.sln
- /winrt/8.1/windowsphone/src/angle.sln
The Visual Studio solution for Windows desktop applications is located here:
- /src/angle.sln
Sample code and tutorials
Initialization:
Imaging:
- Loading compressed images into ANGLE (for example: DDS, BC, DXT, ETC)
- Loading general image files into ANGLE (for example: JPEG, PNG, BMP)
Debugging:
- Performing basic OpenGL ES graphics debugging with ANGLE (Coming soon!)
- Using Microsoft's Graphics Diagnostics (formerly PIX) with ANGLE (Coming soon!)
Performance:
- Avoiding recompiling shaders by saving/restoring program binaries
- Scaling your app to run at a different resolution on the device
- Gaining performance by using Instancing
Windows Store Application Certifcation:
Interop between OpenGL ES code and DirectX code:
Improve your ANGLE app's performance
Here is a list of best practices for using ANGLE on Windows devices.
Known issues and Breaking Changes
Here are the known issues with ANGLE, which we are either trying to fix or are unable to fix.
Here are the recent breaking changes that we have made, which might affect your app if you update to the latest version of ANGLE.
Contributing to ANGLE
If you wish to contribute to ANGLE, then please contribute to the master version of ANGLE. Your change can then be merged back into Microsoft/angle.
Any more questions?
Please feel free to file an issue on this GitHub repository, or email any of the Microsoft contributors.