Seite 1 von 1

StretchBlt (Spiegeln) geht unter Vista nicht.

Verfasst: 06.11.2008 20:46
von String
Hat zufällig jemand ne Ahnung warum der API Befehl StretchBlt
unter Vista nicht funktioniert.
Unter WinMe und XP wird das Bild wie hier, gespiegelt.
Aber unter Vista nicht.

Bild

Code: Alles auswählen

UseJPEGImageDecoder()
InitSprite()
InitSprite3D()
OpenWindow(0, 100, 100, 640, 480, "", #PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0), 0, 0, 640, 480, 1, 0, 0)
;LoadSprite(1, #PB_Compiler_Home+"\Examples\Sources\Data\Background.bmp", #PB_Sprite_Texture)
LoadSprite(1, "2rgl-9.jpg", #PB_Sprite_Texture)
CreateSprite3D(1, 1)
ClearScreen(0)
Start3D()
DisplaySprite3D(1, 150, 100, 255)  
hdc = StartDrawing(SpriteOutput(1))
Height = SpriteHeight(1)
Width = SpriteWidth(1)
StretchBlt_(hdc, Width, 0, -Width, Height, hdc, 0, 0, Width, Height, #SRCCOPY)
StopDrawing()
DisplaySprite3D(1, 279, 100, 255)
Stop3D()
FlipBuffers(2)
While WaitWindowEvent() ! 16 : Wend
Bild

Verfasst: 14.11.2008 18:35
von alter Mann
also bei mir gehts unter vista, allerdings wurde das Farbschema geändert
und ich musste die Ausgabe vom gespiegelten Image etwas versetzen


Code: Alles auswählen

UseJPEGImageDecoder()
InitSprite()
InitSprite3D()
OpenWindow(0, 100, 100, 640, 480, "", #PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0), 0, 0, 640, 480, 1, 0, 0)
LoadSprite(1, #PB_Compiler_Home+"\Examples\Sources\Data\Background.bmp", #PB_Sprite_Texture)
;LoadSprite(1, "2rgl-9.jpg", #PB_Sprite_Texture)
CreateSprite3D(1, 1)
ClearScreen(0)
Start3D()
DisplaySprite3D(1, 150, 100, 255) 
hdc = StartDrawing(SpriteOutput(1))
Height = SpriteHeight(1)
Width = SpriteWidth(1)
StretchBlt_(hdc, Width, 0, -Width, Height, hdc, 0, 0, Width, Height, #SRCCOPY)
StopDrawing()
DisplaySprite3D(1, 150+Width, 120, 255)
Stop3D()
FlipBuffers(2)
While WaitWindowEvent() ! 16 : Wend

Verfasst: 14.11.2008 21:26
von String
Erst einmal Danke für die Info!
Dachte schon der beitrag währe untergegangen.

Nanu? Ist ja irre!
Wenn ich dein Beispiel Code verwende,
liegen die Bilder (wie ich erwartet habe) versetzt nebeneinander.
Eine Spiegelung habe ich auch da nur unter XP, unter Vista nicht.

System-Infos:
Vista Business mit den Neusten Updates
Intel® Core™ 2 Duo 2.66 GHz
2GB Ram
NVIDIA GeForce 7300 GS (ist zwar nicht die neuste reicht mir aber).

Verfasst: 17.11.2008 18:23
von Pandorra
bei mir klappt es.
Probiere es evtl mal mit Admin Modus falls es immer noch nicht geht.
Müsste aber auch ohne funktionieren.

Code: Alles auswählen

UseJPEGImageDecoder() 
InitSprite() 
InitSprite3D() 
OpenWindow(0, 100, 100, 640, 480, "", #PB_Window_SystemMenu) 
OpenWindowedScreen(WindowID(0), 0, 0, 640, 480, 1, 0, 0) 
LoadSprite(1, "Background.bmp", #PB_Sprite_Texture) 
;LoadSprite(1, "2rgl-9.jpg", #PB_Sprite_Texture) 
CreateSprite3D(1, 1) 
ClearScreen(0) 
Start3D() 
DisplaySprite3D(1, 150, 100, 255) 
hdc = StartDrawing(SpriteOutput(1)) 
Height = SpriteHeight(1) 
Width = SpriteWidth(1) 
StretchBlt_(hdc, Width, 0, -Width, Height, hdc, 0, 0, Width, Height, #SRCCOPY) 
StopDrawing() 
DisplaySprite3D(1, 150+Width, 100, 255) 
Stop3D() 
FlipBuffers(2) 
While WaitWindowEvent() ! 16 : Wend

Verfasst: 18.11.2008 00:10
von String
Hallo Pandorra!
Danke das du dir das auch noch mal angeschaut hast.
Bringt aber alles nichts.
Das Bild Spiegelt sich unter Vista einfach nicht.
Keine Fehlermeldung gar nichts.
Sollte ich den Fehler irgendwann mal finden
was ich eigentlich nicht glaube. Sag ich Bescheid.
Hab das Problem bereits anders gelöst.
Danke noch mal an alle!!