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

Anonymous

unregistriert

1

09.10.2004, 10:03

IDirect3DSurface9::LockRect füllt pLockedRect nicht aus

Hallo,
weder die Surface noch pLockedRect sind NULL-Pointer, aber trotzdem wird er nicht mit Daten gefüllt. Wenn ich eine Textur "locke" gibt es keine Probleme.

Quellcode

1
g_pSurface->LockRect(g_pLockedRect, NULL, NULL);

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

2

09.10.2004, 12:07

Hi,

C-/C++-Quelltext

1
2
3
D3DLOCKED_RECT rc;

surface_->LockRect(&rc, NULL, NULL);


Du hast das & vergessen. :) Wie sollte denn die Funktion sonst die daten übergeben können?

-Patrick

Anonymous

unregistriert

3

09.10.2004, 13:09

Quellcode

1
2
3
4
5
D3DLOCKED_RECT *g_pLockedRect;
D3DLOCKED_RECT *g_pLockedRect2;

surface->LockRect(g_pLockedRect, NULL, NULL); //funktioniert nicht
texture->LockRect(0, g_pLockedRect2, NULL, NULL); //funktioniert

g_pLockedRect ist ein Pointer deswegen brauch ich logischerweise kein &. Aber mit deiner Methode klappts auch nicht. Seltsamerweise funktioniert es mit der Textur.
Liegts vielleicht daran, dass ich die Surface von IDirect3DSwapChain9::GetBackBuffer hab? Wenn es daran liegt würde ich gerne wissen wie man sonst Daten aus dem BackBuffer kopieren kann.

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

4

09.10.2004, 13:50

hmm ich glaub ich sollte mir langsam nochmal die ungarsiche notation angucken ;) damnit ;)

kann sein, bezweifle ich aber irgendwie.

Anonymous

unregistriert

5

12.10.2004, 13:39

weis keiner rat?
IDirect3DSurface9::UpdateSurface funktioniert auch nicht.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

6

12.10.2004, 14:24

verrate mir mal wie du das interface initialisierst.(surface)

7

16.10.2004, 19:13

ähm....mich wundert es das du noch keine Abstürtze bekommen hast. Was du da machst kann auch nicht klappen.


LockRecht verlangt zwar einen pointer, aber du bekommst nicht die Adresse der Daten sondern, die Daten werden in die Adresse kopiert. Sprich das ganze muss so aussehen

C-/C++-Quelltext

1
2
3
4
5
D3DLOCKED_RECT g_LockedRect;
D3DLOCKED_RECT g_LockedRect2;

surface->LockRect(&g_LockedRect, NULL, NULL);
texture->LockRect(0, &g_LockedRect2, NULL, NULL);


Alles andere führt zu einem unkontrollierten Verhalten des Programms
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige