IRC Logs for #zfx


2024-04-28

07:15:34 Biolunar joined the channel
08:50:51 Magister joined the channel
09:11:24 Schrompf joined the channel
13:35:18 efjam88 joined the channel
13:35:31 efjam88: sers, ich stör mal wieder
13:36:28 efjam88: ich hab n bug bissl eingegrenzt
13:36:55 efjam88: lpDvc->SetTexture(0,lpFieldTex);
13:36:56 efjam88: lpDvc->DrawPrimitive(D3DPT_TRIANGLELIST,0,2);
13:37:43 efjam88: lpDvc -> DirectX Device
13:38:35 efjam88: bzw
13:38:35 efjam88: lpDvc->SetStreamSource(0,lpBitmapBuf,0,sizeof(cFJMVtx));
13:38:35 efjam88: lpDvc->DrawPrimitive(D3DPT_TRIANGLELIST,0,2);
13:39:44 efjam88: aber wenn ich lpDvc->DrawPrimitive(); rausnehe
13:40:04 efjam88: rausnehme geht mit programm immernoch nicht
13:40:17 efjam88: "meine Programm"
13:40:33 Schrompf: du fängst schon wieder in der mitte an
13:40:36 efjam88: sry
13:40:38 Schrompf: Was hast Du vor?
13:41:02 efjam88: ich bin immernoch an meinem game
13:41:11 efjam88: das hat auch schon funktioniert
13:42:00 efjam88: das hängt halt wenn man ich zwischen 2 spielern ein verbidung aufbaut
13:42:12 efjam88: "Verbindung"
13:42:33 Schrompf: in wiefern ist das eine antwort auf "was hast du vor?" irgendwelche verbindungen werden ja wohl kaum was mit zwei drawcalls zu tun haben
13:42:48 Schrompf: konzentrier dich mal bitte und antworte exakt auf die frage
13:43:20 Schrompf: ok, "im kontext des problems". langfristig willst du ja wirklich ein programm, was ne verbindung aufbaut :-)
13:43:43 efjam88: lpDvc->BeginScene();
13:43:43 efjam88: lpDvc->Clear(NULL,0,D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER,0xFF0080FF,1.0f,0);
13:43:43 efjam88: lpDvc->SetFVF(fjmVtx);
13:43:43 efjam88: lpDvc->SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE);
13:43:43 efjam88: lpDvc->SetRenderState(D3DRS_LIGHTING,false);
13:43:44 efjam88: lpDvc->StretchRect(lpBgSfc,NULL,lpSfc,NULL,D3DTEXF_LINEAR);
13:43:46 efjam88: lpDvc->SetStreamSource(0,lpFieldBuf,0,sizeof(cFJMVtx));
13:43:48 efjam88: lpDvc->SetTexture(0,lpFieldTex);
13:43:50 efjam88: lpDvc->DrawPrimitive(D3DPT_TRIANGLELIST,0,2);
13:44:05 efjam88: das programm geht noch weiter
13:44:23 efjam88: aber es hängt an "DrawPrimitive"
13:46:38 efjam88: vielleicht n tipp wie ich s weiter eingrenzen kann? ich bekomm kein einblick in das "Device"
13:47:34 efjam88: nochmal entschuldigung wenn ich doof frage
13:47:41 Schrompf: Doch, kriegst Du, wenn Du willst. Lade Dir mal das DirectXSDK runter, das letzte ist von 2010 oder so, muss man bissl bei Microsoft suchen
13:48:20 Schrompf: da ist PIX drin, und mit PIX kannst Du Dir eine Aufnahme von Deinen DirectX-Calls machen und funktion für funktion durchgehen, Meshes angucken, Rendertargets angucken, einzelne Pixel debuggen, wenn Du willst
13:48:32 Schrompf: hier bei Deinem Code würd ich behaupten: dir fehlen vertizes
13:48:50 efjam88: pl
13:48:51 efjam88: ok
13:49:08 Schrompf: ah ne, gibt ein SetStreamSource
13:49:25 Schrompf: nuja, vielleicht sind die Koords weit draußen
13:49:35 Schrompf: du scheinst ja pretransformed vertices zu nehmen
13:49:54 Schrompf: da muss deine Position XY [-1...+1] sein und Z [0..1]
13:50:07 efjam88: ich gug mal
13:52:36 efjam88: lpDvc->SetFVF(fjmVtx);
13:52:36 efjam88: lpFieldBuf->Lock(0,sizeof(cFJMVtx)*6,(void**)&b,NULL);
13:52:36 efjam88: memcpy(b,vtxField,sizeof(cFJMVtx)*6);
13:52:36 efjam88: lpFieldBuf->Unlock();
13:56:02 efjam88: #define fjmVtx D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_DIFFUSE|D3DFVF_TEX1
13:58:43 efjam88: ich glaub das problem liegt doch sonst wo
14:00:20 efjam88: lpDvc->EndScene();
14:00:20 efjam88: lpDvc->Present(NULL, NULL, NULL, NULL);
14:00:20 efjam88: return;
14:00:20 efjam88: <--- Hängt nicht
14:01:09 Schrompf: nochmal: was willst du erreichen?
14:01:15 Schrompf: Du willst zwei Dreiecke rendern?
14:01:34 efjam88: ja
14:02:00 Schrompf: mit Normale und Diffuse Colour?
14:02:02 efjam88: mit breakpoints bin ich is zu DrawPrimitive gekommen
14:02:24 Schrompf: was passiert, wenn du diesen code laufen lässt?
14:02:48 efjam88: aber wenn ich die zeichenfuktion da beende hängts nicht
14:03:40 Schrompf: was käme vor dem "aber"? was passiert denn nun, wenn du diesen code laufen lässt?
14:04:47 efjam88: also: das programm hängt, also es wird nix neues mehr gezeichnet und windows kann das fenster nichit öffnen
14:05:22 Schrompf: ah ok. danke für die klare antwort.
14:05:30 Schrompf: kriegst du es jetzt und hier nochmal in diesen zustand?
14:06:23 Schrompf: ok, das ist keine frage, das soll ein auftrag sein: bring es nochmal genau in diesen zustand und lass es da hängen. tut niemandem weh, kannst du stundenlang so stehen lassen
14:07:00 efjam88: wenn ich die fkt nicht frühzeitig beende komme ich bis zu drawprimitive. dann hängts
14:07:45 Schrompf: genau, das tust du jetzt mal bitte. bring es zum hängen, genau jetzt und hier
14:08:04 efjam88: ok
14:09:00 efjam88: und weiter?
14:09:16 Schrompf: und wenn es hängt, klickst du mal auf das pause-symbol im visualstudio. das sieht so aus: ||
14:11:20 efjam88: hilft das: https://imgur.com/a/SeXH3Sw
14:11:26 Schrompf: und dann müsste visualstudio da stehen, wo es hängt
14:11:42 efjam88: ?
14:12:44 Schrompf: das ist kein hänger, das ist eine Access Violation :-) aber mei, das hilft. Jetzt hast Du irgendwo nen callstack, und in dem kannst du rausgehen, bis du zurück in deinem eigenen code bist
14:13:28 Schrompf: und da kannst du dann mal schauen, ob alle pointer in ordnung sind, was für parameter in die calls gehen, und sowas
14:26:07 efjam88: thema stack: https://imgur.com/a/A0ksKk1
14:36:39 Schrompf: uh, das ist nich viel...
14:36:55 Schrompf: ich sehe hier zwei möglichkeiten, näher ranzukommen:
14:37:11 Schrompf: a) breakpoint auf dem drawcall, und dann vorher gucken, was für parameter da reingehen
14:37:38 Schrompf: b) das Programm im PIX starten und gucken, ob der bei so nem Crash mehr sehen kann
14:37:53 Schrompf: normalerweise ist PIX großartig für so Dinge wie "warum sehe ich mein Dreieck nicht"
14:38:04 Schrompf: aber vielleicht kann das Ding auch was, was ich noch nicht kenne
14:38:57 Schrompf: außerdem: du machst da ein stretchrect zwischendurch
14:39:11 Schrompf: zieh mal alle setup-funktionen dahinter!
14:39:20 Schrompf: also das setFVF() und so weiter
14:39:51 Schrompf: stretchrect wird ja eh nur mit nem drawcall und zwei dreiecken emuliert, vielleicht versaut dir das irgendwelche settings für deinen drawcall
14:53:53 efjam88: also: lpDvc->DrawPrimitive(D3DPT_TRIANGLELIST,0,2); funktioniert grade nur bei einem client
14:54:27 efjam88: (von 2)
14:54:45 efjam88: glaub ich jedenfalls
15:05:27 Schrompf: viel glück auf der jagd, ich bin raus
15:05:43 efjam88: nochmal viele dank
15:29:16 Biolunar joined the channel
18:46:59 Schrompf joined the channel