LINUX.ORG.RU

Java приложения с KDE/QT внешним видом


0

0

Sekou Diakite выпустил первую версию библиотек, которые позволяют Java приложениям использовать визуальные темы KDE/QT. Несомненно, это ещё один шаг на пути интеграции всех Линукс програм.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

How this is done ?

* A KDE application is created offscreen and never showed. * Everytime swing needs to draw a widget : o The equivalent widget is drawn to a QPixmap via the offscreen KDE application (The drawing is done by QStyle methods), o The QPixmap is converted to a Java BufferedImage, o Swing draws this image as the widget background.

надо полагать, с такой технологией отрисовки жабовские приложения будут просто летать =)

geek ★★★
()

>Несомненно, это ещё один шаг на пути интеграции всех Линукс програм.

Чё, в конце на жабе всё перепишут?

Midael ★★★★★
()
Ответ на: комментарий от geek

Дык в свинге всегда использовалась двойная буферизация при отрисовки компонент.

PS: А если по теме выглядит все красиво... Все такое большое... )))

x86 ★★
()
Ответ на: комментарий от x86

>Дык в свинге всегда использовалась двойная буферизация при отрисовки компонент.

про буферизацию знаю. Но когда я читаю про скрытое KDE-приложение, откуда будет дергаться внешний вид в QPixmap, конвертироваться в свинг и подкладываться в качестве бекграунда - у меня возникает стойкое ощущение неправильности происходящего :)

geek ★★★
()
Ответ на: комментарий от geek

кривенько конечно
java тут выступает что то вроде терминал сервера для Qt приложения
Qt рисует - java отображает
- хотя с другой стороны
- всегда кто то рисует, а кто то отображает
-- точно не знаю как свинг устроен - если по принципцу - есть тот кто рисует, и есть тот кто отображает - все в рамках архитектуры - уменьшения производительности не должно быть - правда не на иксах :)

yeolahim
()
Ответ на: комментарий от yeolahim

>кривенько конечно

это не то слово :) кривее трудно придумать

>java тут выступает что то вроде терминал сервера для Qt приложения

угу. учитывая что qt-приложения как такового, нету, есть скрытое окно, куда втыкаются qt-виджеты. Кстати, насколько я понял, такая же техника используется в gtk-qt-engine :)

>- всегда кто то рисует, а кто то отображает

только тут рисуется минимум два раза (это если не считать буферизацию) + преобразование из одного формата картинки в другой

хотя по другому совместить java (вещь в себе) и qt (тоже вещь в себе) наверное, не получится.

geek ★★★
()

Что-то терзают меня смутные сомнения что подобного костыля свет еще не видывал :(

PartyZan ★★★
()
Ответ на: комментарий от geek

> хотя по другому совместить java (вещь в себе) и qt (тоже вещь в себе) наверное, не получится.

Ну с GTK ееж совместили. Есть там такая фича как Native Look'n'Feels.

PartyZan ★★★
()
Ответ на: комментарий от geek

> хотя по другому совместить java (вещь в себе) и qt (тоже вещь в себе) наверное, не получится.

А просто, без выпендрежа, JNI заюзать - религия не позволила?;)

svu ★★★★★
()
Ответ на: комментарий от svu

>А просто, без выпендрежа, JNI заюзать - религия не позволила?;)

без выпендрежа видимо никак :)

geek ★★★
()
Ответ на: комментарий от geek

>у меня возникает стойкое ощущение неправильности происходящего :)

Чисто из любопытства - а как устроен OpenOffice'овский вид под GTK и QT? Так же или по-другому?

blaster999 ★★
()
Ответ на: комментарий от blaster999

gtk-java есть, когда будет полноценная qt-java?

anonymous
()

на первый взгляд все эти двойные преобразования graphics выглядят кривовато. Впрочем, этому вполне возможно есть какие-то технические объяснения (проблемы). К тому же это ведь только начало разработки.

Я бы, как и раньше, сделал бы отрисовку через JNI (смотри jawt.h). Через него можно получить полный доступ ко всем низкоуровневым потрохам.

--седайко стюмчик

sedajko_stjumchik
()
Ответ на: комментарий от Oval

> А просто, без выпендрежа, Synth Look And Feel заюзать - религия не позволила

это же "совсем другая тема" :)

--седайко стюмчик

