Gibt es eine Möglichkeit, die Auflösung des Renderers zu aktualisieren? Ich habe versucht, renderer.resolution = window.devicePixelRatio zu verwenden, aber dadurch wird der Bildschirm nur weià blinken.
Die beste vorĂŒbergehende Problemumgehung, die ich mir ausgedacht habe, besteht darin, den Renderer zu zerstören und neu zu erstellen und die neue Auflösung an autoDetectRenderer zu ĂŒbergeben. Dies funktioniert, ist aber möglicherweise nicht der effizienteste Weg, dies zu tun. AuĂerdem gibt es möglicherweise immer noch ein Problem beim wiederholten Zerstören und Neuerstellen des Renderers: # 2233
Es scheint, dass es dafĂŒr einen einfachen Funktionsaufruf wie renderer.setResolution geben sollte, der den Aufwand fĂŒr zusĂ€tzliche Verarbeitung und tote Ressourcen minimiert.
Hallo @jaspervaz! Neugierig, was Ihr Anwendungsfall dafĂŒr ist?
Prost!
Ja, so ist es. Ich werde diese Funktion spĂ€ter ausfĂŒhren, aber dies könnte vorerst funktionieren:
renderer.resolution = 2;
renderer.rootRenderTarget.resolution = 2;
renderer.resize(w-1, h);
renderer.resize(w, h);
Vergessen Sie nicht, ALLE FILTERAUFLĂSUNGEN zu aktualisieren.
Und vergessen Sie nicht, auch die Auflösung des Interaktions-Plugins zu aktualisieren
@ Jaspervaz
Genau, Zoom Àndert sich, das möchte ich auch tun :)
Nehmen wir zunÀchst an, dass "renderer.screen" ein Rechteck des Bildschirms in logischen Koordinaten ist, wÀhrend "renderer.view" Canvas ist und somit Breite und Höhe mit der Auflösung multipliziert werden.
ĂberprĂŒfen Sie dies folgendermaĂen, damit es fĂŒr beide Renderer funktioniert:
if (renderer.rootRenderTarget) {
renderer.rootRenderTarget.resolution = newResoultion;
}
- -
Auch ohne die folgende Zeile scheint es genauso zu funktionieren, da das Zoomen sowohl die Auflösung als auch die Fensterabmessungen Àndert, aber möglicherweise erfordern andere AnwendungsfÀlle dies:
renderer.resize(w-1, h);
Ja, ich stimme zu.
@ivanpopelyshev Ich möchte den Bildschirm skalieren.
Wenn Sie Ihre Methode verwenden, wird die Leinwand unscharf.
Mit meiner Methode kann die Auflösung nicht gröĂer als 20 sein
@starInEcust Warum benötigen Sie eine Auflösung von mehr als 20? Bei der Auflösung geht es nicht um Skalierung, sondern um den Browser-Zoom. Die Skalierung ist Teil der BĂŒhnentransformation.
@ivanpopelyshev Ich möchte den Renderer vergröĂern und den Text behalten, und SVG-Bilder werden nicht verzerrt
@starInEcust Ich habe diese Probleme durch manuelles Anpassen von Skalierung und SchriftgröĂe gelöst.
Es gibt auch eine neue Lösung: Verwenden Sie SDF-Schriftarten. https://github.com/PixelsCommander/pixi-sdf-text
@ivanpopelyshev wie wĂ€re es mit svg? Ich möchte nur einen Texteditor mit cooler Animation erstellen, in der Druckvorschau kann vergröĂert und verkleinert werden, hat aber keinen Einfluss auf den Satz.
Und gibt es ein Problem mit der Verwendung der AuflösungsvergröĂerung?
Das ist ein sehr ungewöhnlicher Anwendungsfall fĂŒr Pixi. Sie mĂŒssen den Zoom durch "stage.scale" Ă€ndern und nur die Auflösung von SVG und Text anpassen, nicht die Auflösung des gesamten Renderers. In Ihrem Fall ist die BildschirmgröĂe des Renderers festgelegt, und wenn Sie die Auflösung Ă€ndern, werden die Leinwandabmessungen zu groĂ, und Sie erreichen eine GröĂe von 16 x 16 KB!
Ich habe SVG nicht in Pixi verwendet, daher weiĂ ich nicht, wie ich die Auflösung dafĂŒr anpassen soll :)
Vielen DankïŒ Vielleicht sollte ich eine Ausgabe eröffnen, um diese Frage zu diskutieren :(
Wenn Sie dieses Problem schlieĂen möchten, da es beantwortet zu sein scheint, können Sie ein weiteres öffnen, wenn Sie eine andere Frage haben!
Dieser Thread wurde automatisch gesperrt, da nach dem SchlieĂen keine AktivitĂ€t mehr stattgefunden hat. Bitte öffnen Sie eine neue Ausgabe fĂŒr verwandte Fehler.
Hilfreichster Kommentar
Ja, so ist es. Ich werde diese Funktion spĂ€ter ausfĂŒhren, aber dies könnte vorerst funktionieren:
Vergessen Sie nicht, ALLE FILTERAUFLĂSUNGEN zu aktualisieren.