Du bist nicht angemeldet.

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

1

01.08.2008, 00:08

DrawPrimitive Problem

hi,

ich habe ein problem:
DrawPrimitive gibt D3DERR_INVALIDCALL zurück und in der Doku steht nix hilfreiches dazu ...
es soll ein viereck gerendert werden das aus vier dreiecken besteht und eine Trianglelist ist.
Im vertexbuffer sind alle vertrices drin, das habich geprüft...
Aber was ich auch mache ich finde einfach nicht den fehler ...
DirectX debug runtime kann ich nicht verwenden da ich codeblocks mit dem mingw compiler nutze.
http://rafb.net/p/pAHTrV85.html

weiß vllt einer von euch wo der fehler ist ?

2

01.08.2008, 09:41

Könnte an deiner Vertexdeklaration liegen.
Kannst ja mal folgendes probieren:

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
// Deklaration im Header

struct VERTEX_DECL
{
    D3DXVECTOR3 pos;
    D3DCOLOR    colour;
    static IDirect3DVertexDeclaration9* Decl;
};


// Definition

IDirect3DVertexDeclaration9* VERTEX_DECL::Decl = 0;

D3DVERTEXELEMENT9 VertexElements[] = 
{
    {0, 0,  D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
    {0, 12, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR, 0},
    D3DDECL_END()
};  

m_lpD3DDevice->CreateVertexDeclaration( VertexElements, &VERTEX_DECL::Decl );

...

m_lpD3DDevice->SetVertexDeclaration( VERTEX_DECL::Decl );

3

01.08.2008, 11:21

Nachtrag:
ggf. SetFVF (gutes Beispiel dazu in der DX-Doku) statt SetVertexDeclaration verwenden

4

01.08.2008, 19:15

Zitat von »"TrikkieMikkie"«

Könnte an deiner Vertexdeklaration liegen.
Kannst ja mal folgendes probieren:

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
// Deklaration im Header

struct VERTEX_DECL
{
    D3DXVECTOR3 pos;
    D3DCOLOR    colour;
    static IDirect3DVertexDeclaration9* Decl;
};


// Definition

IDirect3DVertexDeclaration9* VERTEX_DECL::Decl = 0;

D3DVERTEXELEMENT9 VertexElements[] = 
{
    {0, 0,  D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
    {0, 12, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR, 0},
    D3DDECL_END()
};  

m_lpD3DDevice->CreateVertexDeclaration( VertexElements, &VERTEX_DECL::Decl );

...

m_lpD3DDevice->SetVertexDeclaration( VERTEX_DECL::Decl );

Funktioniert auch nicht ^^

Zitat


Nachtrag:
ggf. SetFVF (gutes Beispiel dazu in der DX-Doku) statt SetVertexDeclaration verwenden

Ne ich bin grade dabei auf vertexdeclarations rüberzuwechseln, da die mächtiger sind als das FVF.

Werbeanzeige