Well here's the documentation for ogre:
"RenderWindow * createRenderWindow (const String &name, unsigned int width, unsigned int height, bool fullScreen, const NameValuePairList *miscParams=0) ... miscParams A NameValuePairList describing the other parameters for the new rendering window. Options are case sensitive. Unrecognised parameters will be ignored silently. These values might be platform dependent, but these are present for all platorms unless indicated otherwise: ... Key: "externalWindowHandle" [API specific] Description: External window handle, for embedding the OGRE context Values: positive integer for W32 (HWND handle) poslong:posint:poslong (display*:screen:windowHandle) or poslong:posint:poslong:poslong (display*:screen:windowHandle:XVisualInfo*) for GLX Default: 0 (None)" NameValuePairList only accepts strings. It works on windows just fine as such: set["externalWindowHandle"] = str(info["window"]) But yeah, the glx portion doesn't really make any sense to me. I guess this is more a python-ogre/ogre issue than a pygame issue though.