Ok so for this tutorial I will be explaining in detail how one can setup a Xamarin C# application that runs on WP 8.1, Windows 8.1 (store), Android and iOS* and very importantly makes use of OpenGL ES 2.0 views powered by C++ renderers. This is something that I recently needed to implement for a project of my own and I am sure some others might also find it handy. In fact, I already have already found someone on the Xamarin forums who needs this.
Emulator: OpenGL backend 'angle' without OpenGL ES 1.x library detected. Using GLESv2 only. However, everything still run smoothly, and thus I didn't bother. So, what is the correct approach to this? To update the library. To ignore it since it is just outdated but usable. What are the benefit of updating; Refer Android OpenGL ES 2.0 emulator. Opengl 2.0 free download - Hello openGL, Descent II OpenGL, Descent OpenGL, and many more programs. Get 3D libraries for apps that use OpenGL. Free to try User rating. Welcome to the OpenGL ES SDK! Here you'll find some of the most valuable resources available to OpenGL ES developers, all in one place. Use the menu above to navigate to each contribution. Revisit often, as there will be new contributions coming online all the time! This is not a traditional SDK in. Install-Package angle_wp8 -Version 0.0.0.1 SourceRank 9. Dependencies 1 Dependent Packages. OpenGL ES 2.0 (via software emulation) None Raspberry Pi 2: OpenGL ES 2.0 (via software emulation) Getting ANGLE. Clone or download ANGLE from our GitHub repository.
The reason one would want to do this is fairly obvious. I mean a lot of OpenGL ES code is written in C++ and all the major platforms now support it through C++. This includes Windows Store and Windows Phone with the recent advances in the ANGLE project. In many cases the performance benefit of C++ over C# would also be very beneficial in this area. OpenTK on all the platforms except the Windows ones (that use ANGLE and do not have OpenTK support yet) seems to be the main way of utilizing OpenGL from C# but unfortunately as I have already mentioned, it is not available on the non-desktop Windows Platforms. Furthermore, as I understand it, OpenTK uses P/Invoke which is fine but with marshaling involved one could see a serious performance decrease when running a renderer in C# vs C++ when there are a lot of OGL calls and a lot of data shifting (and therefore conversion) involved.
Now the obvious question might be, why not just use C++ throughout? The answer to this, as many of you reading this probably already know is because that is not really so straight forward. One of the main advantages of using C# compared to C++ for cross-platform projects is of course Xamarin and Xamarin.Forms** which allows us to create native UIs on all the supported platforms without really having to do much platforms specific work, especially when your only working with standard controls. You will unfortunately have to write the implementations for the GLES view controls separately for each platform, but once you have them we can reuse them as much as we like. Getting back to my story, the only way I know of do achieve something like this in C++ is through Qt and that’s really just creating platform-agnostic applications that are styled to either look like the operating systems at the time of development or just styled with some generic artwork that sort of looked right on the different platforms at the time of creation. Not something that you want… Apart from that I do not know of anything that also supports Windows (store and phone). Also, Qt does not provide any form of native Windows Phone-ish styling at the time of writing… Finally, using C++ for general cross-platform development is also not really as comfortable to use nor as maintainable as C# with Xamarin which provides a very large amount of code sharing. Furthermore I think most of you will agree that using C# is just simply nicer using C++ in quite a few ways. We therefore really just want C++ to do 3D rendering and probably scene construction and manipulation but we don’t want it near any other parts of the application in order to avoid some serious frustration for most.
*Currently I cannot implement the iOS part due to a lack of Mac hardware but you can see the dedicated step page for more details on what you can still try to do.
**Currently Xamarin.Forms does not work for Android on VS 2015 Community RC and I therefore could not implement Xamarin.Forms but you can see the dedicated step page for more details on what you can still try to do.