Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [Andorra] TAdTextureSurface transparent (https://www.delphipraxis.net/125652-%5Bandorra%5D-tadtexturesurface-transparent.html)

EarlyBird 9. Dez 2008 16:32


[Andorra] TAdTextureSurface transparent
 
Hallo,
ich beschäftige mich gerade mit dem TAdTextureSurface von Andorra.

Mit folgender procedure erstelle ich das TAdTextureSurface

Delphi-Quellcode:
 
   MyTextCanvas2 := TAdTextureSurface.Create(AdDraw);
   MyTextCanvas2.SetSize(128,1024);
   MyTextCanvas2.ClearSurface(clwhite);
   MyTextCanvas2.Canvas.Font := AdDraw.Fonts.GenerateFont('Arial',9,[],clblack,0,0,0,0);
   MyTextCanvas2.Canvas.Pen.Color := ColorToAdColor(clBlack);
   MyTextCanvas2.Canvas.TextOut(20,30,'Z1-testTest');
   MyTextCanvas2.Canvas.TextOut(20,30,'Z2-testTest');
   MyTextCanvas2.Canvas.TextOut(20,30,'Z3-testTest');
   MyTextCanvas2.Canvas.Release;
Nun möchte ich nur den Text auf mein AdDraw zeichnen.
Delphi-Quellcode:
  MyTextCanvas2.Image.Draw(AdDraw,1,1,0);
  //oder
  MyTextCanvas2.Image.DrawAlpha(.....
wie kann ich das machen?
Ich bekomms einfach nicht hin.

Kann man MyTextCanvas2.image eine Transparente Farbe zuweisen?
Ähnlich wie bei LoadGraphicFromFile

igel457 9. Dez 2008 17:40

Re: [Andorra] TAdTextureSurface transparent
 
Versuche anstatt MyTextCanvas2.ClearSurface mal folgendes:

Delphi-Quellcode:
MyTextCanvas2.Activate;
AdDraw.AdAppl.ClearSurface(MyTextCanvas2.Scene.Viewport, [alColorBuffer, alZBuffer, alStencilBuffer], Ad_ARGB(0, 255, 255, 255), 1, 0);

EarlyBird 9. Dez 2008 18:22

Re: [Andorra] TAdTextureSurface transparent
 
Besten Dank es funktionieren.

EarlyBird 10. Dez 2008 08:11

Re: [Andorra] TAdTextureSurface transparent
 
Hallo,
ich muss doch noch mal nachfragen.

Mit folgender Procedure zeichne ich auf das Surface eines Sprites:
Delphi-Quellcode:
procedure TSpriteStripe.DoDraw;
begin
  inherited DoDraw;
 
  MyTextCanvas2.Image.Draw(engine.Surface, round(WorldX) ,1 ,0);
  engine.Surface.Canvas.Release;
end;
das funktioniert auch prima auf einem Monitor.
Nur bei einem 2Monitor Sytem wird auf dem 2`ten Monitor nichts gezeichnet.
Genau gesagt die Sprites werden gezeichnet aber "MyTextCanvas2.Image" wird nicht auf das Sprite gezeichnet.
Es ist auch egal welche X koordinate ich verwende(X, WorldX, BoundsRect.left .....) immer das selbe.

was mache ich da was falsch?

EarlyBird 10. Dez 2008 19:23

Re: [Andorra] TAdTextureSurface transparent
 
Ich hab`s,
bei den 3D eEinstellungen der Grafikkarte (NVIDIA) muss "Multi-Display/gemischte GPU Beschleunigung" auf "Kompatibilitäts-Leistungs-Modus" eingestellt werden.
Dann klaptt die Anzeige auf 2 Bildschirmen.

Kann ich diese Einstellung in meinem Programm abfragen bzw auch einstellen?

[Nachtrag]
den Registryeintrag findet man unter:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Video\{.............}\0000\OGL_MultiMonConfig
Typ: REG_BINARY
Wert: 01 00 00 00 (für den Kompatibilitäts-Leistungs-Modus)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz