Imagination PowerVR SDK Blog

Enabling GL_COLOR_MATERIAL not working




I’ve been working using the PVR Emulator in the GLES 1.1 SDK and using the SGX on the Beagleboard. I’ve noticed that glEnable(GL_COLOR_MATERIAL) doesn’t appear to work on the Emulator, however the same code works fine on the SGX. Has anyone else experienced this? The only difference between the 2 versions is the way I setup EGL. Could it be something to do with this or perhaps a bug in the emulator?
I have the latest version of the SDK downloaded a couple of days ago.



Yep I’m having the same problem. I create a vertex buffer object, with a colour buffer, I setup a light, then use glEnable(GL_COLOR_MATERIAL) just before rendering VBO. All I’m getting is white polygons. If I disable the light, the colour buffer works, but with no light shading of crouse.

The emulator runs on Windows XP x64, with nVidia drivers.


Has this been fixed?


Not sure, what build are you using?

ps. i have actually tried contacting the developers via email, but got no response


I’m using for OpenGL ES 1.1 (I did download the last release and I will give it a try later on)

Also I have had excellent responses (timely and quality) from the IMG group.



I'm very sorry for a late repsonse. We were able to reproduce that issue and this is a bug in PVRVFrame that will be fixed in our next release (internally it was filed as a bug BRN28613).




Do you have any idea when the next release will be?

I installed the OGLES-1.1_WINDOWS_PCEMULATION_2.05.25.0804 version, and the bug is still there.

And can you tell me why the need for the popup window when I start an application linked with the emulator?

The PVRRFRAME popup window does not really do anything. It does affect my VS2008 debugger though.



The issue that you're are describing was not introduced to the version you have tried. But will be included in a forthcoming release. The next major release will be early next year, but there may be a maintenance release earlier than this.

As for a popup interface window , you can disable it in many ways. Â One way of doing it is calling a special function obtained from pvrvframe libraries. You can do that by putting following code into your own application code:

void (*PVRVFrameEnableControlWindow)(bool) = (void(*)(bool))eglGetProcAddress("PVRVFrameEnableControlWindow");
PVRVFrameEnableControlWindow (true);

This and other ways of disableing the GUI and description of its funcionality are  fully described in manual of PVRVFrame.




I never saw this window in the previous version of the emulator. Additionally when I closed my application, my Visual Studio debugger would stop as expected.

This version of the emulator does not do that. After my application window disappears, the PVR window remains, and my debugger is still active. This is not normal behavior.

May I suggest that the PVR window be an option to open from an application - not an option to close. It makes sense to me to have the default as invisible, since it was historically, and from my point of view, expected.

What is happening with my debugger? Why is the debugger not closing?

I also noticed the WIRE FRAME mode, which is a nice option. How can I use it?




PVRVFrame (this name refers to the GUI + emulator libraries) aims to be something more than just an emulator eg. provide some diagnostics information. And because of that Interface window is integral part of PVRVFrame. As I have written you can disable it in many ways: From code of your application, hide it via general options of GUI (more details in manual).Â

As for strange debugger behaviour, then I would like you to provide us more details. What version of Windows are you using? What Visual studio are you using? We will file BRN afterwards an investigate that issue.

As for WireFrame options it works in similar way as Desktop OpenGL call glPolygonMode(GL_FRONT_AND_BACK,GL_LINE) Â . Â After you choose that option from menu you should see that scene's polygons are rendered without being filled in ( as whole scene consists of wires).Â




I think it may be something with his code because in my case I have no problem with the window whatsoever - debugging or not - it simply closes when the main app goes away.

warmi2009-11-04 15:43:31



Okay I got it working. I was processing WM_KILLFOCUS, which was making it so that I could not access the PVRFrame window menus, etc.

I also added the WM_CLOSE and removed my WM_DESTROY, now it exists as expected.

BTW - glPolygonMode is not defined in OpenGL ES 1.1.


Good to read that You solved the mentioned problem. As for glPolygonMode , PVRVFRame is implemented based on host (desktop) opengl , which means that it internaly use calls to OpenGL (not opengl ES). However ES standard of course does not define mentioned function.



Hello, any developments on the GL_COLOR_MATERIAL issue?


If I remember correctly their next SDK release is scheduled for March so I presume it will contain many bug fixes including the GL_COLOR_MATERIAL bug.


oh cool, thanks!