Craig Chapman

Member since: Thursday, 16 April 2015
Last login: 2 months ago
Profile viewed: 3,075 views

Your Rank: 90
Points: 4

My regular readers may be aware that over the past two or three months, I’ve been working on building a new video game engine for Delphi. I’ve also had many other demands on my time, which has meant that I’ve not posted in a ...

?Here’s a little Déjà vu for regular readers of my blog. One of my customers emailed me with an interesting problem this morning. “I need to be able to peek into a video file, specifically a .mp4 file, and determine if ...

One of my customers emailed me with an interesting problem this morning. “I need to be able to peek into a video file, specifically a .mp4 file, and determine if it’s PAL or NTSC.” This seemed like a ...

Craig Chapman created new blog post Delphi Xlib headers in Programming 3 months ago

Back in November for CodeRage-12, I demonstrated a partial translation of the Xlib headers for X11. At that time I explained that I’d not completed the he ...

In case you missed it, here’s the Delphi podcast for Feb 27th 2018 – Delphi Game Engines (skip to about 9:30 to spare yourself the technical difficulties with the stream) ...

As many of you may already be aware, I am now a regular guest on Jim McKeeth’s Delphi podcast along side David Millington. The pod-casts recently became video streamed, and have adopted a more structured “Themed Episode̶ ...

Craig Chapman posted a comment on Lockless Multi-Threading in Delphi 3 months ago

FYI: If you re-watch the last 30 seconds, from time index 35:20, I explain what I just posted in my last comment. Note that the 'test thread' is a class derived from TThread - and note the difference between the 'InPipe' and 'OutPipe' properties. Mes

Craig Chapman posted a comment on Lockless Multi-Threading in Delphi 3 months ago

I think you're missing the second thread in the application. The GUI thread pushes a message into a ring buffer, where an aux thread pulls it, the aux thread then pushes that message into a second ring buffer, where the GUI thread pulls it off. Ther

Morten Lassen is friends with Craig Chapman

Craig Chapman posted a comment on Lockless Multi-Threading in Delphi 3 months ago

In modern versions of Delphi, you should switch to DisposeOf() always. DisposeOf exists to handle differences between the desktop compilers (without ARC memory management) and the mobile compilers (with ARC). Technically if your code will never be us

Craig Chapman posted a comment on Lockless Multi-Threading in Delphi 3 months ago

It's true that the UI thread does both a push and a pull, but those operations are on two different arrays. The second thread is simply copying messages from the first array to the second. While I agree this is a very simple example, it demonstrates

Jay M59544 is friends with Craig Chapman

Craig Chapman posted a comment on Lockless Multi-Threading in Delphi 3 months ago

Two independent threads put messages into, and remove messages from a dynamic array, allowing communication between those threads. This happens without using locking mechanisms such as TCriticalSection. There is literally a descendant of TThread in t

Craig Chapman created new blog post The Ultimate Developer Keyboard? in Programming 4 months ago

I never really thought of my keyboard as an important accessory, but rather, as that essential item that you buy for the cheapest price possible and be done with. I mean, a keyboard is a keyboard right? Well, I discovered that your choice of ...

Craig Chapman created new blog post Lockless Multi-Threading in Delphi in Programming 4 months ago

In this video, I demonstrate a technique for communicating between threads in a Delphi application, without using typical locking mechanisms such as critical sections. Best Viewed in Full Screen (Recorded 1080p).

In this video, an overview of a reporting system fed from a Delphi application. Best Viewed full-screen. http://chapmanworld.com/wp-content/uploads/201 ...