void Image::setCanvas(OffscreenCanvasPtr pCanvas) { assertValid(); if (m_Source == SCENE && pCanvas == m_pCanvas) { return; } changeSource(SCENE); m_pCanvas = pCanvas; if (m_State == GPU) { m_pSurface->create(B8G8R8X8, m_pCanvas->getTex(), MCTexturePtr(), MCTexturePtr(), MCTexturePtr(), true); } assertValid(); }
void RasterNode::checkReload() { string sLastMaskFilename = m_sMaskFilename; string sMaskFilename = m_sMaskHref; initFilename(sMaskFilename); if (sLastMaskFilename != sMaskFilename) { m_sMaskFilename = sMaskFilename; try { if (m_sMaskFilename != "") { AVG_TRACE(Logger::category::MEMORY, Logger::severity::INFO, "Loading " << m_sMaskFilename); m_pMaskBmp = loadBitmap(m_sMaskFilename, I8); setMaskCoords(); } } catch (Exception & ex) { if (ex.getCode() == AVG_ERR_VIDEO_GENERAL) { throw; } m_sMaskFilename = ""; logFileNotFoundWarning(ex.getStr()); } if (m_sMaskFilename == "") { m_pMaskBmp = BitmapPtr(); getSurface()->setMask(MCTexturePtr()); } if (getState() == Node::NS_CANRENDER && m_pMaskBmp) { downloadMask(); } } else { setMaskCoords(); } }
void Image::moveToGPU() { assertValid(); if (m_State == CPU) { switch (m_Source) { case FILE: case BITMAP: setupSurface(); break; case SCENE: m_pSurface->create(B8G8R8X8, m_pCanvas->getTex(), MCTexturePtr(), MCTexturePtr(), MCTexturePtr(), true); break; case NONE: break; default: AVG_ASSERT(false); } m_State = GPU; } assertValid(); }