StretchBlt (Spiegeln) geht unter Vista nicht.

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
String
Beiträge: 69
Registriert: 17.05.2007 16:22

StretchBlt (Spiegeln) geht unter Vista nicht.

Beitrag 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
PB v4.**
Benutzeravatar
alter Mann
Beiträge: 201
Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond

Beitrag 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
Win11 64Bit / PB 6.0
Benutzeravatar
String
Beiträge: 69
Registriert: 17.05.2007 16:22

Beitrag 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).
PB v4.**
Pandorra
Beiträge: 124
Registriert: 10.02.2007 12:15

Beitrag 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
Benutze PB v 4.40 Beta 3
Benutzeravatar
String
Beiträge: 69
Registriert: 17.05.2007 16:22

Beitrag 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!!
PB v4.**
Antworten