ViewPort-Problem

Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2093
Registered: 03 / 2003
Subject:

ViewPort-Problem

 · 
Posted: 07.03.2022 - 14:38  ·  #1
Hallo Zusammen,

ich möchte aktuell erstmals ViewPorts verwenden und hab da eine Unstimmigkeit gefunden.
Folgender Code .... Ich definiere 3 gleich große Viewports auf einem 240x128-Pixel-Display und lasse mir den Frame anzeigen. Dann wechsle ich in den ViewPort, stelle die Textausrichtung ein und gebe Text aus. Da ich wissen wollte, ob diese Einstellung beibehalten wird, wechsle ich später nochmals in die ViewPorts und gebe nochmal Text aus.
Bei alHorLeft und alHorCenter schaut das auch normal aus, aber bei alHorRight kann was nicht stimmen. Ich mache eine Ausgabe auf X=180 und sehe was, wo doch der ViewPort nur 58 breit ist.
Code

Procedure TestGraph;                                  // ViewPort-Test
  Begin
    gOpenView(1,  1,  1, 60,126);
    gOpenView(2, 81,  1,140,126);
    gOpenView(3,161,  1,220,126);
    gFrameView(1);
    gFrameView(2);
    gFrameView(3);
    gSwitchView(1);
    gSetTextJustify(alHorLeft,alVertTop);
    gDrawString(40,46,2,2,TxtRot0,'Testausgabe');
    gSwitchView(2);
    gSetTextJustify(alHorCenter,alVertTop);
    gDrawString(40,66,2,2,TxtRot0,'Testausgabe');
    gSwitchView(3);
    gSetTextJustify(alHorRight,alVertTop);
    gDrawString(180,86,2,2,TxtRot0,'Testausgabe');
    
    gSwitchView(1);
    gDrawString(40,66,2,2,TxtRot0,'ABCDEFGHIJKLMNOPQ');
    gSwitchView(2);
    gDrawString(40,86,2,2,TxtRot0,'ABCDEFGHIJKLMNOPQ');
    gSwitchView(3);
    gDrawString(180,106,2,2,TxtRot0,'ABCDEFGHIJKLMNOPQ');
    
    gSwitchView(0);
    gDrawString(30,26,2,2,TxtRot0,'ABCDEFGHIJKLMNOPQ');
    gDrawLine(180,0,180,127,$33);
    gDispRefresh;
  End TestGraph;


Wenn man den linken ViewPort(1) anschaut und die Ausgabe, stimmt da auch was nicht. Breite des ViewPorts ist 58 und Ausgabe auf X40 ..... das sieht eher wie Ausgabe auf X20 aus.

Die gestrichelte Linie ist bei X180 ViewPort(0).

Gruss
Harry
Attachments
ViewPort-Problem
Filename: ViewPort.jpg
Filesize: 137.99 KB
Title:
Download counter: 53
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 756
Registered: 06 / 2013
Subject:

Re: ViewPort-Problem

 · 
Posted: 07.03.2022 - 17:14  ·  #2
Hallo Harry, der ViewPort stimmt schon lange nicht.


Gruß Frank
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2093
Registered: 03 / 2003
Subject:

Re: ViewPort-Problem

 · 
Posted: 07.03.2022 - 19:04  ·  #3
Hi Frank,

ach DAS war das Problem? Wegen dem wir schon vor ein ... zwei Jahren geredet haben?
Mist. Vielleicht kann Merlin das reparieren :)

Gruss
Harry
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2093
Registered: 03 / 2003
Subject:

Re: ViewPort-Problem

 · 
Posted: 08.03.2022 - 13:44  ·  #4
Hallo,

ich hab was raus gefunden .....
Wenn man zusätzlich zur ViewPort-Definition auch ein ScaleView macht (Auch wenn es die gleiche Größe bleibt!), funktioniert vieles plötzlich richtig. Vorher wurden bei mir die Rechtecke falsch gezeichnet und die Ausrichtung des Textes war falsch!

Code

Procedure TestGraph;                                  // ViewPort-Test
  Begin
    gOpenView(1,  0,  0, 31, 71);
    gScaleView(1, 0, 0, 31, 71);
    gOpenView(2, 32,  0, 63, 71);
    gScaleView(2, 0, 0, 31, 71);
    gOpenView(3, 64,  0, 95, 71);
    gScaleView(3, 0, 0, 31, 71);
    gDrawLine( 0,72, 0,80,$FF);
    gDrawLine(31,72,31,80,$FF);
    gDrawLine(32,72,32,80,$FF);
    gDrawLine(63,72,63,80,$FF);
    gDrawLine(64,72,64,80,$FF);
    gDrawLine(95,72,95,80,$FF);
    gDrawLine(96,71,104,71,$FF);
    gDrawLine(96,23,104,23,$FF);
    gDrawLine(96,24,104,24,$FF);
    gDrawLine(96,47,104,47,$FF);
    gDrawLine(96,48,104,48,$FF);
    gDrawLine(96,71,104,71,$FF);
    gDrawString( 8,76,2,2,TxtRot0,'R');
    gDrawString(40,76,2,2,TxtRot0,'G');
    gDrawString(72,76,2,2,TxtRot0,'B');
    gDrawString(100, 3,1,2,TxtRot0,'Modul1');
    gDrawString(100,27,1,2,TxtRot0,'Modul2');
    gDrawString(100,51,1,2,TxtRot0,'Modul3');

    gSwitchView(1);
    gSetTextJustify(alHorCenter,alVertTop);
    gDrawString(0, 6,1,1,TxtRot0,'0123456789');
    gDrawRect(0,0,31,71,$FF);
    gSwitchView(2);
    gSetTextJustify(alHorCenter,alVertTop);
    gDrawString(0,16,1,1,TxtRot0,'0123456789');
    gDrawRect(0,0,31,71,$FF);
    gSwitchView(3);
    gSetTextJustify(alHorCenter,alVertTop);
    gDrawString(0,26,1,1,TxtRot0,'0123456789');
    gDrawRect(0,0,31,71,$FF);
    
    gSwitchView(1);
    gSetTextJustify(alHorLeft,alVertTop);
    gDrawString(10,36,1,1,TxtRot0,'ABCDEFGHIJ');
    gSwitchView(2);
    gSetTextJustify(alHorLeft,alVertTop);
    gDrawString(10,46,1,1,TxtRot0,'ABCDEFGHIJ');
    gSwitchView(3);
    gSetTextJustify(alHorLeft,alVertTop);
    gDrawString(10,56,1,1,TxtRot0,'ABCDEFGHIJ');
    
    gDispRefresh;
  End TestGraph;


Die Linien unten zeigen die 3 Bereiche der ViewPorts in X-Richtung. Die untere Markierung rechts zeigt die Höhe der ViewPorts. Das "Modul1-3" nicht beachten, das ist nur, weil das bei mir 3 zusammen geschaltete LED-Module sind. Diese 3 Module haben eine Auflösung von 32x72 RGB-LEDs. Wenn ich im ViewPort 1 "Seggl" schreib, im ViewPort 2 "Daggl" und im ViewPort 3 "Depp" (mit unterschiedlichen Koordinaten) und refreshe, steht im Display in rot "Seggl", in grün "Daggl" und in blau "Depp" auf dem Display.

Gruss
Harry
Attachments
ViewPort-Problem
Filename: ViewPort2.jpg
Filesize: 190.83 KB
Title:
Download counter: 32
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 10 · Cache Hits: 15   82   97 · Page-Gen-Time: 0.013641s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI