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 »

SoS hat geschrieben:ist das normal das die 256x256 Textur so aussieht ?
Hallo Sos! Dieser bug ist uns leider auch schon aufgefallen! Es sollte eigentlich nicht so sein! Denke aber, das Deeem2013 das Problem schon lösen bzw fixen wird ;-) Trotzdem danke für den bug report! ;)
merlin
Beiträge: 157
Registriert: 30.07.2005 22:15

Beitrag von merlin »

Möglicherweise bugs in SpriteDX9 v0.52:

Code: Alles auswählen

hTexture2 = CreateTextureDX9(256,256)
Im Beispiel sollte einte Texture erstellt und später auf dem bildschirm angezeigt werden! Wie wir jedoch schon selbst festgestellen mußten, kann es sein, das die erstellte Texture kaputt angezeigt wird! Es ist der gleiche bug, den SoS kurz zuvor schon hier geposted hat! Nochmals Danke! ;)

Code: Alles auswählen

HelpFile: BoxDX9(x,y,width,height,color)

BoxDX9(0, 90,800,100,$0)
Vor wenigen minuten hab ich wohl einen weiteren bug entdeckt, der aber nicht so schwer zu fixen sein sollte! Wenn du z.b. eine box mit den werten
x=0, y=90, width=800, height=100 in color $ffffff (white) zeichnest, wird diese wie folgt dargestellt...

Code: Alles auswählen

Macht zur Zeit folgendes: BoxDX9(x,y,width,height-y,color)

BoxDX9(0, 90,800,100-90,$0)  
Daher wird z.b. eine 800x100 große box wie eine 800x10 gezeichnet (scheint nur ein kleiner bug zu sein ;-)

Code: Alles auswählen

HelpFiles
Wenn man im IDE ein keyword schreibt und F1 für die hilfe drückt, so wird diese geöffnet (voraussetzung, diese ist richtig installiert).... jedoch startet die Hilfe mit einer "nicht gefundenen Seite"... Daher einfach links in das Menü/struktur klicken und es geht...

Code: Alles auswählen

  hTexture_DisplaySettings\pSrcRect\bottom = 256
  hTexture_DisplaySettings\pSrcRect\right = 256

  ; hTexture = LoadTextureDX9("d:\DX9Texture16.bmp") ;You should free the texture before you exit the program the library don't do it by itself (supports the following file formats: .bmp, .dds, .dib, .hdr, .jpg, .pfm, .png, .ppm, .tga)
  ; If hTexture = 0
    ; CloseScreenDX9()
    ; Debug "Couldn't load the texture!"
    ; End
  ; EndIf
Benutz das original Beispiel und setze \bottom und \right von Texture_DisplaySettings\pSrcRect\ auf 256 und startes es mit einer netten 256x256 texture die du zuvor einlädst...! (wie zuvor berichtet, kann es sein, das nur die CreatedTexture kaputt angezeigt wird).

Nun setz den LoadTexture teil in ";" ... nun starte das beispiel nochmal und du wirst evtl. überrascht sein...!? Bei mir tritt folgende phänomen auf... Die CreatedTexture zeigt nun (obwohl wir keine texture eingeladen haben), die alte geladene texture an (vom programmstart zuvor)... scheint als wäre dort ein etwas größerer bug!? (obwohl ich am ende immer FreeTexture() aufrufe, so scheint diese nicht wirklich im speciher gelöscht zu sein!?

So, ich geh jetzt ins bett.. hab selbst schon probleme hier das noch halbwegs vernünftig zu formulieren bzw noch zu sehen was ich schreibe ;-) gute nacht.. 8)

Code: Alles auswählen

StartDX9([flags]) - HELPFILE
Flags sind nicht im helpfile aufgelistet..
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

merlin hat geschrieben:Möglicherweise bugs in SpriteDX9 v0.52:

Code: Alles auswählen

hTexture2 = CreateTextureDX9(256,256)
Im Beispiel sollte einte Texture erstellt und später auf dem bildschirm angezeigt werden! Wie wir jedoch schon selbst festgestellen mußten, kann es sein, das die erstellte Texture kaputt angezeigt wird! Es ist der gleiche bug, den SoS kurz zuvor schon hier geposted hat! Nochmals Danke! ;)
Wie ich schon dir gesagt habe, das ist kein Bug. Die Texture wird lediglich nicht geleert nachdem sie geladen wurde, desswege ist es auch kein wunder das du deine alte Textur mal siehst wenn du CreateTexture benutzt.
merlin hat geschrieben:

Code: Alles auswählen

HelpFile: BoxDX9(x,y,width,height,color)

BoxDX9(0, 90,800,100,$0)
Vor wenigen minuten hab ich wohl einen weiteren bug entdeckt, der aber nicht so schwer zu fixen sein sollte! Wenn du z.b. eine box mit den werten
x=0, y=90, width=800, height=100 in color $ffffff (white) zeichnest, wird diese wie folgt dargestellt...

Code: Alles auswählen

Macht zur Zeit folgendes: BoxDX9(x,y,width,height-y,color)

BoxDX9(0, 90,800,100-90,$0)  
Daher wird z.b. eine 800x100 große box wie eine 800x10 gezeichnet (scheint nur ein kleiner bug zu sein ;-)
Hm, uss ich wohl die Hilfe dazu ändern, muss eigentlich (x1,y1,x2,y2,color) heißen.
merlin hat geschrieben:

