From e2c2dffc7e713cd948123b8777deb8c6022dea1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=A8Rene=20Richarz?= Date: Mon, 29 Apr 2019 10:15:32 +0200 Subject: [PATCH] fixed ARDS vertical character positioning --- ards.c | 2 +- main.c | 9 +-------- tek4010 | Bin 45328 -> 45412 bytes tube.c | 19 +++++++++++++++---- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/ards.c b/ards.c index be29f90..bcf0787 100755 --- a/ards.c +++ b/ards.c @@ -59,7 +59,7 @@ static int x0 = -485, y0 = 450, x2, y2; static void draw_char (cairo_t *cr, cairo_t *cr2, char ch) { tube_x0 = (int)(efactor * (x0 + 540)); - tube_y0 = (int)(efactor * (y0 + 707)) - vDotsPerChar/2; + tube_y0 = (int)(efactor * (y0 + 707)); //fprintf (stderr, "[tube: %d,%d]", tube_x0, tube_y0); tube_drawCharacter(cr, cr2, ch); x0 += (int)(hDotsPerChar / efactor); diff --git a/main.c b/main.c index c720c43..12602a1 100644 --- a/main.c +++ b/main.c @@ -2,15 +2,8 @@ * * main.c * provides a simple framework for basic drawing with cairo and gtk+ 3.0 - * define main window in tek4010.h - * and cairo drawing in tek4010.c * - * The framework provides functions to - * a function to draw using cairo - * a function to initialize your code - * a function to exit your code - * a peridicaly called function - * a function called if the mouse is clicked + * Version adapted for tek4010 * * Copyright 2016,2019 rricharz * diff --git a/tek4010 b/tek4010 index ad4a428bd7acb59e0ae58c2f259f8e56b756dced..6cf6e972a40bc1e2a0c64b41dd418c5a8c1205da 100755 GIT binary patch delta 15272 zcmc&*3shCdxt@J^2ngxnl>-8v!z*Y2IVeUHR8&+HR8))@U!b5ENrFnUOk#TQm1t{j zAY&Svn1H=Dr41$+Ov7r;z2-I#O>9fLOk)yV#m7mB52^`PbEDyY-+sVmxA(T|u6A`? zKmUC5|MSnxKmW|0+51?3)^`4^tv)KS)1ingA;h7Ect_B%bwUhVr+^wJukgNCV?h{rh%q|^fXh*K3xZalJvsY2($%E15~wP{ERjbRg3ZsQVDb_Ps+Ig;c@v}jZr#8j*qI+r*~e?4Rpr$ z!kXC^?`uxz)7mQ=0-drZ&^OMk^?bi6wNF2m9|leg{SdbLTZ|Ilw8aPQ_6=QGzGnRc z%U3;cf9>+hjkT5c*S59Y_OvqCCbYicubg8);5mVrwZpCp6tQMah!8%)mn#KH!9O2Z zr<_TX+xq0in{6Tz;|s2{iQ5s|c5;Md1Uce9iX7`AmK>|hMUFL-M2^8!wj~X7IL_{l^k2dA@b2ew3EaChsl=+ zafJLfA>JmRA;eK~Y&pltV}Wo-f2rat1o){Pw9r_>v<|0?4t~1(T0N43J|_iy%)#43H-y2FN23 z1LQ@B0rEk@BZe`PjTj)GhZrD_Kn##4AqL2!5Ch~0wmkAX5Ci1lhyn7u5Ci15qeFS= zUj!)PVnE%SUA~>^Uf<3}?`@q=bp~Ad4{y&}MTmEwI(z&3yUzA}bJ#21ZM!RCtnJ+DZj~-uVo%dHaUico$2kpSPAOF)>z?E#E$#qr;Z_kpY--# zII&t0#qyRT#cw)xjC?sfYLp*Wa=t8&N>vKvlTlJ>mGRMQm1pobCdA<{F6P4&;^^Fa z^7ZIMWsUqKIwpBJ%iK+8eC$nUd_~il=fBl(b7G^nIlR&9gR;1`=po-%0%t?y5;5Lq z<$)MS`gkh3n$C!kjb7o}>ZN2C%1&hxOK%6cTY7zlG@TnMuf`OuGP^!s;L-n9(XLI6Xd!$hte!}#-)slz_XA5=g?F>*B*hVjwBDH=T>Z@Y`iWyi@U&2jjz)myvhK zQ}F?j*I}!bGm5&@WZf54sXZYe@&crrEYb!_m)0aSdTYWOy{Dm3Kn?VB8d@`l))u{= zw7CHJSd57iu^4%mo^L@u3Hc;fjMs(nxNMEyr{unb7*D#z+8W)O(0f@6+|DRL%Lx|U zWx6g~4u(vPFz7{D^hzu?D}i^#H+o&}7@3n;Ik(5Kqc0Y>jupKRIlw2}S|7f!=qBqp z0wZIzvoBThYGQ_BlkrIo&u=XHLBy`6Gj+7bb%Zu;s51@aSwpfopri1t zeaD+!49{#|As+X`BM5nhvk~F}(TXTQ6n26agV#nY38EC4w4sWq2HynY8sJ*Ug%a0C zto$U&sk|${PI}(&5RA3UA0{VacX>1UdB4NJ&2s4-DUff+-)wo{j+IKL3{6=a+6-9> zs023lgCCKPrKBqJnXgge_JeZmodYq+sFu>4_KM!BCZ7vQ-*jov{zzWH_UMK^FWFc*U&Hei~>5Esh6g^WAc zSK!kiR~H1@Hgp7ZuIV}#0i&^3%6HlVBv!A+|@cCFR~IX)vXu2Qdc5BL#1{Eb?hcn9bbs0Q)Y16~V$6TA!$dfx{W5e$j|#e$MRX`qeJ$pYtM$pz;E$_Fn2 z)qzl8hYq**>}|G0aTJC50O!F)4JslZ3!VomLO#Dnj&n~?O69}uQA)5p z;GSr^c|&%)M@IkY26k*AE^?67qS1R5n9qRE<=D(QaU4VyZ0rT!2F^v)0^R}ICV!kc zT^T1YXT~J6!=fPl3*Xi!&)Q8pL@=x}90YcS5*a@#+~ZDdM1{u7BL+8K4!{olI@-(7 z^Q)0>*K6008`S;BN87twh+Wd#Y*=+o?rbvh?#Z40uB~Tx_u(y__2c}zKVRG4y{)fo z%GvsHe%;>1?cG)GM%gwpIbt)~VcU`D9eEJ=)7eqU&;5|;i-|l0;Yc~r19cLq+6a3izz6(17*o53r2ruql}!sqhA!guId*(zsKD;q0eZ&sev7)e4Q!3 z(Uh-2zCym0H&ianiXP7>Gh9J8&>dxNVXbEUH@E%aRJdl-=PH5aAhT2$wS{>=p4~? zq-$LCZ3wSs9s9Vq$XCZidRDT>?!vQt46;r>Fk<9Ft*&SEpm1&DW&gD)-Gz%AFZ(_E zc(;ll9n(DtZBCDA?VgA>*~5oWf0(6iEHT17%4i$?uxoi=FFP`4Oyt7xrjF3iP++d7 z3=D|tiJe=FvcsH8#GBEvR&{EnS6xfoG+}(duA>ifc!J3`?f3v!==B&5>N&u@r4whv zG4V1idqn(UY-qbM#YSi_EVx42Q9ca$ZE|V$#nFYZ!yUjEX9Mm63>?;A@UTYTuF)~; zEKleW_QBp_`PkT)MLYkDZQL@+o7QSB-lV%&#c=T^c!4f{1YV$L-a*})78hU9U3^Ji z9qWvL3L3`5EAFk>BeeadRo7~vR^~-$(H_0CQI~Ae?fPK%u_3H*>3hFQmzBuP9|bC zOXR+(4(ZAsD&Nfsi&K|2=9#m}9g?$YEd6crT8=aF;gM znR7;NhO$CFoa?l8Uz5+}jtHEM4p3pc{4h5qnc-nw_(a6VW z6cvWus;2ghXYf96cciC#Q829LgTK6Zw_$oe4QXN1(+? zzJ5&xO-xXdW%|T1=wIc;93@Teo0t>0Q#W%&dM75@x_e|$-UuaKj?K%lUGI?(<&6s| z(KWsgUZZ*{ID4@CLtbVwJ;VVS@y->)!5JRprnyayo|HH<5_Q8d2yT+k_Viv1!@$BZ zFuPuM8f83b^GU%|JoRj-qnOI*#9KY`N0UZ)vaz7tSWsD5P}#1*-dy)!Z>K(~*{IHw zQ)ZA*&vZVnrZYz=!v*kdT_;!98D`Sa9>!a>hq3X{L4f$WpGWX)@fr_e1ns@*)0>gz zMxSn=@9G1_v@21T1=&@|jA+BF;d6NX6O^WJx2*djf+E!0qq-1h33}q_ifmneRjYz`@>s&6LBQDYC zt&>-$r1&L4+9~7mQ*mvbk)LS$<|}!BeuC}GujJGD36WoX)ql*P{UT7FJeI#a^Ef2G z#Cr~x?o~cRo`m&x^%};u$ez@)CXW}gW@-S=`43N>7{annbf4|l%Xg-xD$mKQQyrnZ zE%l3J^t3sF)Mop6a^18v&m0^cEwpKdBDU#e^~fIqQKx7o4xgZ-Aj%CLYkdQsgr1SV zqUS|ne;H*SL*bvr-Dt1|)C#&{X&h~O`g-`!>VVnqUwW)e5$+;Il!EF&&7cm@4UlUV zF2SIhzd?179|CoOVrS#{4LS)5hI{ko$VUpEQ+_KWXULHAc$<)f1@Zz1p^Y zv))r88DNAJAciH6eY@pjbDqa*zv$vr|36>Bb+AXyEWR`D9M;c9{Z$Z`HQxRPrJ;+% z(8Z0ip*SOKC|(`76C1ro>7T!mzbn2!Fco_mPXdv0#@s^Nwd?W+bLW@O$4jshjY>@U zJ*K=N|9kjR)awF8z@{5iRMIwc-Vcmn|1u z4d@7V8^b5`lO1#lIwwFUL0xU*OF9+La!hF{jW6a-i%wY$}m{%?rHU7cNFxPy-GY0r%e;b_V;Ckd43tVPgZj2Q-h%v;a z#&}_zG3L0g?CuzEF%}D7)0DWKyxGa$E;*xoAP+9Ru@qr(3cJexMgfqe>GGEUL+`KE z?hm9Gh^YFP1yYr$pw$0XIN& zP98X&qh7P+&GL@S4LBQ`FA#rCI{-DxK*69id27YsC2taYJIj(LcsU6pM|h2bclH zVEQjyl;gkc?G?!Tg6Iu;iQb?;uYlA5Yx`(bijVS?ytQUj>Ds+PRGH`y&NE-g&+B-Q$~iMkKI&X)GpJ#l@{u^ROg`%L zYvG~c!D=}>uVDs{m?HS=8m)j)ggCm-z&KwZ_4HwUM@Qn1Z2QwcIT{Elh!jRHLy*$ znr)I7LT>z&gum<|HijhdW0W7sx3-6e-q5{ZXk3v~AJ6dQnd~U&n1PLUDok?PtubLA z=o{G3-)oX{G)r_JaSgJ5vq^rtA`o>t^v7p?e2x;;dcg;%z|U0pimxirDf}9%C2h*P;tU)jK0&t3 z)WNI36($^nu~eCG0&ukn7b3pZ&tO^uAz~a9_*pC)+;CU6tG_{xnBV3NeRlAuytc!6 zUk%J^N%JE=K4{4yW+U5VYIYIueiL2^+-$<@fm=)%PZjlMt<94I=l?T1!#%F#f&J(( z;g?b4kjcVf;C2({I66)G97p{f{q{a!ix&O;COPyy;*zO=2764H23u144SouPM@$AO z=QkWJeMb%VBPM;yPi7eM5LLd(-H!{#wE9(e8*gB>gC^{ufgRZc z6;7Ejon3oAd9t3>SghPN&nQ(-UNK|hK zMuli7bU`5iEpl5@Cvl3L_T*5{sr>$)b0iT{`!UsACQSJe6Q=yQ2~%D?ZD9Q+CQNy| z38TJ895oeCA!_JUZo+|=8$(jEot(! z)%}i40LuP+iiPRSoyDx9<6uPyj=5T0rJ1IC5=fjE)!PC>O$ z+$o}@;ur4WIidn3^wCIY@ZeFc4`~{(k?6BUz}(nMab2eVDvNxx1=m~fixzyy&*Jm< zps>s2vy;F)Y-(MO5@#(2zOmpaYzutRW#}gY?={t52$%3k+YSW|!0q2Z=O_?jCMs0H zXZU$EeB==GfQ>}?3Jb0U=8F=e!Og&YQ)l3vzl;GP!Uh@J16JXVIT+!7G7{T`SBMB5Hsm`a9?mTP+o)p_9fXmH%VnIg7j% zm=_MM!w%67%4)c*d%SHoN>9aGt5lzpz;Nz=A)sV0lFn}W9B2$M;Wau8J=TS?o1`Gao3qEAQ z$AEd0<7#Fv?!j9e<9$dN-iQ3&qW?LtvEyQKdBm3%1qH+8so(H(1Tb%c$Mpv8Folu} zW#dek!!7_WHVt#WMZN^Mq)(36tgt9N1k9JMhToq6<~_)Giv7r<-v(@qi2Kc3z`PkI z=^g$6xD@li&N7fbBi5f8b`LhdE)?)4XEbn~826Z3J(v&TvD?3z@MG@5z_>cr>v9+H zZhTL?q&JuY%wKRB1DFJCBzkBLFh6f>M12o;U>-I3jl-z0%u-=JFs~misLVOuVv+v< z*c@s5E%J8YD3kqnfO)ko05Cs;`2kzutnk0@s@KzXx1lvbPVI??>L&JMe~4 zpU*~i;FwXMV_pxcOa^{uk$0Q03w46Dm#N5U_TnsfBrrc`X;bVFxxhSxdRRag6U+H4r6Uw8(!6T!YsQ)%rv7H=0~K8@SMk(XVt0=m9=8c{cCF1lvl5Lq_Sef*vwJcVnc2D`r48;_f-;(9RRaN zi|XA0cQ|j)|X&+ zz*m-42ZjdnUHuAd?}z1+2b}(VQ|}6uuN_G6<7bvK`N@IAK)#-@!clUE^n1nW$Bp@l z9R5mTp!Q9Hb{D+j4B}&@6YtT3@0Q!27}G)k delta 14921 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 JW!k=k{{&ZGL%aY0 diff --git a/tube.c b/tube.c index 321445d..0f5404b 100755 --- a/tube.c +++ b/tube.c @@ -91,6 +91,7 @@ static long charCount = 0; static long charResetCount = 0; static long characterInterval = 0; static int currentFontSize = 18; +static int currentCharacterOffset = 0; long startPaintTime; @@ -397,7 +398,7 @@ void tube_doCursor(cairo_t *cr2) { cairo_set_source_rgb(cr2, 0, CURSOR_INTENSITY, 0); cairo_set_line_width (cr2, 1); - cairo_rectangle(cr2, tube_x0, windowHeight - tube_y0 - vDotsPerChar + 8, + cairo_rectangle(cr2, tube_x0, windowHeight - tube_y0 - vDotsPerChar + 6 + currentCharacterOffset, hDotsPerChar - 3, vDotsPerChar - 3); cairo_fill(cr2); cairo_stroke (cr2); @@ -479,19 +480,19 @@ void tube_drawCharacter(cairo_t *cr, cairo_t *cr2, char ch) if (writeThroughMode) { // draw the write-through character cairo_set_source_rgb(cr2, 0, WRITE_TROUGH_INTENSITY, 0); - cairo_move_to(cr2, tube_x0, windowHeight - tube_y0); + cairo_move_to(cr2, tube_x0, windowHeight - tube_y0 + currentCharacterOffset); cairo_show_text(cr2, s); } else { // draw the character cairo_set_source_rgb(cr, 0, BLACK_COLOR + ((NORMAL_INTENSITY - BLACK_COLOR) * intensity) / 100, 0); - cairo_move_to(cr, tube_x0, windowHeight - tube_y0); + cairo_move_to(cr, tube_x0, windowHeight - tube_y0 + currentCharacterOffset); cairo_show_text(cr, s); // draw the bright spot cairo_set_source_rgb(cr2, BRIGHT_SPOT_COLOR, BRIGHT_SPOT_COLOR, BRIGHT_SPOT_COLOR); - cairo_move_to(cr2, tube_x0, windowHeight - tube_y0); + cairo_move_to(cr2, tube_x0, windowHeight - tube_y0 + currentCharacterOffset); cairo_show_text(cr2, s); } @@ -612,8 +613,18 @@ void tube_setupPainting(cairo_t *cr, cairo_t *cr2, char *fontName) void tube_changeCharacterSize(cairo_t *cr, cairo_t *cr2,int charsPerLine, int charsPerPage, int fontSize) { int fontsize; + cairo_font_extents_t et; hDotsPerChar = windowWidth / charsPerLine; vDotsPerChar = windowHeight / charsPerPage; leftmargin = 0; currentFontSize = fontSize; + cairo_set_font_size(cr, currentFontSize); + cairo_set_font_size(cr2,currentFontSize); + if (argARDS) { + cairo_font_extents(cr, &et); + currentCharacterOffset =(int)et.ascent; + if (DEBUG) printf("Set vertical character offset for ARDS mode to %d\n", currentCharacterOffset); + } + else + currentCharacterOffset = 0; }