Seite 1 von 1

warum schlägt GrabSprite bei 3D fehl

Verfasst: 18.11.2012 19:54
von STARGÅTE
übersehe ich etwas, oder warum schlägt der Befehl GrabSprite() innerhalb der 3D-Engine fehl?

Code: Alles auswählen

InitEngine3D()
InitSprite()
InitKeyboard()

Enumeration
	#Window
	#Camera
	#Texture
	#Material
	#Mesh
	#Entity
	#Light
	#Sprite
EndEnumeration

OpenWindow(#Window, 0, 0, 800, 600, "Demo", #PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
OpenWindowedScreen(WindowID(#Window), 0, 0, WindowWidth(#Window), WindowHeight(#Window), 1, 0, 0)

Add3DArchive(".", #PB_3DArchive_FileSystem)

CreateCube(#Mesh, 1)

CreateEntity(#Entity, MeshID(#Mesh), #PB_Material_None)
CreateCamera(#Camera, 0, 0, 100, 100)
CameraLocate(#Camera, 5, 5, 5)
CameraLookAt(#Camera, 0, 0, 0)

CreateLine3D(#PB_Any, 0, 0, 0, $FFFF00, 100, 0, 0, $FFFF00)
CreateLine3D(#PB_Any, 0, 0, 0, $FF00FF, 0, 100, 0, $FF00FF)
CreateLine3D(#PB_Any, 0, 0, 0, $00FFFF, 0, 0, 100, $00FFFF)

CreateLight(#Light, $FFFFFF, 10, 0, 0)

Repeat
	
	RotateEntity(#Entity, 0.5, 1, 0, #PB_Relative)
	
	Repeat
		Select WindowEvent()
			Case #PB_Event_CloseWindow
				End
			Case #Null
				Break
		EndSelect
	ForEver
	
	RenderWorld()
	
	ExamineKeyboard()
	If KeyboardReleased(#PB_Key_F12)
		Debug GrabSprite(#Sprite, 0, 0, 800, 600)
	EndIf
	
	FlipBuffers()
	
ForEver

Re: warum schlägt GrabSprite bei 3D fehl

Verfasst: 18.11.2012 22:07
von Mr.L
Kann es sein, dass etwas mit dem Rückgabewert von GrabSprite nicht stimmt?
Ein IsSprite(#Sprite) nach dem GrabSprite zeigt zumindest einen Wert ungleich Null an.

Nachtrag:
Komisch, es funktioniert (bei mir zumindest) mit dem subsystem openGL.

Re: warum schlägt GrabSprite bei 3D fehl

Verfasst: 18.11.2012 22:14
von STARGÅTE
Naja ohne Engine3D bekomme ich ja auch ein "Erfolg" von GrabSprite zurück.
Und selbst wenn ich nach dem "fehlschlagen" trotzdem speicher, ist das Bild leer, also schwarz.