#Include <САБЖ>
Собственно как это сделать (чтобы рендерилось на рабочем столе)
с помощью DirectX (желательно OpenGL)
Модератор: Mikle
с помощью DirectX (желательно OpenGL)
Mikle писал(а):Юморист.
наверное:
с помощью DirectX (желательно Direct3D) ?
Видимо в CreateDevice нужно подставить hWnd рабочего стола ?
Нельзя рендерить на рабочий стол (во всякомслучае на DX) .... Приблизительно так написано где-то в SDK(может не так, но смысл тот же)...Хой писал(а):Кстати с hWnD рабочего стола ничёго не выходит, хоть я крутил и так и сяк!!!!
Vovik писал(а):Нельзя рендерить на рабочий стол (во всякомслучае на DX) .... Приблизительно так написано где-то в SDK(может не так, но смысл тот же)...
Хой писал(а):Ну то что вообще нельзя на него рендерить, это не правда!
в Winamp 5 есть виз. плагин, каторый рендерит на рабочий стол!!!!
они ведь как-то это сделали....
И ещё я как-то давно видел прогу, каторая проигрывала AVI на рабочем столе!
xolod писал(а):Ну допустим winamp как вы выражаетесь "умел рендерить на рабочий стол" еще со 2 версии. К тому же там не используется ни OpenGL, ни тем более DirectX. Есть такая функция у wind'ы, overlay на рабочий стол называется. Это как вывод видео, только на десктоп.
Как сделать? MSDN.
Option Explicit
Dim dx As New DirectX7
Dim dd As DirectDraw7
Dim ds As DirectDrawSurface7
Dim desc As DDSURFACEDESC2
Sub DirectInit()
Set dd = dx.DirectDrawCreate("")
dd.SetCooperativeLevel 0, DDSCL_NORMAL
desc.lFlags = DDSD_CAPS
desc.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE
Set ds = dd.CreateSurface(desc)
End Sub
Tarantul писал(а):Я бы посоветовал это делать через DirectDraw, тут без разницы, куда выводить изображение - хоть на рабочий стол, хоть на VB.
Создаешь первичную поверхность, и на ней рисуеш.
- Код: Выделить всё
Option Explicit
Dim dx As New DirectX7
Dim dd As DirectDraw7
Dim ds As DirectDrawSurface7
Dim desc As DDSURFACEDESC2
Sub DirectInit()
Set dd = dx.DirectDrawCreate("")
dd.SetCooperativeLevel 0, DDSCL_NORMAL
desc.lFlags = DDSD_CAPS
desc.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE
Set ds = dd.CreateSurface(desc)
End Sub
Переданый HWND не имеет ни какого значения. Теперь через функции ds(первичной поверхности) рисуем прямо на экране
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7