Re: [Lazarus] code format selection only
Graeme Geldenhuys wrote: As far as I understand the code formatter included with Lazarus is the Jedi Code Formatter. Does anybody know if it supports formatting only a selection (eg: the body of a method) - or does it always require whole unit formatting? As far as I could see in the source the Jedi Code Formatter takes the complete source-file (from the editor). I also noticed it's kinda fussy about incomplete code. It will not reformat incorrect code. De Code Formatter in Delphi CAN format incomplete code. So formatting a part of source-code would be difficult because it's incomplete. You can also see this if you only copy your intended method to an empty unit and try formatting it. It will not work. In the past I looked for an option to disable JCF for part of the source-code but I couldn't find anything. That would be more useful to me than formatting part of the code. Sometimes you don't follow "the rules" on purpose because it's more clear but the JCF mangles it up. Disabling JCF for just that part would be useful. Grtz, Rik (rvk) -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] OSX homebew installer
Is anyone real familiar with Macintosh? I am trying to create a alternate installer using homebrew instead of macports, but I am having a real pain getting homebrew installed. There is some conflict with the PIM certificate I cannot resolve (even after googling around a lot). Here is what's happening. Any useful advice would be greatly appreciated. macuser@macpc~$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ==> This script will install: /usr/local/bin/brew /usr/local/Library/... /usr/local/share/man/man1/brew.1 Press RETURN to continue or any other key to abort ==> /usr/bin/sudo /bin/mkdir /Library/Caches/Homebrew Password: ==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew ==> /usr/bin/sudo /usr/sbin/chown macuser /Library/Caches/Homebrew ==> Downloading and installing Homebrew... fatal: unable to access 'https://github.com/Homebrew/homebrew/': could not load PEM client certificate, OpenSSL error error:02001002:system library:fopen:No such file or directory, (no key found, wrong pass phrase, or wrong file format?) Failed during: git fetch origin master:refs/remotes/origin/master -n --depth=1 -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] Video: Custom Lazarus Help URLs
Did you know you can configure Lazarus with customized dynamic help? Here is a short article plus video demonstration on this subject: http://www.getlazarus.org/articles/documentation/ -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] OSX homebew installer
Oh, I should mention I'm running OSX Mavericks and want to stay on it. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On 11/30/2015 03:27 PM, Aradeonas wrote: Obviously, if you want non standard speed, you need to consider non standard complexity. Yes I think like this.As I guess your products are not for end user client so you could use flash without any problem In fact they are for end users, but the software is just part of a huge system and installing the flash player is really a relatively small issue. :-) -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] Fast GUI
Is this something that can be of use for you ? http://tulip-ui.azurewebsites.net/ CodeTyphon has some GUI (HUD) OpenGL example ! Example Projects, AsphyreSphinx, BasicGUI.-- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Video: Custom Lazarus Help URLs
Thanks for the point. Its good to add this to GetLazarus NightlyBuild. Regards, Ara -- http://www.fastmail.com - IMAP accessible web-mail -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
Am Monday 30 November 2015 17:10:49 schrieb Alfred: > Is this something that can be of use for you ? > http://tulip-ui.azurewebsites.net/ > > CodeTyphon has some GUI (HUD) OpenGL example ! > Example Projects, AsphyreSphinx, BasicGUI. AsphyreSphinx is now Pascal eXtended Library. The Author left Emba and reopend the Projekt. In some Forumpost he mentioned to do some work on tulip-ui too. http://www.afterwarp.net/ http://forum.lazarus.freepascal.org/index.php?topic=29852.0 -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Testing TMemo.ScrollBy
On 29.11.2015 20:25, Juha Manninen wrote: I implemented TCustomMemo.ScrollBy together with fixing issue: http://bugs.freepascal.org/view.php?id=29067 See my comment there. Now I need help to test the changes, especially the widgetsets I could not test myself. Windows experts, is my solution for Windows OK? Juha, unfortunately I think the refactoring was not good. It opened too many issues. 1.) The biggest problem: TScrollBox stopped working completely on Win32. If you place TWinControl descendants into TScrollBox, they do not scroll. I wanted to fix it by adding the SW_SCROLLCHILDREN parameter to ScrollWindowEx https://msdn.microsoft.com/en-us/library/windows/desktop/bb787593(v=vs.85).aspx but then the scrolling of the child controls moves them "hard" - the scroll bars disappear and the controls change their LeftTop positions. 2.) You heavily changed TWinControl.ScrollBy function. 3.) IMO it's not a bug that TCustomMemo.ScrollBy doesn't work like you expect. But if you want to change TCustomMemo.ScrollBy behavior, change only its behavior, not TWinControl.ScrollBy. 4.) Maybe it's better to introduce TCustomMemo.TopLine property. Because if you hide scrollbars (ScrollBars = ssNone), you cannot use VertScrollBar.Position either because it's unavailable. This approach is good on Windows as it supports the EM_GETFIRSTVISIBLELINE and EM_LINESCROLL messages. I don't know if such functionality is supported on other WS, though. Please see the patch attached. It reverts 50523 and introduces TCustomMemo.TopLine. In my opinion, we have 2 possibilities: A) Implement TCustomMemo.TopLine on all WS where it is possible. - or - B) Revert TWinControl.ScrollBy and implement TCustomMemo.ScrollBy only. IMO (A) is the way to go. ScrollBy is a different function. E.g. TCustomGrid and TListBox do not support ScrollBy the way you do in TCustomMemo either. IMO it is just a misunderstanding that somebody thinks ScrollBy should move the ScrollBars. We need to solve (1) definitely. Ondrej Index: lcl/controls.pp === --- lcl/controls.pp (revision 50545) +++ lcl/controls.pp (working copy) @@ -2163,8 +2163,7 @@ procedure DisableAlign; procedure EnableAlign; procedure ReAlign; // realign all children -procedure ScrollBy_WS(DeltaX, DeltaY: Integer); -procedure ScrollBy(DeltaX, DeltaY: Integer); virtual; +//procedure ScrollBy(DeltaX, DeltaY: Integer); virtual; procedure WriteLayoutDebugReport(const Prefix: string); override; procedure AutoAdjustLayout(AMode: TLayoutAdjustmentPolicy; const AFromDPI, AToDPI, AOldFormWidth, ANewFormWidth: Integer); override; Index: lcl/forms.pp === --- lcl/forms.pp(revision 50545) +++ lcl/forms.pp(working copy) @@ -92,7 +92,7 @@ FOldScrollInfoValid: Boolean; protected FControl: TWinControl; -FPosition: Integer; +FPosition, FPrevPosition: Integer; function ControlHandle: HWnd; virtual; function GetAutoScroll: boolean; virtual; function GetIncrement: TScrollBarInc; virtual; @@ -109,6 +109,7 @@ procedure SetIncrement(const AValue: TScrollBarInc); virtual; procedure SetPage(const AValue: TScrollBarInc); virtual; procedure SetPosition(const Value: Integer); +procedure SetControlPosition; virtual; procedure SetRange(const AValue: Integer); virtual; procedure SetSmooth(const AValue: Boolean); virtual; procedure SetTracking(const AValue: Boolean); @@ -168,6 +169,8 @@ procedure WMVScroll(var Message : TLMVScroll); message LM_VScroll; procedure WMMouseWheel(var Message: TLMMouseEvent); message LM_MOUSEWHEEL; procedure ComputeScrollbars; virtual; +procedure ScrollbarHandler(ScrollKind: TScrollBarKind; + OldPosition: Integer); virtual; procedure SetAutoScroll(Value: Boolean); virtual; procedure Loaded; override; procedure Resizing(State: TWindowState); virtual; @@ -178,7 +181,7 @@ destructor Destroy; override; procedure UpdateScrollbars; class function GetControlClassDefaultSize: TSize; override; -procedure ScrollBy(DeltaX, DeltaY: Integer); override; +procedure ScrollBy(DeltaX, DeltaY: Integer); virtual; procedure ScrollInView(AControl: TControl); published property HorzScrollBar: TControlScrollBar read FHorzScrollBar write SetHorzScrollBar; @@ -1796,7 +1799,7 @@ {$endif} uses - WSControls, WSForms; // Widgetset uses circle is allowed + WSForms; // Widgetset uses circle is allowed var HandlingException: Boolean = False; Index: lcl/include/controlscrollbar.inc === --- lcl/include/controlscrollbar.inc(revision 50545) +++ lcl/include/controlscrollbar.inc(working copy) @@ -70,14 +70,11 @@ if Value = FPosition then exit; - // scroll
Re: [Lazarus] Fast GUI
Am Monday 30 November 2015 17:10:49 schrieb Alfred: > Is this something that can be of use for you ? > http://tulip-ui.azurewebsites.net/ > > CodeTyphon has some GUI (HUD) OpenGL example ! > Example Projects, AsphyreSphinx, BasicGUI. AsphyreSphinx is now Pascal eXtended Library. The Author left Emba and reopend the Projekt. In some Forumpost he mentioned to do some work on tulip-ui too. http://www.afterwarp.net/ http://forum.lazarus.freepascal.org/index.php?topic=29852.0 -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] Memory Loss (Mine)
Hello to all, Although I have been reading this mailing list for years, I have not been doing much else in this area. Started with standard Pascal on an elderly mainframe about 30 years ago. Was introduced to Borland's Turbo version, then wrote databases for a range of subjects, including a diet plan/record for a fairly large zoo. Interesting, but I then moved to Linux and probably have not written much in Pascal since Delphi 3 was the current version and Topaz was a good package for databases Since hen, I do not remember much. I looked at Lazarus a year or two ago, found it to be a bit confusing, so did nothing more. Starting again with an MX-Linux operating system, (derivatIve of Debian), have downloaded FPC 3.0, and slowly (very) remembering what to do. Firstly, 3.0 seems to work very well in Mx-Linux. Have tried the Address Book example, have an executive file that is very fast. Tried writing a bit of new code, it worked after I had fixed the errors, but then ran into trouble with the file system. Can not activate a dbf, keep being told that the file can not be opened. Another day tomorrow, will try again. Gordon. Tauranga, N.Z. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
[Lazarus] Fast GUI
Hi, I am working on a specefic GUI that need to be too fast and for this I have fpGUI or mse but in this project I need fast image and resizing and as I tested the fastest way for this kind of jobs OpenGL is the best so I made a project on it and everything is great and much much fast! So I want to ask is there any works on creating GUI with OpenGl that not be only for games or be for games but useful for specific applications and maybe using OS theme. I remember FireMonkey but in what we have Lazarus? I saw this but there isnt any specific answer http://www.pascalgamedevelopment.com/showthread.php?32356-Looking-for-simple-GUI-library-framework If there isnt I can try to make simple one but I want to ask is it sane? Regards, Ara -- http://www.fastmail.com - IMAP accessible web-mail -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On 11/30/2015 11:35 AM, Aradeonas wrote: I am working on a specefic GUI that need to be too fast Why do you think there is anything faster than the standard GUI ? Of course there are very special circumstances that would allow for some other GUI system to be faster. - It could be a very restricted GUI. Here a TUI (Text based user interface) could be faster (drop the LCL and see FPC's TUI library) - It could be a very complex threaded GUI. Theoretically you can do a multithreded application and have multiple threads each attach to it's own instance of the OS GUI API. With this, the GUI functions as well in the user program's library, as in the external Widget Set Library could work in parallel on multiple CPUs of an appropriate hardware. But this is not supported by Lazarus. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
> The normal GUI functions do use the hardware acceleration as they > should. so no chance for a great improvement here. Where can I read more about this? So according to what you say problem may be using one handle per control so resizing will make flickering. Is there anyway to disable this like fpGUI or mse? Regards, Ara -- http://www.fastmail.com - Or how I learned to stop worrying and love email again -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On 11/30/2015 12:58 PM, Aradeonas wrote: Where can I read more about this? The LCL uses the Windows API or a Linux Widget Set API, and both are highly optimized to use the hardware Graphic processor for all provided functions (such as rendering Text and standard objects). If you need advanced high speed graphical Features (such as zoom/pan/move/3D views of objects residing in the memory of the GPU), you need to use other libraries (not being called "GUI") such as Open GL, SDL or - less "basic" - Flash) So according to what you say problem may be using one handle per control so resizing will make flickering. Is there anyway to disable this like fpGUI or mse? Flickering and speed are completely different issues. Usually flickering is suppressed by triple buffering, reducing the speed by needing more CPU time. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
> Why do you think there is anything faster than the standard GUI ? I need controls that has animations and images that need to be fast in painting. I checked everything I know, the best result for graphical function is BGRABitmap but it is slow for high resolution painting so the best result I can get is with OpenGL and hardware and now I made it work. LCL for standard jobs is very good but if you want animations or fast painting it use much CPU and flicker and ... . So the best thing I can guess is hardware acceleration for specific jobs but I want to ask if you know one or is it sane or not . Regards, Ara -- http://www.fastmail.com - A no graphics, no pop-ups email service -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On 11/30/2015 12:26 PM, Aradeonas wrote: I need controls that has animations and images that need to be fast in painting. I checked everything I know, the best result for graphical function is BGRABitmap but it is slow for high resolution painting so the best result I can get is with OpenGL and hardware and now I made it work. LCL for standard jobs is very good but if you want animations or fast painting it use much CPU and flicker and ... . So the best thing I can guess is hardware acceleration for specific jobs but I want to ask if you know one or is it sane or not . The normal GUI functions do use the hardware acceleration as they should. so no chance for a great improvement here. The only way is multithreading to use multiple CPUs in parallel. In fact we (company) do this using Delphi. But Lazarus (or Delphi) can't do this on their own. So we did Flash animations (-> https://en.wikipedia.org/wiki/Flash_animation ) and have the flash player (dll) display them in appropriate rectangles placed in the normal GUI of the program. A lot of work creating this (especially as supposedly will you need a realtime communication to feed your flash windows with new data), bu7t the result is excellent. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On Mon, 30 Nov 2015 05:13:24 -0800 Aradeonaswrote: > But as I read about this a problem is for example in Android phones > their support OpenGl ES and taht is diffent to OpenGL like does have > glBegin glEnd and it can be kind of problem? It seems you have > experience about this?What you think? First of, everything concerning glBegin and friends is ancient stuff, don't touch them. Don't touch glMatrix* or anything like that, too. Do it on your own (even in JS if you use WebGL). In short: Do the matrix math on the CPU, use the most optimal vertex submission mechanism supported by the targeted version (vertex arrays, VBOs, etc.) and use shaders. Second, every platform has its own flavor of OpenGL: OpenGL for the Desktop, OpenGL ES on mobile and WebGL for the browser. All are similar and yet quite different. All have their own versions and the associated problems. Use OpenGL only if you need its features and then pick your platform and don't try to handle them all in one software. OpenGL is not easy to handle and you really have to dive in deep to make the most of it. You can do a lot of stuff really fast but the API is very old and it shows more and more. You have very little direct control of your graphics hardware and moving data to/from the card is cumbersome. Personally I am waiting for the successor of OpenGL (Vulkan) which does away with the multiple platform versions (Normal, Web, ES), unifies them and is stated to give you much more control of the hardware. I am sure things are not getting much easier in the high speed graphics department but a lot more organized and hopefully better to maintain. R. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
> First of, everything concerning glBegin and friends is ancient stuff, > don't touch them. Don't touch glMatrix* or anything like that, too. Do it on your own (even in JS if you use WebGL). In short: Do the matrix math on the CPU, use the most optimal vertex submission mechanism supported by the targeted version (vertex arrays, VBOs, etc.) and use shaders. Second, every platform has its own flavor of OpenGL: OpenGL for the Desktop, OpenGL ES on mobile and WebGL for the browser. All are similar and yet quite different. All have their own versions and the associated problems. Use OpenGL only if you need its features and then pick your platform and don't try to handle them all in one software. OpenGL is not easy to handle and you really have to dive in deep to make the most of it. You can do a lot of stuff really fast but the API is very old and it shows more and more. You have very little direct control of your graphics hardware and moving data to/from the card is cumbersome. Personally I am waiting for the successor of OpenGL (Vulkan) which does away with the multiple platform versions (Normal, Web, ES), unifies them and is stated to give you much more control of the hardware. I am sure things are not getting much easier in the high speed graphics department but a lot more organized and hopefully better to maintain. R. > Very interesting point about OpenGL and Vulkan.Thanks. By the way do you know any implementation of OpenGL or Vulkan for GUI in pascal for my recent research? Regards, Ara -- http://www.fastmail.com - Email service worth paying for. Try it for free -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On 2015-11-30 10:35, Aradeonas wrote: > If there isnt I can try to make simple one but I want to ask is it sane? Don't kid yourselfmaking a functional GUI toolkit is no simple or quick task. Martin and I would know. :-) It seems what you are after is FireMonkey. Maybe purchase a copy of Delphi that includes FireMonkey and see if you can port it back to FPC - then maybe sell your solution back to Embarcadero. ;-) Then again, Embarcadero's licensing probably forbids that. As a FireMonkey alternative, take a look at CodeTyphon's Orca and Orca3D packages. Then again, as far as I can see, those are illegal copies of FireMonkey's precursor - VGScene. CodeTyphon simply "rebranded" it as Orca and hidden between the many packages included with CodeTyphon. [if I am wrong, I welcome anybody to correct me] I don't condone such actions, but there you go. Regards, - Graeme - -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Different behavior of method and class variables
Please, forget about this. I was using a header for a different version of the dll. -- Leonardo M. Ramé http://leonardorame.blogspot.com -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On Mon, 30 Nov 2015 13:12:33 +0100 Michael Schnellwrote: > If you need advanced high speed graphical Features > ... or - less "basic" - Flash) Made my day. R. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On 30.11.2015 12:39, Michael Schnell wrote: bu7t the result is excellent. I don't have Flash player installed. IMO it's bad practice to force your users to install any third-party software. Ondrej -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On Monday 30 November 2015 13:51:38 Aradeonas wrote: > Martin is mse support transparent text box or these > component with OpenGL? In the experimental MSEgui OpenGL backend? Yes, transparent text is supported. But it is experimental and the performance is not very good. > As I remember you said that mse use no handle per > control so what mse do for text component or lists? > MSEgui sends graphics primitives to xlib or xrender on Linux and FreeBSD or to gdi32 or gdi+ on Windows. Martin -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
> That's true but something like 2.0 or 3.2 can most likely nowadays be > reasonably targeted. If you go 1.2 it should work everywhere. On phones you can offen use the current version as people upgrade their phones often. Often more problematic are different driver versions and their bugs. If you want to really handle all versions it gets really cumbersome as you have to implement different render paths as the most optimal path differs greatly between OpenGL (major) versions. Hopefully things get better with Vulkan. > But as I read about this a problem is for example in Android phones their support OpenGl ES and taht is diffent to OpenGL like does have glBegin glEnd and it can be kind of problem? It seems you have experience about this?What you think? Regards, Ara -- http://www.fastmail.com - Accessible with your email software or over the web -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On Mon, 30 Nov 2015 13:58:24 +0100 Michael Schnellwrote: > On 11/30/2015 01:35 PM, Reimar Grabowski wrote: > Ara did not state what exactly the problem is he is facing. None at all. He had used OpenGL to do the GUI for a project (as he had found by testing that this was the fastest solution). Now he wanted to know if it is viable to create a simple OpenGL GUI library or if there is anybody already working on one. No need for your well known "multithreading chatter". R. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On Monday 30 November 2015 11:35:08 Aradeonas wrote: > Hi, > > I am working on a specefic GUI that need to be too fast and for this I > have fpGUI or mse but in this project I need fast image and resizing and > as I tested the fastest way for this kind of jobs OpenGL is the best so > I made a project on it and everything is great and much much fast! So I > want to ask is there any works on creating GUI with OpenGl that not be > only for games or be for games but useful for specific applications and > maybe using OS theme. MSEgui has an experimental OpenGL backend. OpenGL is not well-suited to support 2D GUIs IMO. Because of the many different versions and implementations, all with different extensions, limitations and bugs, working with OpenGL is a difficult task. MSEgui uses hardware acceleration if available. A framework for animations with a central frame tick and the like is planned, although performance of simple hardware accelerated canvas drawing is not bad, see for example: http://mseide-msegui.sourceforge.net/pics/blend.mpeg http://mseide-msegui.sourceforge.net/pics/blend1.png http://mseide-msegui.sourceforge.net/pics/blend2.png http://mseide-msegui.sourceforge.net/pics/blend3.png The project is here: https://gitlab.com/mseuniverse/mseuniverse/tree/master/samples/widgets/blendpos (needs MSEide+MSEgui git master version). The code: " procedure tmainfo.childmouseeventexe(const sender: twidget; var ainfo: mouseeventinfoty); begin image.face.image.center:= TranslateWidgetToPaintPoint(ainfo.pos,sender,image); end; " The whole rest are design time property settings only. > I remember FireMonkey but in what we have Lazarus? AFAIK FireMonkey has no good performance. Martin -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On Mon, 30 Nov 2015 02:35:08 -0800 Aradeonaswrote: > If there isnt I can try to make simple one but I want to ask is it sane? > Regards, Ara Yes it is. Looking forward to it. R. P.S.: Don't give too much on Michaels theorizing. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
Thanks Michael,Martin,Reimar and Ondrej. As you said martin it is not easy to use but give you very good performance.I tested it with BGRABitmap OpenGL and it can be very good. But it can have many problems like making text box or memo or whatever. I know there are GUI components with OpenGL even with Pascal but I couldnt test anyone and want to know is there any one here test them or have experience in this field or not. Martin is mse support transparent text box or these component with OpenGL? As I remember you said that mse use no handle per control so what mse do for text component or lists? Regards, Ara -- http://www.fastmail.com - A fast, anti-spam email service. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On Mon, 30 Nov 2015 13:34:41 +0100 Martin Schreiberwrote: > OpenGL is not well-suited to > support 2D GUIs IMO. Depends a lot on what kind of GUI you need. Blenders GUI for example gains a lot IMHO by being implemented in OpenGL but users of blender are also more likely to have good graphics cards. > Because of the many different versions and > implementations, all with different extensions, limitations and bugs, working > with OpenGL is a difficult task. That's true but something like 2.0 or 3.2 can most likely nowadays be reasonably targeted. If you go 1.2 it should work everywhere. On phones you can offen use the current version as people upgrade their phones often. Often more problematic are different driver versions and their bugs. If you want to really handle all versions it gets really cumbersome as you have to implement different render paths as the most optimal path differs greatly between OpenGL (major) versions. Hopefully things get better with Vulkan. R. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On 11/30/2015 01:35 PM, Reimar Grabowski wrote: P.S.: Don't give too much on Michaels theorizing. -- Ara did not state what exactly the problem is he is facing. And it is not theory that with modern systems multiple CPUs are common and most "GUI" libraries don't support multiple threads. If what he intends to do needs a lot of calculations (besides what can be moved to the GPU) obviously distributing the work on multiple processors by utilizing multiple threads will help. Been there, did it. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On 11/30/2015 01:39 PM, Ondrej Pokorny wrote: I don't have Flash player installed. IMO it's bad practice to force your users to install any third-party software. But Open GL ?!?!?! -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
> He had used OpenGL to do the GUI for a project (as he had found by > testing that this was the fastest solution). Exactly. I dont know why but I am fascinated about fast GUIs. I am not a professional game developer but for my projects sometimes I need animations and image processing and Im tired of making a graphical component or a especial painter for a case and want to know is there any work available or it is a sane way to make all of my components from OpenGl or something like this and even used OS theme for my view like getting windows 8 draw for a button but make it as a texture and give it to my imaginary button component. As I said I saw this in Firemonkey .It even make DBGrid 3D! I dont need 3D component but I need fast accelerated OpenGL or something like this for my custom GUI. Regards, Ara -- http://www.fastmail.com - Accessible with your email software or over the web -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On 11/30/2015 02:17 PM, Reimar Grabowski wrote: No need for your well known "multithreading chatter". Just trying to help... -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
> Just trying to help... Thank you very much Michael and I want to know more about this system.Maybe It not used in this case but be used for my current UI system or next one. Regards, Ara -- http://www.fastmail.com - A fast, anti-spam email service. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On 2015-11-30 12:34, Martin Schreiber wrote: > OpenGL is not well-suited to > support 2D GUIs IMO. Because of the many different versions and > implementations, all with different extensions, limitations and bugs, working > with OpenGL is a difficult task. +1 Somebody previously tried to make a OpenGL backend for fpGUI too. They quickly noted that the different versions of OpenGL, OpenGL ES etc etc are a real pain. I'm not saying it can't be done, I'm just saying it is a pain. Regards, - Graeme - My public PGP key: http://tinyurl.com/graeme-pgp -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On 11/30/2015 02:33 PM, Aradeonas wrote: Thank you very much Michael and I want to know more about this system.Maybe It not used in this case but be used for my current UI system or next one. In fact there is no "system", just some obvious consideration. As I stated we used Flash to create many small animated windows within a GUI, and are happy with this, but this can't be considered a GUI system. Regarding multiple threads (and with this CPUs) driving a rather standard GUI in parallel, I believe that something like this can be done using standard GUI libraries (like KDE or GTK, or Windows). If such a library gets an initialization call from a Process, it can detect the process ID and the Thread ID. it needs to allocate some memory for the future work. When we want to use a single GUI per Process and access it with multiple Threads (which might be forbidden) there would be a single base of resources per process (and if allowed, the library needs to synchronize multiple threads appropriately) . If we want to use multiple GUIs per Process (one per Thread) these resources would need to be allocated on a per thread base. I can't believe that the API makers did not consider the two obvious cases (even though a process with multiple independent GUIs is not a very common task to do, but obviously the parallel work of multiple CPUs might speed up things.) Obviously, if you want non standard speed, you need to consider non standard complexity. -Michael -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
Thanks Graeme. Im not going to make GUI toolkit,Just controls that I need.fpGUI and mse are full and functional kits but I want a simple and with special target very fast GUI. Regards, Ara -- http://www.fastmail.com - The way an email service should be -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
> Obviously, if you want non standard speed, you need to consider non standard complexity. Yes I think like this.As I guess your products are not for end user client so you could use flash without any problem and in my case I want it for some special case and clients so making an special GUI on OpenGL can be an answer because as I said in this GUI there is many image processing and the best I know is OpenGL. But I be happy to know any other solution or a GUI made already. Regards, Ara -- http://www.fastmail.com - Send your email first class -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Re: [Lazarus] Fast GUI
On Mon, 30 Nov 2015 06:06:13 -0800 Aradeonaswrote: > Very interesting point about OpenGL and Vulkan.Thanks. By the way do you > know any implementation of OpenGL or Vulkan for GUI in pascal for my > recent research? Unfortunately not. R. -- ___ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus