Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.01.20;
Скачать: [xml.tar.bz2];

Вниз

Потестите эмулятор виртуальных десктопов   Найти похожие ветки 

 
@!!ex ©   (2007-12-11 17:06) [0]

Основной скриншот:
http://img80.imageshack.us/my.php?image=windeskvdmv0.png
Скриншот экрана быстрого переключения десктопов:
http://img80.imageshack.us/img80/7522/windeskvdpreviewpv0.png

http://ifolder.ru/4515084
198 килобайт

Для переключения десктопов с помощью вращающегося куба, нужно нажать Ctrl+Alt+Space и не отпуская Ctrl левой кнопкой мыши вращать куб.
Также десктопы можно переключать через окно выбора десктопа или с помощью меню, появляющегося при клике на иконке программы в трее.

Сорсы в архиве.
Напоролся на косяк с выводом изображения через StretchBlt.
На экране превьюшки видно как ужасно он рисует сжатое изображение.
Может кто знает нормальные спосмобы отрисовать большое изображение(размером с экран) в уменьшенном виде, чтобы оно смотрелось не так ужасно...


 
@!!ex ©   (2007-12-11 17:08) [1]

И, кстати, народ. У кого шейдеры видуха не поддерживает, скажите, плиз, как прога себя ведет?
Если все хорошо, то при выводе изображения цвет будет некорректный(BGR вместо RGB), но все должно работать.


 
@!!ex ©   (2007-12-11 17:27) [2]

Два косяка нашел!
Народ, осторожнее!
Окна которые были на неактивных десктопах при закрытие программы остаються скрытымми... *SORRY*
Ну второй попроще... Окно не TopMost


 
Rouse_ ©   (2007-12-11 17:43) [3]

Работает. А почему CreateDesktop не используешь?


 
@!!ex ©   (2007-12-11 17:43) [4]

> [3] Rouse_ ©   (11.12.07 17:43)

НЕ знаю, что это такое, сейчас почитаю.


 
@!!ex ©   (2007-12-11 17:46) [5]

> [3] Rouse_ ©   (11.12.07 17:43)

Я не понял, что делает эта функция...
Видать не хватает знания английского.


 
Джо ©   (2007-12-11 17:46) [6]

Работает, но медленно.
И пустая иконка в области нотификаций.


 
@!!ex ©   (2007-12-11 17:48) [7]

> Работает, но медленно.

В смысле тормозит? Или десктопы медленно переключает?


> И пустая иконка в области нотификаций.

Да... Не могу найти редактор иконок нормальный.


 
Rouse_ ©   (2007-12-11 17:48) [8]

Хм... CreateDesktop и SwitchDesktop спасут тебя от рутины :) Только там несколько проблем поймаешь, к примеру с заблокированной станцией - будет перекидывать на дефолтный, ну и всякого там по мелочи :)


 
Джо ©   (2007-12-11 17:48) [9]

И куб не всегда выводится поверх всех окон. Вот щас как-раз где-то под окошками IDE болтается. :)


 
Джо ©   (2007-12-11 17:49) [10]

> [7] @!!ex ©   (11.12.07 17:48)
> > Работает, но медленно.
>
> В смысле тормозит? Или десктопы медленно переключает?

С момента нажатия Ctrl-Alt-Space до появления куба проходит несколько секунд.


 
@!!ex ©   (2007-12-11 17:51) [11]


> [8] Rouse_ ©   (11.12.07 17:48)

Скорее добавят проблем. Потому что планирую делать возможность перекидывания окон между десктопами, а рутина основная уже сделана, только отлаживать надо.

> [10] Джо ©   (11.12.07 17:49)

А если переключаться без куба? Через превьюшку или через меню в трее?


 
Джо ©   (2007-12-11 17:53) [12]

> превьюшку или через меню в трее?

Тогда достаточно быстро. В пределах секунды или даже чуть меньше.


 
Virgo_Style ©   (2007-12-11 17:56) [13]

@!!ex ©   (11.12.07 17:08) [1]
У кого шейдеры видуха не поддерживает, скажите, плиз, как прога себя ведет?


Плохо ведет) Не знаю, шейдеры ли тут причиной, но пронаблюдал три разных AV, причем третий, для несообразительных, повторяется по самое не могу.

Адреса:
00000000:00000000 (read)
0045A71B:000000CC (write)
0045A8F9:00000060 (read)


 
@!!ex ©   (2007-12-11 17:58) [14]

> [13] Virgo_Style ©   (11.12.07 17:56)

В какой момент вываливаются?


 
@!!ex ©   (2007-12-11 18:03) [15]

> [12] Джо ©   (11.12.07 17:53)

Странно. Вот что выполняется, при вызове куба:
 Width:=Screen.Width;
 Height:=Screen.Height;
 Left:=0;
 Top:=0;
 ShowWindow(PreviewForm.Handle,SW_HIDE);
 Desktop.Start;
      SaveDesktopImage(CurrentDesktop);

      Animation:=1;
      AnimationProgress:=0;
      LastUpdate:=GetTickCOunt;

      NeedFixAngle:=true;
      NeedFixTilt:=true;

 ShowWindow(Handle,SW_SHOW);
 SetForegroundWindow(Handle);

Жирным выделена развертка Desktop.Start;

А вот это, переключение без куба:
 ShowWindow(PreviewForm.Handle,SW_HIDE);
 SwitchWindow.Desktop.SaveDesktopImage(SwitchWindow.Desktop.CurrentDesktop);
 ShowWindow(PreviewForm.Handle,SW_SHOW);
 SwitchWindow.Desktop.SwitchDesktop(SelectedDesktop);
 InvalidateRect(PreviewForm.Handle,nil,false);
 SetForegroundWindow(PreviewForm.Handle);


Единственная медленная операция в первом куске( SaveDesktopImage(CurrentDesktop);) пристутствует и во втором...


 
boriskb ©   (2007-12-11 18:04) [16]

> [13] Virgo_Style ©   (11.12.07 17:56)


Аналогично.
Материнка у меня правда старая, но лучше бы меня послали "Эта прога не про твое железо", я б не обиделся :)

Я б советовал сначала заняться определением - здесь будет работать, а здесь нет.
А потом уже улучшать.


 
Virgo_Style ©   (2007-12-11 18:05) [17]

@!!ex ©   (11.12.07 17:58) [14]
Запуск - вываливаются по очереди первые два - затем появляется лысое окошко в верхнем левом углу и выпадает третье. После этого сколько на OK не жми - выпадает оно же.


 
@!!ex ©   (2007-12-11 18:05) [18]

> [16] boriskb ©   (11.12.07 18:04)

Для того, чтобы определить где работает, а где нет, нужно чтобы оно сначала хоть где то работало. :)

Когда падает то?


 
@!!ex ©   (2007-12-11 18:06) [19]

> [17] Virgo_Style ©   (11.12.07 18:05)

Ок. Сейчас постараюсь понять в чем косяк.


 
boriskb ©   (2007-12-11 18:08) [20]

> Когда падает то?

так же

> [17] Virgo_Style ©   (11.12.07 18:05)


 
@!!ex ©   (2007-12-11 18:15) [21]

Вот версия, товарищи, попробуйте, плиз, ее запустить.

v0.2 Alpha
ПРи закрытии программы, все окна со всех десктопов объединяются в один десктоп.
Исправлена ошибка с запуском на машинах без поддершки шейдеров.(правда я в этом не на 100% уверен)

http://ifolder.ru/4516178


 
boriskb ©   (2007-12-11 18:23) [22]


> http://ifolder.ru/4516178

Предупредила по человечески.
Запустилась с ужасной графикой и четырмя десктопами (левый верхний угол)
При выборе пустого DT ничего не происходит.
Иконка не видна (пустое место), меню оттуда видно.
Снмается только из таскменеджер-а


 
@!!ex ©   (2007-12-11 18:27) [23]

> Запустилась с ужасной графикой и четырмя десктопами (левый
> верхний угол)

В чем ужас графики проявляется?
Кстати, тормозит? Какая конфигурация?


> При выборе пустого DT ничего не происходит.

А вообще окна есть?
Все окошки должны скрываться, если окошек нет, то не должно происходить ничего(визуально).


> Иконка не видна (пустое место), меню оттуда видно.
> Снмается только из таскменеджер-а

А если в меню Close выбрать?


 
Джо ©   (2007-12-11 18:27) [24]

Не, ошибся. Время задержки примерно одинаковое, хоть из меню переключаться, хоть из кубика.


 
@!!ex ©   (2007-12-11 18:34) [25]

> [24] Джо ©   (11.12.07 18:27)

Есть основания полагать, что это я никак ускорить не могу, тормозит апаратная часть, и без нее не обойтись
, ни превью работать не будет, ни кубик. :(


 
Sapersky   (2007-12-11 18:58) [26]

Напоролся на косяк с выводом изображения через StretchBlt.
На экране превьюшки видно как ужасно он рисует сжатое изображение.


SetStretchBltMode(DC, HALFTONE);

Исправлена ошибка с запуском на машинах без поддершки шейдеров

Вываливается на glCreateProgramObjectARB.
Видео - интегрированная на i915, OpenGL-программы обычно не находят у неё поддержки шейдеров, хотя на самом деле 1.0/1.4 есть (шейдерные демки 3DMark2001 работают).
ExtString:
GL_ARB_DEPTH_TEXTURE GL_ARB_FRAGMENT_PROGRAM GL_ARB_MULTITEXTURE GL_ARB_POINT_PARAMETERS GL_ARB_SHADOW GL_ARB_TEXTURE_BORDER_CLAMP GL_ARB_TEXTURE_COMPRESSION GL_ARB_TEXTURE_CUBE_MAP GL_ARB_TEXTURE_ENV_ADD GL_ARB_TEXTURE_ENV_COMBINE GL_ARB_TEXTURE_ENV_DOT3 GL_ARB_TEXTURE_ENV_CROSSBAR GL_ARB_TRANSPOSE_MATRIX GL_ARB_VERTEX_PROGRAM GL_ARB_WINDOW_POS GL_EXT_ABGR GL_EXT_BGRA GL_EXT_BLEND_COLOR GL_EXT_BLEND_FUNC_SEPARATE GL_EXT_BLEND_MINMAX GL_EXT_BLEND_SUBTRACT GL_EXT_CLIP_VOLUME_HINT GL_EXT_COMPILED_VERTEX_ARRAY GL_EXT_CULL_VERTEX GL_EXT_DRAW_RANGE_ELEMENTS GL_EXT_FOG_COORD GL_EXT_MULTI_DRAW_ARRAYS GL_EXT_PACKED_PIXELS GL_EXT_RESCALE_NORMAL GL_EXT_SECONDARY_COLOR GL_EXT_SEPARATE_SPECULAR_COLOR GL_EXT_STENCIL_WRAP GL_EXT_TEXTURE_COMPRESSION_S3TC GL_EXT_TEXTURE_ENV_ADD GL_EXT_TEXTURE_ENV_COMBINE GL_EXT_TEXTURE_FILTER_ANISOTROPIC GL_EXT_TEXTURE3D GL_3DFX_TEXTURE_COMPRESSION_FXT1 GL_IBM_TEXTURE_MIRRORED_REPEAT GL_NV_BLEND_SQUARE GL_NV_TEXGEN_REFLECTION GL_SGIS_GENERATE_MIPMAP GL_WIN_SWAP_HINT

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


 
@!!ex ©   (2007-12-11 19:03) [27]

> SetStretchBltMode(DC, HALFTONE);

Ок. Спасибо! Как всегда выручаешь. :)

> Вываливается на glCreateProgramObjectARB.

ТОесть шейдеры у тебя опеределились, но компилятся не хочут?

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

шейдер бы посмотрел, уж ты то в нем точно разберешься, :)
просто BitMAp хранит цвет в BGR, соответственно его надо инвертировать, либо при загрузке(а это значит пользователь после нажатия клавиши лишнюю секунду будет медитировать на пустой экран), либо при рисовании(чем шейдер и занимается).


 
@!!ex ©   (2007-12-11 19:06) [28]

> SetStretchBltMode(DC, HALFTONE);

Результат отличный, спасибо!!!


 
@!!ex ©   (2007-12-11 19:12) [29]

> Вываливается на glCreateProgramObjectARB.
> Видео - интегрированная на i915, OpenGL-программы обычно
> не находят у неё поддержки шейдеров, хотя на самом деле
> 1.0/1.4 есть (шейдерные демки 3DMark2001 работают).
> ExtString:
> GL_ARB_DEPTH_TEXTURE GL_ARB_FRAGMENT_PROGRAM GL_ARB_MULTITEXTURE
> GL_ARB_POINT_PARAMETERS GL_ARB_SHADOW GL_ARB_TEXTURE_BORDER_CLAMP
> GL_ARB_TEXTURE_COMPRESSION GL_ARB_TEXTURE_CUBE_MAP GL_ARB_TEXTURE_ENV_ADD
> GL_ARB_TEXTURE_ENV_COMBINE GL_ARB_TEXTURE_ENV_DOT3 GL_ARB_TEXTURE_ENV_CR
> OSSBAR GL_ARB_TRANSPOSE_MATRIX GL_ARB_VERTEX_PROGRAM GL_ARB_WINDOW_POS
> GL_EXT_ABGR GL_EXT_BGRA GL_EXT_BLEND_COLOR GL_EXT_BLEND_FUNC_SEPARATE
> GL_EXT_BLEND_MINMAX GL_EXT_BLEND_SUBTRACT GL_EXT_CLIP_VOLUME_HINT
> GL_EXT_COMPILED_VERTEX_ARRAY GL_EXT_CULL_VERTEX GL_EXT_DRAW_RANGE_ELEMENT
> S GL_EXT_FOG_COORD GL_EXT_MULTI_DRAW_ARRAYS GL_EXT_PACKED_PIXELS
> GL_EXT_RESCALE_NORMAL GL_EXT_SECONDARY_COLOR GL_EXT_SEPARATE_SPECULAR_COL
> OR GL_EXT_STENCIL_WRAP GL_EXT_TEXTURE_COMPRESSION_S3TC GL_EXT_TEXTURE_ENV
> _ADD GL_EXT_TEXTURE_ENV_COMBINE GL_EXT_TEXTURE_FILTER_ANISOTROPIC
> GL_EXT_TEXTURE3D GL_3DFX_TEXTURE_COMPRESSION_FXT1 GL_IBM_TEXTURE_MIRRORED
> _REPEAT GL_NV_BLEND_SQUARE GL_NV_TEXGEN_REFLECTION GL_SGIS_GENERATE_MIPMA
> P GL_WIN_SWAP_HINT


Странно, что падает.
Поддержка шейдеров вроде у тебя есть.
GL_ARB_FRAGMENT_PROGRAM
GL_ARB_VERTEX_PROGRAM
Но падает еще даже до загрузки шейдера, при создании шейдерного объекта...
Значит шейдеры работаю както подругому чтоль?


 
Virgo_Style ©   (2007-12-11 19:20) [30]

Ну... вроде работает. Показывает куб с сюрреалистическими цветами :-) картинки на окошке-"превьюшке" выглядят довольно несимпатично.
Закрывается из меню нормально. Переход на другие десктопы работает.


 
@!!ex ©   (2007-12-11 19:28) [31]

http://ifolder.ru/4517263

v0.21 Alpha
Исправлено отображение десктопов в окне предварительного просмотра.
Исправлена ошибка с запуском на видеокартах с частичной поддержкой шейдеров, но без поддержки GLSL.


 
Sapersky   (2007-12-11 21:05) [32]

просто BitMAp хранит цвет в BGR, соответственно его надо инвертировать, либо при загрузке(а это значит пользователь после нажатия клавиши лишнюю секунду будет медитировать на пустой экран).

Если нужно скопировать экран в текстуру, то, например, в DX7 это можно сделать безо всяких промежуточных битмапов (если текстура того же формата, что и экранный буфер). Аппаратное копирование видео->видео, очень быстро.
Не знаю, как с этим в OGL.

Ещё относительно недавно обсуждался вариант софтверного инвертирования c MMX:
http://delphimaster.net/view/9-1193070314/


 
homm ©   (2007-12-11 21:17) [33]

> [0] @!!ex ©   (11.12.07 17:06)
> http://ifolder.ru/4515084
> 198 килобайт

Выложи на нормальном сервере, хотя бы на народе, а то «На данный момент иностранный трафик у этого файла превышает Российский.».


 
@!!ex ©   (2007-12-11 21:25) [34]

> Аппаратное копирование видео->видео, очень быстро.
> Не знаю, как с этим в OGL.

Мне все равно нужна картинка в битмапе, чтобы превью рисовать.


> Ещё относительно недавно обсуждался вариант софтверного
> инвертирования c MMX:
> http://delphimaster.net/view/9-1193070314/

В любом случае это медленнее, чем совсем без инвертирования, скорее всего сделаю софтверное инверирование функционально, для тех, у кого шейдеров нету, но это потом, все равно шейдеры приоритетно останутся.


> [33] homm ©   (11.12.07 21:17)
Ты через иностранный прокси чтоль? сорри. выложу попозднее. на народ фигово заливается.. :(


 
Efir   (2007-12-11 21:35) [35]

Не, ну а кто будет контекст OGL при закрытии освобождать? А то утилита видюхи думает что на компе после вечное 3D.


 
@!!ex ©   (2007-12-11 21:38) [36]

> [35] Efir   (11.12.07 21:35)

Кстати, да. Лоханулся...


 
homm ©   (2007-12-11 21:39) [37]

> [34] @!!ex ©   (11.12.07 21:25)
> В любом случае это медленнее, чем совсем без инвертирования,

А напрямую копировать видеопамять в любом случае быстрее, чем получать инвертированное изображение, что-бы отдать его опенжиэлю, что-бы тот его снова синвертировал.


> Ты через иностранный прокси чтоль?

Нет, челябинский провайдер. В прочем поледняя версия таки скачалась.

Зачем в меню 2 пункта «Show Preview/Hide Preview» ? Почему «Preview» имя собственное?


 
@!!ex ©   (2007-12-11 21:41) [38]

> А напрямую копировать видеопамять в любом случае быстрее,
> чем получать инвертированное изображение, что-бы отдать
> его опенжиэлю, что-бы тот его снова синвертировал.



> Мне все равно нужна картинка в битмапе, чтобы превью рисовать.



> Зачем в меню 2 пункта «Show Preview/Hide Preview» ? Почему
> «Preview» имя собственное?

Потому что это пока не та вещь, на которую хочеться отвлекаться чтобы исправить, все равно еще не понятно, как будет в итоге. Мелочь некритичная.


 
Efir   (2007-12-11 21:44) [39]


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


Как зачем, куб же состоит из вершин :)


 
homm ©   (2007-12-11 21:44) [40]

> [38] @!!ex ©   (11.12.07 21:41)
> Мне все равно нужна картинка в битмапе, чтобы превью рисовать.

Здрасти. Зачем тебе картинка в ОП, что-бы вывести превью на окошко?



Страницы: 1 2 3 вся ветка

Форум: "Прочее";
Текущий архив: 2008.01.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.6 MB
Время: 0.042 c
2-1197971090
Terc
2007-12-18 12:44
2008.01.20
Как узнать созданли компонент ?


2-1197961937
Alex_C
2007-12-18 10:12
2008.01.20
Двумерный открытый массив как параметр ф-ции


6-1178679440
nali
2007-05-09 06:57
2008.01.20
Зависание InternetOpenUrl


2-1197977411
Emish
2007-12-18 14:30
2008.01.20
Не выполняется SQL запрос через ADOQuery update [ #pay_order] set


2-1197979621
Konstantin
2007-12-18 15:07
2008.01.20
Удаление (в цикле) лишних знаков в strin-говом значении





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский