- glutReshapeWindow(10,10);
- glViewport(0,0,w,h);
- cout << w << ":" << h << endl;
+ int neww;
+ int newh;
+
+ cubelooks::env *Env = getEnv();
+
+ if ( w == Env->w ) {
+ newh = h;
+ neww = Env->aspect*h;
+ }
+ else if ( h == Env->h ) {
+ neww = w;
+ newh = w / Env->aspect;
+ }
+ else {
+ neww = ( pow(Env->aspect,2)*w + Env->aspect*h ) / ( pow(Env->aspect,2) + 1 );
+ newh = ( Env->aspect*w + h ) / ( pow(Env->aspect,2) + 1 );
+ }
+
+ glutReshapeWindow(neww,newh);
+ glViewport(0,0,neww,newh);
+
+ Env->w = neww;
+ Env->h = newh;