AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

synchronisieren zwischen GDI/OGL

Ein Thema von EWeiss · begonnen am 19. Okt 2013 · letzter Beitrag vom 19. Okt 2013
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

synchronisieren zwischen GDI/OGL

  Alt 19. Okt 2013, 12:03
Wie kann ich GDI und OGL so im einklang bringen das ich AV's bedingt
durch die Asynchronisation verhindern kann?

Wenn ich im resize meinen buffer verändere auf die neuen ausmaße aber
gleichzeitig im renderevent auf diesen zugreife dann krachts.
Ok ich verhindere den AV indem ich die kritischen stellen mit einer CriticalSection umgebe
ist eine lösung aber keine auf dauer.

Ist eine synchronisierung überhaupt möglich?
Ich kann den Buffer nicht sperren da er mit GDI Mitteln erstellt wird. (CreateDIBSection)
Es gäbe eine alternative gdipBitmapLockBits. Dadurch würde sich meine lib aber um 400KB vergrößern
da ich dann GDI+ einbinden müßte nur wegen zwei Funktionen.


gruss

Geändert von EWeiss (19. Okt 2013 um 12:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: synchronisieren zwischen GDI/OGL

  Alt 19. Okt 2013, 12:31
Du darfst bei GDI-Ressourcen nur in dem Thread auf die Ressourcen zugreifen in dem das GDI-Objekt erstellt wurde.
Anders geht es nicht. Die Lösung wäre wenn du schon OGL (= OpenGL?) einsetze das du komplett auf GDI verzichtest.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: synchronisieren zwischen GDI/OGL

  Alt 19. Okt 2013, 12:39
Du darfst bei GDI-Ressourcen nur in dem Thread auf die Ressourcen zugreifen in dem das GDI-Objekt erstellt wurde.
Anders geht es nicht. Die Lösung wäre wenn du schon OGL (= OpenGL?) einsetze das du komplett auf GDI verzichtest.
Danke.. Ja das weiss ich.
Es ist aber nicht anders machbar da die Anwendung das resize auslößt.
Ich kann die API also nicht in meinem Thread einlagern.

Eine alternative für CreateDIBSection? In OpenGL ..Wäre Interessant
Hat oder kennt da jemand was?

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: synchronisieren zwischen GDI/OGL

  Alt 19. Okt 2013, 13:13
Sehe gerade das du das Problem schon 4 Jahre vor dir herschiebst: http://www.delphipraxis.net/129866-c...on-opengl.html.

Hast du schon mal die diskussionen nachverfolgt wenn du nach "CreateDIBSection OpenGL" googelst?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: synchronisieren zwischen GDI/OGL

  Alt 19. Okt 2013, 13:17
Sehe gerade das du das Problem schon 4 Jahre vor dir herschiebst: http://www.delphipraxis.net/129866-c...on-opengl.html.

Hast du schon mal die diskussionen nachverfolgt wenn du nach "CreateDIBSection OpenGL" googelst?
Jo gerade noch
Überall wird das HBitmap mit CreateDIBSection erstellt.. alternativ von einem Image geladen.
Nur das habe ich nicht.
Es ging hier aber auch um etwas anderes nicht darum um CreateDIBSection zu ersetzen.

Irgendwie scheint es da nicht das richtige zu geben.
Sonst hätte ich es schon vor Jahren gelößt.

Was ich quasi benötige ist ein ersatz für den VisBuf "Pointer zu den Bitmap Daten"
der über CreateDIBSection erzeugt wird.


gruss

Geändert von EWeiss (19. Okt 2013 um 13:51 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz