trying to find best way to develop opengl es 2.0 in windows - windows

i like to develop games to android based on opengl es 2.0 , with the emulator its a apain
is there any better way to develop opengl es 2.0 app on windows fast toolkit /engine ?
something that i can debug the code .
Thanks

You can use one of OpenGL ES 2.0 emulations on Windows to develop your application. Then majority of your rendering code will be same C/C++ code for Windows and for Android. Only platform specific stuff would be opening window, getting inputs (toches) and reading files.
Here are some of GLES2 emulators from different vendors:
Imgtec PowerVR - supports PVR texture compression
Qualcomm Ardeno - supports ATITC texture compression
ARM Mali
Nvidia Tegra - supports DXT texture compression
Google ANGLE - supports DXT texture compression. Opensource! Used by Chrome & Firefox as WebGL backend.
I myself like and use Google ANGLE to develop my app on Windows. After that I can run app on Android without changing any of rendering code.

Related

Mesa or Mali is in use?

I have a embedded system which's GPU is mali T624.
I have glmark2 and glmark2-es2,
when running glmark2, information shows mesa software render
when running glmark2-es2, info shows T624 openGL ES 3.1
My question is, if I have QT demos which need openGL acceleration,
how can I know whether Mesa software render or Mali HW render in use?
and how can I manually switch in between?
thanks.
The glmark benchmark comes in two flavors.
The glmark2 binary uses the full OpenGL backend
The glmark2-es2 binary uses the OpenGL ES backend
Mali only supports OpenGL ES; it doesn't ship with a full desktop OpenGL driver.
In terms of "is Mali being used" you can install the DS-5 Streamline profiler - Community Edition is free - which will let you determine if there is any GPU activity in the system.

Debugging OpenGL ES 2.0 game that runs in Windows through PowerVR emulation

I have small cross platform engine that runs my OpenGL ES 2.0 games on Android and on Windows. To run it on Windows I am using PowerVR emulator (just libraries linked to the project). It all works well.
Now I would like to debug it and inspect in any OpenGL debugger. I tried Intel GPA, AMD CodeXL, gDebugger, glslDevil. But non of them were able to do it. In case of Intel GPA it did not find the running game. In other cases it started the game but failed to pause it or do anything later.
I do not know whether it is because it is OpenGL ES instead of OpenGL. But the PowerVR emulation must work like translating OpenGL ES to OpenGL, I think?
My questions are:
Is there any (utility) way how to debug OpenGL ES 2.0 programs on Windows?
Or is there any better emulation library than PowerVR that will force the app look like OpenGL for other tools (instead of OpenGL ES)?
I am doing all this as none of debuggers work for me on Android device. I am developing with Samsung Galaxy Tab (which is Tegra GPU), but Nvida's PerfHUD ES does not currently support it (and I also do not meet Android 4.0 or higher having only 3.1)
Is there any way how to debug OpenGL ES on Android device that has Android version 3.1 and it is Samsung Galaxy Tab device?
Thanx
You're correct - PVRVFrame translates OpenGL ES calls into host OpenGL calls. This is why the likes of gDEBugger will capture the OpenGL API calls made by the emulator rather than the calls you actually submitted.
The PowerVR SDK includes an OpenGL ES/EGL API recording tool called PVRTrace that has all of the functionality you're looking for.
The PVRTrace recording libraries can be used to record applications using PVRVFrame on Windows and Linux. The SDK also includes recording libraries for Android and Linux devices.
PVRTraceGUI (analysis tool for Windows, OSX & Linux) can be used to review and inspect the data you've recorded. It also has an Image Analysis widget that allows you to step through the draw calls in your recording & some other handy features, such as a Pixel Analysis pie chart that highlights the most costly fragment shaders in your render so you know where to focus shader optimisation.
There's also a PVRTrace standalone playback tool that allows you to replay your recordings on any of the supported OS's (inc. Windows & Android).
You can find an overview of the tool on the Imagination website here & can download PVRTrace through the PowerVR SDK installer, available here
I routinely debug OpenGL ES on Windows using the PowerVR VFrame translator, which converts OpenGL ES calls to OpenGL, as you said. I think it's the best solution. VFrame has some step and tracing features, but mostly I am using the debugging features of MSVC++.
If you are using GLSurfaceView on android, it has an OpenGL ES tracing feature too. I also recommend using an X86 AVD rather than ARM or trusting the drivers on any one device. This article explains in detail:
http://software.intel.com/en-us/articles/porting-opengl-games-to-android-on-intel-atom-processors-part-1

