changeset 1188:deed043a388c

Add support for BGR233 pixel mode
author gthomas
date Tue, 02 Sep 2003 01:43:35 +0000
parents 62fcf59de75c
children e1afd37f2f1d
files packages/net/vnc_server/current/ChangeLog packages/net/vnc_server/current/cdl/vnc-server.cdl packages/net/vnc_server/current/include/vnc-server.h packages/net/vnc_server/current/src/vnc-server.c
diffstat 4 files changed, 42 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/packages/net/vnc_server/current/ChangeLog
+++ b/packages/net/vnc_server/current/ChangeLog
@@ -1,3 +1,10 @@
+2003-09-01  Gary Thomas  <gary@mlbassoc.com>
+
+	* src/vnc-server.c: 
+	* include/vnc-server.h: 
+	* cdl/vnc-server.cdl: Add support for BGR233 (8 bit) mode, since
+	newer viewers support this on all displays.
+
 2003-08-31  Chris Garry  <cgarry@sweeneydesign.co.uk>
 
     * src/vnc-server.c:
--- a/packages/net/vnc_server/current/cdl/vnc-server.cdl
+++ b/packages/net/vnc_server/current/cdl/vnc-server.cdl
@@ -168,9 +168,17 @@ cdl_package CYGPKG_VNC_SERVER {
         cdl_option CYGNUM_VNC_SERVER_PIXEL_RGB332 {
             display     "RGB332 pixel format (8-bit)"
             flavor bool
+            default_value 0
+            implements CYGNUM_VNC_SERVER_PIXEL_SELECTED
+            description "This selects 8-bit, RGB332 pixel format."
+        }
+
+        cdl_option CYGNUM_VNC_SERVER_PIXEL_BGR233 {
+            display     "BGR233 pixel format (8-bit)"
+            flavor bool
             default_value 1
             implements CYGNUM_VNC_SERVER_PIXEL_SELECTED
-            description "This selects 8-bit, RGB332 pixel format."
+            description "This selects 8-bit, BGR233 pixel format."
         }
 
         cdl_option CYGNUM_VNC_SERVER_PIXEL_RGB555 {
--- a/packages/net/vnc_server/current/include/vnc-server.h
+++ b/packages/net/vnc_server/current/include/vnc-server.h
@@ -63,6 +63,7 @@ typedef struct
     bool       rgb332;
     bool       rgb555;
     bool       rgb565;
+    bool       bgr233;
 } vnc_frame_format_t;
 
 
@@ -94,17 +95,14 @@ typedef struct
 #endif
 
 /* Type for colour values */
-#ifdef CYGNUM_VNC_SERVER_PIXEL_RGB332
+#if defined(CYGNUM_VNC_SERVER_PIXEL_RGB332) || defined(CYGNUM_VNC_SERVER_PIXEL_BGR233)
 typedef cyg_uint8 vnc_color_t;
 typedef cyg_uint8 vnc_colour_t;
-#endif
-#ifdef CYGNUM_VNC_SERVER_PIXEL_RGB555
+#elif defined(CYGNUM_VNC_SERVER_PIXEL_RGB555) || defined(CYGNUM_VNC_SERVER_PIXEL_RGB565)
 typedef cyg_uint16 vnc_color_t;
 typedef cyg_uint16 vnc_colour_t;
-#endif
-#ifdef CYGNUM_VNC_SERVER_PIXEL_RGB565
-typedef cyg_uint16 vnc_color_t;
-typedef cyg_uint16 vnc_colour_t;
+#else
+#error "Unsupported color model"
 #endif
 
 
@@ -133,6 +131,11 @@ vnc_printf_return_t VncPrintf(MWCFONT* f
                                       |((((cyg_uint8)g)&0xE0) >> 3)  \
                                       |((((cyg_uint8)b)&0xC0) >> 6))
 #endif
+#ifdef CYGNUM_VNC_SERVER_PIXEL_BGR233
+#define VNC_RGB2COL(r,g,b) (vnc_colour_t)(((((cyg_uint8)r)&0xE0) >> 5)  \
+                                      |((((cyg_uint8)g)&0xE0) >> 2)  \
+                                      |((((cyg_uint8)b)&0xC0) >> 0))
+#endif
 #ifdef CYGNUM_VNC_SERVER_PIXEL_RGB555
 #define VNC_RGB2COL(r,g,b) (vnc_colour_t)(((((cyg_uint8)r)&0xF8) << 7)  \
                                        |((((cyg_uint8)g)&0xF8) << 2)  \
--- a/packages/net/vnc_server/current/src/vnc-server.c
+++ b/packages/net/vnc_server/current/src/vnc-server.c
@@ -94,6 +94,17 @@ void lwip_init(void);
 #define BLUE_SHIFT          0
 #endif
 
+#ifdef CYGNUM_VNC_SERVER_PIXEL_BGR233
+#define BITS_PER_PIXEL      8      /* Bits per pixel */
+#define PIXEL_DEPTH         8      /* Usefull bits per pixel */
+#define RED_MAX             7
+#define GREEN_MAX           7
+#define BLUE_MAX            3
+#define RED_SHIFT           0
+#define GREEN_SHIFT         3
+#define BLUE_SHIFT          6
+#endif
+
 #ifdef CYGNUM_VNC_SERVER_PIXEL_RGB555
 #define BITS_PER_PIXEL      16     /* Bits per pixel */
 #define PIXEL_DEPTH         15     /* Usefull bits per pixel */
@@ -226,6 +237,11 @@ vnc_frame_format_t frame_format = {CYGNU
                                    0,
 #endif
 #ifdef CYGNUM_VNC_SERVER_PIXEL_RGB565
+                                   1,
+#else
+                                   0,
+#endif
+#ifdef CYGNUM_VNC_SERVER_PIXEL_BGR233
                                    1};
 #else
                                    0};