Thank you Pavel, I'm not so used to collaborate with teams and git, so I've missed this feature. I will add other adds/changes and I will describe here what they do. Silverio
Thank you Pavel, I'm not so used to collaborate with teams and git, so I've missed this feature. I will add other adds/changes and I will describe here what they do.
In the first commit ( https://github.com/shineworld/GLXEngine/commit/c9d92b97b76f4567b92da8f99f6c3df9432b39fa ) I modified two things: 1] With the new compiler, TList and Inherited, it changed the type for Index from Integer to NativeInt, so I created the TListSize type so as to accommodate the two versions and avoid any incompatibility. 2] Each object in the scene has the ability to display axes, as infinite dashed lines. In my case I often need to display even a single axis, to be able to change...
In the first commit ( https://github.com/shineworld/GLXEngine/commit/c9d92b97b76f4567b92da8f99f6c3df9432b39fa ) I modified two things: 1] With the new compiler, TList and Inherited, it changed the type for Index from Integer to NativeInt, so I created the TListSize type so as to accommodate the two versions and avoid any incompatibility. 2] Each object in the scene has the ability to display axes, as infinite dashed lines. In my case I often need to display even a single axis, to be able to change...
Hi everyone, I have been using GLXEngine for a while now and would like to share some, albeit small, changes I have made to better align the library's functionality with my needs. I'll leave it to the project managers to decide if there is any interest in including them in the original package. Not knowing how to proceed, I have fork the library in github and will include the changes as commits. Many features are not built into the library itself but as additional units. I always leave all decisions...
Windows can set desired GPU for every program.
Thank you for support. PS: would be nice to know the source site of DLLs.
With release tag v2.5 any external dll was removed from repository. There is yet the scripts to install them but dll files was deleted.
My request was about the HUD Sprite of axis origins (tree arrows), which draw a gray border around the arrows objects instead to be full transparency.
I've tried to add an Axis origin using the HUD Sprite but the axes arrows show always a grey ghost in the borders (see screenshot.png image). There is a reasonable reason why this happen ? Thank you for any suggestion. PS: use mouse wheel to zoom +/- in the attached sample
I've tried to add an Axis origin using the HUD Sprite but the axes arrows show always a grey ghost in the borders (see screenshot.png image). There is a reasonable reason why this happen ? Thank you for any suggestion.
TGLCylinder and TGLAnnulus are in GLS.GeomObjects.pas
You simply add a new field Stings: TStringList to base object TGLBaseSceneObject. Remember to add it to Assign method. If you use it only via code (not IDE designer) you can leave the original GLS.Scene.pas in libarry sources, copy the file in your project folder, add new property Strings to TGLBaseSceneObject end add property, Assign, etc and add the GLS.Scene in your project sources. In this way you don't touch original source code but your project will use a "fucked" code sources with new Strings...
You simply add a new field Stings: TStringList to base object TGLBaseSceneObject. Remember to add it to Assign method. If you use it only via code (not IDE designer) you can leave the original GLS.Scene.pas in libarry sources, copy the file in your project folder, add new property Strings to TGLBaseSceneObject end add property, Assign, etc and add the GLS.Scene in your project sources. In this way you don't touch original source code but your project will use a "fucked" code sources with new Strings...
You simply add a new field Stings: TStringList to base object TGLBaseSceneObject. Remember to add it to Assign method. If you use it only via code (not IDE designer) you can leave the original GLS.Scene.pas in libarry sources, copy the file in your project folder, add new property Strings to TGLBaseSceneObject end add property, Assign, etc and add the GLS.Scene in your project sources. In this way you don't touch original source code but your project will use a "fucked" code sources with new Strings...
You simply add a new field Stings: TStringList to base object TGLBaseSceneObject. Remember to add it to Assign method. If you use it only via code (not IDE designer) you can leave the original GLS.Scene.pas in libarry sources, copy the file in your project folder, add new property Strings to TGLBaseSceneObject end add property, Assign, etc and add the GLS.Scene in your project sources. In this way you don't touch original source code but your project will use a "fucked" code sources with new Strings...
You simply add a new field Stings: TStringList to base object TGLBaseSceneObject. Remember to add it to Assign method. If you use it only via code (not IDE designer) you can leave the original GLS.Scene.pas in libarry sources, copy the file in your project folder, add new property Strings to TGLBaseSceneObject end add property, Assign, etc.
At moment I've canibalized the changes and add to GLScene code, because run on my system and I know how to manage it, but I need to follow the rules and place changes in main glscene root. The core code of TGLFreeFormSharpEdges is in attachment. The way to recreate a mesh, in my case from STL file, edges is simple. Just create a list of adiacent surfaces with a side shared. If angle between normals of two surfaces is greather than an programmed angle this side will have a edge (line). An angle of...
At moment I've canibalized the code, because run on my system and I know how to manage them, but I need to follow the rules. The core code of TGLFreeFormSharpEdges is in attachment. I've to finish a project, for yesterday we say, and then I will try to do the changes following the glscene rules.
Ok, I'm used too to place FormatSettings.DecimalSeparator := '.' in main unit. Unfortunately there are, rare case, in which some 3D part libraries change programmaticaly DecimalSeparator without backup old value and restore it before to finish, changing the initial default setting. I've also three changes which can be added to glscene that I would like to have by default in glscene main sources: 1] a modified version of GLS.GLScene which change the Axis visualization. This permit to choose the color,...
Ok, I'm used too to place FormatSettings.DecimalSeparator := '.' in main unit. Unfortunately there are, rare case, in which some 3D part libraries change programmaticaly DecimalSeparator without backup old value and restore it before to finish, changing the initial default setting. I've also three changes which can be added to glscene that I would like to have by default in glscene main sources: 1] a modified version of GLS.GLScene which change the Axis visualization. This permit to choose the color,...
Ok, I'm used too to place FormatSettings.DecimalSeparator := '.' in main unit. Unfortunately there are, rare case, in which some 3D part libraries change programmaticaly DecimalSeparator without backup old value and restore it before to finish, changing the initial default setting. I've also three changes which can be added to glscene that I would like to have by default in glscene main sources: 1] a modified version of GLS.GLScene which change the Axis visualization. This permit to choose the color,...
GLSUtils.pas This code could change DecimalSeparator if string float don't have . or ,: function Str2Float(const S: string): Single; var fs: TFormatSettings; begin fs.DecimalSeparator := ','; if not TryStrToFloat(S, Result, fs) then begin fs.DecimalSeparator := '.'; if not TryStrToFloat(S, Result, fs) then Result := 0; end; end; change to: function Str2Float(const S: string): Single; var DSeparator: Char; fs: TFormatSettings; begin DSeparator := fs.DecimalSeparator; try fs.DecimalSeparator := ',';...
GLSUtils.pas This code could change DecimalSeparator if string float don't have . or ,: function Str2Float(const S: string): Single; var fs: TFormatSettings; begin fs.DecimalSeparator := ','; if not TryStrToFloat(S, Result, fs) then begin fs.DecimalSeparator := '.'; if not TryStrToFloat(S, Result, fs) then Result := 0; end; end; change to: function Str2Float(const S: string): Single; var DSeparator: Char; fs: TFormatSettings; begin DSeparator := fs.DecimalSeparator; try fs.DecimalSeparator := ',';...
GLSUtils.pas This code could change DecimalSeparator if string float don't have . or ,: function Str2Float(const S: string): Single; var fs: TFormatSettings; begin fs.DecimalSeparator := ','; if not TryStrToFloat(S, Result, fs) then begin fs.DecimalSeparator := '.'; if not TryStrToFloat(S, Result, fs) then Result := 0; end; end; change to: function Str2Float(const S: string): Single; var DSeparator: Char; fs: TFormatSettings; begin DSeparator := fs.DecimalSeparator; try fs.DecimalSeparator := ',';...
Moving BACK a List index become negative (-1) and raise an excaption wich block all. I've inserted a conditional breakpoint with maxi < 0 to catch it.
Disabilig this line seem to work: I don't know what FractalArchip.Update do inner but seem a TLlist wrong Index (-1)
Disabilig this line seem to work:
I saw.... This happens when moving with cursors one of coords back to 0 value... I guess is a bug in code. Moving back an Exception is raised:
I saw.... This happens when moving with cursors one of coords back to 0 value... I guess is a bug in code. Moving back an Exception is raised:
I saw.... This happens when moving with cursors one of coords back to 0 value... I guess is a bug in code
I've have only to change GLAsyncTimer1 from 700ms to 1ms. With timeBeginPeriod, that you have already inserted in sources, you say to Windows: "Hey OS, I want more precision in ticks that you use to send WM_TIMER messages, i THREAD switch contexts, etc, don't use your 50ms base default timings". DO NOT PLACE timeBeginPeriod/timeEndPeriod in a LIBRARY. It's a System(Till W10 21Hxxx)/Process(W10 22Hxx and W11) singleton setting. Just place, when you want in EXE program. You can try the exe and sea...
I've have only to change GLAsyncTimer1 from 700ms to 1ms. With timeBeginPeriod, that you have already inserted in sources, you say to Windows: "Hey OS, I want more precision in ticks that you use to send WM_TIMER messages, i THREAD switch contexts, etc, don't use your 50ms base default timings". DO NOT PLACE timeBeginPeriod/timeEndPeriod in a LIBRARY. It's a System(Till W10 21Hxxx)/Process(W10 22Hxx and W11) singleton setting. Just place, when you want in EXE program. I've tried FPS with and without...
I've have only to change GLAsyncTimer1 from 700ms to 1ms. With timeBeginPeriod, that you have already inserted in sources, you say to Windows: "Hey OS, I want more precision in ticks that you use to send WM_TIMER messages, don't use your 50ms default timings". DO NOT PLACE timeBeginPeriod/timeEndPeriod in a LIBRARY. It's a System(Till W10 21Hxxx)/Process(W10 22Hxx and W11) singleton setting. Just place, when you want in EXE program. I've tried FPS with and without timeBeginPeriod: WITHOUT = FPS 65...
Check the previous image: add MMSystem to the list of uses.
Check the previous image: add MMSystem to the list of uses.
Check the image below: add MMSystem to uses list.
This is with Lazarus:
in Delphi the unit MMSystem permits to change the timecaps of system (in W10/11 the timecaps of process). Usually any timing in W10 uses 50ms so also if you set a timer at 1ms the OS will raise it in >50ms time. Some program, however, force the timeEndPeriod to 1ms or at minimum accepted value, to imporve performances. Delphi IDE does that. So if you run a common program code in IDE run moooore fast than run it with IDE not running. I guess browser does same thing. https://learn.microsoft.com/en...
in Delphi the unit MMSystem permits to change the timecaps of system (in W10/11 the timecaps of process). Usually any timing in W10 uses 50ms so also if you set a timer at 1ms the OS will raise it in >50ms time. Some program, however, force the timeEndPeriod to 1ms or at minimum accepted value, to imporve performances. Delphi IDE does that. So if you run a common program code in IDE run moooore fast than run it with IDE not running. I guess browser does same thing.
Try to place this line at start of your program: ~~~ var TimeCaps: TTimeCaps; NeedToChangeTimerPrecsion: Boolean; // starts high precision timer if timeGetDevCaps(@TimeCaps, SizeOf(TTimeCaps)) = TIMERR_NOERROR then NeedToChangeTimerPrecsion := timeBeginPeriod(TimeCaps.wPeriodMin) = TIMERR_NOERROR; ... main loop ... before to exit program // stops high precision timer if NeedToChangeTimerPrecsion then timeEndPeriod(TimeCaps.wPeriodMin); ~~~ This improve precision and quantum of single tick time ....
Try to place this line at start of your program: ~~~ var TimeCaps: TTimeCaps; NeedToChangeTimerPrecsion: Boolean; ... ... // starts high precision timer if timeGetDevCaps(@TimeCaps, SizeOf(TTimeCaps)) = TIMERR_NOERROR then NeedToChangeTimerPrecsion := timeBeginPeriod(TimeCaps.wPeriodMin) = TIMERR_NOERROR; ... main loop ... before to exit program // stops high precision timer if NeedToChangeTimerPrecsion then timeEndPeriod(TimeCaps.wPeriodMin); ~~~ This improve precision and quantum of single tick...
Are you on Windows ?
In my case I've a lot of STL files to open. With latest GLScene, HEAD 0eb11bb1aae7f7110e79064a92ed5b597594921, it will take 2500ms to load all of them. Changing GLS.VectorFileObjects.pas code from: procedure TGLBaseMesh.LoadFromFile(const filename: string); var fs: TFileStream; begin FLastLoadedFilename := ''; if fileName <> '' then begin try fs := TFileStream.Create(fileName, fmOpenRead + fmShareDenyWrite); LoadFromStream(fileName, fs); FLastLoadedFilename := filename; finally fs.Free; end; end;...
You can use TGLHudSprite. http://lampogolovii.blogspot.com/2011/10/fps-memory.html
I will do something in next weeks. At first I've added to my GLScene using program a server tcp to manage request/response in JSON format so an external python program can ask for graphics objects by name and then change proprerties (xyz placement, color, rotation, etc) and backing changes to server it change properties of GLScene objects. It a simple try to use pyhton script to manage GLScene object. I've tried also to execute a python code directly on GLScene project and works. In other words with...
In the last push I noticed the pythonengine integration embryo in glscene. Really interesting. What are the desired goals with this technology? Currently I already use, in some way, python scripts, with GLScene to "manage" some 3D objects that are not directly affected by the machine kinematics. To date, I do this using a script launched by a separate process that communicates via TCP packets with the process in which GLScene runs. It would be interesting to integrate the scripts directly into the...
In the last push I noticed the pythonengine integration embryo in glscene. Really interesting. What are the desired goals with this technology? Currently I already use, in some way, python scripts, with GLScene to "manage" some 3D objects that are not directly affected by the machine kinematics. To date, I do this using a script launched by a separate process that communicates via TCP packets with the process in which GLScene runs. It would be interesting to integrate the scripts directly into the...
Hi all, today I've discovered that github glscene repository is not aligned with sourceforge glscene updates. Is github update service yet supported ?
I only touched the top of the iceberg and to date I only use Image32 for SVG rendering. As soon as I finish the first release of the software I am working on, I will look at all the features of the library in detail because I would like to use it to create an open graphics library using Image32 as a graphics core.
DONE !!!! Here you can view where I use SVG to obtains touch buttons, images, etc: https://youtu.be/0R2I1RweOnA Initially all was made with PNG but with problem when the screen size is changed. Now all is made uppon your SVG Image32 implementation.
DONE !!!! Here you can view where I use SVG to made touch buttons, images, etc: https://youtu.be/0R2I1RweOnA Initially all was made with PNG but with problem when the screen size is changed. Now all is made uppon your SVG Image32 implementation.
GREAT!!! Your work is impressive.
At this moment I'm using a workarond: procedure SetSVGFillStrokeColor(Color: TColor); var C: string; S: string; I: Integer; PI: Integer; PS: Integer; PE: Integer; Item: string; Items: TStringList; function BGR2RGB(BGR: Integer): COLORREF; var R, G, B: Integer; begin B := BGR div $10000; G := ((BGR mod $10000) div $100) shl 8; R := (BGR mod $100) shl 16; Result := R + G + B; end; begin C := Format('%.6x', [BGR2RGB(ColorToRGB(Color))]); S := LowerCase(SVGText); Items := TStringList.Create; try Items.Duplicates...
At this moment I use a workarond: procedure SetSVGFillStrokeColor(Color: TColor); var C: string; S: string; I: Integer; PI: Integer; PS: Integer; PE: Integer; Item: string; Items: TStringList; function BGR2RGB(BGR: Integer): COLORREF; var R, G, B: Integer; begin B := BGR div $10000; G := ((BGR mod $10000) div $100) shl 8; R := (BGR mod $100) shl 16; Result := R + G + B; end; begin C := Format('%.6x', [BGR2RGB(ColorToRGB(Color))]); S := LowerCase(SVGText); Items := TStringList.Create; try Items.Duplicates...
At this moment I use a workarond: procedure SetSVGFillStrokeColor(Color: TColor); var C: string; S: string; I: Integer; PI: Integer; PS: Integer; PE: Integer; Item: string; Items: TStringList; function BGR2RGB(BGR: Integer): COLORREF; var R, G, B: Integer; begin B := BGR div $10000; G := ((BGR mod $10000) div $100) shl 8; R := (BGR mod $100) shl 16; Result := R + G + B; end; begin C := Format('%.6x', [BGR2RGB(ColorToRGB(Color))]); S := LowerCase(SVGText); Items := TStringList.Create; try Items.Duplicates...
At this moment I use a workarond: procedure SetSVGFillStrokeColor(Color: TColor); var C: string; S: string; I: Integer; PI: Integer; PS: Integer; PE: Integer; Item: string; Items: TStringList; function BGR2RGB(BGR: Integer): COLORREF; var R, G, B: Integer; begin B := BGR div $10000; G := ((BGR mod $10000) div $100) shl 8; R := (BGR mod $100) shl 16; Result := R + G + B; end; begin C := Format('%.6x', [BGR2RGB(ColorToRGB(Color))]); S := LowerCase(SVGText); Items := TStringList.Create; try Items.Duplicates...
In my svg Button I would like to change programmatically how TSVGReader draw an SVG image with one color (in this way if not specifcied a disabled image I can calculate the relative color to simulate it as disabled). I've tried with TSVGReader.SetOverrideFillColor, SetOverrideStrokeColor. SVGText := ImageCollection.SVGIconItems.Items[I].SVGText; FSVGSupportReader.LoadFromString(SVGText); // tries to change drawing colors FSVGSupportReader.SetOverrideFillColor(clBlue32); FSVGSupportReader.SetOverrideStrokeColor(clBlue32);...
In my svg Button I would like to change programmatically how TSVGReader draw an SVG image. I've tried with TSVGReader.SetOverrideFillColor, SetOverrideStrokeColor. SVGText := ImageCollection.SVGIconItems.Items[I].SVGText; FSVGSupportReader.LoadFromString(SVGText); // tries to change drawing colors FSVGSupportReader.SetOverrideFillColor(clBlue32); FSVGSupportReader.SetOverrideStrokeColor(clBlue32); // FSVGSupportReader.DrawImage(FSVGSupportImage, True); but nothing happens. What I've mistaked ?
I've created a new Mesh type with edges. Do you think I can be solved by shifting the draw order of the mesh + edges?
Ops a loop in sending...
Thanks !!!!
Thanks !!!!
Now WORKS perfectly. Very good work Angus :) I've finished first version of a touch screen button which uses Image32 and SVGCollectionItems objects (attachments).
Now WORKS perfectly. If finished first version of a touch screen button which uses Image32 and SVGCollectionItems objects (attachments).
In attached SVG the US flag missing of stars and chinese flag missing of content.
Hi Angus, today I've updated Image32 with latest commit and something goes wrong with SVG rendering. In snapshow I've described the initial commit SHA and latest commit SHA. I've added my test program. PS: In all the Chinese and American flags don't shows hammer and stars.
Hi Angus, today I've updated Image32 with latest commit and something goes wrong with SVG rendering. In snapshow I've described the initial commit SHA and latest commit SHA. I've added my test program. PS: In all the Chinese and American flags don't shows hammer and stars.
Another info about latest git: SVGText := Char(#$FEFF) + ImageCollection.SVGIconItems.Items[I].SVGText; FSVGSupportReader.LoadFromString(SVGText); FSVGSupportReader.DrawImage(FSVGSupportImage, True); ImageCollection.SVGIconItems.Items[I].SVGText return a Unicode String (string) but to be rightly identified as eUnicodeLE when LoadFromString is used I need to add to string the prefix so GetXmlEncoding know what format is. Whithout this prefix GetXmlEncoding return eUnknown and string data is not correctly...
Another info about latest git: SVGText := Char(#$FEFF) + ImageCollection.SVGIconItems.Items[I].SVGText; FSVGSupportReader.LoadFromString(SVGText); FSVGSupportReader.DrawImage(FSVGSupportImage, True); ImageCollection.SVGIconItems.Items[I].SVGText return a Unicode String (string) but to be rightly identified as eUnicodeLE when LoadFromString is used I need to add to string the prefix so GetXmlEncoding know what format is. Whithout this prefix GetXmlEncoding return eUnknown and string data is not correctly...
Another info about latest git: SVGText := Char(#$FEFF) + ImageCollection.SVGIconItems.Items[I].SVGText; FSVGSupportReader.LoadFromString(SVGText); FSVGSupportReader.DrawImage(FSVGSupportImage, True); ImageCollection.SVGIconItems.Items[I].SVGText return a Unicode String (string) but to be rightly identified as eUnicodeLE when LoadFromString is used I need to add to string the prefix so GetXmlEncoding know what format is. Whithout this previs GetXmlEncoding return eUnknown and string data is not correctly...
!!! SOLVED !!! Unfortunately in some countries, as Italy in my case, the FormatSettings are different and forced initially by Windows settings. For example decimal dot 123.123 in Italian is 123,123 and all string to integer or string to float requires ',' char for decimals instead of '.' and thousand separtor is '.' instead of ','. Usually in my projects I force the decimal point to be . with: // sets decimal/thousand separator to English mode FormatSettings.DecimalSeparator := '.'; FormatSettings.ThousandSeparator...
!!! SOLVED !!! Unfortunately in some countries, as Italy in my case, the FormatSettings are different and forced initially by Windows settings. For example decimal dot 123.123 in Italian is 123,123 and all string to integer or string to float requires ',' char for decimals instead of '.' and thousand separtor is '.' instead of ','. Usually in my projects I force the decimal point to be . with: // sets decimal/thousand separator to English mode (this is not a smart action but I don't know because...
!!! SOLVED !!! Unfortunately in some countries, as Italy in my case, the FormatSettings are different and forced initially by Windows settings. For example decimal dot 123.123 in Italian is 123,123 and all string to integer or string to float requires ',' char for decimals instead of '.' and thousand separtor is '.' instead of ','. Usually in my projects I force the decimal point to be . with: FormatSettings.DecimalSeparator := '.'; because my projects use always English notations for numbers (is...
!!! SOLVED !!! Unfortunately in some countries, as Italy in my case, the FormatSettings are different and forced initially by Windows settings. For example decimal dot 123.123 in Italian is 123,123 and all string to integer or string to float requires ',' char for decimals instead of '.' and thousand separtor is '.' instead of ','. Usually in my projects I force the decimal point to be . with: FormatSettings.DecimalSeparator := '.'; because my projects use always English notations for numbers (is...
!!! SOLVED !!! Unfortunately in some countries, as Italy in my case, the FormatSettings are different. For example decimal dot 123.123 in Italian is 123,123 and all string to integer or string to float requires , instead of . Usually in my project I force the decimal point to be . with: FormatSettings.DecimalSeparator := '.'; because my projects use English notations (is a IDE development). In demo SVG1 / SVG2 and in my test program I don't have added the upon line and SVG importing fails (without...
I'm using Windows 10 Pro 20H2 (19042.1052). Also latest Svg101.zip doesn't work. I'm trying to debug but I don't know yet the library so is like catch a fly blinded :)
Ok not matter. AnyDesk is a free remote desktop system so if I give you my ID you can use my PC in your dekstop.
I you want I can share my dekstop with AnyDesk. For this we can chat and share the ID using telegram: @shineworld
I've extracted and copied EXE in Examples\SVG. Running it happends same things showed in my video. The library uses some DLL or external component which can be not aligned ?
I'm using: Delphi 10.4 and C++ 10.4 Update 1 I've made the GIT pull today morning (git log in attachemnts). This is what I see compiling SVG and SVG2 demos: https://youtu.be/rvmv0uTaSHs PS: Video is downloading and will take 10 min to finish
Hi Angus, at moment transparency works perfectly with latest git. I've tried to use TSVGReader but is not yet mature to show my SVG files. I've tried with SVG and SVG2 examples and almost all are empty drawed (I don't use font ineer). I've tried replacing my SVGCollection image with test.svg and then draw fine. SVG require some works :) Now I've to understand if and how to support Unicode test in Image32_TTF. I've tried but If I try to draw a unicode text the drawer draw ugly squares and destroy...
Hi Angus, at moment transparency works perfectly with latest git. I've tried to use TSVGReader but is not yet mature to show my SVG files. I've tried with SVG and SVG2 examples and almost all are empty drawed (I don't use font ineer). I've tried replacing my SVGCollection image with test.svg and then draw fine. SVG require some works :) Now I've to understand if and how to support Unicode test in Image32_TTF. I've tried but If I try to draw a unicode text the drawer draw ugly squares and destroy...
Hi Angus, at moment transparency works perfectly with latest git. I've tried to use TSVGReader but is not yet mature to show my SVG files. I've tried with SVG and SVG2 examples and almost all are empty drawed (I don't use font ineer). I've tried replacing my SVGCollection image with test.svg and then draw fine. SVG require some works :) Now I've to understand if and how to support Unicode test in Image32_TTF. I've tried but If I try to draw a unicode text the drawer draw ugly squares and destroy...
Hi Angus, thanks for helps. The code is in office so monday morning I will try your suggestions. I'm trying to migrate an already working project which use Ethea SVG Collections + AggPas drawing engine used to create a new set of Antialiased, SVG based components (Buttons, Knobs, etc). I've learnead about Image32 in Ethea SVGIconImageList Issue page where someone thinked to add your Image32 as DrawingEngine for the library. I'm using AggPas which work fine BUT lack of Unicode text support, and is...
At first congrats for library, is amazing. I'm moving some components which use AggPas as graphcics engine to Image32. I've a problem when I copy a TBitmap32 to a TImage32 and TBitmap32 is an image with transparency. Is a complex software where TBitmap32 is used a lot and it is not time to modify all the code. Bitmap := TBitmap32.Create(Trunc(RD.Width), Trunc(RD.Height)); try R := TRect.Create(0, 0, Bitmap.Width, Bitmap.Height); FImageCollection.Draw(Bitmap.Canvas, R, I, False); Image := TImage32.Create(Bitmap.Width,...
At first congrats for library, is amazing. I'm moving some components which use AggPas as graphcics engine to Image32. I've a problem when I copy a TBitmap32 to a TImage32 and TBitmap32 is an image with transparency. Is a complex software where TBitmap32 is used a lot and it is not time to modify all the code. Bitmap := TBitmap32.Create(Trunc(RD.Width), Trunc(RD.Height)); try R := TRect.Create(0, 0, Bitmap.Width, Bitmap.Height); FImageCollection.Draw(Bitmap.Canvas, R, I, False); Image := TImage32.Create(Bitmap.Width,...
At first congrats for library, is amazing. I'm moving some components which use AggPas as graphcics engine to Image32. I've a problem when I copy a TBitmap32 to a TImage32 and TBitmap32 is a PNG image with transparency. Is a complex software where TBitmap32 is used a lot and it is not time to modify all the code. Bitmap := TBitmap32.Create(Trunc(RD.Width), Trunc(RD.Height)); try R := TRect.Create(0, 0, Bitmap.Width, Bitmap.Height); FImageCollection.Draw(Bitmap.Canvas, R, I, False); Image := TImage32.Create(Bitmap.Width,...
At first congrats for library, is amazing. I'm moving some components which use AggPas as graphcics engine to Image32. I've a problem when I copy a TBitmap32 to a TImage32 and TBitmap32 is a PNG image with transparency. Is a complex software where TBitmap32 is used a lot and it is not time to modify all the code. Bitmap := TBitmap32.Create(Trunc(RD.Width), Trunc(RD.Height)); try R := TRect.Create(0, 0, Bitmap.Width, Bitmap.Height); FImageCollection.Draw(Bitmap.Canvas, R, I, False); Image := TImage32.Create(Bitmap.Width,...
Hi all, when I set transparency to 100% (full visible) I enable the Phong Shadder for Mesh (FreeForm). This works fine BUT strangely the Mesh Edges (TGLLines) disappears. This happens only with latest GLScene sources (I'm moved from delphi 7 very old library to newest with Sydney). It 's normal ? https://youtu.be/AlA8lXNI_wE
Hi all, I would like to understand if is possible and how to detect what face of a Mesh (TGLFreeForm) is clicked with the mouse. I've a very huge mesh object captured with laser scanning which need of manual adjustments in some faces Z height (due laser scan reflection errors). Thank you in advance for suggestions Best Regards Silverio
Actually there are two ways, that I know, to detect a picked object: Picked Object By Raycast GLSceneViewer.Buffer.GetPicketObject (use a mask on surfaces draw to detect object). In below code I'm looking for TFreeForm object in pick search but you can change to other types. procedure TGLSceneFrame.GLSceneViewerMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var PickedObject: TGLBaseSceneObject; // TODO: To complete, seem inacurate and slow!!! {$IFDEF EXPERIMENAL_RAY_CAST}...
Actually there are two ways that I know to detect a picked object: Picked Object By Raycast GLSceneViewer.Buffer.GetPicketObject (use a mask on surfaces draw to detect object). procedure TGLSceneFrame.GLSceneViewerMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var PickedObject: TGLBaseSceneObject; // TODO: To complete, seem inacurate and slow!!! {$IFDEF EXPERIMENAL_RAY_CAST} function GetPickedObjectRayCast(const Root: TGLBaseSceneObject; X, Y: Integer): TGLBaseSceneObject;...
To draw wires (lines) just Show object at runtime and change object material polygon mode with what you want (TGLPolygonMode = (pmFill, pmLines, pmPoints)) OBJ.Material.Material.PolygonMode := <polygon_mode>;
Take a look at: https://sourceforge.net/p/glscene/discussion/93605/thread/c84f978a5e/
I guess dll must be in right Windows path as in SetupDLL.bat @echo off echo Copying DLLs to the Windows System32 and SysWOW64 directories echo Copying nVidia CG DLLs rem win32 copy "%~dp0cg.dll" %SystemRoot%\SysWOW64\ copy "%~dp0cgGL.dll" %SystemRoot%\SysWOW64\ rem win64 copy "%~dp0cg.dll" %SystemRoot%\System32\ copy "%~dp0cgGL.dll" %SystemRoot%\System32\ echo. echo Copying SDL2 DLLs rem win32 copy "%~dp0sdl2_32.dll" %SystemRoot%\SysWOW64\sdl2_32.dll rem win64 copy "%~dp0sdl2_64.dll" %SystemRoot%\System32\sdl2_64.dll...
For me GLScene_Physics_DT don't install till I have installed related DLL. After installation of DLL of setup all workded fine with Rio 10.3.3. I've 10.4 at office PC so I will try after 31 Augutst.
Hi Pavel, I've successfully installed 2.0 in Rio 10.3.3. Very good job !!! :)