--- /home/bogdan/stellarium/rev4190/src/core/StelViewportDistorter.cpp
+++ /home/bogdan/stellarium/rev4192/src/core/StelViewportEffect.cpp
@@ -1,7 +1,6 @@
 /*
  * Stellarium
- * Copyright (C) Fabien Chereau
- * Author 2006 Johannes Gajdosik
+ * Copyright (C) 2010 Fabien Chereau
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -18,76 +17,25 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
-#include <cmath>
+#include "StelViewportEffect.hpp"
+#include "StelApp.hpp"
+#include "StelCore.hpp"
+#include "StelPainter.hpp"
+#include "SphericMirrorCalculator.hpp"
+#include "StelFileMgr.hpp"
+#include "StelMovementMgr.hpp"
+
+#include <QGLFramebufferObject>
 #include <QSettings>
-#include <QString>
-#include <QFile>
-#include <QDataStream>
-#include <QDebug>
-
-#include <QtOpenGL>
-#include "StelViewportDistorter.hpp"
-#include "SphericMirrorCalculator.hpp"
-#include "StelUtils.hpp"
-#include "StelProjector.hpp"
-#include "StelApp.hpp"
-#include "StelFileMgr.hpp"
-#include "StelCore.hpp"
-#include "StelMovementMgr.hpp"
-#include "StelPainter.hpp"
-
-#ifndef GL_CLAMP_TO_EDGE
-#define GL_CLAMP_TO_EDGE 0x812F
-#endif
-
-class StelViewportDistorterDummy : public StelViewportDistorter
-{
-private:
-	friend class StelViewportDistorter;
-	QString getType(void) const { return "none"; }
-	void prepare(void) const {}
-	void distort(void) const {}
-	bool distortXY(int &x,int &y) const { return true; }
-
-};
-
-#ifndef USE_OPENGL_ES2
-class StelViewportDistorterFisheyeToSphericMirror : public StelViewportDistorter
-{
-private:
-	friend class StelViewportDistorter;
-	StelViewportDistorterFisheyeToSphericMirror(int screen_w,int screen_h);
-	~StelViewportDistorterFisheyeToSphericMirror(void);
-	QString getType(void) const
-	{
-		return "fisheye_to_spheric_mirror";
-	}
-	void cleanup(void);
-	void prepare(void) const;
-	void distort(void) const;
-	bool distortXY(int &x,int &y) const;
-
-private:
-	bool flag_use_ext_framebuffer_object;
-	const int screen_w;
-	const int screen_h;
-	const StelProjector::StelProjectorParams originalProjectorParams;
-	StelProjector::StelProjectorParams newProjectorParams;
-	int viewport_texture_offset[2];
-	int texture_wh;
-
-	Vec2f *texture_point_array;
-	int max_x,max_y;
-	double step_x,step_y;
-
-	QVector<Vec2f> displayVertexList;
-	QVector<Vec4f> displayColorList;
-	QVector<Vec2f> displayTexCoordList;
-	GLuint mirror_texture;
-	GLuint fbo;             // frame buffer object
-	GLuint depth_buffer;    // depth render buffer
-};
-
+
+void StelViewportEffect::paintViewportBuffer(const QGLFramebufferObject* buf) const
+{
+	StelPainter sPainter(StelApp::getInstance().getCore()->getProjection2d());
+	sPainter.setColor(1,1,1);
+	sPainter.enableTexture2d(true);
+	glBindTexture(GL_TEXTURE_2D, buf->texture());
+	sPainter.drawRect2d(0, 0, buf->size().width(), buf->size().height());
+}
 
 struct VertexPoint
 {
@@ -96,23 +44,16 @@
 	double h;
 };
 
-
-
-StelViewportDistorterFisheyeToSphericMirror::StelViewportDistorterFisheyeToSphericMirror(int screen_w,int screen_h)
-	:	screen_w(screen_w), screen_h(screen_h),
+StelViewportDistorterFisheyeToSphericMirror::StelViewportDistorterFisheyeToSphericMirror(int screen_w,int screen_h) :
+		screen_w(screen_w), screen_h(screen_h),
 		originalProjectorParams(StelApp::getInstance().getCore()->getCurrentStelProjectorParams()),
-		texture_point_array(0)
+		texture_point_array(NULL)
 {
 	QSettings& conf = *StelApp::getInstance().getSettings();
 	StelCore* core = StelApp::getInstance().getCore();
-	
-	flag_use_ext_framebuffer_object = false;
-#if 0
-	// deleted for patch
-#endif
-															 
+
 	// initialize viewport parameters and texture size:
-	
+
 	// maximum FOV value of the not yet distorted image
 	double distorter_max_fov = conf.value("spheric_mirror/distorter_max_fov",175.0).toDouble();
 	if (distorter_max_fov > 240.0)
@@ -121,7 +62,7 @@
 		distorter_max_fov = 120.0;
 	if (distorter_max_fov > core->getMovementMgr()->getMaxFov())
 		distorter_max_fov = core->getMovementMgr()->getMaxFov();
-	
+
 	StelProjectorP prj = core->getProjection(StelCore::FrameJ2000);
 	core->getMovementMgr()->setMaxFov(distorter_max_fov);
 
@@ -131,26 +72,26 @@
 	{
 		newProjectorParams.viewportXywh[2] = originalProjectorParams.viewportXywh[2];
 	}
-	else if (!flag_use_ext_framebuffer_object && newProjectorParams.viewportXywh[2] > screen_w)
+	else if (newProjectorParams.viewportXywh[2] > screen_w)
 	{
 		newProjectorParams.viewportXywh[2] = screen_w;
 	}
-	
+
 	// height of the not yet distorted image
 	newProjectorParams.viewportXywh[3] = conf.value("spheric_mirror/newProjectorParams.viewportXywh[3]eight", originalProjectorParams.viewportXywh[3]).toInt();
 	if (newProjectorParams.viewportXywh[3] <= 0)
 	{
 		newProjectorParams.viewportXywh[3] = originalProjectorParams.viewportXywh[3];
 	}
-	else if (!flag_use_ext_framebuffer_object && newProjectorParams.viewportXywh[3] > screen_h)
+	else if (newProjectorParams.viewportXywh[3] > screen_h)
 	{
 		newProjectorParams.viewportXywh[3] = screen_h;
 	}
-	
+
 	// center of the FOV-disk in the not yet distorted image
 	newProjectorParams.viewportCenter[0] = conf.value("spheric_mirror/viewportCenterX", 0.5*newProjectorParams.viewportXywh[2]).toDouble();
 	newProjectorParams.viewportCenter[1] = conf.value("spheric_mirror/viewportCenterY", 0.5*newProjectorParams.viewportXywh[3]).toDouble();
-	
+
 	// diameter of the FOV-disk in pixels
 	newProjectorParams.viewportFovDiameter = conf.value("spheric_mirror/viewport_fov_diameter", qMin(newProjectorParams.viewportXywh[2],newProjectorParams.viewportXywh[3])).toDouble();
 
@@ -160,54 +101,10 @@
 	viewport_texture_offset[0] = (texture_wh-newProjectorParams.viewportXywh[2])>>1;
 	viewport_texture_offset[1] = (texture_wh-newProjectorParams.viewportXywh[3])>>1;
 
-	if (flag_use_ext_framebuffer_object)
-	{
-		newProjectorParams.viewportXywh[0] = viewport_texture_offset[0];
-		newProjectorParams.viewportXywh[1] = viewport_texture_offset[1];
-	}
-	else
-	{
-		newProjectorParams.viewportXywh[0] = (screen_w-newProjectorParams.viewportXywh[2]) >> 1;
-		newProjectorParams.viewportXywh[1] = (screen_h-newProjectorParams.viewportXywh[3]) >> 1;
-	}
-	//qDebug() << "texture_wh: " << texture_wh;
-	//qDebug() << "viewportFovDiameter: " << viewportFovDiameter;
-	//qDebug() << "screen: " << screen_w << ", " << screen_h;
-	//qDebug() << "viewport: " << viewport[0] << ", " << viewport[1] << ", "
-	//         << newProjectorParams.viewportXywh[2] << ", " << newProjectorParams.viewportXywh[3];
-	//qDebug() << "viewport_texture_offset: "
-	//         << viewport_texture_offset[0] << ", "
-	//         << viewport_texture_offset[1];
-	
+	newProjectorParams.viewportXywh[0] = (screen_w-newProjectorParams.viewportXywh[2]) >> 1;
+	newProjectorParams.viewportXywh[1] = (screen_h-newProjectorParams.viewportXywh[3]) >> 1;
+
 	StelApp::getInstance().getCore()->setCurrentStelProjectorParams(newProjectorParams);
-
-	// initialize mirror_texture:
-	glGenTextures(1, &mirror_texture);
-	glBindTexture(GL_TEXTURE_2D, mirror_texture);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-	if (flag_use_ext_framebuffer_object)
-	{
-		Q_ASSERT(0);
-		// Update the code using QGLFramebufferObject class
-#if 0
-		// Deleted for patch
-#endif
-	}
-	else
-	{
-		glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-		const int size = 3*texture_wh*texture_wh;
-		unsigned char *pixel_data = new unsigned char[size];
-		Q_ASSERT(pixel_data);
-		memset(pixel_data,0,size);
-		glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
-		             texture_wh, texture_wh, 0, GL_RGB, GL_UNSIGNED_BYTE,
-		             pixel_data);
-		delete[] pixel_data;
-	}
 
 	// init transformation
 	VertexPoint *vertex_point_array = 0;
@@ -223,12 +120,11 @@
 		step_x = screen_w / (double)(max_x-0.5);
 		max_y = (int)trunc(screen_h/(texture_triangle_base_length*0.5*sqrt(3.0)));
 		step_y = screen_h/ (double)max_y;
-		//qDebug() << "max_x: " << max_x << ", max_y: " << max_y
-		//         << ", step_x: " << step_x << ", step_y: " << step_y;
 
 		double gamma = conf.value("spheric_mirror/projector_gamma",0.45).toDouble();
-		if (gamma < 0.0) gamma = 0.0;
-		
+		if (gamma < 0.0)
+			gamma = 0.0;
+
 		const float view_scaling_factor = 0.5 * newProjectorParams.viewportFovDiameter / prj->fovToViewScalingFactor(distorter_max_fov*(M_PI/360.0));
 		texture_point_array = new Vec2f[(max_x+1)*(max_y+1)];
 		vertex_point_array = new VertexPoint[(max_x+1)*(max_y+1)];
@@ -240,15 +136,12 @@
 			{
 				VertexPoint &vertex_point(vertex_point_array[(j*(max_x+1)+i)]);
 				Vec2f &texture_point(texture_point_array[(j*(max_x+1)+i)]);
-				vertex_point.ver_xy[0] = ((i == 0) ? 0.f :
-				                          (i == max_x) ? screen_w :
-				                          (i-0.5f*(j&1))*step_x);
+				vertex_point.ver_xy[0] = ((i == 0) ? 0.f : (i == max_x) ? screen_w : (i-0.5f*(j&1))*step_x);
 				vertex_point.ver_xy[1] = j*step_y;
 				Vec3d v,vX,vY;
 				bool rc = calc.retransform(
-				              (vertex_point.ver_xy[0]-0.5f*screen_w) / screen_h,
-				              (vertex_point.ver_xy[1]-0.5f*screen_h) / screen_h,
-				              v,vX,vY);
+							  (vertex_point.ver_xy[0]-0.5f*screen_w) / screen_h,
+							  (vertex_point.ver_xy[1]-0.5f*screen_h) / screen_h, v,vX,vY);
 				rc &= prj->forward(v);
 				const float x = newProjectorParams.viewportCenter[0] + v[0] * view_scaling_factor;
 				const float y = newProjectorParams.viewportCenter[1] + v[1] * view_scaling_factor;
@@ -278,7 +171,7 @@
 			{
 				VertexPoint &vertex_point(vertex_point_array[(j*(max_x+1)+i)]);
 				vertex_point.color[0] = vertex_point.color[1] = vertex_point.color[2] =
-				                            (vertex_point.h<=0.0) ? 0.0 : exp(gamma*log(vertex_point.h/max_h));
+											(vertex_point.h<=0.0) ? 0.0 : exp(gamma*log(vertex_point.h/max_h));
 				vertex_point.color[3] = 1.0f;
 			}
 		}
@@ -294,7 +187,6 @@
 			file.open(QIODevice::ReadOnly);
 			if (file.error() != QFile::NoError)
 				throw("failed to open file");
-
 			in.setDevice(&file);
 		}
 		catch (std::runtime_error& e)
@@ -306,8 +198,6 @@
 		Q_ASSERT(in.status()==QDataStream::Ok && max_x>0 && max_y>0);
 		step_x = screen_w / (double)(max_x-0.5);
 		step_y = screen_h/ (double)max_y;
-		//qDebug() << "max_x: " << max_x << ", max_y: " << max_y
-		//         << ", step_x: " << step_x << ", step_y: " << step_y;
 		texture_point_array = new Vec2f[(max_x+1)*(max_y+1)];
 		vertex_point_array = new VertexPoint[(max_x+1)*(max_y+1)];
 		for (int j=0;j<=max_y;j++)
@@ -316,25 +206,14 @@
 			{
 				VertexPoint &vertex_point(vertex_point_array[(j*(max_x+1)+i)]);
 				Vec2f &texture_point(texture_point_array[(j*(max_x+1)+i)]);
-				vertex_point.ver_xy[0] = ((i == 0) ? 0.f :
-				                          (i == max_x) ? screen_w :
-				                          (i-0.5f*(j&1))*step_x);
+				vertex_point.ver_xy[0] = ((i == 0) ? 0.f : (i == max_x) ? screen_w : (i-0.5f*(j&1))*step_x);
 				vertex_point.ver_xy[1] = j*step_y;
 				float x,y;
-				in >> x >> y
-				>> vertex_point.color[0]
-				>> vertex_point.color[1]
-				>> vertex_point.color[2];
+				in >> x >> y >> vertex_point.color[0] >> vertex_point.color[1] >> vertex_point.color[2];
 				vertex_point.color[3] = 1.0f;
 				Q_ASSERT(in.status()!=QDataStream::Ok);
-				//      if (x < 0.f) {x=0.f;vertex_point.h=0;}
-				//      else if (x > newProjectorParams.viewportXywh[2]) {x=newProjectorParams.viewportXywh[2];vertex_point.h=0;}
-				//      if (y < 0.f) {y=0.f;vertex_point.h=0;}
-				//      else if (y > newProjectorParams.viewportXywh[3]) {y=newProjectorParams.viewportXywh[3];vertex_point.h=0;}
-
 				texture_point[0] = (viewport_texture_offset[0]+x)/texture_wh;
 				texture_point[1] = (viewport_texture_offset[1]+y)/texture_wh;
-
 			}
 		}
 	}
@@ -365,74 +244,25 @@
 		}
 	}
 	delete[] vertex_point_array;
-	
-	qDebug() << "StelViewportDistorterFisheyeToSphericMirror:" 
-	         << "screen_w:" << this->screen_w
-	         << "screen_h:" << this->screen_h << endl
-	         << "originalProjectorParams:viewport:" 
-	         << originalProjectorParams.viewportXywh[0] 
-	         << originalProjectorParams.viewportXywh[1] 
-	         << originalProjectorParams.viewportXywh[2] 
-	         << originalProjectorParams.viewportXywh[3] << endl
-	         << "newProjectorParams:viewport:"
-	         << newProjectorParams.viewportXywh[0] 
-	         << newProjectorParams.viewportXywh[1] 
-	         << newProjectorParams.viewportXywh[2]
-	         << newProjectorParams.viewportXywh[3] << endl 
-	         << "originalProjectorParams.fov:"
-	         << originalProjectorParams.fov << endl 
-	         << "newProjectorParams.fov:" << newProjectorParams.fov << endl
-	         << "originalProjectorParams.viewportCenter:"
-	         << originalProjectorParams.viewportCenter[0] 
-	         << originalProjectorParams.viewportCenter[1] << endl
-	         << "newProjectorParams.viewportCenter:" 
-	         << newProjectorParams.viewportCenter[0] 
-	         << newProjectorParams.viewportCenter[1] << endl
-	         << "originalProjectorParams.viewportFovDiameter:" 
-	         << originalProjectorParams.viewportFovDiameter << endl
-	         << "newProjectorParams.viewportFovDiameter:"
-	         << newProjectorParams.viewportFovDiameter << endl
-	         << "originalProjectorParams.zNear,zFar:" 
-	         << originalProjectorParams.zNear 
-	         << originalProjectorParams.zFar << endl
-	         << "newProjectorParams.zNear,zFar:" 
-	         << newProjectorParams.zNear 
-	         << newProjectorParams.zFar << endl
-	         << "viewport_texture_offset:" 
-	         << viewport_texture_offset[0]
-	         << viewport_texture_offset[1] << endl
-	         << "texture_wh:" << texture_wh << endl
-	         << "max_x:" << max_x << endl
-	         << "max_y:" << max_y;
 }
 
 
 
 StelViewportDistorterFisheyeToSphericMirror::~StelViewportDistorterFisheyeToSphericMirror(void)
 {
-	if (texture_point_array) delete[] texture_point_array;
-	if (flag_use_ext_framebuffer_object)
-	{
-		Q_ASSERT(0);
-#if 0
-		glDeleteFramebuffersEXT(1, &fbo);
-		glDeleteRenderbuffersEXT(1, &depth_buffer);
-#endif
-	}
-	glDeleteTextures(1,&mirror_texture);
-	
+	if (texture_point_array)
+		delete[] texture_point_array;
+
 	// TODO repair
 	// prj->setMaxFov(original_max_fov);
-//	prj->setViewport(original_viewport[0],original_viewport[1],
-// 	                 original_viewport[2],original_viewport[3],
-// 	                 original_viewportCenter[0],original_viewportCenter[1],
-// 	                 original_viewportFovDiameter);
-}
-
-
-
-
-bool StelViewportDistorterFisheyeToSphericMirror::distortXY(int &x,int &y) const
+	//	prj->setViewport(original_viewport[0],original_viewport[1],
+	// 	                 original_viewport[2],original_viewport[3],
+	// 	                 original_viewportCenter[0],original_viewportCenter[1],
+	// 	                 original_viewportFovDiameter);
+}
+
+
+void StelViewportDistorterFisheyeToSphericMirror::distortXY(float& x, float& y) const
 {
 	float texture_x,texture_y;
 
@@ -453,12 +283,8 @@
 				dx -= 0.5f*(1.f-dy);
 				dx *= 2.f;
 			}
-			texture_x = t[0][0]
-			            + dx * (t[1][0]-t[0][0])
-			            + dy * (t[max_x+1][0]-t[0][0]);
-			texture_y = t[0][1]
-			            + dx * (t[1][1]-t[0][1])
-			            + dy * (t[max_x+1][1]-t[0][1]);
+			texture_x = t[0][0] + dx * (t[1][0]-t[0][0]) + dy * (t[max_x+1][0]-t[0][0]);
+			texture_y = t[0][1] + dx * (t[1][1]-t[0][1]) + dy * (t[max_x+1][1]-t[0][1]);
 		}
 		else
 		{
@@ -467,12 +293,8 @@
 				dx -= 0.5f*(1.f-dy);
 				dx *= 2.f;
 			}
-			texture_x = t[max_x+2][0]
-			            + (1.f-dy) * (t[1][0]-t[max_x+2][0])
-			            + (1.f-dx) * (t[max_x+1][0]-t[max_x+2][0]);
-			texture_y = t[max_x+2][1]
-			            + (1.f-dy) * (t[1][1]-t[max_x+2][1])
-			            + (1.f-dx) * (t[max_x+1][1]-t[max_x+2][1]);
+			texture_x = t[max_x+2][0] + (1.f-dy) * (t[1][0]-t[max_x+2][0]) + (1.f-dx) * (t[max_x+1][0]-t[max_x+2][0]);
+			texture_y = t[max_x+2][1] + (1.f-dy) * (t[1][1]-t[max_x+2][1]) + (1.f-dx) * (t[max_x+1][1]-t[max_x+2][1]);
 		}
 	}
 	else
@@ -488,12 +310,8 @@
 				dx -= 0.5f*dy;
 				dx *= 2.f;
 			}
-			texture_x = t[1][0]
-			            + (1.f-dx) * (t[0][0]-t[1][0])
-			            + dy * (t[max_x+2][0]-t[1][0]);
-			texture_y = t[1][1]
-			            + (1.f-dx) * (t[0][1]-t[1][1])
-			            + dy * (t[max_x+2][1]-t[1][1]);
+			texture_x = t[1][0] + (1.f-dx) * (t[0][0]-t[1][0]) + dy * (t[max_x+2][0]-t[1][0]);
+			texture_y = t[1][1] + (1.f-dx) * (t[0][1]-t[1][1]) + dy * (t[max_x+2][1]-t[1][1]);
 		}
 		else
 		{
@@ -502,66 +320,22 @@
 				dx -= 0.5f*dy;
 				dx *= 2.f;
 			}
-			texture_x = t[max_x+1][0]
-			            + (1.f-dy) * (t[0][0]-t[max_x+1][0])
-			            + dx * (t[max_x+2][0]-t[max_x+1][0]);
-			texture_y = t[max_x+1][1]
-			            + (1.f-dy) * (t[0][1]-t[max_x+1][1])
-			            + dx * (t[max_x+2][1]-t[max_x+1][1]);
-		}
-	}
-
-
-	x = (int)floorf(0.5+texture_wh*texture_x) - viewport_texture_offset[0] + newProjectorParams.viewportXywh[0];
-	y = (int)floorf(0.5+texture_wh*texture_y) - viewport_texture_offset[1] + newProjectorParams.viewportXywh[1];
-	return true;
-}
-
-void StelViewportDistorterFisheyeToSphericMirror::prepare(void) const
-{
-	// First we bind the FBO so we can render to it
-	if (flag_use_ext_framebuffer_object)
-	{
-		Q_ASSERT(0);
-#if 0
-		glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo);
-#endif
-	}
-}
-
-void StelViewportDistorterFisheyeToSphericMirror::distort(void) const
-{	
-	// set rendering back to default frame buffer
-	if (flag_use_ext_framebuffer_object)
-	{
-#if 0
-		glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
-#endif
-	}
+			texture_x = t[max_x+1][0] + (1.f-dy) * (t[0][0]-t[max_x+1][0]) + dx * (t[max_x+2][0]-t[max_x+1][0]);
+			texture_y = t[max_x+1][1] + (1.f-dy) * (t[0][1]-t[max_x+1][1]) + dx * (t[max_x+2][1]-t[max_x+1][1]);
+		}
+	}
+
+	x = texture_wh*texture_x - viewport_texture_offset[0] + newProjectorParams.viewportXywh[0];
+	y = texture_wh*texture_y - viewport_texture_offset[1] + newProjectorParams.viewportXywh[1];
+}
+
+
+void StelViewportDistorterFisheyeToSphericMirror::paintViewportBuffer(const QGLFramebufferObject* buf) const
+{
 	StelPainter sPainter(StelApp::getInstance().getCore()->getProjection2d());
 	sPainter.enableTexture2d(true);
-	glViewport(0, 0, screen_w, screen_h);
-	glMatrixMode(GL_PROJECTION);        // projection matrix mode
-	glLoadIdentity();
-	glOrtho(0,screen_w,0,screen_h, -1, 1); // set a 2D orthographic projection
-	glMatrixMode(GL_MODELVIEW);         // modelview matrix mode
-	glLoadIdentity();
-	
-	glBindTexture(GL_TEXTURE_2D, mirror_texture);
-	if (!flag_use_ext_framebuffer_object)
-	{
-		glCopyTexSubImage2D(GL_TEXTURE_2D, 0,
-		                    viewport_texture_offset[0],
-		                    viewport_texture_offset[1],
-		                    newProjectorParams.viewportXywh[0],
-		                    newProjectorParams.viewportXywh[1],
-		                    newProjectorParams.viewportXywh[2],
-		                    newProjectorParams.viewportXywh[3]);
-	}
-
-
+	glBindTexture(GL_TEXTURE_2D, buf->texture());
 	glDisable(GL_BLEND);
-	glBindTexture(GL_TEXTURE_2D, mirror_texture);
 
 	glEnableClientState(GL_VERTEX_ARRAY);
 	glEnableClientState(GL_COLOR_ARRAY);
@@ -576,19 +350,5 @@
 	glDisableClientState(GL_VERTEX_ARRAY);
 	glDisableClientState(GL_COLOR_ARRAY);
 	glDisableClientState(GL_TEXTURE_COORD_ARRAY);
-
-	glViewport(newProjectorParams.viewportXywh[0],newProjectorParams.viewportXywh[1],newProjectorParams.viewportXywh[2],newProjectorParams.viewportXywh[3]);
-}
-#endif
-
-StelViewportDistorter *StelViewportDistorter::create(const QString &type, int width,int height, StelProjectorP prj)
-{
-#ifndef USE_OPENGL_ES2
-	if (type == "fisheye_to_spheric_mirror")
-	{
-		return new StelViewportDistorterFisheyeToSphericMirror(width,height);
-	}
-#endif
-	return new StelViewportDistorterDummy;
-}
-
+}
+
