OpenGL in Xamarin - opengl

I'm currently developing the cross-platform application for Android, iOS and UWP (Universal Windows Platform). I have found OpenGL examples for iOS and Android, but did not find any of them for UWP.
So, the question is, How can I use OpenGL in UWP applications?

OpenGL does not run out-of-the-box with the Universal Windows Platform. A solution to this is ANGLE that layers WebGL's subset of the OpenGL ES APIs over DirectX API calls.
Useful NuGet packages can be found here but I don't know how this can be implemented in a Xamarin project, if it can be implemented at all.

Related

DirectX and Xbox compatibility

I'm starting game development with DirectX and I was wondering if I somehow play games that I make on Xbox. I know you can use Xbox controller controls, but only on computer (as I know).
Xbox One supports a "Developer mode" which runs UWP applications written for DirectX 11 or DirectX 12. See Microsoft Docs
See this blog post for some additional notes.
To sum up:
For UWP on Xbox One, only x64 native apps are supported
Direct3D 11 with D3D_FEATURE_LEVEL_10_0 is supported
Direct3D 12 with D3D_FEATURE_LEVEL_12_0 is supported in 'game mode' only
Direct3D 9 or earlier is not supported.
For UWP development you do NOT use the legacy DirectX SDK or the deprecated D3DX library.
Game controllers are accessed via Windows.Gaming.Input, and there is an XINPUT emulation library you can use xinput_uap.lib. DirectInput is not supported.
XAudio2 is supported. DirectSound and XACT are not supported.
If you are looking to learn low-level graphics in C++ see DirectX Tool Kit. This library is supported for UWP apps including UWP on Xbox One as well as Win32 desktop apps on Windows 7 or later. The UWP templates at directx-vs-templates work for UWP on Xbox One.
There are a number of UWP samples on GitHub which will run on UWP for Xbox One.
Unity can also be used to target UWP on Xbox One

Porting SDL App to iOS

I have created a small game in C++ using only SDL (no OpenGL), and want to port it to iOS 6.
I have no intention of releasing it publicly, It's just for personal use.
The app uses only the barebones SDL library itself, no ttf or image.
So, what would be the best hassle-free way of porting the game to iOS 6? The game's SDL version is 1.2, however it would be possible to port it to 2.0.
A tutorial or something similar would be of tremendous help!
Thanks
Port to 2.0, then just follow the SDL 2.0 iOS HOWTO. SDL 2.0 has native iOS support.

Is there a GUI library that works with the Intel Perceptual Computing SDK?

I am looking for a GUI library to design the interface for my application. Are there any libraries that work well with the Intel Perceptual Computing SDK?
Any GUI library that is available for Microsoft Visual C++ 2008 or later and runs on Microsoft Windows 7 or later should work well.
If you want GUI that works both on Linux and Windows then for example Qt. It can
be integrated with MSVC++.
I strongly advise you to use QT framework. It is cross-platform and runs on the major desktop platforms.
You can check my demo ipcQTgesture hosted at github.
The GUI is very simple and it is created with Qt. Even though Qt is cross-platform framework for building graphical applications, the IntelĀ® Perceptual Computing SDK is not, so for the moment we are stuck to Windows.

OpenGL ES 2.x compatible with OpenGL

I am planning to use Ubuntu with QT Creator to study and develop OpenGL ES 2.x applications. it is obvious that OpenGL ES 2.x is not easy to be configured in desktop environment, and OpenGL ES is sub-specification of OpenGL.
So I want to know if it is possible to develop the core part of OpenGL ES 2.x application in OpenGL environment and move my code to android or iOS to develop GUI later?
Not easy to configure? I beg to differ. Just get an emulator like the one Mali has, and let your program use their libraries instead of system ones directly.
Then you can be pretty sure that the GL code should be fine, as long, of course, as you will manage to run it on iOS(Obj-C++?) or Android(NDK?).
Qt5 is built with OpenGL ES 2.0 by default, so if you use current Qt you will have it out of the box, also Qt developers tell that they will support both android and iPhone in 5.2 version.
Mesa implements both regular OpenGL and OpenGL ES: http://www.mesa3d.org/opengles.html.
OpenGL ES 3.0 is supported on select GPUs too, AFAIK.
There's also cross-API compatibility built into most OpenGL libraries, so you can compile and run OpenGL ES code with no or minimal changes. You do need to work out platform specifics like setting up a render context, framebuffers and doing the actual drawing. But this is not GL/GLES specific.
ES API compatibility has been around since OpenGL 3.2 with most calls supported. The remaining ones were added by the ARB_ES2_compatibility extension, which is part of OpenGL 4.1. OpenGL 4.2 adds full OpenGL ES 3.0 support.
And yes, it works well. I've been running the same ES code on both Android, Linux, Mac OS X and iOS myself. It just needs a little bit more work than single platform support.
I've a own engine which implements ES 2.0 on iOS and Windows, so its working on both systems. You just have to care about unsupported formats and methods ( like pvrtc which is not supported on windows, so i wrote a converter ).
To make it easy i first implement everything on iOS so i know its working, after that i porting it to windows. Currently i've just around 1000 Lines of code which differ on each platform ( But i'm using Xamarin ).

3d Graphics Library in source engine for macos

what is the 3d Graphics Library in source engine for macos?(directx of opengl in half-life2)
DirectX is a proprietary API by Microsoft, it is available on MS Windows and XBox only. OpenGL is crossplatform and it is available on almost every platform.
Edit: Thanks #erjot for your input.