Welcome, Guest. Please login or register.

Author Topic: GLFW (OpenGL toolkit) port for AmigaOS  (Read 15216 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline alx

Re: GLFW port for AmigaOS
« on: May 14, 2003, 02:38:20 PM »
Quote
So how are things supposed to work under OS4, for instance?


Here's an extract from the OS4 features list about the new library model:

Quote
New library model

ExecSG sports a new model for shared libraries. The old model will remain to support 68k libraries. PPC native libraries will be organized slightly different: The library base is still there (and looking the same as before) but the jump table only contains 68k functionality (for compatibility). PPC native functionality is provided by Interfaces:

 An Interface can be thought of as a separate jumptable, containing pointers to the actual library functions.

 An Interface can have its own data area in addition to that of the library base.

 An Interface can be shared among tasks (like a library) but may also be created as a private
instance, allowing instance data to be stored in it (similar to the old SAS/C method of duplicatingthe library base). A task can also create multiple instances of the same interface with each interface having its own data (essentially like real objects).

 Reference counting is used to work around stale pointer problems.

 A library can export any number of interfaces. For example, ExecSG exports the interfaces
"main", "utility" and "mmu", which represent the main API, the integrated utility.library and the
special MMU interface.

 A library can export the same interface in multiple versions thus allowing for full backward
compatibility.

 Interfaces can be modified with SetMethod (like SetFunction), allowing "morphing" interfaces
that can efficiently adapt to internal state changes. For example, expansion.library uses this in its PCI interface to adapt a PCI interface to the actual hardware.

 Interfaces can also be created in such a way that they are protected against patching. This is
essential for services like SSL (or any security-sensitive service).

 Interfaces can be used to write Object-oriented libraries.

 Interfaces are conceptually similar to component programming models.


That's not very detailed, and seeing as I've never done any programming on AmigaOS, I've no idea if that'll be any use to you.