mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 13:51:41 +00:00
Bug 757347; checking the format of images. r=roc
This commit is contained in:
parent
65d2f251d1
commit
0e6b01bba2
@ -910,6 +910,9 @@ BasicImageLayer::GetAndPaintCurrentImage(gfxContext* aContext,
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
NS_ASSERTION(surface->GetContentType() != gfxASurface::CONTENT_ALPHA,
|
||||
"Image layer has alpha image");
|
||||
|
||||
nsRefPtr<gfxPattern> pat = new gfxPattern(surface);
|
||||
if (!pat) {
|
||||
return nsnull;
|
||||
|
@ -191,6 +191,10 @@ ImageLayerD3D10::RenderLayer()
|
||||
if (image->GetFormat() == Image::CAIRO_SURFACE || image->GetFormat() == Image::REMOTE_IMAGE_BITMAP ||
|
||||
image->GetFormat() == Image::REMOTE_IMAGE_DXGI_TEXTURE)
|
||||
{
|
||||
NS_ASSERTION(image->GetFormat() != Image::CAIRO_SURFACE ||
|
||||
!static_cast<CairoImage*>(image)->mSurface ||
|
||||
static_cast<CairoImage*>(image)->mSurface->GetContentType() != gfxASurface::CONTENT_ALPHA,
|
||||
"Image layer has alpha image");
|
||||
bool hasAlpha = false;
|
||||
|
||||
nsRefPtr<ID3D10ShaderResourceView> srView = GetImageSRView(image, hasAlpha, getter_AddRefs(keyedMutex));
|
||||
|
@ -372,6 +372,11 @@ ImageLayerD3D9::RenderLayer()
|
||||
if (image->GetFormat() == Image::CAIRO_SURFACE ||
|
||||
image->GetFormat() == Image::REMOTE_IMAGE_BITMAP)
|
||||
{
|
||||
NS_ASSERTION(image->GetFormat() != Image::CAIRO_SURFACE ||
|
||||
!static_cast<CairoImage*>(image)->mSurface ||
|
||||
static_cast<CairoImage*>(image)->mSurface->GetContentType() != gfxASurface::CONTENT_ALPHA,
|
||||
"Image layer has alpha image");
|
||||
|
||||
bool hasAlpha = false;
|
||||
nsRefPtr<IDirect3DTexture9> texture = GetTexture(image, hasAlpha);
|
||||
|
||||
|
@ -271,6 +271,9 @@ ImageLayerOGL::RenderLayer(int,
|
||||
return;
|
||||
}
|
||||
|
||||
NS_ASSERTION(cairoImage->mSurface->GetContentType() != gfxASurface::CONTENT_ALPHA,
|
||||
"Image layer has alpha image");
|
||||
|
||||
CairoOGLBackendData *data =
|
||||
static_cast<CairoOGLBackendData*>(cairoImage->GetBackendData(LayerManager::LAYERS_OPENGL));
|
||||
|
||||
@ -594,6 +597,9 @@ ImageLayerOGL::LoadAsTexture(GLuint aTextureUnit, gfxIntSize* aSize)
|
||||
cairoImage->GetBackendData(LayerManager::LAYERS_OPENGL));
|
||||
|
||||
if (!data) {
|
||||
NS_ASSERTION(cairoImage->mSurface->GetContentType() == gfxASurface::CONTENT_ALPHA,
|
||||
"OpenGL mask layers must be backed by alpha surfaces");
|
||||
|
||||
// allocate a new texture and save the details in the backend data
|
||||
data = new CairoOGLBackendData;
|
||||
data->mTextureSize = CalculatePOTSize(cairoImage->mSize, gl());
|
||||
@ -775,6 +781,9 @@ ShadowImageLayerOGL::RenderLayer(int aPreviousFrameBuffer,
|
||||
mOGLManager->MakeCurrent();
|
||||
|
||||
if (mTexImage) {
|
||||
NS_ASSERTION(mTexImage->GetContentType() != gfxASurface::CONTENT_ALPHA,
|
||||
"Image layer has alpha image");
|
||||
|
||||
ShaderProgramOGL *colorProgram =
|
||||
mOGLManager->GetProgram(mTexImage->GetShaderProgramType(), GetMaskLayer());
|
||||
|
||||
@ -845,6 +854,9 @@ ShadowImageLayerOGL::LoadAsTexture(GLuint aTextureUnit, gfxIntSize* aSize)
|
||||
|
||||
mTexImage->BindTextureAndApplyFilter(aTextureUnit);
|
||||
|
||||
NS_ASSERTION(mTexImage->GetContentType() == gfxASurface::CONTENT_ALPHA,
|
||||
"OpenGL mask layers must be backed by alpha surfaces");
|
||||
|
||||
// We're assuming that the gl backend won't cheat and use NPOT
|
||||
// textures when glContext says it can't (which seems to happen
|
||||
// on a mac when you force POT textures)
|
||||
|
Loading…
Reference in New Issue
Block a user