Commit Graph

11210 Commits

Author SHA1 Message Date
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 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 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 3a41db130b gobj: Fix Texture.set_ram_image_as for 3D and multiview textures
Fixes #1095
2021-01-12 23:13:02 +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 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 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 55d43a1d57 device: Fix macOS crash when unplugging device in threaded pipeline
Fixes #1082
2020-12-26 12:46:45 +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 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 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 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 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 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 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 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 4b7e32e9b0 egldisplay: Fix bad use of X11 None symbol instead of nullptr 2020-09-16 23:39:13 +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 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 1cc82f47b6 fmod: Fallback to opening file via callbacks if direct doesn't work
Fixes #1002
2020-09-01 10:41:34 +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 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
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 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
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 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 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 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 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 b5d0e9eafc task: Fix memory leak when removing a task awaiting non-Panda future 2020-05-05 13:19:26 +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 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 064da09cf0 putil: add pickling support to Datagram class 2020-04-01 18:25:43 +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 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 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 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 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 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 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 2b632c8e20 cocoa: use resolved filename to load cursor image (thanks treamous) 2020-02-01 09:49:35 +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 0300ac8d3b glgsg: hack fix for p3d_TextureMatrix[] error on macOS (#846) 2020-01-22 15:43:26 +01:00
rdb b573cc3587 cocoa: fix compilation issues with new NSCursor hotspot code
See #849
2020-01-22 09:47:58 +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 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 6f782ce519 pnmimage: don't return values larger than 1.0f from from_val() 2020-01-08 03:30:27 +01:00
rdb c9fb371e87 device: correction for DualShock 4 support on Windows 2020-01-07 21:25:26 +01: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
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
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 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 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
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
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
LD 791be4766a MacOS: Don't crash if no elements are returned by IOHIDDeviceCopyMatchingElements
Fixes #797
2019-12-03 23:26:25 +01:00
LD f72c72b36a MacOS: Force disable application HiDPI support on NSView, fixes #794 2019-11-29 10:07:48 +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 78c3db379c gobj: fix tests crash due to ShaderBuffer context not cleared at GSG death 2019-11-03 11:48:51 +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 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
rdb 6dcaab2d3a glgsg: fix multisample FBO for 16-bit float buffer
Fixes #756
2019-10-10 15:18:45 +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
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 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 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
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 8b241b8c18 windisplay: fix issues with losing mouse cursor confinement
Fixes #727
Fixes #729
2019-09-06 15:36:36 +02:00
rdb 323f74cb55 event: squelch unprotected NewFrame event spam warning 2019-09-04 10:19:01 +02:00
rdb 79c71a5d97 pgraph: fix missing includes of *Collection classes in nodePath.h 2019-09-03 22:46:18 +02:00
rdb 833f778cb7 pnmimage: add quantize feature to reduce number of colors in image 2019-08-28 22:44:16 +02:00
rdb f63b3a86b9 loader: add LoaderFileTypeRegistry.unregister_type() 2019-08-20 13:23:11 +02:00
rdb c2f49f4c4a loader: a few additional checks for Python loader plug-ins 2019-08-20 13:23:11 +02:00
rdb 6364485b49 ffmpeg: fix an unprotected debug print 2019-08-19 21:58:08 +02:00
rdb 818ed57894 linmath: work around obscure MSVC optimization bug with Eigen 2019-08-18 18:07:00 +02:00
rdb 1e846709d3 Add various @since tags to methods that are new in 1.10.4 2019-08-17 13:49:47 +02:00
rdb 0e27f19d94 bullet: fix various unprotected debug() prints 2019-08-14 15:07:06 +02:00
rdb c54f964a3b bullet: workaround for deadlock adding shape to scaled body (#689) 2019-08-14 14:38:58 +02:00
rdb acb0a41049 ode: fix several unprotected debug() prints
This should especially help with trimesh generation performance, which previously formatted a complete description of the trimesh to the debug output even if it was disabled.
2019-08-14 13:11:02 +02:00
rdb 8f9d0ab6f6 pgraph: fix some TextureAttrib state cache issues
The _render_stages and _render_ff_stages cannot simply be copied, because they contain pointer references to the previous TextureAttrib.  Never copy them, and always mark _sort_seq as stale.

This fixes a test failure in replace_texture.
2019-08-13 18:08:48 +02:00
rdb 8be70ed16d glgsg: auto convert to srgb(a) if sluminance not supported
This is particularly the case when requesting a core-only profile (gl-version 3 2) where luminance textures are deprecated.

There is apparently no way to emulate them with swizzles (as we do with luminance textures), so we'll have to duplicate the channels out.

Fixes #693
2019-08-12 21:04:48 +02:00
rdb dc599901bc Work around shutdown hang when compiling with SIMPLE_THREADS=1
This is a workaround for a specific case of #508
2019-08-12 19:37:11 +02:00
rdb 932e981572 device: fix deadlock when building with SIMPLE_THREADS=1
GetMessage blocks without yielding, so we need to use an alternative message pump using PeekMessage instead.

Fixes #704
2019-08-12 19:34:17 +02:00
rdb 42dff65e4d general: fix various unprotected debug() outputs
These should be protected by an is_debug() check so that they can be optimized out properly in a release build.  Setting check-debug-notify-protect in Config.prc can be used to track down cases of missed checks.
2019-08-03 10:33:43 +02:00
Mitchell Stokes f2686c5ad8 glsl: Fix Shader::_error_flag not being set on compile errors (#622) 2019-08-01 12:14:31 +02:00
rdb 7f385b5ddf glsl: fix use of multiple p3d_TextureMatrix[] values 2019-07-30 19:30:15 +02:00
rdb 5449f963a5 loader: fix leak of EntryPoint.name reference 2019-07-30 19:29:18 +02:00
rdb aea5ee8c7a task: work around MSVC compiler bug crashing test suite in release mode 2019-07-30 18:38:16 +02:00
rdb 93ed9632ac loader: fix incorrect EXPCL that prevents compilation on Windows 2019-07-30 13:28:10 +02:00
rdb 7b9f87412a loader: support Python loader plug-ins
This allows defining custom loader types from Python code.  Packages can use metadata entry points to register file types with the loader.

Example code: https://gist.github.com/rdb/cb3c2f4a98ce371c722e3f297b445153
2019-07-30 13:04:46 +02:00
rdb f989bce584 wgldisplay: don't restore gamma atexit if we never modified it
This avoids possible instability (see #685) when this feature isn't even used
2019-07-29 17:05:36 +02:00
rdb 224a32090f task: fix other task chains still running after exception occurs
A task returning DS_interrupt would only interrupt the current task chain, not the entire task manager.  This meant that other tasks might get run with an exception state set, causing the exception state to get stomped on or the Python interpreter to complain.

Fixes #692
2019-07-26 08:30:16 +02:00
rdb 9dd35f9c3a gobj: default current_thread arg for Geom.get_animated_vertex_data() 2019-07-16 13:40:14 +02:00
rdb 23232a5b20 pgraphnodes: fix assert when analyzing geoms with strip cut index 2019-07-15 19:42:33 +02:00
rdb ce6d02b8d7 egg: remove unused matrix_2d variable 2019-07-15 14:54:55 +02:00
rdb 11990833fe text: fix compilation warnings with implicit int->char32_t cast 2019-07-10 11:20:15 +02:00
rdb 4bb31029f0 pgraph: fix ScissorAttrib compare (fix flickering DirectScrolledFrame)
Fixes #681
2019-07-10 11:14:54 +02:00
rdb bac376541f pgraph: add NodePath.replace_texture() 2019-07-10 09:53:42 +02:00
rdb ab238bd153 gobj: support non-affine transformations in calc_tight_bounds
This makes it possible to get the 2D bounding volume of an object as it appears on screen.
2019-07-10 09:30:16 +02:00
rdb 291f3825f4 ffmpeg: fix rare "bad src image pointers" after seek
Fixes #391
2019-05-13 13:53:34 +02:00
rdb f183d901cb bullet: sync rigid body transform when node is reparented
Reparenting a node will change its net transform, so it should cause a transform sync.

Fixes #629
2019-05-13 13:53:33 +02:00
rdb 750afbb188 device: Linux fixes for Trust GXT 24 and a few other cheap gamepads
Fixes #576
2019-05-12 20:34:19 +02:00
rdb c1c74e2cd3 mathutil: add some more assertion checks to PerlinNoise2 2019-05-12 19:22:26 +02:00
rdb f25532db78 glgsg: properly handle shader compilation failure
Fixes #645
2019-05-03 20:49:08 +02:00
rdb 0568312324 windisplay: add config var to disable Ctrl+V behaviour
Fixes #512
2019-05-03 19:41:27 +02:00
rdb 54c6eaeb96 pgui: allow keyboard keys to be added as PGButton click buttons
These will respond as clicks not when the mouse cursor is hovering over them, but when they have keyboard focus.

Fixes #600
2019-05-03 19:22:21 +02:00
rdb 475bd55bb1 glgsg: add gl-forward-compatible config variable
This is meant to be used alongside gl-version to request a "forward compatible" OpenGL 3.0 or 3.1 context, which removes support for deprecated features such as the fixed-function pipeline.
2019-05-03 15:46:01 +02:00
rdb 53612512d5 glgsg: more reliable check for core/compat profile
Fixes #643
2019-05-03 15:43:20 +02:00
rdb 7f0ac22ca5 device: fix mappings for various generic gamepads on Windows
See also #576
2019-05-02 21:32:31 +02:00
rdb cc4d5259cc linmath: fix mat4.get_col3() and mat4.get_row3() when using Eigen 2019-05-02 19:40:23 +02:00
Sebastian Hoffmann 16c3ca5c87 device: Fix swapped axes on right stick for Jess Colour Rumble Pad
Closes #639
2019-05-01 17:19:18 +02:00
rdb d9d30cdfd2 collide: compat for typo'ed respect_prev_transform property in 1.10 2019-04-29 22:29:36 +02:00
rdb 333db2b17e movies: fix compilation issue in MSVC 2015 2019-04-29 22:28:59 +02:00
rdb fa1ff3d489 movies: fix for loading unseekable Opus files
Same fix as 00b3fbdb1a but for Opus files.
2019-04-29 11:41:13 +02:00
rdb 2c55663472 movies: allow seeking compressed Ogg Vorbis file to beginning 2019-04-29 11:39:30 +02:00
rdb a726592244 movies: support looping compressed .wav files
Any kind of skipping is supported on any kind of stream, actually, but some uses may require reopening the file and skipping some number of bytes, so a warning will be displayed in some cases.

I figure this feature is particularly interesting for .wav files since they are (1) often used for short samples, where skipping bytes is not really a big deal, and (2) aren't inherently compressed so would benefit particularly from zlib compression.
2019-04-29 10:48:04 +02:00
rdb 00b5faca2d ode: add OdeBody.joints property 2019-04-29 01:06:44 +02:00
Rishabh Tewari bfb50ab7ff device: don't crash on Linux if no devices are found
Fixes #634
Closes #635
2019-04-29 00:32:34 +02:00
rdb 00b3fbdb1a movies: fix for loading unseekable ogg vorbis files
Now, compressed/encrypted ogg files will properly be detected as unseekable, and will still be able to be played.
2019-04-28 22:57:06 +02:00
rdb ca5b4e7b54 ode: fix OdeJoint.attach with None parameters
Fixes #633
2019-04-28 22:29:29 +02:00
rdb 186d8feef4 movies: properly detect extension of pz/gz audio/video files 2019-04-28 21:49:23 +02:00
rdb 239dc40032 device: fix crash when unplugging certain devices on macOS
Fixes #621
2019-04-14 22:11:20 +02:00
rdb 5530074945 cocoa: fix crash when typing with RIME as input method
Fixes #620
2019-04-14 22:10:32 +02:00
rdb 5d3499dc64 x11display: fix crash when starting in fullscreen on Linux/X11
Fixes #618
2019-04-14 18:01:55 +02:00
rdb 98227daaa5 putil: fix SparseArray::clear_range et al
Fixes #588
2019-04-14 17:11:42 +02:00
rdb 8b79fb75b9 glgsg: allow multisampling on FBO even if host has no multisamples
Fixes #601
2019-04-09 13:24:52 +02:00
rdb 77d6a9f5c9 ffmpeg: add "FFmpeg" tag to PandaSystem 2019-04-09 12:09:21 +02:00
rdb 1a9867ae2e device: remove executable permissions from inputDeviceSet.* 2019-04-02 02:08:47 +02:00
rdb 3ea562d404 collide: handle degenerate case for into-sphere test more robustly
This case happens, for example, when colliding a capsule with identical begin and end points into a sphere.
2019-03-29 13:29:14 +01:00
rdb 63a764a61b display: fix missed cases in 364d5d82fe 2019-03-29 13:28:12 +01:00
rdb 364d5d82fe display: don't apply color-scale-via-lighting to shader inputs
This isn't working properly at the moment, since the state gets set for the *next* object, causing significant artifacts.  I wasn't entirely sure whether to restore the "proper" behavior or not, since applications may be relying on one or the other behavior, but enabling this feature for shaders is a minefield and it's a lot better to just tell people to use p3d_ColorScale instead.
2019-03-26 23:12:41 +01:00
rdb b0a5cceafd glgsg: fix support for matrix arrays in vertex data 2019-03-21 12:35:53 +01:00
Sam Edwards c63562088b device: Fix missing include 2019-03-18 04:10:35 -06:00
rdb 4f94b3aa0e egg2pg: fix CollisionBox generation for transformed objects
Rather than xforming after the fact, which does not work properly for boxes, we need to apply the transform to the vertices around which the box is generated.

Fixes #506
2019-03-17 19:07:47 +01:00
rdb e486bbcb3f collide: fix printing CollisionBox 2019-03-17 19:06:45 +01:00
rdb 029d7363cd distort: fix use of cylindrical_k in oSphereLens.cxx 2019-03-17 00:17:11 +01:00
rdb bafd523e2b mathutil: fix bad assert in BoundingBox::set_min_max 2019-03-12 15:36:47 +01:00
rdb 0e70997fbf x11display: fixes for multi-monitor and fullscreen support
- DisplayInformation now gives the list of display modes returned by XRRGetScreenResources if RandR 1.2 is supported, which is apparently more reliable than the previous XRRSizes/XRRRates approach.
- Switching fullscreen on X11 to the current resolution on the CRTC that the monitor is on will make the window cover the CRTC properly, rather than forcing the window to have an origin of (0, 0).
- Passing in the pipe's display width/height is commonly done to go fullscreen at native res, but this may not correspond to a real display resolution.  It now detects when this is done, and interprets this as "go fullscreen at the native resolution on the current CRTC".

Fixes #575
2019-03-10 19:33:13 +01:00
rdb 08c686ba18 windisplay: fix issues with runtime fullscreen switching 2019-03-08 11:14:56 +01:00
rdb 45778b9e9f device: use threaded message loop on Windows (see #562) 2019-03-04 16:20:52 +01:00
rdb 4e92b708ff Merge branch 'macosstuckwindowfix' of github.com:treamology/panda3d into release/1.10.x
Closes #536
Fixes #534
2019-03-04 12:23:53 +01:00
rdb 155b1c38ad bullet: properly expose bullet_contact_added_callback symbol
Fixes #571 (alongside 92993fe889)
2019-03-03 21:14:47 +01:00
rdb 92993fe889 bullet: fix assert when setting mass before shape (#571)
Requires compiling Bullet in debug mode to reproduce.
2019-03-03 21:13:36 +01:00
rdb 7f4491cb98 device: disable message loop in WinInputDeviceManager for now
This was a change in aadc62a96c but seems to cause other problems, see #562
2019-03-02 12:39:42 +01:00
rdb 1f9b4690e6 pgraph: fix writing to SequenceNode frame_rate property 2019-02-19 21:29:21 +01:00
rdb 6a008ae724 x11display: fix threaded crash when using get_keyboard_map() 2019-02-19 21:21:22 +01:00
rdb ba3a826bff gobj: fix crash reading unaligned float4 column in GeomVertexReader
Observed when calling flatten_strong() on model with vertex colors loaded via Assimp.
2019-02-17 13:02:56 +01:00
rdb 9bf37051ac collide: fix _collider_sort not copied in CollisionNode copy ctor
See #554
2019-02-17 10:56:02 +01:00
rdb 20f0a69c75 pipeline: use decimal representation for unique thread ID on FreeBSD
This matches the behaviour on Linux.
2019-02-14 22:40:46 +01:00
rdb f97ba9000b pipeline: don't use uninitialized value for main thread unique id
See #554
2019-02-14 22:39:56 +01:00
rdb 18b7350400 egg: update prebuilt parser.cxx and parser.h 2019-02-12 00:31:13 +01:00
rdb 4d0970c072 pgraph: StencilAttrib.make() takes default write_mask argument 2019-02-11 23:48:00 +01:00
rdb f741c9476f display: fix lighting being disabled when only AmbientLight is on 2019-02-10 16:19:45 +01:00
rdb 3875cc8259 device: add proper mapping for 8bitdo N30 Pro Controller on Linux 2019-02-07 22:28:04 +01:00
tc 96bb90b5e9 cocoa: guarantee 24bit depth when Config.prc has `depth-bits` set to `1`
Checks if the value of Config.prc for `depth-bits` is `1` and sets it
manually to 24.
This prevents getting a 16 bit depth buffer on macos
Intended to address #501

Closes #551
2019-02-07 22:26:54 +01:00
rdb 0ef9f9bef5 device: various button/axis mapping fixes in Windows raw impl
Now uses a table like on Linux with the various mappings.
2019-02-06 22:06:43 +01:00
rdb f8d7941fe8 device: fix a bad axis mapping on Linux 2019-02-06 22:03:44 +01:00
rdb 1b4035f29a device: move HID API definitions to separate header file 2019-02-06 21:56:47 +01:00
rdb aadc62a96c device: fix inability to detect devices with pipelining enabled
This is because the message window is being created in the main thread, but there is nothing processing messages in the main thread.
2019-02-06 21:51:06 +01:00
rdb 63d2992d5e egg: add ability to read <Tangent> with four components
This is not intended to be used just yet in 1.10, but already added in preparation for changes on master to support #546.  I'm just allowing Panda to parse the syntax ahead of time to reduce potential .egg incompatiblities.
2019-02-05 00:30:54 +01:00
rdb 2afd604c9d collide: implement capsule-into-invsphere and box-into-invsphere tests 2019-02-04 23:50:53 +01:00
rdb 22cac1cdf9 device: fix stack corruption crashes on 32-bit Windows 2019-01-31 18:23:29 +01:00
rdb 0ba1235d35 ShaderGenerator: print out generated shader in spam output mode 2019-01-31 00:05:23 +01:00
rdb 0e447b7429 ShaderGenerator: do shadow map calcs in fshader if out of varyings
If too many shadow-casting lights are active, too many TEXCOORD varyings will be used and a shader compilation error will be displayed.  Instead, Panda will now just do the calculation in the fragment shader if not enough varyings are available.  It's slower, but better than crashing.
2019-01-30 23:54:22 +01:00
rdb dc8f01df8a ShaderGenerator: pack eye-space normal to save one varying
Only when normal mapping is enabled.
2019-01-30 23:51:50 +01:00
rdb 9d12a4c437 general: improvements to doxygen API reference:
* In C++ reference, only pick up classes defined in .h file
* Add a few excludes to C++ reference that aren't public API
* On class index pages, reduce number of columns
* Add @since for some methods/classes that are new in 1.10.0
* Fix/improve a few docstrings here and there
2019-01-23 22:24:02 +01:00
rdb 66655aae85 device: fix incorrect features when printing InputDevice 2019-01-21 15:32:22 +01:00
rdb 7968022c23 Fix some warnings comparing char against EOF
This is not possible on platforms where char is unsigned.  In cases where fail() is checked, it is also unnecessary.
2019-01-20 00:31:43 +01:00
rdb 7d09451b2d display: remove unused iterator variable 2019-01-19 23:08:14 +01:00
rdb 73076c7115 android: add missing include for open() definition 2019-01-19 23:04:19 +01:00
rdb e4f0a9ce32 pgraph: allow getting NodePath from CullTraverserData in Python 2019-01-19 22:59:51 +01:00
Donny Lawrence 2c513ba1c4 Move handle_close_event() call to windowShouldClose, which only triggers when the close button is pressed by the user. 2019-01-13 19:07:43 -05:00
Sam Edwards 955081f81f movies: Fix missing includes in {opus,vorbis}AudioCursor.cxx 2019-01-13 13:59:08 -07:00
Donny Lawrence d51db6e39e Fix an instance where a macOS window will stick around when trying to have it destroyed.
This commit also removes an extraneous call to [_window setReleasedWhenClosed], which is already set in cocoaPandaWindow's init method.
2019-01-13 11:54:56 -05:00
rdb 84a1315104 More fixes to work around broken libc++ eof() in Mac OS X 10.7 2019-01-10 21:53:02 +01:00
rdb 3ccfbfaba7 putil: fix hang reading bam due to macOS libc++ bug in istream::eof()
Apparently eof() in older versions of libc++ returns true if the last character has just been read, whereas the proper behavior is only to return true when attempting to read past the end of the stream.  Since failbit is reliably set in all cases when reading past the length of the stream, we should only trust the result of eof() if fail() also returns true.
2019-01-09 22:56:40 +01:00
rdb 60a944e783 glgsg: fix shader inputs not being updated in esoteric case
Specifically, this happens if you have a custom ShaderGenerator that assigns shader inputs via the ShaderAttrib.  If two objects then both have the auto-shader turned on, and the shader generator generates ShaderAttribs with the same shaders but different inputs, the inputs will not be updated properly for one of the objects.
2019-01-09 22:39:36 +01:00
rdb 886d44d15d glgsg: fix multisampling for floating-point framebuffers 2019-01-09 22:39:05 +01:00
rdb d1845530aa task: fix mutex recursion when task awaiting other task ends 2019-01-09 22:12:02 +01:00
rdb e64a342a9f task: fix error awaiting already scheduled task
To reproduce this issue, try `await taskMgr.add(Task.pause(1.0))`
2019-01-09 20:10:10 +01:00
rdb 84df25cfe3 glgsg: fix sRGB support in multisample FBOs 2019-01-09 00:49:14 +01:00
Sam Edwards 0cd850fbb4 vision: Allow including from OpenCV's videoio, for 3.x+
This commit doesn't add buildsystem support yet.
2019-01-06 15:33:11 -07:00
rdb d106fd6a3a device: added checks, robustness, debug output for Windows raw input 2019-01-05 22:00:34 +01:00
rdb 7e562b0eb3 device: remove unused variables on Windows 2019-01-03 16:01:10 +01:00
rdb 8cdeb9b60b device: fix a case issue in include statement 2019-01-03 15:34:30 +01:00
rdb 3e22578529 New branding images for 1.10.0 2019-01-03 14:44:17 +01:00
Sam Edwards 6e951773a6 pipeline: (Light)ReMutexDirect should include thread.h
Thread methods are used in the respective .I files, so
an incomplete forward declaration won't suffice here.
2019-01-02 01:41:25 -07:00
rdb c365beaf11 device: hide Steam Controller on Linux while Steam is running
When Steam runs, it mutes all input from the Steam Controller and instead registers a virtual gamepad that obeys the Big Picture controller remapping.  We want to make sure to pick that one, since the "real" Steam Controller doesn't report any events while the virtual device is active.  So we carefully consider the "real" Steam Controller "inactive" if the presence of the virtual device is detected, until the virtual device is disconnected (ie. when Steam is closed) or if it turns out that it is generating events after all, in which case it gets automatically reactivated.

This is a bit of a hack, maybe there is a cleaner way of doing this.
2019-01-02 00:56:40 +01:00
rdb dccf8074fd android: fix compile errors in androiddisplay module 2019-01-01 22:05:26 +01:00
rdb a02920bb42 device: detect XInput devices on start-up
This is needed to handle cases where XInput is being emulated, such as when running via Steam with the Steam Controller active.  Steam's shim does not send out WM_INPUT_DEVICE_CHANGE events.
2019-01-01 16:27:55 +01:00
rdb 2bde2baed2 device: a couple of fixes with Windows device input 2019-01-01 16:23:16 +01:00
rdb c61b480a41 Revert "bam2egg: support exposed joints properly"
This reverts commit dee4cd6201.

Fixes #237
2018-12-31 17:07:42 +01:00
rdb 6559932c7b ShaderTerrainMesh: silently reload texture if it has no RAM image
Fixes #492
2018-12-31 16:28:27 +01:00
rdb f3ba1d317c device: support for Steam Controller on Linux
Adds lgrip and rgrip button handles, which are present on Steam Controller but also on the Oculus Touch
2018-12-31 16:10:56 +01:00
rdb 4699dfcd5b ShaderGenerator: fix toggling shadows while shader gen is on 2018-12-31 14:07:14 +01:00
rdb 83374de0ff shader: don't use GENERIC profile to compile Cg shaders
Instead, make an educated guess of what the GSG we are going to be compiling this shader for wants to use as profile.
2018-12-31 14:01:26 +01:00
rdb 9382e09b7c display: fix returning reference to temporary in shader input
This might cause issues when the transform cache is off.
2018-12-31 13:13:45 +01:00
rdb 8119547e90 device: add hacky detection of Trust GXT 24 as gamepad for now 2018-12-31 13:12:40 +01:00
rdb 0cfd86d0f4 glgsg: warn if Cg shader uses float4 vtx_normal
See #495; Cg's glslv profile does not handle a float4 vtx_normal well and causes garbage to be in the w coordinate.
2018-12-31 13:11:33 +01:00
rdb 42405dff2e pnmimagetypes: fix allocation efficiency in PNG reader
Rather than making one allocation per row, it instead makes one allocation for all rows.
2018-12-30 20:13:12 +01:00
rdb 73083127bf x11display: bypass compositor when switching to fullscreen mode 2018-12-30 16:59:32 +01:00
Sam Edwards 952031455c express: Remove stray reference to DConfig 2018-12-29 02:29:56 -07:00
Sam Edwards 5d74411c37 display: Fix export/import macro for MouseAndKeyboard
It was moved here from device, so we should not use
EXPCL_PANDA_DEVICE anymore.
2018-12-28 20:59:14 -07:00
Sam Edwards bc2450441d device: Fix some includes 2018-12-28 20:59:09 -07:00
rdb 31c532387e pgraph: remove unused weakKeyHashMap.h import 2018-12-28 21:36:16 +01:00
rdb 30446952cb putil: remove no-longer-used WeakKeyHashMap for now 2018-12-28 21:26:46 +01:00
rdb 01915a36db Merge branch 'master' into deploy-ng 2018-12-26 23:41:50 +01:00
rdb 981c44f636 glgsg: fix misleading errors from p3d_LightSource[].shadowMap 2018-12-26 23:31:48 +01:00
rdb 669a655366 Fix ShaderBuffer cleanup assertion with state cache disabled 2018-12-26 22:47:14 +01:00
Donny Lawrence f29643dd14 cocoa: Prevent a deadlock when using SIMPLE_THREADS on macOS
Closes #491
Fixes #490
2018-12-26 22:47:14 +01:00
Donny Lawrence 0fa0ad673f cocoa: use CVDisplayLink on macOS to sync video to display(s)
Closes #487
Fixes #486
2018-12-24 13:36:13 +01:00
rdb 8cb7f7d9c0 ffmpeg: don't hold AV lock while fetching first packet/frame
This allows loading multiple videos side-by-side more effectively.

Closes #397
2018-12-23 22:28:12 +01:00
rdb e2574af82d collide: create compatibility header collisionTube.h
This is a separate commit from the previous one in order not to confuse Git's rename tracking.
2018-12-23 22:28:12 +01:00
rdb bd6ef2b0ea Rename CollisionTube to CollisionCapsule (bam 6.44)
Adds ability to register "obsolete" names for certain types under older .bam versions, so that we are still able to write out old .bam files.

Fixes #347
2018-12-23 22:28:06 +01:00
rdb b40ecd6c51 general: fix some old-style docstring comment blocks 2018-12-23 16:27:08 +01:00
rdb 729a2364bc windisplay: remove unused WHQL stuff 2018-12-23 16:25:29 +01:00
rdb 9035b4a610 pgraph: don't bother calling xform() on empty BoundingVolume 2018-12-19 20:56:42 +01:00
rdb 837d3d6b6d tform: add properties to MouseWatcherRegion 2018-12-19 20:54:48 +01:00
rdb cbda6166a8 tform: fix MouseWatcherRegion area calculation
Fixes #233
2018-12-19 20:54:34 +01:00
rdb daa3100bf1 pgraph: mark TransformState as invalid in destructor
This, in combination with ebef9f3de8, makes it easier to catch issues in code that is accidentally letting get temporary TransformState objects get destroyed.  It does not affect release builds.
2018-12-19 20:47:57 +01:00
rdb ebef9f3de8 pgraph: add assertions to prevent invalid TransformState
If this commit is causing crashes in your code, it is probably exposing a bug in some other system that is assigning bad TransformState objects.
2018-12-19 20:45:57 +01:00
rdb 5cafe8552b gobj: add F_rg, F_rg16, F_rg32, F_rgb32 to TexturePeeker 2018-12-19 20:26:51 +01:00
rdb 840f28ef18 glgsg: fix framebuffer_copy_to_ram format for float framebuffers 2018-12-19 12:43:39 +01:00
Mitchell Stokes 88470106b6 Merge branch 'master' into deploy-ng 2018-12-18 20:44:16 -08:00
Mitchell Stokes 587237577f deploy-ng: Move distribution related files from direct.showtutil to direct.dist 2018-12-18 20:33:12 -08:00
Mitchell Stokes 8dcb735f2b x11display: Release M_relative mouse when window loses focus
Fixes #480
2018-12-18 19:43:37 -08:00
rdb 11526852ed glgsg: add ability to get red/rg-only floating-point renderbuffers 2018-12-18 20:00:59 +01:00
Derzsi Dániel b7d638e53d
pgraph: fix BillboardEffect regression with older models
In older BAM files (version <= 6.42), _fixed_depth will have an uncertain value after loading, leading to incorrect transform calculations, which cause rendering issues (see issue #474)
2018-12-18 16:49:00 +02:00
rdb 4c0fa1e75d Merge branch 'master' into deploy-ng 2018-12-16 22:36:45 +01:00
rdb 6b8814f9c9 mathutil: add some properties for bounding volumes 2018-12-16 21:03:43 +01:00
rdb 65a86d1b3f shader: warn if GLSL shader does not contain #version line
Shaders without #version line (which are supposed to indicate GLSL 1.10) will be interpreted differently by different drivers, so this is almost certainly a mistake.  In the future, we can forbid this altogether or insert #version 110 automatically.
2018-12-16 21:01:38 +01:00
rdb 73452957ee gobj: better handle NaNs in vertex data when calculating bounds 2018-12-16 20:43:30 +01:00
rdb a7752da4f1 Merge branch 'master' into deploy-ng 2018-12-09 20:22:23 +01:00
rdb a17ac6516c pgraph: fix regression in 89236ac136 2018-12-09 20:19:40 +01:00
rdb b5b77e5956 pgraph: fix issues with serializing empty NodePaths 2018-12-09 20:16:55 +01:00
loblao 68b7986557 NodePath: Implement replace_material
Closes #472
2018-12-09 19:05:25 +01:00
rdb 4213e0a50a Remove awesomium (see #440) 2018-12-09 15:53:23 +01:00
Mitchell Stokes a5ad186a66 x11display: Do not grab the mouse in confined mode when the window does not have focus 2018-12-08 17:21:59 -08:00
rdb ca9ad5f174 pgraph: fix ignored fixed_depth parameter 2018-12-07 00:57:21 +01:00
rdb 89236ac136 pgraph: fixed-depth billboards, bam additions (6.43)
This makes it possible to use BillboardEffect to specify a fixed distance to the camera, in order to keep them at a fixed apparent size.

This also enables serialization to .bam of the reference NodePaths of BillboardEffect and CompassEffect.
2018-12-06 23:52:58 +01:00
rdb b38faadf5f bullet: restore behavior of in_contact flag
c18abad8c3 added a call that resets the m_isInContact flag, so this resets it, for better or worse.  We may want to revisit whether #349 was indeed the right fix to #250.

Fixes #453
2018-12-06 22:29:09 +01:00
rdb 3adc7d977e glgsg: fix compilation in double-precision mode 2018-12-04 16:16:05 +01:00
rdb fb8a2f2af0 Revert "openal: Grab volume from manager instead of assuming max volume."
This reverts commit 7fb30ae070.

See #64 for discussion.
2018-12-04 15:54:02 +01:00
rdb 3c6b6e47ec glgsg: don't call glLineWidth with higher value than maximum
Officially, in core profile OpenGL 3.2+, calling it with a value higher than 1.0 is an error, but many vendors seem to let us.  Apple's implementation does not.  It appears that checking the maximum line width is a way to deal with this.

Fixes #466
2018-12-04 15:53:56 +01:00
rdb 301957c591 gobj: improve performance of GeomPrimitive::make_nonindexed()
It now no longer has to create two GeomVertexArrayDataHandle objects for every vertex it visits.
2018-12-04 12:36:03 +01:00
Donny Lawrence 8a0f438156 Get rid of the flickering that occurs on Mojave as a result of changes in the way AppKit handles view layers. 2018-12-03 23:05:05 -05:00
rdb f2f4b4c264 Merge branch 'master' into deploy-ng 2018-12-02 16:26:13 +01:00
Younguk Kim ad8a6b4a88 display: fix pointer casting in get_pointer() 2018-12-02 14:44:40 +09:00
rdb c560c502b9 Merge branch 'master' into deploy-ng 2018-12-01 22:14:01 +01:00
rdb 7ed8b01a84 Merge branch 'input-overhaul' 2018-11-30 22:04:13 +01:00
rdb 585ba2d647 Prepare input API for multipointer support 2018-11-30 20:54:37 +01:00
rdb 29170278e9 device: a few InputDevice API tweaks
find_button() and find_axis() should not error since there is no way to find out whether a button/axis exists or not
2018-11-30 20:54:35 +01:00
rdb 2087d8ee84 device: change InputDevice enums to enum classes 2018-11-30 20:41:06 +01:00
rdb cc08bacec5 cocoa: fix compilation error 2018-11-30 17:13:35 +01:00
David Staer aa750f4046 Fix BulletCapsuleShape creation from Panda CollisionTube
Functions get_point_a() and get_point_b() appear to return the top of the cylinder section of the tube, not the tip of the endcap, making subtracting the radius unnecessary.
2018-11-29 23:24:09 +08:00
rdb d7124d4df4 Merge branch 'master' into deploy-ng 2018-11-29 12:57:49 +01:00
rdb 97d4e32a06 general: use nassert_raise instead of nassertv(false) et al
Even a brief error message in the assertion is infinitely more useful to a user who is not at home in the source code, especially for assertions that may reasonably be triggered by honest user mistakes.
2018-11-28 17:35:20 +01:00
rdb 594e6b394b chan: add various property interfaces to animation system 2018-11-28 16:46:49 +01:00
rdb 69f8f8b7b7 ffmpeg: remove call deprecated in ffmpeg's libavformat 58.9.100 2018-11-28 16:22:27 +01:00
rdb 85cb742f79 ffmpeg: drain avcodec contexts on close, fixes leak
Fixes #398
2018-11-28 16:14:45 +01:00
rdb 32df05b528 Fix crash when unmounting/closing multifile while streams are open
It's not really reasonable to expect a user to find every occurrence of a cached resource that might be using an open stream and remove it or crash otherwise.

This is fixed by keeping the multifile stream open as long as any substreams are still pointing to it, using a simplified reference counting (care is taken not to fully make StreamWrapper reference-counted, since it's not in express and existing uses should not be broken).

Fixes #449
Also see #428
2018-11-27 21:19:38 +01:00
rdb 7ed9655e06 openal: fix leak of sound data when uncache_sound on stream
This is an addendum to cd2ea97b1f (fix for #428) which did
not properly delete the SoundData when uncaching sounds that were loaded as streams.
2018-11-27 21:11:57 +01:00
rdb 5dd0db300b flac: fix leak; properly close stream upon closing FlacAudioCursor 2018-11-27 20:59:51 +01:00
rdb da079c5ffe glxdisplay: remove lock in dtor, which causes crash on shutdown 2018-11-27 17:10:40 +01:00
rdb c427357db9 pnmimage: fix PixelSpec coercion, add PixelSpec unit test 2018-11-27 17:09:40 +01:00
rdb 37d2ff64de putil: add id and pressure fields to PointerData 2018-11-25 23:38:07 +01:00
rdb 26fcf131c9 Merge branch 'master' into input-overhaul 2018-11-25 17:10:31 +01:00
rdb 272f13023e glgsg: unbind buffers after draw callback
Some libraries (eg. Kivy) leave their buffers bound, so this takes care of that.
2018-11-25 16:46:38 +01:00
rdb 7c0a77af78 display: disable depth test before DisplayRegion draw callback
Having depth test disabled is the default OpenGL state, and callbacks may quite reasonably expect to see the default state.  Kivy seems to expect this, for one.
2018-11-24 22:45:41 +01:00
rdb 544ef137ee x11display: fix crash with multithreading and NVIDIA driver 2018-11-24 22:44:55 +01:00
rdb 3f91615a22 glgsg: reset color write mask before calling draw callback 2018-11-23 00:23:52 +01:00
rdb bafb0ac3db x11display: add x-init-threads var to call XInitThreads()
This is off by default, but could be used if you stumble upon a race condition issue with X11 and threading.
2018-11-23 00:22:27 +01:00
rdb 8ad0cb6b57 glgsg: add support for p3d_FragData fragment output
This is necessary for GLSL 1.30 which deprecates gl_FragData but does not yet support layout(location=) specifiers

Also fix some function pointer checks for pre-GL 3.0

Fixes #455
2018-11-22 23:55:54 +01:00
rdb 0a1b6df648 glxdisplay: grab X11 lock around various GLX calls 2018-11-22 23:14:29 +01:00
rdb 254cea63bb display: fix assertion in threaded pipeline 2018-11-22 23:13:58 +01:00
rdb d093cbbb90 grutil: apply FPS meter improvements to scene graph analyzer too
This fixes the aspect ratio scaling issue in particular.

Fixes #456
2018-11-22 23:05:59 +01:00
rdb ec4b0825e9 glgsg: restore more OpenGL state after draw callback 2018-11-20 12:41:43 +01:00
rdb 53cec96c07 Fix draw calls being listed under Primitive Setup in PStats, etc.
Previously, all draw calls would be grouped under "Primitive Setup", rather than under the appropriate bin collector.  This commit fixes that and adds a few other useful collectors as well.
2018-11-20 12:41:30 +01:00
rdb c18cdcf36e display: add support for debug markers, to help with debugging
This is useful when running Panda in a tool like apitrace, so that the different calls in a frame are ordered in a neat hierarchy.
2018-11-20 12:41:20 +01:00
rdb d902ea5ce4 display: don't render window if all its DRs are inactive
This is an optimization, which will skip begin_frame/end_frame for a buffer that isn't going to have anything rendered to it.  Affects the RenderPipeline.
2018-11-20 00:39:44 +01:00
rdb e759a1b605 display: give DisplayRegions a more recognisable name in PStats 2018-11-19 21:01:43 +01:00
rdb 8f73f95e79 display: make PStats clear collectors per-window 2018-11-19 20:02:38 +01:00
Sam Edwards c3d52eeee1 express: Fix compiler error with HAVE_TAR 2018-11-12 17:24:15 -07:00
rdb 3d7fcf2ce9 Merge branch 'master' into deploy-ng 2018-11-12 18:31:43 +01:00
rdb 074c5187b0 Adopt new WindowProperties(size=(x, y), ...) short-hand
This is intended as replacement for WindowProperties.size(x, y), which is deprecated since it conflicts with the `size` property.  See #444.
2018-11-12 17:53:53 +01:00
rdb d62c2bf132 Remove unfinished native COLLADA loader 2018-11-12 12:02:08 +01:00