minui: Use android::base::unique_fd in MinuiBackendFbdev.
Test: mmma -j bootable/recovery Test: `Run graphics test` on taimen. Change-Id: I5b25cafbd0107943606a87f0619242cf950174ac
This commit is contained in:
@@ -28,6 +28,8 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include <android-base/unique_fd.h>
|
||||
|
||||
#include "minui/minui.h"
|
||||
|
||||
std::unique_ptr<GRSurfaceFbdev> GRSurfaceFbdev::Create(int width, int height, int row_bytes,
|
||||
@@ -54,7 +56,7 @@ void MinuiBackendFbdev::SetDisplayedFramebuffer(size_t n) {
|
||||
}
|
||||
|
||||
GRSurface* MinuiBackendFbdev::Init() {
|
||||
int fd = open("/dev/graphics/fb0", O_RDWR);
|
||||
android::base::unique_fd fd(open("/dev/graphics/fb0", O_RDWR));
|
||||
if (fd == -1) {
|
||||
perror("cannot open fb0");
|
||||
return nullptr;
|
||||
@@ -63,13 +65,11 @@ GRSurface* MinuiBackendFbdev::Init() {
|
||||
fb_fix_screeninfo fi;
|
||||
if (ioctl(fd, FBIOGET_FSCREENINFO, &fi) < 0) {
|
||||
perror("failed to get fb0 info");
|
||||
close(fd);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (ioctl(fd, FBIOGET_VSCREENINFO, &vi) < 0) {
|
||||
perror("failed to get fb0 info");
|
||||
close(fd);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -96,7 +96,6 @@ GRSurface* MinuiBackendFbdev::Init() {
|
||||
void* bits = mmap(0, fi.smem_len, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
|
||||
if (bits == MAP_FAILED) {
|
||||
perror("failed to mmap framebuffer");
|
||||
close(fd);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -128,10 +127,10 @@ GRSurface* MinuiBackendFbdev::Init() {
|
||||
|
||||
gr_draw = gr_framebuffer[1].get();
|
||||
memset(gr_draw->buffer_, 0, gr_draw->height * gr_draw->row_bytes);
|
||||
fb_fd = fd;
|
||||
fb_fd = std::move(fd);
|
||||
SetDisplayedFramebuffer(0);
|
||||
|
||||
printf("framebuffer: %d (%d x %d)\n", fb_fd, gr_draw->width, gr_draw->height);
|
||||
printf("framebuffer: %d (%d x %d)\n", fb_fd.get(), gr_draw->width, gr_draw->height);
|
||||
|
||||
Blank(true);
|
||||
Blank(false);
|
||||
@@ -151,9 +150,3 @@ GRSurface* MinuiBackendFbdev::Flip() {
|
||||
}
|
||||
return gr_draw;
|
||||
}
|
||||
|
||||
MinuiBackendFbdev::~MinuiBackendFbdev() {
|
||||
if (fb_fd != -1) {
|
||||
close(fb_fd);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user