Жалған мөлдірлік: X терезе жүйесінде көрінетін мөлдірлік әдістері
Pseudo-transparency
Жалған түсіктілік (pseudo transparency) – X Window жүйесінде терезелерді әдемілеу үшін қолданылатын тәсіл. Терезелерді жеңілдетуге, фонмен үйлестіруге көмектеседі. Xlib арқылы жүзеге асырылады.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Псевдомөлдірлік – X терезе жүйесінің клиенттеріне қатысты қолданылатын термин. Ол түбірлік терезеге салынған бірдей пикскарта манипуляция жасау арқылы немесе X серверіне терезенің ата-анасынан фондық пикскартаны мұрагерлік етуді бұйыру арқылы мөлдірлік немесе жартылай көріну әсерін имитациялайды.
Pseudo transparency is a term used for X Window System clients that simulate the appearance of translucency or transparency by manipulating the same pixmap that has been drawn on the root window, or by instructing the X Server that the Background Pixmap should be inherited from the window's parent.
Мақсаты
Дәстүрлі түрде X терезе жүйесі басқа терезе жүйелерінен тек көзге әдемі немесе эстетикалық мүмкіндіктерді, мысалы терезелердің мөлдірлігін қосуда қалып қойды. Бұл әзірлеушілерді осы кемшілікті жою үшін шешімдер табуға итермеледі. Бұл жалған мөлдірлік, себебі тамыр терезесінің фондық пиксель картасы көрінеді (жұмыс үстелінің тұсқағазы сияқты), жасырын терезелер емес, пайдаланушыларға терезелерді аз шаңғып көрінуге мүмкіндік береді (мысалы, әдетте көп мәтінді қамтитын терминал эмуляторлары сияқты) және терезелердің сыртқы түрін жұмыс үстелі тақырыптарымен үйлестіруге болады.
Traditionally, the X Window System has lagged behind other windowing systems in adding purely eye candy or aesthetic features, such as window translucency. This has encouraged developers to develop kludges to overcome this limitation. This pseudo transparency, so called as the background pixmap of the root window is visible (analogous to desktop wallpaper) rather than any obscured windows, allows users to make windows look less imposing (such as Terminal emulators, which usually comprise large chunks of text), and to integrate the appearance of windows with their desktop themes.
Іске асыру
Xlib-ті қолдану арқылы псевдо мөлдірлікке қол жеткізудің үш кең таралған әдісі бар, олардың әрқайсысының өз пайдалы тұстары мен кемшіліктері бар.
There are three common methods for achieving pseudo transparency using Xlib, each with its own advantages and drawbacks.
Ата-аналық туыс
"Ата-аналық туыс" әдісі XSetWindowBackgroundPixmap функциясын ата-аналық терезенің фондық суретін мұралау үшін пайдаланады. Алайда, осы әдіс қолданылғанда, X сервері фондық пикселдегі операциялардың өте шектеулі санын (мысалы, XOR) ғана рұқсат етеді, бұл клиенттерге кез келген күрделі сурет сүзгілеуін іске асыруға мүмкіндік бермейді.
The "parental relative" method uses XSetWindowBackgroundPixmap to inherit the parent window's background image. Unfortunately, using this method, the X server permits very few operations to be performed on the background pixmap (such as XOR), preventing clients from implementing any sort of advanced image filtering.
_XROOTPMAP_ID және ESETROOT_PMAP_ID қасиеттері
Бұл қасиеттер терезеге түбірлік терезеде қолданылатын пиксел картасын қайдан табуға болатынын хабарлау үшін пайдаланылады. Осы ақпаратты пайдаланып, клиент кескіннің терезе мөлшері мен орнына сәйкес бөлігін өзінің фонына салу арқылы мөлдірлік эффектісіне қол жеткізе алады. Бұл әдіс ең көп жадты қажет етеді, бірақ клиенттерге кескін деректерімен түстеу немесе көлеңкелеу сияқты кез келген операцияларды орындауға мүмкіндік береді.
These properties are used to inform the window where it can find the pixmap used on the root window. Using this information, a client can paint a section of the image (corresponding to the size and position of the window) onto its background, achieving the effect of transparency. This method uses the most memory, but has the advantage of allowing clients to perform any operation, such as tinting or shading, on the image data.
XCopyArea (көшірме аумағы)
XCopyArea жасырылған терезелерді де қамти алатындықтан, көбірек шынайы жартылай көріну әсерін қамтамасыз етеді, бірақ оның маңызды кемшілігі – ол тек модальді терезелермен ғана қолданылады. Бұл әдіс терезе фондық пиксельдік кескіні ретінде пайдалану үшін XCopyArea функциясын пайдаланып, ішінара скриншот алады.
XCopyArea can achieve a more realistic transparency effect in that it can include obscured windows, but with the significant disadvantage that it is only usable with modal windows. This method simply uses the XCopyArea function to take a partial screenshot for use as the window's background pixmap.
Болашақ
DirectFB, Direct Rendering Infrastructure және OpenGL арқылы аппараттық құрастыру сияқты жаңа технологиялар X клиенттік бағдарламаларына нақты альфа-мөлдірлікті қолдануға мүмкіндік береді.
Recent technologies such as DirectFB, Direct Rendering Infrastructure, and hardware compositing via OpenGL allow X client applications to utilize true alpha transparency.