ScreenOutput() auf WindowedScreen?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
KatSeiko
Beiträge: 367
Registriert: 19.07.2008 07:47

ScreenOutput() auf WindowedScreen?

Beitrag von KatSeiko »

Irgendwie will das hier bei mir (v4.31) nicht laufen:

Code: Alles auswählen

Enumeration
#MainWindow
EndEnumeration
#Title = "Test"

OpenWindow(#MainWindow, 0, 0, 1024, 768, #Title, #PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
OpenWindowedScreen(WindowID(#MainWindow), 0, 0, 800, 600, 0, 0, 0)
;ReadSettings()

Procedure Work()
StartDrawing(ScreenOutput())
StopDrawing()
EndProcedure

Repeat
ClearScreen(0)
;Work()
FlipBuffers()
WEvent = WaitWindowEvent(10)
Until WEvent = #PB_Event_CloseWindow
;WriteSettings()
End 42
Als Fehlermeldung bekomme ich "[ERROR] The specified output is NULL (0 value)."
Win7 Ultimate x64, PureBasic 5.11

There is no substitute..
BildBildBild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

das läuft bei mir auch nicht, da fehlt InitSprite() /:->



> [ERROR] The specified output is NULL (0 value).

schon mal die suche benutzt?

du benutzt openGL Subsystem, wa?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
KatSeiko
Beiträge: 367
Registriert: 19.07.2008 07:47

Beitrag von KatSeiko »

Naja, InitSprite war im Original schon drin...

InitSprite()
InitKeyboard()
InitMouse()

Und nein, ich benutze DX9...
Win7 Ultimate x64, PureBasic 5.11

There is no substitute..
BildBildBild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also, bitte noch mal in vollständig.

poste bitte einen code, der genau so wie er ist den Fehler reproduziert,
und schreibe auch sämtliche compileroptionen mit dazu.

ich habe jetzt keine lust, rumzuprobieren was ich alles noch in den code hinzufügen muss,
und welche optionen ich einstellen muss und welche nicht, um deinen fehler zu reproduzieren.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
KatSeiko
Beiträge: 367
Registriert: 19.07.2008 07:47

Beitrag von KatSeiko »

In Vollständig... Viel Spaß.

Code: Alles auswählen

;{ Enumeration
Enumeration 42
;Allgemein
#MainWindow
#XML
#Main3DWindow
EndEnumeration
;}

;{ Weitere Konstanten
#Title = "Test"
;}

;{ Initialisierungen
InitEngine3D()
InitSprite()
InitNetwork()
InitKeyboard()
InitMouse()
;}

;{ Variablen
Global ServerPort.l
;}

;{ Prozeduren
Declare Work()
Declare ReadSettings()
Declare WriteSettings()
;}

OpenWindow(#MainWindow, 0, 0, 1024, 768, #Title, #PB_Window_MinimizeGadget)
OpenWindowedScreen(WindowID(#MainWindow), 0, 0, 1024, 768, 0, 0, 0)
ReadSettings()

Repeat
ClearScreen(0)
ExamineMouse()
ExamineKeyboard()
Work()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
WriteSettings()
End

Procedure Work()
StartDrawing(ScreenOutput())
LineXY(MouseX()-1, MouseY(), MouseX()+1, MouseY(), RGB(255,255,255))
LineXY(MouseX(), MouseY()-1, MouseX(), MouseY()+1, RGB(255,255,255))
StopDrawing()
EndProcedure

Procedure ReadSettings()
If LoadXML(#XML, "settings.xml", #PB_UTF8)
 *root = RootXMLNode(#XML)
 *main = ChildXMLNode(*root)
 *current = ChildXMLNode(*root)
 While *current
  Select GetXMLAttribute(*current, "type")
  Case "port"
   ServerPort = Val(GetXMLAttribute(*current, "value"))
  EndSelect
  *current = NextXMLNode(*current)
 Wend
 FreeXML(#XML)
Else
 ServerPort = 74656
 
EndIf
EndProcedure

Procedure WriteSettings()
CreateXML(#XML, #PB_UTF8)
*root = RootXMLNode(#XML)
*main = CreateXMLNode(*root)
SetXMLNodeName(*main, "settings")
*current = CreateXMLNode(*main)
SetXMLNodeName(*current, "setting")
SetXMLAttribute(*current, "type", "port")
SetXMLAttribute(*current, "value", Str(ServerPort))
SaveXML(#XML, "settings.xml")
FreeXML(#XML)
EndProcedure
Win7 Ultimate x64, PureBasic 5.11

There is no substitute..
BildBildBild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

wie auch schon in einem anderen Thema:

sobalt du InitEngine3D() benutzt, kannst du kein Drawing mehr machen !

Anderes Thema bezüglich dieses Problems
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

deswegen eben immer vollständig

dann sieht man so etwas sofort. /:->


... es kommt der Tag, da werde ich in den Anfängerbereich garnicht mehr rein gucken.
das geht einem echt auf die Makrone ständig das selbe erzählen zu müssen und es bekommt eh keiner mit ...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten