ClearScreen() ohne Funktion (PB 4.51 / PB 4.60 Beta3)

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: ClearScreen() ohne Funktion (PB 4.51)

Beitrag von ts-soft »

@Falco
Weiß zwar nicht was es bringen soll, aber vielleicht sind ja interessante Infos für Dich bei.
DxDiag.txt hat geschrieben:------------------
System Information
------------------
Time of this report: 8/1/2011, 23:13:32
Machine name: THOMAS-PC
Operating System: Windows 7 Ultimate 64-bit (6.1, Build 7601) Service Pack 1 (7601.win7sp1_gdr.110408-1631)
Language: German (Regional Setting: German)
System Manufacturer: System manufacturer
System Model: System Product Name
BIOS: BIOS Date: 06/11/10 Ver: 08.00.14
Processor: AMD Athlon(tm) 64 X2 Dual Core Processor 6000+ (2 CPUs), ~3.0GHz
Memory: 4096MB RAM
Available OS Memory: 4096MB RAM
Page File: 2161MB used, 6027MB available
Windows Dir: C:\Windows
DirectX Version: DirectX 11
DX Setup Parameters: Not found
User DPI Setting: Using System DPI
System DPI Setting: 96 DPI (100 percent)
DWM DPI Scaling: Disabled
DxDiag Version: 6.01.7601.17514 64bit Unicode

------------
DxDiag Notes
------------
Display Tab 1: No problems found.
Sound Tab 1: No problems found.
Sound Tab 2: No problems found.
Input Tab: No problems found.

--------------------
DirectX Debug Levels
--------------------
Direct3D: 0/4 (retail)
DirectDraw: 0/4 (retail)
DirectInput: 0/5 (retail)
DirectMusic: 0/5 (retail)
DirectPlay: 0/9 (retail)
DirectSound: 0/5 (retail)
DirectShow: 0/6 (retail)

---------------
Display Devices
---------------
Card name: NVIDIA GeForce GTS 250
Manufacturer: NVIDIA
Chip type: GeForce GTS 250
DAC type: Integrated RAMDAC
Device Key: Enum\PCI\VEN_10DE&DEV_0615&SUBSYS_00000000&REV_A2
Display Memory: 2287 MB
Dedicated Memory: 495 MB
Shared Memory: 1791 MB
Current Mode: 1680 x 1050 (32 bit) (60Hz)
Monitor Name: PnP-Monitor (Standard)
Monitor Model: SyncMaster
Monitor Id: SAM037C
Native Mode: 1680 x 1050(p) (59.883Hz)
Output Type: DVI
Driver Name: nvd3dumx.dll,nvwgf2umx.dll,nvwgf2umx.dll,nvd3dum,nvwgf2um,nvwgf2um
Driver File Version: 8.17.0012.7533 (English)
Driver Version: 8.17.12.7533
DDI Version: 10
Driver Model: WDDM 1.1
Driver Attributes: Final Retail
Driver Date/Size: 5/25/2011 09:25:23, 15223912 bytes
WHQL Logo'd: n/a
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Re: ClearScreen() ohne Funktion (PB 4.51)

Beitrag von Falko »

WHQL Logo'd: n/a

Vielleicht bringst dir ja was.

http://de.wikipedia.org/wiki/Windows_Ha ... ality_Labs

Gruß Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: ClearScreen() ohne Funktion (PB 4.51)

Beitrag von ts-soft »

Wenn Du genauer guckst, siehst Du das ich Haargenau denselben NVidia Treiber habe wie Du und der ist
WHQL-Zertifiziert (NVidia kann solche Zertifikate bezahlen :mrgreen: )
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Re: ClearScreen() ohne Funktion (PB 4.51)

Beitrag von ullmann »

Also, ich habe jetzt ClearScreen(0) durch Box(0,0,Breite,Hoehe,0) ersetzt.

Damit funktioniert es perfekt. :)

Und Box() ist ungefähr genauso schnell wie ClearScreen(). Hätte ich gar nicht gedacht.

Dieser Geschwindigkeitstest läuft bei mir ca. 33 Sekunden:

Code: Alles auswählen

InitSprite()
InitKeyboard()

Enumeration
  #Window
EndEnumeration

  
ExamineDesktops()
OpenWindow(#Window, #PB_Ignore, #PB_Ignore, DesktopWidth(0) - 200, DesktopHeight(0) - 200, "ClearScreen() Test", #PB_Window_MinimizeGadget|#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window), 0, 0, WindowWidth(#Window), WindowHeight(#Window), 0, 0, 0)

  
  Width_X = WindowWidth(#window)
  Width_Y = WindowHeight(#window)
  
  start = ElapsedMilliseconds()
  
  For i = 1 To 1000
    
    ClearScreen(0)
      
    StartDrawing(ScreenOutput())
    
    ;Box(0,0,Width_X,Width_Y,0)
    
    StopDrawing()
  
    FlipBuffers()

  Next
  
  time_cs = ElapsedMilliseconds() - start
  
  start = ElapsedMilliseconds()
  
  For i = 1 To 1000
    
    ;ClearScreen(0)
      
    StartDrawing(ScreenOutput())
    
    Box(0,0,Width_X,Width_Y,0)
    
    StopDrawing()
  
    FlipBuffers()

  Next
  
  time_box = ElapsedMilliseconds() - start
  
  MessageRequester(" ", "Time for 1000 ClearScreen: " + Str(time_cs) + " ms" + #CRLF$ + "Time for 1000 Box: " + Str(time_box) + " ms")
  
  End
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Re: ClearScreen() ohne Funktion (PB 4.51 / PB 4.60 Beta3)

Beitrag von ullmann »

Und Box() ist ungefähr genauso schnell wie ClearScreen(). Hätte ich gar nicht gedacht.
Hier bin ich einem Fehler aufgesessen. Das gilt nur bei Bildschirmsynchronisation.

Ändert man den OpenWindowedScreen() in

Code: Alles auswählen

OpenWindowedScreen(WindowID(#Window), 0, 0, WindowWidth(#Window), WindowHeight(#Window), 0, 0, 0, #PB_Screen_NoSynchronization)
so benötigt Box() fast die doppelte Zeit wie ClearScreen().
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Re: ClearScreen() ohne Funktion (PB 4.51 / PB 4.60 Beta3)

Beitrag von ullmann »

Ich kam auf die Idee, am Anfang des Codes, nach dem Öffnen des Fensters, zu testen, ob ClearScreen(0) funktioniert
und später in Abhängigkeit des Testergebnisses entweder ClearScreen(0) oder Box(... , 0) aufzurufen.

Dazu gab ich innerhalb eines extra Start/StopDrawing - Blocks einen Plot(1,1,1) Befehl - das Ergebnis ist ja mit bloßem Auge nicht
sichtbar. Nach diesem Drawing-Block setzte ich einen ClearScreen(0) Befehl und in einem weiteren Drawing-Block den Farbtest
Debug Point(1,1). Ausgabe 0 würde bedeuten, auf Position 1,1 ist die Farbe 0, also ClearScreen hat funktioniert; Ausgabe 1 würde
bedeuten, es ist die Farbe vom Plot-Befehl noch da, ClearScreen hätte also nicht funktioniert.

Und? Überraschung! Die Ausgabe war 0, ClearScreen hat funktioniert! (Jedoch nicht in der Schleife, die die Kreise zeichnet). Aber
warum hat ClearScreen funktioniert, wo liegt der Unterschied? Richtig - Plot ist nicht Circle.

Also ersetzte ich den Plot-Befehl durch einen Circle-Befehl - und siehe da: ClearScreen funktionierte nicht.

Im dritten Versuch gab ich beide Befehle an, sowohl Plot als auch Circle (natürlich an verschiedenen x,y Positionen). Und ClearScreen
funktionierte wieder. (Wohlgemerkt im Testblock, noch nicht in der Schleife).

Ich entfernte den Testblock (also die beiden extra Start/StopDrawing-Blöcke und den ClearScreen Befehl) und setzte Plot(1,1,1) direkt in
die Schleife, die die Kreise zeichnet.

Code: Alles auswählen

  StartDrawing(ScreenOutput())
    Plot(1,1,1)
    ForEach Baelle()
      With Baelle()
        Circle(\x, \y, 10, RGB(\Rot,\Gruen,\Blau))
      EndWith
    Next 
  StopDrawing()
Tja, und so funktioniert es bestens, die Kreise hinterlassen keine Spuren mehr. Ist schon komisch, dieses PureBasic. :D
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: ClearScreen() ohne Funktion (PB 4.51 / PB 4.60 Beta3)

Beitrag von bobobo »

[Nahezu Offtopic]
Da ich da oben angegangen werde mal etwas zur Klarstellung.
Ich habe in diesen Thread nicht hinundher geschoben genausowenig
wie ich in dem o.a. basta-Posting irgendwas editiert habe. Ich habe
dort zur erklären versucht, dass dort etwas stattgefunden hat, das
außerhalb des normalen Admin/Mod-Horizonts liegt.
Alles andere ist Verschwörungstheorie ...
Hierzu muss jetzt aber echt nichts mehr geschrieben werden
[/Nahezu Offtopic]
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Re: ClearScreen() ohne Funktion (PB 4.51 / PB 4.60 Beta3)

Beitrag von PureLust »

ullmann hat geschrieben:Ich habe daraufhin mal im Forum gesucht. Irgendjemand hatte 2009 oder 2010 ein ähnliches Problem mit ClearScreen.
Scheint sich bis heute nichts geändert zu haben. Mit Fehlersuche und Forumsuche habe ich mehrere Stunden vergeudet.
Siehe zu diesem Problem auch diesen Thread.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Re: ClearScreen() ohne Funktion (PB 4.51 / PB 4.60 Beta3)

Beitrag von ullmann »

Ja genau, das wars was ich meinte.

Allerdings hatte ich kurz vor dem Erstellen des Threads im Forum schon weitergelesen und keine Lust das nochmal
rauszusuchen.
Antworten