WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] pvfb: Add offset in resize event

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] pvfb: Add offset in resize event
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 27 Mar 2008 05:30:20 -0700
Delivery-date: Thu, 27 Mar 2008 05:30:32 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1206540336 0
# Node ID b6d15be09aecc41605db2851c59560aa0d7698b0
# Parent  30e20bb55da5ec1abfc43e7bb5284b6b450158cc
pvfb: Add offset in resize event
Also support depth change.

Signed-off-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx>
---
 tools/ioemu/hw/xenfb.c       |    8 ++++++--
 xen/include/public/io/fbif.h |    1 +
 2 files changed, 7 insertions(+), 2 deletions(-)

diff -r 30e20bb55da5 -r b6d15be09aec tools/ioemu/hw/xenfb.c
--- a/tools/ioemu/hw/xenfb.c    Wed Mar 26 14:04:21 2008 +0000
+++ b/tools/ioemu/hw/xenfb.c    Wed Mar 26 14:05:36 2008 +0000
@@ -56,6 +56,7 @@ struct xenfb {
        int depth;              /* colour depth of guest framebuffer */
        int width;              /* pixel width of guest framebuffer */
        int height;             /* pixel height of guest framebuffer */
+       int offset;             /* offset of the framebuffer */
        int abs_pointer_wanted; /* Whether guest supports absolute pointer */
        int button_state;       /* Last seen pointer button state */
        char protocol[64];      /* frontend protocol */
@@ -519,11 +520,13 @@ static void xenfb_on_fb_event(struct xen
                case XENFB_TYPE_RESIZE:
                        xenfb->width  = event->resize.width;
                        xenfb->height = event->resize.height;
+                       xenfb->depth = event->resize.depth;
                        xenfb->row_stride = event->resize.stride;
+                       xenfb->offset = event->resize.offset;
                        dpy_colourdepth(xenfb->ds, xenfb->depth);
                        dpy_resize(xenfb->ds, xenfb->width, xenfb->height, 
xenfb->row_stride);
                        if (xenfb->ds->shared_buf)
-                               dpy_setdata(xenfb->ds, xenfb->pixels);
+                               dpy_setdata(xenfb->ds, xenfb->pixels + 
xenfb->offset);
                        xenfb_invalidate(xenfb);
                        break;
                }
@@ -1105,6 +1108,7 @@ static void xenfb_mouse_event(void *opaq
 #define BLT(SRC_T,DST_T,RSB,GSB,BSB,RDB,GDB,BDB)                        \
     for (line = y ; line < (y+h) ; line++) {                            \
         SRC_T *src = (SRC_T *)(xenfb->pixels                            \
+                               + xenfb->offset                          \
                                + (line * xenfb->row_stride)             \
                                + (x * xenfb->depth / 8));               \
         DST_T *dst = (DST_T *)(xenfb->ds->data                                 
\
@@ -1147,7 +1151,7 @@ static void xenfb_guest_copy(struct xenf
         if (xenfb->depth == xenfb->ds->depth) { /* Perfect match can use fast 
path */
             for (line = y ; line < (y+h) ; line++) {
                 memcpy(xenfb->ds->data + (line * xenfb->ds->linesize) + (x * 
xenfb->ds->depth / 8),
-                        xenfb->pixels + (line * xenfb->row_stride) + (x * 
xenfb->depth / 8),
+                        xenfb->pixels + xenfb->offset + (line * 
xenfb->row_stride) + (x * xenfb->depth / 8),
                         w * xenfb->depth / 8);
             }
         } else { /* Mismatch requires slow pixel munging */
diff -r 30e20bb55da5 -r b6d15be09aec xen/include/public/io/fbif.h
--- a/xen/include/public/io/fbif.h      Wed Mar 26 14:04:21 2008 +0000
+++ b/xen/include/public/io/fbif.h      Wed Mar 26 14:05:36 2008 +0000
@@ -63,6 +63,7 @@ struct xenfb_resize
     int32_t height;  /* height in pixels */
     int32_t stride;  /* stride in bytes */
     int32_t depth;   /* depth in bits */
+    int32_t offset;  /* offset of the framebuffer in bytes */
 };
 
 #define XENFB_OUT_EVENT_SIZE 40

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] pvfb: Add offset in resize event, Xen patchbot-unstable <=