Ejemplo n.º 1
0
// NOTE: Caller must setup and release thread-state - as we return a PyObject,
// the caller must at least Py_DECREF it, so must hold the lock.
PyObject *CPythonHandler::DoCallback(
	HANDLER_TYPE typ,
	PyObject *args
	)
{
	PyObject **ppcb;
	const char *cb_name;
	switch(typ) {
		case HANDLER_INIT:
			ppcb = &m_callback_init;
			cb_name = m_nameinit;
			break;
		case HANDLER_TERM:
			ppcb = &m_callback_term;
			cb_name = m_nameterm;
			break;
		default:
			ppcb = &m_callback_do;
			cb_name = m_namedo;
			break;
	}
	if (!CheckCallback(cb_name, ppcb))
		return NULL;

	return PyObject_Call(*ppcb, args, NULL);
}
Ejemplo n.º 2
0
void CInputManager::Update()
{
    BEATS_PERFORMDETECT_START(NBDT::ePT_CaptureKeyboard);
    CKeyboard::GetInstance()->Capture();
    BEATS_PERFORMDETECT_STOP(NBDT::ePT_CaptureKeyboard);

    BEATS_PERFORMDETECT_START(NBDT::ePT_CaptureMouse);
    CMouse::GetInstance()->Capture();
    BEATS_PERFORMDETECT_STOP(NBDT::ePT_CaptureMouse);

    BEATS_PERFORMDETECT_START(NBDT::ePT_InputCallback);
    CheckCallback();
    BEATS_PERFORMDETECT_STOP(NBDT::ePT_InputCallback);
}