Commit Graph

11210 Commits

Author SHA1 Message Date
rdb 40b94c1f97 gobj: Fix GeomPrimitive::offset_vertices() with strip cut index
This was called, among other things, by the egg-unify process, which could ruin the strip cut index.

At the same time, I've reimplemented the indexed case for offset_vertices() to make it a little bit more efficient.

Fixes #1122
2021-03-22 11:35:03 +01:00
rdb c1fbb70c6d display: Temporary fix for base.win.properties.size et al
Previously, calling that without storing a temporary object would cause the WindowProperties to go out of scope and the return value to point to random memory.
2021-03-21 16:55:19 +01:00
rdb f450aa5edf physics: Add additional properties 2021-03-21 14:40:10 +01:00
rdb db2936a318 physics: Slight code cleanup in PhysicalNode::clear() 2021-03-21 14:39:57 +01:00
rdb f1782d73e5 physics: Fix crash in PhysicsNode::add_physicals_from() 2021-03-21 14:39:31 +01:00
rdb 74910ff310 physics: Don't assert destructing
This could have been produced with make_copy(), which can create a situation where the Physical objects don't have the same node associated -- see b6a118448d
2021-03-21 14:36:14 +01:00
rdb b6a118448d physics: Warn when copying PhysicalNode with physicals attached
We can't currently support this because a Physical can have only one PhysicalNode associated.
2021-03-21 14:35:28 +01:00
rdb 1c754738bd physics: Prevent adding same Physical to more than one PhysicalNode
Also silently ignore if the same Physical is added to the same PhysicalNode more than once.
2021-03-21 13:00:08 +01:00
rdb 52c0e2759e glgsg: Fix copy-to-texture/ram for multisample FBO
Should read from resolved FBO, not from multisample FBO

Fixes #1129
2021-03-16 18:45:27 +01:00
LD 209e031964 cocoadisplay: Test all the fullscreen modes to find the valid one
Closes #1039
2021-03-13 12:44:30 +01:00
rdb eca18f3c19 windisplay: Don't try to activate window when resizing/moving it
This fixes an issue where if you quickly alt-tab when the window opens, it receives a WM_ACTIVATE event and thinks it continues to be active, which causes issues with applying cursor confinement.

I think you can probably still reproduce that issue, but your reflexes have to be significantly more ninja now.
2021-03-11 23:50:45 +01:00
rdb 7f4d030032 windisplay: Fix some situations in which the mouse could stay confined
Fixes #1115
2021-03-11 23:29:13 +01:00
rdb c1c2183561 windisplay: Parented child windows are implicitly undecorated
I'm pretty sure applying these styles does nothing anyway, but we shouldn't specify them.
2021-03-11 22:30:35 +01:00
rdb 48fb2f721f windisplay: Fix parented child window being offset
This would happen if the undecorated flag is not set; it would receive an additional offset equal to the size of the window decoration.

Fixes regression presumably caused by a968caf1d2
2021-03-11 22:19:41 +01:00
rdb 5cadd86d1e glgsg: Fix get_screenshot() for multisample FBOs
An FM_refresh bind should not bind the multisample FBO, but the resolved one (and while we're at it, FM_refresh should not try to resolve multisamples).
2021-03-05 11:57:05 +01:00
rdb b4a242a4e3 x11: Provide labels for more keys (esp. international keys) 2021-03-04 21:49:55 +01:00
rdb 2e3ce27865 device: Add Windows gamepad mapping with VID:PID 2563:0523
From https://discourse.panda3d.org/t/gamepad-emulator-and-panda/27336
2021-03-04 20:47:55 +01:00
rdb 9be2f307c5 text: Fix glyphs with flipped UVs not being processed correctly
This caused the cheesy-accent code to not flip the caron correctly.
2021-03-04 20:06:51 +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 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 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
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 3592404fa8 display: Fix GraphicsWindow::get_pointer() listed as deprecated
[skip ci]
2021-02-17 10:56:46 +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 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 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 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 af60f8200e glgsg: Gracefully degrade when using 64-bit float in OpenGL ES 2021-02-06 19:35:48 +01:00
rdb 068ceaaf58 event: Clear exception flag after trying asyncio exception import 2021-02-06 01:21:52 +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 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 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