Hallo zusammen,
ich hab folgendes Komisches Problem : Ich will auf einen Surface (Oberfläche) ein bild mit der Funktion: D3DXLoadSurfaceFromFile kopieren.
Nun eigentlich funktioniert es auch. Aber nur wenn ich ein bestimmtes Bild in einem bestimmten Ordner nehme. Wenn ich das Bild in einen anderen Ordner kopiere und es von dort laden will zeigt er mir nichts an also nur den BackBuffer !
Am besten zeige ich euch mal ein Beispiel :
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#define FILE "../../Media/fighter_top.png"
D3DXGetImageInfoFromFile(FILE,&ImageInfo);
lpD3DDevice = Direct3D.GetDevice();
lpD3DDevice->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&lpBackBuffer);
lpD3DDevice->CreateOffscreenPlainSurface(ImageInfo.Width,ImageInfo.Height,D3DFMT_A8R8G8B8,D3DPOOL_DEFAULT,&lpD3DSurface,0); //Surface erstellen
D3DXLoadSurfaceFromFile(lpD3DSurface,0,0,FILE,NULL,D3DX_DEFAULT,0,0); //Surface mit Bild füllen
Direct3D.BeginScene(); //Szene Beginnen
RECT DestRect = { 100, 100, 100 + ImageInfo.Width, 100 + ImageInfo.Height };
lpD3DDevice->StretchRect(lpD3DSurface,NULL,lpBackBuffer,&DestRect,D3DTEXF_NONE);
Direct3D.EndScene(); //Szenen Ende
|
Das Beispiel tuts. Aber wenn ich nun das Bild in den Ordner der *.exe kopiere und FILE mit "fighter_top.jpg" benne geht es wieder nicht. Wenn ich das Bild in den Ordner dadrüber kopiere und FILE mit "../fighter_top.jpg" defniere gehts es immer nocht nicht ! Nur in dem Media Funktioniert es !
Ich weiss nicht recht ob ihr das jetzt verstanden habt wenn nicht : Der kann das Bild nur in dem einen Ordner laden und meine Frage ist : Wieso ? ???