Bug? Nach InitEngine3D keine ClearScreen-Ausführung

Für allgemeine Fragen zur Programmierung mit PureBasic.
Renovatio

Bug? Nach InitEngine3D keine ClearScreen-Ausführung

Beitrag von Renovatio »

Hallo,

nachdem ich einen mithilfe von CreateSprite() erstellten MausCursor über den Screen rennen lasse und nun InitEngine3D() hinzufüge, scheint der Befehl ClearScreen(#Black) außer Kraft gesetzt zu sein.
Jedenfalls wird fortan nach dem InitEngine3D() Befehl die Mausspur angezeigt und nicht wie ohne InitEngine3D() ohne Spur.

Woran könnte das liegen?

Durch SetFrameRate() habe ich auch keine veränderten Ergebnisse erhalten.

Hier mal mein SourceCode:

Code: Alles auswählen

IncludePath "Source"
XIncludeFile "Init.pbi"
XIncludeFile "Globals.pbi"
XIncludeFile "Screen.pbi"
XIncludeFile "Mouse.pbi"

Procedure dxs_app_run()

Repeat
	
	FlipBuffers() : ClearScreen(#Black)
	
	ExamineMouse()
	ExamineKeyboard()
	
	DisplayTransparentSprite(0,MouseX(),MouseY())
	
Until KeyboardPushed(#PB_Key_Escape) Or MouseButton(#PB_MouseButton_Right)

EndProcedure



;{ ##### Run Application #####

dxs_initialization()
dxs_globals()
dxs_win_main_open()
dxs_mouse_create()
dxs_app_run()

;}

Viele Grüße
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: Bug? Nach InitEngine3D keine ClearScreen-Ausführung

Beitrag von ts-soft »

Renovatio hat geschrieben:Woran könnte das liegen?
An dem hier fehlenden Code?

Entweder Du gibst uns einen absoluten Pfad zu Deiner Festplatte, was wohl schlecht geht,
oder Du erstellst einen kleinen, a u s f ü h r b a r e n Code, der das Problem zeigt.

Angaben zu OS, Subsystemen und verwendeter PB Version wären auch sinnvoll.

Von einem Mausspurproblem hab ich mal was gelesen, aber bin nicht bereit danach zu suchen.

Gruß
Thomas, der jetzt Hellseher werden möchte.
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
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Bug? Nach InitEngine3D keine ClearScreen-Ausführung

Beitrag von RSBasic »

ts-soft hat geschrieben:Gruß
Thomas, der jetzt Hellseher werden möchte
, der aber leider bereits seine Glaskugel verkauft hat. :wink:

Vielleicht wäre es sinnvoll, wenn man einen Thread, der auf Wichtig gestellt ist, erstellt und dort schreibt, was man beim Erstellen einer Frage beachten muss.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Renovatio

Re: Bug? Nach InitEngine3D keine ClearScreen-Ausführung

Beitrag von Renovatio »

Ok, dachte der erste Code würde reichen.

Hier erstmal die Quellcodes:

Source\Init

Code: Alles auswählen

Procedure dxs_initialization()

If Not InitMouse()
	
	MessageRequester("Fehler", "Maus Umgebung konnte nicht geladen werden")
	End
	
EndIf

If Not InitKeyboard()
	
	MessageRequester("Fehler", "Tastatur Umgebung konnte nicht geladen werden")
	End
	
EndIf

If Not InitSprite()
	
	MessageRequester("Fehler", "Sprite Umgebung konnte nicht geladen werden")
	End
	
EndIf

;If Not InitEngine3D()
;	
;	MessageRequester("Fehler", "3D Umgebung konnte nicht geladen werden")
;	End
;	
;EndIf

UsePNGImageDecoder()

EndProcedure
Source\Globals

Code: Alles auswählen

Procedure dxs_globals()

Global ScreenW										= 800
Global ScreenH										= 600
Global ScreenDepth								= 32
Global ScreenFlip								= #PB_Screen_NoSynchronization
Global ScreenHz									= 75

EndProcedure
Source\Screen

Code: Alles auswählen

Procedure dxs_win_main_open()
	
	OpenScreen(ScreenW, ScreenH, ScreenDepth, "DXS2011", ScreenFlip, ScreenHz)
	
EndProcedure
Source\Mouse

Code: Alles auswählen

DrawingMode = 1

Procedure dxs_mouse_create(Size, StartLocationX, StartLocationY)
	
	If Size = 6
		
		CreateSprite(0, 6, 6, #PB_Sprite_Texture)
		StartDrawing(SpriteOutput(0))
			DrawingMode(DrawingMode)
			Circle(2, 2, 2, RGB(255, 255, 255))
		StopDrawing()
		
	EndIf
	
	If Size = 8
		
		CreateSprite(0, 8, 8, #PB_Sprite_Texture)
		StartDrawing(SpriteOutput(0))
			DrawingMode(DrawingMode)
			Circle(3, 3, 3, RGB(255, 255, 255))
		StopDrawing()
		
	EndIf
	
	If Size = 10
		
		CreateSprite(0, 10, 10, #PB_Sprite_Texture)
		StartDrawing(SpriteOutput(0))
			DrawingMode(DrawingMode)
			Circle(4, 4, 4, RGB(255, 255, 255))
		StopDrawing()
		
	EndIf
	
	If Size = 12
		
		CreateSprite(0, 12, 12, #PB_Sprite_Texture)
		StartDrawing(SpriteOutput(0))
			DrawingMode(DrawingMode)
			Circle(5, 5, 5, RGB(255, 255, 255))
		StopDrawing()
		
	EndIf
	
	If Size = 14
		
		CreateSprite(0, 14, 14, #PB_Sprite_Texture)
		StartDrawing(SpriteOutput(0))
			DrawingMode(DrawingMode)
			Circle(6, 6, 6, RGB(255, 255, 255))
		StopDrawing()
		
	EndIf
	
	If Size = 16
		
		CreateSprite(0, 16, 16, #PB_Sprite_Texture)
		StartDrawing(SpriteOutput(0))
			DrawingMode(DrawingMode)
			Circle(7, 7, 7, RGB(255, 255, 255))
		StopDrawing()
		
	EndIf
	
	If Size <> 6 Or Size <> 8 Or Size <> 10 Or Size <> 12 Or Size <> 14 Or Size <> 16
		
		CreateSprite(0, 12, 12, #PB_Sprite_Texture)
		StartDrawing(SpriteOutput(0))
			DrawingMode(DrawingMode)
			Circle(5, 5, 5, RGB(255, 255, 255))
		StopDrawing()
		
	EndIf
	
	MouseLocate(StartLocationX, StartLocationY)
	
EndProcedure
Start

Code: Alles auswählen

;**************************************************
; 
; Project:		DXS2011
; Date:				17.05.2010
; Update;			18.05.2011
; Version:		0.0.0.1
; Author:			Renovatio
; Developer:	Define-X Software
; 
;**************************************************

IncludePath "Source"
XIncludeFile "Init.pbi"
XIncludeFile "Globals.pbi"
XIncludeFile "Screen.pbi"
XIncludeFile "Mouse.pbi"

Procedure dxs_app_run()

Repeat
	
	FlipBuffers() : ClearScreen(#Black)
	
	ExamineMouse()
	ExamineKeyboard()
	
	DisplayTransparentSprite(0,MouseX(),MouseY())
	
Until KeyboardPushed(#PB_Key_Escape) Or MouseButton(#PB_MouseButton_Right)

EndProcedure



;{ ##### Run Application #####

dxs_initialization()
dxs_globals()
dxs_win_main_open()
dxs_mouse_create(10, (ScreenW/2)-5, (ScreenH/2)-5)
dxs_app_run()

;}

Im Abschnitt bzw. Quellcode Init.pbi ist vorübergehend InitEngine3D ausgekommentiert damit ich erstmal weitermachen kann.
Zum Problem also die Auskommentierung entfernen.

Sonst einfach mal das hier downloaden dann braucht man nicht erst die Quellcodes zusammenfügen, wobei der Download nicht viel schneller sein sollte.


Viele Grüße

//Edit:

- PB 4.51 x86
- SubSystem ist keins als Standard eingetragen, denke mal das wäre dann DirectX9
- Windows 7 Ultimate x64
- Arbeitsspeicher 2 GB
- CPU AMD II X2 240 ( 2x 2.8 GHz )
- Grafik NVidia 8600GT 512 MB
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: Bug? Nach InitEngine3D keine ClearScreen-Ausführung

Beitrag von ts-soft »

RSBasic hat geschrieben:Vielleicht wäre es sinnvoll, wenn man einen Thread, der auf Wichtig gestellt ist, erstellt und dort schreibt, was man beim Erstellen einer Frage beachten muss.
So was hab ich ja bereits für das Bugforum gemacht, mit sehr bescheidenem Erfolg. Da dies zur Zeit mehrmals täglich
passiert, halte ich andere Maßnahmen für angebracht. Verschieben in den Mülleimer mit Hinweis darauf, der Beitrag ist
mit den erforderlichen Infos neu zu erstellen.

Vielleicht bekaspert Ihr euch das mal im Modbereich, so wird das ganze langsam lästig und jede Motivation zur Hilfe
schwindet.

Aber ich halte jetzt mein Maul, bin gerade auf 100 :mrgreen:

@Renovatio
Der Anfang ist gemacht, aber ein kleiner Code, der lediglich das Problem wieder gibt ist im allg. die beste Lösung, dann
hast Du zwar Mehrarbeit, aber Du bist ja auch derjenige der ein Problem hat :wink:
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
Renovatio

Re: Bug? Nach InitEngine3D keine ClearScreen-Ausführung

Beitrag von Renovatio »

ts-soft hat geschrieben:
RSBasic hat geschrieben:Vielleicht wäre es sinnvoll, wenn man einen Thread, der auf Wichtig gestellt ist, erstellt und dort schreibt, was man beim Erstellen einer Frage beachten muss.
So was hab ich ja bereits für das Bugforum gemacht, mit sehr bescheidenem Erfolg. Da dies zur Zeit mehrmals täglich
passiert, halte ich andere Maßnahmen für angebracht. Verschieben in den Mülleimer mit Hinweis darauf, der Beitrag ist
mit den erforderlichen Infos neu zu erstellen.

Vielleicht bekaspert Ihr euch das mal im Modbereich, so wird das ganze langsam lästig und jede Motivation zur Hilfe
schwindet.

Aber ich halte jetzt mein Maul, bin gerade auf 100 :mrgreen:

@Renovatio
Der Anfang ist gemacht, aber ein kleiner Code, der lediglich das Problem wieder gibt ist im allg. die beste Lösung, dann
hast Du zwar Mehrarbeit, aber Du bist ja auch derjenige der ein Problem hat :wink:
Das ist noch unhilfreicher als unhilfreich lieber ts-soft!

Ich habe alles was man zur Fehleranalyse braucht, angegeben.
Wer nicht helfen will oder zu Faul ist sich eine Datei runterzuladen oder sich mal die Abschnitte zusammenfügt, dem ist wirklich mehr geholfen wenn derjenige sich selbst hilft und nichts mehr dazu beiträgt!

( My Opinion )

Keine Ahnung wie klein Du es jetzt haben willst, doch noch kleiner geht einfach nicht mehr:

Code: Alles auswählen

InitMouse()
InitKeyboard()
InitSprite()
InitSprite3D()
InitEngine3D()

Global ScreenW = 800
Global ScreenH = 600
Global ScreenDepth = 32
Global ScreenFlip = #PB_Screen_NoSynchronization
Global ScreenHz = 75

OpenScreen(ScreenW, ScreenH, ScreenDepth, "DXS2011", ScreenFlip, ScreenHz)

CreateSprite(0, 12, 12, #PB_Sprite_Texture)
CreateSprite3D(0, 0)
StartDrawing(SpriteOutput(0))
	DrawingMode(1)
	Circle(5, 5, 5, RGB(255, 255, 255))
StopDrawing()

Repeat
	
	FlipBuffers() : ClearScreen(#Black)
	
	ExamineMouse()
	ExamineKeyboard()
	
	;DisplayTransparentSprite(0,MouseX(),MouseY())
	Start3D()
		DisplaySprite3D(0, ScreenW/2, ScreenH/2)
	Stop3D()
	
Until KeyboardPushed(#PB_Key_Escape) Or MouseButton(#PB_MouseButton_Right)
Problem bei diesem Quellcode, hiermit kommt es zu keinem Konflikt, lediglich wenn ich meinen bereits hier veröffentlichten Quellcode verwende. -.-
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: Bug? Nach InitEngine3D keine ClearScreen-Ausführung

Beitrag von ts-soft »

Renovatio hat geschrieben:Problem bei diesem Quellcode, hiermit kommt es zu keinem Konflikt, lediglich wenn ich meinen bereits hier veröffentlichten Quellcode verwende. -.-
Dann bist Du doch dem Fehler schon auf der Spur. Der Fehler steckt irgendwo im restlichen Code.
PS: Je kleiner der Code, umso einfacher ist der Fehler zu finden, vorausgesetzt er tritt noch auf :mrgreen:
Ansonsten bin ich jetzt doch lieber unhilfreich, um es Dir gleich zu tun.
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
Antworten