Beiträge von chr13

    Hallo Skiller2k1,
    Das Problem mit der Laufschrift auf Deinem Bild ist mir auch schon mal aufgefallen. Hatte bisher leider noch keine Zeit, das selber zu beheben.
    Das scheint noch ein Fehler im Skin zu sein. Wenn Du selber mal reinschauen willst:
    In den entsprechenden Zeilen (TK_EPG_TITLE) mit der Laufschrift sollte eine Hintergrundfarbe definiert werden: ... bgColor="MenuBG" ...


    Viele Grüße,
    Christian

    Hallo,


    Nach einiger Zeit habe ich eine aktualisierte text2skin Version zum Download gestellt. Die Datei gibt es wieder an der gleichen Adresse:
    ftp://merkur.2y.net/pub/vdr/te…-1.1-cvs_ext-0.11.tar.bz2


    Die wichtigsten Änderungen:
    - diverse Patches aus diesem Thread sind nun enthalten
    - Laufschriften sind etwas flüssiger, vor allem, wenn man die Menüpunkte wechselt.
    - Textobjekte erlauben es, eine Hintergrundfarbe zu setzen. Ein vorheriges überschreiben des Bereiches entfällt somit.
    - Dynamische Skalierung von Objekten mit der OSD-Größe.


    Enigma-Benutzer sollten auch auf das neueste Template aktualisieren:
    ftp://merkur.2y.net/pub/vdr/Enigma.skin-20070729.template


    Grüße, chr13

    Zitat

    Habe leider keine Ahnung was das ist, aber Skin wird nicht geladen!


    Hallo SVen,


    Bei der Datei handelt es sich nicht um ein Skin, sondern um ein Template.
    Schau doch mal im Enigma Thread, was Du damit machen mußt. Das Paket von Brougs78 enthält alles zum konvertieren.


    Christian

    Hallo Björn,


    Der Screenshot sieht sehr eigenatrig aus. Es bleibt ja anscheinend nicht alles stehen.
    Ist das Skin die Version, die auf Deiner Webseite steht? Dann könnte ich es mal selber probieren.


    Es sieht so aus, als ob die beiden Bereiche nicht richtig ans OSD übertragen wurden und noch was altes drinsteht.
    (Benutzt Du eine FF Karte?)
    Du könntest mal nachschauen, ob alle definierten Bildbereiche als "Dirty" markiert sind. Das gepatchte text2skin schreibt ein paar Meldungen auf stderr...


    Grüße,
    Christian

    Hallo Björn,


    Die neuen Optionen zum Neuzeichnen sind optional. Wenn nichts angegeben wird, dann wird immer alles im jeweiligen Display gezeichnet. Bei der Kanalinfo kann man auch durchaus auf das selektive Update verzichten.


    Verstehe ich es richtig, daß beim Wechsel von einem Sender mit EPG zu einem ohne EPG etwas von der Anzeige stehenbleibt, das nicht nicht mehr da sein sollte?


    Wenn das so ist:
    Ohne die Update-Optionen werden zwar alle Elemente im Display neu gezeichnet, aber der Bildschirm wird vorher nicht gelöscht. Um die nicht benötigten Teile weg zu bekommen mußt Du also diese nach dem Kanalwechsel mit einer transparenten Fläche überschreiben.


    Grüße,
    Christian

    Hallo,


    Den leeren Balken beim Vorspulen kann ich bei mir nicht beobachten. Mir fällt im Moment auch nicht ein, wo der her kommen soll.


    Sollte da ein Balken mit der aktuellen Position sein? Der kommt ja eigentlich nur wenn man OK gerdrückt hat. Im Skin ist anscheinend auch nichts drinn, das den Balken dort anzeigen könnte. ?(
    Ist das eine neue Funktion im vdr 1.5? Das kann ich hier im Moment leider nicht testen.


    Meine Anpassungen am Template sind übrigens nur im Menü. Alle anderen displays sind noch Original.


    Grüße,
    Christian

    Ok, das mit der Laufschrift habe ich wohl übersehen. Es fehlte nur die entsprechende refresh-Bedingung (timeout) an ein paar Stellen. Ich habe gerade ein neues skin-template hochgeladen. Es sollte jetzt gehen.


    Ich werde die beiden patches gleich mal ansehen. Wenn es auch mit altem vdr und gcc funktioniert, spricht ja nichts dagegen, es einzubauen.


    skiller2k1
    Da das Thema ja anscheindend viele interessiert, ist wohl ein eigener Thread eine gute Idee.


    Grüße,
    Christian

    Hallo!


    Alle, die mit unveränderten Skins testen wollen, können versuchen, in "screen.h" wieder "DIRECTBLIT" auszuschalten.


    Wenn immer der ganze Bildschirm überschrieben wird, würde bei DIRECTBLIT auch alles immer an die Hardware/X11 gesendet. Ohne DIRECTBLIT wird es vorher nochmal mit einem Puffer verglichen und nur der geänderte Teil übertragen.


    Das Vergleichen bringt aber wirklich nur was, wenn das OSD sehr langsam an die Hardware gesendet wird (ist das bei FF Karten so??). Mit dem selekiven Zeichnen, ist das so aber überhaupt nicht mehr nötig.


    Die meiste Zeit geht noch beim Zeichnen selber drauf. Z. B. wenn eine große Farbfläche gefüllt wird. Das liegt aber an der sehr ineffizienten Implementierung im vdr. Da wird immer punktweise verglichen und gezeichnet. Leider erlaubt die Osd-Klasse keinen direkten Zugriff auf den Bildspeicher. Das Problem sollten aber auch C++ Skins haben.


    Die beste Strategie ist also erstmal, unnötiges Zeichnen zu vermeiden.


    Brougs78
    Die Zeit hängt möglicherweise auch mit der Größe des schon angeforderten Speichers zusammen - es wurde ja hier schon berichtet, daß text2skin langsamer wird, wenn viele Skins geladen sind...
    Da die neuen Speicherbereiche sehr wahrscheinlich nicht im Cache liegen ist das auch verständlich.


    Ein Speicherleck habe ich nicht gefunden. Da jetzt aber viele new/delete Operationen weggefallen sind, könnte es auch durchaus weg sein :)


    Viele Grüße,
    Christian

    Ich poste das mal hier, da das wohl für einige hier interessant sein könnte.
    Die Darstellung der Skins mit dem text2skin Plugin ist ja äußerst langsam. Das Enigma Skin braucht bei mir (via C3 1Ghz mit xine-output) 800-1000ms für den Bildaufbau, z.B. wenn man im Hauptmenü navigiert. Das ist für eine flüssige Benutzung einfach zu langsam.


    Ich habe mir das Problem mal näher angeschaut und mehrere Ursachen gefunden. Eine modifizierte Version des Plugins kann von ftp://merkur.2y.net/pub/vdr runtergeladen werden. Diese Version basiert auf "text2skin-1.1-cvs_ext-0.10". Folgende Probleme sollten damit behoben werden:


    1. Bei jedem Neuzeichnen wird in text2skin für jedes Menüelement Speicher angefordert und freigegeben. Das kostet sehr viel Zeit. In der gepatchten Version ist das nun nicht mehr so. Die Änderung ist mit allen Skins kompatibel und bringt schon alleine eine erhebliche Geschwindigkeits-Steigerung. Mit dem Enigma-Skin dauert ein Bildschirm-Auffrischen nun etwa 100-200ms, also schonmal eine Steigerung um einen Faktor 5-10!


    2. Bei jeder Veränderung des Menüs wird alles neu gezeichnet.
    Um das zu vermeiden habe ich eine Möglichkeit eingebaut, um nur geänderte Elemente zu zeichnen. Dazu ist aber eine Anpassung der Skins notwendig.
    Die Menüelemente bekommen zwei neue Optionen:
    refresh="" und changed=""


    Mögliche Werte sind für refresh:
    allways,all,update,timeout,list,scroll,full,force


    allways : es wird in jedem Fall gezeichnet
    all: nur bei einem kompletten Neuaufbau des Bildschirminhalts
    update: es wird geprüft, ob sich das Token, das mit changed="<token>" angegeben wurde geändert hat.
    timeout: für Laufschriften...
    list,scroll: bewegen in einer Liste oder einem Scrolltext
    full: alle Elemente in einer block-Umgebung aktualisieren
    force: bei "update" wird nicht "changed" überprüft.


    Damit komme ich dann auf ca. 20-50ms Bildaufbau, wenn man z.B. im Menü zwischen den einzelnen Punkten wechselt.


    Als Beispiel steht ein angepasstes enigma-skin-template auch zum Download. Ich hoffe, die Erklärungen reichen fürs erste. Einige Beispiele sind in der Skin Datei zu sehen.


    Eine weiter Änderung in dieser Version ist auch noch eine Koordinaten-Eingabe relativ zur nächst höheren block- oder list-Umgebung. Dazu die Skin-Version auf "1.1" setzen. ein "block" kann dann ganz normal mit Position und Größe versehen werden und alle enthaltenen Elemente positionieren sich dann relativ dazu.


    Es würde mich natürlich sehr interessieren, ob ihr diese Änderungen für sinnvoll haltet.
    Christian