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

Maxi

Treue Seele

  • »Maxi« ist der Autor dieses Themas

Beiträge: 136

Wohnort: Müncheberg

Beruf: Ich muss noch in die Schule

  • Private Nachricht senden

1

21.12.2003, 00:00

DrawPrimitiveUP funzt net

Hi!

Quellcode

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// Das Vertexformat für die Console
#define ME_CONSOLE_VERTEXFVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)

// Definiert Veritizes fpr Console
struct meConsoleVertex
{
  float x, y, z, rhw;
  DWORD diffuse;
};

// Rendern: 
if(m_PosY == 0) return ME_OK;
meConsoleVertex Vertices[6];
mePoint TL/*TopLeft*/, BR/*BottomRight*/;

TL.x = (me_g_D3D->GetScreenWidth() - m_SizeX) / 2;
TL.y = 0;
BR.x = (me_g_D3D->GetScreenWidth() - m_SizeX) / 2 + m_SizeX;
BR.y = m_PosY;
Vertices[TOPLEFT].x = TL.x;
Vertices[TOPLEFT].y = TL.y;
    
Vertices[BOTTOMLEFT_T1].x = TL.x;
Vertices[BOTTOMLEFT_T1].y = BR.y;
Vertices[BOTTOMLEFT_T2] = Vertices[BOTTOMLEFT_T1];

Vertices[TOPRIGHT_T1].x = TL.x;
Vertices[TOPRIGHT_T1].y = BR.y;
Vertices[TOPRIGHT_T2] = Vertices[TOPRIGHT_T1];

Vertices[BOTTOMRIGHT].x = BR.x;
Vertices[BOTTOMRIGHT].y = BR.y;

for(int i = 0; i < 6; i++)
{
  Vertices[i].rhw = 1.0f;
  Vertices[i].z = 0.0f;
  Vertices[i].diffuse = m_BGColor;
}

// Alpahblending aktivieren
me_g_D3D->SetRS(D3DRS_ALPHABLENDENABLE, FALSE);
me_g_D3D->SetRS(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
me_g_D3D->SetRS(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);

// VertexFVF setzen
me_g_D3D->SetFVF(ME_CONSOLE_VERTEXFVF);

// Rendern
me_g_D3D->GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 2, Vertices, sizeof(meConsoleVertex));

me_g_D3D->SetRS(D3DRS_ALPHABLENDENABLE, FALSE);


Wenn ich das aber so mache, dann sehe ich das Rechteck nicht auf dem Bildschirm nciht. Woran kann das liegen?

Gruß, Maxi
Gruß, Maxi

Hier, die Homepage von meiner Band:
www.maxis-house.de

Könnt euch unsere ersten Songs saugen...

2

21.12.2003, 12:51

du musst zuerst eine die Bildschrimbuffer über Clear clearen, danach eine Szene beginnen und dann erst DrawPrimitiveUP verwenden

danach beendest du die Szene(EndScene) und stellst die Szene dar(Present)


am besten liest dir nochmal ein paar Tutorials oder (falls vorhanden) die Kapitel 2.6 oder so in Davids Buch nach ;D
Do, ut des!
Ceterum censeo, carthaginem delendam esse

3

21.12.2003, 18:38

me_g_D3D->GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 2, (char**)&Vertices, sizeof(meConsoleVertex));

Maxi

Treue Seele

  • »Maxi« ist der Autor dieses Themas

Beiträge: 136

Wohnort: Müncheberg

Beruf: Ich muss noch in die Schule

  • Private Nachricht senden

4

21.12.2003, 18:51

naja, das mit Clear und so ist mir klar :)

Aber jetzt klappt es sowieso...
Ich weiß nur nicht wieso geht auch ohne (char**)...
Gruß, Maxi

Hier, die Homepage von meiner Band:
www.maxis-house.de

Könnt euch unsere ersten Songs saugen...

5

21.12.2003, 19:55

jo, kann schon sein das es auch ohne char**& geht war nur so ne idee.

Werbeanzeige