Kaydet (Commit) 58fd5a6d authored tarafından Zolnai Tamás's avatar Zolnai Tamás

glTF: More rendering related error handling

If any error occurs related to glTF rendering, a question
mark is displayed at the place of the OpenGL window
(Question mark is a general concept of media objects).

Change-Id: Id7df5a47a4dd6832e640b3a7cb3c7712ebfb4408
üst f4a8d7cd
...@@ -38,7 +38,12 @@ uno::Reference< css::graphic::XGraphic > SAL_CALL OGLFrameGrabber::grabFrame( do ...@@ -38,7 +38,12 @@ uno::Reference< css::graphic::XGraphic > SAL_CALL OGLFrameGrabber::grabFrame( do
{ {
boost::scoped_array<sal_uInt8> pBuffer(new sal_uInt8[m_rHandle.viewport.width * m_rHandle.viewport.height * 4]); boost::scoped_array<sal_uInt8> pBuffer(new sal_uInt8[m_rHandle.viewport.width * m_rHandle.viewport.height * 4]);
glTFHandle* pHandle = &m_rHandle; glTFHandle* pHandle = &m_rHandle;
gltf_renderer_get_bitmap(&pHandle, 1, (char*)pBuffer.get(), GL_BGRA); int nRet = gltf_renderer_get_bitmap(&pHandle, 1, (char*)pBuffer.get(), GL_BGRA);
if( nRet != 0 )
{
SAL_WARN("avmedia.opengl", "Error occured while rendering to bitmap! Error code: " << nRet);
return uno::Reference< css::graphic::XGraphic >();
}
BitmapEx aBitmap = OpenGLHelper::ConvertBGRABufferToBitmapEx(pBuffer.get(), m_rHandle.viewport.width, m_rHandle.viewport.height); BitmapEx aBitmap = OpenGLHelper::ConvertBGRABufferToBitmapEx(pBuffer.get(), m_rHandle.viewport.width, m_rHandle.viewport.height);
return Graphic( aBitmap ).GetXGraphic(); return Graphic( aBitmap ).GetXGraphic();
} }
......
...@@ -33,7 +33,12 @@ OGLWindow::~OGLWindow() ...@@ -33,7 +33,12 @@ OGLWindow::~OGLWindow()
void SAL_CALL OGLWindow::update() throw (css::uno::RuntimeException, std::exception) void SAL_CALL OGLWindow::update() throw (css::uno::RuntimeException, std::exception)
{ {
m_rContext.makeCurrent(); m_rContext.makeCurrent();
gltf_prepare_renderer(&m_rHandle); int nRet = gltf_prepare_renderer(&m_rHandle);
if( nRet != 0 )
{
SAL_WARN("avmedia.opengl", "Error occured while preparing for rendering! Error code: " << nRet);
return;
}
gltf_renderer(&m_rHandle); gltf_renderer(&m_rHandle);
gltf_complete_renderer(&m_rHandle); gltf_complete_renderer(&m_rHandle);
m_rContext.swapBuffers(); m_rContext.swapBuffers();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment