mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-27 09:36:15 +00:00
Changed: #1034 Implement CCustomMouse for Linux
This commit is contained in:
parent
a4c64bb753
commit
ef7ad7daa5
2 changed files with 8 additions and 59 deletions
|
@ -506,8 +506,8 @@ void CDriverGL::setMousePos(float x, float y)
|
||||||
if (_win == EmptyWindow)
|
if (_win == EmptyWindow)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sint x1 = (sint)((float)_CurrentMode.Width*x);
|
sint x1 = (sint)((float)_WindowWidth*x);
|
||||||
sint y1 = (sint)((float)_CurrentMode.Height*(1.0f-y));
|
sint y1 = (sint)((float)_WindowHeight*(1.0f-y));
|
||||||
|
|
||||||
#ifdef NL_OS_WINDOWS
|
#ifdef NL_OS_WINDOWS
|
||||||
|
|
||||||
|
|
|
@ -357,10 +357,13 @@ bool CDriverGL::init (uint windowIcon, emptyProc exitFunc)
|
||||||
|
|
||||||
#ifdef HAVE_XRENDER
|
#ifdef HAVE_XRENDER
|
||||||
sint render_major, render_event, render_error;
|
sint render_major, render_event, render_error;
|
||||||
if (XQueryExtension(_dpy, "RENDER", &render_major, &render_event, &render_error))
|
if (XQueryExtension(_dpy, "RENDER", &render_major, &render_event, &render_error) &&
|
||||||
|
XRenderQueryExtension(_dpy, &render_event, &render_error))
|
||||||
{
|
{
|
||||||
_xrender_version = render_major * 100;
|
sint render_minor = 0;
|
||||||
nlinfo("3D: XRender %d.%d found", render_major, 0);
|
XRenderQueryVersion(_dpy, &render_major, &render_minor);
|
||||||
|
_xrender_version = render_major * 100 + render_minor;
|
||||||
|
nlinfo("3D: XRender %d.%d found", render_major, render_minor);
|
||||||
}
|
}
|
||||||
#endif // HAVE_XRENDER
|
#endif // HAVE_XRENDER
|
||||||
|
|
||||||
|
@ -2846,60 +2849,6 @@ bool CDriverGL::convertBitmapToCursor(const NLMISC::CBitmap &bitmap, Cursor &cur
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
XRenderPictFormat* format = None;
|
|
||||||
|
|
||||||
{
|
|
||||||
XRenderPictFormat alpha_format;
|
|
||||||
unsigned long mask = PictFormatType|PictFormatDepth|PictFormatAlpha|PictFormatAlphaMask;
|
|
||||||
alpha_format.type = PictTypeDirect;
|
|
||||||
alpha_format.depth = 8;
|
|
||||||
alpha_format.direct.alpha = 0;
|
|
||||||
alpha_format.direct.alphaMask = 0xff;
|
|
||||||
|
|
||||||
format = XRenderFindFormat(dpy, mask, &alpha_format, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!format) {
|
|
||||||
printf("%s", "error, couldnt find valid format for alpha.\n");
|
|
||||||
XFreePixmap(dpy, dst_pm);
|
|
||||||
XFreePixmap(dpy, src_pm);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
{ /* fill the alpha-picture */
|
|
||||||
Pixmap alpha_pm = None;
|
|
||||||
|
|
||||||
XRenderColor alpha_color;
|
|
||||||
XRenderPictureAttributes alpha_attr;
|
|
||||||
|
|
||||||
alpha_color.alpha = 0xffff * (shade)/100;
|
|
||||||
|
|
||||||
alpha_attr.repeat = True;
|
|
||||||
|
|
||||||
alpha_pm = XCreatePixmap(dpy, src_pm, 1, 1, 8);
|
|
||||||
alpha_pic = XRenderCreatePicture(dpy, alpha_pm, format, CPRepeat, &alpha_attr);
|
|
||||||
XRenderFillRectangle(dpy, PictOpSrc, alpha_pic, &alpha_color, 0, 0, 1, 1);
|
|
||||||
XFreePixmap(dpy, alpha_pm);
|
|
||||||
}
|
|
||||||
|
|
||||||
{ /* blend all together */
|
|
||||||
Picture src_pic;
|
|
||||||
Picture dst_pic;
|
|
||||||
|
|
||||||
format = XRenderFindVisualFormat(dpy, vis);
|
|
||||||
|
|
||||||
src_pic = XRenderCreatePicture(dpy, src_pm, format, 0, 0);
|
|
||||||
dst_pic = XRenderCreatePicture(dpy, dst_pm, format, 0, 0);
|
|
||||||
|
|
||||||
XRenderComposite(dpy, PictOpOver,
|
|
||||||
src_pic, alpha_pic, dst_pic,
|
|
||||||
src_x, src_y, 0, 0, dst_x, dst_y, width, height);
|
|
||||||
XRenderFreePicture(dpy, src_pic);
|
|
||||||
XRenderFreePicture(dpy, dst_pic);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
} // NL3D
|
} // NL3D
|
||||||
|
|
Loading…
Reference in a new issue