qmlfrontend/game_view.cpp
changeset 14712 57293f34ce59
parent 14298 00b56ec8b7df
child 14713 cc6ab1e3f7d5
equal deleted inserted replaced
14711:40809bfd44af 14712:57293f34ce59
    56     m_renderer->setEngineInstance(m_engineInstance);
    56     m_renderer->setEngineInstance(m_engineInstance);
    57     connect(window(), &QQuickWindow::beforeRendering, m_renderer.data(),
    57     connect(window(), &QQuickWindow::beforeRendering, m_renderer.data(),
    58             &GameViewRenderer::paint, Qt::DirectConnection);
    58             &GameViewRenderer::paint, Qt::DirectConnection);
    59   }
    59   }
    60 
    60 
    61   if (m_windowChanged) {
    61   if (m_windowChanged || (m_viewportSize != window()->size())) {
    62     QSize windowSize = window()->size();
    62     m_windowChanged = false;
    63     m_renderer->setViewportSize(windowSize * window()->devicePixelRatio());
    63 
    64     m_centerX = windowSize.width() / 2;
    64     if (m_engineInstance)
    65     m_centerY = windowSize.height() / 2;
    65       m_engineInstance->setOpenGLContext(window()->openglContext());
       
    66 
       
    67     m_viewportSize = window()->size();
    66   }
    68   }
    67 
    69 
    68   // QPoint mousePos = mapFromGlobal(QCursor::pos()).toPoint();
    70   // QPoint mousePos = mapFromGlobal(QCursor::pos()).toPoint();
    69   // if (flibUpdateMousePosition(m_centerX, m_centerY, mousePos.x(),
    71   // if (flibUpdateMousePosition(m_centerX, m_centerY, mousePos.x(),
    70   // mousePos.y()))
    72   // mousePos.y()))
    78 
    80 
    79 GameViewRenderer::~GameViewRenderer() {}
    81 GameViewRenderer::~GameViewRenderer() {}
    80 
    82 
    81 void GameViewRenderer::tick(quint32 delta) { m_delta = delta; }
    83 void GameViewRenderer::tick(quint32 delta) { m_delta = delta; }
    82 
    84 
    83 void GameViewRenderer::setViewportSize(const QSize& size) {
       
    84   // flibResizeWindow(size.width(), size.height());
       
    85 }
       
    86 
       
    87 void GameViewRenderer::setEngineInstance(EngineInstance* engineInstance) {
    85 void GameViewRenderer::setEngineInstance(EngineInstance* engineInstance) {
    88   m_engineInstance = engineInstance;
    86   m_engineInstance = engineInstance;
    89 }
    87 }
    90 
    88 
    91 void GameViewRenderer::paint() {
    89 void GameViewRenderer::paint() {
    96     m_engineInstance->renderFrame();
    94     m_engineInstance->renderFrame();
    97   }
    95   }
    98 
    96 
    99   // m_window->resetOpenGLState();
    97   // m_window->resetOpenGLState();
   100 }
    98 }
       
    99 
       
   100 void GameViewRenderer::onViewportSizeChanged(QQuickWindow* window) {
       
   101   if (m_engineInstance)
       
   102     m_engineInstance->setOpenGLContext(window->openglContext());
       
   103 }