Ok, it works. It was my fault (obliviously

), I tought OpenGL worked with relative rotations, and instead it uses absolute one, so just a "static" had to be added

If you wanna try that's the diff:
Code:
Index: /home/riccardo/code/workspace/freeorion/FreeOrion/UI/MapWnd.cpp
===================================================================
--- /home/riccardo/code/workspace/freeorion/FreeOrion/UI/MapWnd.cpp (revision 2396)
+++ /home/riccardo/code/workspace/freeorion/FreeOrion/UI/MapWnd.cpp (working copy)
@@ -1251,9 +1251,27 @@
void MapWnd::RenderBackgrounds()
{
- double x, y;
+ double x, y;
glColor3d(1.0, 1.0, 1.0);
+ static float rotate_factor=0;
for (int i = 0; i < NUM_BACKGROUNDS; ++i) {
+
+ // TODO: Added by Flatline - Galaxy rotation
+ rotate_factor+=0.01;
+ glMatrixMode(GL_TEXTURE);
+ switch (i%3){
+ case 0: // don't rotate
+ break;
+ case 1: // rotate CW
+ glRotatef(rotate_factor,0,0,1);
+ break;
+ case 2:
+ glRotatef(-rotate_factor,0,0,1);
+ break;
+ }
+ /////////////////////////////////////
+
+
int bg_width = m_backgrounds[i]->Width();
int bg_height = m_backgrounds[i]->Height();
int app_width = GG::GUI::GetGUI()->AppWidth();
@@ -1267,6 +1285,8 @@
}
x += m_backgrounds[i]->Width();
}
+ // TODO: Added by Flatline - Galaxy rotation
+ glLoadIdentity();
}
for (unsigned int i = 0; i < m_nebulae.size(); ++i) {
(You need just to add the static definition of rotate_factor ouside the loop, the main block of code before the:
Code:
int bg_width = m_backgrounds[i]->Width();
int bg_height = m_backgrounds[i]->Height();
...
block, and the glLoadIdentity() before the Nebulae's loop)
Try it and let me know

PS: perhaps the rotation is a little bit too fast? In case just edit "rotate_factor+=0.01;" with a smaller value...