示例#1
0
void logError(const char *message, ...)
{
    va_list arguments;
    va_start(arguments, message);
    _logMessage(LOG_ERROR, message, arguments);
    va_end(arguments);
}
示例#2
0
void logWarn(const char *message, ...)
{
    va_list arguments;
    va_start(arguments, message);
    _logMessage(LOG_WARN, message, arguments);
    va_end(arguments);
}
示例#3
0
void logInfo(const char *message, ...)
{
    va_list arguments;
    va_start(arguments, message);
    _logMessage(LOG_INFO, message, arguments);
    va_end(arguments);
}
示例#4
0
void logDebug(const char *message, ...)
{
    va_list arguments;
    va_start(arguments, message);
    _logMessage(LOG_DEBUG, message, arguments);
    va_end(arguments);
}
//------------------------------------------------------------------------------
void OgreVideoTexture::_endCapture()
{
    cvReleaseCapture(&mCvCapture);
    mCurrentFrameIndex = 0;
    mCurrentVideoFrame = NULL;
    mCvCapture = NULL;
    
    _logMessage("video file" + mVideoFileName + "ended");
}
//------------------------------------------------------------------------------
void OgreVideoTexture::_init()
{
    _logMessage("init");
    

    _initCapture();
    _createTextureFromCapture(mCvCapture);

    // set first frame
    mCurrentVideoFrame = cvQueryFrame(mCvCapture);
    mCurrentFrameIndex++;

    _updateTextureFromImage(mCurrentVideoFrame);


    mTimeSinceLastUpdate.reset();

     
    _logMessage("init done");
}
//------------------------------------------------------------------------------
void OgreVideoTexture::_initCapture()
{
    
    mCvCapture = cvCreateFileCapture(mVideoFileName.c_str());
    mFrameCount = cvGetCaptureProperty(mCvCapture, CV_CAP_PROP_FRAME_COUNT);

    // skip first frame
    cvGrabFrame(mCvCapture);
    mCurrentFrameIndex++;

    _logMessage("openned " + mVideoFileName);
}
//------------------------------------------------------------------------------
void OgreVideoTexture::_updateTextureFromImage(const IplImage *_image)
{
    if (mIsLoggingEvents)
        mTimer.reset();
    
    // Get the pixel buffer
    Ogre::HardwarePixelBufferSharedPtr pixelBuffer = mVideoTexture->getBuffer();

    //_copyImagePerChannel(_image, pixelBuffer);
    //_copyImagePerLine(_image, pixelBuffer);
    _copyImagePerPixel(_image, pixelBuffer);

    
    if (mIsLoggingEvents)
    {        
        boost::format fmt("%1% (%2%) : %3% µs");
        
        fmt % "write to texture" 
            % mCurrentFrameIndex
            % mTimer.getMicroseconds();
        
        _logMessage(fmt.str());
    }
}