Imagination PowerVR SDK Blog

How to fix rotated screen




I installed OpenGL/ES 2.0 SDK on Linux.


There are two environment on my linux.

One is Ubuntu linux and the other is linux emulator.


I would like to rotate screen on linux emulator. Have you seen these kinds of rotated screen?


[linux emulator] - I'd like to rotate 90 degrees.


[linux pc] - It works fine.



I used of mesa openGL, X6.2, Linux Ubuntu.

Thank you.




The demos in our SDK are, by default, designed to run in landscape orientation. This means that if you have a screen that’s taller than it is wide then the rendering will be rotated 90 degrees to one side.

In the OGLES2Fog.cpp source file, at line 326, a variable bRotate is set which determines whether to rotate or not. Setting this manually should allow you to change the orientation of the view. There should be similar code in the other Training Courses and Demos.

I notice that Print3D isn’t working in your screenshots (the rectangles at the top left of the Linux PC shot, for instance, should be yellow text). Does this occur in other Training Courses and Demos? What graphics hardware are you using on your platforms? Can you give me more details about the emulator that you’re using?



Thanks for your reply. I fixed the rotation. 


All training courses and demos shows the same results.


My development environments are

1. H/W : XNote M2 ( Intel Centrino Core Duo, 1MB RAM, nVidia GeForce Go 7400)

2. S/W 

  1) PC :  Ubuntu Linux 7.10- the Gutsy Gibbon on Vmware Workstation,


  2) Emulator : Pre-built libraries on Linux PC on Vmware

3. Graphics

  - Use MESA libraries



In case of Linux PC,  Print3D() does not work fter I installed MESA libraries.


Could you give me a clue to solve the problems?



I would like to know one more thing.  How can I call OpenGL/ES code in my ANSI C codes, not C++? Please give me a sample code if possible.


OpenGL and OpenGL ES are C libraries so using them from C code is exactly the same as from C++. We do not provide C sample code for this, but if you examine the SDK code it should be fairly straightforward to create a C project that sets up GL for you in the same way as our examples. I would suggest looking at the Initialization and HelloTriangle training courses as these do not use PVRShell and it should be easier to extract the relevant code from them.

Thanks for the information about your systems - I’ll post again when I know more about the problem with Print3D.


I don’t believe running under VMWare allows the level of shader support required to run OpenGL ES 2.0 applications without problems. I would advise running under a native environment for better results.

It may also be that MESA is insufficient for this purpose for similar reasons - are you able to install specific drivers for your graphics card? Which card are you using? You say Print3D doesn’t work after you installed MESA - did it work before?