ovis: fix loading textures from non-consecutive memory

pull/2577/head
Pavel Rojtberg 5 years ago
parent 522a062cad
commit 9e26865b5b
  1. 15
      modules/ovis/src/ovis.cpp

@ -59,18 +59,15 @@ void _createTexture(const String& name, Mat image)
TextureManager& texMgr = TextureManager::getSingleton(); TextureManager& texMgr = TextureManager::getSingleton();
TexturePtr tex = texMgr.getByName(name, RESOURCEGROUP_NAME); TexturePtr tex = texMgr.getByName(name, RESOURCEGROUP_NAME);
Image im; if(!tex)
im.loadDynamicImage(image.ptr(), image.cols, image.rows, 1, format);
if (tex)
{ {
// update tex = texMgr.createManual(name, RESOURCEGROUP_NAME, TEX_TYPE_2D, image.cols, image.rows,
PixelBox box = im.getPixelBox(); MIP_DEFAULT, format);
tex->getBuffer()->blitFromMemory(box, box);
return;
} }
texMgr.loadImage(name, RESOURCEGROUP_NAME, im); PixelBox box(image.cols, image.rows, 1, format, image.ptr());
box.rowPitch = image.step[0] / PixelUtil::getNumElemBytes(format);
tex->getBuffer()->blitFromMemory(box);
} }
static void _convertRT(InputArray rot, InputArray tvec, Quaternion& q, Vector3& t, bool invert = false) static void _convertRT(InputArray rot, InputArray tvec, Quaternion& q, Vector3& t, bool invert = false)

Loading…
Cancel
Save