[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 21/29] vmsvga: Use AND mask bpp parameter in SVGA_CM
From: |
Liran Alon |
Subject: |
[Qemu-devel] [PATCH 21/29] vmsvga: Use AND mask bpp parameter in SVGA_CMD_DEFINE_CURSOR |
Date: |
Thu, 9 Aug 2018 14:46:34 +0300 |
From: Leonid Shatz <address@hidden>
Prefer variable names of cursor structure from VMware SVGA DevKit.
In addition, make sure to use the AND mask bpp parameter in
SVGA_CMD_DEFINE_CURSOR.
Signed-off-by: Leonid Shatz <address@hidden>
Reviewed-by: Darren Kenny <address@hidden>
Signed-off-by: Liran Alon <address@hidden>
---
hw/display/vmware_vga.c | 26 +++++++++++++++-----------
1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c
index d79b3400452b..ef2c8bdbf5be 100644
--- a/hw/display/vmware_vga.c
+++ b/hw/display/vmware_vga.c
@@ -616,9 +616,10 @@ struct vmsvga_cursor_definition_s {
uint32_t width;
uint32_t height;
int id;
- uint32_t bpp;
int hot_x;
int hot_y;
+ uint32_t and_mask_bpp; // Value must be 1 or equal to BITS_PER_PIXEL
+ uint32_t xor_mask_bpp; // Value must be 1 or equal to BITS_PER_PIXEL
uint32_t and_mask[1024];
uint32_t xor_mask[4096];
};
@@ -636,7 +637,7 @@ static inline void vmsvga_cursor_define(struct
vmsvga_state_s *s,
qc = cursor_alloc(c->width, c->height);
qc->hot_x = c->hot_x;
qc->hot_y = c->hot_y;
- switch (c->bpp) {
+ switch (c->xor_mask_bpp) {
case 1:
cursor_set_mono(qc, 0xffffff, 0x000000, (void *)c->xor_mask,
1, (void *)c->and_mask);
@@ -659,7 +660,7 @@ static inline void vmsvga_cursor_define(struct
vmsvga_state_s *s,
break;
default:
fprintf(stderr, "%s: unhandled bpp %d, using fallback cursor\n",
- __func__, c->bpp);
+ __func__, c->xor_mask_bpp);
cursor_put(qc);
qc = cursor_builtin_left_ptr();
}
@@ -794,15 +795,18 @@ static void vmsvga_fifo_run(struct vmsvga_state_s *s)
cursor.hot_y = vmsvga_fifo_read(s);
cursor.width = x = vmsvga_fifo_read(s);
cursor.height = y = vmsvga_fifo_read(s);
- vmsvga_fifo_read(s);
- cursor.bpp = vmsvga_fifo_read(s);
+ cursor.and_mask_bpp = vmsvga_fifo_read(s);
+ cursor.xor_mask_bpp = vmsvga_fifo_read(s);
- args = SVGA_BITMAP_SIZE(x, y) + SVGA_PIXMAP_SIZE(x, y, cursor.bpp);
+ args = SVGA_PIXMAP_SIZE(x, y, cursor.and_mask_bpp) +
+ SVGA_PIXMAP_SIZE(x, y, cursor.xor_mask_bpp);
if (cursor.width > 256
|| cursor.height > 256
- || cursor.bpp > 32
- || SVGA_BITMAP_SIZE(x, y) > ARRAY_SIZE(cursor.and_mask)
- || SVGA_PIXMAP_SIZE(x, y, cursor.bpp)
+ || cursor.and_mask_bpp > 32
+ || cursor.xor_mask_bpp > 32
+ || SVGA_PIXMAP_SIZE(x, y, cursor.and_mask_bpp)
+ > ARRAY_SIZE(cursor.and_mask)
+ || SVGA_PIXMAP_SIZE(x, y, cursor.xor_mask_bpp)
> ARRAY_SIZE(cursor.xor_mask)) {
goto badcmd;
}
@@ -812,10 +816,10 @@ static void vmsvga_fifo_run(struct vmsvga_state_s *s)
goto rewind;
}
- for (args = 0; args < SVGA_BITMAP_SIZE(x, y); args++) {
+ for (args = 0; args < SVGA_PIXMAP_SIZE(x, y, cursor.and_mask_bpp);
args++) {
cursor.and_mask[args] = vmsvga_fifo_read_raw(s);
}
- for (args = 0; args < SVGA_PIXMAP_SIZE(x, y, cursor.bpp); args++) {
+ for (args = 0; args < SVGA_PIXMAP_SIZE(x, y, cursor.xor_mask_bpp);
args++) {
cursor.xor_mask[args] = vmsvga_fifo_read_raw(s);
}
#ifdef HW_MOUSE_ACCEL
--
1.9.1
- [Qemu-devel] [PATCH 11/29] vmsvga: Remove handler of SVGA_CMD_INVALID_CMD, (continued)
- [Qemu-devel] [PATCH 11/29] vmsvga: Remove handler of SVGA_CMD_INVALID_CMD, Liran Alon, 2018/08/09
- [Qemu-devel] [PATCH 12/29] vmsvga: Add definitions of FIFO registers and report their number, Liran Alon, 2018/08/09
- [Qemu-devel] [PATCH 13/29] vmsvga: Add support for extended FIFO registers, Liran Alon, 2018/08/09
- [Qemu-devel] [PATCH 14/29] vmsvga: Setup interrupt pin, Liran Alon, 2018/08/09
- [Qemu-devel] [PATCH 15/29] vmsvga: Add interrupt mask and status registers, Liran Alon, 2018/08/09
- [Qemu-devel] [PATCH 16/29] vmsvga: Add framework code for SVGA command to raise interrupt, Liran Alon, 2018/08/09
- [Qemu-devel] [PATCH 17/29] vmsvga: Define interrupt source flags for interrupt status and mask registers, Liran Alon, 2018/08/09
- [Qemu-devel] [PATCH 18/29] vmsvga: Add support for SVGA_IRQFLAG_FIFO_PROGRESS, Liran Alon, 2018/08/09
- [Qemu-devel] [PATCH 19/29] vmsvga: Handle SVGA_CMD_FENCE command, Liran Alon, 2018/08/09
- [Qemu-devel] [PATCH 20/29] vmsvga: Use standard names for params defining hardware cursor image, Liran Alon, 2018/08/09
- [Qemu-devel] [PATCH 21/29] vmsvga: Use AND mask bpp parameter in SVGA_CMD_DEFINE_CURSOR,
Liran Alon <=
- [Qemu-devel] [PATCH 22/29] vmsvga: Increase size of cursor AND bitmask, Liran Alon, 2018/08/09
- [Qemu-devel] [PATCH 23/29] vmsvga: Implement initial support for rgb-alpha cursors, Liran Alon, 2018/08/09
- [Qemu-devel] [PATCH 24/29] vmsvga: Add support for SVGA_FIFO_CAP_CURSOR_BYPASS_3, Liran Alon, 2018/08/09
- [Qemu-devel] [PATCH 25/29] vmsvga: Add basic support for GMR registers and FIFO commands, Liran Alon, 2018/08/09
- [Qemu-devel] [PATCH 26/29] vmsvga: Add basic support for display topology, Liran Alon, 2018/08/09
- [Qemu-devel] [PATCH 27/29] vmsvga: Add support for pitchlock register (a display line stride), Liran Alon, 2018/08/09