Commit Graph

11027 Commits

Author SHA1 Message Date
rdb e5a8eb5b1d cocoadisplay: Fix Command+Q in green-button-style fullscreen mode
It seems macOS has an extra NSWindow without a delegate in this mode
2022-12-19 12:55:57 +01:00
rdb 7f916eeb74 gobj: Don't wastefully compute bounds for Geom with custom bounds
This was done by `get_nested_vertices()`, which now won't call the expensive `compute_internal_bounds()` if there was a custom bounding volume set.
2022-12-16 20:18:57 +01:00
rdb 9cb60ccd93 cocoadisplay: Fix oversized window getting an awkward offset
We currently do the centering based on the total screen size, not the screen size that macOS actually lets us use.

See #1312
2022-12-16 16:07:58 +01:00
rdb 38528b797b downloader: Initialize winsock even if nativenet is compiled out
Fixes HTTPClient when static linking if nativenet is not used and therefore init_network() is compiled out
2022-12-15 19:51:18 +01:00
rdb cd984732b7 pgraph: Make `bounds_type` property writable 2022-12-10 19:45:29 +01:00
rdb fb14c29525 pstats: Server can handle new protocol version 2.3
It changes the following things:
* Changes the counts in the PStatFrameData from uint16 to uint32, since I was hitting the value limit in some heavy frames with Python profiling enabled - no good reason for this limitation, so this allows removing it later
* Adds a T_expire_thread message, which I can use later to fix #450

