Essentially what I do is:
I create a fullscreen window and draw to it, so far so good - if I try to screenshot it I get the windows below when in OpenGL mode but in software I get the fullscreen window.
GPU: AMD Radeon HD 8350
I doubt it's a bug in AMD's OpenGL implementation however because it works fine in virtually (actually, exactly) every other OpenGL application I've tried.
I also doubt it's a bug in my code because I lifted the rendering loop from the tutorials and just loaded my own mesh data in.
IrrlichtDevice* iDevice = createDevice(EDT_OPENGL, res, 32, fullscreen, vsync, &eReceiver);
And I doubt there's a problem there (res is the screen resolution of the current screen, fullscreen is a boolean currently set to true, vsync is a boolean set to false, and you can probably figure out the rest)
full main function for reference:
Code: Select all
int main()
{
IrrlichtDevice *nulldevice = createDevice(video::EDT_NULL);
core::dimension2d<u32> res = nulldevice->getVideoModeList()->getDesktopResolution();
nulldevice -> drop();
MyEventReceiver eReceiver;
IrrlichtDevice* iDevice = createDevice(EDT_OPENGL, res, 32, fullscreen, vsync, &eReceiver);
video::IVideoDriver* driver = iDevice->getVideoDriver();
scene::ISceneManager* smgr = iDevice->getSceneManager();
IGUIFont* font = iDevice->getGUIEnvironment()->getFont("data/fonts/bigfont.png");
IGUIFont* font2 = iDevice->getGUIEnvironment()->getFont("data/worstFontEver.png");
smgr->loadScene("data/maps/a_levelTest1.irr");
int lastFPS = -1;
while(iDevice->run())
if (iDevice->isWindowActive())
{
driver->beginScene(true, true, video::SColor(0,200,200,200));
smgr->drawAll();
driver->endScene();
int fps = driver->getFPS();
if (lastFPS != fps)
{
core::stringw str = L"MWAS [";
str += driver->getName();
str += "] FPS:";
str += fps;
iDevice->setWindowCaption(str.c_str());
lastFPS = fps;
}
}
iDevice->drop();
return 0;
}