Hi
Here's a really strange bug on the AMD E6760 GPU, which supports up to 6 display devices. We only use 4
I am trying to load & show a graphic the same resolution as the display:
Display 1, 1920x1080 xy = 0,0
Display 2, 1920x1080 xy = 0,1920
Display 3, 1920x1080 xy = 0,-1080
Display 4, 1920x1080 xy = 0,1080
When set to these positions, I see the message "Failed to share the OpenGL context" and display 1, 2 and 3 give a warning about a maximum texture size of 1024x1024. I can see only my graphic on display 4
So I re-configure the position of display 4 via Windows control panel to be, let's say, x 560 y 1080, and no OpenGL context error occurs, I see my graphics on displays 1,2 and 3. Display 4 is blank.
Why do I get these OpenGL context/max texture size errors? I've never seen them before using this system.
Sadly, this a multimedia kiosk type system, so we cannot re-configure displays (not that it would fix the problem, anyway).
#include <SFML\System.hpp>
#include <SFML\Window.hpp>
#include <SFML\Graphics.hpp>
int _tmain(int argc, _TCHAR* argv[])
{
sf::Texture tx1,tx2,tx3,tx4;
sf::Sprite sp1,sp2,sp3,sp4;
sf::View w4View;
sf::RenderWindow window1(sf::VideoMode( 0, 0,1920,1080),"Test1",sf::Style::None);
sf::RenderWindow window2(sf::VideoMode(1920, 0,1920,1080),"Test2",sf::Style::None);
sf::RenderWindow window3(sf::VideoMode( 0,-1080,1920, 450),"Test3",sf::Style::None);
// sf::RenderWindow window4(sf::VideoMode( 560, 1080,1360, 256),"Test4",sf::Style::None);
sf::RenderWindow window4(sf::VideoMode( 0, 1080,1360, 256),"Test4",sf::Style::None);
tx1.loadFromFile("tx1.png");
tx2.loadFromFile("tx2.png");
tx3.loadFromFile("tx3.png");
tx4.loadFromFile("tx4.png");
sp1.setTexture(tx1);
sp2.setTexture(tx2);
sp3.setTexture(tx3);
sp4.setTexture(tx4);
while (window4.isOpen())
{
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
{
window4.close();
}
sf::Event event;
while (window4.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window4.close();
}
window1.clear(sf::Color::Blue);
window2.clear(sf::Color::Blue);
window3.clear(sf::Color::Blue);
window4.clear(sf::Color::Blue);
window1.draw(sp1);
window2.draw(sp2);
window3.draw(sp3);
window4.draw(sp4);
window1.display();
window2.display();
window3.display();
window4.display();
}
return 0;
}
Thanks
Ed