void RendererThread::DrawEngines() { for (size_t i = 0; i < m_engines.size(); i++) { if(!std::get<1>(m_engines[i])) { continue; } DrawEngine(std::get<0>(m_engines[i])->GetRenderTargetTexture(), m_monitors[i].GetRect()); } }
void LunarModule::DrawBottom() { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, texIds[0]); glBegin(GL_QUADS); // Front glNormal3f(0, 1, 0); glTexCoord2f(0, 0); glVertex3f(0, 0, 0); glTexCoord2f(0, 1); glVertex3f(0, -50, 0); glTexCoord2f(1, 1); glVertex3f(100, -50, 0); glTexCoord2f(1, 0); glVertex3f(100, 0, 0); // Front right lip glNormal3f(1, 0, 1); glTexCoord2f(0, 0); glVertex3f(100, 0, 0); glTexCoord2f(0, 1); glVertex3f(100, -50, 0); glTexCoord2f(1, 1); glVertex3f(150, -50, -50); glTexCoord2f(1, 0); glVertex3f(150, 0, -50); // Middle right glNormal3f(0, 0, 1); glTexCoord2f(0, 0); glVertex3f(150, 0, -50); glTexCoord2f(0, 1); glVertex3f(150, -50, -50); glTexCoord2f(1, 1); glVertex3f(150, -50, -150); glTexCoord2f(1, 0); glVertex3f(150, 0, -150); // Back right lip glNormal3f(1, 0, 1); glTexCoord2f(0, 0); glVertex3f(150, 0, -150); glTexCoord2f(0, 1); glVertex3f(150, -50, -150); glTexCoord2f(1, 1); glVertex3f(100, -50, -200); glTexCoord2f(1, 0); glVertex3f(100, 0, -200); // Back glNormal3f(0, 0, 1); glTexCoord2f(0, 0); glVertex3f(100, 0, -200); glTexCoord2f(0, 1); glVertex3f(100, -50, -200); glTexCoord2f(1, 1); glVertex3f(0, -50, -200); glTexCoord2f(1, 0); glVertex3f(0, 0, -200); // Back left lip glNormal3f(1, 0, 1); glTexCoord2f(0, 0); glVertex3f(0, 0, -200); glTexCoord2f(0, 1); glVertex3f(0, -50, -200); glTexCoord2f(1, 1); glVertex3f(-50, -50, -150); glTexCoord2f(1, 0); glVertex3f(-50, 0, -150); // Middle left glNormal3f(0, 0, 1); glTexCoord2f(0, 0); glVertex3f(-50, 0, -150); glTexCoord2f(0, 1); glVertex3f(-50, -50, -150); glTexCoord2f(1, 1); glVertex3f(-50, -50, -50); glTexCoord2f(1, 0); glVertex3f(-50, 0, -50); // Front left lip glNormal3f(1, 0, 1); glTexCoord2f(0, 0); glVertex3f(-50, 0, -50); glTexCoord2f(0, 1); glVertex3f(-50, -50, -50); glTexCoord2f(1, 1); glVertex3f(0, -50, 0); glTexCoord2f(1, 0); glVertex3f(0, 0, 0); // Top glNormal3f(0, 1, 0); glTexCoord2f(0, 0); glVertex3f(-50, 0, -50); glTexCoord2f(0, 1); glVertex3f(0, 0, 0); glTexCoord2f(1, 1); glVertex3f(0, 0, -200); glTexCoord2f(1, 0); glVertex3f(-50, 0, -150); glTexCoord2f(0, 0); glVertex3f(0, 0, 0); glTexCoord2f(0, 1); glVertex3f(100, 0, 0); glTexCoord2f(1, 1); glVertex3f(100, 0, -200); glTexCoord2f(1, 0); glVertex3f(0, 0, -200); glTexCoord2f(0, 0); glVertex3f(100, 0, 0); glTexCoord2f(0, 1); glVertex3f(150, 0, -50); glTexCoord2f(1, 1); glVertex3f(150, 0, -150); glTexCoord2f(1, 0); glVertex3f(100, -0, -200); // Bottom glNormal3f(-1, -1, -1); glVertex3f(-50, -50, -150); glVertex3f(0, -50, -200); glVertex3f(0, -50, 0); glVertex3f(-50, -50, -50); glVertex3f(0, -50, -200); glVertex3f(100, -50, -200); glVertex3f(100, -50, 0); glVertex3f(0, -50, 0); glTexCoord2f(0, 0); glVertex3f(100, -50, -200); glVertex3f(150, -50, -150); glVertex3f(150, -50, -50); glVertex3f(100, -50, 0); glEnd(); glBindTexture(GL_TEXTURE_2D, NULL); glDisable(GL_TEXTURE_2D); DrawLandingGear(); glPushMatrix(); glTranslatef(150, 0, -50); glRotated(90, 0, 1, 0); DrawLandingGear(); glPopMatrix(); glPushMatrix(); glTranslatef(-55, 0, -150); glRotatef(270, 0, 1, 0); DrawLandingGear(); glPopMatrix(); glPushMatrix(); glTranslatef(100, 0, -200); glRotatef(-180, 0, 1, 0); DrawLandingGear(); glPopMatrix(); glPushMatrix(); glTranslatef(50, -50, -100); DrawEngine(); glPopMatrix(); }