3 ms·
They are just C-APIs which have a V-table, and Odin added a feature specifically to make dealing with them easier in the language too. e.g. https://pkg.odin-la
by gingerBill 3y ago
They are just C-APIs which have a V-table, and Odin added a feature specifically to make dealing with them easier in the language too.
e.g. https://pkg.odin-lang.org/vendor/directx/d3d12/#ICommandQueue https://pkg.odin-lang.org/vendor/directx/d3d12/#ICommandQueu...
* command_queue^.id3d12commandqueue_vtable^.BeginEvent(command_queue, MetaData, pData, Size)
* command_queue.id3d12commandqueue_vtable.BeginEvent(command_queue, MetaData, pData, Size) // no need for the explicit dereferencing with ^
* command_queue.BeginEvent(command_queue, MetaData, pData, Size) // the vtable has `using` on it
* command_queue->BeginEvent(MetaData, pData, Size) // the -> operator will pass the value into the first argument
The `->` operator was added specifically for COM API stuff, and has been useful for the Objective-C stuff too.