2

I understand that it's possible to write a plugin for a browser which lets you render to the browser window, so you can effectively run a normal app within the browser. NOT using JS or client technology, but a plugin which basically wraps your application - in our case C++ which does 3D rendering using DirectX or OpenGL.

I know that we'd have to have versions for both IE and other browsers but how does this work - in Windows-speak do we get a HWND through the plugin architecture or is it more complex?

Do you have to write a version of the plugin compiled for each platform - Win/Mac/Linux, since a plugin is a binary I assume this is the case, so you have one version for IE and then multiple versions for FF, Chrome, Safari (which share the same plugin setup IIRC)

With FF - is this an example of a plugin or an extension specifically?

An example of what I mean is QuakeLive - proper 3D rendering within the browser. We're actually using Ogre (cross-platform C++) but this uses Direct3D/OpenGL so it's the same thing.

Mr. Boy
  • 60,845
  • 93
  • 320
  • 589

4 Answers4

2

Things like QuakeLive can be done rather quite simply with Google's NativeClient SDK. It abstracts away the whole plugin architecture so that you can focus on writing your software, and provides support for nearly all plugin-capable browsers on Windows, Mac OS X, and Linux, portably. The user installs the NaCl plugin (which is included in some versions of Chrome and Chromium), and your software runs inside NaCl, seamlessly on all supported platforms, from a single binary.

Note that you can use OpenGL portably from within NaCl, but not DirectX. Future versions will also support ARM and x86_64 with technology from the LLVM project.

greyfade
  • 24,948
  • 7
  • 64
  • 80
  • 1
    Isn't this Chrome-specific? Seems like that gives us _more_ work, especially if you have to port code to it in any way? If it's not cross-browser we might as well write a regular plugin. – Mr. Boy Jan 15 '11 at 00:34
  • They at least *used* to have plugins for other browsers. – greyfade Jan 15 '11 at 00:41
2

FireBreath is a great cross-platform, cross-browser library for developing C++ browser plugins.

Mr. Boy
  • 60,845
  • 93
  • 320
  • 589
0

Flash Player 11 provides true 3D support via Stage API over DirectX, OpenGL or whatever available at the device: http://techzoom.org/adobe-flash-player-11-air-3-beta-stage3d-and-64bit-support-on-linux-mac-and-windows/ Its in beta now, so user needs to install it manually, but when Adobe release it then majority of browsers will provide true 3D support instantly. Latest Away3D beta already supports Stage API.

-2

I have a need to get some of this done soon, so if anyone here is an expert on this please look me up.

Steve Bell Archiform 3D animation studio