Date: Wed, 1 Aug 2012 00:21:23 GMT From: Brooks Davis <brooks@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 215204 for review Message-ID: <201208010021.q710LNVP068852@skunkworks.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@215204?ac=10 Change 215204 by brooks@brooks_ecr_current on 2012/08/01 00:21:21 Add a show sandboxes toggle that lets you see what areas are derived from data generated in a sandbox. Affected files ... .. //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#17 edit .. //depot/projects/ctsrd/beribsd/src/ctsrd/browser/images/browser.png#5 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/ctsrd/browser/browser.c#17 (text+ko) ==== @@ -64,11 +64,17 @@ #define vred(v) fb_colour((v), 0, 0) #define vgreen(v) fb_colour(0, (v), 0) #define vblue(v) fb_colour(0, 0, (v)) +#define vyellow(v) fb_colour((v), (v), 0) +#define vcyan(v) fb_colour(0, (v), (v)) +#define vmagenta(v) fb_colour((v), 0, (v)) #define black vwhite(0) #define white vwhite(0xFF) #define red vred(0xFF) #define green vgreen(0xFF) #define blue vblue(0xFF) +#define yellow vyellow(0xFF) +#define cyan vcyan(0xFF) +#define magenta vmagenta(0xFF) /* * Each file is displayed in a 266x40 box: @@ -119,6 +125,9 @@ #define SB_MINROW (fb_height - 38) #define SB_MAXROW (fb_height - 1) +#define SB_SHOW_MINCOL 606 +#define SB_SHOW_MAXCOL 793 + /* Start offsets for browser columns */ const int colstart[] = {0, 267, 534}; @@ -179,6 +188,15 @@ { 0, 0, 0, 0 } }; +static int sbshow = 0; + +/* + * baseimage is the black and white background image with any disabled + * protection modes grayed out. After init_bgimage() runs it will not + * be modified. bgimage starts equal to baseimage and is updated as + * the sandbox mode changes and showing sandboxes is toggled. + */ +static u_int32_t *baseimage; static u_int32_t *bgimage; static u_int32_t *icons; static magic_t magic; @@ -433,7 +451,10 @@ bgimage = malloc(sizeof(u_int32_t) * fb_height * fb_width); if (bgimage == NULL) err(1, "malloc"); - read_png_file(BASEIMG, bgimage, fb_width, fb_height); + baseimage = malloc(sizeof(u_int32_t) * fb_height * fb_width); + if (baseimage == NULL) + err(1, "malloc"); + read_png_file(BASEIMG, baseimage, fb_width, fb_height); for (sb = 0; sbdata[sb].sbtype != 0; sb++) { if (sbdata[sb].enabled) @@ -441,10 +462,13 @@ for (j = SB_MINROW; j < SB_MAXROW; j++) { for (i = sbdata[sb].bcol; i <= sbdata[sb].ecol; i++) { pixel = (j * fb_width) + i; - bgimage[pixel] = vwhite(((bgimage[pixel] >> 24) & 0xFF) / 2); + baseimage[pixel] = vwhite( + ((baseimage[pixel] >> 24) & 0xFF) / 2); } } } + + memcpy(bgimage, baseimage, sizeof(u_int32_t) * fb_height * fb_width); } static void @@ -464,22 +488,33 @@ for (j = SB_MINROW; j < SB_MAXROW; j++) { for (i = SB_MINCOL; i <= SB_MAXCOL; i++) { pixel = (j * fb_width) + i; - if (bgimage[pixel] != black) { - /* XXX: Assuming we're either blue or white */ - value = (bgimage[pixel] >> 24) & 0xFF; - if (value == 0) { - printf("unexpected zero value, pixel %08x\n", - bgimage[pixel]); - value = 0xff; - } + if (baseimage[pixel] != black) { + value = (baseimage[pixel] >> 24) & 0xFF; bgimage[pixel] = (i >= bcol && i <= ecol) ? vblue(value) : vwhite(value); } } + for (i = SB_SHOW_MINCOL; i <= SB_SHOW_MAXCOL; i++) { + pixel = (j * fb_width) + i; + if (bgimage[pixel] != black) { + value = (baseimage[pixel] >> 16) & 0xFF; + bgimage[pixel] = (sbtype == SB_NONE) ? + vwhite(value / 2) : (sbshow ? + vyellow(value) : vwhite(value)); + } + } } fb_post(bgimage); } +static void +toggle_sbshow(void) +{ + + sbshow = (sbshow + 1) % 2; + update_sandbox(sbtype); +} + static const char * get_desc(int dfd, struct dirent *entry) { @@ -555,6 +590,10 @@ fb_post_region(textbuf, colstart[(s/NROW)] + TEXT_OFFSET, FROW + (RHEIGHT * (s % NROW)) + BORDER, TEXTSPACE, CHAR_HEIGHT); + if (sbshow && sbtype != SB_NONE) + fb_fill_region(yellow, colstart[(s/NROW)] + BORDER - 1, + FROW + (RHEIGHT * (s % NROW)) + BORDER - 1, + ICON_WH + 2, ICON_WH + 2); fb_post_region(icon, colstart[(s/NROW)] + BORDER, FROW + (RHEIGHT * (s % NROW)) + BORDER, ICON_WH, ICON_WH); } @@ -595,7 +634,8 @@ } else { if (ts->ts_x1 >= SB_MINCOL && ts->ts_x1 <= SB_MAXCOL) { - for (i =0 ; ts->ts_x1 < sbdata[i].bcol || + for (i = 0; + ts->ts_x1 < sbdata[i].bcol || ts->ts_x1 > sbdata[i].ecol; i++) /* do nothing */; assert(sbdata[i].sbtype != 0); @@ -605,6 +645,11 @@ update_sandbox(sbdata[i].sbtype); return (ACT_REFRESH); } + if (ts->ts_x1 >= SB_SHOW_MINCOL && + ts->ts_x1 <= SB_SHOW_MAXCOL) { + toggle_sbshow(); + return (ACT_REFRESH); + } } } else if(ts->ts_gesture == TSG2_ZOOM_OUT) { if (ts->ts_count != 0) ==== //depot/projects/ctsrd/beribsd/src/ctsrd/browser/images/browser.png#5 (text+ko) ==== @@ -1,10 +1,46 @@ PNG --2?#9&@|O*""-,R{'"V[P{@-駟(:g?Vlٲxn61hР8Sg?Y\{1k֬={vlV1cƌ뮻hkkkcԨQ%ëbvmF۶m?>FiKg]v|UW]U/ܠ j-(\Zf^{ꍞ47t|#3 _ԁX̞{N;JwqGJ)U~R}7|s֣pdܹH={LӧOO)+qD)oBkqGEl6fΜGɓ'odSOEDM4ȽWvaeZlY\veGeee0 w7uXSRJ/5k{ưΗ`?8#saz+<gyfq;E]TluFt%LoFI&?.]{`^fNJ8nݺŔ)Sb裏Ɣ)SK.$z[L:5F555KV<087n\u濦Xp[l_~ylqg[ne]vѯ_{c 7ztE?СC\yqW>unO{l|qWrǀbРAFfbm۶??w;C̜93&L㥗^3-[%\-o1g8#+2<[̟??FvUc+~8ꨣ_!C稣#<2F>`qx{quEƍO o}[1cƌxGbذape]⬳Ί^zEeee{o7'ZD|qYo{ưVLVw V~ߦR1bDqع瞛RJN\sMҁaÆ3M48nſ?ty>S%\ưV[G}lٳg~w?,[|yO?4kn]u,ԧ~RZqŔ)SJhѢtGLwꩧ۴ifJ[-Z;/Ғ%KU%X9?un睊I)4vد4c=6-]?i.J%ĉS]Lװa/r9+?}`MHL)t]bV-S-J'NLַR6mRӿRJӦM+y - ~%*@r6k#|Gֶ6m>쳔RJ]w]jREEEҥK/~Q.ݺu+NS iO}I[ou߿z7RJ)3tWR=ztիWjذajڴi߿9sfJ)N:ؾ>6XW /N<L:Suuu⋋kɒ%i 餓NJ;vLgyfSJ)p _9xivZe[)@xRJO>d8D)6v 7ܐS<?x.R@RJiРA%7xcJ)~:UVV,7M0lU7r))&O7o^~ԤI:wmKǎWr_벎_L7.5k֬θ؇Ν;ײeԥKԥK:뻾@""3{nHf]ƎRJ[o]ytA)WVV~;~B-s*ǾjAwU__Ut-n曣UV_y~__xǢQF{>V>(٬wcCя~3gΌN:ū=z(io~3hԨQ+q뭷FĊˋ -P4iiӦ\7Ka^xa~1{'OKFuuu|.{1}zoRX}p>{wmEEEO-Zr6e_eo 4-ZQޛnnnkoB/W{eĊGYG[o5n+_.yg&LHCc,XtEo[lYl߰a؇+ 8(ӥKq{麮cᑢ:u*M81ґGYgza}vu⺤W_>nl:N)ӧaÆG}4͘18|Ĉδ_}>`K4eʔ4gΜ㏧R?YoW~'|>4dȐtW{8O`sMw^:th߆[nX}*M<9CMCIӧOO˗//ZSJԷo6m߄6VޟEp@q=z(OzRJM!HD-Ze~{jԨQ4~zZdIڕiuƧ7tSzKqg3&}kr_뺎)$"%\Rlr\ No newline at end of file +++9_sȑ#kjժ)66VӺu 6T +BΓ 6h߾} +B_4ibk֬lݺn<x4hP0|p330|ƌyng˖-/[DDD +B\܅; +r!d33[zY-{{ÇsAp /{VLn330a=3)))&%d%K͛7ٟq[l13mڎ;i$YR^gee٩S=ff6ozffvq+[l#Gٛo믿sر}laaa˸Kl!yFFu=Ng~ +Bb+T +rAիW믿~VڵkTR/$Y%lٲeffv-/66_f^+ ǎ̀ۼyB +A.333^v%hx=^{I0۾}{PȸlÆ ff3"##v? yw?㎠zhĉn6nhQQQAffx) +\x+yQ+:qDu.2IR=ԴiSܹScƌ Zƍ5{lI9MzGdf_xxxP9u?>))Icƌ zēЌ$r- _͓yIz%I23}g.]z~%I]vuQJٳuQI9GJo~,Y2`>*V!CüwG^xᅐJN8QRλA*U*+Sjjv0>;)ߩ.[l?<uFGG ;p@[NҺun:-[L/V6mԧO}g\oz$I7os֭$լY_ԩSj۶J.K/T裏Yfij߾fΜ2;V9rVk҂4vXM<Yt饗bŊrd+T +rX裏,c=t+E Ap -Ys@NwI[j}6dȐ;R.*۵kW7olIIIyZF\z~뮻 #GѣG{{C3b;qDG_~*W\P(/%g YDS||zկ__6l#Gwq\HԩSڹsg E Pz8uQϺ*!!A_|ʖ-kڴiڴi*V JLLյkW-X|ތ;V RVVLKjWڵkPZtů8 +X; wqGQQQO? t!sU[*UI&[I|w@<{szRڵkٳg[5~̲ݷR5qe˖i;; yNfmڴ۷قT,X`ffSN%K]ffyqKw@cffǎmۆfgw]uURr_B?t萞y}嗒{U\4٣+Vhƍ]f̘!Iz뭷Tlbͅ_L}=BCu)=#ڹs5b,_9PPtfޯVY̵GզMIҰar۴i|IIR͚5ŢgϞɓ'9رcq:tpV7?E~L;K 6mV7x,XSjРA[f=t+Vԃ>+.#+sʗ/O7|(Qo+uP߾}:য়~ +nȧ@$TRſHZZeggܹs'k$YJ{6lhaaaV~}_jf9@'%%$Dûuf7fftR֭UPZliv͟rʖif9MڵRJYƍ?˗h. +^.=j6l7ЂƶmۂZ*+ Ma6GOF +[ʕ+I<v%XXX%$$بQҢEC1++˲߷.]XʕmtR33[reOي+}VdI+W 0cff]w?}s0t6sLرڃ>'NXZZ]wuV~}4hܹ̞ ^{ըQ#߲|r3++#+/k*ժUw}^XbyV3n-h|`ff?(߱,8d[FF۷ώ?Y>zh33~8ѣG-55^xᅐw_tMflYſ7_6qwfʕm߾}ff6|xJ*Ur7TW^yr$Fw(n喀irԭ[7ok({7.. ǽp'LA1˹uӿy+ .MQ6Gٲe1˨Qǚ4irW_}effCPׯ_ƌcff?o53?0)w?cg@B}L<J^,B<ȑ#G/ܝm? rIsqkԨQ!P~mtvwϬ9b?~(>[mr]3gÊ럷eʔ1)u.ӏ?z/gffֺuB틄{WNlٲ-`u/wرߝ_zzz|qYf>}jA^$GNzVJy_|-Wr}??~<d( +*%+Wj˖-A7oެUV>ȳ˗@YZ5/_^f*|˖-өS h]ֱQFrz+Ƈرc*S6ltEEE +婧w97鬬,رC*SLw><sհaC%''[o 9}Sؿ_AZZbbbTj"/c۶m~Ijժnݺ/:e͚5!{/֫W6i$o^жm4uT͚5KfRFFFȗsVy=B9e<I~#58u$ű+Tjjj,ZHy_v"M~zaɓ4<22R_~6lej̙ׯ.\xuˎ?wyGJ,-Z}zHqرڶm}̟eܼs߱7nʕ+ոqc%%%iΜ9ڵ$iRյkW͜9SjݺvU{ժU6l jժ}رK|ӦM5a)SFo?_7n/\qqqW :ׯ_ջnNo$Ç<V^^uԑtvCǎӭުnݺUQoV銏ܹsO>Dg֒%K +8JHrry"͛*w{n?~<|ǎ͛5k滎K/T+Vz&Ѫ[$̂Zt86ޒ.Ny?{Ws-ܢ'j̙Aӹ7E8_֬Y]*>>@Ӈi +SjjZT5dh!dڶmjԨryYYY!/¥Q)3vXkȑZ+++K,رc5y<>α%J;>U=zNP؟K'NRA9rDwuW5j9sz9rj+nݪ6mڨ\rѣ$O?-P}5j{GGO<t.Ԁ?+""BoٳgM6ڿ>͙3GׯҥKUjUtyӕ.]:iʗ/5j(,,,d=*U$)Cu_Կ0s6A6mR>}ZݺuS=teiȐ!ׯ| +s4IRʕ2an? ?Sۻw222t%h?~p I9SN!OkVqqq/jժ3.3sGyD}Ucwoqxl4p@M2%nI9=zhI9?O +#e˪N:!S:.s;ufϞٳgKT1coC=ѣG`+9/<c1t_$ 8P5j8㣓>lcΝ*))IuQݺu5m4bz̙4hڵkݻԩS~gbf,) 7СCE߾}զM8p@W\qEwYT3_ddVݻwMP"##.wgsK9sZjƍkzu֭[5aM0Aaaaѣf͚/;9 v?W|7]vr.w^s5!ǷhBƍUT)ر\û[5e+E|l"33S>$iĈL}Sؿ%55USN$jJ$7NR·{4ORԾ}{Iy!HJJ +9[nK+JAA;"UVB<#z!3icccVcra'N03+"`={YN')͚5WBz~}͛uaÆ?T@EF}4hrmذ̂;jѢ++X + +} +Zjr{ꩧeo|Uݻ,9P-\}vΟ??ϝ;,[M6yk%of9nͫ I9m(9֢E3iuiӦ𰰰bرfK3?\ʗ/_-IEի}'-X dǧ裏}znflͫu@'EQcs/k5w111ffPa[{gs4i.\hfM{:zhPzͫ߭4lԱ_ +VFFFPӟ,MX5k w+)))r7{6.%<<fΜifS +wҜ+#T+RJ,i}?UQFٸq믿/mМmjlfQlԨQ6g;y}vQ3NE eʔoڽ{7Άn'O,3T+ =!!!6|uȑ#y(9Vvwe~yfv9c+\ No newline at end of file
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201208010021.q710LNVP068852>