Re: [Lazarus] code format selection only

2015-11-30 Thread Rik van Kekem

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

2015-11-30 Thread Anthony Walter
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

2015-11-30 Thread Anthony Walter
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

2015-11-30 Thread Anthony Walter
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

2015-11-30 Thread Michael Schnell

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

2015-11-30 Thread 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.--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Video: Custom Lazarus Help URLs

2015-11-30 Thread Aradeonas
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

2015-11-30 Thread micsch
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

2015-11-30 Thread Ondrej Pokorny

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

2015-11-30 Thread micsch
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)

2015-11-30 Thread Gordon Cooper

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

2015-11-30 Thread Aradeonas
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

2015-11-30 Thread Michael Schnell

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

2015-11-30 Thread Aradeonas
> 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

2015-11-30 Thread Michael Schnell

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

2015-11-30 Thread Aradeonas
> 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

2015-11-30 Thread Michael Schnell

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

2015-11-30 Thread Reimar Grabowski
On Mon, 30 Nov 2015 05:13:24 -0800
Aradeonas  wrote:

> 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

2015-11-30 Thread Aradeonas
> 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

2015-11-30 Thread Graeme Geldenhuys
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

2015-11-30 Thread Leonardo M . Ramé
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

2015-11-30 Thread Reimar Grabowski
On Mon, 30 Nov 2015 13:12:33 +0100
Michael Schnell  wrote:

> 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

2015-11-30 Thread Ondrej Pokorny

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

2015-11-30 Thread Martin Schreiber
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

2015-11-30 Thread Aradeonas
> 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

2015-11-30 Thread Reimar Grabowski
On Mon, 30 Nov 2015 13:58:24 +0100
Michael Schnell  wrote:

> 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

2015-11-30 Thread Martin Schreiber
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

2015-11-30 Thread Reimar Grabowski
On Mon, 30 Nov 2015 02:35:08 -0800
Aradeonas  wrote:

> 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

2015-11-30 Thread Aradeonas
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

2015-11-30 Thread Reimar Grabowski
On Mon, 30 Nov 2015 13:34:41 +0100
Martin Schreiber  wrote:

> 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

2015-11-30 Thread Michael Schnell

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

2015-11-30 Thread Michael Schnell

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

2015-11-30 Thread Aradeonas
> 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

2015-11-30 Thread Michael Schnell

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

2015-11-30 Thread Aradeonas
> 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

2015-11-30 Thread Graeme Geldenhuys
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

2015-11-30 Thread Michael Schnell

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

2015-11-30 Thread Aradeonas
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

2015-11-30 Thread Aradeonas
> 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

2015-11-30 Thread Reimar Grabowski
On Mon, 30 Nov 2015 06:06:13 -0800
Aradeonas  wrote:

> 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