Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
SIntroVertex aVertex[4]; tbDirect3D& D3D = tbDirect3D::Instance(); D3D->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, tbColor(0.0f, 0.0f, 0.0f), 1.0f, 0); D3D->BeginScene(); D3D.SetFVF(SIntroVertex::dwFVF); D3D.SetTexture(0, m_pVideo->GetRenderer()->GetTexture()); D3D.SetRS(D3DRS_ZENABLE, D3DZB_FALSE); aVertex[0].vPosition = tbVector3( 0.0f, D3D.GetScreenSize().y , 0.0f); aVertex[0].fRHW = 1.0f; aVertex[0].Color = tbColor( 0.0f, 0.0f, 0.0f); aVertex[0].vTex0 = tbVector2( 0.0f, m_pVideo->GetRenderer()->GetBottomRightTex().y); aVertex[1].vPosition = tbVector3( 0.0f, 0.0f, 0.0f); aVertex[1].fRHW = 1.0f; aVertex[1].Color = tbColor( 1.0f, 0.0f, 0.0f); aVertex[1].vTex0 = tbVector2( 0.0f, 0.0f); aVertex[2].vPosition = tbVector3( D3D.GetScreenSize().x, D3D.GetScreenSize().y, 0.0f); aVertex[2].fRHW = 1.0f; aVertex[2].Color = tbColor( 0.0f, 0.0f, 2.0f); aVertex[2].vTex0 = tbVector2( m_pVideo->GetRenderer()->GetBottomRightTex()); aVertex[3].vPosition = tbVector3( D3D.GetScreenSize().x, 0.0f, 0.0f); aVertex[3].fRHW = 1.0f; aVertex[3].Color = tbColor( 0.0f, 1.0f, 0.0f); aVertex[3].vTex0 = tbVector2( m_pVideo->GetRenderer()->GetBottomRightTex().x, 0.0f); D3D->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, aVertex, sizeof(SIntroVertex)); D3D->EndScene(); m_pVideo->NextFrame(); |
C-/C++-Quelltext |
|
1 |
m_pVideo->Process(); |
Zitat
(Kapitel 9.3.2.1 Warum ein eigener Filter?)
Der normale DirectShow-Video-Renderer [...] arbeitet normalerweise nur im Fenstermodus (es öffnet sich dann automatisch ein neues Fenster, in dem das Video abgespielt wird. [...] Wohl oder übel bedeutet das, das wir einen eigenen Video-Renderer schreiben müssen [...]
C-/C++-Quelltext |
|
1 |
D3D.SetTexture(0, m_pVideo->GetRenderer()->GetTexture()); |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
- m_pReader 0x00000000 CMemReader * - CAsyncReader {m_csFilter={...} m_Io={...} m_OutputPin={...} ...} CAsyncReader - CBaseFilter {m_State=??? m_pClock=??? m_tStart={...} ...} CBaseFilter + CUnknown {m_pUnknown=??? m_cRef=??? } CUnknown + IBaseFilter {...} IBaseFilter + IAMovieSetup {...} IAMovieSetup m_State CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden m_pClock CXX0017: Fehler: Symbol "" nicht gefunden + m_tStart {m_time=??? } CRefTime + m_clsid {????????-????-????-????-????????????} _GUID m_pLock CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden m_pName CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden m_pGraph CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden m_pSink CXX0017: Fehler: Symbol "" nicht gefunden m_PinVersion CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden + m_csFilter {m_CritSec={...} m_currentOwner=??? m_lockCount=??? ...} CCritSec + m_Io {m_csReader={...} m_pStream=??? m_csLists={...} ...} CAsyncIo + m_OutputPin {m_pReader=??? m_pIo=??? m_bQueriedForAsyncReader=??? } CAsyncOutputPin + m_mt {...} CMediaType - m_pStream 0x00000000 {m_csLock={...} m_pbData=??? m_llLength=??? ...} CMemStream * + CAsyncStream {...} CAsyncStream + m_csLock {m_CritSec={...} m_currentOwner=??? m_lockCount=??? ...} CCritSec m_pbData CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden m_llLength CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden m_llPosition CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden m_dwKBPerSec CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden m_dwTimeStart CXX0030: Fehler: Ausdruck kann nicht ausgewertet werden |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
tbDirect3D& D3D = tbDirect3D::Instance(); CVertex aVertex[4]; D3D.SetFVF(CVertex::dwFVF); D3D.SetTexture(0, m_pVideo->GetRenderer()->GetTexture()); aVertex[0].vPos = tbVector3(0.0f, D3D.GetScreenSize().y, 0.5f); aVertex[0].fRHW = 1.0f; aVertex[0].vTex = tbVector2(0.0f, m_pVideo->GetRenderer()->GetBottomRightTex().y); aVertex[1].vPos = tbVector3(0.0f, 0.0f, 0.0f); aVertex[1].fRHW = 1.0f; aVertex[1].vTex = tbVector2(0.0f, 0.0f); aVertex[2].vPos = tbVector3(D3D.GetScreenSize().x, D3D.GetScreenSize().y, 0.5f); aVertex[2].fRHW = 1.0f; aVertex[2].vTex = m_pVideo->GetRenderer()->GetBottomRightTex(); aVertex[3].vPos = tbVector3(D3D.GetScreenSize().x, 0.0f, 0.5f); aVertex[3].fRHW = 1.0f; aVertex[3].vTex = tbVector2(m_pVideo->GetRenderer()->GetBottomRightTex().x, 0.0f); D3D->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, aVertex, sizeof(CVertex)); D3D->EndScene(); m_pVideo->NextFrame(); return TB_OK; } |
Werbeanzeige