Can this be rephrased in terms of

"I would like to find or write a function that I can call periodically
from my own processing loop, that handles all the Cocoa activities and
dispatching of events, such that I do not have to use the Cocoa
provided runloop ?"

On Thu, Nov 5, 2009 at 3:56 PM, Kevin Brandon <kjbron...@gmail.com> wrote:
> Hi,
>
> I have been working on a somewhat game engine (not really, but acts
> like one) and currently involved in porting this to different
> platforms. The engine works perfectly fine on Linux, FreeBSD and
> Windows so far.
>
> It is comprised of following parts:
> 1. Entry point (e.g. main or WinMain)
> 2. It then explicitly loads platform run-time library, depending on
> the platform (in our case, it could be libCocoaAPI.dylib)
> 3. Then it creates windows and it should handle messages (input
> messages, such as mouse and keyboard, and it should post frame events
> when it's idle). All localization and/or platform-specific resource
> handling is done within this shared library.
> 4. It may then quit.
>
> This library is shared among different projects (which may serve for
> different purposes).
>
> Loading a library, creating windows and handling messages are fine on
> Win32, Linux and FreeBSD (and on Carbon, IIRC), but we couldn't find
> out a proper way to do it under Cocoa.
>
> We need something very similar to that of SDL:
> while (true)
> {
>  if (PollEvents())
>  {
>    switch (GetEvent())
>    {
>      case MouseEvent: HandleMouseEvent(); break;
>      case WindowResizeEvent: HandleWindowResize(); break;
>      default: break;
>    }
>  }
>  else
>    HandleFrameEvent();
> }
>
> This function, however, must be implemented within a Cocoa dynamic library.
>
> Is there a sample code doing this already? We already have different
> Xcode projects for UI and this windowing framework. But we do not know
> what to add into Xcode shared library (windowing framework) to work
> with the application. Application's entry point is in C++, no
> different than following:
>
> typedef int (*Platform_Run)(int, char**);
> int main(int argc, char* argv[])
> {
>  void* pPlatformRuntime = dlopen("libMacRuntime.dylib", RTLD_NOW);
>  Platform_Runtime = (int(*)(int, char**))dlsym(pPlatformRuntime,
> "Platform_Run");
>  int nRet = Platform_Run(argc, argv);
>  dlclose(pPlatformRuntime);
>  return nRet;
> }
>
> My questions are:
> 1. whether it's possible to implement entire message loop within a
> shared object?
> 2. whether it's possible to access those messages from another shared object?
> 2. if so, what kind of Xcode project setup should we prepare (i.e.
> should we add an Application XIB, or Empty XIB, or Window XIB)
>
> I'd be very happy, if you could give us an idea.
>
> Regards.
> Jason
> _______________________________________________
>
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/rbarris%40gmail.com
>
> This email sent to rbar...@gmail.com
>
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to