mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-01 17:35:34 -04:00
Merge branch 'master' into deploy-ng
This commit is contained in:
commit
88470106b6
@ -921,20 +921,37 @@ bind_slot(int layer, bool rb_resize, Texture **attach, RenderTexturePlane slot,
|
|||||||
if (_fb_properties.get_alpha_bits() == 0) {
|
if (_fb_properties.get_alpha_bits() == 0) {
|
||||||
if (_fb_properties.get_srgb_color()) {
|
if (_fb_properties.get_srgb_color()) {
|
||||||
gl_format = GL_SRGB8;
|
gl_format = GL_SRGB8;
|
||||||
|
} else if (_fb_properties.get_color_bits() > 16 * 3 ||
|
||||||
|
_fb_properties.get_red_bits() > 16 ||
|
||||||
|
_fb_properties.get_green_bits() > 16 ||
|
||||||
|
_fb_properties.get_blue_bits() > 16) {
|
||||||
|
// 32-bit, which is always floating-point.
|
||||||
|
if (_fb_properties.get_blue_bits() > 0 ||
|
||||||
|
_fb_properties.get_color_bits() == 1 ||
|
||||||
|
_fb_properties.get_color_bits() > 32 * 2) {
|
||||||
|
gl_format = GL_RGB32F;
|
||||||
|
} else if (_fb_properties.get_green_bits() > 0 ||
|
||||||
|
_fb_properties.get_color_bits() > 32) {
|
||||||
|
gl_format = GL_RG32F;
|
||||||
|
} else {
|
||||||
|
gl_format = GL_R32F;
|
||||||
|
}
|
||||||
} else if (_fb_properties.get_float_color()) {
|
} else if (_fb_properties.get_float_color()) {
|
||||||
if (_fb_properties.get_color_bits() > 16 * 3) {
|
// 16-bit floating-point.
|
||||||
gl_format = GL_RGB32F_ARB;
|
if (_fb_properties.get_blue_bits() > 0 ||
|
||||||
|
_fb_properties.get_color_bits() == 1 ||
|
||||||
|
_fb_properties.get_color_bits() > 16 * 2) {
|
||||||
|
gl_format = GL_RGB16F;
|
||||||
|
} else if (_fb_properties.get_green_bits() > 0 ||
|
||||||
|
_fb_properties.get_color_bits() > 16) {
|
||||||
|
gl_format = GL_RG16F;
|
||||||
} else {
|
} else {
|
||||||
gl_format = GL_RGB16F_ARB;
|
gl_format = GL_R16F;
|
||||||
}
|
}
|
||||||
|
} else if (_fb_properties.get_color_bits() > 8 * 3) {
|
||||||
|
gl_format = GL_RGB16_EXT;
|
||||||
} else {
|
} else {
|
||||||
if (_fb_properties.get_color_bits() > 16 * 3) {
|
gl_format = GL_RGB;
|
||||||
gl_format = GL_RGB32F_ARB;
|
|
||||||
} else if (_fb_properties.get_color_bits() > 8 * 3) {
|
|
||||||
gl_format = GL_RGB16_EXT;
|
|
||||||
} else {
|
|
||||||
gl_format = GL_RGB;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (_fb_properties.get_srgb_color()) {
|
if (_fb_properties.get_srgb_color()) {
|
||||||
|
@ -375,5 +375,7 @@ fillin(DatagramIterator &scan, BamReader *manager) {
|
|||||||
if (manager->get_file_minor_ver() >= 43) {
|
if (manager->get_file_minor_ver() >= 43) {
|
||||||
_look_at.fillin(scan, manager);
|
_look_at.fillin(scan, manager);
|
||||||
_fixed_depth = scan.get_bool();
|
_fixed_depth = scan.get_bool();
|
||||||
|
} else {
|
||||||
|
_fixed_depth = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -508,23 +508,33 @@ process_events() {
|
|||||||
changed_properties = true;
|
changed_properties = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (properties.has_foreground() && _properties.get_mouse_mode() == WindowProperties::M_confined) {
|
if (properties.has_foreground() && (
|
||||||
|
_properties.get_mouse_mode() == WindowProperties::M_confined ||
|
||||||
|
_dga_mouse_enabled)) {
|
||||||
|
x11GraphicsPipe *x11_pipe;
|
||||||
|
DCAST_INTO_V(x11_pipe, _pipe);
|
||||||
|
|
||||||
// Focus has changed, let's let go of the pointer if we've grabbed or re-grab it if needed
|
// Focus has changed, let's let go of the pointer if we've grabbed or re-grab it if needed
|
||||||
if (properties.get_foreground()) {
|
if (properties.get_foreground()) {
|
||||||
// Window is going to the foreground, re-grab the pointer
|
// Window is going to the foreground, re-grab the pointer
|
||||||
X11_Cursor cursor = None;
|
X11_Cursor cursor = None;
|
||||||
if (_properties.get_cursor_hidden()) {
|
if (_properties.get_cursor_hidden()) {
|
||||||
x11GraphicsPipe *x11_pipe;
|
|
||||||
DCAST_INTO_V(x11_pipe, _pipe);
|
|
||||||
cursor = x11_pipe->get_hidden_cursor();
|
cursor = x11_pipe->get_hidden_cursor();
|
||||||
}
|
}
|
||||||
|
|
||||||
XGrabPointer(_display, _xwindow, True, 0, GrabModeAsync, GrabModeAsync,
|
XGrabPointer(_display, _xwindow, True, 0, GrabModeAsync, GrabModeAsync,
|
||||||
_xwindow, cursor, CurrentTime);
|
_xwindow, cursor, CurrentTime);
|
||||||
|
if (_dga_mouse_enabled) {
|
||||||
|
x11_pipe->enable_relative_mouse();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// window is leaving the foreground, ungrab the pointer
|
// window is leaving the foreground, ungrab the pointer
|
||||||
XUngrabPointer(_display, CurrentTime);
|
if (_dga_mouse_enabled) {
|
||||||
|
x11_pipe->disable_relative_mouse();
|
||||||
|
} else if (_properties.get_mouse_mode() == WindowProperties::M_confined) {
|
||||||
|
XUngrabPointer(_display, CurrentTime);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user