summaryrefslogtreecommitdiff
path: root/src/dev/arm/hdlcd.cc
diff options
context:
space:
mode:
authorGiacomo Travaglini <giacomo.travaglini@arm.com>2017-09-28 11:50:07 +0100
committerGiacomo Travaglini <giacomo.travaglini@arm.com>2017-10-31 11:17:29 +0000
commitfd16487b71e7b4e0c2df71d77bd2da947fdee2e9 (patch)
treeec71f5476386237b3d3e68366a03df724383de0d /src/dev/arm/hdlcd.cc
parentc4d1ae831f66e5a4ef237ed2c44893e7d0a6b5c4 (diff)
downloadgem5-fd16487b71e7b4e0c2df71d77bd2da947fdee2e9.tar.xz
dev: Using Configurable image writer in HDLcd
The fixed image writer (which was dumping .bmp images only) has been replaced by the configurable one in HDLcd device. Default format is Auto, which gives gem5 the freedom to choose the format it prefers. Change-Id: I0643266556bb10b43cdebd628f6daa2cd5e105dd Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/5183 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Diffstat (limited to 'src/dev/arm/hdlcd.cc')
-rw-r--r--src/dev/arm/hdlcd.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/dev/arm/hdlcd.cc b/src/dev/arm/hdlcd.cc
index 98f2a3d44..20dc7d44e 100644
--- a/src/dev/arm/hdlcd.cc
+++ b/src/dev/arm/hdlcd.cc
@@ -47,6 +47,7 @@
#include "debug/HDLcd.hh"
#include "dev/arm/amba_device.hh"
#include "dev/arm/base_gic.hh"
+#include "enums/ImageFormat.hh"
#include "mem/packet.hh"
#include "mem/packet_access.hh"
#include "params/HDLcd.hh"
@@ -85,11 +86,13 @@ HDLcd::HDLcd(const HDLcdParams *p)
virtRefreshEvent([this]{ virtRefresh(); }, name()),
// Other
- bmp(&pixelPump.fb), pic(NULL), conv(PixelConverter::rgba8888_le),
+ imgFormat(p->frame_format), pic(NULL), conv(PixelConverter::rgba8888_le),
pixelPump(*this, *p->pxl_clk, p->pixel_chunk)
{
if (vnc)
vnc->setFrameBuffer(&pixelPump.fb);
+
+ imgWriter = createImgWriter(imgFormat, &pixelPump.fb);
}
HDLcd::~HDLcd()
@@ -572,13 +575,14 @@ HDLcd::pxlFrameDone()
if (enableCapture) {
if (!pic) {
pic = simout.create(
- csprintf("%s.framebuffer.bmp", sys->name()),
+ csprintf("%s.framebuffer.%s",
+ sys->name(), imgWriter->getImgExtension()),
true);
}
assert(pic);
pic->stream()->seekp(0);
- bmp.write(*pic->stream());
+ imgWriter->write(*pic->stream());
}
}