Commit Graph

11957 Commits

Author SHA1 Message Date
rdb 050d86dadb event: AsyncFuture::set_result() behavior changes:
* Passing a Python subclass of a C++ class now works, the extra Python stuff isn't just discarded
* EventParameter objects are no longer automagically unwrapped - there's no more reason to pass an EventParameter to this method anyway, and it might be unexpected if it is treated specially.
2021-03-01 20:50:25 +01:00
rdb 99569fa8f2 CMake: Updates to compile new ParamPyObject class 2021-03-01 20:34:17 +01:00
rdb 402c303dba event: Make AsyncFuture::set_result() slightly more robust 2021-03-01 19:33:39 +01:00
rdb 8cbe36b352 Merge branch 'release/1.10.x' 2021-03-01 19:33:27 +01:00
rdb 064e0383be event: Allow AsyncFuture to store arbitrary PyObject result 2021-03-01 19:16:22 +01:00
rdb bdb2ef1631 pipeline: Fix crash upon exception in custom thread
We can't call PyErr_Restore() without a valid thread state, which won't exist in a custom thread if we just called PyGILState_Release().  Not sure how this has ever worked.
2021-03-01 16:19:53 +01:00
rdb 2b3f2bb98c event: gather() should schedule coroutines with task manager
This matches the behaviour of asyncio.  It schedules with the current task's manager and chain.  If no current manager is found, it prints a warning.  (The user can just add the coroutine to a task manager themselves and pass the resulting task into gather() if needed.)

