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

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

31

23.12.2011, 14:35

So jetzt habe ich alle möglichen Kombinationen getestet.
Mein Code ist nun folgender: In der Loadmethode erstmal eine textur erstellen und deren Surfac eabfragen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
X3D->CreateTexture(X3D.GetScreenSize().x,
                                X3D.GetScreenSize().y,
                                1,
                                0,
                                D3DFMT_X8R8G8B8,
                                D3DPOOL_DEFAULT,
                                &pRenderTexture,
                                NULL);

    pRenderTexture->GetSurfaceLevel( 0, &pRenderSurface );

In der Render Methode dann ganz normal BeginScene und End Scene dann kommt folgender Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
X3D->GetRenderTarget(0,&pBackBuffer);
X3D->StretchRect(pBackBuffer,NULL,pRenderSurface,NULL,D3DTEXF_NONE);
X3D->BeginScene();
//...
X3D->SetTexture(0,pRenderTexture);
//...
X3D->EndScene();

Leider ohne Erfolg. Bildschirm bleibt schwartz :(

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

32

24.12.2011, 11:18

Wirklich keiner eine Idee?

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

33

24.12.2011, 12:21

Rückgabewerte abfragen.
Was sagt die Debug Runtime?

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

34

24.12.2011, 22:23

Also der Fehler liegt in StretchRect(); ich bekomme ein Invalid_call. Jetzt stellt sich die Frage wieso? Ich render in den BackBuffer. Dann beende ich die Szene. Dann kommt folgender Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
X3D->GetRenderTarget(0,&pBackBuffer);

    X3D->StretchRect(pBackBuffer,NULL,pRenderSurface,NULL,D3DTEXF_NONE);

    X3D->Clear(0,
                           NULL,
                           D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,
                           D3DCOLOR_XRGB(0,0,0),
                           1.0f,
                           0);
    X3D->BeginScene();

pRenderSurface les ich so aus:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
X3D->CreateTexture(X3D.GetScreenSize().x,
                                X3D.GetScreenSize().y,
                                1,
                                0,
                                D3DFMT_X8R8G8B8,
                                D3DPOOL_DEFAULT,
                                &pRenderTexture,
                                NULL);
pRenderTexture->GetSurfaceLevel( 0, &pRenderSurface );

Mach ich was falsch xD Anscheinend ja, retorische Frage :) Ich bedanke ich mich und wünsche allen schöne Weihnachten ;)

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

35

25.12.2011, 01:08

Schau mal was da in den Remarks steht: http://msdn.microsoft.com/en-us/library/…p/bb174471.aspx
Sind deine Formate kompatibel? Unter anderem: Wenn du eine Textur als Ziel verwenden willst, dann muss die Textur ein Rendertarget sein, auch wenn du sie nicht direkt als Rendertarget verwendest...

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

36

25.12.2011, 01:28

Danke ich musste die Textur als rendertraget erstellen.
Allerdings bekomme ich beim beenden einen heap Fehler:
HEAP CORRUPTION DETECTED After normal Bloch 601.
CRT detected that the application wrote to Memory After end of heap Buffer.
Schreibe ich irgendwas beim beenden? Eigentlich nicht. Danke

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

37

25.12.2011, 01:34

Hat sich erledigt. Danke für die Hilfen jetzt funktioniert alles. Vielen dank

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

38

25.12.2011, 08:45

CRT detected that the application wrote to Memory After end of heap Buffer.
Schreibe ich irgendwas beim beenden? Eigentlich nicht. Danke

Der Fehler sagt nicht aus, dass Du beim Beenden irgendwas schreibst, sondern dass beim Beenden und beim Freigeben des Speichers festgestellt wurde, dass Du irgendwann und irgendwo über die Grenzen des Dir zur Verfügung gestellten Heaps hinaus Daten geschrieben hast.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

39

25.12.2011, 11:46

Ich kann mir den Fehler trotzdem nicht erklären, denn ich Lösche (mit delete) ja etwas und dann kam der Fehler. Aber naja warscheinlich habe ich jetzt ein Speicherleak O.o Muss ich
mal etwas gucken.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

40

25.12.2011, 11:53

Du schreibst irgendwie, irgendwo, irgendwann über einen Speicherbereich raus wie die Fehlermeldung schon sagt. Das kann viele Gründe haben, z.B. falsche Pointerarithmetik. Der Debugger merkt das nur erst bei einem delete, da die entsprechenden Überprüfungen erst dort durchgeführt werden.

Werbeanzeige