summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: cdab6fa)
raw | patch | inline | side by side (parent: cdab6fa)
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | |
Fri, 12 Aug 2016 08:42:19 +0000 (11:42 +0300) | ||
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | |
Fri, 12 Aug 2016 08:43:07 +0000 (11:43 +0300) |
Add size and offset params to ExtCPUFramebuffer, so that we can fix
fbtestpat's test pattern size on larger virtual fbdevs.
fbtestpat's test pattern size on larger virtual fbdevs.
kms++util/inc/kms++util/extcpuframebuffer.h | patch | blob | history | |
kms++util/src/extcpuframebuffer.cpp | patch | blob | history | |
utils/fbtestpat.cpp | patch | blob | history |
diff --git a/kms++util/inc/kms++util/extcpuframebuffer.h b/kms++util/inc/kms++util/extcpuframebuffer.h
index 5d3be7414ef8351f72ae0143ef6c84528ed47f40..3652ec403ecd784ce1a71afaac70cb58f5701a77 100644 (file)
{
public:
ExtCPUFramebuffer(uint32_t width, uint32_t height, PixelFormat format,
- uint8_t* buffer, uint32_t pitch);
+ uint8_t* buffer, uint32_t size, uint32_t pitch, uint32_t offset);
ExtCPUFramebuffer(uint32_t width, uint32_t height, PixelFormat format,
- uint8_t* buffers[4], uint32_t pitches[4]);
+ uint8_t* buffers[4], uint32_t sizes[4], uint32_t pitches[4], uint32_t offsets[4]);
virtual ~ExtCPUFramebuffer();
uint32_t width() const { return m_width; }
uint32_t stride(unsigned plane) const { return m_planes[plane].stride; }
uint32_t size(unsigned plane) const { return m_planes[plane].size; }
- uint32_t offset(unsigned plane) const { return 0; }
+ uint32_t offset(unsigned plane) const { return m_planes[plane].offset; }
uint8_t* map(unsigned plane) { return m_planes[plane].map; }
private:
struct FramebufferPlane {
uint32_t size;
uint32_t stride;
+ uint32_t offset;
uint8_t *map;
};
index 232c778ae74cda8593457a2c5808cee1ed964887..feb3addd091f7d883e2e3be1fff6fd25fdf6d920 100644 (file)
{
ExtCPUFramebuffer::ExtCPUFramebuffer(uint32_t width, uint32_t height, PixelFormat format,
- uint8_t* buffer, uint32_t pitch)
+ uint8_t* buffer, uint32_t size, uint32_t pitch, uint32_t offset)
: m_width(width), m_height(height), m_format(format)
{
const PixelFormatInfo& format_info = get_pixel_format_info(m_format);
@@ -16,16 +16,16 @@ ExtCPUFramebuffer::ExtCPUFramebuffer(uint32_t width, uint32_t height, PixelForma
ASSERT(m_num_planes == 1);
- const PixelFormatPlaneInfo& pi = format_info.planes[0];
FramebufferPlane& plane = m_planes[0];
plane.stride = pitch;
- plane.size = plane.stride * height / pi.ysub;
+ plane.size = size;
+ plane.offset = offset;
plane.map = buffer;
}
ExtCPUFramebuffer::ExtCPUFramebuffer(uint32_t width, uint32_t height, PixelFormat format,
- uint8_t* buffers[4], uint32_t pitches[4])
+ uint8_t* buffers[4], uint32_t sizes[4], uint32_t pitches[4], uint32_t offsets[4])
: m_width(width), m_height(height), m_format(format)
{
const PixelFormatInfo& format_info = get_pixel_format_info(m_format);
@@ -33,11 +33,11 @@ ExtCPUFramebuffer::ExtCPUFramebuffer(uint32_t width, uint32_t height, PixelForma
m_num_planes = format_info.num_planes;
for (unsigned i = 0; i < format_info.num_planes; ++i) {
- const PixelFormatPlaneInfo& pi = format_info.planes[i];
FramebufferPlane& plane = m_planes[i];
plane.stride = pitches[i];
- plane.size = plane.stride * height / pi.ysub;
+ plane.size = sizes[i];
+ plane.offset = offsets[i];
plane.map = buffers[i];
}
}
diff --git a/utils/fbtestpat.cpp b/utils/fbtestpat.cpp
index 6216c04c933152eea746761a979e7342a5dd540e..1c9a5f1a297119a4747178e9310291df7113aa33 100644 (file)
--- a/utils/fbtestpat.cpp
+++ b/utils/fbtestpat.cpp
FAIL_IF(ptr == MAP_FAILED, "mmap failed");
- ExtCPUFramebuffer buf(var.xres, var.yres_virtual, PixelFormat::XRGB8888, ptr, fix.line_length);
+ ExtCPUFramebuffer buf(var.xres, var.yres, PixelFormat::XRGB8888,
+ ptr, var.yres_virtual * fix.line_length, fix.line_length, 0);
printf("%s: res %dx%d, virtual %dx%d, line_len %d\n",
fbdev,