Re: [PATCH] ephyr: Implement per-screen colormaps

2015-01-02 Thread Keith Packard
Eric Anholt e...@anholt.net writes:

 Reviewed-by: Adam Jackson a...@redhat.com
 Signed-off-by: Michele Baldessari mich...@redhat.com

 Reviewed-by: Eric Anholt e...@anholt.net

Merged.
   7b076fd..924996c  master - master

-- 
-keith


signature.asc
Description: PGP signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH] ephyr: Implement per-screen colormaps

2014-12-04 Thread Eric Anholt
Adam Jackson a...@redhat.com writes:

 From: Michele Baldessari mich...@redhat.com

 Xephyr's pseudocolor emulation added in:

 commit 81a3b6fe27567b4f91033ece69996aa6bf8d01a3
 Author: Matthew Allum breakf...@10.am
 Date:   Mon Nov 8 22:39:47 2004 +

 Add support to Xephyr for lower depths than hosts

 only tracks one global colormap for the whole (Xephyr) display.  Move
 this to per-screen state so each screen's colormap can be correct.

 [ajax: rebased to 1.17, cleaned up commit message]
 Reviewed-by: Adam Jackson a...@redhat.com
 Signed-off-by: Michele Baldessari mich...@redhat.com

Reviewed-by: Eric Anholt e...@anholt.net


signature.asc
Description: PGP signature
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

[PATCH] ephyr: Implement per-screen colormaps

2014-12-03 Thread Adam Jackson
From: Michele Baldessari mich...@redhat.com

Xephyr's pseudocolor emulation added in:

commit 81a3b6fe27567b4f91033ece69996aa6bf8d01a3
Author: Matthew Allum breakf...@10.am
Date:   Mon Nov 8 22:39:47 2004 +

Add support to Xephyr for lower depths than hosts

only tracks one global colormap for the whole (Xephyr) display.  Move
this to per-screen state so each screen's colormap can be correct.

[ajax: rebased to 1.17, cleaned up commit message]
Reviewed-by: Adam Jackson a...@redhat.com
Signed-off-by: Michele Baldessari mich...@redhat.com
---
 hw/kdrive/ephyr/ephyr.c |  2 +-
 hw/kdrive/ephyr/ephyr.h |  1 +
 hw/kdrive/ephyr/hostx.c | 11 ++-
 hw/kdrive/ephyr/hostx.h |  2 +-
 4 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c
index 93a48a9..907bbeb 100644
--- a/hw/kdrive/ephyr/ephyr.c
+++ b/hw/kdrive/ephyr/ephyr.c
@@ -1292,7 +1292,7 @@ ephyrPutColors(ScreenPtr pScreen, int n, xColorItem * 
pdefs)
 if (p  max)
 max = p;
 
-hostx_set_cmap_entry(p,
+hostx_set_cmap_entry(pScreen, p,
  pdefs-red  8,
  pdefs-green  8, pdefs-blue  8);
 pdefs++;
diff --git a/hw/kdrive/ephyr/ephyr.h b/hw/kdrive/ephyr/ephyr.h
index 2395a7f..18bfe11 100644
--- a/hw/kdrive/ephyr/ephyr.h
+++ b/hw/kdrive/ephyr/ephyr.h
@@ -83,6 +83,7 @@ typedef struct _ephyrScrPriv {
 
 KdScreenInfo *screen;
 int mynum;  /* Screen number */
+unsigned long cmap[256];
 
 /**
  * Per-screen Xlib-using state for glamor (private to
diff --git a/hw/kdrive/ephyr/hostx.c b/hw/kdrive/ephyr/hostx.c
index 8d6d5e8..f64861b 100644
--- a/hw/kdrive/ephyr/hostx.c
+++ b/hw/kdrive/ephyr/hostx.c
@@ -82,8 +82,6 @@ struct EphyrHostXVars {
 KdScreenInfo **screens;
 
 long damage_debug_msec;
-
-unsigned long cmap[256];
 };
 
 /* memset ( missing ) instead of below  */
@@ -751,9 +749,12 @@ hostx_calculate_color_shift(unsigned long mask)
 }
 
 void
-hostx_set_cmap_entry(unsigned char idx,
+hostx_set_cmap_entry(ScreenPtr pScreen, unsigned char idx,
  unsigned char r, unsigned char g, unsigned char b)
 {
+KdScreenPriv(pScreen);
+KdScreenInfo *screen = pScreenPriv-screen;
+EphyrScrPriv *scrpriv = screen-driver;
 /* need to calculate the shifts for RGB because server could be BGR. */
 /* XXX Not sure if this is correct for 8 on 16, but this works for 8 on 24.*/
 static int rshift, bshift, gshift = 0;
@@ -765,7 +766,7 @@ hostx_set_cmap_entry(unsigned char idx,
 gshift = hostx_calculate_color_shift(HostX.visual-green_mask);
 bshift = hostx_calculate_color_shift(HostX.visual-blue_mask);
 }
-HostX.cmap[idx] = ((r  rshift)  HostX.visual-red_mask) |
+scrpriv-cmap[idx] = ((r  rshift)  HostX.visual-red_mask) |
 ((g  gshift)  HostX.visual-green_mask) |
 ((b  bshift)  HostX.visual-blue_mask);
 }
@@ -1017,7 +1018,7 @@ hostx_paint_rect(KdScreenInfo *screen,
 unsigned char pixel =
 *(unsigned char *) (scrpriv-fb_data + idx);
 xcb_image_put_pixel(scrpriv-ximg, x, y,
-HostX.cmap[pixel]);
+scrpriv-cmap[pixel]);
 break;
 }
 default:
diff --git a/hw/kdrive/ephyr/hostx.h b/hw/kdrive/ephyr/hostx.h
index 87acd5a..93aaa50 100644
--- a/hw/kdrive/ephyr/hostx.h
+++ b/hw/kdrive/ephyr/hostx.h
@@ -141,7 +141,7 @@ hostx_get_visual_masks(KdScreenInfo *screen,
CARD32 *rmsk, CARD32 *gmsk, CARD32 *bmsk);
 void
 
-hostx_set_cmap_entry(unsigned char idx,
+hostx_set_cmap_entry(ScreenPtr pScreen, unsigned char idx,
  unsigned char r, unsigned char g, unsigned char b);
 
 void *hostx_screen_init(KdScreenInfo *screen,
-- 
1.9.3

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel