[vlc-commits] XCB: add support for background color attribute
Cheng Sun
git at videolan.org
Mon Jan 23 19:28:37 CET 2012
npapi-vlc | branch: master | Cheng Sun <chengsun9 at gmail.com> | Mon Jan 16 18:14:14 2012 +0000| [1d7b3b1896284a99f3ab615a9b5cd64acd5d70f1] | committer: Cheng Sun
XCB: add support for background color attribute
> http://git.videolan.org/gitweb.cgi/npapi-vlc.git/?a=commit;h=1d7b3b1896284a99f3ab615a9b5cd64acd5d70f1
---
npapi/vlcplugin_xcb.cpp | 19 ++++++++++++++-----
npapi/vlcplugin_xcb.h | 2 ++
2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/npapi/vlcplugin_xcb.cpp b/npapi/vlcplugin_xcb.cpp
index 3d1e68c..76e4c12 100644
--- a/npapi/vlcplugin_xcb.cpp
+++ b/npapi/vlcplugin_xcb.cpp
@@ -83,7 +83,6 @@ bool VlcPluginXcb::create_windows()
xcb_atom_t xembed_info_atom = xcb_intern_atom_reply(conn, cookie, NULL)->atom;
/* create windows */
- /* TODO: respect get_bg_color() */
const uint32_t parent_values[] = {0x0FFFFF};
parent = xcb_generate_id(conn);
xcb_create_window(conn, XCB_COPY_FROM_PARENT, parent, socket,
@@ -94,7 +93,19 @@ bool VlcPluginXcb::create_windows()
xcb_change_property(conn, XCB_PROP_MODE_REPLACE, parent,
xembed_info_atom, xembed_info_atom,
32, 2, (void *) xembed_info_buf);
- const uint32_t video_values[] = {screen->black_pixel, 0x0FFFFF};
+
+ colormap = screen->default_colormap;
+ uint8_t r = 0, g = 0, b = 0;
+ HTMLColor2RGB(get_bg_color().c_str(), &r, &g, &b);
+ xcb_alloc_color_reply_t *reply = xcb_alloc_color_reply(conn,
+ xcb_alloc_color(conn, colormap,
+ (uint16_t) r << 8,
+ (uint16_t) g << 8,
+ (uint16_t) b << 8), NULL);
+ colorpixel = reply->pixel;
+ free(reply);
+
+ const uint32_t video_values[] = {colorpixel, 0x0FFFFF};
video = xcb_generate_id(conn);
xcb_create_window(conn, 0, video, parent,
0, 0, 1, 1, 0,
@@ -129,9 +140,7 @@ bool VlcPluginXcb::resize_windows()
bool VlcPluginXcb::destroy_windows()
{
- /* destroy x window */
xcb_destroy_window(conn, parent);
-
- /* close connection */
+ xcb_free_colors(conn, colormap, 0, 1, &colorpixel);
xcb_disconnect(conn);
}
diff --git a/npapi/vlcplugin_xcb.h b/npapi/vlcplugin_xcb.h
index b70ccbf..9bae89c 100644
--- a/npapi/vlcplugin_xcb.h
+++ b/npapi/vlcplugin_xcb.h
@@ -57,6 +57,8 @@ public:
unsigned int i_width, i_height;
xcb_connection_t *conn;
xcb_window_t parent, video;
+ xcb_colormap_t colormap;
+ uint32_t colorpixel;
pthread_t thread;
More information about the vlc-commits
mailing list