Can I use OpenGL ES in a Windows Phone 8 app?

I've read places that Windows Phone 8 will not support OpenGL, and I'm unable to find anything useful in the SDK.
So am I or will I ever be able to use OpenGL (ES) in my Windows Phone 8 game? I have a game I would like not to rewrite completely to DirectX when porting.
Please cite good sources, the only thing I've found are speculations and blog posts with little to no information.
OpenGL isn't supported on WP8, but Direct 3D feature level 9_3 is supported. If you're looking to port over a game from OpenGL ES over to D3D have a look at the Angle Project. Angle Project helps bridge the gap between OpenGL ES 2.0 and D3D 9. It doesn't have WP8 targeting just yet and you'll have issues with runtime compile shaders not being supported on WP8, but Angle project is still a good first step.
Either way, for games portability with other platforms it's really best if you work with a middleware gaming framework such as MonoGame, Unity, Cocos2D, Havok, Marmalade, SharpDX, Ogre, Autodesk Scaleform or others. These engines will mostly handle cross platform support for you within their own framework (each with it's own limitations on code and assets portability).
If you already have an existing OpenGL game you want to port over to WP8, than Angle project if your best bet going forward. If you're just starting out creating a cross-platform portable game than choosing a gaming middleware framework that seems right for your game's needs is the way to go.
Marmalade does let you write OpenGL ES 2.0 code and make it work in Windows phone 8 without making you do anything
Check this for more details:
http://www.madewithmarmalade.com/windows-phone-8
Even if Windows Phone 8 supported OpenGL (which it doesn't), it would support OpenGL ES, not destkop OpenGL. Since it's for embedded platforms.
So that's no twice.
Gideros uses OpenGL and targets Windows RT/Phone graphics by means of a lightweight DX wrapper.

OpenGL ES 2.0 software library

I have an application written on embedded device which is running on OpenGL ES 2.0. I want to debug issues with the application using PC . Currently My PC is running Ubuntu 11.04 and it doesnt have any Graphics card.
For the purpose of debugging , I want to have any software based OpenGL ES2.0 libraries. Is there any such libraries preset? If so can any one provide me a link?
Thanks
You have emulator from ARM AMD and Imagination Technologies to run opengl es 2.0 on windows/ubuntu.
I suggest going with Imagination technologies one.
here is the link http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp

Can I use C++0x to game programming on xxx platform?

I'm developing a cross platform game engine this targets Windows, Linux, Mac, Mobiles(Android, iOS) and Consoles(PS3, Xbox360). I'm considering C++0x in role of the core and native language. What platforms above support C++0x?.
Thanks.
You're going to be bound by your API for drawing.
Windows - Yes, DirectX, OpenGL
Linux - Yes, OpenGL
Mac - Yes, OpenGL
Andriod - No (Java), OpenGL
iOS - No (Objective-C), OpenGL
PS3 - Yes, OpenGL
XBox 360 - Yes and No (Yes, for native which means you need distribution rights; No if you're going through XBox Live Arcade which requires C#/XNA) Both types will use DirectX, XNA will abstract all of your DX calls though.
I would suggest visiting a few sites such as www.gamedev.net to learn what it actually takes to create a game; let alone a game that would be cross platform like you are suggesting.
EDIT:
Updated Windows and Andrio to use OpenGL.

Resources