Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scrollbar width changeable after initialization #699

Closed

Conversation

fireclawthefox
Copy link
Contributor

Scrollbar width wasn't changeable after the scrollbar was initialized. This adds a function to make after initialization changes possible.

Copy link
Member

@rdb rdb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, thanks!

@rdb rdb added this to the 1.10.4 milestone Aug 3, 2019
@rdb rdb closed this in 2b64a7d Aug 3, 2019
@rdb
Copy link
Member

rdb commented Jan 31, 2020

It looks like this caused a regression in applications that explicitly set verticalScroll_frameSize, since that property is now being overridden.

@fireclawthefox fireclawthefox mentioned this pull request Feb 7, 2020
rdb pushed a commit that referenced this pull request Feb 10, 2020
Made initialization ignore the setScrollBarWidth function
Respect the length/height of the scrollbar and only change the actual
width in the setScrollBarWidth function
Added a very basic unittest class for the scrolledFrame

Closes #864
nate97 added a commit to nate97/panda3d that referenced this pull request Apr 10, 2020
* Change macOS CI workflow to use 1.10.5 thirdparty with C++ packages

* glgsg: attempt to fix stereo FBOs in OpenGL ES 2 (panda3d#815)

* dgui: resolve DirectFrame regression

Closes panda3d#810

* makepackage: remove old PackageMaker command invocations

pkgbuild is used as of Mac OS X Lion.

* Change from deprecated macOS-10.14 to macOS-latest in GitHub Workflow

* CMake: Properly redetect Python if WANT_PYTHON_VERSION changes

* CMake: `SKIP_COMPOSITING` -> `SKIP_UNITY_BUILD_INCLUSION`

The latter is what CMake (3.16+) itself uses; we should start using
CMake's own unity build capabilities if available.

* py_compat: fix _PyObject_CallNoArg in Python 3.5

* dcparser: fix unpacking uint64 and int64

Closes panda3d#751

* tests: add some DCPacker unit tests (for panda3d#751)

* dxgsg9: recreate vertex buffer if size was modified

Fixes panda3d#824

* dxgsg9: don't attempt to restore gamma if it wasn't modified

* Add support for Maya 2020

* makepanda: add support for Windows 10.0.18362.0 SDK

* mayapath: fix maya tools when running from pip installation

Fixes panda3d#709

* makewheel: remove maya2egg#_bin.exe from entry_points.txt

These are not intended to be invoked by the user directly, so .exe wrappers do not need to be generated.  maya2egg will find the _bin equivalent by looking for it next to the executable itself.

* stdpy: recognize daemon=True argument in Thread constructor

* stdpy: support name and daemon properties in threading2 module

* stdpy: threading2: join non-daemonic threads at interpreter shutdown

Fixes panda3d#758

* makepanda: --universal should not enable i386 when targeting 10.15+

[skip ci]

* makepanda: change strange rpath argument for maya2egg on macOS

It doesn't seem like this setting is actually needed (because mayapath does the necessary set-up), but while it's set, we might as well set it to something more sensible.

* makepanda: libIMFbase.dylib is no longer shipped with Maya 2020 on macOS

* x11display: fix compile warnings

* makepanda: add explicit link to libOpenMayaUI.dylib on macOS

This is needed when compiling without -undefined dynamic_lookup

* readme: update Android build instructions (from panda3d#716)

* dcparser: fix ability to compile outside of Panda

Fixes panda3d#759

* actor: support custom Python loader hooks

Fixes panda3d#750

* makepanda: add docstring for panda3d.dtoolconfig module

* glgsg: fix texture extraction of MRTs in OpenGL ES

Fixes panda3d#815

* cocoadisplay: use same scaling factor as the current view when switching to fullscreen on MacOS 10.15+

Fixes panda3d#794

* makepackage: prevent installation of package on macOS <10.9 (panda3d#300)

* linmath: support round(), floor(), ceil() in vector classes

Closes panda3d#821

* cocoa: Remove now useless respondsToSelector for setWantsBestResolutionOpenGLSurface

Closes panda3d#820

* dgui: Add DirectGui events for wheel up and down mouse events

Closes panda3d#819

* dgui: remove erroneous `p3d.` prefix (regression from panda3d#819)

* CMake: Don't assume <PackageName>_FOUND will always be caps

This is more consistent with the new find_package() behavior,
especially when CONFIG mode is involved.

* CMake: Use `CMAKE_FIND_PACKAGE_PREFER_CONFIG` to control `find_package` override

* CMake: Rename COMPOSITE_* to CMAKE_UNITY_BUILD* where appropriate

This allows us to use 3.16+ unity build support when available,
falling back to our own stuff when not.

* dxgsg9: don't try to Release() vertex buffer if it failed to create

* p3d: add deprecation notice to all direct.p3d modules

* grutil: fix wrong method name in LineSegs docstrings

* tkpanels: work around tkinter bug cancelling file open dialog on macOS

Fixes panda3d#811

* readme: update build instructions for Windows

* tkpanels: properly test "None" return from askopenfilename

* pgraph: fix ShaderInput ordering for vector inputs with small floats

Fixes panda3d#827

* tests: add unit tests for ShaderInput comparison (panda3d#827)

* pgraph: fix faulty comparison code of ShaderInput vectors

* gobj: fix Material ambient/diffuse/specular when reading from bam

Fixes panda3d#828

* tests: remove __gt__ asserts from test_shaderinput_vector_compare

This fails in Python 2, and we don't actually provide this operator or make any guarantees about greater-than ordering, so it was silly to test for it to begin with.

* pgraph: fix int return from bool method

* makepackage: Change macOS install location

Starting with macOS 10.15, we can no longer install into /Developer/Panda3D due
to it not being one of the sanctioned writable directories. This commit changes
the default install location to /Library/Developer/Panda3D, which is the next
best place to put it (discussion on this can be found in panda3d#760).

To keep compatibility with those who may rely on the old location, some
postinstall scripts have been added that create symlinks to the new location
if running on 10.14 or older.

Fixes panda3d#760
Closes panda3d#825

* doc: add release notes for Panda3D 1.10.5

* makepackage: fix None installdir when not passing in any on macOS

* physics: fix assertions when particles get very large positions

Fixes panda3d#822

* makepackage: fix regression in MakeInstaller on Windows

* cocoadisplay: Fix regression introduced by 45461e6

Closes panda3d#829

* Update Python 2.7 EOL warnings to indicate that EOL date is reached

[skip ci]

* makepanda: use Python 3.8 by default in makepanda.bat

Fall back to Python 3.7, but never to 2.7, since it is EOL

* makepackage: don't install Python 2.7 bindings by default in installer

* makepanda: update Python 2.7 EOL warning

* makepackage: Add warning in macOS installer about change of installdir

Closes panda3d#830

* device: add support for DualShock Gen 2 (PS4) controllers on Windows

Closes panda3d#831

Co-authored-by: rdb <git@rdb.name>

* display: fix get_cpuid_max clobbering %rbx (fixes Py 3.8 crash on macOS)

This could cause a crash when constructing a GraphicsPipe() under some conditions (observed in Python 3.8).  Credit goes to @CFSworks for tracking this down.

* dist: glob pattern must be lowercase as it is compared to lowercase filenames

Closes panda3d#832

* dist: Flatten also @rpath/ dynamic library references

Closes panda3d#834

* dist: Add missing dependency for CEFPython on macOS

Closes panda3d#835

* dist: fix ModuleFinder reading .pyc files in Python 2.7-3.3, 3.7 and 3.8

Fixes panda3d#836

* display: remove CPUID ASM, use __get_cpuid(_max) (on macOS too)

I think this requires at least XCode 5.

* Add Python 3.8 to GitHub CI workflow

* CMake: Make FindAssimp pull in libIrrXML as well, if found

* CMake: Omit Interrogate-generated sources from unity builds

This fixes an include path error when building under a
multi-configuration generator and with CMake 3.16+

* CMake: On Apple, silence build-time OpenGL deprecation warnings

* CMake: Update FindFFMPEG to locate static ffmpeg dependencies too

* CMake: Update panda3d/__init__.py

- Python 2.7 EOL warning is now past tense
- Use os.add_dll_directory() when available (instead of hacking up PATH)

* general: Reset back to master's travis, add CMake jobs to ci.yml

* cocoadisplay: Fix switch to fullscreen on macOS 10.9 using current display resolution

* dist: Also use copy_with_dependencies() for executables to flatten their dependencies

Closes panda3d#837

* dist: move "import pip" from module level to download_wheels

The aim of this is that pip is no longer a dependency to be able to run test_imports.

* device: attempt to fix DualShock 4 analog axis mapping

* workflow: Just skip the Windows unity build for now

* CMake: Break up "GLES" component into OpenGLES1/OpenGLES2

* CMake: Don't build egg-mkfont without Freetype

* CMake: When compiling Python to .pyc, optimize with -O

Distros seem to prefer having opt-1 Python modules and don't care
as much about the opt-2.

* CMake: Generate panda.prc with the correct model-path

This also generates a second prc for installation purposes,
which has the correct paths once installed

* CMake: Generate panda.prc with `notify-level warning` when not Debug

* CMake: Take away the HAVE_TINYDISPLAY option

This is at least until we can support building it, so that
other components in Panda don't assume TINYDISPLAY is present.

* device: correction for DualShock 4 support on Windows

* rocket: remove libRocket support and sample program

libRocket is unmaintained and does not support Python 3, and since Python 2.7 is EOL, there is no longer any point for us to keep supporting it.

* dgui: show assertion when passing a NaN into DirectSlider

If we don't do this, we get an assertion somewhere in the bowels of the scene graph, which will be much less helpful for tracking down the origin of the NaN.

* doc: add some more release notes for 1.10.5

* physx: remove support for NVIDIA PhysX

Our support was stuck on an ancient version that has not been available for a while.  If we were to continue support it should be done around the new PhysX 5.0 API, not 2.8.4.

* dgui: fix DirectSlider regression on Python 2

* makepanda: silently ignore --no-rocket and --no-physx flags

* CMake: `/etc/*.prc` -> `/etc/panda3d/*.prc`

* pnmimage: don't return values larger than 1.0f from from_val()

* readme: change link to 1.10.5 release

[skip ci]

* workflow: Pass --parallel to `cmake --build`

* workflow: Use ccache to accelerate CMake build

* CMake: Set CMP0072 (prefer glvnd over direct libGL link)

* CMake: Fix issue with HAVE_X safety checks falsely failing

* CMake: Fix WANT_PYTHON_VERSION not always being respected

* CMake: Work around CMake issue 20206

* CMake: Generate consistent paths in 20_panda.prc on all platforms

* workflow: Switch macOS-10.14 to macOS-latest

GitHub Actions is deprecating the former on the 15th

* CMake: Autodetect THIRDPARTY_DIRECTORY when in source root

* doc: Update CMake's README

* CMake: Remove reference to PhysX

* makepanda: fix using Windows 8.1 SDK (which also requires UCRT)

* Bump version number on release/1.10.x branch to 1.10.6

[skip ci]

* Drop support for Windows XP

* makepanda: fix comments erroneously referring to PandaVersion.pp

* dtool: remove obsolete PandaVersion.pp

This file was used by ppremake and is no longer used by makepanda.
The version number should instead be obtained from the setup.cfg file in the root.

* makepanda: default to Windows 8.1 SDK, falling back to 7.1 SDK

We no longer support Windows XP and so there is no point in defaulting to the old 7.1 SDK, which is hard to install.  To target Vista, we can use the 8.1 SDK (+UCRT).

* dxgsg9: drop support for old dxerr9.lib (part of panda3d#433)

This drops support for the *really* old DX SDKs.  We still support the June 2010 SDK.

* makepanda: remove unused 2to3 code in CopyPythonTree

We haven't needed this for a while since the direct tree is both Python 2 and 3 capable, and furthermore, Python 2.7 is EOL and will be dropped soon in Panda3D.

* dxgsg9: fix debug messages not protected by is_debug() check

* framework: fix a debug output not protected by is_debug() check

* Remove Python 3.4 from setup.cfg

Now that we dropped support for Windows XP, we can no longer guarantee support for all Windows versions that Python 3.4 supports.

Also see panda3d#548.

* device: Replace erroneous && with ||.

* actor: improve API documentation for Actor.cleanup()

Intended to address panda3d/panda3d-docs#40

[skip ci]

* chan: publish AnimChannelScalarTable constructor

* char: allow creating CharacterSlider with default value

* nativenet: drop unused Socket_TCP_SSL

This removes the dependency of libpanda on OpenSSL.

* makepanda: remove explicit OpenSSL link where it is unneeded

These were probably added before makepanda gained the ability to automatically add dependencies of static libraries when linking statically.

They don't really do any harm--the linker will probably optimize these out automatically--but it's cleaner not to add unused dependencies.

* makepanda: don't export symbols of linked static libraries

This results in size savings for thirdparty libraries that are only used once, and a size increase for libraries used more than once (eg. OpenSSL).  More importantly, it prevents conflicts with other versions of the libraries loaded by other Python modules, such as the version of OpenSSL that the hmac module uses.

We need to be careful to only apply this for packages that are either used once, used in a plug-in module, or if we don't need to pass thirdparty library structures across Panda library boundaries.  For example, I haven't done this for Bullet, since the Bullet symbols need to be available through libpandabullet.so due to the fact that pandabullet contains calls to the Bullet libraries in the inline methods.

Fixes panda3d#851

* vrpn: make inline methods that call into VRPN non-inline

This prevents things that link with VRPN and use these VRPN functions from needing to link with VRPN directly.

* device: Fix 10.15 segfault on USB hotplug

For some reason, IOHIDDeviceRegisterRemovalCallback() no longer works on
10.15+, so an app will crash once trying to poll a device that doesn't
exist anymore.  Thankfully, there is the alternative solution of using
IOHIDManagerRegisterDeviceRemovalCallback(). This just required a little
rearranging of the callback code, as well as keeping track of the
connection between IOHIDDeviceRefs and IOKitInputDevices so we actually
know which device to remove.

Closes panda3d#847

* cocoadisplay: Use hotspot read from .cur files

Previously, the cursor's hotspot defaulted to (0,0). Fixes panda3d#845.

Closes panda3d#849

* makepanda: do not pass -Wl,--exclude-libs on macOS

Fixes build regression introduced in e78ce78 (see panda3d#851)

* actor: minor style fixes

* tests: add more unit tests for vector classes

Closes panda3d#826

* makepanda: do not pass -Wl,--exclude-libs on macOS for OpenSSL

Part two of fix for build regression introduced in e78ce78 (see panda3d#851)

* char/chan: clean up MovingPartScalar/CharacterSlider constructors

These changes are a follow-up to 8b6f822 but could not be made on that branch due to ABI compatibility reasons.

* pnmimagetypes: unexpose PNMFileType* classes

They are not exposed to Python, and I cannot think of a good reason to use these classes directly in C++ code.

Call init_libpnmimagetypes() to register these classes with the PNMFileTypeRegistry instead.

* CMake: Make HAVE_VIDEO4LINUX dependent on Linux

* CMake: Remove IS(_NOT)_DEBUG_BUILD

* CMake: Remove IS(_NOT)_MINSIZE_BUILD

* CMake: Don't build socket_tcp_ssl.* anymore (deleted upstream)

* actor: only remove control effects of given animations in unloadAnims

The previous behavior was for unloadAnims() to remove the control effects from all animations, even when only one animation was passed in, which is unintuitive behavior.

Fixes panda3d#853

* makepanda: disable plug-ins in Config.prc that weren't compiled

This also disables the plug-ins if we are building them statically.

* cocoa: fix compilation issues with new NSCursor hotspot code

See panda3d#849

* CMake: Fix Interrogate macro sometimes passing -D''

* tests: use unique, non-interned keys for property refcount tests

There is an intermittent build failure and I suspect it's because the keys are too generic and are interned, and thus may have their refcount incremented or decremented by some other (background?) process.

* glgsg: hack fix for p3d_TextureMatrix[] error on macOS (panda3d#846)

* tests: add unit test for passing plain mat3/mat4 to GLSL shader

* shader: separate shader matrix input cache from ShaderMatSpec

If multiple ShaderMatSpec entries use the same state matrix, this should result in a reduction in the number of times that state matrix is fetched.  This is especially so for arrays, which are now fetched once rather than once for every item.

This is the first step towards trying to solve panda3d#846.

* bullet: Fix BulletHeightfieldShape::fillin

Closes panda3d#860

* shader: //Cg profile should only affect the current shader

Fixes panda3d#863

* glgsg: change ultimate profile from vp40/fp40 to glslv/glslv

vp40 is just not "ultimate" enough.  We can alternatively pick gp5vp/gp5fp if glslv/glslf is inadequate.

* cocoa: use resolved filename to load cursor image (thanks treamous)

* general: removed all WIN32, WIN32_VC and friends

* pgraph: remove unused method declarations from PandaNode

* char: remove deprecated overload of Character::merge_bundles()

* char: attempt to make Character class thread-safe

* dgui: fix regression in DirectScrolledFrame (see panda3d#699)

Made initialization ignore the setScrollBarWidth function
Respect the length/height of the scrollbar and only change the actual
width in the setScrollBarWidth function
Added a very basic unittest class for the scrolledFrame

Closes panda3d#864

* makepanda: force flex step for dcParser to occur after bison step

This fixes an erratic build failure reported by the Travis GCC builder.

* x11: implement fallback relative mouse mode using XInput2

It's not "real" relative mouse like DGA, but it's good enough: it confines the cursor to the window and continues to provide relative mouse movement regardless of the position of the cursor in the window.

This gets relative mouse mode working under wayland, where cursor warping is not supported; see panda3d#746.

* build_apps: Fix running with Pip 20

Fixes panda3d#854
Closes panda3d#856

* interrogate: fix ability to return ReferenceCount-like classes

Classes with virtual ref(), unref() and get_ref_count() methods, like RecorderBase, could not be returned by PT() from methods because they didn't inherit from ReferenceCount.  However, classes do not need to inherit ReferenceCount to be able to be tracked by a PointerTo, and defining an abstract base class with pure virtual ref()/unref()/get_ref_count() is a way to avoid dual inheritance of ReferenceCount.

* makepanda: auto-detect manylinux2010 and manylinux2014 platforms

* Fix includes for Windows on case-sensitive filesystems

Closes panda3d#866

* test_wheel: fix for Python 3.4

[skip ci]

* makewheel: fix location of libpythonX.Y.so on Debian/Ubuntu

* x11: don't include numpad keys in get_keyboard_map()

This is a hack until we introduce separate ButtonHandles for numpad keys

* x11: add labels to various buttons returned from get_keyboard_map()

This allows identifying, eg. the é button on French keyboard (which is at the location where 2 is on QWERTY)

This is not intended to be complete.  One must still choose what to display depending on the label and the mapped button handle (if any).

* pgraph: fix for additional columns in munge_points_to_quads()

Fixes panda3d#870

* FSM: support "any" state transitions

Closes panda3d#344

* particles: expose birth_litter() to support burst emission

Closes panda3d#524
Closes panda3d#340

* dgui: fix sizing after changing Slider/Scrollbar orientation

Closes panda3d#700

* CMake: Fix Windows library names for case-sensitive filesystems

Closes panda3d#865

* char: fix deadlock regression in 3ac504e

* x11: fix support for dead keys

It seems to be required to pass a window to XCreateIC for receiving dead keys.

* x11: fall back to @im=none if XOpenIM failed

This helps if the user has configured an invalid input method in their XMODIFIERS variable.

* task: Fix memory leak related to Python 3 signal API changes

Python 3's signal.py API does not properly support custom signal handlers. An exception is created every frame because of this, which fills up the memory of the application.

Closes panda3d#873

* x11: fix raw key down being sent repeatedly when holding key

Fixes panda3d#874

* tform: prevent MouseWatcherRegion leave event being fired twice

Fixes panda3d#858

* putil: fix asserts when model-cache-dir cannot be created

Fixes panda3d#790

* ShaderGenerator: fix texture transforms applied to normal map

Fixes panda3d#808

* makepanda: support --cggl-incdir and --cggl-libdir options

It's quite hacky right now, but that doesn't matter as we're switching to CMake anyway

* x11: restore locale after opening input method

Fixes panda3d#728

* dtoolbase: fix compilation error with musl

Fixes panda3d#875

* makewheel: don't include libpythonX.Y.a in wheel

Fixes panda3d#839

* Update CompositeSources.cmake

this allows panda to be checked out as a subproject

* collide: fix pusher convex angle detection for visible geometry

Previously it was only working for CollisionPolygon.

Fixes panda3d#879

* glgsg: fix shader not being applied if same across multiple buffers

See https://discourse.panda3d.org/t/multi-pass-rendering-setinitialstate-wont-apply-shader/25712

* CMake: use CMAKE_CURRENT_SOURCE_DIR

Closes panda3d#878

* notify: make Notify::config_initialized() static

This may be slightly more efficient.

* pgraph: fix double free if weak ptr to state is locked while being gc'ed

Fixes panda3d#499

* bam2egg: fix skinning bug for joints with DefaultPose

* bam2egg: support multitexturing, multiple UV sets

* dgui: Fix DirectScrolledList scrollTo error in Python 3

As a rule of thumb, Python 3 divisions always have float results. Unfortunately, this piece of code is still relying on the old Python 2.7 behavior.

Closes panda3d#880

* express: invert return value of unref_if_one()

This is more consistent with how the return value of unref() works.  Someone might otherwise trip over this.

* bam2egg: change overloaded method (for ABI reasons) to default arg

This is a follow-up to ebd538a

* grutil: fix ShaderTerrainMesh not working with compressed-textures

* collide: protect info print with is_info() check

This prevents an unnecessary sqrt

* putil: set max supported bam version independently from default version

This will allow us to support reading and writing higher-versioned .bam file than we are writing by default.  This allows us to make changes bumping the bam version to the release branch, since we currently guarantee that bam files written by Panda3D 1.x.y can be read by Panda3D 1.x.0 (using the default settings).

* gobj: support writing Texture clear colors to .bam files (bam 6.45)

This fix requires setting "bam-version 6 45" in Config.prc.

Part of the fix for panda3d#844

* gobj: don't strip .bam textures that contain only a clear color

Second part of the fix for panda3d#844

* gobj: make ram image when writing texture with clear color to 6.44 bam

This makes it possible to write textures with clear colors to .bam files even when the default bam version of 6.44 is selected.  The clear color is converted automatically to a filled RAM image.

Third part of the fix for panda3d#844

* tform: do not stop mouse button capture until all buttons are released

We may want to consider a more elegant solution for capturing in the future.  In the meantime, this fixes panda3d#843.

* x11: fix raw button events for dead keys

* doc: add release notes for Panda3D 1.10.6

* readme: minor typo fix

Closes panda3d#882

* readme: update links to point to 1.10.6

* workflow: Fix extraction of Python_EXECUTABLE from CMakeCache.txt

Also disable coverage testing for Python 2.7 and 3.5, since they are respectively EOL and do not use deterministic dictionary ordering.

* Empty commit to trigger new post version number

[skip ci]

* makewheel: strip codesign signature on macOS from libpython3.x.dylib

This is necessary because install_name_tool invalidates the signature, which causes the whole app to fail validation and refuse to open.

* Bump version number on release/1.10.x branch to 1.10.7

* dist: don't warn about missing libc++.1.dylib on macOS

* pgraph: fix typo in comment

* showbase: fix erroneous docstring (audio unit is metres by default)

* shader: default fog exponential density to 0 if fog is disabled

* glgsg: fix wrong shadow buffer host when rendering scene to buffer

Fixes panda3d#890

* tform: fix MouseWatcher ABI incompatibility with NDEBUG builds

* deploy-stub: chdir to Resources dir in GUI macOS app bundle

This prevents a common error of trying to load non-Panda3D assets without specifying $MAIN_DIR.  We aren't currently making any guarantees about the cwd (which may in fact be / when launching from Finder), so I think this is safe.

* CMake: fix bad location of panda3d/__init__.py in multiconfig build

* CMake: Write panda3d/dtoolconfig.py like makepanda does

* putil: add pickling support to Datagram class

* showbase: improve docstrings of ShowBase and ShowBaseGlobal

* workflow: Fix failure to invoke tests

* interrogate: support __getstate__ and __setstate__

The latter in particular will be called instead of __init__, so must construct the object.

* interrogate: support __int__ -> nb_int slot mapping

* pipeline: fix compilation error on Windows with simple threading

* putil: Assorted improvements to BitArray, SparseArray, *BitMask*:

* Support converting BitMask types to int
* BitArray constructor accepts a Python long of arbitrary size
* DoubleBitMask (and QuadBitMask, by extension) supports Python long in constructor
* Support for pickling (except DoubleBitMask)
* All of them now properly define __bool__()
* More unit tests

Fixes panda3d#886

* gobj: more efficient pickling support for InternalName

Rather than going through the TypedWritable/bam route, this encodes InternalNames in a more compact and efficient manner.

* char: add joint property to JointVertexTransform

* collide: improve performance of colliding with visible geometry

* display: fix crash with oversized p3d_LightSource array

This was a regression in 89f1a0e

Closes panda3d#897

* display: fix fallback of SMO_light_source_i_packed shader input

This is not actually used by anything, but we might as well ensure that it's set to something sensible

* tests: add an assorted variety of unit tests

I'm mostly trying to make sure we have over-coverage for a couple of places that are being hit intermittently by our current unit tests, generating noisy codecov reports.  If we make sure these places are hit always, we hopefully won't have codecov misreport lost/gained coverage for unrelated changes.

* SceneGraphAnalyzer: Use smarter units for byte sizes in write()

Values above 10 MiB are displayed in MiB and values above 4 GiB are
displayed in GiB.

Closes panda3d#881

Co-authored-by: rdb <git@rdb.name>
Co-authored-by: Derzsi Dániel <daniel@tohka.us>
Co-authored-by: Sam Edwards <CFSworks@gmail.com>
Co-authored-by: MDTech-us-MAN <admin@mdtech.us>
Co-authored-by: LD <laurent.deru@gmail.com>
Co-authored-by: Leandro (Cerberus1746) Benedet Garcia <cerberus1746@gmail.com>
Co-authored-by: Donny Lawrence <trea@treamous.com>
Co-authored-by: Nathan S <55564547+NathanX-S@users.noreply.github.com>
Co-authored-by: CYBERDEViLNL <cyberdevilnl@gitlab.com>
Co-authored-by: Fireclaw <fireclawthefox@gmail.com>
Co-authored-by: Mitchell Stokes <mogurijin@gmail.com>
Co-authored-by: kamgha <kamgha@users.noreply.github.com>
Co-authored-by: Thaumaturge <thaum@thaumaturge-art.com>
Co-authored-by: Philip Whitfield <underdoeg@users.noreply.github.com>
Co-authored-by: aryamanpuri <aryamanpuri@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants