Аномалия в дх

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

Lord_Satan
Обычный пользователь
Обычный пользователь
 
Сообщения: 76
Зарегистрирован: 08.12.2001 (Сб) 10:26
Откуда: П.-К.

Аномалия в дх

Сообщение Lord_Satan » 04.03.2004 (Чт) 5:48

в оконом режиме не работает команда dx7:

m_d3dd.Clear 1&, m_d3drVP(), D3DCLEAR_TARGET, &HFF&, 0!, 0&

при каждом запуске, в заднем буфере остаются "следы" предыдущих запусков, даже после перезагрузки компа!!!

запускаю чужой пример, всё работает окошко синие, а моё со следами спрайтов с прошлого сеанса запуска движка, или со следами последнего запущенного проекта...

просмотрел код раз двадцать вроде все как у других, фиг знает, раньше работало(пол года назад)
Space Ace says: "Whant to be a DREAD courier?"

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 04.03.2004 (Чт) 11:20

Я, конечно, в седьмом DX не шарю, но по аналогии с восьмым подозреваю, что предпоследний параметр должен быть единица:

m_d3dd.Clear 1&, m_d3drVP(), D3DCLEAR_TARGET, &HFF&, 1!, 0&

Lord_Satan
Обычный пользователь
Обычный пользователь
 
Сообщения: 76
Зарегистрирован: 08.12.2001 (Сб) 10:26
Откуда: П.-К.

Сообщение Lord_Satan » 04.03.2004 (Чт) 14:25

Без разницы, 0 или 1

Инициализация самая обычная...

Public Function Screen_ResizeWindowed() As Boolean
m_frm.ScaleMode = vbPixels
m_lWidth = m_frm.ScaleWidth
m_lHeight = m_frm.ScaleHeight

Dim ddsd As DDSURFACEDESC2
With ddsd
.lFlags = DDSD_CAPS + DDSD_HEIGHT + DDSD_WIDTH
.ddsCaps.lCaps = DDSCAPS_3DDEVICE + DDSCAPS_OFFSCREENPLAIN + DDSCAPS_VIDEOMEMORY
.lWidth = m_lWidth
.lHeight = m_lHeight
End With
Set m_ddsBack = m_dd.CreateSurface(ddsd)

Screen_ResizeWindowed = True
End Function

Public Function Screen_SetWindowed(ByRef oForm As Object) As Boolean
If (m_dx.SystemBpp <= 8&) Then Exit Function
'
Set m_frm = oForm
'
Set m_dd = m_dx.DirectDrawCreate(vbNullString)
With m_dd
.SetCooperativeLevel oForm.hWnd, DDSCL_NORMAL

Dim ddsd As DDSURFACEDESC2
With ddsd
.lFlags = DDSD_CAPS
.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE + DDSCAPS_VIDEOMEMORY
End With
Set m_ddsFront = .CreateSurface(ddsd)

Set m_ddc = .CreateClipper(0&)
m_ddc.SetHWnd oForm.hWnd
m_ddsFront.SetClipper m_ddc
End With
'
If Not (Screen_ResizeWindowed) Then Exit Function
'
Set m_d3d = m_dd.GetDirect3D

Dim d3ded As Direct3DEnumDevices
Set d3ded = m_d3d.GetDevicesEnum
Set m_d3dd = m_d3d.CreateDevice(d3ded.GetGuid(d3ded.GetCount), m_ddsBack)

With m_d3dvp
.lWidth = m_lWidth
.lHeight = m_lHeight
.lx = 0&
.ly = 0&
.minz = 0!
.maxz = 1!
End With

With m_d3dd
.SetViewport m_d3dvp

.SetRenderState D3DRENDERSTATE_DESTBLEND, D3DBLEND_ONE
.SetRenderState D3DRENDERSTATE_SRCBLEND, D3DBLEND_ONE

.SetTextureStageState 0&, D3DTSS_MAGFILTER, D3DTFG_LINEAR
.SetTextureStageState 0&, D3DTSS_MINFILTER, D3DTFN_LINEAR
End With

With m_d3drVP(0)
.x1 = m_d3dvp.lx
.y1 = m_d3dvp.ly
.x2 = m_d3dvp.lWidth
.y2 = m_d3dvp.lHeight
End With
'
Screen_SetWindowed = True
End Function
Space Ace says: "Whant to be a DREAD courier?"

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 04.03.2004 (Чт) 22:11

:shock: Сорри, не в тему.

Lord_Satan, ты случаем не писал движок для Pokefight'a?
И вообще ник "Раф" тебе знаком?

Lord_Satan
Обычный пользователь
Обычный пользователь
 
Сообщения: 76
Зарегистрирован: 08.12.2001 (Сб) 10:26
Откуда: П.-К.

Сообщение Lord_Satan » 30.03.2004 (Вт) 1:18

Как эту тему закрыть, а то я на dx9 перешол


d3drm писал(а)::shock: Сорри, не в тему.

Lord_Satan, ты случаем не писал движок для Pokefight'a?
И вообще ник "Раф" тебе знаком?


Да и знаком
Space Ace says: "Whant to be a DREAD courier?"


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

    TopList