On Jan 30, 2010, at 11:54 AM, John M McIntosh wrote:
Ah, well here is an interesting issue for you to solve then.
Another good one to be aware of, thanks. It's not biting me currently, so I'm going to try to push forward with my current goals.
Cheers, Josh
On 2010-01-30, at 10:27 AM, Josh Gargus wrote:
Hi,
Here's a zip file that contains patches to SqueakFFIPrims (both Slang and C support files) and FFI-Kernels in order to support "manual surfaces", as embodied in the new class ExternalForm. There's a README in the zip file that describes how the changes fit together, so here I'll just describe the goal.
The intent is to have a subclass of Form, ExternalForm, that uses an arbitrary pointer as the location of its pixel-data. It achieves this by acting as a client of SurfacePlugin much like any other, with the added twist of a primitive that enables Squeak code to set/clear the pointer. This is useful when working with such APIs as OpenGL and OpenCL, which provide a "map-image" API for interacting with images which reside in GPU memory. For example, if you want to access the updated contents of an OpenCL image, you would call clEnqueueMapImage(). This returns a pointer to CPU-accessible memory; by using this as the pointer for an ExternalForm, we can seamlessly use the OpenCL image just like any other Squeak Form.
Cheers, Josh
<PatchesForExternalForm.zip>
--
John M. McIntosh johnmci@smalltalkconsulting.com Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================