예제 #1
0
파일: node.cpp 프로젝트: aoighost/Equalizer
bool Node::_cmdFrameDataReady( co::Command& command )
{
    const NodeFrameDataReadyPacket* packet =
        command.get<NodeFrameDataReadyPacket>();

    LBLOG( LOG_ASSEMBLY ) << "received ready for " << packet->frameData
                          << std::endl;
    FrameDataPtr frameData = getFrameData( packet->frameData );
    LBASSERT( frameData );
    LBASSERT( !frameData->isReady() );
    frameData->setReady( packet );
    LBASSERT( frameData->isReady() );
    return true;
}
예제 #2
0
파일: node.cpp 프로젝트: VMML/Equalizer
bool Node::_cmdFrameDataTransmit( co::ICommand& cmd )
{
    co::ObjectICommand command( cmd );

    const co::ObjectVersion& frameDataVersion =
                                             command.read< co::ObjectVersion >();
    const PixelViewport& pvp = command.read< PixelViewport >();
    const Zoom& zoom = command.read< Zoom >();
    const uint32_t buffers = command.read< uint32_t >();
    const uint32_t frameNumber = command.read< uint32_t >();
    const bool useAlpha = command.read< bool >();
    const uint8_t* data = reinterpret_cast< const uint8_t* >(
                command.getRemainingBuffer( command.getRemainingBufferSize( )));

    LBLOG( LOG_ASSEMBLY )
        << "received image data for " << frameDataVersion << ", buffers "
        << buffers << " pvp " << pvp << std::endl;

    LBASSERT( pvp.isValid( ));

    FrameDataPtr frameData = getFrameData( frameDataVersion );
    LBASSERT( !frameData->isReady() );

    NodeStatistics event( Statistic::NODE_FRAME_DECOMPRESS, this,
                          frameNumber );

    // Note on the const_cast: since the PixelData structure stores non-const
    // pointers, we have to go non-const at some point, even though we do not
    // modify the data.
    LBCHECK( frameData->addImage( frameDataVersion, pvp, zoom, buffers,
                                  useAlpha, const_cast< uint8_t* >( data )));
    return true;
}
예제 #3
0
파일: node.cpp 프로젝트: VMML/Equalizer
bool Node::_cmdFrameDataReady( co::ICommand& cmd )
{
    co::ObjectICommand command( cmd );

    const co::ObjectVersion& frameDataVersion =
                                            command.read< co::ObjectVersion >();
    const fabric::FrameData& data = command.read< fabric::FrameData >();

    LBLOG( LOG_ASSEMBLY ) << "received ready for " << frameDataVersion
                          << std::endl;
    FrameDataPtr frameData = getFrameData( frameDataVersion );
    LBASSERT( frameData );
    LBASSERT( !frameData->isReady() );
    frameData->setReady( frameDataVersion, data );
    LBASSERT( frameData->isReady() );
    return true;
}
예제 #4
0
파일: node.cpp 프로젝트: aoighost/Equalizer
bool Node::_cmdFrameDataTransmit( co::Command& command )
{
    const NodeFrameDataTransmitPacket* packet =
        command.get<NodeFrameDataTransmitPacket>();

    LBLOG( LOG_ASSEMBLY )
        << "received image data for " << packet->frameData << ", buffers "
        << packet->buffers << " pvp " << packet->pvp << std::endl;

    LBASSERT( packet->pvp.isValid( ));

    FrameDataPtr frameData = getFrameData( packet->frameData );
    LBASSERT( !frameData->isReady() );

    NodeStatistics event( Statistic::NODE_FRAME_DECOMPRESS, this,
                          packet->frameNumber );
    LBCHECK( frameData->addImage( packet ));
    return true;
}