See discussion here:
https://discourse.panda3d.org/t/task-gather-does-not-seem-to-work/27313
2021-03-01 11:22:13 +01:00
rdb e348d216e5 event: Fix memory leak getting future result in some cases 2021-03-01 11:09:10 +01:00
rdb b6096c3d40 glgsg: Suppress useless shader linking warnings on macOS 2021-02-26 13:33:25 +01:00
rdb 6a51709332 event: Don't suppress coroutine exceptions in optimized builds 2021-02-26 11:44:50 +01:00
rdb ada74e3b0c Merge branch 'release/1.10.x' 2021-02-24 18:10:15 +01:00
rdb 2d9cc2dea0 egl: Further robustify EGL device initialization process
Sometimes, the default device fails to initialize, so then we need to fall back to alternatives (eg. GBM)
2021-02-24 17:31:00 +01:00
rdb 7a838e7212 Merge branch 'release/1.10.x' 2021-02-24 12:14:04 +01:00
rdb 2e38ca1042 egl: Fall back to EGL_EXT_platform_device for device selection
See #557
2021-02-24 11:41:42 +01:00
rdb 7f20bcd8e0 egl: Fix ability to create multisample FBO
Fixes #1089
2021-02-24 10:11:58 +01:00
rdb 778c6ee6be pgui: Add missing pipeline.h include 2021-02-24 09:46:53 +01:00
Stephen Imhoff 18873ffbf1 Add use of TransformState::make_pos_quat() in some places (#1116)
Fixes #1116
2021-02-22 20:06:26 +01:00
Stephen Imhoff a196f1adcc gobj: Add missing TransformState.make_pos_quat (#1116)
matches to TransformState.make_pos_hpr
2021-02-22 20:05:58 +01:00
rdb 8944737844 linmath: Support floor division for vector types
Also fix __pow__ so that it returns the derived type, not the base type
2021-02-22 20:01:30 +01:00
rdb 5ae08eadf7 Merge branch 'release/1.10.x' 2021-02-22 19:38:49 +01:00
rdb 18cb4a7ccc vorbis: Disable cross-lapped seeking by default, to reduce clicking
Fixes #1108
2021-02-22 10:58:18 +01:00
rdb f2e488fd6b pgui: Workaround for text disappearing in multithreaded pipeline
The text could appear from a DirectButton or other GUI element if updating eg. the text_fg property.
2021-02-21 11:00:22 +01:00
rdb 5c4909b4ab pgui: Some code cleanup for PGItem 2021-02-21 10:17:14 +01:00
rdb a05405c475 pgraph: API reference improvements for NodePath 2021-02-21 10:15:33 +01:00
rdb fb9b334d58 Merge branch 'release/1.10.x' 2021-02-17 10:57:30 +01:00
rdb 3592404fa8 display: Fix GraphicsWindow::get_pointer() listed as deprecated
[skip ci]
2021-02-17 10:56:46 +01:00
rdb ca577c8b35 Merge branch 'release/1.10.x' 2021-02-15 14:14:10 +01:00
rdb 6374a7f240 express: Fix up Patchfile docstrings
[skip ci]
2021-02-15 14:13:24 +01:00
rdb a704d2c228 display: Fix typos in docstrings
[skip ci]
2021-02-15 12:46:29 +01:00
rdb 592f776f76 downloader: Fix missing includes in virtualFileHTTP.cxx 2021-02-15 12:36:29 +01:00
rdb 8afd0e526f Merge branch 'release/1.10.x' 2021-02-15 11:38:45 +01:00
rdb 70e972a7c0 downloader: Remove duplicated string manipulation methods
These already exist in string_utils.h
2021-02-15 11:35:16 +01:00
rdb 84c2a18d00 downloader: Implement VirtualFileHTTP::read_file() 2021-02-15 11:18:13 +01:00
rdb 20bdd32765 downloader: Fix an uninitialized member 2021-02-15 11:13:57 +01:00
rdb 86e0915621 downloader: Add samesite flag to HTTPCookie 2021-02-14 17:47:29 +01:00
rdb 8f1e2f1945 downloader: Support gzip and deflate Content-Encoding values 2021-02-14 17:29:45 +01:00
rdb 62d072cfb4 downloader: Remove unused HTTPChannel::request_path member 2021-02-14 17:28:44 +01:00
rdb 4e27264cac downloader: Add properties to HTTPCookie 2021-02-11 03:28:43 +01:00
rdb 59ab828098 linmath: Fix typo in Mat4 isub docstring
Fixes panda3d/panda3d-docs#96
2021-02-11 03:28:34 +01:00
rdb 28ad032210 collide: Fix CollisionHandlerGravity docstrings
[skip ci]
2021-02-08 19:41:46 +01:00
rdb a64dcd7c5d event: (BREAKING CHANGE) bare yield in task now means "cont"
This is more useful and consistent; you can after all just use "return" to end the task, whereas you can now just use "yield" to continue the next frame rather than "yield Task.cont".

This is a follow-up to f6b39345f7, which already enabled this behavior when an __await__ (that is awaited from a task) yielded None.
2021-02-07 15:14:04 +01:00
rdb e8b4b6476c Merge branch 'release/1.10.x' 2021-02-07 15:01:36 +01:00
rdb 8c8a73a1a7 event: Fix compilation with Python 2.7 2021-02-07 14:49:10 +01:00
rdb f6b39345f7 event: don't exit task if future __await__ yields None
This matches the behavior of asyncio's Task implementation, where this is the equivalent of `yield Task.cont`.

I've kept regular generator tasks unaffected for now, since this might break existing usage.
2021-02-07 12:38:16 +01:00
rdb 3657eb9bce glgsg: Support texture transforms in default shader 2021-02-06 19:36:50 +01:00
rdb 64f0414f57 Merge branch 'release/1.10.x' 2021-02-06 19:36:39 +01:00
rdb af60f8200e glgsg: Gracefully degrade when using 64-bit float in OpenGL ES 2021-02-06 19:35:48 +01:00
rdb c5568c3d5f collide: Improve CollisionSphere viz, add outline 2021-02-06 01:25:07 +01:00
rdb c73c94c862 Merge branch 'release/1.10.x' 2021-02-06 01:23:34 +01:00
rdb 068ceaaf58 event: Clear exception flag after trying asyncio exception import 2021-02-06 01:21:52 +01:00
rdb 3052bcf289 pnmimagetypes: Remove vestigial init_pnm() call 2021-02-06 01:20:44 +01:00
rdb 642f4a4e55 bullet: Implement make_copy() for BulletGhostNode 2021-02-05 23:48:41 +01:00
Stephen Imhoff cc4701d299 Add ability to persist ghost nodes. 2021-02-05 20:31:10 +00:00
rdb 492cce8a49 event: Compile out threaded code when compiling without HAVE_THREADS 2021-02-03 13:29:28 +01:00
rdb 8c2b3c3192 pgraph: Add missing InstancedNode::CData type handle 2021-02-03 13:27:07 +01:00
rdb a1e4cf059f glgsg: Fix attempt to detect glTexStorage1D in OpenGL ES 2021-02-03 12:53:20 +01:00
rdb 60f3ac5163 gobj: Assert instead of crash when printing unresolved GV(A)D 2021-01-30 20:06:32 +01:00
rdb 79dae16a2c glgsg: Show error for unrecognized p3d_TextureXYZ input 2021-01-30 20:05:36 +01:00
rdb b1942e8065 collide: Add wires to CollisionBox viz
This should make it a lot easier to see the box as opposed to looking at a continuous white shape.
2021-01-30 13:52:03 +01:00
rdb 613441060b Merge branch 'release/1.10.x' 2021-01-18 23:47:36 +01:00
rdb 29cdd78c4e mathutil: Fix scaling BoundingSphere to infinite causing assertions
This error occurs when a BoundingSphere with a large radius is scaled by an even larger radius such that the radius becomes infinite.  In this case, the BoundingSphere should be properly marked as infinite so that it behaves properly (and doesn't cause other assertions down the line).
2021-01-18 19:03:00 +01:00
rdb 3e1d98c105 multify: Respect SOURCE_DATE_EPOCH variable when used from command-line
That said, we should probably encourage the use of -T0 (which doesn't write out timestamps to begin with).
2021-01-18 14:16:25 +01:00
rdb ef4b1d5721 glgsg: Fix compile error with OpenGL ES 1 2021-01-18 00:19:39 +01:00
rdb 842452594d Merge branch 'release/1.10.x' 2021-01-17 17:28:19 +01:00
rdb 8924b77da4 egldisplay: Backport changes for creating headless EGL contexts
Backport of fbc4947455 and 9f1289b492

See #557
2021-01-17 16:46:57 +01:00
rdb fb6ec557ce egl: Add missing init_type() for eglGraphicsBuffer/Pixmap 2021-01-17 15:40:19 +01:00
rdb a5a0809949 gobj: Support integer texture formats in TexturePeeker 2021-01-17 15:27:19 +01:00
rdb 4783c2902d grutil: Add missing switch case 2021-01-17 15:17:13 +01:00
rdb b060767bd8 glgsg: slight refactor of get_internal_image_format() 2021-01-17 15:17:09 +01:00
rdb 1fda6e7d51 texture: Add missing integer texture formats 2021-01-17 15:17:03 +01:00
rdb 38d304f2fe glgsg: Force nearest filtering on isampler/usampler
Without this, Intel drivers will sample (0, 0, 0, 1)
2021-01-17 12:10:42 +01:00
rdb f20d859fe2 pgraph: Fix bug passing non-tuple sequence to shader input 2021-01-16 14:05:43 +01:00
rdb c5705e0137 Merge branch 'release/1.10.x' 2021-01-12 23:15:36 +01:00
rdb 3a41db130b gobj: Fix Texture.set_ram_image_as for 3D and multiview textures
Fixes #1095
2021-01-12 23:13:02 +01:00
rdb 6e168c2bc4 collide: Implement respect-prev-transform for capsule-into-poly
It's not perfect by any means, but it's better than nothing, and should prevent capsules from flying through walls.
2021-01-12 15:55:10 +01:00
rdb 3f08781eac collide: Improve box-into-polygon test
* Use nearly-zero test to check which edges to snap the interior/surface points to, if any, to be less sensitive to fp precision
* The respect-prev-transform test now tests for a sphere that fits inside the box, to prevent a false positive test when the box has been rotated since the last test
* More appropriate surface point for respect-prev-transform test
2021-01-12 14:59:31 +01:00
rdb 1b7f3e4bbd collide: Fix pusher if interior and surface point don't lie along normal
Currently, all tests I'm aware of put the surface point above the interior point (ie. along the normal), but there seems to be no good reason for this requirement, especially since a dot product is more efficient than a length().
2021-01-12 14:51:42 +01:00
rdb 84034f06f5 collide: Respect prev transform in box-into-poly test
Only takes changes in position in account, and the test is not entirely perfect, but mostly right
2021-01-11 19:06:24 +01:00
rdb c52ea9a8df express: Fix reading zip file with comment at the end 2021-01-04 12:33:11 +01:00
rdb 3f6a8b88c0 egg: Another fix for older bison versions 2021-01-02 21:51:50 +01:00
rdb 0c94f98c84 egg: Keep compatibility with Bison 2.3 (for macOS) 2021-01-02 20:55:59 +01:00
rdb 91380e8718 egg: Make egg parser and lexer reentrant
This avoids the need for the global mutex lock and allows two egg files to be read simultaneously.

Error reporting has also been improved by specifically pinpointing the offending token when an error occurs.
2021-01-02 20:11:10 +01:00
rdb ce235c3e60 Merge branch 'release/1.10.x' 2021-01-02 19:59:33 +01:00
rdb 5d5efb75e8 egg: Fix egg lexer hanging on unterminated quote or C-style comment 2021-01-02 18:43:32 +01:00
rdb 6f5362c3fe egg: Add missing include 2021-01-02 12:53:24 +01:00
rdb ea2816f4ea CMake: Add extension sources for egg and collide directories 2021-01-02 03:11:34 +01:00
rdb f003e3434e collide: Use virtual read_datagram/write_datagram on handlers 2021-01-02 02:40:52 +01:00
rdb e099d9e787 Merge branch 'release/1.10.x' 2021-01-02 02:33:35 +01:00
rdb a84f1b5595 express: distinguish between null vs empty in CPTA pickle as well 2021-01-02 02:22:06 +01:00
rdb c81c506df3 express: Fix PointerToArray comparison operator 2021-01-01 17:54:09 +01:00
rdb b2462c1d8c express: Support pickling PointerToArray objects 2021-01-01 17:42:30 +01:00
rdb e755f87130 pgraph: Add pickling for LoaderFileTypeRegistry
Useful to test that pickling singletons works
2021-01-01 17:08:55 +01:00
rdb c77593f3f0 egg: add pickle support to most EggData classes 2021-01-01 17:06:23 +01:00
rdb f8ce339960 collide: Add pickle support for most collision handlers
Also redo CollisionHandlerEvent pickling to use Datagram instead

Related to #1090
2021-01-01 16:56:18 +01:00
rdb 152d317c8c egg: Fix egg lexer state not being cleaned up after error 2021-01-01 15:52:57 +01:00
rdb 339331c1ad egg: Add properties to EggAnimPreload 2021-01-01 15:51:23 +01:00
rdb 8852c835fc collide: Support pickling for CollisionTraverser, HandlerEvent+Queue
Fixes #1090
2020-12-31 16:57:34 +01:00
rdb ac991e4c5e collide: Fix error with CollisionHandler's again_patterns property 2020-12-31 16:55:22 +01:00
rdb 8d22b80698 display: Fix memory leak in GSG::get_prepared_textures() 2020-12-31 16:43:37 +01:00
rdb e9c7d345df display: Move GraphicsPipe::_detected_display_zoom to class member 2020-12-28 16:31:23 +01:00
rdb b38e9d552a Merge branch 'release/1.10.x' 2020-12-28 16:26:48 +01:00
rdb 90fb31ac21 ffmpeg: Fix crash cleaning up audio/video context 2020-12-28 16:23:04 +01:00
rdb 21aa31f8c0 gobj: Fix build error on Windows 2020-12-28 12:07:17 +01:00
rdb 2b0a6b995a display: Add a way to query system DPI scaling
See #426
2020-12-26 16:25:51 +01:00
rdb 2156e6deb2 Merge branch 'release/1.10.x' 2020-12-26 14:00:29 +01:00
rdb 55d43a1d57 device: Fix macOS crash when unplugging device in threaded pipeline
Fixes #1082
2020-12-26 12:46:45 +01:00
rdb a3010a43a5 Merge branch 'release/1.10.x' 2020-12-24 15:31:52 +01:00
rdb 35b7ef0dcb shader: Add additional mode-based texture inputs to GLSL shaders
This adds the following inputs:
  p3d_Texture[] (as alternative to p3d_Texture0, etc.)
  p3d_TextureFF[]
  p3d_TextureModulate[]
  p3d_TextureAdd[]
  p3d_TextureNormal[]
  p3d_TextureHeight[]
  p3d_TextureSelector[]
  p3d_TextureGloss[]
  p3d_TextureEmission[]
2020-12-23 18:20:43 +01:00
rdb 05876317cf Add TextureStage::M_emission mode
This is similar to M_glow, except that the emission factor is in the RGB channels.
2020-12-23 17:33:59 +01:00
rdb 8dd3301c43 text: Fix issue with TextNode::set_text() called from non-App stage
Because TextEncoder is not pipeline-cycled, text_changed() should propagate text changes up to stage 0.

See #1070; this caused the frame rate meter to show 0.0 fps most of the frames.
2020-12-21 16:53:05 +01:00
rdb 3786dc2aea CMake: Fix detection and use of SSE2 compiler flag on MSVC
This is one half of the fix for #1072
2020-12-20 18:35:17 +01:00
rdb e08282003b putil: Give SimpleHashMap a type handle to enable memory usage tracking
Previously SimpleHashMap were entirely absent from the PStats memory statistics.
2020-12-20 01:02:23 +01:00
rdb dee8df9427 Merge branch 'release/1.10.x' 2020-12-20 01:02:08 +01:00
rdb ac021e94d6 putil: Ensure SimpleHashMap::_deleted_chain/_table are always initialized
Good to be on the safe side.
2020-12-20 00:59:55 +01:00
rdb f7ab42da56 putil: Fix memory leak in SimpleHashMap
Fixes #1077
2020-12-20 00:23:04 +01:00
rdb b5c857c73f pgraphnodes: Backport ShaderGenerator stub to 1.10.x
Needed if interrogate is being run with the __aarch64__ definition in a multi-arch build
2020-12-19 23:50:07 +01:00
rdb 10bb4a33d3 ShaderGenerator: remove unnecessary member, define all stub methods 2020-12-19 11:15:00 +01:00
rdb f65fd44c08 pgraphnodes: Add missing ShaderGenerator stub symbols 2020-12-19 02:56:41 +01:00
rdb 7ae72cd880 pgraphnodes: Fix ShaderGenerator includes 2020-12-19 02:00:59 +01:00
rdb 1c974092e4 express: Fix compile error with certain macOS SDKs 2020-12-19 01:00:07 +01:00
rdb abe3c2bf0b CMake: Mark all system macOS frameworks as advanced variables
It should be extremely unusual to want to change these, and they are just cluttering up the CMake GUI.
2020-12-19 00:33:22 +01:00
rdb 113dd6a357 CMake: Don't try to build FMOD Ex audio module for arm64 2020-12-19 00:26:22 +01:00
rdb 617a759fd2 pgraphnodes: Add exposed methods to ShaderGenerator stub
Since HAVE_CG is now dependent on __aarch64__, it otherwise relies on interrogate having been run with the same architecture flags.
2020-12-19 00:26:13 +01:00
rdb a5ae292c3e Merge branch 'release/1.10.x' 2020-12-18 12:56:31 +01:00
rdb 6f35cb0235 device: Silently ignore invalid evdev keycodes generated by some drivers
Fixes #1066
2020-12-15 12:33:22 +01:00
rdb fa8c8e71b5 gobj: Assert instead of crash if primitive references out-of-bounds vert 2020-12-14 16:54:20 +01:00
rdb 79714392cb gobj: Enable slightly more efficient GeomVertexReader/Writer ctor
This allows moving an existing PT(GeomVertexData) into the object, preventing an extra refcount increase.
2020-12-14 11:16:25 +01:00
rdb 902ada10b8 gobj: Slight optimization for GeomTristrips::append_unused_vertices() 2020-12-14 11:11:46 +01:00
rdb 454179a276 collide: Fix typo in STDFLOAT_DOUBLE case 2020-12-14 11:00:49 +01:00
rdb a11e21e4f4 audio: Fix sound resuming after reactivation if stop() was called while inactive
Backport of fix for #559
2020-12-12 19:50:48 +01:00
rdb e5eb5f8ed2 audio: Fix stop() not working for looped sound while sound is inactive
Fixes #559

Also fixes #1031 for FMOD
2020-12-12 18:45:45 +01:00
rdb 9f09857397 collide: Error checking for CollisionPolygon::setup/verify_points() 2020-12-12 17:28:41 +01:00
rdb eaf509a226 pgraph: Make PandaNode::r_copy_subgraph no longer virtual (unused) 2020-12-12 17:28:21 +01:00
rdb a1b2d5b8dc Make use of new function call methods in Python 3.9 2020-12-12 17:28:21 +01:00
rdb ab5730831c audio: Add some properties to AudioSound 2020-12-12 17:28:21 +01:00
rdb 2b29c757d9 pgraph: Optimization for GeomNode::add_for_draw() 2020-12-12 17:28:21 +01:00
rdb 251d73a47b ShaderGenerator: very slight optimization setting ShaderAttrib flags 2020-12-12 14:15:27 +01:00
rdb ac4faf3d74 text: Make TextNode pipeline-cycled
Fixes #1070

Note that text property changes are not pipeline-cycled at the moment.
2020-12-12 14:05:48 +01:00
rdb 54a4a6abfc Merge branch 'release/1.10.x' 2020-12-12 14:02:04 +01:00
rdb 761c54f63d pgui: Workaround for DirectEntry flickering issues w/ pipelining
See #1070.  This is a temporary solution (one which isn't complete- it doesn't properly handle state changes).
2020-12-12 13:57:49 +01:00
Daniel 4f63ef635d panda: Remove PyEval_InitThreads calls when compiling against Python 3.9+
Cherry-pick from #1053
2020-12-12 00:16:58 +01:00
rdb c8a35641c1 pgraphnodes: Remove unused variable 2020-12-10 17:37:05 +01:00
rdb ed397b3ab8 Merge branch 'release/1.10.x' 2020-12-09 17:59:37 +01:00
rdb bf59e880c6 bullet: Fix compilation error with Bullet 2.90+ 2020-12-09 16:25:29 +01:00
rdb 8e2c0dff4a pgraph: Hack fix for copying model with LightAttrib on root
When a LightAttrib is set on the root of a model and the light is contained within that model, creating a copy (like the one Loader makes automatically) causes the LightAttrib to still point to the original light, not to the newly copied light.

This works around it only for the case when the LightAttrib is set on the root, and only for the case of NodePath::copy_to() (it turns out there are edge cases when doing it in PandaNode::copy_subgraph() that would be hard to explain).

See Moguri/blend2bam#44
2020-12-09 15:51:36 +01:00
rdb 9525ddbfef pgraph: LightAttrib::get_on_light(n) should call check_sorted() 2020-12-09 15:48:10 +01:00
rdb 615502aef6 pgraphnodes: Support hardware instancing for LODNode
LODNode will now correctly calculate LOD for individual instances.

It turns out implementing it for FadeLODNode is hard (wrt. tracking state for individual instances) so I have not bothered with supporting it - FadeLODNode instead calculates a single switch level for all instances based on the centroid of the visible instances.
2020-11-26 16:47:35 +01:00
rdb e13756f43e pgraph: Support hardware instancing in BillboardEffect and CompassEffect 2020-11-26 16:47:11 +01:00
Daniel 54cb519dc9 panda: Remove PyEval_InitThreads calls when compiling against Python 3.9+
Closes #1053
2020-11-23 10:56:09 +01:00
rdb 01b2f1f759 gobj: Fix typo in docstring
[skip ci]
2020-11-23 10:54:03 +01:00
rdb 92e2c24958 Experimental InstancedNode class for hardware instancing 2020-11-22 22:01:13 +01:00
Daniel ac6a1a7874 collide: Expose CollisionPolygon's setup_points and verify_points to Python
Closes #1035
2020-11-22 22:01:07 +01:00
rdb 3d5f0b7fe1 gobj: Add methods for adding/removing GeomVertexData arrays 2020-11-22 15:37:38 +01:00
rdb 51a3a2b4a1 express: Fix VirtualFileMountZip not having init_type() called 2020-11-22 15:22:47 +01:00
rdb 8486d286b7 Merge branch 'release/1.10.x' 2020-11-22 15:19:51 +01:00
rdb 61a089ad59 ShaderGenerator: don't output unused attr_ambient input variable 2020-11-22 14:23:46 +01:00
rdb b12fcec099 glgsg: Fix handling of sized rgba formats in OpenGL ES 2020-11-22 14:21:34 +01:00
rdb d1e8554fde glgsg: Fix error message if vtx_normal is declred as float4 in Cg 2020-11-21 14:19:52 +01:00
rdb d62146a317 Merge branch 'release/1.10.x' 2020-11-17 23:56:00 +01:00
rdb 93900a203e putil: Backport part of 9d8c523dfa
Fixes #886
2020-11-17 23:36:06 +01:00
rdb 3abd157315 gobj: Fix a bad assertion comparison 2020-11-17 21:05:08 +01:00
rdb 3a2048e44a glgsg: Fix skinning shader being unable to render unskinned models
Panda was adding a column with weights (0, 0, 0, 0), but these weights don't add up to 1 so no useful identity matrix can be produced.  Instead it's better to fall back to the OpenGL default, (0, 0, 0, 1).

I'm also defaulting the transform_index values to (0, 1, 2, 3) to support non-indexed skinning (although that's pretty esoteric, given that that only supports 4 transforms...)
2020-11-17 21:01:56 +01:00
rdb c53f461f3f gobj: Fix typo in MatrixLens API documentation
Fixes #1042
2020-11-17 11:59:36 +01:00
rdb 8c3fd5b406 collide: Release GIL while during CollisionTraverser traversal
This is necessary to prevent deadlocking on the GIL if some Python code is trying to write some geometry while the CollisionTraverser is trying to read it.

Fixes #1033
2020-11-02 12:18:22 +01:00
rdb e83657f70f pstatclient: Prevent crash when using uninitialized PStatCollector 2020-11-02 11:02:49 +01:00
Brian Lach 57c9fbd86e glgsg: fix identical states never short-circuiting set_state_and_transform
Closes #1012
2020-11-02 11:02:49 +01:00
Brian Lach eb367430f7
openal: Fix paused sounds not resuming from where they were paused (#1031) 2020-10-08 17:17:36 +02:00
rdb c788912070 Merge branch 'release/1.10.x' 2020-10-02 12:20:58 +02:00
rdb f77813836d express: Fix compile error on Windows 2020-10-02 00:23:08 +02:00
Brian Lach 62225e441d x11display: Remove incorrect INLINE marker on these methods
Closes #1026
2020-10-02 00:07:22 +02:00
rdb 442e855a61 express: Fix a compilation issue in certain configurations 2020-10-02 00:06:52 +02:00
rdb 6d228dfd2e express: Add ZipArchive class, support mounting zips to VFS 2020-10-01 23:58:27 +02:00
rdb 4b7e32e9b0 egldisplay: Fix bad use of X11 None symbol instead of nullptr 2020-09-16 23:39:13 +02:00
rdb 921cbc6bae Merge commit 'e0d34131822a8852ff72dc9c5597f4dc6900719a' 2020-09-13 16:17:06 +02:00
rdb c7f75fc906 egg2pg: Add egg-force-srgb-textures environment variable
This will cause all textures in .egg files to be loaded with an sRGB format setting (except with an envtype that generally assumes a linear texture).

Fixes #1006
2020-09-13 15:17:02 +02:00
rdb 66ac3be604 Merge branch 'release/1.10.x' into master 2020-09-12 23:23:58 +02:00
rdb a968caf1d2 windisplay: Fix parented window receiving WS_POPUP style
Fixes #915
2020-09-12 15:38:50 +02:00
rdb d997be50ff glgsg: fix state tracking bug passing view parameters to shader
These parameters are already taken care of by set_state_and_transform().

Also comment out a few lines of code that would prevent the latter from being called for transform changes, but which never triggered anyway.
2020-09-09 18:06:42 +02:00
rdb 3daf1ae1b1 general: Assorted API reference fixes 2020-09-09 18:03:49 +02:00
rdb ad0e634292 egg: Add (discouraged) way to specify sRGB texture format (#924)
This should NOT be used by exporters, but is provided only for the sake of round-trippability of .bam files.
2020-09-06 14:44:44 +02:00
rdb 005d187ac4 egldisplay: Support creating a window with sRGB framebuffer 2020-09-06 10:14:28 +02:00
rdb 24fb2a2c88 egldisplay: Fix invalid software/hardware detection on Mesa 2020-09-06 09:21:21 +02:00
rdb 40842ef217 gles2gsg: fix sRGB texture support 2020-09-06 09:20:34 +02:00
rdb cca84131df gles2gsg: squelch warning about missing #version line in shader 2020-09-06 09:19:51 +02:00
LD 28f49ffd0b cocoadisplay: Use [event charactersIgnoringModifiers] when UCKeyTranslate() can not translate the input key 2020-09-01 20:29:53 +02:00
rdb 707ea089cb Merge remote-tracking branch 'origin/release/1.10.x' 2020-09-01 11:09:29 +02:00
rdb 1cc82f47b6 fmod: Fallback to opening file via callbacks if direct doesn't work
Fixes #1002
2020-09-01 10:41:34 +02:00
Mitchell Stokes d547225a55 Move speedtree code to contrib
SpeedTree support in Panda is unmaintained, so move it to contrib to better
reflect it's current status.

Closes #990
2020-09-01 08:57:57 +02:00
Derzsi Dániel 7f426ea64e
putil: Turn UniqueIdAllocator's free into an atomic operation (#999) 2020-08-29 15:17:20 +02:00
Daniel 085795db83 putil: Make UniqueIdAllocator safe for multithreaded usage
Closes #995
2020-08-27 14:35:47 +02:00
Daniel 95d1ac2f8b tests: Add proper tests for UniqueIdAllocator 2020-08-27 14:35:25 +02:00
rdb 9deb569441 pgui: Work around Windows bug with tab character in PGEntry
Fixes #994
2020-08-21 14:29:27 +02:00
rdb 4484aca8e1 Revert "pgui: Ignore PGEntry tab keypress"
This reverts commit 1f05d37b20.

See #994
2020-08-21 14:06:22 +02:00
rdb 7b9b65693a mathutil: Gracefully deal with "tails" in Triangulator
Fixes #985
2020-08-18 17:58:28 +02:00
rdb 5ef1db3fd3 Revert "mathutil: error instead of infinite loop if triangulation failed"
This reverts commit 9c4cb28805.

The "fix" wasn't very satisfying, I'm going to try another approach.
2020-08-18 17:25:58 +02:00
rdb 43507dd118 mathutil: Fix Triangulator bug cleaning up hole indices 2020-08-18 16:38:12 +02:00
rdb b655aa86c5 Merge branch 'release/1.10.x' 2020-08-17 13:05:51 +02:00
rdb 73b5316c6c gobj: add margin to float comparison in lens.project()
Fixes unit tests in double-precision build.

Cherry-picked from fa53e013cb
2020-08-17 12:42:34 +02:00
Mitchell Stokes dd77bd4cdf
shadergen: Make use of material alpha if present (#925)
The material alpha overrides alpha values from flat color or vertex colors. This follows what the fixed-function pipeline does.

Fixes #912
2020-08-17 12:27:03 +02:00
rdb 11fbdf4e6f nativenet: Assorted code clean-up 2020-08-17 10:31:22 +02:00
FReeshabh 56ed86334b general: Update header guard names to fit convention
Closes #899
2020-08-17 10:09:13 +02:00
Daniel 1f05d37b20 pgui: Ignore PGEntry tab keypress
Closes #885
2020-08-17 10:02:06 +02:00
rdb 9c4cb28805 mathutil: error instead of infinite loop if triangulation failed
Fixes #985
2020-08-11 09:38:41 +02:00
rdb dde0e5255d nativenet: remove unused and invalid HP_SOCK implementation
Closes #984
2020-08-10 10:49:29 +02:00
rdb 35d6f3daa3 Merge branch 'release/1.10.x' 2020-07-25 15:55:05 +02:00
rdb 72b96f1afa putil: define pbitops in terms of fundamental types
This ensures there's always an overload matching a particular definition of size_t / uint64_t, etc.
2020-07-25 09:53:15 -04:00
rdb dcc08ac572 Merge branch 'release/1.10.x' 2020-07-25 14:58:35 +02:00
Tohka c4af56620b gobj: Support registering texture pool filters from Python code
Closes #954
2020-07-25 14:54:32 +02:00
Mitchell Stokes 2893d8cef8 device: Fix erroneous dpad_*-up events when emulating a dpad on Linux
The first time axis are processed while a dpad axis is engaged will
result in the opposite dpad "button" getting set to a state of S_up from
S_unknown, which results in an '-up' event getting fired. Instead,
assume the emulated dpad buttons start in a state of S_up.

This fix is for the Joystick API and for the evdev API, but only the
evdev changes were tested.

Closes #973
2020-07-25 14:07:33 +02:00
rdb 3fe1d286d0 collide: Add docstring for CollisionTraverser::traverse() 2020-07-25 12:50:09 +02:00
rdb 9d91274739 gobj: Don't use Texture::up_to_power_2 for memory alignment
That method uses plain int, and will therefore fail for larger allocations.
2020-07-25 10:43:21 +02:00
Donny Lawrence 5d6ff0ecc8 cocoadisplay: Fix handling of shift modifier
Closes #967
Fixes #959
2020-07-25 10:27:18 +02:00
rdb e787929c85 Merge branch 'release/1.10.x' 2020-06-29 14:50:59 +02:00
rdb 40962e1eb5 gsg: Don't error for sampler/light type mismatch for non-casting lights
Closes #942
2020-06-29 12:17:36 +02:00
rdb d1ab940e93 pgraph: Fix texture replacement creating unique TextureAttrib
This needs a more thorough fix (probably on master), but the implicit sort is incrementing every time, and it is being included in the hash/compare, so every time the same texture is replaced on the same TextureAttrib, it will be a unique TextureAttrib, causing garbage to accumulate and the state system to be generally less effective.
2020-06-29 11:30:07 +02:00
rdb 04dd4fe354 pgui: Add PGItem Python properties 2020-06-22 22:50:15 +02:00
Fireclaw 0f2cf6d14b Add maximized property to WindowProperties, plus implementation (#809)
Closes #809

Co-authored-by: rdb <git@rdb.name>
2020-06-20 23:00:52 +02:00
rdb d01c53c2d8 Merge branch 'release/1.10.x' 2020-06-14 13:02:25 +02:00
rdb a9b158192f putil: fix crash in BitArray::has_any_of() 2020-06-14 12:55:52 +02:00
rdb 446c01c796 nativenet: change some error messages to debug messages 2020-06-14 12:52:01 +02:00
Nathan S ffef5968fe docs: some grammar fixes for meshDrawer2D
Fixes #941
2020-06-02 20:36:56 +02:00
rdb 55951c3025 pgraph: fix has_tags() after clearing Python tags
Fixes #936
2020-06-02 20:31:18 +02:00
rdb 9f1289b492 egldisplay: Support headless OpenGL via EGL when compiled without X11
See #557
2020-05-20 20:27:40 +02:00
rdb fbc4947455 egldisplay: Support creating headless GLES contexts
See #557
2020-05-19 22:34:05 +02:00
rdb f47b92347c glgsg: Fix framebuffer_copy_to_ram for OpenGL ES using BGRA format
Supporting BGRA doesn't necessarily mean that it supports using BGRA in glReadPixels, for OpenGL ES.  We need to check a separate extension.
2020-05-19 21:57:15 +02:00
rdb 6b19be495a display: fix long-standing typo in error message
How was this never caught?!
2020-05-19 20:24:45 +02:00
rdb d64944c108 pgraph: minor optimizations to GeomNode::add_for_draw() 2020-05-11 09:38:17 +02:00
rdb 26ba2b15cd collide: unexpose verify_points overload taking LPoint3 array
Similar as in #908
2020-05-11 09:09:00 +02:00
rdb dd9ed1109a downloader: Fix dead link in API documentation 2020-05-11 09:08:11 +02:00
rdb 7d94f601db shader: Make Cg load calls fail if compiling without Cg toolkit 2020-05-05 16:54:50 +02:00
rdb 9ad4e4586c collide: Use correct intersection point for sphere into poly
Previously, the reported surface and intersection points could be outside the polygon if the sphere was colliding with the edge.

Fixes #907
2020-05-05 16:52:21 +02:00
rdb 3598222977 Merge branch 'release/1.10.x' 2020-05-05 16:47:38 +02:00
rdb ed73394275 collide: fix erroneous collision if sphere is under edge of polygon
Reproducible by the code in #907, occurs if the sphere is close to the edge, but its center is off and under the polygon.
2020-05-05 16:33:20 +02:00
rdb 2ed4516cb2 collide: Unexpose CollisionPolygon constructor taking point array
This could never work in Python, and does indeed cause a crash, so I don't consider this compat-breaking.

Fixes #908
2020-05-05 14:51:31 +02:00
rdb e4573ef0fe cleanup: Remove more unnecessary nullptr checks before delete
Follow-up to #934
2020-05-05 14:46:30 +02:00
rdb 29f552a6ef task: Use TimeoutError from asyncio.exceptions on Python 3.8+
Fixes unit test failures
2020-05-05 14:35:43 +02:00
rdb bfbbcad990 task: Support calling cancel() on currently awaiting futures
Fixes #911
2020-05-05 13:21:49 +02:00
rdb b5d0e9eafc task: Fix memory leak when removing a task awaiting non-Panda future 2020-05-05 13:19:26 +02:00
rdb 1ff11c1e16 cleanup: Removal of unnecessary null checks around `delete`
Fixes #934
2020-05-05 10:41:16 +02:00
rdb 5030ad6b13 nativenet: reformat time_accumulator.h 2020-05-05 10:39:43 +02:00
rdb 3000aa2369 windisplay: Support relative mouse mode (using raw input)
Fixes #928
2020-05-02 11:10:37 +02:00
rdb 734bb8552c Merge branch 'release/1.10.x' 2020-05-02 10:51:17 +02:00
rdb 4b00f9e660 windisplay: Fix M_confined mode confining cursor to incorrect region
It should be confined to the client rect, not the window rect.

Fixes #929
2020-05-02 10:47:37 +02:00
rdb 3f0ff827f3 wgldisplay: Support floating-point window framebuffers on Windows
These are linearized scRGB, and necessary to make Panda work on HDR monitors.
2020-05-01 20:33:52 +02:00
rdb 6ad9eeb5a1 CMake: generate panda3d.dist-info directory
This makes pip recognise that Panda3D has been installed and setuptools recognise the build_apps and bdist_apps commands.
2020-04-30 21:37:35 +02:00
rdb d799a09002 cleanup: Remove support for EOL versions of Python
Fixes #905
2020-04-26 20:07:56 +02:00
rdb e2177ecbdb Merge branch 'release/1.10.x' 2020-04-26 00:16:25 +02:00
rdb c59a039fa8 pgraph: fix RenderState/TransformState count in PStats exploding
This was a regression in 1.10.6 that caused PStats to misreport the amount of RenderState/TransformStates in the application.
2020-04-25 23:39:03 +02:00
Ashwini 80ab6a28c4 pnmimage: Added offset to add_sub_image and mult_sub_image
Closes #903
2020-04-25 22:56:40 +02:00
Joel Stienlet f2e67169bc corrects bug: wrong case entered in MultiplexStreamBuf::Output::write_string() in panda/src/downloader/multiplexStreamBuf.cxx
Closes #902
2020-04-25 22:19:34 +02:00
rdb 00305bccae device: fix failure to open message-only window
Not sure why I was getting this, but this seems to fix it
2020-04-13 15:10:29 +02:00
rdb c40aa7addc egg: remove register keyword from lexer.cxx.prebuilt 2020-04-13 15:10:29 +02:00
Mitchell Stokes 46dc9444d3 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 #881
2020-04-02 13:53:56 +02:00
rdb b511eabb0f 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
2020-04-02 12:41:14 +02:00
rdb 088a1f3774 display: fix crash with oversized p3d_LightSource array
This was a regression in 89f1a0e63c

Closes #897
2020-04-02 12:32:20 +02:00
rdb 94571aac93 collide: improve performance of colliding with visible geometry 2020-04-01 20:31:19 +02:00
rdb b306806512 char: add joint property to JointVertexTransform 2020-04-01 20:31:19 +02:00
rdb f192a0cdb6 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.
2020-04-01 20:31:19 +02:00
rdb 9d8c523dfa 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 #886
2020-04-01 20:31:16 +02:00
rdb e4819f2b5c pipeline: fix compilation error on Windows with simple threading 2020-04-01 18:59:44 +02:00
rdb 30d9f88f8e Merge branch 'release/1.10.x' 2020-04-01 18:53:00 +02:00
rdb 064da09cf0 putil: add pickling support to Datagram class 2020-04-01 18:25:43 +02:00
rdb 1c6d57f92b CMake: Write panda3d/dtoolconfig.py like makepanda does 2020-04-01 12:19:03 +02:00
rdb c4c99ca24a CMake: fix bad location of panda3d/__init__.py in multiconfig build 2020-04-01 12:19:03 +02:00
rdb b05ae1f762 tform: fix MouseWatcher ABI incompatibility with NDEBUG builds 2020-03-30 14:06:39 +02:00
rdb cefc92a775 glgsg: fix wrong shadow buffer host when rendering scene to buffer
Fixes #890
2020-03-30 14:02:31 +02:00
rdb c81bfb09b7 shader: default fog exponential density to 0 if fog is disabled 2020-03-30 14:01:50 +02:00
rdb b286780ae6 pgraph: fix typo in comment 2020-03-30 13:56:55 +02:00
rdb c185de3018 Merge branch 'release/1.10.x' 2020-03-19 20:20:25 +01:00
rdb 329abe2b3e x11: fix raw button events for dead keys 2020-03-19 12:33:51 +01:00
rdb 43fa7efaaa 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 #843.
2020-03-18 18:29:42 +01:00
rdb eeeea274a4 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 #844
2020-03-18 17:58:51 +01:00
rdb 707b4fb866 gobj: don't strip .bam textures that contain only a clear color
Second part of the fix for #844
2020-03-18 17:51:39 +01:00
rdb e138096578 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 #844
2020-03-18 17:51:05 +01:00
rdb f1da4d4666 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).
2020-03-18 17:47:04 +01:00
rdb b549133b3e collide: protect info print with is_info() check
This prevents an unnecessary sqrt
2020-03-16 14:55:42 +01:00
rdb 880e956429 grutil: fix ShaderTerrainMesh not working with compressed-textures 2020-03-16 14:55:13 +01:00
rdb 244c880f38 bam2egg: change overloaded method (for ABI reasons) to default arg
This is a follow-up to ebd538a7f8
2020-03-14 15:03:55 +01:00
rdb f524f00e8e Merge branch 'release/1.10.x' 2020-03-14 15:01:38 +01:00
rdb 1b67931f16 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.
2020-03-14 14:59:20 +01:00
rdb 9966ddaa33 bam2egg: support multitexturing, multiple UV sets 2020-03-14 14:53:07 +01:00
rdb ebd538a7f8 bam2egg: fix skinning bug for joints with DefaultPose 2020-03-14 14:48:31 +01:00
rdb c5c1d4557b pgraph: fix double free if weak ptr to state is locked while being gc'ed
Fixes #499
2020-03-10 12:10:23 +01:00
rdb 515ce931b9 Merge branch 'release/1.10.x' 2020-03-08 10:37:05 +01:00
rdb 17776b0666 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
2020-03-08 10:31:03 +01:00
rdb e8d8f20acb collide: fix pusher convex angle detection for visible geometry
Previously it was only working for CollisionPolygon.

Fixes #879
2020-03-08 10:30:04 +01:00
rdb 7b40a6a0e4 x11: restore locale after opening input method
Fixes #728
2020-02-29 17:00:28 +01:00
rdb 9fb60b18e7 Merge branch 'release/1.10.x' 2020-02-29 16:58:45 +01:00
rdb 9431d5013f ShaderGenerator: fix texture transforms applied to normal map
Fixes #808
2020-02-29 16:21:59 +01:00
rdb 1c357f32ca putil: fix asserts when model-cache-dir cannot be created
Fixes #790
2020-02-29 15:08:05 +01:00
rdb f98c14c290 tform: prevent MouseWatcherRegion leave event being fired twice
Fixes #858
2020-02-29 12:10:20 +01:00
rdb 3963c5de04 x11: fix raw key down being sent repeatedly when holding key
Fixes #874
2020-02-29 11:43:33 +01:00
rdb 918d268b80 Merge branch 'release/1.10.x' 2020-02-28 15:57:06 +01:00
rdb 4383fceba2 x11: fall back to @im=none if XOpenIM failed
This helps if the user has configured an invalid input method in their XMODIFIERS variable.
2020-02-28 15:53:21 +01:00
rdb b225a3260b x11: fix support for dead keys
It seems to be required to pass a window to XCreateIC for receiving dead keys.
2020-02-28 15:50:48 +01:00
rdb 8bf6385627 char: fix deadlock regression in 3ac504e 2020-02-27 00:01:34 +01:00
kamgha 0df97a2c6b CMake: Fix Windows library names for case-sensitive filesystems
Closes #865
2020-02-23 16:28:40 +01:00
Thaumaturge 50d27166d8 particles: expose birth_litter() to support burst emission
Closes #524
Closes #340
2020-02-23 15:17:57 +01:00
rdb c59b91f503 Merge branch 'release/1.10.x' 2020-02-23 14:53:16 +01:00
rdb 18bb8a5559 pgraph: fix for additional columns in munge_points_to_quads()
Fixes #870
2020-02-23 14:48:57 +01:00
rdb 54cf7b9a5d 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).
2020-02-23 14:04:42 +01:00
rdb e2d6c4cb30 x11: don't include numpad keys in get_keyboard_map()
This is a hack until we introduce separate ButtonHandles for numpad keys
2020-02-23 14:02:59 +01:00
kamgha c2866ea4ed Fix includes for Windows on case-sensitive filesystems
Closes #866
2020-02-22 12:55:45 +01:00
rdb d0337b8233 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 #746.
2020-02-20 12:19:36 +01:00
rdb fda898807a Merge branch 'release/1.10.x' into master 2020-02-10 13:52:05 +01:00
rdb 3ac504ec16 char: attempt to make Character class thread-safe 2020-02-10 12:49:45 +01:00
rdb 141482fc53 char: remove deprecated overload of Character::merge_bundles() 2020-02-10 12:01:53 +01:00
rdb 21f1743c55 pgraph: remove unused method declarations from PandaNode 2020-02-09 12:04:46 +01:00
Leandro (Cerberus1746) Benedet Garcia 5f7809469c general: removed all WIN32, WIN32_VC and friends 2020-02-05 22:45:03 -07:00
rdb 2b632c8e20 cocoa: use resolved filename to load cursor image (thanks treamous) 2020-02-01 09:49:35 +01:00
rdb edc31ce9ca 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.
2020-01-31 11:12:28 +01:00
rdb 1baef394b6 Merge branch 'release/1.10.x' 2020-01-31 11:08:43 +01:00
rdb e13e9851f2 shader: //Cg profile should only affect the current shader
Fixes #863
2020-01-31 11:01:44 +01:00
CYBERDEViLNL dbb65549ea bullet: Fix BulletHeightfieldShape::fillin
Closes #860
2020-01-31 10:59:26 +01:00
rdb 89f1a0e63c 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 #846.
2020-01-25 19:26:50 +01:00
rdb 0300ac8d3b glgsg: hack fix for p3d_TextureMatrix[] error on macOS (#846) 2020-01-22 15:43:26 +01:00
rdb b272af8bbf Merge branch 'cmake' 2020-01-22 11:20:51 +01:00
rdb 26b86dfe5f Merge branch 'release/1.10.x' 2020-01-22 11:20:24 +01:00
rdb b573cc3587 cocoa: fix compilation issues with new NSCursor hotspot code
See #849
2020-01-22 09:47:58 +01:00
Sam Edwards f5b6761128 CMake: Don't build socket_tcp_ssl.* anymore (deleted upstream) 2020-01-21 18:25:17 -07:00
Sam Edwards 36e06236a9 CMake: Remove IS(_NOT)_DEBUG_BUILD 2020-01-21 17:42:17 -07:00
rdb 68a4031b22 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.
2020-01-21 15:38:17 +01:00
rdb 876cb60220 char/chan: clean up MovingPartScalar/CharacterSlider constructors
These changes are a follow-up to 8b6f82256e but could not be made on that branch due to ABI compatibility reasons.
2020-01-21 15:34:33 +01:00
rdb 05d5bac598 Merge branch 'release/1.10.x' into incoming 2020-01-21 15:34:25 +01:00
Donny Lawrence 4f4b14dd2b cocoadisplay: Use hotspot read from .cur files
Previously, the cursor's hotspot defaulted to (0,0). Fixes #845.

Closes #849
2020-01-21 14:53:19 +01:00
Donny Lawrence 17dddeedc4 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 #847
2020-01-21 14:52:01 +01:00
rdb 8222255b3b 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.
2020-01-21 14:45:27 +01:00
rdb 4819e2ce3a nativenet: drop unused Socket_TCP_SSL
This removes the dependency of libpanda on OpenSSL.
2020-01-20 11:56:27 +01:00
rdb 8b6f82256e char: allow creating CharacterSlider with default value 2020-01-20 00:43:50 +01:00
rdb 98268b59c0 chan: publish AnimChannelScalarTable constructor 2020-01-20 00:32:49 +01:00
Donny Lawrence 28711814e7 device: Replace erroneous && with ||. 2020-01-15 16:04:37 -06:00
rdb 246e73e325 framework: fix a debug output not protected by is_debug() check 2020-01-13 16:27:58 +01:00
rdb b9aa4f2448 dxgsg9: fix debug messages not protected by is_debug() check 2020-01-13 16:27:48 +01:00
rdb 0b0f3d2f8e dxgsg9: drop support for old dxerr9.lib (part of #433)
This drops support for the *really* old DX SDKs.  We still support the June 2010 SDK.
2020-01-13 16:00:31 +01:00
rdb 640683cdb9 Merge branch 'release/1.10.x' 2020-01-13 15:12:55 +01:00
rdb 1bb4a032aa Drop support for Windows XP 2020-01-13 15:06:44 +01:00
Sam Edwards 7331692ae1 CMake: Generate consistent paths in 20_panda.prc on all platforms 2020-01-11 19:39:43 -07:00
rdb 6f782ce519 pnmimage: don't return values larger than 1.0f from from_val() 2020-01-08 03:30:27 +01:00
Sam Edwards ce6caa8d3e CMake: `/etc/*.prc` -> `/etc/panda3d/*.prc` 2020-01-07 17:04:30 -07:00
rdb b212d254d0 Merge branch 'release/1.10.x' into incoming 2020-01-07 22:09:59 +01:00
rdb 09bddf4315 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.
2020-01-07 21:57:22 +01:00
rdb da8ba5de17 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.
2020-01-07 21:38:04 +01:00
rdb c9fb371e87 device: correction for DualShock 4 support on Windows 2020-01-07 21:25:26 +01:00
Sam Edwards f75a8d03e0 CMake: Generate panda.prc with `notify-level warning` when not Debug 2020-01-07 13:11:42 -07:00
Sam Edwards 4a307f9cdf 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
2020-01-07 13:05:21 -07:00
Sam Edwards 69ff54a3d4 CMake: Break up "GLES" component into OpenGLES1/OpenGLES2 2020-01-07 11:34:34 -07:00
rdb 27fe133df5 device: attempt to fix DualShock 4 analog axis mapping 2020-01-07 15:23:14 +01:00
LD a56b85dbed cocoadisplay: Fix switch to fullscreen on macOS 10.9 using current display resolution 2020-01-07 14:09:05 +01:00
Sam Edwards e08896deb7 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)
2020-01-06 17:12:37 -07:00
Sam Edwards c39bda57a0 CMake: On Apple, silence build-time OpenGL deprecation warnings 2020-01-06 17:12:05 -07:00
rdb 651cf189fc display: remove CPUID ASM, use __get_cpuid(_max) (on macOS too)
I think this requires at least XCode 5.
2020-01-06 21:08:10 +01:00
rdb 81b33a7afa Merge branch 'release/1.10.x' 2020-01-06 21:06:57 +01:00
rdb bf6dbefdd2 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.
2020-01-06 18:18:02 +01:00
Nathan S b78f0b0881 device: add support for DualShock Gen 2 (PS4) controllers on Windows
Closes #831

Co-authored-by: rdb <git@rdb.name>
2020-01-06 16:17:02 +01:00
rdb 389cc4bfdb Merge branch 'release/1.10.x' 2020-01-06 03:25:22 +01:00
LD f68604a3f5 cocoadisplay: Fix regression introduced by 45461e667a
Closes #829
2020-01-05 23:01:49 +01:00
rdb 399797d0b1 physics: fix assertions when particles get very large positions
Fixes #822
2020-01-04 21:13:49 +01:00
rdb a8a775ad09 Merge branch 'release/1.10.x' 2020-01-04 02:49:28 +01:00
rdb 0e1b524885 gobj: fix Material ambient/diffuse/specular when reading from bam
Fixes #828
2020-01-04 01:21:54 +01:00
rdb 24783924d0 pgraph: fix int return from bool method 2020-01-04 01:21:54 +01:00
rdb 135931c926 pgraph: fix faulty comparison code of ShaderInput vectors 2020-01-03 22:00:09 +01:00
rdb fe1ecd5e79 pgraph: fix ShaderInput ordering for vector inputs with small floats
Fixes #827
2020-01-03 18:48:23 +01:00
rdb 2b9cc61d04 grutil: fix wrong method name in LineSegs docstrings 2020-01-02 00:36:29 +01:00
rdb afd7fc8a25 dxgsg9: don't try to Release() vertex buffer if it failed to create 2019-12-31 17:15:07 +01:00
LD ff1a2632bd cocoa: Remove now useless respondsToSelector for setWantsBestResolutionOpenGLSurface
Closes #820
2019-12-30 03:07:15 +01:00
Leandro (Cerberus1746) Benedet Garcia 12f8363284 linmath: support round(), floor(), ceil() in vector classes
Closes #821
2019-12-30 03:06:00 +01:00
rdb b78b7be326 Merge branch 'release/1.10.x' 2019-12-30 01:50:54 +01:00
LD 45461e667a cocoadisplay: use same scaling factor as the current view when switching to fullscreen on MacOS 10.15+
Fixes #794
2019-12-29 22:24:56 +01:00
rdb fccffb4932 glgsg: fix texture extraction of MRTs in OpenGL ES
Fixes #815
2019-12-29 17:47:36 +01:00
rdb 8bb9abfbb0 x11display: fix compile warnings 2019-12-29 13:55:28 +01:00
rdb e13719132b dxgsg9: don't attempt to restore gamma if it wasn't modified 2019-12-28 18:04:55 +01:00
rdb b656b0bbf9 dxgsg9: recreate vertex buffer if size was modified
Fixes #824
2019-12-28 18:01:51 +01:00
Sam Edwards cdc16291dd 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.
2019-12-24 17:20:43 -07:00
rdb 3c3eee2295 glgsg: attempt to fix stereo FBOs in OpenGL ES 2 (#815) 2019-12-18 18:01:42 +01:00
rdb 390abac276 Merge branch 'release/1.10.x' 2019-12-18 18:00:41 +01:00
rdb 72c5555dc0 device: invert digitizer Y axis on Linux to match Windows
It may intuitively feel upside down, but the current behaviour actually matches base.mouseWatcherNode, so this is probably the most consistent thing to do.
2019-12-18 17:55:44 +01:00
rdb 986b803e71 device: recognize digitizers and pressure axis as well in evdev
Note that the Y axis is still inverted compared to on Windows; we need to decide what convention to follow here.
2019-12-17 22:56:26 +01:00
rdb b67c7dd84f device: support digitizers via Win32 raw input API 2019-12-17 22:33:27 +01:00
Aidan Noll 49f423822d net: switch some socket operations from std::string to vector_uchar
Closes #753
2019-12-11 17:10:32 +01:00
rdb 0e56ddc438 cocoa: remove pre-10.6 code 2019-12-11 17:05:51 +01:00
Brian Lach 48ff3aeb08 pgraph: use bit flags instead of incremental enum for ShaderAttrib flags
The flags in the enum are actual bit flags instead of indices. This allows for setting/clearing a mask of flags in one go, rather than having to set each flag in its own function call. Existing code shouldn't be affected.

Closes #688
2019-12-11 16:49:42 +01:00
leotada 636c3d044a bullet: change wheel get/setSteering to use degrees
Fixes #757
Closes #784
2019-12-11 16:49:42 +01:00
Sam Edwards 86e3e6e166 shader: Fix missing include 2019-12-08 14:30:21 -07:00
rdb 406268c2e9 shader: use specific PStatCollector and group markers for shader compile
This makes it possible to determine which shader is taking which amount of time to compile.
2019-12-08 15:19:38 +01:00
rdb 9565d99fab Merge branch 'release/1.10.x' 2019-12-08 15:18:51 +01:00
rdb 55f624e073 windisplay: add a variable to disable Panda's message pump
This is particularly important for Tcl/Tk, which assumes it is in charge of the Windows event loop.

Fixes #586
2019-12-08 15:04:06 +01:00
Sam Edwards 4000199acb CMake: Fix Bullet building under clang-cl 2019-12-05 10:34:48 -07:00
LD 791be4766a MacOS: Don't crash if no elements are returned by IOHIDDeviceCopyMatchingElements
Fixes #797
2019-12-03 23:26:25 +01:00
Leandro Benedet Garcia 71dfc51f8a general: Changed macros and definitions for the engine to compile with MinGW (#793) 2019-12-02 09:21:01 -07:00
LD f72c72b36a MacOS: Force disable application HiDPI support on NSView, fixes #794 2019-11-29 10:07:48 +01:00
Sam Edwards 23f779e799 downloader: Simplify HTTPDate's timezone-correction code 2019-11-27 11:45:08 -07:00
Leandro Benedet Garcia ae33d62978 general: Update EXPCL declarations to be MinGW-friendly (#792) 2019-11-27 11:25:24 -07:00
Sam Edwards a37eabe089 CMake: Set generated prc's `model-cache-dir` properly for Windows/macOS 2019-11-25 03:03:03 -07:00
Sam Edwards 4556059c90 CMake: Use find_program to detect host tools when cross-compiling
In the future, we should also try to do find_package(Panda3D) to use
the host tools even if Panda3D isn't in a system path.
2019-11-13 15:30:26 -07:00
rdb d08219584d particles: combine two soft_start() overloads created by #769 2019-11-11 03:29:46 +01:00
rdb d088263f6f Merge branch 'release/1.10.x' 2019-11-11 03:28:39 +01:00
Thaumaturge c0daa75353 particles: add parameter to delay particle birth in soft_start()
Also adds a get_tics_since_birth() getter.

This feature can be used to synchronize different particle effects.

Closes #769
2019-11-10 20:33:45 +01:00
rdb ccca3cca3a gobj: fix crash printing out residency trackers 2019-11-10 19:23:10 +01:00
rdb 2d836697b0 glgsg: fix issue extracting texture data for multiview textures 2019-11-10 19:20:10 +01:00
rdb cb01d45eb6 glgsg: fix RTM_copy_ram for multiview textures 2019-11-10 19:09:31 +01:00
rdb 6fd662335d express: fix typo in VirtualFileSystem docstring 2019-11-09 20:27:03 +01:00
rdb f1b235e065 gobj: use range for where possible in PreparedGraphicsObjects
This makes the code easier to read and maintain.
2019-11-09 14:45:00 +01:00
rdb 9201d75bbe gobj: fix crash on shutdown with cached buffer contexts
This was a regression from 207263c1a8
2019-11-09 14:39:49 +01:00
Sam Edwards 9b7bcf2564 Merge branch 'master' into cmake 2019-11-07 21:21:04 -07:00
rdb bbb334abea audio: sound.set_time() should take effect immediately
Fixes #770
2019-11-06 10:49:27 +01:00
rdb 847ebf667f Merge branch 'release/1.10.x' 2019-11-06 10:49:05 +01:00
Sam Edwards 856754a3de general: Don't abuse PyErr_Restore
The intended purpose of this function is to restore an exception
that has already been raised and saved with PyErr_Fetch. It should
not be used to raise new exceptions nor should it be used to clear
the current exception.

The especially egregious example is
`PyErr_Restore(exc_type, nullptr, nullptr);`
as the null value may not be handled correctly.
2019-11-05 18:44:20 -07:00
Sam Edwards cf59d3d983 CMake: Remove p3dtoolconfig from build
It's just p3prc now, so instead we install some symlinks
2019-11-04 14:02:06 -07:00
Sam Edwards f7ac439eb1 CMake: Fix p3pgraph build with MSVC+Eigen 2019-11-04 13:41:36 -07:00
rdb 78c3db379c gobj: fix tests crash due to ShaderBuffer context not cleared at GSG death 2019-11-03 11:48:51 +01:00
rdb 9a7e103c33 collide: restore missing CollisionTraverser.showCollisions()
This was an accidental regression in e48a40abad which unexposed CollisionVisualizer and therefore caused this method to no longer be wrapped by Interrogate.
2019-11-02 20:43:21 +01:00
rdb 6d96028b71 Merge branch 'release/1.10.x' 2019-11-02 20:42:32 +01:00
rdb c611abc6c2 physx: fix a pair of misformatted docstrings 2019-11-02 20:39:29 +01:00
rdb 3bfd994cf8 general: Fix a couple of misformatted docstrings. 2019-11-02 19:54:25 +01:00
rdb 39988e4787 general: update a few outdated links in API documentation 2019-11-02 19:41:56 +01:00
rdb a72be90f17 Merge branch 'release/1.10.x' 2019-10-29 23:13:22 +01:00
rdb fd8405cd87 x11display: change info message about unavailable XF86DGA to warning 2019-10-25 10:26:32 +02:00
rdb 3e99d16eb1 gobj: clarify range of GeomPrimitive::offset_vertices() parameters 2019-10-25 10:25:11 +02:00
rdb dae762f52b pstatclient: fix compile error when compiling without DO_PSTATS 2019-10-25 10:24:30 +02:00
David Rose 41fa3c52e3 further fix to pfmFile.resize() 2019-10-18 12:50:52 -07:00
David Rose 210780f021 fix array overrun in PfmFile.resize() 2019-10-17 08:31:39 -07:00
Sam Edwards 12c16eb9ff Merge branch 'master' into cmake 2019-10-15 23:43:25 -06:00
Sam Edwards 9ecaa0056b CMake: Break out p3interrogatedb as a first-class library 2019-10-15 23:27:03 -06:00
Sam Edwards 73ed31b935 CMake: audiotraits and ffmpeg are MODULE, not SHARED
This is important as it forces the lib prefix on Windows,
and omits creating an import .lib when building shared.
2019-10-10 10:42:46 -06:00
rdb 6dcaab2d3a glgsg: fix multisample FBO for 16-bit float buffer
Fixes #756
2019-10-10 15:18:45 +02:00
rdb a019520dbc gobj: don't define GeomVertexReader::empty_buffer in opt3 build 2019-10-08 19:52:42 +02:00
rdb e48a40abad collide: unexpose CollisionVisualizer
The fact that this class only exists in opt3 builds makes it hard to offer ABI compatibility guarantees with opt4 builds; most users probably use this thorugh the high-level interface, so let's unexpose this until someone complains.
2019-10-08 19:51:24 +02:00
rdb 247f3c415a Merge branch 'release/1.10.x' 2019-10-08 19:50:48 +02:00
rdb 08572f3c38 general: Fix a variety of ABI incompatibility issues with opt4 builds 2019-10-08 19:44:29 +02:00
rdb 0247f9e3fa physics/particlesystem: remove some unused macros 2019-10-08 19:43:17 +02:00
rdb 5b938278c2 physics: also add set_name/get_name if NDEBUG is set, for ABI compat 2019-10-07 11:36:58 +02:00
rdb 1eeea718c5 display: fix ABI compat with GraphicsStateGuardian flash texture 2019-10-06 11:54:31 +02:00
rdb ec6638314c general: remove some oddly-placed audio_error macros 2019-10-06 11:51:15 +02:00
Sam Edwards 5961cc2ee0 Merge branch 'master' into cmake 2019-10-05 15:00:49 -06:00
rdb 114a7c0995 Merge branch 'release/1.10.x' 2019-10-05 21:13:42 +02:00
rdb 207263c1a8 display: handle resource releases in batches, not individually
This is intended to eventually replace the old interface, since GSGs may be able to do a batch of prepare/release operations more efficiently.
2019-10-05 21:13:32 +02:00
rdb 802a08b146 glgsg: fix unnecessary create-delete-create of new textures 2019-10-05 21:13:22 +02:00
rdb 8b0256e0f9 glgsg: fix NV driver crash after deletion of buffer that is still bound to a generic attribute index not used by Cg shader after having been used by a GLSL shader directly prior if no shaders are used afterwards 2019-10-05 21:04:09 +02:00
rdb 3a19dfb62e Fix load_dso error message sometimes being suppressed 2019-10-05 20:56:58 +02:00
rdb 12e71ff1a6 Merge branch 'release/1.10.x' 2019-09-30 14:03:50 +02:00
rdb 9f9e1d8293 chan: print out actual anim info when showing AnimBundleNode in ls()
This allows one to more easily discover the animations present in a scene graph, such as when using bam-info -ls to inspect a .bam file.
2019-09-30 14:02:53 +02:00
rdb 66b338c112 mathutil: workaround for infinite loop in Triangulator
Fixes #737
2019-09-18 15:45:45 +02:00
rdb 9d14117ad3 Merge branch 'release/1.10.x' 2019-09-16 21:20:20 +02:00
rdb f4926bff20 Fix a variety of ABI compatibility issues
We need third-party extensions that link with the Panda3D libraries to continue to work when shipping them with the optimized libraries that deploy-ng uses.  To do this, we need the optimized build not to omit symbols that these extensions might depend on.
2019-09-16 03:33:09 +02:00
Mitchell Stokes 660249a5cc Remove p3d/AppRunner/plugin system
Co-authored-by: rdb <git@rdb.name>

Closes #734
2019-09-10 16:49:57 +02:00
rdb 2c42cfcc1a Merge branch 'release/1.10.x' 2019-09-10 16:34:11 +02:00
rdb 05ed918d63 general: mark deprecated methods with the @deprecated tag
This makes them easier to find and, if necessary, automatically generate deprecation warnings for.
2019-09-08 09:50:28 +02:00
rdb 6428e1b3cb Merge branch 'release/1.10.x' 2019-09-06 15:51:34 +02:00
rdb 8b241b8c18 windisplay: fix issues with losing mouse cursor confinement
Fixes #727
Fixes #729
2019-09-06 15:36:36 +02:00
Sam Edwards 9512b2274b CMake: Remove libtar, unneeded downloadertools progs 2019-09-06 04:07:42 -06:00