Merge "minui: Use android::base::unique_fd in MinuiBackendFbdev."
am: f2a9152408
Change-Id: Ib53ef3c08f14f815769cd4cb72ba0303183abc1f
This commit is contained in:
commit
f0cf952082
2 changed files with 9 additions and 14 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
#include <android-base/unique_fd.h>
|
||||
|
||||
#include "graphics.h"
|
||||
#include "minui/minui.h"
|
||||
|
||||
|
@ -48,7 +50,7 @@ class GRSurfaceFbdev : public GRSurface {
|
|||
class MinuiBackendFbdev : public MinuiBackend {
|
||||
public:
|
||||
MinuiBackendFbdev() = default;
|
||||
~MinuiBackendFbdev() override;
|
||||
~MinuiBackendFbdev() override = default;
|
||||
|
||||
GRSurface* Init() override;
|
||||
GRSurface* Flip() override;
|
||||
|
@ -64,5 +66,5 @@ class MinuiBackendFbdev : public MinuiBackend {
|
|||
std::vector<uint8_t> memory_buffer;
|
||||
size_t displayed_buffer{ 0 };
|
||||
fb_var_screeninfo vi;
|
||||
int fb_fd{ -1 };
|
||||
android::base::unique_fd fb_fd;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue