Neidhard von Reuental
Beiträge: 268
XP
BDS 2006 Prof
|
Verfasst: 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
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: 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..3] of CustomVertex.TransformedTextured; begin screenVers[0] := CustomVertex.TransformedTextured.Create(x, y, 1, 1, 0, 0); screenVers[1] := CustomVertex.TransformedTextured.Create(x+width, y, 1, 1, 1, 0); screenVers[2] := CustomVertex.TransformedTextured.Create(x+width, y+height, 1, 1, 1, 1); screenVers[3] := CustomVertex.TransformedTextured.Create(x, y+height, 1, 1, 0, 1); 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. 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, 1, 1, 0, 0); screenVers[1] = new CustomVertex.TransformedTextured(x+width, y, 1, 1, 1, 0); screenVers[2] = new CustomVertex.TransformedTextured(x+width, y+height, 1, 1, 1, 1); screenVers[3] = new CustomVertex.TransformedTextured(x, y+height, 1, 1, 0, 1); 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!
|