From 3cb9e2a85f3420c4871da03579c409968d020776 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Tue, 20 Mar 2012 08:36:06 +1100 Subject: [PATCH] se render with gradients --- test/transpwindow.js | 91 ++++++++++++++++++++++++++++---------------- 1 file changed, 58 insertions(+), 33 deletions(-) diff --git a/test/transpwindow.js b/test/transpwindow.js index 8368175..99d9b7e 100644 --- a/test/transpwindow.js +++ b/test/transpwindow.js @@ -1,52 +1,77 @@ var x11 = require('../lib/x11'); -var xclient = x11.createClient(); -var PointerMotion = x11.eventMask.PointerMotion; -var Button1Motion = x11.eventMask.Button1Motion; -var Button2Motion = x11.eventMask.Button2Motion; -var Button3Motion = x11.eventMask.Button3Motion; -var Button4Motion = x11.eventMask.Button4Motion; -var Button5Motion = x11.eventMask.Button5Motion; -var ButtonPress = x11.eventMask.ButtonPress; -var ButtonRelease = x11.eventMask.ButtonRelease; -var EnterWindow = x11.eventMask.EnterWindow; -var LeaveWindow = x11.eventMask.LeaveWindow; - -//var mask = PointerMotion|Button1Motion|Button2Motion|Button3Motion|Button4Motion|Button5Motion|ButtonPress|ButtonRelease; -//var mask = Button1Motion|Button2Motion|Button3Motion|Button4Motion|Button5Motion|ButtonPress|ButtonRelease; -var mask = Button1Motion|ButtonPress|EnterWindow|LeaveWindow; - -xclient.on('connect', function(display) { - //console.log(display.depths); - console.log(display.screen[0].depths); - var X = this; +x11.createClient(function(display) { + var visual; + var rgbaVisuals = Object.keys(display.screen[0].depths[32]); + for (v in rgbaVisuals) + { + var vid = rgbaVisuals[v]; + if (display.screen[0].depths[32][vid].class === 4) + { + visual = vid; + break; + } + } + if (visual === undefined) + { + console.log('No RGBA visual found'); + return; + } + var X = display.client; var root = display.screen[0].root; var wid = X.AllocID(); var white = display.screen[0].white_pixel; var black = display.screen[0].black_pixel; - //X.CreateWindow(wid, root, 10, 10, 400, 300, 1, 1, 0, { backgroundPixel: white, eventMask: mask, overrideRedirect: 1 }); var cmid = X.AllocID(); - var visual = 261;//71; - var depth = 24;//32; + var depth = 32; X.CreateColormap(cmid, root, visual, 0); // 0=AllocNone, 1 AllocAll + + X.CreateWindow(wid, root, 10, 10, 168, 195, 1, depth, 1, visual, { eventMask: x11.eventMask.Exposure, colormap: cmid, backgroundPixel: 0, borderPixel: 0 }); + X.MapWindow(wid); + var gc = X.AllocID(); + X.require('render', function(Render) { - //X.CreateWindow(wid, root, 10, 10, 168, 195, 1, depth, 1, visual, { colormap: cmid, backgroundPixel: 0, borderPixel: 0 }); - //X.CreateWindow(wid, root, 10, 10, 168, 195, 1, 0, 1, 0, { backgroundPixel: 0, borderPixel: 0 }); - //X.MapWindow(wid); + var pict = X.AllocID(); + Render.CreatePicture(pict, wid, Render.rgba32); + var gradients = []; + + function randomLinear() { + var stops = []; + for (var i=0; i<3; ++i) + stops.push(Math.random()); + stops.sort(); + var colors = []; + for (var i=0; i