pybullet, use eglPlugin statically instead of dynamic loading an Extension -DSTATIC_EGLRENDERER_PLUGIN
Fix compile errors of pybullet on Windows.
This commit is contained in:
@@ -4,6 +4,11 @@
|
|||||||
#include "ShapeData.h"
|
#include "ShapeData.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef BT_USE_EGL
|
||||||
|
#include "EGLOpenGLWindow.h"
|
||||||
|
#else
|
||||||
|
#endif //BT_USE_EGL
|
||||||
|
|
||||||
#ifdef B3_USE_GLFW
|
#ifdef B3_USE_GLFW
|
||||||
#include "GLFWOpenGLWindow.h"
|
#include "GLFWOpenGLWindow.h"
|
||||||
#else
|
#else
|
||||||
@@ -19,10 +24,6 @@
|
|||||||
//let's cross the fingers it is Linux/X11
|
//let's cross the fingers it is Linux/X11
|
||||||
#include "X11OpenGLWindow.h"
|
#include "X11OpenGLWindow.h"
|
||||||
#define BT_USE_X11 // for runtime backend selection, move to build?
|
#define BT_USE_X11 // for runtime backend selection, move to build?
|
||||||
#ifdef BT_USE_EGL
|
|
||||||
#include "EGLOpenGLWindow.h"
|
|
||||||
#else
|
|
||||||
#endif //BT_USE_EGL
|
|
||||||
#endif //_WIN32
|
#endif //_WIN32
|
||||||
#endif//__APPLE__
|
#endif//__APPLE__
|
||||||
#endif //B3_USE_GLFW
|
#endif //B3_USE_GLFW
|
||||||
|
|||||||
@@ -68,6 +68,11 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef STATIC_EGLRENDERER_PLUGIN
|
||||||
|
#include "plugins/eglPlugin/eglRendererPlugin.h"
|
||||||
|
#endif//STATIC_EGLRENDERER_PLUGIN
|
||||||
|
|
||||||
|
|
||||||
#ifndef SKIP_STATIC_TINYRENDERER_PLUGIN
|
#ifndef SKIP_STATIC_TINYRENDERER_PLUGIN
|
||||||
#include "plugins/tinyRendererPlugin/tinyRendererPlugin.h"
|
#include "plugins/tinyRendererPlugin/tinyRendererPlugin.h"
|
||||||
#endif
|
#endif
|
||||||
@@ -1709,10 +1714,20 @@ struct PhysicsServerCommandProcessorInternalData
|
|||||||
}
|
}
|
||||||
#endif //ENABLE_STATIC_GRPC_PLUGIN
|
#endif //ENABLE_STATIC_GRPC_PLUGIN
|
||||||
|
|
||||||
|
#ifdef STATIC_EGLRENDERER_PLUGIN
|
||||||
|
{
|
||||||
|
int renderPluginId = m_pluginManager.registerStaticLinkedPlugin("eglRendererPlugin", initPlugin_eglRendererPlugin, exitPlugin_eglRendererPlugin, executePluginCommand_eglRendererPlugin,0,0,getRenderInterface_eglRendererPlugin,0);
|
||||||
|
m_pluginManager.selectPluginRenderer(renderPluginId);
|
||||||
|
}
|
||||||
|
#endif//STATIC_EGLRENDERER_PLUGIN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef SKIP_STATIC_TINYRENDERER_PLUGIN
|
#ifndef SKIP_STATIC_TINYRENDERER_PLUGIN
|
||||||
|
{
|
||||||
int renderPluginId = m_pluginManager.registerStaticLinkedPlugin("tinyRendererPlugin", initPlugin_tinyRendererPlugin, exitPlugin_tinyRendererPlugin, executePluginCommand_tinyRendererPlugin,0,0,getRenderInterface_tinyRendererPlugin,0);
|
int renderPluginId = m_pluginManager.registerStaticLinkedPlugin("tinyRendererPlugin", initPlugin_tinyRendererPlugin, exitPlugin_tinyRendererPlugin, executePluginCommand_tinyRendererPlugin,0,0,getRenderInterface_tinyRendererPlugin,0);
|
||||||
m_pluginManager.selectPluginRenderer(renderPluginId);
|
m_pluginManager.selectPluginRenderer(renderPluginId);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,10 +13,6 @@ subject to the following restrictions:
|
|||||||
|
|
||||||
|
|
||||||
#include "eglRendererVisualShapeConverter.h"
|
#include "eglRendererVisualShapeConverter.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "../Importers/ImportURDFDemo/URDFImporterInterface.h"
|
#include "../Importers/ImportURDFDemo/URDFImporterInterface.h"
|
||||||
#include "btBulletCollisionCommon.h"
|
#include "btBulletCollisionCommon.h"
|
||||||
#include "../Importers/ImportObjDemo/LoadMeshFromObj.h"
|
#include "../Importers/ImportObjDemo/LoadMeshFromObj.h"
|
||||||
@@ -251,7 +247,8 @@ void EGLRendererVisualShapeConverter::setLightSpecularCoeff(float specularCoeff)
|
|||||||
m_data->m_hasLightSpecularCoeff = true;
|
m_data->m_hasLightSpecularCoeff = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void convertURDFToVisualShape(const UrdfShape* visual, const char* urdfPathPrefix, const btTransform& visualTransform, btAlignedObjectArray<GLInstanceVertex>& verticesOut, btAlignedObjectArray<int>& indicesOut, btAlignedObjectArray<MyTexture2>& texturesOut, b3VisualShapeData& visualShapeOut)
|
///todo: merge into single file with TinyRendererVisualShapeConverter
|
||||||
|
static void convertURDFToVisualShape2(const UrdfShape* visual, const char* urdfPathPrefix, const btTransform& visualTransform, btAlignedObjectArray<GLInstanceVertex>& verticesOut, btAlignedObjectArray<int>& indicesOut, btAlignedObjectArray<MyTexture2>& texturesOut, b3VisualShapeData& visualShapeOut)
|
||||||
{
|
{
|
||||||
|
|
||||||
visualShapeOut.m_visualGeometryType = visual->m_geometry.m_type;
|
visualShapeOut.m_visualGeometryType = visual->m_geometry.m_type;
|
||||||
@@ -737,8 +734,8 @@ void EGLRendererVisualShapeConverter::convertVisualShapes(
|
|||||||
visualShape.m_rgbaColor[2] = rgbaColor[2];
|
visualShape.m_rgbaColor[2] = rgbaColor[2];
|
||||||
visualShape.m_rgbaColor[3] = rgbaColor[3];
|
visualShape.m_rgbaColor[3] = rgbaColor[3];
|
||||||
{
|
{
|
||||||
B3_PROFILE("convertURDFToVisualShape");
|
B3_PROFILE("convertURDFToVisualShape2");
|
||||||
convertURDFToVisualShape(vis, pathPrefix, localInertiaFrame.inverse()*childTrans, vertices, indices, textures, visualShape);
|
convertURDFToVisualShape2(vis, pathPrefix, localInertiaFrame.inverse()*childTrans, vertices, indices, textures, visualShape);
|
||||||
}
|
}
|
||||||
m_data->m_visualShapes.push_back(visualShape);
|
m_data->m_visualShapes.push_back(visualShape);
|
||||||
|
|
||||||
|
|||||||
64
setup.py
64
setup.py
@@ -42,9 +42,11 @@ CXX_FLAGS += '-DBT_USE_DOUBLE_PRECISION '
|
|||||||
CXX_FLAGS += '-DBT_ENABLE_ENET '
|
CXX_FLAGS += '-DBT_ENABLE_ENET '
|
||||||
CXX_FLAGS += '-DBT_ENABLE_CLSOCKET '
|
CXX_FLAGS += '-DBT_ENABLE_CLSOCKET '
|
||||||
CXX_FLAGS += '-DB3_DUMP_PYTHON_VERSION '
|
CXX_FLAGS += '-DB3_DUMP_PYTHON_VERSION '
|
||||||
|
CXX_FLAGS += '-DSTATIC_EGLRENDERER_PLUGIN ' #comment to disable static egl plugin
|
||||||
CXX_FLAGS += '-DBT_USE_EGL ' # uncomment for EGL (old EGL versions fail)
|
CXX_FLAGS += '-DBT_USE_EGL ' # uncomment for EGL (old EGL versions fail)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# libraries += [current_python]
|
# libraries += [current_python]
|
||||||
|
|
||||||
libraries = []
|
libraries = []
|
||||||
@@ -405,6 +407,12 @@ sources = ["examples/pybullet/pybullet.c"]\
|
|||||||
+["examples/ThirdPartyLibs/Gwen/Platforms/Windows.cpp"]\
|
+["examples/ThirdPartyLibs/Gwen/Platforms/Windows.cpp"]\
|
||||||
+["examples/ThirdPartyLibs/Gwen/Renderers/OpenGL_DebugFont.cpp"]\
|
+["examples/ThirdPartyLibs/Gwen/Renderers/OpenGL_DebugFont.cpp"]\
|
||||||
|
|
||||||
|
|
||||||
|
if 'STATIC_EGLRENDERER_PLUGIN' in CXX_FLAGS:
|
||||||
|
sources += ['examples/SharedMemory/plugins/eglPlugin/eglRendererPlugin.cpp']\
|
||||||
|
+ ['examples/SharedMemory/plugins/eglPlugin/eglRendererVisualShapeConverter.cpp']
|
||||||
|
|
||||||
|
|
||||||
if _platform == "linux" or _platform == "linux2":
|
if _platform == "linux" or _platform == "linux2":
|
||||||
libraries += ['dl','pthread']
|
libraries += ['dl','pthread']
|
||||||
CXX_FLAGS += '-D_LINUX '
|
CXX_FLAGS += '-D_LINUX '
|
||||||
@@ -413,8 +421,7 @@ if _platform == "linux" or _platform == "linux2":
|
|||||||
CXX_FLAGS += '-DGLEW_DYNAMIC_LOAD_ALL_GLX_FUNCTIONS=1 '
|
CXX_FLAGS += '-DGLEW_DYNAMIC_LOAD_ALL_GLX_FUNCTIONS=1 '
|
||||||
CXX_FLAGS += '-DDYNAMIC_LOAD_X11_FUNCTIONS '
|
CXX_FLAGS += '-DDYNAMIC_LOAD_X11_FUNCTIONS '
|
||||||
CXX_FLAGS += '-DHAS_SOCKLEN_T '
|
CXX_FLAGS += '-DHAS_SOCKLEN_T '
|
||||||
CXX_FLAGS += '-fno-inline-functions-called-once '
|
CXX_FLAGS += '-fno-inline-functions-called-once'
|
||||||
CXX_FLAGS += '-fPIC ' # for plugins
|
|
||||||
sources = sources + ["examples/ThirdPartyLibs/enet/unix.c"]\
|
sources = sources + ["examples/ThirdPartyLibs/enet/unix.c"]\
|
||||||
+["examples/OpenGLWindow/X11OpenGLWindow.cpp"]\
|
+["examples/OpenGLWindow/X11OpenGLWindow.cpp"]\
|
||||||
+["examples/ThirdPartyLibs/glad/gl.c"]\
|
+["examples/ThirdPartyLibs/glad/gl.c"]\
|
||||||
@@ -430,6 +437,7 @@ elif _platform == "win32":
|
|||||||
print("win32!")
|
print("win32!")
|
||||||
libraries += ['Ws2_32','Winmm','User32','Opengl32','kernel32','glu32','Gdi32','Comdlg32']
|
libraries += ['Ws2_32','Winmm','User32','Opengl32','kernel32','glu32','Gdi32','Comdlg32']
|
||||||
CXX_FLAGS += '-DWIN32 '
|
CXX_FLAGS += '-DWIN32 '
|
||||||
|
CXX_FLAGS += '-D_WIN32 '
|
||||||
CXX_FLAGS += '-DGLEW_STATIC '
|
CXX_FLAGS += '-DGLEW_STATIC '
|
||||||
sources = sources + ["examples/ThirdPartyLibs/enet/win32.c"]\
|
sources = sources + ["examples/ThirdPartyLibs/enet/win32.c"]\
|
||||||
+["examples/OpenGLWindow/Win32Window.cpp"]\
|
+["examples/OpenGLWindow/Win32Window.cpp"]\
|
||||||
@@ -480,56 +488,6 @@ print("packages")
|
|||||||
print(find_packages('examples/pybullet/gym'))
|
print(find_packages('examples/pybullet/gym'))
|
||||||
print("-----")
|
print("-----")
|
||||||
|
|
||||||
egl_renderer_sources = \
|
|
||||||
["examples/SharedMemory/plugins/eglPlugin/eglRendererVisualShapeConverter.cpp"]\
|
|
||||||
+["examples/SharedMemory/plugins/eglPlugin/eglRendererPlugin.cpp"]\
|
|
||||||
+["examples/Importers/ImportColladaDemo/LoadMeshFromCollada.cpp"]\
|
|
||||||
+["examples/Importers/ImportObjDemo/LoadMeshFromObj.cpp"]\
|
|
||||||
+["examples/Importers/ImportMeshUtility/b3ImportMeshUtility.cpp"]\
|
|
||||||
+["examples/Importers/ImportObjDemo/Wavefront2GLInstanceGraphicsShape.cpp"]\
|
|
||||||
+["examples/TinyRenderer/geometry.cpp"]\
|
|
||||||
+["examples/TinyRenderer/model.cpp"]\
|
|
||||||
+["examples/TinyRenderer/tgaimage.cpp"]\
|
|
||||||
+["examples/TinyRenderer/our_gl.cpp"]\
|
|
||||||
+["examples/TinyRenderer/TinyRenderer.cpp"]\
|
|
||||||
+["examples/ThirdPartyLibs/Wavefront/tiny_obj_loader.cpp"]\
|
|
||||||
+["examples/ThirdPartyLibs/stb_image/stb_image.cpp"]\
|
|
||||||
+["examples/ThirdPartyLibs/tinyxml2/tinyxml2.cpp"]\
|
|
||||||
+["examples/OpenGLWindow/SimpleCamera.cpp"]\
|
|
||||||
+["examples/Utils/b3Clock.cpp"]\
|
|
||||||
+["examples/Utils/b3ResourcePath.cpp"]\
|
|
||||||
+["src/BulletCollision/CollisionShapes/btShapeHull.cpp"]\
|
|
||||||
+["src/BulletCollision/CollisionShapes/btConvexHullShape.cpp"]\
|
|
||||||
+["src/BulletCollision/CollisionShapes/btBoxShape.cpp"]\
|
|
||||||
+["src/BulletCollision/CollisionShapes/btSphereShape.cpp"]\
|
|
||||||
+["src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp"]\
|
|
||||||
+["src/BulletCollision/CollisionShapes/btConvexShape.cpp"]\
|
|
||||||
+["src/BulletCollision/CollisionShapes/btCollisionShape.cpp"]\
|
|
||||||
+["src/BulletCollision/CollisionShapes/btConvexPolyhedron.cpp"]\
|
|
||||||
+["src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp"]\
|
|
||||||
+["src/Bullet3Common/b3Logging.cpp"]\
|
|
||||||
+["src/LinearMath/btAlignedAllocator.cpp"]\
|
|
||||||
+["src/LinearMath/btGeometryUtil.cpp"]\
|
|
||||||
+["src/LinearMath/btConvexHull.cpp"]\
|
|
||||||
+["src/LinearMath/btConvexHullComputer.cpp"]\
|
|
||||||
+["src/Bullet3Common/b3AlignedAllocator.cpp"] \
|
|
||||||
+["examples/ThirdPartyLibs/glad/gl.c"]\
|
|
||||||
+['examples/ThirdPartyLibs/glad/egl.c'] \
|
|
||||||
+["examples/ThirdPartyLibs/glad/glx.c"] \
|
|
||||||
+["examples/OpenGLWindow/GLInstancingRenderer.cpp"]\
|
|
||||||
+["examples/OpenGLWindow/EGLOpenGLWindow.cpp"]\
|
|
||||||
+["examples/OpenGLWindow/GLRenderToTexture.cpp"] \
|
|
||||||
+["examples/OpenGLWindow/LoadShader.cpp"] \
|
|
||||||
+["src/LinearMath/btQuickprof.cpp"] \
|
|
||||||
|
|
||||||
eglRender = Extension("eglRenderer",
|
|
||||||
sources = egl_renderer_sources,
|
|
||||||
libraries = libraries,
|
|
||||||
extra_compile_args=(CXX_FLAGS+'-DBT_USE_EGL -DSTB_AGAIN -DB3_DEBUG').split(),
|
|
||||||
include_dirs = include_dirs + ["src","examples/ThirdPartyLibs","examples/ThirdPartyLibs/glad", "examples/ThirdPartyLibs/enet/include","examples/ThirdPartyLibs/clsocket/src"]
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name = 'pybullet',
|
name = 'pybullet',
|
||||||
version='2.1.4',
|
version='2.1.4',
|
||||||
@@ -541,7 +499,7 @@ setup(
|
|||||||
license='zlib',
|
license='zlib',
|
||||||
platforms='any',
|
platforms='any',
|
||||||
keywords=['game development', 'virtual reality', 'physics simulation', 'robotics', 'collision detection', 'opengl'],
|
keywords=['game development', 'virtual reality', 'physics simulation', 'robotics', 'collision detection', 'opengl'],
|
||||||
ext_modules = [eglRender, Extension("pybullet",
|
ext_modules = [Extension("pybullet",
|
||||||
sources = sources,
|
sources = sources,
|
||||||
libraries = libraries,
|
libraries = libraries,
|
||||||
extra_compile_args=CXX_FLAGS.split(),
|
extra_compile_args=CXX_FLAGS.split(),
|
||||||
|
|||||||
Reference in New Issue
Block a user