Пример #1
0
void TextureConverterDialog::SetupTexturePreview()
{
    srcOffsetPrev = Vector2(0, 0);
    dstOffsetPrev = Vector2(0, 0);

    Texture *srcTexture = NULL;
    Texture *dstTexture = NULL;
    
    Texture *workingTexture = GetTextureForIndex(selectedItem);
    String workingTexturePath = GetWorkingTexturePath(workingTexture->relativePathname);

    bool isEnabled = Image::IsAlphaPremultiplicationEnabled();
    bool isMipmaps = Texture::IsMipmapGenerationEnabled();

    Image::EnableAlphaPremultiplication(false);
    Texture::DisableMipmapGeneration();   

    if(FileSystem::GetExtension(workingTexturePath) == ".png")
    {
        srcTexture = CreateFromImage(workingTexturePath);
        
        String dstPath = FileSystem::ReplaceExtension(workingTexturePath, ".pvr.png");
        dstTexture = CreateFromImage(dstPath);
    }
    else 
    {
        String srcPath = FileSystem::ReplaceExtension(workingTexturePath, ".png");
        srcTexture = CreateFromImage(srcPath);
        
        String dstPath = FileSystem::ReplaceExtension(workingTexturePath, ".pvr.png");
        dstTexture = CreateFromImage(dstPath);
    }
    
    if(srcTexture)
    {
        srcTexture->GeneratePixelesation();
    }
    
    if(dstTexture)
    {
        dstTexture->GeneratePixelesation();
    }
    
    if(isMipmaps)
    {
        Texture::EnableMipmapGeneration();
    }
    Image::EnableAlphaPremultiplication(isEnabled);
    
    
    SetupZoomedPreview(srcTexture, srcPreview, srcZoomPreview);
    SetupZoomedPreview(dstTexture, dstPreview, dstZoomPreview);
    
    SafeRelease(srcTexture);
    SafeRelease(dstTexture);
}
void CommandSetVisibilityArea::ApplyImage(DAVA::Image *image)
{
	Sprite* visibilityToolSprite = visibilityToolProxy->GetSprite();

	Texture* texture = Texture::CreateFromData(image->GetPixelFormat(), image->GetData(),
											   image->GetWidth(), image->GetHeight(), false);
	texture->GeneratePixelesation();
	Sprite* sprite = Sprite::CreateFromTexture(texture, 0, 0, image->GetWidth(), image->GetHeight());

	RenderManager::Instance()->SetRenderTarget(visibilityToolSprite);
	RenderManager::Instance()->ClipPush();
	RenderManager::Instance()->ClipRect(updatedRect);

	RenderManager::Instance()->ClearWithColor(0.f, 0.f, 0.f, 0.f);
	sprite->SetPosition(updatedRect.x, updatedRect.y);
	sprite->Draw();

	RenderManager::Instance()->ClipPop();
	RenderManager::Instance()->RestoreRenderTarget();

	visibilityToolProxy->UpdateRect(updatedRect);

	SafeRelease(texture);
	SafeRelease(sprite);
}