From d9a2f7a036cd7870bce78937f8261f9c8bff72ae Mon Sep 17 00:00:00 2001 From: Ian Thomas Date: Tue, 26 Mar 2024 11:51:39 +0000 Subject: [PATCH] Fix WebGL scaling of antialising by pixel ratio (#13783) * Fix webgl handling of pixel ratio * Fix spelling mistake --- bokehjs/src/lib/models/glyphs/webgl/base.ts | 7 +++--- .../src/lib/models/glyphs/webgl/base_line.ts | 3 +-- .../lib/models/glyphs/webgl/base_marker.ts | 3 +-- bokehjs/src/lib/models/glyphs/webgl/image.ts | 1 - .../src/lib/models/glyphs/webgl/image.vert | 3 +-- .../src/lib/models/glyphs/webgl/marker.vert | 3 +-- .../lib/models/glyphs/webgl/regl_line.vert | 3 +-- .../src/lib/models/glyphs/webgl/regl_wrap.ts | 4 ---- bokehjs/src/lib/models/glyphs/webgl/types.ts | 2 -- ...h_patterns__with_devicePixelRatio_==_2.png | Bin 30410 -> 29080 bytes ...h_patterns__with_devicePixelRatio_==_3.png | Bin 17920 -> 16518 bytes ...ixel_ratio__with_devicePixelRatio_==_1.blf | 16 +++++++++++++ ...ixel_ratio__with_devicePixelRatio_==_1.png | Bin 0 -> 12812 bytes ...ixel_ratio__with_devicePixelRatio_==_2.blf | 16 +++++++++++++ ...ixel_ratio__with_devicePixelRatio_==_2.png | Bin 0 -> 17661 bytes ...ixel_ratio__with_devicePixelRatio_==_3.blf | 16 +++++++++++++ ...ixel_ratio__with_devicePixelRatio_==_3.png | Bin 0 -> 13361 bytes bokehjs/test/integration/regressions.ts | 22 ++++++++++++++++++ 18 files changed, 79 insertions(+), 20 deletions(-) create mode 100644 bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_1.blf create mode 100644 bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_1.png create mode 100644 bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_2.blf create mode 100644 bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_2.png create mode 100644 bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_3.blf create mode 100644 bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_3.png diff --git a/bokehjs/src/lib/models/glyphs/webgl/base.ts b/bokehjs/src/lib/models/glyphs/webgl/base.ts index 2dd9449ee82..f9cd0fb16eb 100644 --- a/bokehjs/src/lib/models/glyphs/webgl/base.ts +++ b/bokehjs/src/lib/models/glyphs/webgl/base.ts @@ -39,10 +39,11 @@ export abstract class BaseGLGlyph { return } const {width, height} = this.glyph.renderer.plot_view.canvas_view.webgl!.canvas + const {pixel_ratio} = this.glyph.renderer.plot_view.canvas_view const trans = { - pixel_ratio: this.glyph.renderer.plot_view.canvas_view.pixel_ratio, // pass pixel_ratio to webgl - width, - height, + pixel_ratio, // Needed to scale antialiasing + width: width / pixel_ratio, + height: height / pixel_ratio, } this.draw(indices, mainglyph, trans) } diff --git a/bokehjs/src/lib/models/glyphs/webgl/base_line.ts b/bokehjs/src/lib/models/glyphs/webgl/base_line.ts index f4f36f58d5e..fc2bef195db 100644 --- a/bokehjs/src/lib/models/glyphs/webgl/base_line.ts +++ b/bokehjs/src/lib/models/glyphs/webgl/base_line.ts @@ -46,8 +46,7 @@ export abstract class BaseLineGL extends BaseGLGlyph { scissor: this.regl_wrapper.scissor, viewport: this.regl_wrapper.viewport, canvas_size: [transform.width, transform.height], - pixel_ratio: transform.pixel_ratio, - antialias: this._antialias, + antialias: this._antialias / transform.pixel_ratio, miter_limit: this._miter_limit, points: main_gl_glyph._points!, show: show ?? main_gl_glyph._show!, diff --git a/bokehjs/src/lib/models/glyphs/webgl/base_marker.ts b/bokehjs/src/lib/models/glyphs/webgl/base_marker.ts index 58436968cf5..2bfb241aaec 100644 --- a/bokehjs/src/lib/models/glyphs/webgl/base_marker.ts +++ b/bokehjs/src/lib/models/glyphs/webgl/base_marker.ts @@ -94,10 +94,9 @@ export abstract class BaseMarkerGL extends BaseGLGlyph { scissor: this.regl_wrapper.scissor, viewport: this.regl_wrapper.viewport, canvas_size: [transform.width, transform.height], - pixel_ratio: transform.pixel_ratio, size_hint: marker_type_to_size_hint(marker_type), nmarkers: main_gl_glyph.nvertices, - antialias: this._antialias, + antialias: this._antialias / transform.pixel_ratio, show: this._show, center: main_gl_glyph._centers, ...this.marker_props(main_gl_glyph), diff --git a/bokehjs/src/lib/models/glyphs/webgl/image.ts b/bokehjs/src/lib/models/glyphs/webgl/image.ts index 930b5d198b9..6ef12c3d3f2 100644 --- a/bokehjs/src/lib/models/glyphs/webgl/image.ts +++ b/bokehjs/src/lib/models/glyphs/webgl/image.ts @@ -54,7 +54,6 @@ export class ImageGL extends BaseGLGlyph { scissor: this.regl_wrapper.scissor, viewport: this.regl_wrapper.viewport, canvas_size: [transform.width, transform.height], - pixel_ratio: transform.pixel_ratio, bounds: main_gl_glyph._bounds[i]!, tex: main_gl_glyph._tex[i]!, global_alpha: global_alpha.get(i), diff --git a/bokehjs/src/lib/models/glyphs/webgl/image.vert b/bokehjs/src/lib/models/glyphs/webgl/image.vert index eece9d5659d..5204c33a985 100644 --- a/bokehjs/src/lib/models/glyphs/webgl/image.vert +++ b/bokehjs/src/lib/models/glyphs/webgl/image.vert @@ -3,7 +3,6 @@ precision mediump float; attribute vec2 a_position; attribute vec4 a_bounds; -uniform float u_pixel_ratio; uniform vec2 u_canvas_size; varying vec2 v_tex_coords; @@ -17,6 +16,6 @@ void main() vec2 xy = vec2(x, y); vec2 pos = xy + 0.5; // Bokeh's offset. - pos /= u_canvas_size / u_pixel_ratio; // in 0..1 + pos /= u_canvas_size; // in 0..1 gl_Position = vec4(2.0*pos.x - 1.0, 1.0 - 2.0*pos.y, 0.0, 1.0); } diff --git a/bokehjs/src/lib/models/glyphs/webgl/marker.vert b/bokehjs/src/lib/models/glyphs/webgl/marker.vert index 2d3e8bf73c8..2d31a7165a4 100644 --- a/bokehjs/src/lib/models/glyphs/webgl/marker.vert +++ b/bokehjs/src/lib/models/glyphs/webgl/marker.vert @@ -20,7 +20,6 @@ attribute float a_hatch_weight; attribute vec4 a_hatch_color; #endif -uniform float u_pixel_ratio; uniform vec2 u_canvas_size; uniform float u_antialias; @@ -203,6 +202,6 @@ void main() #endif pos += 0.5; // Make up for Bokeh's offset. - pos /= u_canvas_size / u_pixel_ratio; // 0 to 1. + pos /= u_canvas_size; // 0 to 1. gl_Position = vec4(2.0*pos.x - 1.0, 1.0 - 2.0*pos.y, 0.0, 1.0); } diff --git a/bokehjs/src/lib/models/glyphs/webgl/regl_line.vert b/bokehjs/src/lib/models/glyphs/webgl/regl_line.vert index 14a1570bbc7..0e6a6c63ddb 100644 --- a/bokehjs/src/lib/models/glyphs/webgl/regl_line.vert +++ b/bokehjs/src/lib/models/glyphs/webgl/regl_line.vert @@ -27,7 +27,6 @@ attribute float a_dash_scale; attribute float a_dash_offset; #endif -uniform float u_pixel_ratio; uniform vec2 u_canvas_size; uniform float u_antialias; uniform float u_miter_limit; @@ -202,7 +201,7 @@ void main() } vec2 pos = xy + 0.5; // Bokeh's offset. - pos /= u_canvas_size / u_pixel_ratio; // in 0..1 + pos /= u_canvas_size; // in 0..1 gl_Position = vec4(2.0*pos.x - 1.0, 1.0 - 2.0*pos.y, 0.0, 1.0); bool turn_right_start = sin_turn_angle_start >= 0.0; diff --git a/bokehjs/src/lib/models/glyphs/webgl/regl_wrap.ts b/bokehjs/src/lib/models/glyphs/webgl/regl_wrap.ts index d0dd3b3b492..0e104ca1722 100644 --- a/bokehjs/src/lib/models/glyphs/webgl/regl_wrap.ts +++ b/bokehjs/src/lib/models/glyphs/webgl/regl_wrap.ts @@ -277,7 +277,6 @@ function regl_image(regl: Regl, geometry: Buffer, triangles: Elements): ReglRend uniforms: { u_canvas_size: regl.prop("canvas_size"), - u_pixel_ratio: regl.prop("pixel_ratio"), u_tex: regl.prop("tex"), u_global_alpha: regl.prop("global_alpha"), }, @@ -367,7 +366,6 @@ function regl_solid_line(regl: Regl, line_geometry: Buffer, line_triangles: Elem uniforms: { u_canvas_size: regl.prop("canvas_size"), - u_pixel_ratio: regl.prop("pixel_ratio"), u_antialias: regl.prop("antialias"), u_miter_limit: regl.prop("miter_limit"), }, @@ -466,7 +464,6 @@ ${line_fragment_shader} uniforms: { u_canvas_size: regl.prop("canvas_size"), - u_pixel_ratio: regl.prop("pixel_ratio"), u_antialias: regl.prop("antialias"), u_miter_limit: regl.prop("miter_limit"), u_dash_tex: regl.prop("dash_tex"), @@ -568,7 +565,6 @@ ${marker_fragment_shader} uniforms: { u_canvas_size: regl.prop("canvas_size"), - u_pixel_ratio: regl.prop("pixel_ratio"), u_antialias: regl.prop("antialias"), u_size_hint: regl.prop("size_hint"), u_border_radius: regl.prop("border_radius"), diff --git a/bokehjs/src/lib/models/glyphs/webgl/types.ts b/bokehjs/src/lib/models/glyphs/webgl/types.ts index 48966db2c10..40a909a64a6 100644 --- a/bokehjs/src/lib/models/glyphs/webgl/types.ts +++ b/bokehjs/src/lib/models/glyphs/webgl/types.ts @@ -15,7 +15,6 @@ type CommonProps = { scissor: BoundingBox viewport: BoundingBox canvas_size: Vec2 - pixel_ratio: number } type CommonLineProps = CommonProps & { @@ -87,7 +86,6 @@ export type AccumulateUniforms = { export type CommonUniforms = { u_canvas_size: Vec2 - u_pixel_ratio: number } export type CommonLineUniforms = CommonUniforms & { diff --git a/bokehjs/test/baselines/linux/Bug__in_issue_#12735__doesn't_allow_correct_rendering_of_hatch_patterns__with_devicePixelRatio_==_2.png b/bokehjs/test/baselines/linux/Bug__in_issue_#12735__doesn't_allow_correct_rendering_of_hatch_patterns__with_devicePixelRatio_==_2.png index 2d8824c0c29523b882b29d3d2c13b2260ffec899..23ea88e7602ed2ef2ab43efec648781afe0b9570 100644 GIT binary patch literal 29080 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 literal 30410 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

-}A%*O$BBA1&ZH4sTbr!nnWpMF4H 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 diff --git a/bokehjs/test/baselines/linux/Bug__in_issue_#12735__doesn't_allow_correct_rendering_of_hatch_patterns__with_devicePixelRatio_==_3.png b/bokehjs/test/baselines/linux/Bug__in_issue_#12735__doesn't_allow_correct_rendering_of_hatch_patterns__with_devicePixelRatio_==_3.png index 2340ccd41bec405c0bb2dc92bce6f7990068fd53..754de2a8c7e06075e3f3d06cce1fae9600667957 100644 GIT binary patch literal 16518 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 literal 17920 zcmeIac{tR4`#wH&MPJAxlI?mLft-$gZ&^+gQiW5Ryua zb%tzNvJHk9gJFDMqwf28KA-1z9KYjxJpX==yW{R1^WLx5b)DCFp4Wux>1eVZ;5z_; zKv=b|UbzW@FouEc&3#PZ|0llK-UELzxZl)NgA{fM%t9c?AX-;0-F}j?@Yegut@|T1 z(i`pcs{^OMik$r{B2H55ID3pSBT8F*@qn{lS*$gO*_*NHJ3X9BdpT1$-yOT}bDz^Z z%-~`Z+v6a&=Eei!rD4X`o=II~ncSj@@7F@;JOcmyN=c!*TVTaz-%fki%Y0c`P@3*| z7$c^|C>+G0wolmaqq+~n?$(tX{o;qfPl7m1{)>$g0nb{&%OPxiTU8kuBK-@VlarIY z#i!Li21bbNo-yjh-y2y7xs#QH3o4bW)Op#DEiGdt|D6k-^ZjEh7qWX!QF$Q==k6bH z#*z(jq`Go9H@Ee93@%SuN?4dd!l>|#AjTlyFyVriGjA;CA)(et!DcfT?2F-AuZg_; zLN%li{B=@N*zxOecfLd)zpAUNIa=>q;=N*fBS~&QyYdp`=FOYM_r4sOoSJH~#f%~S zw?y%U7U7eV_mnqhGP|TgIfjb|7wqxqqemo-145vFyxBT$e{BpE85IeQ`0w~S4OMX# zVb_vyHpAy3ir&B8;iem?Uia_c=T&}EJnfg<&ZHInROtFkgO}eq)hWsD!!?glFsoD* zU&x0ZvGZ?r>b8EhK>`ZQDmRr!W<3x>Fz2DF(-TEj4MLD&r-5?<=RNj8&OTjtReY<{ zo1?!cTQ`*nGCx?!4ms;GqKtdO%qGy8dreJkf=sY#C0O}K*rB|cz&V;*q5iLaw#8@K z;ZTqO>4vTD=?1vZ+Q+H(8@J^(3po6x|K z-fJf_K~N{UWuj#%BNh=ti?v99nM1Vd@1dW>hqTQWk#PMl!O z89F&xHJ6uv&_q?(R_(JR*MjE-mGvKcULBQX!q~Ro+^(XM8laFR5HiivwCnLwjn0)5 z;nMXV-f6{j7Ft|L9lh{Y=XQ~$Ak=r2bKbLde)gf7$d~>Sn=Z78?2QyfP9%JdmmXB6 zHK!=LF@k3m&~AHKU!N0_rXGHz%ly1>u&nQ<2jl}dCp*Nr_znZ) z&TMyOD7YXz{?S=Po{RVLQ?DZiii9G z5>URF6WWY=0~{lsgAY-xJP-|}P{hg9r-vNz=x05%SHN$ZP6fU$&dtgBkSJ@n)O}sr z8myZqgwvx?d{|tDQRgV`9)cra-i3UH#4NO%FPDy!HV{a$7!%ad+q8Nh?cG*D^-wK z%pdm|DEiZ$UL|v6@F*m+-pbZdH#ZkRA?8luw#yv}OnMJ09KZsO6oQ8Zv+`%yv_?V# zE|BUDdwY8)D7uN%JSGN%Fw(rg9dsoc-1O$qTK!OlMg(7#>)3Ogoj*tz@a&B1*RT8f z!Q95LKw=5vQ_;m9+E;W- zOuxk!+Xq%P5?qnU$&<{!o2$zY_=YvFFIG*k;U3r1mv4`*YD8)2Ij8<&29QA_zi#di z{R=kax+g$_P>tl3VZ8WLKGfN;$TFgG)Q_LO*usyTc^wlo;f@`@E{zRh*u(T=F26{_ z(C|o&$1G#ouOCfi4|?=4w%YVn7Iiw5L%2k%%$@U)tboeXe)ov+=X+U-J!Ws#Ej6*s zj5hecG17QhogibwWcg%lFC^zzpJR}5XihC^zwoB(`jYj#_wVn12w=#us8vweTDolR zOYU1=N!<}x$l|BK)}Lp`CW^>^*M+o%ymuVF!-oBm_tP;61FmaZ;kqx+V> zlLCLnSjkvj3T2a6gzR*9a}?$*fbyqp*h>d;KtYUzg14^jb96{mv8Z?@tk|FTITypZ zbLYe$Dyq-uQ7%#<+0o`Lzda%@z{WfZO)*;c&McQ&gr*P&{!MhUVpi)sDZ z;!rDm9Tn9`VHQ5%x^qmdCa6!`d9>c5=rPA3**97~-XS-uwVR?;#u7$F$x{mXV=-<+barLgdD@4tdLRIB_s?n*}zEMZ=@$%$wd<9Gj&7YoAY;%>VT#u z#oNfHj!)h;{v#)}0~A^Oa?{dvE1SnI+SM&(czh2=ZboA(Y_J1Hb@tusX>ChiYu zPOpjsiS=Dp*2d7z3a&2-^FusRz$(P-!bqCpno%wL82ekP9n0vY$29A=t3IqkR$4d& zS+F6me(AQL82tWaB0m0J>&sQD=$q{c)eBDR%WZqarM86{1fHyOjFg%ug;Yr9uZn; zB+>8XEKla^?TV?HL{6UUt&i8EgTA59JUO0q5`i=hidaD%FtfUO^EpTmd0 z{iSyliSkt=S*aCQvT3>#ab}aPik|Zcg`; z^vax)3b8=Ukgp}i3U|5tt!7}PsMZIw>t1(OJEiibSl?6pu`}@cXutlnQ{pBz|YCy)%Xi1JT`1#sl& zHfy%Gh*oX1N{bjRk}SxZuNx^~f&E3yj_l+myy5SkWm9<52bxx86&$XY&3!?(O~+pCgg(;Dx% zuI7Z=k%QzouwB6;br(%2!yBF>G*SXBy42 z@OQx}7-zX{8Sqo?6h&_OGD{#wUc4g>3*{^15=I9zBTiuP%ghvKBoanyLG5`FhREkE zxpySFeQHCWoB)B^j%YKGdma12HNYx&Cb93l4?xV7&!}H%qgi7HI^XFJ2eij|#q_TQ z2iyBxZVo_@-s8@0|2%P=%Qtz7e3{QGH?b#=;#{hRrx+Hw^wjx%n9_B78i7y;W+%MmRYf#CeAKzfMFNO4qF?}9-tv${^hW7?(boFQk#o?w%0mY@G zY;HRl{c`Spk}8%=YtJy)!xdDg(Zx?<$6VBYCbUV*G~_*BZ;#0DyWr+*d9mQA8-WLX zs`Iky<1V(#tvuQ;<%nU8Amhdc@9#cK@0?Nl)w(WTnCSYt3<2b-Y%aBb-kHcT)MHAfB5C_|Uwyqu z5t6_EIHOMW)x~wuun)2CFNRa)xv)oI&SLmx1i3H&aZmDoN>nEOtey?Qc}B!f5xofG zqWVqBTh+h%lA~T$$BO=NR#1aRo0-V@iVgJ~(OB2$a&R`sJEqWRwS#+mlUVbs-Asx~ zHklU$xyo&iM?3%Y@u`sM9d-&*5vVL3eE2Yd|N9+Enc+5w#>)9zJ8SyAiuoX9M9Z@? zYLSS!z*%)ME&|5h*<{Y9N;CEMFShI+d}C> zr5;dXK2N$OMnvn7-x_u;E7Z%FR9$3`vMHV@-Z4|N(|2D@^sH{U3mzcbgK#S@_?vUSD1?Ix5T z!P!;npYsKAq}^Ab&`c>|(DaM8Q`v~Pm;03=ywee1j$geP{%UsFuF}9l=dfxv!PS?+L;U%LpnjTUP2tAW zKMmOoz|)e<^D!;w-z-I$;G$4(OmHe^iHRn-k+Z}B9$UC9aUl6M24#I0R@gVx%80Ms z0Y7A6#ULZP%nB@R;UU?TrfVgAa}l#>I~?oEthy)6tR4Q)AjkvmVoP2n>WTrYnvJ2U4Rdw}y#;~vd+xNo(VhfN=P`n2tl+F`crp8XK<)2G!O z9O!74;dsQ*LRt)y3`W^=RJMP+i~KVD7A+M7<~dBokJvXTl+&myd4%T+pUnS&5|(h0 zt(&)Q$vE_id(8Fj2c4xF=%Rwz1m`l3p7#(3=#$>V-m|lt7;g!`s-?AGu@KhyP0~I4 zoz3#(j}t7d^X&kzWY4`nmN2p-@`zrcbrY(EVl>)df{0f*ghZEUlk|6L>skSKKXy!z zi)Z>TxzkTzjE6WneGi(;$o? za->MB>`{=_2Mzs21;{FC6bjl1wTVv=bS5E1#g`AKx>L8Ql}Mh?w8LZS0s3fu$c0N) zMW$a484qMvfk5T~(2_7j(>vp*9sterDm@ZA@3r`f-j?j&zn}Nqy_a)*3FP_w-TnC! z$pQ=8HY=Yn#&Pmm7WkE)wwz}x`3Vk-6EAy-1TjXuGgp4duQbp;_~=N`sf<*=&0KWH znCmfF*;{K~pap#J-~pg|DAhY3L;2QSw=ECO>vMVtZfh2Nm`h}z*uhq_O~lmBWk{bo zCFAi_Y1?sNN5SJM-si>PlR7{8OIS)9SUgSBtEzY(&-E@3MIw={vpw1QGXNEzwf)B1 zTVTcmt~x>9F>d}zVq&7JqCl7BE62yK+T9J@Luq%SEh{sE8?B~O;`LO#&8 zsWLX74t`5f>dA}}+fQE$v`s?8_*AmXr$Lv72+*$D^cP!)O>AaPy&Q-6j2JvsnJm1- zvikRp6}@9$qu&_%x3X&%jk{Hlg?+H=D~3(seLDw&;rAta#s2M5UlP$+wRTUM*-(|xOb zY#H~NZ@EbM=Je(pv1esvp$3m1KYsP<)uk>jZtgL_DpdW9GrNNsa3xrHjpY~BcRv;k zc(Plxpbu6@RFzF|Sox}CGlhdW*;Hdm>>R=;WXhTCeWi#2Uke~Ad}!Z^J=yG2xKu!~ zH27hWi?yWsJ&?M!?~Ye*+>pEH_6TbG=L!^i^9)!*Lqq$^9eE(fq@~#fFL?f?=WSX8 zIyW+r(E5Uf$93{EC*%VN@o;|Us!NsfPeef$L&OjtuiIMdud!!M>2?*M(~uQ|@tYiE zKTZDfn&jBkZ;1MDN%D?M!(O9fBR-@SVo^gR;OzE5R5m6Lp-Zhwt&T{Ub|sW8PN?!m*${MTXrmoTy0s~Pv8;dwk2 zmM?B~)2zxf)kz(QdJr?*Z@KT_G4Ue~1FeSn@gSMc7R32Fl_P8vh$i{9N>|{+t(%b` zDvVtMh)0_HKvuug6ncj-!Pn`{hyyt+i7em{1mzfzypw+)3QCAR2Gu;QD%Qep3Ps0Q z{&2eAL+ra#rozOj(1ZhJ#-zv+0X}j$bZL)B>RzYvd7Jz`iAQ+%9BPQJr#qxMj6YTK zPQ<2<4{xe3y_A^X^2pc-f-KSGqPdj&z1^TeANyTJS`Sg19>W}aD<9~O_AWl?sVUeV z`l>OTNS5UNhIl_B?ko8LZ8sOu+sYW`Y*Mgjn@R5SWDb8%DnQl_fM5FOdL9dM;yT$* z72uyfW%Y7lSfDDIQI<#&#NNyye?(wyr<=(>L66$HebGghL5TJ+F|GCTVzFW~!+d~7 ze9<+?$DR^Kxkg!*#P!BiLoty;yK3gRa+Ux zGt`iD6Wpa$gP|(ZR^)L?34U3=3fb1ywtTgrBe)ub&J9}`-U1%c{KwgAeD!)g@u$P{ z2;(Y8+_r5CjJV2@ObiR#*z??~#p=%6v1qU_WPIN~oo87D+F1=78*2B^rOt`Y8{)6y&~}%WX=iQLO6oyRkgtiy z*c-P;v>{qL5Jy6<)+PtmAoqIdhRjzi7PxJRSI7PiyH!`XEY*02Z2UXQ9s_9cO-11@ z+%Vs$7i|Zg>#0&ygr}M2Iik{mMH^eVrjW1&j&_#X&kI%*w>(j)cc1F9Qj-tA7l()) zJOtyvek{oyKfm}u-dGzNxX*uX;5Xj3>_t!Ol_c@Ullk&_z@7pkb1L{GvSfnK_g9M( zR{`3TJSG*d^c%7n{&^-gp)YHZl(s8 zuSJ52>Mb&kC_I3v=~``3%%ck%8X1e;jIWowX*=p`M%r!iMWJwwA2 z`BWg$yiQ4Z_3G8ZVFFlB?ggOL4!$f$VZUVu*Ssm+#P_YRk^`h&72nM?vr1<``LAZ9v*X~^07ZT=i=XAYQM z*@Iga(-aMQq?V+!$J>*jaR5^jD?Dp``yxpTZ1_Aoy!#E#=)|9(fVQkJPXHVW{*WzW znEwUa1pu+9pRFT^TUcLz0-)4)O;OOuY%Oa}{`@Jdq;zzm6{&gY(lckrrQH*qAZX4E znTf5jj}3k7!c%K~Bk(L!hPHV3C%0uVfC&fcLCfGG_0gk8df=e9Z{NNH_*Vlt$i2+? zI<4#1FC!2&INyy8dA+5d*}VM|4JfK*8x8j9q?h`RzC?C_`kZ#^yp`DcwhJ`iC zG0^+`Z}T?W1e7SH zD9o+Vo$b`Qa)*CUA4v2xcmSL8DL@78+VZBr$EJTE+<&>=a!2%&D+?l8s@`> z(9@tL7M79enwa|5)^-_)lnl2~afLZK%7@&E1(kOJn1%$n)Ne2qn3f-K9JyGfD}9b? z>`yQ07l329Jq&>&eei);NifzTf?tkO?kh0oqi9ERTeSnGM{*+E$j|S$tp% z&)4ji9`Y+2Wf|; z2NVE_2O*gj`cVbj7ab5y?V3za9*^t}+n&te+m=&TB8|DqhJ{COdJNif-+8d!UQv z8*AMy=i$Nl?L8d*zLGU&N{5{757%ZFfXqC}+0we`!&IwUBjo1xb?4TQW;CE_XTPkm z8j*aX(43%|@nK6wo?!{bSOyX!VnxIL{~Isn9X@V6KT73DBw+kapOIj7fwC=13=twD z5fI4037z~ADmkNVo#EAykxii9D0&I#7ZA?ZN2}Ol%^z-j`P&PCC~PHuPR&DLS4}}r zXQtGo`&lE(1h*Lpdb-fqe{H_daBF+-ZhYP+V*`VVaD@`*gCna3lT2{>qCkx(Z$eMc z6tT$zO?cF)B%!k9&m|9FOd{E-kY4{~n|E`x6FKRqE`B8#5Rz8|ByBl| zTb~zLxnni%!J#1A({azU5C33b$+X+4_5+Q*$=6*xpO&JylhplfLaj}{EzaKwBnR8U zS>6-i!~xvKH}rJgzFEYYvd+{$L+#PJ{qCm@=I+xXZ%nC+A-B%bLGSxLSH2O*G}aU0G@fD>KD%54VDMK=i;k zz*d<+sduymm~5aYoaXiruw&|gT}v?en*!S3cQALxkZme>QSkXl*rE-lFTZPezR0CJ zM=B4P9@Opj2FYRQ7$I|2B%|+J)9*mn5Vws>bH0BZRu;`~lyAx9<%*tTf00J`;cVD# zCQmf^dW_Bky^!4~U-N0(Df-;K>3r|AbV8o;i*lQAk$oOF+EI-G@_a@2mH;=1~=I zR6goNY!A1a4tHK!HM|0N$!WK9f5$QQWf0%k$=|)%-VOwQllC&9HgWO6#Blo~=bz%B zF?gDYMoWV7TDQ`10hmD;pj*xCfO`!Jr-U5E0AvjM7kDX(vM?ADC8{X`$~Ifb9^e28 z`z~F-&IppQy1KeGEwc2R4{m(|JAM1xx7-p9K9ixr0J*OCJe@ZolAfDq?j z3_FMP%>D%dEv+z6k^yh>+P9dhy@=2ML(2_-J~lTumsj3_>-^)nAQOzOFtEY^t4%?M z#F;bdrlx$6P}NA#fo1^zMIPZR+Rh3*PSkF(x`aX5bVfMJQ{2kt?&C3xKotG}ydC%a zDL(?)MPM+(YxRxhe^o8eI!=5HJv`H!dl-`DLs|Tci}yNacmMual%~)nP^+4fWO)}w zHNUCgtpFKM1~~lw&eA2hX*73Abq4&T;ggQXCxEP5JqU3fYuc;4{v*)1+#zA;4iFQJl|4s;J|^ip7X|%mUX-kI()p5szR@Nzq))ke#V2daa;P54U|_q zFDJ;_Mb2}!eEW6-oV;bDyQe2AE^f+wwBxP3^@Wtck;?5KO7KlU*Q{-+bgo>2lb@~f zdyWKE;kBw3Dh`OJDG*t}aLgh~5SX^|153x9@F)cM)eB5cPym_6;eVTOP5r9HE6$c7wn$FuNct=<4nBQ21d8XpuT#b^?n&hWf zM+3jaoXphE)L`IOKi->y5b9rfIWBMiyS{eHJ35dTZ>eZR6ut9murw|zAz*h-Zte@1ML)QSb^rP`1cfMScOPM{9HXpfG`PIWsTe_x&*4B z(L?8m;J479xpwkE>y(C^9{sWCcw@Ex7$A##`LozVfYBqptgP3)_T9U`086Hl1gsUA zX!JqgK{^M#R(j^!BdM;l7HEx^j01@|UYb`1{H#GZT7uB7F;sc#N}p z0!$B$TN^735F(+78AA8_=w$b-?6Gg)RRYaAosc(l$@zzh$^TVmXlW^Q-gAB*L|jTr zLtTCECWVBgd%u7u1-ySYx@+jh+w?^60MIiOis`hrmSJS>?svV^v49Qs;g z2Y2i>;~YRw!$zL$Nmh8+H2EdQt?lQEhs~!~jlg@t$um7@#`ky*-1cU~F3U>v25k`C z4RQMP>COywmb&%vaJu(l zZo)z##gBeo)7H)aRO)V3A8~y-MH_o?Ox?XH>^+Y)t1ZE7pD-O6{jT{@ox9iwv}R7^ zu;94uOz`STqR8k={ve*y?`tu4^QXiLMA8KT&HjB27yn6^_CbfnvTvt$%iDvBr2+Ju zHDtn9gkdh_9+W6w-)Qn>4CFD;aCVCahYf`!{>BK<>o2F`vPLEmAO&5%WK1cULBv!6 z0SQpPX;1#0!7`CUPXU4At{pr)sCd!l(r}NhJ5?SfG7}iRh}r3xED}qrkpZnU}@3 zM__+IGG%mFDow#O=&mgTdKz5Er#WbumtL<%j4NonhFcND?crLcIdxa4=1qUc5Te`i zxVrj7Nzr+E&{_h`tV^{pf-bAt?ClyV?QIQKi93s>8cSD}UP3@ACHseg@~6$$rw(i{ z`7`K%-IDh|I(=8?ar@d>^&XZ*XInf*8qg?z;=E`8K$6`~xIOGR2Gs|UcujHy9uRAC z37^R5AR7e?^75ZjB+38~3>mcbUQaUtCJY8p3XxyE%K`vJMwX~lL)XPK()!5X{ZeDSLu{R z#A|{$- z+yGK&T2FK<;Il2mZxj=jLKf(tS>LKlCpVr4$`&-)qKK&`U0!tX--!_}==vvqmo%#e zKR_)MScmWV9Xzw-&xn!#6r7w!>jnQ7oIn=Mtg2F+_x@S@n>iv#5KZ1~H&a(jC=cxA z5q*mmXF&5+i);r-Vb)paz$L(gNdqz@(0RB<7zX13&0{kl@bi^F0|R0`b+H)`$gkhN zjR3Yt3(AY?KSJ83YodzpdAjg5Kkp>xJjAP{q@>ayEhY7-fku|Tfl@v?Ffd@>{ceAp zv{fOI53>9_e9f;6s0QSHiuUv)NHX=9;eDOf5P?<6F^EddS`I*0uQmOAls@<~{5IV+ z+uM74fVl!tH@le#ZC0s6P?y<-r(>@F$)?m>`T5RvAAiLse*oAv86jm(12@-lY!rW! zUSr3aXbj@D$k-(Hnpm3~ML(Q9VZP~f!ImMrXLf@E%EIzDS=>y;u>hdaTI!++{HI%5 zT5@h>M^1Y_eX6XJsA zL=CcCpQJImyq&CKvfcOtA#t;X>{L1EJMx)UiFK(;^fWh;ZdyR3%pV&1ju*mCl}qZJyEzsG8bg|`H1)6yWof7k-FJO&7rLTUwW z(zEVUH%zvH=1BJsW~aufmY$mSTsr}W3j!HSg|aYYa=4;dX~x&gb>f*AgZs!1Q!e|q zN=_VN4mMx6->o3Vb?_l~X#@Kj4U*B||8%*UCAAZWgNG`PmAJB5|__zz6KvuUFFPo6K`C!fmvs}&sJCyNYt^ zO8t!h#Q$IjA(-7C0Fm~q%tKxMXH>$_khy^J6Athyg3WtChqYTS=hWrakb0#kgX(mw z4$`5|tlL-eDprfH)rbhVZ$N7T=@XDJHjU5sKG|AsT?RrDW6o0>9xkpYw6}m31ujt^ zztt0+{}e|yaQx3-zp6cYbnXBPOVpb;f2IA}Hx5)AJpcnMM-VI_Y=Uant{tG0Gn}Ft zKbrP#^bDtq{8ltVu9s2Rz3}cAy;jm=z7KW!5jr3Afu)MZsA$<>4TjoH$xcV$SHu#t zzP@A75nMlsSx-H&e=YXp*bLxS&Ms}R9|SfllJCA$GM^EtTi5JB;n0+R)))7GP=myx>r0``{D)e8T4E!s#UP$QQ}QD{+lp<(h;1r?vM# zdv*9XbK|K0B4fmz>(iH8O1BcDA;`+qB{^z^t1}14e#3GpttWWvzlakeNQAPv)2n z*n{fPqM9)i3`%`b>#o8ykBk!yyErpY|4oGr{rfo7%(a&p`~@bs^tnE8^tW)qHWS<< zZSyol-_tDZ9C{sN`(tXLD^iXBf(~@Q!rh((x;8T7bU%=s$97Cp&&43fg{y#$RzA@a z{gM55#Sb)y<%XGoJmjjXI{}U=iyQ#?#2gDH8m{{&rE#aB_n1syq z(JE#wuXDts9KC;PJ005@5@i47Pg!Hv#bcf=PT3RNqsdNh%myrq(w*%SPjr3#jUy^* zp1|Z0O0Yr{cvU^noj?arJy|WF;iH+n`?MHGOl$UJhIs1ByPU=D5Y0*zyEALeG(H*{Z57>{*P6V&{V|f=UB0=5GAN+om;^ytGB(z8v zC|bc(5>hrniPt1DITE2p0b-3t*GbTgk&`J&BisUgJ6U9vh|-CZIdZ{??Lym}BL@(+?S zE=v53q$&{YH^9R^jX}X2T%n@_mdPW)1=Z#3C_3C3PeFiejw1WTuZhhhnURM~J(6OgSuU=p*LcV;=BzmyM)7W=&#{`T(_ zfj~TZ^r&@%Dta8m9UidHKexw5w{jmr9s3+zq2Y@t!_8~_$9=C1wVtopmB5s`W6lu= zn0H+~{J<&$k{B>09lnXj7<#$ybGFai)xTJXDu$gBH3i&5U&AIGdw~||3dGu1fJ+0y zm@>An6j@;Cas#wQk6|I>!I2DTOnCyJW(fX=C zA{E|0);;+m4ff5~Da}mj_I8@(LIPP*Q4>#EcVozl7p*| ztR4~}dC=Z`!S9t0AJKN1U2~>3cv-T>tooIFI!*;n9l-aQlj5dC`G+1BGIJ)cFb!X&LS`!fe*qTha>q=UKaC8a+&rQ{? z=caci|J5IB=N}J*91{B3I75SEQ8c)e?zwe(^Vq=G|3ML(kw(Q#m71jAX)LecR5dj; zn1T-;eV%na{_eu}@+7t|;58coaOey8V$D4LA%HvS%_p#uWO}bmJy~wyp=(WjNYHW> zf%mi-30*+jiBi}Byj--^mxh(0sm8664~}C^DJ7J3hoRQS)tdWoM-OPc(VK~}dcGmN za8>$t@|6$YBko?!M#-K#N1xnr>OTu~r`3f)BRbgo-CAhKfMJza0!oMIm~yB}1}IV< zf~kMn3Hd{r6n04QUPbDU6H*8Ggr3!T(Sxd^7OAP_LzrRnFl^ht;1@8&4c%?|EgkIQ_~0K&%^A4;&&kSixBk0`R%|^0g9I#$3S6R$!is)XW#u=tzNQK059z|m zjjLYl8}RcUReI_y<{hEf#q$HBxmo`k`vDq328@oJ{{DxPD*1<#!l@cHYqB8I^wo~m z(`aX%7y2{4PSk%$ZED!|@&NV~9Fchz$j~GhaN`D$Sl& zwJPAJWEo_u&6no9)u)ma-R-W3sN1KVEcZb^-d__=c36dt;1BrEi;SL|CDS-KFY~Ln zXzek#VZ1^zSDh|jt3#l#7wV?~GQ+kbB^UAP4haeOiOdAkEY=0GT#?Y}x)NoQOM{?h zt>@R3IdZ-HqaD}kfZ^H#@=nBxhVzKd+oWSUW6DmFR++}|?<~i};&Q;e+_mf1;gtY! zyng*UjVM4cpLpJJId6R4q=TQhlJvGpF->2T=g?tMRZ2^E3JgDO;Bd(1?dz}3-^)(X zHgNuo5Fy{yuG87A`$|rOw5@jcu88Nt_q~wMyMmg5ZusH527k{-@JN}z1l%aS9pja` z``0F!m`$nKCv)b1qb#n4$MB}b0}(evI;h?a`zV_HT`2Yu z993PdY&wv#LNjj3uyvsi!f+fqs1Wvhnlmm(Aq-TEni+CU>dGU_sC`_dZ1p0-c1rw8 zSkQo~m7NjkYMZ+cuuSC&o`0=<1aS0mhh4R zC;i+&a5&7JavVyVnOWftcM^=Sy7! z;{DTSEId-jPM$oOb|gRw*9fN!1=_YJrQdIh>#um2Je~mfcc5mre2x-z0~%=voRp)V zxdgK31l?Yx3H24bKmy|YG8pa|@6v>}{QB8e;yir5->IT_dd&`StHxM_Jj55(W4|4bh(NY*Xk)2QjTC;PiV8RXyaov((2pq`E3{WDQyT`ip-g9~c{~oNplC`}|tC z8_W_ic1-xE3OSkp4nq#4a046AMq7L@u?Ydg2^7WVVAdEmsETBMHJFT(TKUpm`=IB< zgYl1{4Dt>?NNG;Ho-&9wBA@^wV>TJW#cG2QW z-S*mGH&|v8TG3(;!8{)V)TVrUU?va+x(WE17FYwxU`k3X7U%==E|!)kz*s1Pfye7N zfgNIXshRyc2%DI`ddi4T_XJW^sy#tQ6s>ezYkOrA=TEzpbk_R$ZQ$xyOK}FAv$A_T zFgC8#`N-b;%<+IUf(0k&uJc||#?_*L(L$@J?pN4qk^lDfM~VV9Na(35|JzO5m;Jxh z`v--e%|=zaj7It_R=2v>x{TJ-gKBYwi;F9b&bP~JY_$MG2=oqke0gR0Mn#`eX{#qK zrp}x?)d)NQ#A-M=Bigk5njsa0Te|-aP4Ve^v6Q<{4_Hc0BXuTgUOdv4f9Y))4HjEB zd!+J1Oe>roe6EVR3$D_Bv>rZ(F9_$8cSr*-_cIPh@I}$*n%4$hm?0iSJgd*zd~Qbd z##FM~s4s;9a_I13a8azFRI1E-gB2A9XeBz+14d_?K|`81L!W>=V^;BlMkTR3s=ypj z1d!6`<^$dfo{|oP!h*Is(5AP7IOxp1brN!svN(Ky$Ny7n>%{I9FNi$geKm^Tz|P_e z_(4I0YfgOIM?p%s?sP&iB4jQSAGEnos#CkD{`y`@(6e6PTvQhTD8mzRN8LCymO z?uI@b4u~I>q8Gr6grH#`4k`>inTW6lzJ>l3KsqM)aFkmB+ zL2uMev#!+%DY`=F$p8!$J`>f9{6V+3f^?t<9-75;tdG_EtSswq2{Jiml~RWe9XbnY z^XutX_jkh~5TxFH?pI2{fS}5*d#5FU$<(eAjPf6GfBH$=?kzWm0|!s~V>GR~XsqXB#zeWH>x5eCLQ z0g$^4Ryu2Nx9&~28Q%mPwF-1hZ|gEGl&^>q2g^cp=~N?Fugc?ehCTG|6-I)a-nsl17cLpamz9>T(no!;hBJm3%LS`E}G!24wVYw}CNS!+f>521;50Z)Cw zgl|8{S@gksFih$+T*D2bP~qtaT{!}2+rBGfZ=O+6(~( z>@8<1hZq5mRJ&NiVg-~v&{s=YrYn`jY`q2$(;&vdeu~tqerS;SB5$Y zh66{6tg4dGeKzRky*6+1N(jyeUT@dK5g^&#{a*F}a@rzu1Y~n&h_e6DYX2e1Y$L$c zklW{#hy5SdgLI{mL^sS{%$n%MzIPpH@K=T0ndwYNZ2-D-G4qtTI0W+U-Mg7z1TV>M zF#HXMec2V=rw&S4*1ddt!HYg~T!ZTYiwak6k?K!Va;}*@0r>zlTA+s=Oe@X(^7-=z zP?V6P+lyW`?aA@+%wV9ssYy-Xg6F|ArezRFin8}1U{MMKK;9aNS->*Ck3KR!jq;H~ zd+&i4ozz7I0i)?K$uESy8yvv}Sz4$Z%>Xt5>vpqz!!zJb-UY825>QuHcX|b1WCaBv z=>xcX<(16~om$8LJjB;I#`cU$9}nwZMXJ)O(%mPgr?2l}I{5nijl}V4;5EMuW|EAK zYvp+;Z0vygbbQ_$_x8d`I8b)GK^gO1gaT_I+EO>94}(*YfdBd|3UYS5GKH1*><3L* z?_c*GfO%Kz3&vRQpRq>Zfr-t6%7mhB?d;gv+Fsk3kH2sP|p%Bt6r__N6jC~UwEpq(i$=z!MA8bMy zg@PQL@Esg-NVRT^mab|$qT1AWLhF*$(__1kEbdCeE!=N#Ci!1{!v=s@|IHV4{J-7* h`!6}6KSP@8n{=Fp4)3oy@RcqQEp?qMg=%-6{~s}xf|dXP diff --git a/bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_1.blf b/bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_1.blf new file mode 100644 index 00000000000..dc5ccbe4da5 --- /dev/null +++ b/bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_1.blf @@ -0,0 +1,16 @@ +Row bbox=[0, 0, 450, 150] + Plot bbox=[0, 0, 150, 150] + CartesianFrame bbox=[29, 27, 116, 101] + LinearAxis bbox=[29, 128, 116, 22] + LinearAxis bbox=[0, 27, 29, 101] + Title bbox=[29, 0, 116, 27] + Plot bbox=[150, 0, 150, 150] + CartesianFrame bbox=[29, 27, 116, 101] + LinearAxis bbox=[29, 128, 116, 22] + LinearAxis bbox=[0, 27, 29, 101] + Title bbox=[29, 0, 116, 27] + Plot bbox=[300, 0, 150, 150] + CartesianFrame bbox=[29, 27, 116, 101] + LinearAxis bbox=[29, 128, 116, 22] + LinearAxis bbox=[0, 27, 29, 101] + Title bbox=[29, 0, 116, 27] diff --git a/bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_1.png b/bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6decadfbc31d2fd434e803c4ddd796c2d9e522 GIT binary patch literal 12812 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 literal 0 HcmV?d00001 diff --git a/bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_2.blf b/bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_2.blf new file mode 100644 index 00000000000..dc5ccbe4da5 --- /dev/null +++ b/bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_2.blf @@ -0,0 +1,16 @@ +Row bbox=[0, 0, 450, 150] + Plot bbox=[0, 0, 150, 150] + CartesianFrame bbox=[29, 27, 116, 101] + LinearAxis bbox=[29, 128, 116, 22] + LinearAxis bbox=[0, 27, 29, 101] + Title bbox=[29, 0, 116, 27] + Plot bbox=[150, 0, 150, 150] + CartesianFrame bbox=[29, 27, 116, 101] + LinearAxis bbox=[29, 128, 116, 22] + LinearAxis bbox=[0, 27, 29, 101] + Title bbox=[29, 0, 116, 27] + Plot bbox=[300, 0, 150, 150] + CartesianFrame bbox=[29, 27, 116, 101] + LinearAxis bbox=[29, 128, 116, 22] + LinearAxis bbox=[0, 27, 29, 101] + Title bbox=[29, 0, 116, 27] diff --git a/bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_2.png b/bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_2.png new file mode 100644 index 0000000000000000000000000000000000000000..93b3b963621ee5be71e6d6c566c4784d21217d7d GIT binary patch literal 17661 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 SUc>vDAYO{gKFbx=@%kUkw^jH6 literal 0 HcmV?d00001 diff --git a/bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_3.blf b/bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_3.blf new file mode 100644 index 00000000000..dc5ccbe4da5 --- /dev/null +++ b/bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_3.blf @@ -0,0 +1,16 @@ +Row bbox=[0, 0, 450, 150] + Plot bbox=[0, 0, 150, 150] + CartesianFrame bbox=[29, 27, 116, 101] + LinearAxis bbox=[29, 128, 116, 22] + LinearAxis bbox=[0, 27, 29, 101] + Title bbox=[29, 0, 116, 27] + Plot bbox=[150, 0, 150, 150] + CartesianFrame bbox=[29, 27, 116, 101] + LinearAxis bbox=[29, 128, 116, 22] + LinearAxis bbox=[0, 27, 29, 101] + Title bbox=[29, 0, 116, 27] + Plot bbox=[300, 0, 150, 150] + CartesianFrame bbox=[29, 27, 116, 101] + LinearAxis bbox=[29, 128, 116, 22] + LinearAxis bbox=[0, 27, 29, 101] + Title bbox=[29, 0, 116, 27] diff --git a/bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_3.png b/bokehjs/test/baselines/linux/Bug__in_issue_#13692__doesn't_scale_webgl_antialiasing_by_pixel_ratio__with_devicePixelRatio_==_3.png new file mode 100644 index 0000000000000000000000000000000000000000..95ec7a5cdef15167acd1700683ac1f30c95d020c GIT binary patch literal 13361 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 literal 0 HcmV?d00001 diff --git a/bokehjs/test/integration/regressions.ts b/bokehjs/test/integration/regressions.ts index 53f7f2ea1f5..3770981ee40 100644 --- a/bokehjs/test/integration/regressions.ts +++ b/bokehjs/test/integration/regressions.ts @@ -3744,4 +3744,26 @@ describe("Bug", () => { await display(p, [p.width! + left + 50, p.height! + top + 50]) }) }) + + describe("in issue #13692", () => { + describe("doesn't scale webgl antialiasing by pixel ratio", () => { + function plot(output_backend: OutputBackend) { + const p = fig([150, 150], {output_backend, title: output_backend}) + p.line({x: [0, 1], y: [0, 1], line_width: 10}) + return p + } + + it.dpr(1)("with devicePixelRatio == 1", async () => { + await display(row([plot("canvas"), plot("svg"), plot("webgl")])) + }) + + it.dpr(2)("with devicePixelRatio == 2", async () => { + await display(row([plot("canvas"), plot("svg"), plot("webgl")])) + }) + + it.dpr(3)("with devicePixelRatio == 3", async () => { + await display(row([plot("canvas"), plot("svg"), plot("webgl")])) + }) + }) + }) })