Code: Alles auswählen

HelpFiles
Wenn man im IDE ein keyword schreibt und F1 für die hilfe drückt, so wird diese geöffnet (voraussetzung, diese ist richtig installiert).... jedoch startet die Hilfe mit einer "nicht gefundenen Seite"... Daher einfach links in das Menü/struktur klicken und es geht...
Kann ich nachvollziehen, aber ich hab kein Plan woran es liegt...
merlin hat geschrieben:

Code: Alles auswählen

  hTexture_DisplaySettings\pSrcRect\bottom = 256
  hTexture_DisplaySettings\pSrcRect\right = 256

  ; hTexture = LoadTextureDX9("d:\DX9Texture16.bmp") ;You should free the texture before you exit the program the library don't do it by itself (supports the following file formats: .bmp, .dds, .dib, .hdr, .jpg, .pfm, .png, .ppm, .tga)
  ; If hTexture = 0
    ; CloseScreenDX9()
    ; Debug "Couldn't load the texture!"
    ; End
  ; EndIf
Benutz das original Beispiel und setze \bottom und \right von Texture_DisplaySettings\pSrcRect\ auf 256 und startes es mit einer netten 256x256 texture die du zuvor einlädst...! (wie zuvor berichtet, kann es sein, das nur die CreatedTexture kaputt angezeigt wird).

Nun setz den LoadTexture teil in ";" ... nun starte das beispiel nochmal und du wirst evtl. überrascht sein...!? Bei mir tritt folgende phänomen auf... Die CreatedTexture zeigt nun (obwohl wir keine texture eingeladen haben), die alte geladene texture an (vom programmstart zuvor)... scheint als wäre dort ein etwas größerer bug!? (obwohl ich am ende immer FreeTexture() aufrufe, so scheint diese nicht wirklich im speciher gelöscht zu sein!?
FreeTexture() löscht ja auch nicht den Bereich wo das Bild liegt, sondern die Daten um die Texture zu handhaben, wär ja total unsinnig zuerst noch den Buffer mit 0en zu füllen bevor man es löscht.
merlin hat geschrieben:

Code: Alles auswählen

StartDX9([flags]) - HELPFILE
Flags sind nicht im helpfile aufgelistet..
Habs geändert.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Version 0.53:

-RGBA(R,G,B,A) hinzugefügt
-DrawingBufferSupport für Texturen (DrawingBufferStartTextureDX9()/DrawingBufferStopTextureDX9())
-die DrawingBuffer Proceduren sind jetzt Threadsicher und enthalten desswegen jetzt einen *DrawingBuffer.D3D9_DrawingBuffer Parameter.
-DrawingBufferDX9() entfernt
-DrawingBufferPitchDX9() entfernt
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 »

hab mal getestet und die 256x256 textur sieht nun normal aus ;)

debugoutput:

0 <- 24 bit macht meine karte nicht mit
24125952
1024
4
merlin
Beiträge: 157
Registriert: 30.07.2005 22:15

Beitrag von merlin »

SoS hat geschrieben:hab mal getestet und die 256x256 textur sieht nun normal aus ;)

debugoutput:

0 <- 24 bit macht meine karte nicht mit
24125952
1024
4
@SoS:
Was für eine Karte hast du? Bei mir ist das gleiche... Ich kann zwar unter Windows den screen auf 16/24/32 bit stellen und es funkioniert... Jedoch kann ich bei dm Grafikkarten-Prefs-Tool von ATI nur zwischen 16 und 32 bit wählen... (selbst dort gibt es kein 24 bit!)

Daher vermute ich mal, das die karte technisch nur echte 16 und 32 bit darstellen kann! Wenn du jedoch über system auf 24 stellst, das dieses irgendwie emuliert wird oder wie auch immer (zumale 24 bit eh recht langsam ist)
Benutzeravatar
SoS
Beiträge: 340
Registriert: 29.08.2004 09:31
Kontaktdaten:

Beitrag von SoS »

ATI 9700 pro

Ich kann auch nur zwischen 16/32 bit auflösung auswählen,24 bit werden nicht unterstützt (hatte mal ein Programm das nur mit 24 bit läuft und das tut es mit meiner Grafikkarte nicht)
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Heut gibts wohl keine Grafikkarten mehr die 24bit unterstützen...

Version 0.54:
-BoxDX9 fixed
-LoadSpriteDX9() added
-DisplaySpriteDX9() added
-FreeSpriteDX9() added
-CreateSpriteDX9() added

Bei mir läuft LoadSpriteDX9() komischerweise aber nicht, er erstellt zwar das Sprite, kann es dann aber nicht laden. Vielleicht funktionierts ja bei euch...

[Edit] Hab noch vergessen, dass man ja jetzt bei DrawingBufferStart/StopDX9() einen hSprite-Parameter angeben kann.
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 »

LoadSpriteDX9() läuft bei mir auch nicht,egal welche grösse und dateityp
merlin
Beiträge: 157
Registriert: 30.07.2005 22:15

Beitrag von merlin »

SoS hat geschrieben:LoadSpriteDX9() läuft bei mir auch nicht,egal welche grösse und dateityp
hier ist gleiche prob..
Antworten