PB-Bug bei einigen 2D-Drawing-Befehlen!!!

Für allgemeine Fragen zur Programmierung mit PureBasic.
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Beitrag von traumatic »

CSprengel hat geschrieben:Wenn wir mal von Sinnhaftigkeit reden, warum wohl lese und schreibe ich im deutschen Forum?
Darauf kann ich Dir keine Antwort geben, da Du mich anscheinend falsch
verstanden hast.

Wie genau äussert sich das Problem von Locate() in Verbindung mit Plot()
denn bei Dir?
Ich bin halt der Meinung, daß nach Möglichkeit jeder Fehler beseitigt werden sollte, ob das nun mehr oder weniger Sinnvoll erscheint. Im übrigen gehts hier ja drum, ob der Fehler auch bei anderen auftritt, da es ja nicht überall geschieht. Kleine Fehler können auch oft größere Ursachen haben bzw. andere Fehler nach sich ziehn...
Da bin ich absolut Deiner Meinung.
Das geflame geht halt meist erst dann los, wenn man auf einmal davon betroffen ist.
Deshalb auch mein Rat, Bug Reports ins englische Forum zu posten.

Nach meiner Erfahrung bekommst Du dort relativ schnell ein "confirmed"
oder "works fine here"

Das Interesse, Bugs zu eliminieren scheint dort generell einfach größer
ausgeprägt zu sein. Und: Es ist das offizielle Forum. Will heißen, Du
kannst hier hunderte Bug Reports machen, Fred muss aber dennoch nicht
unbedingt Kenntnis davon nehmen (auch wenn er sehr wohl das deutsche
Forum liest).
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

CSprengel hat folgendes geschrieben:
Wenn wir mal von Sinnhaftigkeit reden, warum wohl lese und schreibe ich im deutschen Forum?

Darauf kann ich Dir keine Antwort geben, da Du mich anscheinend falsch
verstanden hast.
Na ich kann kein Englisch...


Wie genau äussert sich das Problem von Locate() in Verbindung mit Plot()
denn bei Dir?
Nach Plot() wird Locate einfach nicht beachtet und der Text steht ganz oben links in der Ecke, also bei Locate(0, 0).


Im Übrigen hab ich mit meiner davorigen Antwort nicht speziell Dich angesprochen, sondern eher die Leut, die hier diesen Thread lesen, aber nichtmal in der Lage sind, den Fehler zu bestätigen oder zu dementiern. Ich hab teilweise schon vor Jahren Fehler reportet und da herschten noch ganz andere Verhältnisse beim PureBoard, die erst entfernt wurden, nachdem sie mehrmals wieder Entdeckt und reportet wurden und dazwischen in Vergessenheit geraten waren.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

Ich mußte den Code etwas ändern, da es auf Linux kein
KeyboardInkey gibt, ich aber auch da testen wollte.
(Platformunabhängigkeit von PB)

Code: Alles auswählen

If InitSprite() And InitKeyboard() And InitMouse()
  If OpenScreen(640,480, 32, "Bug") = 0
    MessageRequester("Fehler", "Auflösung ist nicht möglich." + #CRLF$ + "Programm wird beendet.")
    End
  EndIf
Else
  MessageRequester("Fehler", "DirectX ist nicht aktuell." + #CRLF$ + "Bitte aktuallisieren!")
  End
EndIf

Repeat
  ExamineMouse()
  ExamineKeyboard()

  ClearScreen($40,$40,$40)
 
  StartDrawing(ScreenOutput())
    Locate(400,  0): DrawText("Text 400, 0")
    Plot(100, 100, $FF)
    ;Plot verursacht Fehler bei Locate... ?
    Locate(400, 20): DrawText("Text 400, 20")
     
    Box(100, 200, 3, 3, $FFFF)
    Box(100, 205, 2, 2, $FFFF)
    
    ;FrontColor($FF,$FF,$FF)
    ;Box(100, 210, 1, 1)
    
    ; Box 1*1 wird mit FrontColor-Farbe gezeichnet,
    ; obwohl eine Farbe übergeben wird
    Box(100, 215, 1, 1, $FFFF)
  StopDrawing()
 
  FlipBuffers(0)
Until KeyboardPushed(#PB_Key_Escape)
Auf Linux funktioniert alles wie es soll.

Auf Windows:

Bei mir wird die 1x1 Box angezeigt, aber das Problem ist folgendes:
Die 1x1 Box wird nicht mit der angegebenen Farbe gezeichnet,
sondern mit der FrontColor-Farbe.

In dem Beispiel von CSprengel sieht es so aus als wenn es
nicht gezeichnet wird, da der Hintergrund schwarz ist - deshalb
ist hier ein ClearScreen mit Grau drin.

Wenn man die 2 Zeilen (FrontColor+Box) wieder benutzt, dann
wird die letzte 1x1 Box auch mit der FrontColor-Farbe gezeichnet.

Es sieht für mich so aus als wenn PB intern eine 1x1 Box nicht
als Box zeichnet, sondern bei der Größe 1x1 intern Plot aufgerufen
wird, aber ohne die korrekte Farbe weiterzugeben.
Das *könnte* sein - sieht jedenfalls so aus, und so wäre es
auch erklärbar.

Das würde aber nicht erklären warum es bei Kaeru Gaman
korrekt funktioniert. Er ist bisher der Einzige bei dem es
korrekt funktionieren soll, also vielleicht ein Prüffehler?
Vorausgesetzt natürlich aktuelles PB/Windows 3.93 (+ Lib-Updates).


Der Fehler mit Plot+Locate tritt hier nicht auf, d.h. beide Texte
sind an der richtigen Stelle.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

@Danilo
Tatsächlich hab ich nicht mehr an die Lib - Updates gedacht und so kann ich sagen, daß der Fehler mit Locate behoben ist. Jedoch ist bei Box bei mir mit XP voll geupt auch das gleiche Verhalten wie bei Danilo.
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Ich habs mal ins englische Board als Bug gemeldet.
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Danilo hat geschrieben:Das würde aber nicht erklären warum es bei Kaeru Gaman korrekt funktioniert.
vielleicht weil ich noch nicht auf 3.93 upgedated hab?

hier läuft noch 3.92 ;)

..damit ist es ein NEWBUG.

ich beantrage hiermit offiziell,
solche bei Updates hinzugekommenen BUGs als FROGs zu bezeichnen :mrgreen:
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

@Kaeru Gaman
Das war schon ne wichtige Info, die fehlte....
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

CSprengel hat geschrieben:@Kaeru Gaman
Das war schon ne wichtige Info, die fehlte....
ja, sorry....

...hab halt einfach nich dran gedacht, dass die meisten schon auf 3.93 upgedated haben...

ich hab es mit absicht noch nicht gemacht, und die nun so langsam
auftauchenden Frogs bestätigen mich in dieser vorgehensweise...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Also ich hab 3.92 und 3.93 drauf ... hab grad ma auf beiden getestet,

auf 3.92 hab ich den Bug mit der Box(x, x, 1,1)
auf 3.93 hab ich beide Bugs, das heißt die 1X1 Pixel große Box ist schwarz und nach Plot() ist Locate() falsch.

Als Grafikkarte hab ich zur Zeit ne alte TNT2 drinne ... aber ich glaub weniger, das es daran liegt, das Locate() nicht funktioniert mit Plot()

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Antworten