text: Fullscreen OSD - VDR Plugins - VDR Portal
  Fullscreen OSD
  Ist es möglich ein Fullscreen-OSD Objekt unabhängig vom Skin und dessen Einstellungen zu erzeugen?
  Oder bin ich auf den Bildschirmausschnitt des Skins beschränkt?
  Was ich bräuchte ist ein OSD mit voller Kontrolle. Jegliche Skin-Menus, Key-Events und ähnliches des eigentlichen Skins sollten sollten in dem Moment keine Rolle mehr spielen.
  Temporär könnte man wahrscheinlich den Skin austauschen und was eigenes machen. Aber der Rücktausch könnte vielleicht zu lange dauern.
  Im Moment sammle ich nur Ideen zur Lösung...
  So richtig verstehe ich nicht was Du vor hast. Aber schau Dir doch mal osddemo an. Da bekommst Du einen Überblick was möglich ist.
  Es geht mir um Hbbtv. In dem Fall wird das OSD komplett extern gerendert und auch alle Tastenkeys sollten an den Browser gesendet werden.
  Ich habe kein Hbbtv-fähiges Endgerät, muss also "extern" schauen, wie sowas aussieht. Und ich habe den Eindruck, daß die Seiten über den ganzen Schirm gerendert werden.
  Vielleicht könnte man die Seiten auch einfach skalieren und das OSD des aktuellen Skins nutzen. Das könnte vielleicht auch klappen.
  Ich habe den cef-osr-browser soweit, daß zumindest ein paar Testseiten richtig dargestellt werden und jetzt müsste man alles in das OSD (unabhängig vom Skin) bekommen. Das ist der Hintergrund der Frage. Allerdings muss für die Videos wohl etwas anderes überlegt werden. Aber das ist noch viel weiter weg...
  Kannst Du nicht wie ein Skin ein neues OSD aufmachen?
  osd = cOsdProvider::NewOsd(OSDsize.left, OSDsize.top);
  Problem könnte nur sein, dass bereits ein OSD von einem Skin auf ist ....
  ein Plugin, dessen OSD Objekt von cOsdObject erbt, hat die volle Kontrolle über das OSD.
  oder könnte man nicht auch das ganze OSD via webgl im Browser Abbilden (vdr-psl-oglosd)
  Jedes Plugin, welches sich ins vdr-Menü einklinkt (z.B. mit der Funktion MainMenuEntry, die in deiner Plugin-Klasse überschrieben wird.) und bei der Funktion MainMenuAction gibt's ein Objekt einer Klasse zurückgibt, welches von cOsdObject abgeleitet ist, kann darstellen, was es will.
  In dessen überschriebener Show-Methode kannst du problemlos mit osd = cOsdProvider::NewOsd(...); (die Größe darfst du selbst bestimmen) ein neues OSD anzeigen, auf das du mit dessen Draw*-Funktionen alles malen kannst, was du willst.
  Und wenn du auch noch ProcessKey überlädst, bekommst du die Tasten mit, die der User drückt und kannst entsprechend darauf reagieren.
  Ich hatte die irrige Annahme, daß der Skin den Offset und die Position des OSD festlegt und alle anderen Plugins sich automatisch daran halten müssen.
  Aber wenn ich das richtig verstanden habe, dann ist dem nicht so und ich werde es probieren.
  Dem Browser das komplette Rendering und auch die Darstellung zu überlassen, habe ich auch überlegt, aber gerade wenn ich daran denke, daß ich z.B. VDR auf dem Entwicklungsrechner nur im Fenster laufen lasse und dann die Fenster irgendwie synchronisiert zu überlagern... Nach ein paar Versuchen bin ich ausgestiegen. Meine eigentlichen Clients haben nur eine Intel-GPU, aber es soll eine VDPAU auf VAAPI Library geben.