| 1514 | } |
| 1515 | |
| 1516 | ImagePtr |
| 1517 | EffectInstance::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 | |
| 1543 | ImagePtr |
| 1544 | EffectInstance::convertRAMImageToOpenGLTexture(const ImagePtr& image) |
nothing calls this directly
no test coverage detected