( dataPath + DB_NAME_COOKIES ).c_str(),
( dataPath + DB_NAME_CACHE ).c_str() );
}
- mWebContainer = LWE::WebContainer::Create(
- mOutputBuffer, mOutputWidth, mOutputHeight,
- mOutputStride, 1.0, "", locale.data(), timezoneId.data() );
+ mWebContainer = LWE::WebContainer::Create( mOutputWidth, mOutputHeight, 1.0, "", locale.data(), timezoneId.data() );
+
+ mWebContainer->RegisterPreRenderingHandler(
+ [this]() -> LWE::WebContainer::RenderInfo {
+
+ if(mOutputBuffer == NULL) {
+ mOutputBuffer = (uint8_t*)malloc( mOutputWidth * mOutputHeight * sizeof(uint32_t));
+ mOutputStride = mOutputWidth * sizeof(uint32_t);
+ }
+
+ ::LWE::WebContainer::RenderInfo result;
+ result.updatedBufferAddress = mOutputBuffer;
+ result.bufferStride = mOutputStride;
+
+ return result;
+ }
+ );
+
mWebContainer->RegisterOnRenderedHandler(
[ this ]( LWE::WebContainer* container, const LWE::WebContainer::RenderResult& renderResult )
{
auto oldOutputBuffer = mOutputBuffer;
mOutputBuffer = ( uint8_t* )malloc( mOutputWidth * mOutputHeight * sizeof( uint32_t ) );
mOutputStride = mOutputWidth * sizeof( uint32_t );
- mWebContainer->UpdateBuffer( mOutputBuffer, mOutputWidth, mOutputHeight, mOutputStride );
+ mWebContainer->ResizeTo( mOutputWidth, mOutputHeight );
if( oldOutputBuffer ) {
free(oldOutputBuffer);