mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -04:00
Merge branch 'release/1.10.x'
This commit is contained in:
commit
2574d85049
@ -31,7 +31,7 @@ fullscreen #f
|
|||||||
|
|
||||||
# The framebuffer-hardware flag forces it to use an accelerated driver.
|
# The framebuffer-hardware flag forces it to use an accelerated driver.
|
||||||
# The framebuffer-software flag forces it to use a software renderer.
|
# The framebuffer-software flag forces it to use a software renderer.
|
||||||
# If you don't set either, it will use whatever's available.
|
# If you set both to false, it will use whatever's available.
|
||||||
|
|
||||||
framebuffer-hardware #t
|
framebuffer-hardware #t
|
||||||
framebuffer-software #f
|
framebuffer-software #f
|
||||||
|
@ -863,13 +863,14 @@ if (COMPILER=="GCC"):
|
|||||||
fcollada_libs = ("FColladaD", "FColladaSD", "FColladaS")
|
fcollada_libs = ("FColladaD", "FColladaSD", "FColladaS")
|
||||||
# WARNING! The order of the ffmpeg libraries matters!
|
# WARNING! The order of the ffmpeg libraries matters!
|
||||||
ffmpeg_libs = ("libavformat", "libavcodec", "libavutil")
|
ffmpeg_libs = ("libavformat", "libavcodec", "libavutil")
|
||||||
|
assimp_libs = ("libassimp", "libassimpd")
|
||||||
|
|
||||||
# Name pkg-config libs, include(dir)s
|
# Name pkg-config libs, include(dir)s
|
||||||
if (not RUNTIME):
|
if (not RUNTIME):
|
||||||
SmartPkgEnable("EIGEN", "eigen3", (), ("Eigen/Dense",), target_pkg = 'ALWAYS')
|
SmartPkgEnable("EIGEN", "eigen3", (), ("Eigen/Dense",), target_pkg = 'ALWAYS')
|
||||||
SmartPkgEnable("ARTOOLKIT", "", ("AR"), "AR/ar.h")
|
SmartPkgEnable("ARTOOLKIT", "", ("AR"), "AR/ar.h")
|
||||||
SmartPkgEnable("FCOLLADA", "", ChooseLib(fcollada_libs, "FCOLLADA"), ("FCollada", "FCollada/FCollada.h"))
|
SmartPkgEnable("FCOLLADA", "", ChooseLib(fcollada_libs, "FCOLLADA"), ("FCollada", "FCollada/FCollada.h"))
|
||||||
SmartPkgEnable("ASSIMP", "assimp", ("assimp"), "assimp/Importer.hpp")
|
SmartPkgEnable("ASSIMP", "assimp", ChooseLib(assimp_libs, "ASSIMP"), "assimp/Importer.hpp")
|
||||||
SmartPkgEnable("FFMPEG", ffmpeg_libs, ffmpeg_libs, ("libavformat/avformat.h", "libavcodec/avcodec.h", "libavutil/avutil.h"))
|
SmartPkgEnable("FFMPEG", ffmpeg_libs, ffmpeg_libs, ("libavformat/avformat.h", "libavcodec/avcodec.h", "libavutil/avutil.h"))
|
||||||
SmartPkgEnable("SWSCALE", "libswscale", "libswscale", ("libswscale/swscale.h"), target_pkg = "FFMPEG", thirdparty_dir = "ffmpeg")
|
SmartPkgEnable("SWSCALE", "libswscale", "libswscale", ("libswscale/swscale.h"), target_pkg = "FFMPEG", thirdparty_dir = "ffmpeg")
|
||||||
SmartPkgEnable("SWRESAMPLE","libswresample", "libswresample", ("libswresample/swresample.h"), target_pkg = "FFMPEG", thirdparty_dir = "ffmpeg")
|
SmartPkgEnable("SWRESAMPLE","libswresample", "libswresample", ("libswresample/swresample.h"), target_pkg = "FFMPEG", thirdparty_dir = "ffmpeg")
|
||||||
|
@ -58,6 +58,7 @@ CollisionNode::
|
|||||||
CollisionNode(const CollisionNode ©) :
|
CollisionNode(const CollisionNode ©) :
|
||||||
PandaNode(copy),
|
PandaNode(copy),
|
||||||
_from_collide_mask(copy._from_collide_mask),
|
_from_collide_mask(copy._from_collide_mask),
|
||||||
|
_collider_sort(copy._collider_sort),
|
||||||
_solids(copy._solids)
|
_solids(copy._solids)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -258,7 +258,12 @@ make_packer() const {
|
|||||||
case 3:
|
case 3:
|
||||||
return new Packer_point_nativefloat_3;
|
return new Packer_point_nativefloat_3;
|
||||||
case 4:
|
case 4:
|
||||||
return new Packer_point_nativefloat_4;
|
// Reader may assume 16-byte alignment.
|
||||||
|
if ((get_start() & 0xf) == 0) {
|
||||||
|
return new Packer_point_nativefloat_4;
|
||||||
|
} else {
|
||||||
|
return new Packer_point_float32_4;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch (get_num_components()) {
|
switch (get_num_components()) {
|
||||||
@ -309,7 +314,8 @@ make_packer() const {
|
|||||||
return new Packer_argb_packed;
|
return new Packer_argb_packed;
|
||||||
|
|
||||||
case NT_float32:
|
case NT_float32:
|
||||||
if (sizeof(float) == sizeof(PN_float32)) {
|
if (sizeof(float) == sizeof(PN_float32) &&
|
||||||
|
(get_start() & 0xf) == 0) {
|
||||||
// Use the native float type implementation for a tiny bit more
|
// Use the native float type implementation for a tiny bit more
|
||||||
// optimization.
|
// optimization.
|
||||||
return new Packer_rgba_nativefloat_4;
|
return new Packer_rgba_nativefloat_4;
|
||||||
|
@ -35,6 +35,8 @@ PUBLISHED:
|
|||||||
virtual int get_num_frames() const;
|
virtual int get_num_frames() const;
|
||||||
INLINE void set_frame_rate(double frame_rate);
|
INLINE void set_frame_rate(double frame_rate);
|
||||||
|
|
||||||
|
MAKE_PROPERTY(frame_rate, get_frame_rate, set_frame_rate);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual PandaNode *make_copy() const;
|
virtual PandaNode *make_copy() const;
|
||||||
virtual bool safe_to_combine() const;
|
virtual bool safe_to_combine() const;
|
||||||
|
@ -1976,6 +1976,8 @@ get_keyboard_map() const {
|
|||||||
// XkbGetMap(_display, XkbAllMapComponentsMask, XkbUseCoreKbd);
|
// XkbGetMap(_display, XkbAllMapComponentsMask, XkbUseCoreKbd);
|
||||||
ButtonMap *map = new ButtonMap;
|
ButtonMap *map = new ButtonMap;
|
||||||
|
|
||||||
|
LightReMutexHolder holder(x11GraphicsPipe::_x_mutex);
|
||||||
|
|
||||||
for (int k = 9; k <= 135; ++k) {
|
for (int k = 9; k <= 135; ++k) {
|
||||||
ButtonHandle raw_button = map_raw_button(k);
|
ButtonHandle raw_button = map_raw_button(k);
|
||||||
if (raw_button == ButtonHandle::none()) {
|
if (raw_button == ButtonHandle::none()) {
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
#include "config_assimp.h"
|
#include "config_assimp.h"
|
||||||
#include "assimpLoader.h"
|
#include "assimpLoader.h"
|
||||||
|
|
||||||
|
#include <assimp/cimport.h>
|
||||||
|
|
||||||
using std::string;
|
using std::string;
|
||||||
|
|
||||||
TypeHandle LoaderFileTypeAssimp::_type_handle;
|
TypeHandle LoaderFileTypeAssimp::_type_handle;
|
||||||
@ -23,7 +25,7 @@ TypeHandle LoaderFileTypeAssimp::_type_handle;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
LoaderFileTypeAssimp::
|
LoaderFileTypeAssimp::
|
||||||
LoaderFileTypeAssimp() : _loader(new AssimpLoader) {
|
LoaderFileTypeAssimp() : _loader(nullptr) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -31,9 +33,6 @@ LoaderFileTypeAssimp() : _loader(new AssimpLoader) {
|
|||||||
*/
|
*/
|
||||||
LoaderFileTypeAssimp::
|
LoaderFileTypeAssimp::
|
||||||
~LoaderFileTypeAssimp() {
|
~LoaderFileTypeAssimp() {
|
||||||
if (_loader != nullptr) {
|
|
||||||
delete _loader;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -58,9 +57,22 @@ get_extension() const {
|
|||||||
*/
|
*/
|
||||||
string LoaderFileTypeAssimp::
|
string LoaderFileTypeAssimp::
|
||||||
get_additional_extensions() const {
|
get_additional_extensions() const {
|
||||||
string exts;
|
aiString aexts;
|
||||||
_loader->get_extensions(exts);
|
aiGetExtensionList(&aexts);
|
||||||
return exts;
|
|
||||||
|
// The format is like: *.mdc;*.mdl;*.mesh.xml;*.mot
|
||||||
|
std::string ext;
|
||||||
|
char *sub = strtok(aexts.data, ";");
|
||||||
|
while (sub != nullptr) {
|
||||||
|
ext += sub + 2;
|
||||||
|
sub = strtok(nullptr, ";");
|
||||||
|
|
||||||
|
if (sub != nullptr) {
|
||||||
|
ext += ' ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ext;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -82,10 +94,13 @@ load_file(const Filename &path, const LoaderOptions &options,
|
|||||||
assimp_cat.info()
|
assimp_cat.info()
|
||||||
<< "Reading " << path << "\n";
|
<< "Reading " << path << "\n";
|
||||||
|
|
||||||
if (!_loader->read(path)) {
|
AssimpLoader loader;
|
||||||
|
loader.local_object();
|
||||||
|
|
||||||
|
if (!loader.read(path)) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
_loader->build_graph();
|
loader.build_graph();
|
||||||
return DCAST(PandaNode, _loader->_root);
|
return DCAST(PandaNode, loader._root);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user