These features are not used on the client side, but will be used on master.  Adding these changes here now makes it possible to use a master client with a 1.10.13 version of the server (can be useful if you can't compile Panda on the host).
2022-12-10 19:45:29 +01:00
rdb 3254c6d329 pstats: Optimize PStatFrameData (de-)serialization
This can be slow (hundreds of us, up to multiple ms) with large amounts of data points, this makes it an order of magnitude more efficient
2022-12-10 19:45:29 +01:00
rdb d48e23f234 pstats: Indicate how to disable rate limit 2022-12-10 19:45:26 +01:00
rdb 75b12fe6e2 express: Fix a comment in datagram.cxx
[skip ci]
2022-12-10 19:06:39 +01:00
rdb dae26c2e4b cocoadisplay: Fix fullscreen regression on Intel macs
Partially backs out 619050bb32

Fixes #1316 (for good this time hopefully)
2022-12-08 15:20:14 +01:00
rdb 602bd3e023 gobj: Fix Texture render_to_texture flag garbage after CData copy 2022-12-07 19:02:30 +01:00
rdb bdb55c480b cocoadisplay: Fix missing includes 2022-12-07 18:58:54 +01:00
rdb 5751fc6478 cocoadisplay: Fix a whitespace error 2022-12-07 18:58:38 +01:00
rdb 72376e95f1 cocoadisplay: Even better applicationShouldTerminate handling
It seems that performClose doesn't actually work properly for fullscreen windows
2022-12-07 18:34:36 +01:00
rdb 4979a8ba3f cocoadisplay: More graceful application termination behavior
See #1321
2022-12-07 17:52:11 +01:00
LD 5fa3f3eb68 cocoadisplay: Call remove_all_windows() when the application is about to close
Part of #1321
2022-12-07 17:22:23 +01:00
rdb c85cc8f2e8 cocoadisplay: fix unprotected debug/spam prints 2022-12-07 17:20:41 +01:00
rdb 2a65f583d0 cocoadisplay: Small tweak to fullscreen fix 2022-12-07 17:16:18 +01:00
rdb dcdd504e3f ode: Fix warnings when copying OdeTriMeshGeom 2022-12-07 17:15:49 +01:00
rdb 619050bb32 cocoadisplay: Fix fullscreen issues on M1 macs
The OpenGL-on-Metal drivers used on these machines don't support CGLSetFullScreenOnDisplay, so we need to disable it on those machines.  This also applies when running a x86_64 app through Rosetta 2, hence the sysctlbyname check.

Furthermore, we need to set the appropriate shielding level, which need not be `NSMainMenuWindowLevel+1`.

Fixes #1316

Co-authored-by: LD <laurent.deru@gmail.com>
2022-12-06 16:59:55 +01:00
rdb 45ac5029c0 glgsg: Fix compile error with OpenGL ES 1
Introduced by 2c9deaaaf0
2022-12-06 16:53:51 +01:00
rdb ff9ff688be tform: Fix "without" event generation when mouse leaves window
Fixes #1400
2022-12-06 13:48:23 +01:00
rdb 8a46c3dc64 windisplay: Only release capture when last mouse button is released
This fixes issues with lost up events when dragging out of the window with multiple buttons held

Fixes #1396
2022-12-06 13:36:14 +01:00
rdb 2c9deaaaf0 glgsg: Fix 1 texture stage limit when setting `gl-version 3 2` or higher
Fixes #1404
2022-12-06 12:57:45 +01:00
rdb 41f0c9d48d pgraph: Support None as second arg of replace_texture/replace_material
This removes the relevant texture or material
2022-12-04 19:24:04 +01:00
rdb 8ca804086f pgraph: Fix a compiler warning in renderEffects.I
Initialization is unnecessary, but harmless
2022-12-04 16:58:49 +01:00
rdb 0866d485b1 pstats: Set default value for `pstats-max-queue-size` to 4
Otherwise any multithreaded application is dropping frames like mad, since the packets for different frames may be added to the same queue at roughly the same time.
2022-12-04 16:57:55 +01:00
rdb adc324bbde pstats: Fix assorted compile issues in more esoteric configurations 2022-11-29 20:11:59 +01:00
rdb 50cfdebd9c pstats: Integrate Python profiler with PStats
Enabled with `pstats-python-profiler 1`, requires recent version of PStats server.

Currently, it is limited to the main thread only.  Support for other threads may be added at a later date.
2022-11-29 16:00:09 +01:00
rdb 7b9f2cd854 pstats: Support nested start/stop pairs in the server, accept 3.1
Currently, the client doesn't send nested start/stop pairs, but there is no good reason not to handle this case in the server, and in some cases it is useful to send them (I will soon make changes on master to take advantage of this).

Client version 3.1 indicates that the client may send nested start/stop pairs.
2022-11-29 15:48:02 +01:00
rdb d00d4a44a0 gobj: Properly initialize Texture object on all stages
Previously, forward stages would be uninitialized, resulting in cryptic errors with ahead-of-time preparation (although arguably ahead-of-time preparation is a bug in and of itself)
2022-11-26 16:56:07 +01:00
rdb 1f9f6a618f vision: Fix use of wrong delete operator in ARToolKit code 2022-11-21 18:33:35 +01:00
rdb 09f8634433 pipeline: Minor optimizations in cycler copy constructor
When copying a dirty cycler, don't use two separate lock-grabbing calls to add to the clean set, then remove from clean set and move to dirty set

Short-cut the cdata copy loop for the common case of only 1 stage
2022-11-21 18:31:54 +01:00
rdb 8a48c3b711 pgraph: Remove recursive lock grab in `Light.set_color()`
Harmless, but unnecessary
2022-11-21 18:26:19 +01:00
rdb fcfa1d2c99 gobj: Fix `ShaderBuffer.prepare()` not actually doing anything 2022-11-21 18:25:46 +01:00
rdb 7505112f1d shader: Fix compiler warning 2022-11-19 13:05:27 +01:00
rdb e92d993cea glgsg: Fix failure to unset divisor after rendering w/ instancing
This would normally be done by `disable_shader_vertex_arrays()` but it apparently isn't called between shader changes
2022-11-14 10:25:34 +01:00
rdb fe94e43bc4 pgraph: Fix issues with flattening TexMatrixAttrib
If multiple texture stages reference the same texcoord set, Panda wouldn't flatten the tex matrices even if they were the exact same

Fixes #1392
2022-11-13 11:11:32 +01:00
rdb 0220a43ce0 shader: Fix support for `#pragma include <example.glsl>` in GLSL 2022-11-09 17:20:11 +01:00
rdb 8965741fcf tinydisplay: Don't reimplement process_events from base class
Reduces code duplication, makes it possible to inherit bug fixes from the base class, and also handles resizes more efficiently now (only when this would actually require a framebuffer reallocation).
2022-11-07 12:56:56 +01:00
rdb 0a827cf65c x11display: Time out waiting for ConfigureNotify event
Fixes #1087
2022-11-07 12:56:03 +01:00
rdb a11f7c9c8d gobj: Add `TextureStage::write()` overload with `indent_level` param 2022-11-02 23:02:20 +01:00
rdb 4cf8187df7 cocoadisplay: Fix crash with threading-model on newer macOS versions
Updates the context on the main thread instead of the draw thread now. If render_frame happens to run while the context needs updating, it will skip the frame.

Fixes #1286
2022-10-29 20:51:05 +02:00
rdb 4d2a45f124 glgsg: Fix multisample FBOs with MRT blitting aux target into color target 2022-10-25 16:25:50 +02:00
rdb 1a72311243 bullet: Fix LMatrix3<>btMatrix3x3 conversion functions 2022-10-25 12:10:44 +02:00
rdb 693b4d3fb3 bullet: Fix `BulletAllHitsRayResult::empty()` compiler warning 2022-10-25 12:08:50 +02:00
rdb ef9c9fa20e bullet: Fix `BulletWheel::empty()` referencing local objects 2022-10-25 12:08:06 +02:00
rdb cc24b5373d pgraph: Fix `PandaNode::_nested_vertices` not updating properly
The problem was that `PandaNode::update_cached()` queries the node's `_internal_vertices` *before* calling `get_internal_bounds()` (which is what actually calculates it).
2022-10-25 11:35:29 +02:00
rdb accd130c83 display: Fix RTT attachment modified flag not propagating through pipeline
Fixes #1364 (the other half)
2022-10-24 13:17:42 +02:00
rdb c799146cc9 glgsg: Fix stencil renderbuffer not being unbound when binding depth tex
Fixes part of #1364
2022-10-24 13:17:42 +02:00