DirectX9-Lib (V. 0.58)

Anwendungen, Tools, Userlibs und anderes nützliches.
merlin
Beiträge: 157
Registriert: 30.07.2005 22:15

Beitrag von merlin »

@Deeem2031:
Upsss ;-) Ich hab in der Tat das "neue example" auf seite 1 noch nicht angeschaut... (dachte, es wäre noch das alte.. aber seh gerade bei genauerer betrachtung, das es neu ist... *duck*)

mal sofort anschauen und testen werde... (müßte schon längst pennen, lach... egal... SpriteDX9 geht vor *g*)
Benutzeravatar
SoS
Beiträge: 340
Registriert: 29.08.2004 09:31
Kontaktdaten:

Beitrag von SoS »

Deeem2031 hat geschrieben:@SoS: Seltsam, haste vielleicht kein DX9 installiert? (Ok, die frage war glaub ich überflüssig ^^)
ja das habe ich jetzt mal überlesen ;) (habe 9.0c drauf)

Code: Alles auswählen

X=InitSpriteDX9() 
Debug X
bekomme ich 0

und bei

Code: Alles auswählen

If OpenScreenDX9(0,0,32,":)",#PB_D3D_AlphaBlending) 
"invalid memory access"

/edit

infos von dxdiag

DirectX Version: DirectX 9.0c (4.09.0000.0904)
DX Setup Parameters: Not found
DxDiag Version: 5.03.2600.2180 32bit Unicode

------------
DxDiag Notes
------------
DirectX Files Tab: No problems found.
Display Tab 1: No problems found.
Sound Tab 1: No problems found.
Music Tab: No problems found.
Input Tab: No problems found.
Network Tab: No problems found.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

SoS hat geschrieben:

Code: Alles auswählen

X=InitSpriteDX9() 
Debug X
bekomme ich 0
Hm, ist eigentlich richtig so.
SoS hat geschrieben:und bei

Code: Alles auswählen

If OpenScreenDX9(0,0,32,":)",#PB_D3D_AlphaBlending) 
"invalid memory access"
Hm, wenn ich jetzt an deinem Comp sitzen würde, würd ich einfach den OllyDebugger starten und nachgucken wo er Mist baut, aber da das nicht geht, erstell am besten mal eine Exe mit OnError. Also du fügst z.B. am anfang des Codes:

Code: Alles auswählen

Procedure OnError()
  Protected Msg$
  
  Msg$ = "There was an error:"+Chr(13)+Chr(10)+Chr(13)+Chr(10)
  Msg$ + "Description: " + GetErrorDescription()+Chr(13)+Chr(10)
  Msg$ + "Addr: " + Str(GetErrorAddress())+Chr(13)+Chr(10)
  Msg$ + "Module: "+GetErrorModuleName()+Chr(13)+Chr(10)
  Msg$ + "LineNR: " + Str(GetErrorLineNR())+Chr(13)+Chr(10)
  Msg$ + "Total number of errors: "+Str(GetErrorCounter())+Chr(13)+Chr(10)+Chr(13)+Chr(10)
  Msg$ + "Continue program ?"
  SetClipboardText(Msg$)
  
  If MessageRequester("Error!",Msg$,16|#PB_MessageRequester_YesNo) = 6
    ProcedureReturn #True
  Else
    End
  EndIf
EndProcedure

OnErrorGosub(@OnError())
ein. So, dann startest du die Exe und speicherst dir das was OnError zurückgibt. (Durch das SetClipboardText(Msg$) m Code brauchst nur irgendwo den text einfügen). Dann schickste mir Exe und Nachricht von OnError und ich darf Debugger spielen ;)
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

> Hm, wenn ich jetzt an deinem Comp sitzen würde, würd ich einfach den OllyDebugger starten und nachgucken wo er Mist baut
Der Debugger kann doch soweit ich weiss auch RemoteDebugen oder wie
sich das nennt :?. Vielleicht liegt das auch einfach an einer etwas betagten
Grafikkarte.

[Troll]OpenGL ist eh viel besser :twisted: [/Troll]
Bild
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

MVXA hat geschrieben:> Hm, wenn ich jetzt an deinem Comp sitzen würde, würd ich einfach den OllyDebugger starten und nachgucken wo er Mist baut
Der Debugger kann doch soweit ich weiss auch RemoteDebugen oder wie
sich das nennt :?.
Ich hab grad mal nachgeguckt, konnte aber nichts finden...
MVXA hat geschrieben:[Troll]OpenGL ist eh viel besser :twisted: [/Troll]
Es gibt aber schon Libs für OpenGL, würde mir also nicht viel bringen dafür eine Lib zu basteln.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
SoS
Beiträge: 340
Registriert: 29.08.2004 09:31
Kontaktdaten:

Beitrag von SoS »

ok,folgende ausgabe bekomme ich

Description: An attemped read or write to/from an address to which that process isn't allowed
addr: 4200797
module: main module
LineNR: 71

und zeile 71

Code: Alles auswählen

If OpenScreenDX9(0,0,32,":)",#PB_D3D_AlphaBlending)
/edit meine ati 9700 pro ist zwar schon etwas betagt macht aber nie probleme ;)
merlin
Beiträge: 157
Registriert: 30.07.2005 22:15

Beitrag von merlin »

@Deeem2031:

Mhhh... also hier läuft v0.2 - habe nur mal mit den farbwerten bzw:
hTexture_DisplaySettings\ColorFilter = $FFFFFFFF etwas rumgespielt... irgendwie hat sich nicht immer was geändert... (teils ob es egal ist, ob eine 0 oder F steht... (werd ich aber morgen nochmal testen... muß um 7 uhr wieder raus... ;-/

Hier evtl. noch ein paar "neue" evtl interessante links für dich (wie im englischen forum...)

Scale and Rotate Sprite with DX9 (german forum)
http://www.zfx.info/DisplayThread.php?MID=168122#168122

MS Sprite Draw Methode SDK:
http://msdn.microsoft.com/library/defau ... /draw0.asp

DirectX Text Engine:
http://www.gamedev.net/community/forums ... _id=212775

Some DX8 Examples/Sources: (english)
http://www.andypike.com/tutorials/directx8/
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Deeem2031 hat geschrieben:
SoS hat geschrieben:

Code: Alles auswählen

X=InitSpriteDX9() 
Debug X
bekomme ich 0
Hm, ist eigentlich richtig so.
AFAIK:
> 0 = #False ; also = Fehler

Oder hast du das geändert, Deeem?
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

@SoS: Hab immernoch kein Plan was falsch sein soll..
Funktioniert es denn mit anderen Parametern? Vielleicht unterstützt deine Grafikkarte kein 32-bit Modus, oder kein AlphaBleding, oder ...

@merlin: Zum ColorFilter:
Nun einige Erläuterungen zum Farbwert, der als letzter Parameter übergeben wird. Es handelt sich dabei wieder um einen ARGB-Wert (Alpha-Rot-Grün-Blau). Damit kann man sowohl Alphablending Effekte erzielen, als auch die Farben der Ausgangsgrafik verfälschen. Hier wieder einige Beispiele:
0x00FFFFFF = Grafik wird völlig transparent, d.h. sie wird nicht dargestellt
0x80FFFFFF = Grafik wird halbtransparent
0xFFFFFFFF = Grafik ist vollkommen undurchsichtig
Merke: Je größer der Alphawert ist, desto undurchsichtiger ist die Grafik und umgekehrt.

0xFF00FFFF = Damit werden alle Rottöne ausgefiltert
0xFFFF00FF = Damit werden alle Grüntöne ausgefiltert
0xFFFFFF00 = Damit werden alle Blautöne ausgefiltert
Ist aus einem Tutorial, hoffe das hilft.

Und die Links kenn ich alle schon, 'n bisl rumgooglen ist ja auch nicht so schwer ;)

[Edit] @Laurin: Ne, ist schon richtig so. InitSpriteDX9() hat ja eigentlich auch keinen Rückgabewert, es wird also kein bestimmter Wert in Eax gespeichert. Allerdings kann ich zurückverfolgen welcher Wert es sein müsste und das ist hier 0.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
merlin
Beiträge: 157
Registriert: 30.07.2005 22:15

Beitrag von merlin »

0xFF00FFFF = Damit werden alle Rottöne ausgefiltert
0xFFFF00FF = Damit werden alle Grüntöne ausgefiltert
@Deeem2031:
Glaub ich leg ne Nachtschicht ein,lach! Habe hier noch einen recht guten link für dich...

Very informative DX9 Tutorials for C++ / C# (english) +++++
http://www.drunkenhyena.com/cgi-bin/dx9.pl

Wegen den ColorFilter... yep, ich hab schon verstanden wie der zu benutzen ist ;-) ... nur ist mir dabei aufgefallen, das bei meinem testimage z.b.

FF und 0F oder F0 das gleiche ergebniss erzielte.. (egal ob bei R,G,B)... aber werd da morgen... ähm heute nochmal checken... (weil ein auge ist eh schon zu am pennen :-)
Antworten