MCPcopy Create free account
hub / github.com/NatronGitHub/Natron / convertOpenGLTextureToCachedRAMImage

Method convertOpenGLTextureToCachedRAMImage

Engine/EffectInstance.cpp:1516–1541  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1514}
1515
1516ImagePtr
1517EffectInstance::convertOpenGLTextureToCachedRAMImage(const ImagePtr& image)
1518{
1519 assert(image->getStorageMode() == eStorageModeGLTex);
1520
1521 ImageParamsPtr params = std::make_shared<ImageParams>( *image->getParams() );
1522 CacheEntryStorageInfo& info = params->getStorageInfo();
1523 info.mode = eStorageModeRAM;
1524
1525 ImagePtr ramImage;
1526 getOrCreateFromCacheInternal(image->getKey(), params, true /*useCache*/, &ramImage);
1527 if (!ramImage) {
1528 return ramImage;
1529 }
1530
1531 OSGLContextPtr context = getThreadLocalOpenGLContext();
1532 assert(context);
1533 if (!context) {
1534 throw std::runtime_error("No OpenGL context attached");
1535 }
1536
1537 ramImage->pasteFrom(*image, image->getBounds(), false, context);
1538 ramImage->markForRendered(image->getBounds());
1539
1540 return ramImage;
1541}
1542
1543ImagePtr
1544EffectInstance::convertRAMImageToOpenGLTexture(const ImagePtr& image)

Callers

nothing calls this directly

Calls 6

pasteFromMethod · 0.80
getStorageModeMethod · 0.45
getParamsMethod · 0.45
getBoundsMethod · 0.45
markForRenderedMethod · 0.45

Tested by

no test coverage detected