Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
peterbub JLI'ler
Anmeldedatum: 24.07.2005 Beiträge: 109
Medaillen: Keine
|
Verfasst am: 14.12.2005, 02:25 Titel: Linie ziehen |
|
|
Hallo ich möchte eine Linie ziehen und habe in ein Beispiel aus dem Buch
jetzt...
in der Class DIRECT3D
void CDirect3D::DrawEllipse(int x1,int y1, int x2, int y2, LPDIRECT3DSURFACE9 lpSurface)
kopiert und ein wenig verändert in
CPP: | void CDirect3D::DrawLine(int x1,int y1, int x2, int y2, LPDIRECT3DSURFACE9 lpSurface)
{
HDC hDC;
if(FAILED(lpSurface->GetDC(&hDC)))
{
DXTRACE_MSG("DC ist nicht verfügbar");
}
else
{
HPEN farbe = CreatePen(PS_SOLID,1,RGB(0,255,255));
SelectObject(hDC,farbe);
MoveToEx(hDC,x1,y1,NULL);
LineTo(hDC,x2,y2);
lpSurface->ReleaseDC(hDC);
}
}
|
geht wunderbar aber nach ca 5 - 10 minuten,
verschwindet der Strich ( wird die selbe Hintergrundfarbe)
bietet d3d andere möglichkeiten oder was mach ich falsch
Gruß peterbub |
|
Nach oben |
|
 |
David Super JLI'ler
Alter: 40 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
Verfasst am: 14.12.2005, 08:52 Titel: |
|
|
Hi!
Fünf bis zehn Minuten? Seltsam... Ich hätte jetzt evtl auf Doublebuffering getippt, meine das du den Backbuffer immer schön löschst und so die "alten" Linien nicht neuzeichnest.
Aber du machst ja nicht alle fünf bis zehn Minuten einen Flip!
grüße |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
 |
FH Super JLI'ler
Alter: 37 Anmeldedatum: 16.10.2004 Beiträge: 438
Medaillen: Keine
|
Verfasst am: 14.12.2005, 10:29 Titel: |
|
|
Hast du dafür gesorgt, dass bei der Nachricht WM_PAINT der Strich neu gezeichnet wird?
Und das Surface brav angezeigt wird?
Gruß
FH _________________ goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
 |
Dragon Super JLI'ler

Alter: 38 Anmeldedatum: 24.05.2004 Beiträge: 340 Wohnort: Sachsen Medaillen: Keine
|
Verfasst am: 14.12.2005, 11:30 Titel: |
|
|
Warum erzeugst du bei jedem Aufruf der Methode DrawLine den Pinsel neu? Recht es nicht, wenn man den einmal erzeugt? Oder du musst ihn wieder freigeben, mit DeleteObject oder so. _________________ Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung |
|
Nach oben |
|
 |
peterbub JLI'ler
Anmeldedatum: 24.07.2005 Beiträge: 109
Medaillen: Keine
|
Verfasst am: 14.12.2005, 13:14 Titel: |
|
|
UI
hab jetzt mal :
benutzt und es scheind zu funktionieren.
Aber gibt es keine aderen Funktionen Linien zu ziehen? |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
 |
FH Super JLI'ler
Alter: 37 Anmeldedatum: 16.10.2004 Beiträge: 438
Medaillen: Keine
|
Verfasst am: 14.12.2005, 21:15 Titel: |
|
|
Patrick hat Folgendes geschrieben: | FH
Frage: WAS hat Direct3D mit WM_PAINT zu tun?
Direct3D überlagert die Windows GDI, daher wird WM_PAINT überflüssig |
Ups... Sry
FH _________________ goto work, send your kids to school
follow fashion, act normal
walk on the pavement, watch T.V.
save for your old age, obey the law
Repeat after me: I am free |
|
Nach oben |
|
 |
|