This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
mgl:mglmetal [2022/09/06 14:16] joshryu0425 [Development status] |
mgl:mglmetal [2023/08/09 12:19] (current) |
||
|---|---|---|---|
| Line 131: | Line 131: | ||
| In case you do need to build it, there are three places to look these days (as of Spring 2022). | In case you do need to build it, there are three places to look these days (as of Spring 2022). | ||
| - | ==== mglMakeMetal.m ==== | + | ===== mglMakeMetal.m ===== |
| This builds most of the mex-functions for MGL, including functions for things like HID inputs and sounds. | This builds most of the mex-functions for MGL, including functions for things like HID inputs and sounds. | ||
| Line 138: | Line 138: | ||
| </code> | </code> | ||
| - | ==== mglMakeSocket.m ==== | + | ===== mglMakeSocket.m ===== |
| This builds mex-functions specifically for socket communications with the new mglMetal swift application. After building you can test the results with mglTestSocket.m. The test will open a pair of sockets and send a bunch of data between them, using various data types that the mglMetal Swift app supports. | This builds mex-functions specifically for socket communications with the new mglMetal swift application. After building you can test the results with mglTestSocket.m. The test will open a pair of sockets and send a bunch of data between them, using various data types that the mglMetal Swift app supports. | ||
| Line 147: | Line 147: | ||
| </code> | </code> | ||
| - | ==== mglMetal.app ==== | + | ===== mglMetal.app ===== |
| To build the standalone mglMetal Swift application, you need to use Xcode. From testing so far, it looks like you'll need macOS 10.15.7 Catalina or later, with Xcode 12.4 or later. | To build the standalone mglMetal Swift application, you need to use Xcode. From testing so far, it looks like you'll need macOS 10.15.7 Catalina or later, with Xcode 12.4 or later. | ||
| Line 172: | Line 172: | ||
| </code> | </code> | ||
| + | Note that the default setting for Xcode is to build debug binaries into the directory: | ||
| + | |||
| + | ~/Library/Developer/Xcode/DerivedData/Build/Products/Debug | ||
| + | |||
| + | So, mglMetalExecutableName now looks into that directory to see if there is a version of mglMetal that has a newer timestamp then the ones found in the mgl library. If so, it uses that, and will tell you it is doing that when you run mglOpen. | ||
| ====== Development status ===== | ====== Development status ===== | ||
| Development of MGL v3 with Metal is still in progress. Although we're not ready to declare v3 complete, a lot of functionality is in place. You might want to test it out! | Development of MGL v3 with Metal is still in progress. Although we're not ready to declare v3 complete, a lot of functionality is in place. You might want to test it out! | ||
| Line 201: | Line 206: | ||
| You can also look for the latest known [[https://github.com/justingardner/mgl/issues\ | issues at GitHub]]. | You can also look for the latest known [[https://github.com/justingardner/mgl/issues\ | issues at GitHub]]. | ||
| - | ==== Major functionality ==== | + | ===== Major functionality ===== |
| ^ Function name ^ Status ^ Notes ^ | ^ Function name ^ Status ^ Notes ^ | ||
| | mglOpen | working | Currently starts out as windowed only. Can we pass initial window state as command line arg? Or start out with window hidden?| | | mglOpen | working | Currently starts out as windowed only. Can we pass initial window state as command line arg? Or start out with window hidden?| | ||
| Line 220: | Line 225: | ||
| - | ==== Secondary priority functionality ==== | + | ===== Secondary priority functionality ===== |
| ^ Function name ^ Status ^ Notes ^ | ^ Function name ^ Status ^ Notes ^ | ||
| | mglFrameGrab.m | | Not working per se, but mglMetalSetRenderTarget.m and mglMetalReadTexture.m are working | | | mglFrameGrab.m | | Not working per se, but mglMetalSetRenderTarget.m and mglMetalReadTexture.m are working | | ||
| Line 234: | Line 239: | ||
| - | ==== Minor functionality ==== | + | ===== Minor functionality ===== |
| ^ Function name ^ Status ^ Notes ^ | ^ Function name ^ Status ^ Notes ^ | ||
| | mglFillOval.m | working | | | | mglFillOval.m | working | | | ||
| Line 250: | Line 255: | ||
| - | ==== Functionality not affected by Metal ==== | + | ===== Functionality not affected by Metal ===== |
| ^ Function name ^ Status ^ Notes ^ | ^ Function name ^ Status ^ Notes ^ | ||
| |mglSetGammaTable | | needs testing| | |mglSetGammaTable | | needs testing| | ||
| Line 281: | Line 286: | ||
| - | ==== Functionality no longer needed ==== | + | ===== Functionality no longer needed ===== |
| ^ Function name ^ Notes ^ Done ^ | ^ Function name ^ Notes ^ Done ^ | ||
| | mglBindTexture.m | Fast binding of textures. No need to continue to support | n/a| | | mglBindTexture.m | Fast binding of textures. No need to continue to support | n/a| | ||
| Line 288: | Line 293: | ||
| |mglFlushAndWait.m | No need to update / or provide as wrapper | Check | | |mglFlushAndWait.m | No need to update / or provide as wrapper | Check | | ||
| - | ==== Brainard Lab functionality ==== | + | ===== Brainard Lab functionality ===== |
| ^ Function name ^ Notes ^ Done ^ | ^ Function name ^ Notes ^ Done ^ | ||
| | mglBindFrameBufferObject.m | Chris Broussard function | | | | mglBindFrameBufferObject.m | Chris Broussard function | | | ||
| Line 358: | Line 363: | ||
| | mglPolygon | vertices with color components | | Draw the given vertices as a triangle strip. | | | mglPolygon | vertices with color components | | Draw the given vertices as a triangle strip. | | ||
| | mglArcs | vertices with color, size, and shape components | | Draw the given vertices as points, with various curved shape options. | | | mglArcs | vertices with color, size, and shape components | | Draw the given vertices as points, with various curved shape options. | | ||
| - | | mglUpdateTexture | texture number, width, height, and rgba float texture data | | Replace the given texture's contents, to be displayed during this frame.| | + | | mglUpdateTexture | texture number, width, height, and rgba float texture data | | Replace the given texture's contents, to be displayed during this frame. | |