1 /* 2 SPDX-FileCopyrightText: 2010 Akarsh Simha <akarsh.simha@kdemail.net> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #ifdef _WIN32 8 #include <windows.h> 9 #endif 10 11 #include "texturemanager.h" 12 #include "skymapcomposite.h" 13 #include "skyglpainter.h" 14 #include "skymapgldraw.h" 15 #include "skymap.h" 16 SkyMapGLDraw(SkyMap * sm)17SkyMapGLDraw::SkyMapGLDraw(SkyMap *sm) : QGLWidget(sm), SkyMapDrawAbstract(sm) 18 { 19 if (!format().testOption(QGL::SampleBuffers)) 20 qWarning() << "No sample buffer; can't use multisampling (antialiasing)"; 21 if (!format().testOption(QGL::StencilBuffer)) 22 qWarning() << "No stencil buffer; can't draw concave polygons"; 23 } 24 initializeGL()25void SkyMapGLDraw::initializeGL() 26 { 27 } 28 resizeGL(int width,int height)29void SkyMapGLDraw::resizeGL(int width, int height) 30 { 31 Q_UNUSED(width) 32 Q_UNUSED(height) 33 //do nothing since we resize in SkyGLPainter::paintGL() 34 } 35 paintEvent(QPaintEvent * event)36void SkyMapGLDraw::paintEvent(QPaintEvent *event) 37 { 38 Q_UNUSED(event); 39 // This is machinery to prevent multiple concurrent paint events / recursive paint events 40 if (m_DrawLock) 41 return; 42 setDrawLock(true); 43 44 QPainter p; 45 p.begin(this); 46 p.beginNativePainting(); 47 calculateFPS(); 48 m_SkyMap->setupProjector(); 49 makeCurrent(); 50 51 SkyGLPainter psky(this); 52 //FIXME: we may want to move this into the components. 53 psky.begin(); 54 55 //Draw all sky elements 56 psky.drawSkyBackground(); 57 m_KStarsData->skyComposite()->draw(&psky); 58 //Finish up 59 psky.end(); 60 61 p.endNativePainting(); 62 drawOverlays(p); 63 p.end(); 64 65 setDrawLock(false); 66 } 67