>Absout saubere Arbeit! Endlich mal reine DX9 only sachen mit PureBasic!
Thx
>Dein erstes Beispiel läuft bei mir einwandfrei! Lediglich dein 2. example mit dem Antialiaze (1-3) gehen alle nicht auf meinem system! Naja...
Hm, ich hab vorhin ein Programm gefunden was genau das benutzt was ich versuche und es funktionierte, scheint also ein Fehler meinerseits zu sein.
>Hätte aber noch einen großen Verbesserungsvorschlag! Wie es ausschaut, benutzt deine DX9 lib, die PureBasic Windows Lib! Dadurch wird dein example gleich ca. 14k groß! (weiß nicht, ob die WindowLib nicht splitted ist!?) Zumindest wäre es cool, wenn Du statt evtl. intern "OpenWindow()", deine eigene kleine "optimierte

" version in deine Lib einbauen kannst... So das die erzeugten DX9 exe doch um einiges kleiner sein könnten! Das wäre dann schonmal der absolute oberhammer von dem was uns noch alles von dir erwarten wird... RESPEKT!
Da scheint einer ein bisl Ahnung zu haben

Jo ich benutze die Window-Lib, das wollt ich aber auch erstmal nicht ändern, da ich mit dem DirectX-Zeug genug zu tun habe und mich erstmal nicht um die Windows kümmern wollte. Die Größe der Exe find ich im Moment auch nicht soo wichtig
>Btw, zeichnen ohne WinAPI (GDI) - sondern direkt mal DX based wäre der nächste hammer!

einfach nur sau geil... mehr kann ich zu deinen projekten nicht mehr sagen! Weiter so!
Tja, erstmal wissen wie ^^
>Soweit ich mal gehört habe, gibt es unter DX keine direkten routinen um Linien, Kreise usw zu zeichnen!? Man müßte sich seine Routinen daher wohl erst selber schreiben!? (ich denke mal, das es dann direkt in den videospeicher gemacht wird um noch mehr performence zu erhalten!?) Aber da kenn ich mich dann doch zu wenig für aus...
Ich hab bisher auch keine Routinen dafür gefunden, ihr dürft euch also schonmal drauf vorbereiten eure eigenen Circle(),Line(),...-Procs zu schreiben, die direkt in den Speicher schreiben

(Naja, vielleicht mach ich die auch dazu)
Und bevor ich mein Bett besuche, noch ein Update:
Code: Alles auswählen
DisableDebugger
InitSpriteDX9()
InitKeyboard()
#PB_D3D_TribleBuffering =$00000001 ;Verträgt sich nicht mit #PB_D3D_CopyBuffer
#PB_D3D_AlphaBlending =$00000002 ;Verträgt sich nicht mit StartDrawing/StopDrawing
#PB_D3D_CopyBuffer =$00000004 ;Verträgt sich nicht mit #PB_D3D_TribleBuffering;#PB_D3D_AntiAnalysing*
#PB_D3D_AntiAliasing =$00000008 ;Verträgt sich nicht mit #PB_D3D_CopyBuffer
#PB_D3D_AntiAliasing2 =$00000010 ;Verträgt sich nicht mit #PB_D3D_CopyBuffer
#PB_D3D_AntiAliasing3 =$00000020 ;Verträgt sich nicht mit #PB_D3D_CopyBuffer
#PB_D3D_AntiAliasing4 =$00000040 ;Verträgt sich nicht mit #PB_D3D_CopyBuffer
If OpenScreenDX9(0,0,0,":)");,#PB_D3D_AlphaBlending)
Repeat
ClearScreenDX9(RGB(0,0,255))
StartDrawing(ScreenDX9Output())
For y = 0 To 100-1
For x = 0 To 100-1
Plot(x,y,$FF<<((b%3)*8))
Next
Next
StopDrawing()
FlipBuffersDX9()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
Else
EnableDebugger
Debug "OpenScreenDX9-Error"
EndIf
Jetzt kann man bei OpenScreenDX9() bei width, height und depth 0 angeben, wobei dann die Werte genommen werden die der Desktop gerade benutzt.
Gültige Wete für Depth sind übrigens: 0;16;24;32;64 ,wobei bei 0 und 24 das #PB_D3D_AlphaBlending-Flag nichts bewirkt und bei 64 #PB_D3D_AlphaBlending gesetzt sein muss!
BTW. LoadSpriteDX9() ist auch schon drin, bringt euch aber noch nichts, da es nach dem Laden des Sprites, dieses sofort wieder löscht ^^