PureBoard
http://forums.purebasic.com/german/

Aero unter PB 4.20?
http://forums.purebasic.com/german/viewtopic.php?f=19&t=16494
Seite 1 von 2

Autor:  Gimbly [ 29.04.2008 21:15 ]
Betreff des Beitrags:  Aero unter PB 4.20?

Hallo,

wenn ich richtig verstanden habe, nutzt PB 4.20 jetzt DirectX 9.
Müsste dann bei PB-WindowedScreen-Anwendungen unter Vista nicht auch Aero funktionieren?

Beim Starten meiner EXE wird aber leider immer noch Aero abgeschaltet. Welche Hebel muss man umlegen, damit es nicht abgeschaltet wird?

Autor:  STARGÅTE [ 30.04.2008 00:56 ]
Betreff des Beitrags: 

auch unter 4.20 läuft PB noch mit DX7, nur wenn du es Angibst beim erstellen der EXE das auf "SubSystems DirectX9" zugegriffen werden soll, wird auch DX9 genutzt

Autor:  Gimbly [ 30.04.2008 10:03 ]
Betreff des Beitrags: 

Vielen Dank STARGÅTE!

Autor:  Gimbly [ 30.04.2008 10:55 ]
Betreff des Beitrags:  CreateSprite() erzeugt Sprites im PixelFormat 15Bits (DX9)

Mit DX9 klappt's soweit. Allerdings erzeugt CreateSprite() jetzt Sprites im PixelFormat 15Bits.

Mit folgendem Code kann dies getestet werden. Dazu bitte in den Projekt Einstellungen Subsystem DirectX9 angeben und den Code im Debugger starten. Bei mir (unter Win XP) wird dann 2 ausgegeben, also #PB_PixelFormat_15Bits. Ohne DirectX9 wird dagegen 7, also #PB_PixelFormat_32Bits_BGR ausgegeben. Dieser Code erfüllt übrigens keinen weiteren Zweck, als das beschriebene Phänomen zu demonstrieren. :wink:
Code:
If InitSprite()=0 : End : EndIf

Breite=300 : Hoehe=200
 
OpenWindow(0,0,0,Breite,Hoehe,"Test",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0),0,0,Breite,Hoehe,0,0,0)

CreateSprite(1,100,100)
If StartDrawing(SpriteOutput(1))
  SpeicherAdresse=DrawingBuffer()
  Debug DrawingBufferPixelFormat()
  StopDrawing()
EndIf

End

Autor:  Gimbly [ 30.04.2008 12:10 ]
Betreff des Beitrags: 

Hat das jetzt schon mal jemand getestet?

Autor:  Kiffi [ 30.04.2008 12:26 ]
Betreff des Beitrags: 

Gimbly hat geschrieben:
Hat das jetzt schon mal jemand getestet?

ich habe kein
Bild

Autor:  Gimbly [ 30.04.2008 12:28 ]
Betreff des Beitrags: 

Das hat jetzt nichts mit Aero zu tun, sondern rein mit DX9. Ich habe das Phänomen unter XP. Aero habe ich nur zu Hause und da bin ich gerade nicht.

Autor:  nco2k [ 30.04.2008 13:15 ]
Betreff des Beitrags: 

ich habs im november auch schon gemerkt... antwort von fred:
Fred hat geschrieben:
About the bad quality, for now all the sprite are in 16 bits, which means than gradient sprite like yours is badly rendered. I will add 32 bits sprite support later.

ich hoffe, dass er es nicht vergessen hat und es noch bis zur final implementiert wird.


wegen aero: http://www.purebasic.fr/english/viewtopic.php?t=25643

ich bin mir ziemlich sicher, dass es irgendwie einen workaround gibt, so dass es trotz dx7 noch funktioniert. wenn man z.b. InitEngine3D() benutzt, wird der switch verhindert. :shock:
Code:
If InitEngine3D() And InitSprite() And OpenWindow(0, 0, 0, 640, 480, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If OpenWindowedScreen(WindowID(0), 0, 0, WindowWidth(0), WindowHeight(0), 0, 0, 0)
    While WaitWindowEvent(10) <> #PB_Event_CloseWindow : Wend
  EndIf
EndIf : End

ich hab keine ahnung woran das liegt und mir gehen langsam die ideen aus. wär schön, wenn fred sich mal die sache anschauen könnte, was InitEngine3D() nun da anders macht.

c ya,
nco2k

Autor:  Gimbly [ 30.04.2008 14:05 ]
Betreff des Beitrags: 

Vielen Dank für deine Antwort nco2k. Hat mir sehr geholfen!

Den workaround werde ich heute Abend unter Vista mal testen.

Autor:  Gimbly [ 30.04.2008 21:14 ]
Betreff des Beitrags: 

Prinzipiell scheint der InitEngine3D()-workaround zu funktionieren. Allerdings muss ich meinen Code dafür an einigen Stellen noch anpassen.

Seite 1 von 2 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/