Esempio n. 1
0
GLShaderParam::GLShaderParam(OGLShader* pShader, const std::string& sName)
    : m_sName(sName)
{
    m_Location = glproc::GetUniformLocation(pShader->getProgram(), sName.c_str());
    string sErr = std::string("Shader param '") + sName + "' not found in shader '" + 
            pShader->getName() + "'.";
    AVG_ASSERT_MSG(m_Location != -1, sErr.c_str());
    GLContext::checkError(sErr.c_str());
};
Esempio n. 2
0
const MessageID& PublisherDefinition::getMessageID(const std::string& sName) const
{
    for (unsigned i=0; i<m_MessageIDs.size(); ++i) {
        if (m_MessageIDs[i].m_sName == sName) {
            return m_MessageIDs[i];
        }
    }
    AVG_ASSERT_MSG(false, (string("Message named '")+sName+("' unknown.")).c_str());
    // Avoid compiler warning.
    static MessageID nullMsg("", -1);
    return nullMsg;
}
Esempio n. 3
0
void Contact::sendEventToListeners(CursorEventPtr pCursorEvent)
{
    switch (pCursorEvent->getType()) {
        case Event::CURSOR_DOWN:
            break;
        case Event::CURSOR_MOTION:
            notifySubscribers("CURSOR_MOTION", pCursorEvent);
            break;
        case Event::CURSOR_UP:
            notifySubscribers("CURSOR_UP", pCursorEvent);
            removeSubscribers();
            break;
        default:
            AVG_ASSERT_MSG(false, pCursorEvent->typeStr().c_str());
    }
    m_bSendingEvents = true;
    AVG_ASSERT(pCursorEvent->getContact() == shared_from_this());
    EventPtr pEvent = boost::dynamic_pointer_cast<Event>(pCursorEvent);
    m_bCurListenerIsDead = false;
    for (map<int, Listener>::iterator it = m_ListenerMap.begin(); 
            it != m_ListenerMap.end();)
    {
        Listener listener = it->second;
        m_CurListenerID = it->first;
        m_bCurListenerIsDead = false;
        switch (pCursorEvent->getType()) {
            case Event::CURSOR_MOTION:
                if (listener.m_pMotionCallback != Py_None) {
                    py::call<void>(listener.m_pMotionCallback, pEvent);
                }
                break;
            case Event::CURSOR_UP:
                if (listener.m_pUpCallback != Py_None) {
                    py::call<void>(listener.m_pUpCallback, pEvent);
                }
                break;
            default:
                AVG_ASSERT(false);
        }
        map<int, Listener>::iterator lastIt = it;
        ++it;
        if (m_bCurListenerIsDead) {
            m_ListenerMap.erase(lastIt);
            m_bCurListenerIsDead = false;
        }
    }
    m_bSendingEvents = false;
}