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();
}
Beispiel #2
0
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);
        }
    }
}
Beispiel #3
0
void BossBall::advance(int phace)
{
    if(!phace) return;
    moveBy(vector.x() * 5, vector.y() * 5);
    if(!isInView(pos())) controller.removeItem(this);
}