tag:blogger.com,1999:blog-1392831648878588806.post6938073588263849719..comments2022-04-27T19:46:55.651+03:00Comments on The Itinerant Developer: FireMonkey canvas classes and a bugfix to speed up your appsDavehttp://www.blogger.com/profile/05039004653244724673noreply@blogger.comBlogger14125tag:blogger.com,1999:blog-1392831648878588806.post-35451788757809084452014-05-19T13:49:23.962+03:002014-05-19T13:49:23.962+03:00Hi Michael,
You either have to patch the FMX sour...Hi Michael,<br /><br />You either have to patch the FMX source directly as in this article (not recommended) or you can use a unit I wrote described in the followup to this blog post: http://itinerantdeveloper.blogspot.com/2014/01/a-unit-to-enable-direct2d-in-firemonkey.html . There is a link to download the unit at the end of that post, and the post contains instructions about how to use it (Davehttps://www.blogger.com/profile/05039004653244724673noreply@blogger.comtag:blogger.com,1999:blog-1392831648878588806.post-88226476528849545132014-05-19T01:36:35.095+03:002014-05-19T01:36:35.095+03:00Where can I find source code ?
ThanksWhere can I find source code ?<br />ThanksAnonymoushttps://www.blogger.com/profile/18282281815867269760noreply@blogger.comtag:blogger.com,1999:blog-1392831648878588806.post-87801738164216073732014-01-27T15:55:08.168+02:002014-01-27T15:55:08.168+02:00Hi Dave,
Becoming a technology partner is an excel...Hi Dave,<br />Becoming a technology partner is an excellent way as they do give you access to all versions of Delphi for developing your components. At the time (~10 years ago), I remember it as being pretty easy to become a partner (and I have been one ever since). I don't know how easy it is now though. Without that perk, I could not afford to keep up on Delphi purchases.<br />TomTom Grubbhttps://www.blogger.com/profile/13874942760226256823noreply@blogger.comtag:blogger.com,1999:blog-1392831648878588806.post-79323561210952992682014-01-23T14:39:03.664+02:002014-01-23T14:39:03.664+02:00François, I did just see that update! I will try ...François, I did just see that update! I will try to have a closer look tonight. Thanks very much for submitting changes, btw - I appreciate it!<br /><br />XE5: I would love to, but I don't have Software Assurance and can't justify buying it myself. You see, I have access to some versions of Delphi through work, but the other versions I have I own myself - and outside of work, stuff likeDavehttps://www.blogger.com/profile/05039004653244724673noreply@blogger.comtag:blogger.com,1999:blog-1392831648878588806.post-30704990740490375292014-01-22T14:19:46.834+02:002014-01-22T14:19:46.834+02:00Dave, you should urgently manage to get the latest...Dave, you should urgently manage to get the latest Delphi version (XE5 upd2) as per today since FireMonkey code evolves quickly. Did you see the update I made to you source code so that it compiles and works with XE5?FPiettehttps://www.blogger.com/profile/08260455911271500004noreply@blogger.comtag:blogger.com,1999:blog-1392831648878588806.post-35638536069711823432014-01-21T18:51:05.936+02:002014-01-21T18:51:05.936+02:00A new version of the Mandelbrot viewer? Not yet. M...A new version of the Mandelbrot viewer? Not yet. Monday was the first day I've had time to look at it, and I spent the evening figuring out what I needed to know in order to fix it. I first had to figure out how to get it to use Direct2D to reproduce the issue, and then I became curious why it wasn't using D2D already on apparently perfectly fine hardware, and then... a long diversion Davehttps://www.blogger.com/profile/05039004653244724673noreply@blogger.comtag:blogger.com,1999:blog-1392831648878588806.post-52932215947783872002014-01-21T18:13:06.588+02:002014-01-21T18:13:06.588+02:00Eugene, looks like I replied inline rather than di...Eugene, looks like I replied inline rather than directly to you, sorry. See the reply below.Davehttps://www.blogger.com/profile/05039004653244724673noreply@blogger.comtag:blogger.com,1999:blog-1392831648878588806.post-52713802580609131112014-01-21T17:02:54.195+02:002014-01-21T17:02:54.195+02:00Interesting post.
Another side-effect of GDI+ is ...Interesting post.<br /><br />Another side-effect of GDI+ is the "dancing text", due to a GDI+ bug when evaluation text dimensions for common fonts at small size (which everyone but FMX works around by using plain old GDI for ClearText output when DirectWrite is not available)<br /><br /><br />Is there a new version available with the accelerated canvas?Erichttps://www.blogger.com/profile/05912696305224378407noreply@blogger.comtag:blogger.com,1999:blog-1392831648878588806.post-47998118537443713062014-01-21T12:17:07.765+02:002014-01-21T12:17:07.765+02:00Hi Eugene - a reply from the architect himself!
I...Hi Eugene - a reply from the architect himself!<br /><br />If I understand you correctly, as you saying that TContext3D (through TCanvasGpu) should be used for DX9 hardware? TContext3D - at least the DX9 version - doesn't work well at all, as you can see from the screenshot in the section about it. Direct2D should work on DX9-level hardware through the DX10-but-DX9.1-feature-level flag, and Davehttps://www.blogger.com/profile/05039004653244724673noreply@blogger.comtag:blogger.com,1999:blog-1392831648878588806.post-24094498139826398222014-01-21T07:25:21.100+02:002014-01-21T07:25:21.100+02:00I have one comment regarding this line - "It&...I have one comment regarding this line - "It's this else statement that is problematic. It basically says to use WARP if it's supported (fine) but only if Direct3D9-class hardware is not supported (not fine.)" <br /><br />TContext3D is designed to use mostly for 3D purpose. In this case use hardware-DX9 is preferable than use WARP. Anonymoushttps://www.blogger.com/profile/18092953248795358615noreply@blogger.comtag:blogger.com,1999:blog-1392831648878588806.post-14050712394107646692014-01-20T13:20:11.112+02:002014-01-20T13:20:11.112+02:00Good point. I've edited to reflect this. Thank...Good point. I've edited to reflect this. Thanks.Davehttps://www.blogger.com/profile/05039004653244724673noreply@blogger.comtag:blogger.com,1999:blog-1392831648878588806.post-62873774478708430382014-01-20T13:19:07.465+02:002014-01-20T13:19:07.465+02:00Yes (and thanks.) Edited to post to reflect this a...Yes (and thanks.) Edited to post to reflect this and also make it clearer about when D2D can have hardware support or not - currently the code switches between hardware D3D10 and software WARP support, which is safe and works well. It is possible and untested that you can force it to be instantiated with a D3D9.1 feature level and it will still work, which will give hardware acceleration on that Davehttps://www.blogger.com/profile/05039004653244724673noreply@blogger.comtag:blogger.com,1999:blog-1392831648878588806.post-60500680391040205452014-01-20T06:37:46.718+02:002014-01-20T06:37:46.718+02:00When editing FireMonkey source, wouldn't it ma...When editing FireMonkey source, wouldn't it make more sense to comment out the entire "TCustomDX9Context.HardwareSupported" check instead of just the offending "not" in front of it? If (can create a D3D hardware device) then ... else if (can create WARP) then ...Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-1392831648878588806.post-13934554221943802582014-01-20T04:15:17.251+02:002014-01-20T04:15:17.251+02:00Since your patching an issue with a specific versi...Since your patching an issue with a specific version of Delphi which may be corrected in a future release, I also suggest surrounding the include with a version specific ifdef against the current compiler version...possibly also a forced error for compiler versions greater than the current tested version, requiring modifications after verifying the problem still exists in the next version. SKamradthttps://www.blogger.com/profile/16762334852308664245noreply@blogger.com