sedajko_stjumchik
()
Ответ на: комментарий от eXOR

Скоро и так все будет, но будет сделано по человечески (вернее доделано), как это реализовано с java + gtk. А эту поделку в топку.

lexius ★★
()
Ответ на: комментарий от anonymous

> оо, а что джава может с графикой работать??

доброе утро! =)

eugrus ★★★★★
()
Ответ на: комментарий от blaster999

> Чисто из любопытства - а как устроен OpenOffice'овский вид под GTK и QT? Так же или по-другому?

Очень похоже. По крайней мере, Qt. И Gtk/Qt Theme Engine устроен также. Собственно, с него все и списали

e_val ★★★
()
Ответ на: комментарий от e_val

> Чисто из любопытства - а как устроен OpenOffice'овский вид под GTK и QT? Так же или по-другому?

>Очень похоже. По крайней мере, Qt. И Gtk/Qt Theme Engine устроен также. Собственно, с него все и списали

Кстати, у меня gtk-qt не тормозит ни разу, на встроенном видео.. Может, и это чудо не будет? Ж)))

ha
()
Ответ на: комментарий от geek

>>- всегда кто то рисует, а кто то отображает

>только тут рисуется минимум два раза (это если не считать буферизацию) + преобразование из одного формата картинки в другой

дилетантизм (впрочем, как и положено geek'у).

рисуется один раз, второй раз только копируется буфер, а это быстро, особенно в случае подержки OpenGL у жабы.

"преобразование картинки" - вообще смешно, BufferedImage это просто обертка для массива байтов, никакого преобразования нет

>хотя по другому совместить java (вещь в себе) и qt (тоже вещь в себе) наверное, не получится.

получится, и уже давно получилось, есть биндинги QT для жабы.

но это решение красивее, потому как программистом используется Swing, а архитектура у него весьма приятная (хотя и сложноватая)

anonymous
()
Ответ на: комментарий от anonymous

>дилетантизм (впрочем, как и положено geek'у).

[censored]

>рисуется один раз, второй раз только копируется буфер, а это быстро, особенно в случае подержки OpenGL у жабы.

я знаю что рисуется один раз. А отрсовка картинки - это уже нельзя назвать "рисуется"?

>"преобразование картинки" - вообще смешно, BufferedImage это просто обертка для массива байтов, никакого преобразования нет

т.е. ты хочешь сказать что никаких действий не предпринимается, и QPixmapImage передается в жабу, как есть по указателю? :)

>но это решение красивее, потому как программистом используется Swing

о да. невидимое кде-приложение - это оригинальное архитектурное решение

geek ★★★
()
Ответ на: комментарий от geek

>>рисуется один раз, второй раз только копируется буфер, а это быстро, особенно в случае подержки OpenGL у жабы.

>я знаю что рисуется один раз. А отрсовка картинки - это уже нельзя назвать "рисуется"?

выплескивание буфера на экран называть "отрисовка картинки" это, мсье, совсем неприлично. Сэр в курсе как вообще рисуется буфер (про то что в случае OpenGL процессор в этом не участвует я лучше промолчу)?

>>"преобразование картинки" - вообще смешно, BufferedImage это просто обертка для массива байтов, никакого преобразования нет

>т.е. ты хочешь сказать что никаких действий не предпринимается, и QPixmapImage передается в жабу, как есть по указателю? :)

представь себе да, данные QPixmapImage передаются в BufferedImage как есть по указателю, поздравляю тебя с этим открытием ;-)

>>но это решение красивее, потому как программистом используется Swing

>о да. невидимое кде-приложение - это оригинальное архитектурное решение

о да, что я могу сказать на это человеку, который считает, что если окно hide, то оно "вообще-то не существует"?

ничего не вижу кривого в использовании параллельного приложения, наоборот простота этого решения гениальна

anonymous
()
Ответ на: комментарий от anonymous

> Сэр в курсе как вообще рисуется буфер (про то что в случае OpenGL процессор в этом не участвует я лучше промолчу)?

сэр в курсе. не беспокойся

>представь себе да, данные QPixmapImage передаются в BufferedImage как есть по указателю, поздравляю тебя с этим открытием ;-)

не состыковывается эта фраза с описанием на сайте, где написано "The QPixmap is converted to a Java BufferedImage"

>ничего не вижу кривого в использовании параллельного приложения, наоборот простота этого решения гениальна

ну, если надевать штаны через голову - это "гениально", то не буду с тобой спорить

geek ★★★
()
Ответ на: комментарий от geek

>>представь себе да, данные QPixmapImage передаются в BufferedImage как есть по указателю, поздравляю тебя с этим открытием ;-)

>не состыковывается эта фраза с описанием на сайте, где написано "The QPixmap is converted to a Java BufferedImage"

элементарно, Ватсон. BufferedImage не владеет данными (данными владеет Raster, а если точнее то даже не он, а то что внутри него), так что это просто OO-обертка и "converted" только одна обертка в другую, данные тут ни при чем.

>>ничего не вижу кривого в использовании параллельного приложения, наоборот простота этого решения гениальна

>ну, если надевать штаны через голову - это "гениально", то не буду с тобой спорить

по твоему налабать мегабайты кода вместо того чтобы использовать без модификации то что есть (с перспективой на будущие версии всего того что есть) это гениальнее?

anonymous
()

Нахрена городить огород - вот что непонятно. Давно надо это тормозное глюкало на java переписать. Тогда и извратов никаких ненадо и скорость вырастет и память жрать перестанет!

anonymous
()
Ответ на: комментарий от sedajko_stjumchik

>долго смиялса :)) какую чушь тут городят

Пшел проч пес!

anonymous
()
Ответ на: комментарий от sedajko_stjumchik

на самом деле, если посмотреть на исходники, то почти так оно и есть

НО! только для big-endian систем :-(

anonymous
()
Ответ на: комментарий от anonymous

>Нахрена городить огород - вот что непонятно. Давно надо это тормозное глюкало на java переписать. Тогда и извратов никаких ненадо и скорость вырастет и память жрать перестанет!

В буйное отделение психиатрической больницы при Sun Microsystems провели интернет...

blaster999 ★★
()
Ответ на: комментарий от blaster999

+1

Бугогагага... смеялсо... :))) это у них там наверно весенние обострения на почве "Sun Microsystems заявила об открытии исходных текстов Java Studio Enterprise"... :))))

Cy6erBr4in ★★★
()
Ответ на: комментарий от geek

> про буферизацию знаю. Но когда я читаю про скрытое KDE-приложение, откуда будет дергаться внешний вид в QPixmap, конвертироваться в свинг и подкладываться в качестве бекграунда - у меня возникает стойкое ощущение неправильности происходящего :)

Не могу не согласиться.. Костыль еще тот. Хотя похоже что у geek стоит regexp на KDE. Только увидит, сразу глаза светиться начинают ;)

anon12345
()
Ответ на: комментарий от anonymous

> Нахрена городить огород - вот что непонятно. Давно надо это тормозное глюкало на java переписать. Тогда и извратов никаких ненадо и скорость вырастет и память жрать перестанет!

Может модераторам пора подумать над тем, что неплохо бы удалять подобное гонево, как "Вызывающе неверную информацию"? А то, раз мотюгнешся, так сразу пост режут, а прилюдно срать можно сколько угодно, хоть на изнанку вывернись.

mutronix ★★★★
()

> Java приложения с KDE/QT внешним видом

Типа, маскируем вирус под полезную программу... Скрываем, что программа написана на VB... из той же оперы

mutronix ★★★★
()
Ответ на: комментарий от mutronix

>Может модераторам пора подумать над тем, что неплохо бы удалять подобное гонево, как "Вызывающе неверную информацию"? А то, раз мотюгнешся, так сразу пост режут, а прилюдно срать можно сколько угодно, хоть на изнанку вывернись.

Ты что же это пес, А? С чем несогласен? С тем что java проги работают быстрее и стабильнее чем С/С++ - сные? Иди посмотри на например код, который KRON привел - тогда поймешь что кчему. "Вызывающе неверная информация" - это ТЫ, пес ты смердящий.

anonymous
()
Ответ на: комментарий от sedajko_stjumchik

>долго смиялса :)) какую чушь тут городят

Смешно дураку, что жопа на боку ...

vtVitus ★★★★★
()
Ответ на: комментарий от geek

> надо полагать, с такой технологией отрисовки жабовские приложения будут просто летать =)

А особенно интересно, как оно будет себя вести в условиях полупрозрачных виджетов, скажем. Или хотя бы анимированных ;)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.