void AutomationUI::updateROI() { if (itemsUI.size() == 0) return; int len = itemsUI.size()-1; for (int i = 0; i < len; i++) { itemsUI[i]->setVisible(false); if (isInView(itemsUI[i])) { firstROIKey = jmax<int>(i-1,0); break; } } for (int i = len; i >= 0; i--) { itemsUI[i]->setVisible(false); if (isInView(itemsUI[i])) { lastROIKey = jmin<int>(i + 1, len); break; } } for (int i = firstROIKey; i <= lastROIKey; i++) { itemsUI[i]->setVisible(true); } resized(); }
void Mob2DRenderer::Render() { GLuint current_image = 0, previous_image = 9001; // Loop through all instances of Mob2D_node (Mob2DNode) in the sprite manager and render them out. for(Mob2DNodeIter i = SpriteManager::Instance()->nodes.begin(); i != SpriteManager::Instance()->nodes.end(); i++) { // If it's not an error if(((*i).second->draw) && (isInView((*i).second))) { current_image = (*i).second->m_sprite->GetImageHandle(); glActiveTexture(GL_TEXTURE0); if(current_image != previous_image) glBindTexture(GL_TEXTURE_2D, (*i).second->m_sprite->GetImageHandle()); if(!(*i).second->draw_to_screen) { glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(camera_data[0], camera_data[0]+camera_data[2], camera_data[1]+camera_data[3], camera_data[1], -9001, 9001); glViewport(0, 0, window[0], window[1]); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } else { glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0, window[0], 0, window[1], -9001, 9001); glViewport(0, 0, window[0], window[1]); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); // OH GOD DRAW TO SCREEN IS DRAWING UPSIDE DOWN! glTranslatef(0.375f, 0.375f, 0.0f); // glScalef(0.0f, -1.0f, 0.0f); } DrawNode((*i).second); previous_image = current_image; glBindBuffer(GL_ARRAY_BUFFER, 0); } } }
void BossBall::advance(int phace) { if(!phace) return; moveBy(vector.x() * 5, vector.y() * 5); if(!isInView(pos())) controller.removeItem(this); }