void RasterNode::setEffect(FXNodePtr pFXNode) { if (m_pFXNode && m_pFXNode != pFXNode) { m_pFXNode->disconnect(); } if (m_pFXNode && !pFXNode) { m_pFBO = MCFBOPtr(); } m_pFXNode = pFXNode; if (getState() == NS_CANRENDER) { setupFX(); } }
void RasterNode::newSurface() { if (m_pSurface->isCreated()) { m_bHasStdVertices = !(m_pSurface->getPixelFormat() == A8); if (m_bHasStdVertices) { m_pSubVA = &(getCanvas()->getStdSubVA()); } else { m_pSubVA = new SubVertexArray(); } calcVertexGrid(m_TileVertices); calcTexCoords(); setupFX(); } }
void RasterNode::connectDisplay() { AreaNode::connectDisplay(); if (m_MaxTileSize != IntPoint(-1, -1)) { m_TileSize = m_MaxTileSize; } newSurface(); setBlendModeStr(m_sBlendMode); if (m_pMaskBmp) { downloadMask(); setMaskCoords(); } m_pSurface->setColorParams(m_Gamma, m_Intensity, m_Contrast); setupFX(); }
void CameraNode::open() { m_pCamera->startCapture(); setViewport(-32767, -32767, -32767, -32767); PixelFormat pf = getPixelFormat(); IntPoint size = getMediaSize(); bool bMipmap = getMaterial().getUseMipmaps(); m_pTex = GLTexturePtr(new GLTexture(size, pf, bMipmap)); m_pTex->enableStreaming(); getSurface()->create(pf, m_pTex); BitmapPtr pBmp = m_pTex->lockStreamingBmp(); if (pf == B8G8R8X8 || pf == B8G8R8A8) { FilterFill<Pixel32> Filter(Pixel32(0,0,0,255)); Filter.applyInPlace(pBmp); } else if (pf == I8) { FilterFill<Pixel8> Filter(0); Filter.applyInPlace(pBmp); } m_pTex->unlockStreamingBmp(true); setupFX(true); }