Skip to content

Commit c185de3

Browse files
committed
Merge branch 'release/1.10.x'
2 parents 244c880 + c9f14a1 commit c185de3

File tree

11 files changed

+171
-87
lines changed

11 files changed

+171
-87
lines changed

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ Installing Panda3D
2424
==================
2525

2626
The latest Panda3D SDK can be downloaded from
27-
[this page](https://www.panda3d.org/download/sdk-1-10-5/).
27+
[this page](https://www.panda3d.org/download/sdk-1-10-6/).
2828
If you are familiar with installing Python packages, you can use
29-
the following comand:
29+
the following command:
3030

3131
```bash
3232
pip install panda3d
@@ -64,8 +64,8 @@ depending on whether you are on a 32-bit or 64-bit system, or you can
6464
[click here](https://github.com/rdb/panda3d-thirdparty) for instructions on
6565
building them from source.
6666

67-
- https://www.panda3d.org/download/panda3d-1.10.5/panda3d-1.10.5-tools-win64.zip
68-
- https://www.panda3d.org/download/panda3d-1.10.5/panda3d-1.10.5-tools-win32.zip
67+
- https://www.panda3d.org/download/panda3d-1.10.6/panda3d-1.10.6-tools-win64.zip
68+
- https://www.panda3d.org/download/panda3d-1.10.6/panda3d-1.10.6-tools-win32.zip
6969

7070
After acquiring these dependencies, you can build Panda3D from the command
7171
prompt using the following command. Change the `--msvc-version` option based
@@ -117,7 +117,7 @@ sudo apt-get install build-essential pkg-config fakeroot python-dev libpng-dev l
117117
```
118118

119119
Once Panda3D has built, you can either install the .deb or .rpm package that
120-
it produced, depending on which Linux distribution you are using. For example,
120+
is produced, depending on which Linux distribution you are using. For example,
121121
to install the package on Debian or Ubuntu, use this:
122122

123123
```bash
@@ -136,7 +136,7 @@ macOS
136136
-----
137137

138138
On macOS, you will need to download a set of precompiled thirdparty packages in order to
139-
compile Panda3D, which can be acquired from [here](https://www.panda3d.org/download/panda3d-1.10.5/panda3d-1.10.5-tools-mac.tar.gz).
139+
compile Panda3D, which can be acquired from [here](https://www.panda3d.org/download/panda3d-1.10.6/panda3d-1.10.6-tools-mac.tar.gz).
140140

141141
After placing the thirdparty directory inside the panda3d source directory,
142142
you may build Panda3D using a command like the following:
@@ -212,7 +212,7 @@ Running Tests
212212

213213
Install [PyTest](https://docs.pytest.org/en/latest/getting-started.html#installation)
214214
and run the `pytest` command. If you have not installed Panda3D, you will
215-
need to configure your enviroment by pointing the `PYTHONPATH` variable at
215+
need to configure your environment by pointing the `PYTHONPATH` variable at
216216
the `built` directory. On Linux, you will also need to point the
217217
`LD_LIBRARY_PATH` variable at the `built/lib` directory.
218218

doc/ReleaseNotes

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,57 @@
1+
------------------------ RELEASE 1.10.6 -----------------------
2+
3+
This is a recommended bugfix release that adds additional stability fixes.
4+
5+
Stability
6+
* Fix deployment system to work properly with pip 20
7+
* Fix multithreading crash when garbage collecting render states (#499)
8+
* Fix crashes when hotplugging USB device on macOS Catalina (#847)
9+
* Fix crash when using Python OpenSSL module with wheel build of Panda3D (#851)
10+
* Fix a memory leak in task system in Python 3 (#873)
11+
* Fix detection for convex angles in visible geometry in collision system (#879)
12+
* Fix regression in 1.10.4 when overriding verticalScroll_frameSize (#864)
13+
* Fix DirectScrolledList scrollTo error in Python 3 (#880)
14+
15+
Shaders
16+
* Fix OpenGL shaders not being properly applied across multiple buffers
17+
* Proper handling of texture rotations applied to normal maps (#808)
18+
* "//Cg profile" no longer affects subsequent shader loads (#863)
19+
* Add support for custom vertex columns when munging points to quads (#870)
20+
* Workaround for GLSL p3d_TextureMatrix[] input giving GL error on macOS (#846)
21+
* Fix ShaderTerrainMesh disappearing when enabling compressed-textures
22+
23+
Input
24+
* Fix MouseWatcherRegion leave event sometimes being fired twice (#858)
25+
* Fix odd behavior when pressing multiple mouse buttons during capture (#843)
26+
* Fix support for dead key input on some X11 servers
27+
* Fix raw key events being sent down repeatedly when holding key on X11 (#874)
28+
* Numpad keys are no longer included in get_keyboard_map() on X11
29+
* Add labels to some keys in get_keyboard_map() on X11
30+
* Properly use cursor hotspot when loading custom cursor on macOS (#845)
31+
* Loading custom cursor on macOS now properly resolves against model-path
32+
33+
Animation
34+
* unloadAnims no longer removes all control effects, only for given anims (#853)
35+
* AnimChannelScalarTable (for morph animations) is now exposed to Python
36+
* It's now possible to create a CharacterSlider with default value
37+
38+
Pipeline
39+
* Fix assertion errors when model-cache-dir cannot be created (#790)
40+
* Textures with clear colors are no longer stripped from bam files (#844)
41+
* Support texture clear colors in bam files (requires "bam-version 6 45" in PRC)
42+
* Fix bam2egg skinning bug for models with default poses on joints
43+
* bam2egg supports multitexturing and multiple UV sets
44+
45+
Build system
46+
* Add missing --cggl-incdir and --cggl-libdir options in makepanda
47+
* Reduce library size by not exporting symbols of linked static libraries
48+
* Wheels no longer unnecessarily include libpythonX.Y.a (#839)
49+
* makepanda now auto-disables plug-ins in Config.prc that were not compiled in
50+
* Fix refcounting of returned ReferenceCount-like objects in interrogate
51+
* Fix inability to build a .whl on Ubuntu
52+
* Fix erratic build failure in dcParser code
53+
* Fix compilation using Windows 8.1 SDK
54+
155
------------------------ RELEASE 1.10.5 -----------------------
256

357
This is a recommended bugfix release, especially for macOS users.

panda/src/collide/collisionPolygon.cxx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -442,10 +442,12 @@ test_intersection_from_sphere(const CollisionEntry &entry) const {
442442
LVector3 normal = (has_effective_normal() && sphere->get_respect_effective_normal()) ? get_effective_normal() : get_normal();
443443
#ifndef NDEBUG
444444
if (!IS_THRESHOLD_EQUAL(normal.length_squared(), 1.0f, 0.001)) {
445-
collide_cat.info()
446-
<< "polygon within " << entry.get_into_node_path()
447-
<< " has normal " << normal << " of length " << normal.length()
448-
<< "\n";
445+
if (collide_cat.is_info()) {
446+
collide_cat.info()
447+
<< "polygon within " << entry.get_into_node_path()
448+
<< " has normal " << normal << " of length " << normal.length()
449+
<< "\n";
450+
}
449451
normal.normalize();
450452
}
451453
#endif

panda/src/gobj/texture.cxx

Lines changed: 44 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9951,9 +9951,11 @@ do_write_datagram_header(CData *cdata, BamWriter *manager, Datagram &me, bool &h
99519951
<< "Unsupported bam-texture-mode: " << (int)file_texture_mode << "\n";
99529952
}
99539953

9954-
if (filename.empty() && do_has_bam_rawdata(cdata)) {
9955-
// If we don't have a filename, we have to store rawdata anyway.
9956-
has_rawdata = true;
9954+
if (filename.empty()) {
9955+
if (do_has_bam_rawdata(cdata) || cdata->_has_clear_color) {
9956+
// If we don't have a filename, we have to store rawdata anyway.
9957+
has_rawdata = true;
9958+
}
99579959
}
99589960

99599961
me.add_string(get_name());
@@ -10023,6 +10025,13 @@ do_write_datagram_body(CData *cdata, BamWriter *manager, Datagram &me) {
1002310025
me.add_uint32(cdata->_simple_ram_image._image.size());
1002410026
me.append_data(cdata->_simple_ram_image._image, cdata->_simple_ram_image._image.size());
1002510027
}
10028+
10029+
if (manager->get_file_minor_ver() >= 45) {
10030+
me.add_bool(cdata->_has_clear_color);
10031+
if (cdata->_has_clear_color) {
10032+
cdata->_clear_color.write_datagram(me);
10033+
}
10034+
}
1002610035
}
1002710036

1002810037
/**
@@ -10046,11 +10055,31 @@ do_write_datagram_rawdata(CData *cdata, BamWriter *manager, Datagram &me) {
1004610055
me.add_uint8(cdata->_component_type);
1004710056
me.add_uint8(cdata->_component_width);
1004810057
me.add_uint8(cdata->_ram_image_compression);
10049-
me.add_uint8(cdata->_ram_images.size());
10050-
for (size_t n = 0; n < cdata->_ram_images.size(); ++n) {
10051-
me.add_uint32(cdata->_ram_images[n]._page_size);
10052-
me.add_uint32(cdata->_ram_images[n]._image.size());
10053-
me.append_data(cdata->_ram_images[n]._image, cdata->_ram_images[n]._image.size());
10058+
10059+
if (cdata->_ram_images.empty() && cdata->_has_clear_color &&
10060+
manager->get_file_minor_ver() < 45) {
10061+
// For older .bam versions that don't support clear colors, make up a RAM
10062+
// image.
10063+
int image_size = do_get_expected_ram_image_size(cdata);
10064+
me.add_uint8(1);
10065+
me.add_uint32(do_get_expected_ram_page_size(cdata));
10066+
me.add_uint32(image_size);
10067+
10068+
// Fill the image with the clear color.
10069+
unsigned char pixel[16];
10070+
const int pixel_size = do_get_clear_data(cdata, pixel);
10071+
nassertv(pixel_size > 0);
10072+
10073+
for (int i = 0; i < image_size; i += pixel_size) {
10074+
me.append_data(pixel, pixel_size);
10075+
}
10076+
} else {
10077+
me.add_uint8(cdata->_ram_images.size());
10078+
for (size_t n = 0; n < cdata->_ram_images.size(); ++n) {
10079+
me.add_uint32(cdata->_ram_images[n]._page_size);
10080+
me.add_uint32(cdata->_ram_images[n]._image.size());
10081+
me.append_data(cdata->_ram_images[n]._image, cdata->_ram_images[n]._image.size());
10082+
}
1005410083
}
1005510084
}
1005610085

@@ -10268,6 +10297,13 @@ do_fillin_body(CData *cdata, DatagramIterator &scan, BamReader *manager) {
1026810297
cdata->_simple_ram_image._page_size = u_size;
1026910298
cdata->inc_simple_image_modified();
1027010299
}
10300+
10301+
if (manager->get_file_minor_ver() >= 45) {
10302+
cdata->_has_clear_color = scan.get_bool();
10303+
if (cdata->_has_clear_color) {
10304+
cdata->_clear_color.read_datagram(scan);
10305+
}
10306+
}
1027110307
}
1027210308

1027310309
/**

panda/src/grutil/shaderTerrainMesh.cxx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ bool ShaderTerrainMesh::do_check_heightfield() {
206206
void ShaderTerrainMesh::do_init_data_texture() {
207207
_data_texture = new Texture("TerrainDataTexture");
208208
_data_texture->setup_2d_texture(stm_max_chunk_count, stm_max_views, Texture::T_float, Texture::F_rgba32);
209+
_data_texture->set_compression(Texture::CM_off);
209210
_data_texture->set_clear_color(LVector4(0));
210211
_data_texture->clear_image();
211212
}

panda/src/putil/bam.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ static const unsigned short _bam_major_ver = 6;
3232
// Bumped to major version 6 on 2006-02-11 to factor out PandaNode::CData.
3333

3434
static const unsigned short _bam_first_minor_ver = 14;
35+
static const unsigned short _bam_last_minor_ver = 45;
3536
static const unsigned short _bam_minor_ver = 44;
3637
// Bumped to minor version 14 on 2007-12-19 to change default ColorAttrib.
3738
// Bumped to minor version 15 on 2008-04-09 to add TextureAttrib::_implicit_sort.
@@ -64,5 +65,6 @@ static const unsigned short _bam_minor_ver = 44;
6465
// Bumped to minor version 42 on 2016-04-08 to expand ColorBlendAttrib.
6566
// Bumped to minor version 43 on 2018-12-06 to expand BillboardEffect and CompassEffect.
6667
// Bumped to minor version 44 on 2018-12-23 to rename CollisionTube to CollisionCapsule.
68+
// Bumped to minor version 45 on 2020-03-18 to add Texture::_clear_color.
6769

6870
#endif

panda/src/putil/bamReader.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ init() {
107107
// can't safely load the file.
108108
if (_file_major != _bam_major_ver ||
109109
_file_minor < _bam_first_minor_ver ||
110-
_file_minor > _bam_minor_ver) {
110+
_file_minor > _bam_last_minor_ver) {
111111
bam_cat.error()
112112
<< "Bam file is version " << _file_major << "." << _file_minor
113113
<< ".\n";
@@ -120,7 +120,7 @@ init() {
120120
bam_cat.error()
121121
<< "This program can only load version "
122122
<< _bam_major_ver << "." << _bam_first_minor_ver << " through "
123-
<< _bam_major_ver << "." << _bam_minor_ver << " bams.\n";
123+
<< _bam_major_ver << "." << _bam_last_minor_ver << " bams.\n";
124124
}
125125

126126
return false;

panda/src/putil/bamWriter.cxx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,18 +80,18 @@ BamWriter(DatagramSink *target) :
8080
_file_minor = 21;
8181
bam_version.set_string_value("6 21");
8282

83-
} else if (_file_major > _bam_major_ver || _file_minor > _bam_minor_ver) {
83+
} else if (_file_major > _bam_major_ver || _file_minor > _bam_last_minor_ver) {
8484
util_cat.error()
8585
<< "bam-version is set to " << bam_version << ", but this version of "
8686
"Panda3D cannot produce .bam files newer than " << _bam_major_ver
87-
<< "." << _bam_minor_ver << ". Set bam-version to a supported "
87+
<< "." << _bam_last_minor_ver << ". Set bam-version to a supported "
8888
"version or leave it blank to write version " << _bam_major_ver
89-
<< "." << _bam_minor_ver << " files.\n";
89+
<< "." << _bam_last_minor_ver << " files.\n";
9090

9191
_file_major = _bam_major_ver;
92-
_file_minor = _bam_minor_ver;
92+
_file_minor = _bam_last_minor_ver;
9393
bam_version.set_word(0, _bam_major_ver);
94-
bam_version.set_word(1, _bam_minor_ver);
94+
bam_version.set_word(1, _bam_last_minor_ver);
9595
}
9696
} else {
9797
_file_major = _bam_major_ver;
@@ -157,7 +157,7 @@ init() {
157157
_long_pta_id = false;
158158

159159
nassertr_always(_file_major == _bam_major_ver, false);
160-
nassertr_always(_file_minor <= _bam_minor_ver && _file_minor >= 21, false);
160+
nassertr_always(_file_minor <= _bam_last_minor_ver && _file_minor >= 21, false);
161161

162162
_file_endian = bam_endian;
163163
_file_texture_mode = bam_texture_mode;

panda/src/tform/mouseWatcher.cxx

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -990,18 +990,29 @@ release(ButtonHandle button) {
990990
// Button up. Send the up event associated with the region(s) we were
991991
// over when the button went down.
992992

993-
// There is some danger of losing button-up events here. If more than one
994-
// button goes down together, we won't detect both of the button-up events
995-
// properly.
996993
if (_preferred_button_down_region != nullptr) {
997994
param.set_outside(_preferred_button_down_region != _preferred_region);
998995
_preferred_button_down_region->release(param);
999996
throw_event_pattern(_button_up_pattern,
1000997
_preferred_button_down_region, button);
1001998
}
1002999

1003-
_button_down = false;
1004-
_preferred_button_down_region = nullptr;
1000+
// Do not stop capturing until the last mouse button has gone up. This is
1001+
// needed to prevent stopping the capture until the capturing region has
1002+
// finished processing all the releases.
1003+
bool has_button = false;
1004+
for (size_t i = 0; i < MouseButton::num_mouse_buttons; ++i) {
1005+
if (MouseButton::_buttons[i] != button &&
1006+
_current_buttons_down.get_bit(MouseButton::_buttons[i].get_index())) {
1007+
has_button = true;
1008+
}
1009+
}
1010+
1011+
if (!has_button) {
1012+
// The last mouse button went up.
1013+
_button_down = false;
1014+
_preferred_button_down_region = nullptr;
1015+
}
10051016

10061017
} else {
10071018
// It's a keyboard button; therefore, send the event to every region that

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy