Mon 21 Jul 22:43:21 CEST 2025
This commit is contained in:
parent
760683dad4
commit
f4d3b78660
65
js/x11/core/examples/paint.js
Normal file
65
js/x11/core/examples/paint.js
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
var x11 = require('../lib');
|
||||||
|
var PointerMotion = x11.eventMask.PointerMotion;
|
||||||
|
var ButtonPress = x11.eventMask.ButtonPress;
|
||||||
|
var ButtonRelease = x11.eventMask.ButtonRelease;
|
||||||
|
|
||||||
|
var X, Render;
|
||||||
|
var pressed = false;
|
||||||
|
var gradNo = 0;
|
||||||
|
|
||||||
|
var xclient = x11.createClient(function(err, display) {
|
||||||
|
X = display.client;
|
||||||
|
var root = display.screen[0].root;
|
||||||
|
X.require('render', function(err, rendExt) {
|
||||||
|
Render = rendExt;
|
||||||
|
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, 0, 0, 0, 0, { backgroundPixel: white, eventMask: PointerMotion|ButtonPress|ButtonRelease });
|
||||||
|
X.MapWindow(wid);
|
||||||
|
|
||||||
|
var pict = X.AllocID();
|
||||||
|
Render.CreatePicture(pict, wid, Render.rgb24);
|
||||||
|
var pictGrad = [];
|
||||||
|
for (var i=0; i < 10; ++i)
|
||||||
|
{
|
||||||
|
pictGrad[i] = X.AllocID();
|
||||||
|
Render.RadialGradient(pictGrad[i], [50,56], [50,50], 0, 50,
|
||||||
|
[
|
||||||
|
[0, [0,0,0,0x0fff ] ],
|
||||||
|
[0.1 + 0.8*i/10, [0,0,0,0x0fff ] ],
|
||||||
|
[0.997, [0xffff, 0xf, 0, 0x1] ],
|
||||||
|
[1, [0xffff, 0xffff, 0, 0x0] ]
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function draw(x, y) {
|
||||||
|
Render.Composite(3, pictGrad[gradNo], 0, pict, 0, 0, 0, 0, x-50, y-50, 100, 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
X.on('event', function(ev) {
|
||||||
|
if (ev.type == 4 && ev.keycode == 1)
|
||||||
|
pressed = true;
|
||||||
|
else if (ev.type == 5 && ev.keycode == 1)
|
||||||
|
pressed = false;
|
||||||
|
else if (ev.type == 5 && ev.keycode == 4)
|
||||||
|
{
|
||||||
|
gradNo--;
|
||||||
|
if (gradNo < 0)
|
||||||
|
gradNo = 0;
|
||||||
|
console.log(gradNo);
|
||||||
|
}
|
||||||
|
else if (ev.type == 5 && ev.keycode == 5)
|
||||||
|
{
|
||||||
|
gradNo++;
|
||||||
|
if (gradNo > 9)
|
||||||
|
gradNo = 9;
|
||||||
|
console.log(gradNo);
|
||||||
|
}
|
||||||
|
else if (pressed)
|
||||||
|
draw(ev.x, ev.y);
|
||||||
|
//console.log(ev.type, ev.keycode);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user