Esempio n. 1
0
void Image::setFilename(const std::string& sFilename, TextureCompression comp)
{
    assertValid();
    AVG_TRACE(Logger::category::MEMORY, Logger::severity::INFO, "Loading " << sFilename);
    BitmapPtr pBmp = loadBitmap(sFilename);
    if (comp == TEXTURECOMPRESSION_B5G6R5 && pBmp->hasAlpha()) {
        throw Exception(AVG_ERR_UNSUPPORTED, 
                "B5G6R5-compressed textures with an alpha channel are not supported.");
    }
    changeSource(FILE);
    m_pBmp = pBmp;

    m_sFilename = sFilename;

    switch (comp) {
        case TEXTURECOMPRESSION_B5G6R5:
            m_pBmp = BitmapPtr(new Bitmap(pBmp->getSize(), B5G6R5, sFilename));
            if (!BitmapLoader::get()->isBlueFirst()) {
                FilterFlipRGB().applyInPlace(pBmp);
            }
            m_pBmp->copyPixels(*pBmp);
            break;
        case TEXTURECOMPRESSION_NONE:
            break;
        default:
            assert(false);
    }

    if (m_State == GPU) {
        m_pSurface->destroy();
        setupSurface();
    }
    assertValid();
}
Esempio n. 2
0
SkData* setupAndDrawToCanvasReturnPng(SkDebugCanvas* debugCanvas, int n) {
    GrContextOptions grContextOpts;
    SkAutoTDelete<GrContextFactory> factory(new GrContextFactory(grContextOpts));
    SkAutoTUnref<SkSurface> surface(setupSurface(factory.get()));

    SkASSERT(debugCanvas);
    SkCanvas* canvas = surface->getCanvas();
    debugCanvas->drawTo(canvas, n);
    return writeCanvasToPng(canvas);
}
Esempio n. 3
0
CVideoSurface *CSurfaceFaderBase::fade(CScreenManager *screenManager, CVideoSurface *srcSurface) {
	if (_index == -1 || _index >= _count)
		return srcSurface;

	if (!_count && !setupSurface(screenManager, srcSurface))
		return nullptr;

	srcSurface->lock();
	_videoSurface->lock();
	CSurfaceArea srCSurfaceArea(srcSurface);
	CSurfaceArea destSurfaceObj(_videoSurface);

	// Copy the surface with fading
	copySurface(srCSurfaceArea, destSurfaceObj);

	srcSurface->unlock();
	_videoSurface->unlock();
	
	++_index;
	return _videoSurface;
}
Esempio n. 4
0
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();
}