void AntTweakBarSystem::feedInput()
{
	GraphicsWrapper* gfx = m_gfxBackend->getGfxWrapper();
	AntTweakBarWrapper* antTweakBar = AntTweakBarWrapper::getInstance();

	// mouse pos
	Cursor* cursor = m_inputBackend->getCursor();
	pair<int,int> mousePos = gfx->getScreenPixelPosFromNDC( (float)cursor->getX(),
		(float)cursor->getY() );
	int mouseX = mousePos.first;
	int mouseY = mousePos.second;
	antTweakBar->setMousePos(mouseX,mouseY);

	// mouse key
	if (!antTweakBar->shouldOnlyListenToMouseMovement())
	{
		double l_btn = cursor->getPrimaryDelta();
		double r_btn = cursor->getSecondaryDelta();
		if( l_btn<-0.5f || l_btn>0.5f) antTweakBar->setMouseBtn( (int)(l_btn+1.0)/2, TW_MOUSE_LEFT );
		if( r_btn<-0.5f || r_btn>0.5f) antTweakBar->setMouseBtn( (int)(r_btn+1.0)/2, TW_MOUSE_RIGHT );

		// keyboard	A-Z
		Control* kb_control=NULL;
		for ( int letterIdx=InputHelper::KeyboardKeys_A; letterIdx<=InputHelper::KeyboardKeys_Z; letterIdx++ )
		{
			kb_control = m_inputBackend->getControlByEnum( (InputHelper::KeyboardKeys)letterIdx );
			if ( kb_control && kb_control->getDelta() > 0.5f )
			{
				antTweakBar->setKeyPressed(letterIdx+'A',0);
			}
		}

		// keyboard	0-9
		kb_control=NULL;
		for ( int keyNumIdx=InputHelper::KeyboardKeys_0; keyNumIdx<=InputHelper::KeyboardKeys_9; keyNumIdx++ )
		{
			kb_control = m_inputBackend->getControlByEnum( (InputHelper::KeyboardKeys)keyNumIdx );
			if ( kb_control && kb_control->getDelta() > 0.5f )
			{
				antTweakBar->setKeyPressed( keyNumIdx-(int)InputHelper::KeyboardKeys_0+'0', 0 );
			}
		}

		// keyboard	numpad 0-9
		kb_control=NULL;
		for (int numPadIdx=InputHelper::KeyboardKeys_NUMPAD_0; numPadIdx<=InputHelper::KeyboardKeys_NUMPAD_9; numPadIdx++)
		{
			kb_control = m_inputBackend->getControlByEnum( (InputHelper::KeyboardKeys)numPadIdx );
			if ( kb_control && kb_control->getDelta() > 0.5f )
			{
				antTweakBar->setKeyPressed( numPadIdx-(int)InputHelper::KeyboardKeys_NUMPAD_0+'0', 0 );
			}
		}

		// space
		kb_control = m_inputBackend->getControlByEnum( InputHelper::KeyboardKeys_SPACE );
		if ( kb_control && kb_control->getDelta() > 0.5f )
		{
			antTweakBar->setKeyPressed( TW_KEY_SPACE, 0 ); // Space in ASCII = 32
		}

		// backspace
		kb_control = m_inputBackend->getControlByEnum( InputHelper::KeyboardKeys_BACKSPACE );
		if ( kb_control && kb_control->getDelta() > 0.5f )
		{
			antTweakBar->setKeyPressed( TW_KEY_BACKSPACE, 0 ); // Backspace in ASCII = 8
		}

		// return
		kb_control = m_inputBackend->getControlByEnum( InputHelper::KeyboardKeys_RETURN );
		if ( kb_control && kb_control->getDelta() > 0.5f )
		{
			antTweakBar->setKeyPressed( TW_KEY_RETURN, 0 ); // Return in ASCII = 13
		}

		// F4
		kb_control = m_inputBackend->getControlByEnum( InputHelper::KeyboardKeys_F4);
		if ( kb_control && kb_control->getDelta() > 0.5f )
		{
			antTweakBar->setKeyPressed( TW_KEY_F4, 0 );
		}
	}
}