void OGLSurface::destroy() { m_pTextures[0] = GLTexturePtr(); m_pTextures[1] = GLTexturePtr(); m_pTextures[2] = GLTexturePtr(); m_pTextures[3] = GLTexturePtr(); }
void GPUFilter::setDimensions(const IntPoint& srcSize, const IntRect& destRect, unsigned texMode) { bool bProjectionChanged = false; if (destRect != m_DestRect) { m_pFBOs.clear(); for (unsigned i=0; i<m_NumTextures; ++i) { FBOPtr pFBO = FBOPtr(new FBO(destRect.size(), m_PFDest, 1, 1, false, m_bMipmap)); m_pFBOs.push_back(pFBO); } m_DestRect = destRect; bProjectionChanged = true; } if (m_bStandalone && srcSize != m_SrcSize) { m_pSrcTex = GLTexturePtr(new GLTexture(srcSize, m_PFSrc, false, texMode, texMode)); m_pSrcPBO = PBOPtr(new PBO(srcSize, m_PFSrc, GL_STREAM_DRAW)); bProjectionChanged = true; } m_SrcSize = srcSize; if (bProjectionChanged) { m_pProjection = ImagingProjectionPtr(new ImagingProjection(srcSize, destRect)); } }
void StandardShader::generateWhiteTexture() { BitmapPtr pBmp(new Bitmap(glm::vec2(1,1), I8)); *(pBmp->getPixels()) = 255; m_pWhiteTex = GLTexturePtr(new GLTexture(IntPoint(1,1), I8)); m_pWhiteTex->moveBmpToTexture(pBmp); }
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); }