Backed out changeset a22ca1e05bb8
This commit is contained in:
@@ -39,7 +39,6 @@ static struct fb_var_screeninfo sVi;
|
||||
static size_t sActiveBuffer;
|
||||
typedef vector<nsRefPtr<gfxImageSurface> > BufferVector;
|
||||
BufferVector* sBuffers;
|
||||
static gfxIntSize *sScreenSize = nsnull;
|
||||
|
||||
BufferVector& Buffers() { return *sBuffers; }
|
||||
|
||||
@@ -58,7 +57,7 @@ SetGraphicsMode()
|
||||
}
|
||||
|
||||
bool
|
||||
Open()
|
||||
Open(nsIntSize* aScreenSize)
|
||||
{
|
||||
if (0 <= sFd)
|
||||
return true;
|
||||
@@ -99,32 +98,28 @@ Open()
|
||||
// hard-coded numbers here.
|
||||
gfxASurface::gfxImageFormat format = gfxASurface::ImageFormatRGB16_565;
|
||||
int bytesPerPixel = gfxASurface::BytePerPixelFromFormat(format);
|
||||
if (!sScreenSize) {
|
||||
sScreenSize = new gfxIntSize(sVi.xres, sVi.yres);
|
||||
}
|
||||
long stride = sScreenSize->width * bytesPerPixel;
|
||||
size_t numFrameBytes = stride * sScreenSize->height;
|
||||
gfxIntSize size(sVi.xres, sVi.yres);
|
||||
long stride = size.width * bytesPerPixel;
|
||||
size_t numFrameBytes = stride * size.height;
|
||||
|
||||
sBuffers = new BufferVector(2);
|
||||
unsigned char* data = static_cast<unsigned char*>(mem);
|
||||
for (size_t i = 0; i < 2; ++i, data += numFrameBytes) {
|
||||
memset(data, 0, numFrameBytes);
|
||||
Buffers()[i] = new gfxImageSurface(data, *sScreenSize, stride, format);
|
||||
Buffers()[i] = new gfxImageSurface(data, size, stride, format);
|
||||
}
|
||||
|
||||
// Clear the framebuffer to a known state.
|
||||
Present(nsIntRect());
|
||||
|
||||
*aScreenSize = size;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
GetSize(nsIntSize *aScreenSize) {
|
||||
// If the framebuffer has been opened, we should always have the size.
|
||||
if (0 <= sFd || sScreenSize) {
|
||||
*aScreenSize = *sScreenSize;
|
||||
if (0 <= sFd)
|
||||
return true;
|
||||
}
|
||||
|
||||
ScopedClose fd(open("/dev/graphics/fb0", O_RDWR));
|
||||
if (0 > fd.get()) {
|
||||
@@ -137,8 +132,7 @@ GetSize(nsIntSize *aScreenSize) {
|
||||
return false;
|
||||
}
|
||||
|
||||
sScreenSize = new gfxIntSize(sVi.xres, sVi.yres);
|
||||
*aScreenSize = *sScreenSize;
|
||||
*aScreenSize = gfxIntSize(sVi.xres, sVi.yres);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -151,8 +145,6 @@ Close()
|
||||
munmap(Buffers()[0]->Data(), sMappedSize);
|
||||
delete sBuffers;
|
||||
sBuffers = NULL;
|
||||
delete sScreenSize;
|
||||
sScreenSize = NULL;
|
||||
|
||||
close(sFd);
|
||||
sFd = -1;
|
||||
|
||||
Reference in New Issue
Block a user