OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 11:47

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: Cairo Views
СообщениеДобавлено: Воскресенье, 25 Май, 2014 22:18 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Как-то спрашивали насчёт 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.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo Views
СообщениеДобавлено: Воскресенье, 03 Декабрь, 2017 07:23 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 358
Откуда: Россия, Стерлитамак
А пример можно, как тут рисовать через cairo ? Не смог увязать примеры по выводу в графический файл, и эту вьюшку.

Что тут подразумевает процедура Evaluate в Restore ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo Views
СообщениеДобавлено: Воскресенье, 03 Декабрь, 2017 09:22 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Поглядите:
https://blackbox.obertone.ru/component/Cairo


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo Views
СообщениеДобавлено: Воскресенье, 03 Декабрь, 2017 10:06 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 358
Откуда: Россия, Стерлитамак
Я про эту подсистему и говорил, что не могу увязать вывод представленной здесь вьюшки, и примеры оттуда. Есть пример без доработанного hostports? Хотя мне особо без разницы, в итоге хотелось бы иметь масштабирование текста и графики во вьюшках


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo Views
СообщениеДобавлено: Воскресенье, 03 Декабрь, 2017 11:48 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 583
Откуда: Москва
Иван Денисов писал(а):

Не показывает у меня Ваш пример, только 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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo Views
СообщениеДобавлено: Воскресенье, 03 Декабрь, 2017 11:53 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Только Windows?
Или во Freenix-сборке и так Gtk-шное сглаживание?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo Views
СообщениеДобавлено: Воскресенье, 03 Декабрь, 2017 12:20 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 358
Откуда: Россия, Стерлитамак
Дмитрий Дагаев писал(а):
Не показывает у меня Ваш пример, только 0 на консоль пишет, все собирается и запускается без ошибок по Quick-Start. Что-то не так делаю?

Там не вывод на экран, там вывод в файл. Файл создается соответствующий в папке блекбокса


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo Views
СообщениеДобавлено: Воскресенье, 03 Декабрь, 2017 12:43 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
adva писал(а):
Дмитрий Дагаев писал(а):
Не показывает у меня Ваш пример, только 0 на консоль пишет, все собирается и запускается без ошибок по Quick-Start. Что-то не так делаю?

Там не вывод на экран, там вывод в файл. Файл создается соответствующий в папке блекбокса

Там есть и вывод на экран. Cairo/Mod/Ports.odc компилируйте и будет работать вывод во все вьюшки блэкбокса через Cairo. Но не текста, а линий, квадратов и других примитивов. Текст выводится как раньше. Если не разберетесь, то я сделаю видеодемонстрацию как это работает с комментариями.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo Views
СообщениеДобавлено: Воскресенье, 03 Декабрь, 2017 13:35 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 583
Откуда: Москва
Иван Денисов писал(а):
adva писал(а):
Cairo/Mod/Ports.odc компилируйте и будет работать вывод во все вьюшки блэкбокса через Cairo.

Спасибо, файлы вижу. Я бы посоветовал в примерах дать вывод на консоль "saved to ...png". А вот модуль Ports в примерах не задействован, примерчик не помешает. А то 3 примера с выводом в файл и ни одного - во вьюшку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo Views
СообщениеДобавлено: Воскресенье, 03 Декабрь, 2017 19:15 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 358
Откуда: Россия, Стерлитамак
Дмитрий Дагаев писал(а):
А вот модуль Ports в примерах не задействован, примерчик не помешает. А то 3 примера с выводом в файл и ни одного - во вьюшку.


Там пример есть в файле DemoBezier.odc
Т.е. по сути HostPorts заменяет стандартный, чтобы вьюшки выводились через кайро. С этим вопросов нет.

Вопрос в том, можно ли как-то прикрутить масштабирование и текста и графики к этому новому HostPorts?

Думаю без доработки самого каркаса это вряд ли возможно, а потому хотел бы просто какой-нибудь пример, который выводил бы вьюшку без использования доработанного hostports.

Пробовал по аналогии с hostports делать у вьюшки Restore, но на экран ничего не выводилось, хотя пытался линии рисовать, хотя может где напутал с координатами или еще чем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo Views
СообщениеДобавлено: Воскресенье, 03 Декабрь, 2017 19:50 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
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;


Последний раз редактировалось Иван Денисов Воскресенье, 03 Декабрь, 2017 19:57, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo Views
СообщениеДобавлено: Воскресенье, 03 Декабрь, 2017 19:56 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 358
Откуда: Россия, Стерлитамак
Иван Денисов писал(а):
На уровне HostPorts вы сможете сделать любые чудеса, какие только захотите :)

Действительно не сложно ) , попробую, спасибо


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo Views
СообщениеДобавлено: Вторник, 05 Декабрь, 2017 14:38 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 358
Откуда: Россия, Стерлитамак
Линию в итоге в 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 ---


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo Views
СообщениеДобавлено: Среда, 06 Декабрь, 2017 06:46 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Тут получается наслаивается обработка прокрутки блэкбокса и что-то не так работает с обновлением.

Лучше немного разобраться с обработкой скроллинга и сделать свой вариант.

Вот небольшой набросок, чтобы вы поняли о чем я говорю. Сделал на основе 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 надо вызывать при скролле, только если прекратился поток сообщений. Небольшой таймер сделать надо. Я это сделал для текстовых отображений для своего проекта, поглядите для примера. Выделено красным.
Вложение:
Views.odc [58.97 КБ]
Скачиваний: 838


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo Views
СообщениеДобавлено: Среда, 06 Декабрь, 2017 08:15 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 358
Откуда: Россия, Стерлитамак
Иван Денисов писал(а):
Вот небольшой набросок, чтобы вы поняли о чем я говорю. Сделал на основе ObxScroll. Линия прокручивается гладко, не пропадает.

Да, так лучше, спасибо, причину с ходу не понял, но постараюсь сам вникнуть.

Такой вопрос по библиотеке cairo: использую cairo_win32_surface_create. Это как я понял применимо только для Windows ? Какую surface использовать для разработки и для linux ? Или лучше чисто SDL использовать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Cairo Views
СообщениеДобавлено: Пятница, 08 Декабрь, 2017 17:27 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
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/


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB