SetVertexShader und SetStreamSource Problem



  • Guten Morgen,

    Ich arbeite gerade an einem Skript, dass ich von einem Tutorial für DirectX8 abschreibe und für DirectX9 funktionsfähig machen will.
    http://www.drunkenhyena.com/docs/d3d8/d3d_lesson2a.phtml <<-- Wen's interessiert...

    1. Problem:

    #define D3D9T_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)
    ...
    g_d3d_device->SetVertexShader(D3D9T_CUSTOMVERTEX);
    

    Ich bekomme diese Fehlermeldung:

    E:\C++\directx\main.cpp(398) : error C2664: 'SetVertexShader' : cannot convert parameter 1 from 'char [29]' to 'struct IDirect3DVertexShader9 *'
            Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    

    Ich komme da leider nicht weiter...

    2. Problem:
    Code:

    g_d3d_device->SetStreamSource(0, g_triangle, sizeof(my_vertex));
    

    Fehler:

    E:\C++\directx\main.cpp(402) : error C2660: 'SetStreamSource' : function does not take 3 parameters
    

    Was???
    In der msdn steht diese Definition:

    publicVoidSetStreamSource(Int32,VertexBuffer,Int32)
    

    Was mache ich falsch?Oder liegt es einfach daran, dass mein 1. Problem(dass steht ja vor SetStreamSource) das 2. Problem verursacht?



  • V 9 1 9 V schrieb:

    1. Problem:

    #define D3D9T_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)
    ...
    g_d3d_device->SetVertexShader(D3D9T_CUSTOMVERTEX);
    

    Ich bekomme diese Fehlermeldung:

    E:\C++\directx\main.cpp(398) : error C2664: 'SetVertexShader' : cannot convert parameter 1 from 'char [29]' to 'struct IDirect3DVertexShader9 *'
            Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    

    IDirect3DDevice9::SetFVF ist in D3D9 was IDirect3DDevice8::SetVertexShader in D3D8 war.

    V 9 1 9 V schrieb:

    2. Problem:
    Code:

    g_d3d_device->SetStreamSource(0, g_triangle, sizeof(my_vertex));
    

    Fehler:

    E:\C++\directx\main.cpp(402) : error C2660: 'SetStreamSource' : function does not take 3 parameters
    

    Was???
    In der msdn steht diese Definition:

    publicVoidSetStreamSource(Int32,VertexBuffer,Int32)
    

    Was mache ich falsch?Oder liegt es einfach daran, dass mein 1. Problem(dass steht ja vor SetStreamSource) das 2. Problem verursacht?

    Also in meiner Doku steht:

    HRESULT SetStreamSource( UINT StreamNumber,
    IDirect3DVertexBuffer9 *pStreamData,
    UINT OffsetInBytes,
    UINT Stride
    );

    Besorg dir halt mal die Dx9 Doku, da du anscheinend noch die 8er Dx Doku benutzt aber mit Dx9 programmieren willst.



  • IDirect3DDevice9::SetFVF ist in D3D9 was IDirect3DDevice8::SetVertexShader in D3D8 war.

    nunja, SetVertexShader() macht in DX9 nurmehr das was der name auch sagt...
    zum setzen des FVF gibts jetzt eben SetFVF().



  • Danke, dass hat funktioniert! 😉
    Habe in der msdn online nochmal geguckt.Ich bin irgendwie im Archiv gelandet 😃


Anmelden zum Antworten