Autor Beitrag
Neidhard von Reuental
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 268

XP
BDS 2006 Prof
BeitragVerfasst: Fr 07.07.06 06:50 
Hallo,
habe gestern eine ganze Weile versucht das Problem zu lösen doch ich finde den Fehler einfach nicht.
Habe mir ein Device erzeugt und lade mir mit
ausblenden Delphi-Quelltext
1:
  DXCopyImage:=Texture.FromBitmap(DXDevice,CopyImage,Usage.None,Pool.Managed);					

CopyImage enthält dabei ein PNG in der Größe von 160x64

Zum Rendern der Textur habe ich mir eine Prozedur geschrieben die von der Render-Schleife zwischen BeginScene und EndScene aufgerufen wird:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TPanoView.RenderTexture(Dev:device;Tex:Texture;x:integer;y:integer;width:integer;height:integer;alpha:byte);
var
  screenVers : Array [0..3of CustomVertex.TransformedTextured;
begin
  screenVers[0] := CustomVertex.TransformedTextured.Create(x, y, 1100);
  screenVers[1] := CustomVertex.TransformedTextured.Create(x+width, y, 1110);
  screenVers[2] := CustomVertex.TransformedTextured.Create(x+width, y+height, 1111);
  screenVers[3] := CustomVertex.TransformedTextured.Create(x, y+height, 1101);
  Dev.SetTexture(0, Tex);
  Dev.VertexFormat := CustomVertex.TransformedTextured.Format;
  Dev.DrawUserPrimitives(PrimitiveType.TriangleFan, 2, screenVers);
end;


Wie im Titel schon festgehalten, funktioniert die Anzeige der Grafik nicht. Es tritt aber auch kein Fehler auf, kann also das Problem nicht Lokalisieren :(
Den Code habe ich mir aus meinem C#-Programm nach Delphi umgeschrieben, und da funktioniert es.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
        public void Texture(Device device,Texture texture,int x,int y,int width,int height,byte Alpha)
        {
            CustomVertex.TransformedTextured[] screenVers = new CustomVertex.TransformedTextured[4];
            screenVers[0] = new CustomVertex.TransformedTextured(x, y, 1100);
            screenVers[1] = new CustomVertex.TransformedTextured(x+width, y, 1110);
            screenVers[2] = new CustomVertex.TransformedTextured(x+width, y+height, 1111);
            screenVers[3] = new CustomVertex.TransformedTextured(x, y+height, 1101);
            device.SetTexture(0, texture);
            device.VertexFormat = CustomVertex.TransformedTextured.Format;
            device.DrawUserPrimitives(PrimitiveType.TriangleFan, 2, screenVers);
        }


Hat jemand eine Ahnung woran das liegen könnte?

_________________
Signaturen sind hier sinnlos!