Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Problemy z modułem Shader
#1
Okay, szukałem go tutaj i szukałem informacji, ale nic nie znalazłem. Mam nadzieję, że ktoś tutaj pomoże mi rozwiązać problem. IDIRECT3DPIXELSHADER9 nie będzie poprawnie zdefiniowany.       Kod:   #include <d3d9.h> #include <d3dx9.h> #pragma comment (lib, "d3d9.lib") #pragma comment (lib, "d3dx9.lib") IDIRECT3DPIXELSHADER9 LightBlue; IDIRECT3DPIXELSHADER9 Różowy;       Kod:   HRESULT GenerateShader (IDirect3DDevice9 * pDevice, IDirect3DPixelShader9 ** pShader, czerwony float, float green, float blue, float alpha) {ID3DXBuffer * pShaderBuf = NULL; char szShader [256]; sprintf (szShader, "ps.1.1 \ ndef c0,% f,% f,% f,% f \ nmov r0, c0", czerwony / 255, zielony / 255, niebieski / 255, alfa / 255); D3DXAssembleShader (szShader, sizeof (szShader), NULL, NULL, 0 i pShaderBuf, NULL); if (FAILED (pDevice -> CreatePixelShader ((const DWORD *) pShaderBuf -> GetBufferPointer (), pShader))) zwraca E_FAIL; return S_OK; }       Kod:   GenerateShader (pDevice, LightBlue, 0, 220, 255, 255); GenerateShader (pDevice, Pink, 255, 80, 255, 255);       Kod:   if (m_Stride == 32 && 40 && 36) {pDevice -> SetRenderState (D3DRS_ZENABLE, D3DZB_FALSE); pDevice -> SetRenderState (D3DRS_ZFUNC, D3DCMP_NEVER); pDevice -> SetPixelShader (różowy); pDrawIndexedPrimitive (pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount); pDevice -> SetRenderState (D3DRS_ZENABLE, D3DZB_TRUE); pDevice -> SetRenderState (D3DRS_ZFUNC, D3DCMP_LESSEQUAL); pDevice -> SetPixelShader (LightBlue); }}     Błędy-       Kod:   1>. \ c Główne. cpp (19): błąd C2146: błąd składni: brakujący ";" przed identyfikatorem "LightBlue" 1>. \ c Główne. cpp (19): błąd C4430: brak specyfikatora typu - int przyjęto. Uwaga: C ++ nie obsługuje ustawień domyślnych - int 1>. \ c Główne. cpp (19): błąd C4430: brak specyfikatora typu - int przyjęto. Uwaga: C ++ nie obsługuje ustawień domyślnych - int 1>. \ c Główne. cpp (20): błąd C2146: błąd składni: brakujący ";" przed identyfikatorem "Różowy" 1>. \ c Główne. cpp (20): błąd C4430: brak specyfikatora typu - int przyjęto. Uwaga: C ++ nie obsługuje ustawień domyślnych - int 1>. \ c Główne. cpp (20): błąd C2086: "int IDIRECT3DPIXELSHADER9": redefinicja 1>. \ c Główne. cpp (19): patrz deklaracja "IDIRECT3DPIXELSHADER9" 1>. \ c Główne. cpp (20): błąd C4430: brak specyfikatora typu - int przyjęto. Uwaga: C ++ nie obsługuje ustawień domyślnych - int 1>. \ c Główne. cpp (346): błąd C2664: "GenerateShader": nie można przekonwertować parametru 2 z "int" na "IDirect3DPixelShader9 **" 1> Konwersja z typu całkującego do typu wskaźnika wymaga reinterpret_cast, C-style cast lub function-style cast 1>. \ c Główne. cpp (347): błąd C2664: "GenerateShader": nie można przekonwertować parametru 2 z 'int' na 'IDirect3DPixelShader9 **' 1> Konwersja z typu całkującego do typu wskaźnika wymaga reinterpret_cast, C-style cast lub function-style cast 1>. \ c Główne. cpp (361): błąd C2664: "IDirect3DDevice9 :: SetPixelShader": nie można przekonwertować parametru 1 z "int" na "IDirect3DPixelShader9 *" 1> Konwersja z typu całku do typu wskaźnika wymaga reinterpret_cast, C-style cast lub function-style cast 1 >. \ c Główne. cpp (365): błąd C2664: "IDirect3DDevice9 :: SetPixelShader": nie można przekonwertować parametru 1 z "int" na "IDirect3DPixelShader9 *" 1> Konwersja z typu całku do typu wskaźnika wymaga reinterpret_cast, C-style cast lub function-style cast   ================== Łącze SDK Directx ================= C: \ Program Files (x86) \ Microsoft DirectX SDK (sierpień 2009) \ Lib \ x86 C: \ Program Files (x86) \ Microsoft DirectX SDK (sierpień 2009) \ Include   Próbowałem też z czerwcem 2010 roku, bez powodzenia.
Reply
#2
IDirect3DPixelShader9 * LightBlue; IDirect3DPixelShader9 * Różowy; GenerateShader (pDevice i LightBlue, 0, 220, 255, 255); GenerateShader (pDevice, i Pink, 255, 80, 255, 255);
Reply
#3
Dzięki, zadziałało.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)