OberonCore https://forum.oberoncore.ru/ |
|
Cairo Views https://forum.oberoncore.ru/viewtopic.php?f=47&t=5138 |
Страница 1 из 1 |
Автор: | Роман М. [ Воскресенье, 25 Май, 2014 22:18 ] |
Заголовок сообщения: | Cairo Views |
Как-то спрашивали насчёт Views для вывода Cairo. Вот, нашёл у себя в закромах. Но не помню источника. Код: MODULE CairoViews;
IMPORT Properties, Models, Views, HostPorts, HostWindows; TYPE Context = POINTER TO RECORD (Models.Context) (*ctx: CairoApi.cairo_t;*) w, h: INTEGER; base: Views.View END; View* = POINTER TO RECORD (Views.View) w, h: INTEGER END; (* Context *) PROCEDURE (c: Context) GetSize (OUT w, h: INTEGER); BEGIN w := c.w; h := c.h END GetSize; PROCEDURE (c: Context) Normalize (): BOOLEAN; BEGIN RETURN c.base.context.Normalize() END Normalize; PROCEDURE (c: Context) Consider (VAR p: Models.Proposal); BEGIN c.base.context.Consider(p) END Consider; PROCEDURE (c: Context) ThisModel (): Models.Model; BEGIN RETURN NIL END ThisModel; PROCEDURE (v: View) Restore* (f: Views.Frame; l, t, r, b: INTEGER); VAR c: Models.Context; rd: HostPorts.Rider; res, w, h: INTEGER; BEGIN c := v.context; c.GetSize(w, h); (* dc := f.rider(HostPorts.Rider).port.homedc; IF WinApi.WindowFromDC(dc) = 0 THEN dc := WinApi.GetDC(HostWindows.main) END; IF v.model.ref = 0 THEN Evaluate(v, dc) END; IF Views.IsPrinterFrame(f) THEN (* need to make a print copy of the existing bitmap *) bdc1 := WinApi.CreateCompatibleDC(dc); res := WinApi.SelectObject(bdc1, v.model.ref); pdc := f.rider(HostPorts.Rider).port.dc; bdc := WinApi.CreateCompatibleDC(pdc); memBM := WinApi.CreateCompatibleBitmap(pdc, v.w, v.h); res := WinApi.SelectObject(bdc, memBM); res := WinApi.BitBlt(bdc, 0, 0, v.w, v.h, bdc1, 0, 0, 00CC0020H); (* copy *) res := WinApi.DeleteDC(bdc1) ELSE bdc := WinApi.CreateCompatibleDC(dc); res := WinApi.SelectObject(bdc, v.model.ref) END; f.rider(HostPorts.Rider).DrawBitmap(bdc, v.w, v.h, f.gx, f.gy, w, h); res := WinApi.DeleteDC(bdc) *) END Restore; PROCEDURE (v: View) HandlePropMsg- (VAR msg: Properties.Message); BEGIN WITH msg: Properties.SizePref DO IF (msg.w > Views.undefined) & (msg.h > Views.undefined) THEN Properties.ProportionalConstraint(v.w, v.h, msg.fixedW, msg.fixedH, msg.w, msg.h) ELSE IF (v.w > 0) & (v.h > 0) THEN (* default sizes *) msg.w := v.w * HostWindows.unit; msg.h := v.h * HostWindows.unit END END ELSE END END HandlePropMsg; END CairoViews. |
Автор: | adva [ Воскресенье, 03 Декабрь, 2017 07:23 ] |
Заголовок сообщения: | Re: Cairo Views |
А пример можно, как тут рисовать через cairo ? Не смог увязать примеры по выводу в графический файл, и эту вьюшку. Что тут подразумевает процедура Evaluate в Restore ? |
Автор: | Иван Денисов [ Воскресенье, 03 Декабрь, 2017 09:22 ] |
Заголовок сообщения: | Re: Cairo Views |
Поглядите: https://blackbox.obertone.ru/component/Cairo |
Автор: | adva [ Воскресенье, 03 Декабрь, 2017 10:06 ] |
Заголовок сообщения: | Re: Cairo Views |
Я про эту подсистему и говорил, что не могу увязать вывод представленной здесь вьюшки, и примеры оттуда. Есть пример без доработанного hostports? Хотя мне особо без разницы, в итоге хотелось бы иметь масштабирование текста и графики во вьюшках |
Автор: | Дмитрий Дагаев [ Воскресенье, 03 Декабрь, 2017 11:48 ] |
Заголовок сообщения: | Re: Cairo Views |
Иван Денисов писал(а): Не показывает у меня Ваш пример, только 0 на консоль пишет, все собирается и запускается без ошибок по Quick-Start. Что-то не так делаю? Код: compiling "CairoTestVer" 200 0
Cairo version: 1.6.4 compiling "CairoTransformDemo" 1052 0 0 compiling "CairoTextDemo" 356 0 0 compiling "CairoRosetteDemo" new symbol file 1048 0 CairoRosetteDemo unloaded |
Автор: | Илья Ермаков [ Воскресенье, 03 Декабрь, 2017 11:53 ] |
Заголовок сообщения: | Re: Cairo Views |
Только Windows? Или во Freenix-сборке и так Gtk-шное сглаживание? |
Автор: | adva [ Воскресенье, 03 Декабрь, 2017 12:20 ] |
Заголовок сообщения: | Re: Cairo Views |
Дмитрий Дагаев писал(а): Не показывает у меня Ваш пример, только 0 на консоль пишет, все собирается и запускается без ошибок по Quick-Start. Что-то не так делаю? Там не вывод на экран, там вывод в файл. Файл создается соответствующий в папке блекбокса |
Автор: | Иван Денисов [ Воскресенье, 03 Декабрь, 2017 12:43 ] |
Заголовок сообщения: | Re: Cairo Views |
adva писал(а): Дмитрий Дагаев писал(а): Не показывает у меня Ваш пример, только 0 на консоль пишет, все собирается и запускается без ошибок по Quick-Start. Что-то не так делаю? Там не вывод на экран, там вывод в файл. Файл создается соответствующий в папке блекбокса Там есть и вывод на экран. Cairo/Mod/Ports.odc компилируйте и будет работать вывод во все вьюшки блэкбокса через Cairo. Но не текста, а линий, квадратов и других примитивов. Текст выводится как раньше. Если не разберетесь, то я сделаю видеодемонстрацию как это работает с комментариями. |
Автор: | Дмитрий Дагаев [ Воскресенье, 03 Декабрь, 2017 13:35 ] |
Заголовок сообщения: | Re: Cairo Views |
Иван Денисов писал(а): adva писал(а): Cairo/Mod/Ports.odc компилируйте и будет работать вывод во все вьюшки блэкбокса через Cairo. Спасибо, файлы вижу. Я бы посоветовал в примерах дать вывод на консоль "saved to ...png". А вот модуль Ports в примерах не задействован, примерчик не помешает. А то 3 примера с выводом в файл и ни одного - во вьюшку. |
Автор: | adva [ Воскресенье, 03 Декабрь, 2017 19:15 ] |
Заголовок сообщения: | Re: Cairo Views |
Дмитрий Дагаев писал(а): А вот модуль Ports в примерах не задействован, примерчик не помешает. А то 3 примера с выводом в файл и ни одного - во вьюшку. Там пример есть в файле DemoBezier.odc Т.е. по сути HostPorts заменяет стандартный, чтобы вьюшки выводились через кайро. С этим вопросов нет. Вопрос в том, можно ли как-то прикрутить масштабирование и текста и графики к этому новому HostPorts? Думаю без доработки самого каркаса это вряд ли возможно, а потому хотел бы просто какой-нибудь пример, который выводил бы вьюшку без использования доработанного hostports. Пробовал по аналогии с hostports делать у вьюшки Restore, но на экран ничего не выводилось, хотя пытался линии рисовать, хотя может где напутал с координатами или еще чем. |
Автор: | Иван Денисов [ Воскресенье, 03 Декабрь, 2017 19:50 ] |
Заголовок сообщения: | Re: Cairo Views |
adva писал(а): Вопрос в том, можно ли как-то прикрутить масштабирование и текста и графики к этому новому HostPorts? На уровне HostPorts вы сможете сделать любые чудеса, какие только захотите Я не пробовал рендерить текст в DC, но это по аналогии с остальным должно быть не сложно сделать. Добавьте глобальную переменную zoom и используйте её для масштабирования. Вот пример для DrawLine. Код: PROCEDURE (rd: Rider) DrawLine* (x0, y0, x1, y1, s: INTEGER; col: Ports.Color); VAR res: INTEGER; pt: WinApi.POINT; p: Port; dc, oldb, oldp: WinApi.HANDLE; surface: CairoApi.cairo_surface_t; ctx: CairoApi.cairo_t; BEGIN ... CairoApi.cairo_move_to(ctx, x0 * zoom + 0.5, y0 * zoom + 0.5); CairoApi.cairo_line_to(ctx, x1 * zoom + 0.5, y1 * zoom + 0.5); CairoApi.cairo_set_line_width(ctx, s * zoom); ... END DrawLine; |
Автор: | adva [ Воскресенье, 03 Декабрь, 2017 19:56 ] |
Заголовок сообщения: | Re: Cairo Views |
Иван Денисов писал(а): На уровне HostPorts вы сможете сделать любые чудеса, какие только захотите Действительно не сложно ) , попробую, спасибо |
Автор: | adva [ Вторник, 05 Декабрь, 2017 14:38 ] |
Заголовок сообщения: | Re: Cairo Views |
Линию в итоге в Restore смог вывести через подсистему кайро. Но не понятно поведение: если прокручу колесо мыши вверх (изображение уходит вверх), а затем вниз, то у меня часть линии пропадает, при чём иногда, линия видна по прежнему вся. С чем это может быть связано? Это проблема именно отображения через cairo, или блекбокса? В примере CairoDemoBezier такой проблемы не наблюдается, но там используется доработанный HostPorts. Код: StdCoder.Decode ..,, ..Jo....3Qw7uP5PRPPNR9Rbf9b8R79FTvMf1GomCrlAy2xhX,Cb2x
hXhC6FU1xhiZiVBhihgmRiioedhgrZcZRiXFfaqmSrtuGfa4700zdGrr8rmCLLCJuyKtYcZRiX 7.2.s,caN.,k,5TWyql.bnayKmKKqGomC5XzET1.PuP.MHT9N9ntumaU2,CJuyKtQC98P9PP7O NbXmb.2.2x9k2Ekj.,6.,U08J99SdfJHPNjvQCJuGKfaqmY6MwdONl1QCh0708T,U..w.Il9U. 2U18J99SqorGqmQCbWBxhYFWUl1UnNHEWUmr.6.Ym7k5E4b.,6.,U,gU1U00.bnUGLu8ro8quG rmCLWKqtE0E.kHE.0.p.0.4E.EJ2eHJ.6.VQ.EU6.1cUZT1E.s7E.c4E.k.0.eWM2y,.,6YUFU 0Ikmj,2U.EKE.EBU.MaE.I3tfj1.0E6,P.aU.s.3gwP.,6.w26.I16.M.EJ.6.VQ.E,0.7cUZT 1E.sHE.c46.,E.7.c8.2UE0S0Ck.UXX,A2s9c.9.0,8E7Um4.KE,9z4U.kgU.EBE.0.z5,6.JF c.0E6,96.gUwzzzzz3A.6vzzzzL,k0ezzzzzLk.UszzzzTUu17.BcUZT16.,UO4.0E.c4E.szE .eWw,2UE0C1OEqF14.OEszzzzj2U4ozzzzzrU,.lzzzzzS5Ck,E,u3C.cSc.Rzzzzz3M.c.hzz zzz.lzzzL,.tzzzzzqBCE,E1a10k9k18Mtr.2.m10.u,0E.k.0.4ItaqkmaM2y,.,6YUK,j.0. ,6Whh.0pdcUXDF9fR5uPPPP1fP7PNZvQRtIdHf.2UlbcZpC.c9h0E.8z,U...B6.6.KF.0U9U5 w0wzBxd2heAhcUQcVBhmxhKBhZxinRbBgVU2YUAdB3eDJeI3YKBhZFK0GcyKtGrtmGEWorCLu0 pr852YLBhiBckBhg2Y,3id3YugbUQcVV,3idZ35OMH1wedphnIavgVBQcDpdHZeBAV72id3Yx2 YnoZlYalgatIaqgangasAbrAbnIan2booamoaoQan2bnIarAbpQbB2YU2YB2YU2YIBfEhcB2YU 66,Ffa4J76,ND,7ITOGR8J9eI,7JT86ZOF5uHZ8F,78hOO9ntu0AZB2YUEEUrZZU2hu2Y7pdIh c5hcGRbB2YUEEgcCZcvgVU22P.VeITuE98FfeI986FdRp76hOO9XUIeZRioxhmhge2Ycogu2YK VndFZPMPPNr76N99,7RN76Z99,dMp76HeHUdQbB220GEoe,JeUgV7AV7IiYJbU2djRCUiIedZg ZJiv2YBAV7kmCLK0GuKqtGLR0mY.iX7AV7QipJiaBgXhgu2Y,3idpZXBgdljCru8LnkjGrRqk2 aUYRgu2YLBhiVi2d,pd2Zd3RbBAV76Qp76F0.VuPZ9RrN1HUXZisJbUAckll.dvCP.yKqeHE0G cy4bnVyKqyKtin4003OFDOGRO1PM0HMEbuI9eId88Bf9ZPO7PN0mF0GbaIamGE4HM0nIin4aUm ZAv76Bf9Z1WGYyqt.I8M8rN1HkU.8Lm0mF0Gb..,76,76,FsenSIiYpZkxhmtC.Es0mF00.k2G 4v76Vf97vMrN1HM051v76VuPQCZPN7vCPM0qk2aEIeGEqH0LH01GUGMMGsPGMTGsMGMUGMMQb2 Cc2yd2aZUYa2Sb2yd24Y5ZkpYknYkyYkUgd2Kc2qb24YeAZBAV7Ad43YkpZrphY3Yx2Yk2YI3d 3pdBAV7AVmhA,dCv76jOOR1CpkOrmGoVWGmCqI0GIeGE4I0vH0LI01I0ND7QBqH0XH0LH01GVG sOGMRGsVGsYGsOGsNU2RcUIa24Y,Zk0ZkpUUI3MFNuI9O1HM0H..R1ggghgXZi1Zhd3iGxgi3Z YRgg2YkAZBAV7gcCZcvUm,.MGR9R9fQbPN59R50KqlGLIGqlmWmZgiYhg2YmZAd99,dQIig2Ym ZA3P8r,Pk2C5EEenSQ6ME.uml4qosLjPORXTRipJCsL5fQ9PMdPNF7N5P8rN1HklGbUIbx2Y,3 idtMUXJiZ,bPRZfNM8rN1HkU0rou0ktKKuyptyqu8rlKqj8rn8KICKuWLK0GICqrmaBxd23Yqg apQaqAZUgdDZ6ZNBh76T76ZNBhFKqk2aUcQgjZBEP.GoYOJE8nOOXj.N765vPNHWaIfoapg40m L00amR0GEWGJ0mVGsUGMV2a2i5x7VZ7Vp7VV7V,dF7gA7QB7gE72D8V.PdE7gD7oTemIqk2g,4 2AAMPTfR9vLdvPF7659RlXg3Yf2YkoZpYZUYiUQZUUdQ5..NPORPNz8R0GI0mlG58rJ0HLKHKI gUQZU24..ktEqaKrsRH9Nd9OFtMd9SgadQbB..6RZvPLPNFtMd9SHtCP..6N9vQdfQTPSFtMd1 ..Cru.z8N9vQUnhCkIM1HM0HeF0522.R86ZPNb96sJ.ZONb9R6F50NlK4nI0mWuIWUB22K2,dI 9vQkRqEEM1H6IZuH506F99QTvQH9RJtCPM0OpU8JEOLR00QbBAV0hc5B7aUChcL3ZqBZv2YBA, hOO9ntYcZ3ijVcoidgV7gcC767ONV1in400KIbGY1BAo8k4qk48EFCokaKt.Y6.,tId9N5OP7v QRtHVPNRf63QwdONlnVyKrGLtyKqmqm8rtumdsEdfQN9F9vQ59.XDJ..oZ1xhiZCU2hgnRg.sE MMH1.Z1...bf9.EWE.8T0E.E8E.k22.,6..M.3QwdONIepZhZJinpZHFdKLq6F6.XDJ.QiiIep ZBG20EtD.,6.,UfW52.C80E.QE.sQRtIQeoBjghg2hgnRg.AS.c9Ajg,0EtT.2.U6UOF.2.86. c918R85EWsM,E0E...7,,M.,.,.,tcpW.6.VuI3kDz41.1.,6.Ikmj,6..EBU.U,.JFcE.6.VQ .E..YVsH4EKithQVs9E3Qw7uPKrq.50..ZE.6..E2E.UA2.0E.Tpt2bPQI,AzJE.nT32UP3Blh 5l2Ds.... --- end of encoding --- |
Автор: | Иван Денисов [ Среда, 06 Декабрь, 2017 06:46 ] |
Заголовок сообщения: | Re: Cairo Views |
Тут получается наслаивается обработка прокрутки блэкбокса и что-то не так работает с обновлением. Лучше немного разобраться с обработкой скроллинга и сделать свой вариант. Вот небольшой набросок, чтобы вы поняли о чем я говорю. Сделал на основе ObxScroll. Линия прокручивается гладко, не пропадает. Код: StdCoder.Decode ..,, ..DR,...3Qw7uP5PRPPNR9Rbf9b8R79FTvMf1GomCrlAy2xhX,Cb2x hXhC6FU1xhiZiVBhihgmRiioedhgrZcZRiXFfaqmSrtuGfa4700zdGrr8rmCLLCJuyKtYcZRiX 7.2.s,6ph.0k,5TWyql.bnayKmKKqGomC5XzET1.PuP.MHT9N9ntumaU2,CJuyKtQC98P9PP7O NbXmb.2.IYKk2EBO,,E.cUGpmWLuOpoKqvCbHZiYpedhA704TeKKw.bHfEWUmL.6..D.7S36., sUGpmWbBxhYhAbndMHT9NY6Mw.sQq2Y6cwB.0.Ry2w,osHE.0E.M.3j.cU.ktAcoZimBhWhioh gnZcZRCY.2.w26.IX.E.0.4E.EJ2XkD.6.VQ.Edk.8Mtr.2.S02.e,0E.AH6.e0.,6YUDU0Ikm j,6.Y32.I16.M.,.JFyuv.U.2GEAE.u.CE,9z4U.EPE.0.p.0U.G.EJ21U.2GkHUYU.QAcz6,3 gwP.0.T0,6.I12U.U,.JFyk.E6V.I1IUND.GEBURb.QOAU3.V.1c2,U.Iq.k08Mtr.2.ul.U.c 46.,UzX.2Ue64.,6YU12.KEyzzzzz04.,M,Nzzzzz8.KExzzzzz04.2zzzzz1ITs46.N.9c,6. L.9662U3YRM.Eszzzzj2.xzzzzz4.2T6S6.36.gU,U.AU.k.u30k,k.a5oxzzzzDU,.hzzzzz. lzzzr..tzzzb6A.YU.k0K10E4k0a.Y,gU3.j.3MQ16.GkBUQU.oE6.6Whh.0pd8U0Cy2hgqRcj hhhBgiZgZJinpZHZCh0E.4TWKKv.Uio8.,cw5.,6..E1U.M3s6szPuH7OJNOF,tE1POZvPZdJH PNCrRqk40GE0mYqIcyIdGJEOpoK4N76VuPZ9Rb99,7GTvQd9ITfQEESpouqU0romGE4IsaKEen S0mV444IsaKKQcVBBkfaKrCHNmGECoruKu8rrmKqKKtCLK0JtyKsKKtGroKqtmGEmorSqRqk4C obuodGp4ak20ro0mS0mNumMGnMKnQ8HPKnNKHQanPanN8nNWHOOHNOHOCnNWnN8nPanOin4ak2 8qr4KtGqdaKxKKEqHE4HM0GJ0mP0GJ0GcyKtc9PPPrN1Hk40GEYeN3e3hVU22,76Opoc8,76v7 6VuHHeHdOFZ86duH,dI9uETeI786FdJHPNCLLUdgVUUU.l99,NSN76j99,7Op76HeHdOFDOFZu CP66,760W3pd2RbB2YUgV72eGxd1hc2heGhcU2ZqJbUoedhA0GY4KrGKqKqVGLtmqaCrneGEWG neHEO3Cb4JiVhhZRbUoe,JeUghnxgu2YKBBsEdfQNnmCrt4qnKqR0GfEnyqlKrteHEO3cJM8rN 1HEf4Id0Gv4KqmGEOroCLK0mvm0.EECKo4KrSqmGKR0GVyobmoW4Ibin4aEVKoXaIbqk2akfaI eWIEqqtS45uPR1Ui2ejZhgReZRgoBhjphBRib3Y2xdBAV7AVqpZXxhiNNl9RRtF99RbOO2ZrZZ UM8rN1HUhRibpZaxhXhC,dCv76BOENuI9uCH68J76h96HvQ,dPT9R,NM,tMTfPdPMEEemIqk2a k2aIX0mqCbioiZJioBhXBgg3YI3d3pdBA,HM0P1VPMZ9RbOOpHEenS2hvgV7A,HMPsRFvPNPNb OOpPNElyqk85kJ0ma4IgWGMmGEqqt6QUu,,dRRNS,N9,dMT1kIin4a.HMP.0prCLEenSoiiADJ 76VuP.PM0HkWmodKo4ak2AVh,sIebUI5SrRqk2aU7gBwC.UW,UfMH.Es.p1OLLWLEqGE84.H,A Vh,6IUUoClHJ0Gc.M0gcCZcvM0gBoiVZhdZgUIbx2YcghnxAV1bGx2Yw2YhRCS5.H,gBYgjphZ 3YuEe8peKo4ak2mLEqqtI5Et.QeXJijZhghdnxgUY6Ev.91.W0EECKo.,dCo6sCPM0gBoAER22 U7...AA.M0H0oZqhA..AVqBgg3Yug5hnwiHEOroCLEe1FP1HM0HMFNWBU7oCUq7Sr76hPOUrhV 7A,9eH.5OEbOF,NPbvNyKs0mbOo4ak2sPRHtkmEmKqlmoouqmen4ak2AV7Fv4aUobU2aUYe6FE GoWCIIOrkmKKQadQbUQA.6J669eH7O1HM0mb1,.aKrCKaaKr.akY.,7D,dMTPMMO2Yh2YqBhn7 JFOFAdCRccoiV79....Ey..YA0pkSqmen4a.H6F9uEF,oCamR00..in4a.HMGUUEMGJYK2hPMI 50HEKIb.t1.ko6I1vN.HMGRuEF,N,..6J.AV7p666xFlyqk..00.e131..9eH70m5.UbxhoxhE xhnJbBAV7M0h1MPbXkxhn3Y2BdK3YExBUv2YX,.d0P.90kYMPcR..P.HcRRNS,dCvFv4KqiHEq k2aU3Z7U7oCl96pND.kWu2kqEm.Y8Q5MGQgcBAEeW2,dJHXnNJV9N19R998h99,dJH1iqmKKsO It4qqQid2Y3p76Tq4p,.Ec4qnKqaCrn00EvQAgA.68.P.HWhFLy4HeH,tS5uPR9RZ1ErKKwGLc 4qnKqgmGEwB.sNkkS4v96d8Gg,AVqBhn3YuEok2KIa.aEv.S5gcC,Qc,NF.w7Uj,.R1Egen4ak 2AV7p7oZsZZUoCam4ak2YD50..kgen4a.HMGR0aLK0Gva4A,t1.kn.29k2OLLW5gB2iVxA0GJ0 Gvaqtqk2aUw,..UN,aEvAD..,d8,dR.90kqEm.Y8.UZxhs3Yug5hf90GTqHE84.rN1.MS,dCkw 0GTqHE.k4ak2KIa.uYBMFRGEWoku4.bnRqk2qEE6IZuH50.Ud2YGhgnZijJiZJZU2Za,QCB0iX gZZUYig2YmZZUIgu2Y7pdI,HtCP66,76,76OpU8ZBAV7cQ7fC,7GTvQ.8poGqm8rR0m4a.Kqtm GEGrmCLueHEa2kRqk2aUnhimpgVRgZJbUAckBhiQgVBByptKLtO4yJuin4EmCKR0mfaKrELWoU uIWmoWi12iu2Y6,UExhmZivgV7klGLweHE4IssMUoRbB.T9Pp76,7ITfQCb1xhgxhmRbB228oW SoYM1HM01uIbOFZ8JFdNRdQH9N9HECGEuoYmIK0mM0HMamRq.Z9NqHEOKL852Z6xhn,cIkIin4 aU,,IiY3YX2YC,.0GE0GE0LRqXmZgi2ijJCr,.0LECGE..aEmMD,7QR7N5vCPM0HsMMD,7ITXn dQ99NrN1Hk4aUcIZUgb2ia24Y.ZkkYkrYkyYklYk.ZkksC7QE7wH7A9,7B7wC7wH7A6D8Vf7Vb 7Vx7V,NH7gE7gD7A6JN8PU7p6Vf9jfP796v76V76d0EayqnumdGLtaKrSKI8md4KvKKWCIFamR 0GayqnuGauqRqk2AVmhA,dCwedpBsI1fR687vMH76Fd8,NE7gD7QF7AE7YxYkpMD7AC7QB7A63 8Vf7Vp7V58VH8Vf7Vb,GoV0GNGME4I09I0L10GJU3Z7M0H..R1ggghgXZi1Zhd3iGxgi3ZYRgg 2YkAZvU3p7r,Z1.kYuKuKKtCrmCa1,9vMd987vMNFtGKLmKK0GtGaoZZUIC8LK0GtGaWBZvUUg V7AVn,2Yug55042j0uml4qosLjPORXTRipJCsL5fQ9PMdPNF7N5P8rN1Qgo76pND4IsaaX,CKt K4QipJiaVdQbBkU0rou0ktKKuyptyqu8rlKqj8rn8KICKuWLK0GICqrmaBxd23YqgapQaqAZUg dDZ6ZNBh76T76ZNBh79PM0HM0FtMT9PUq.Yc7p8ZNBh76Ug2YXxhg7FHeJOnOK1,t9,,HtC,76 Fd8,tE7QE7gE0H0rXyYkmYkuYkkYkUoc2Ka2ia2Kc2W5ZEUhIc2qb2uDJN8PM0qU7A6MMkqyKv KqjGrrWGECKuW54HN0HEqGEOLLWrI0mJ0GMumOmGEWmM0HM0mK00nP8,76L76VVdQ5..NPORPN z8R0GI0mlG5EEqGE6S.m0Z7AV76P,n1Ud..ktEqaKrsRH9Nd9OFtMd9SgadQbB..6RZvPLPNFt Md9SHtCP..6N9Hu8rraLICKu..UnhCkjGqmC5sQf1A3M1Ad47QEE.odUIiZRiUUL,IeZRioV2R 6Y3PNAHtC,7HsI.8pmC5EFEaEa669eHi122K2,dI9vQkRqEEM1H.50.Ud6GUEJij3iBRibh3Fd J1eI0bU2emxB9HugARNH9vQb1HtCI6k2w86Qp76.UHBhuhgEJiZpgUYcDh,akY.,ND,dJHPNCb pphYhgaBhihgY3YI,Vf9IbxcM6Nb0,7FHWm2Y3pd2R5.2hUgbUo8...Uug5...qU7YDVfC..ZO NbPOpPNV0.0LLWqr8LXaKuGprSpouKEenS0Ge.a.Orm8LXaKu..g,m5..OorC4VeQ9fN.sQ99R BuP5XU..98HAVcI3HvNRvPZPN,tPd9O9fQ,NP9vQkt0GJam4Ebg,9WU27.g7i1PM0VeI.YcZ3i jRidZieQbBA,h0hfC,,in4aEV.od3xecoidQbBEv2DpVkQbBA,ADp,EfaqmQC7ONVvP68hP8PM 09eHYcZ3CsCP66MFR8FCokENAhZVBgVBIUWQcVBhm,EW.2YHZiYRchZgnpZD3iZphWIklbeZ3D 5uPR1UiQeoZg1ZimZh2hgnRg.AyI,.ELCoru4U2hgnRg.sEMMH1b1IC...Qii..70,cw7U.2.Y 0,E.k22.,6..M.3QwdONIepZhZJinpZHFdKLq6F6.XDJ.QiiIepZBG20EtD.,6.,UfW5UXW.2. 52.CLLC3b8Rn9P99F9vQ59.X5.u0n9PU.Iy5.,.60cK2U.2.8cI,UiAcodQ.7WX3.7.,..Y22U ,2.2.2YXK9,6.0EcCJ,wnjl.k.E.0.3gwP.0..I16.M.EJ2eHF.6.VQ.E..YVsH4EKithQVs9E 3Qw7uPKrqK4Q6..I0,U...F.,.mE.6.,wJbHQilF3kwL,,AzJE.iJo2rS2H..1.... --- end of encoding --- Также тут можно будет зум по зажатому Ctrl прикрутить к скроллу, а также буферизацию. Ведь сейчас при прокрутке на каждый щелчок скроллера четыре раза отображение обновляется. Это не эффективно, если у вас сложная графика планируется. Views.Update надо вызывать при скролле, только если прекратился поток сообщений. Небольшой таймер сделать надо. Я это сделал для текстовых отображений для своего проекта, поглядите для примера. Выделено красным. Вложение:
|
Автор: | adva [ Среда, 06 Декабрь, 2017 08:15 ] |
Заголовок сообщения: | Re: Cairo Views |
Иван Денисов писал(а): Вот небольшой набросок, чтобы вы поняли о чем я говорю. Сделал на основе ObxScroll. Линия прокручивается гладко, не пропадает. Да, так лучше, спасибо, причину с ходу не понял, но постараюсь сам вникнуть. Такой вопрос по библиотеке cairo: использую cairo_win32_surface_create. Это как я понял применимо только для Windows ? Какую surface использовать для разработки и для linux ? Или лучше чисто SDL использовать? |
Автор: | Роман М. [ Пятница, 08 Декабрь, 2017 17:27 ] |
Заголовок сообщения: | Re: Cairo Views |
adva писал(а): Иван Денисов писал(а): Вот небольшой набросок, чтобы вы поняли о чем я говорю. Сделал на основе ObxScroll. Линия прокручивается гладко, не пропадает. Да, так лучше, спасибо, причину с ходу не понял, но постараюсь сам вникнуть. Такой вопрос по библиотеке cairo: использую cairo_win32_surface_create. Это как я понял применимо только для Windows ? Какую surface использовать для разработки и для linux ? Или лучше чисто SDL использовать? Да, об этом "_win32" и намекает. В Cairo есть поддержка множества разных backend: https://www.cairographics.org/manual/ca ... -surface-t В Линуксе есть рисование в области отрисовки для библиотеки GTK+. Примеры использования, на Си: http://zetcode.com/gfx/cairo/cairobackends/ |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |