Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[DirectX] Do czego służy IDXGIDevice::GetParent() i IDXGIAdapter::GetParent()

Ostatnio zmodyfikowano 2015-03-28 22:12
Autor Wiadomość
debilek
Temat założony przez niniejszego użytkownika
[DirectX] Do czego służy IDXGIDevice::GetParent() i IDXGIAdapter::GetParent()
» 2014-12-03 05:23:38
mam coś takiego:

C/C++
IDXGIDevice * dxgiDevice = 0;
mD3dDevice->QueryInterface( __uuidof( IDXGIDevice ),( void ** ) & dxgiDevice );

IDXGIAdapter * dxgiAdapter = 0;
dxgiDevice->GetParent( __uuidof( IDXGIAdapter ),( void ** ) & dxgiAdapter );

IDXGIFactory * dxgiFactory = 0;
dxgiAdapter->GetParent( __uuidof( IDXGIFactory ),( void ** ) & dxgiFactory );

dxgiFactory->CreateSwapChain( mD3dDevice, & sd, & mSwapChain );



stanołem na pierwszym wywołaniu GetParent.
W dokumentacji pisze takie coś  "Gets the parent of the object".

ale czym jest ten rodzic??

prosze o pomoc niemoge tego zrozumieć

IDXGIDevice dziedziczy po IDXGIObject a ten dziedziczy po  IUnknown.

więc ten rodzic to jest IUnknow??

proszę o pomoc, rzucają ten kod w książkach i mało wytłumaczenia jeśli w ogóle dadzą
P-122040
1aam2am1
» 2014-12-03 09:34:07
Klasy mogą dziedziczyć po sobie.
Np:
C/C++
class Rodzic
{
public:
    void nazwa { std::cout << "rodzic"; }
}

class Dziecko
    : public Rodzic
{
public:
    void nazwa { std::cout << "dziecko"; }
}

Dziecko dziedziczy po rodzicu funkcje i inne elementy.
P-122046
debilek
Temat założony przez niniejszego użytkownika
» 2014-12-03 12:06:21
wiem czym jest dziedziczenie w c++, i jak wygląda, ale nie rozumiem ten metody w tym konkretnym przypadku.
W książce rzucili ten kod że ak ma być i zero wyjaśnienia.

Rodzicem dla IDXGIDevice jest IDXGIObject, ale dlaczego do parametrów tej metody przekazuje się wskaźnik na IDXGIAdapter??
czyżby rzutowanie w dół.
P-122051
Jacob99
» 2014-12-03 20:07:48
Masz napisane ładnie w MSDN http://msdn.microsoft.com​/en-us/library/windows/desktop​/bb174542%28v=vs.85%29.aspx

riid [in]

    Type: REFIID

    The ID of the requested interface.
Czyli ID żądanego urządzenia.

A tymczasem w MSDN...
http://msdn.microsoft.com​/en-us/library/windows/desktop​/bb174523%28v=vs.85%29.aspx

The IDXGIAdapter interface represents a display sub-system (including one or more GPU's, DACs and video memory).

I chyba wszystko jasne :)

Pierwszy argument IDXGIDevice::GetParent jest ID interfejsu od którego chcemy uzyskać rodzica, a IDXGAdapter jest właśnie klasą interfejsu.
P-122101
debilek
Temat założony przez niniejszego użytkownika
» 2014-12-04 23:51:53
No właśnie dalej nie jest jasne :/
Skoro chce uzyskać  rodzica od interfejsu IDXGAdapter
to dlaczego używam IDXGIDevice::GetParent
a nie IDXGAdapter::GetParent

GetParent powinno zwrócić rodzica a nim jest IDXGIObject i dla IDXGIDevice i dla IDXGIAdapter.
Tymczasem my tam możemy podawać parametry i mi to wygląda że rodzica rzutujemy na typ który podamy w parametrach
P-122239
debilek
Temat założony przez niniejszego użytkownika
» 2015-03-28 22:03:17
odświeżam
P-129393
Brunon3
» 2015-03-28 22:12:31
Mi to wygląda na taki system jak w Unity...

Heh, czytam temat i myślę sobie: "trafny nick sobie wybrał". :D (Bez obrazy oczywiście). :)

-BD.
P-129394
« 1 »
  Strona 1 z 1