mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-01 17:35:34 -04:00
Merge branch 'master' of https://github.com/panda3d/panda3d
This commit is contained in:
commit
f30628bde6
@ -235,7 +235,13 @@ open_write_file(const Filename &file, bool truncate) {
|
||||
if (truncate) {
|
||||
// Reset to an empty string.
|
||||
f->_data.str(string());
|
||||
f->_timestamp = time(NULL);
|
||||
|
||||
// Instead of setting the time, we ensure that we always store a newer time.
|
||||
// This is a workarround for the case that a file is written twice per
|
||||
// second, since the timer only has a one second precision. The proper
|
||||
// solution to fix this would be to switch to a higher precision
|
||||
// timer everywhere.
|
||||
f->_timestamp = max(f->_timestamp + 1, time(NULL));
|
||||
}
|
||||
|
||||
return new OSubStream(&f->_wrapper, 0, 0);
|
||||
@ -275,7 +281,9 @@ open_read_write_file(const Filename &file, bool truncate) {
|
||||
if (truncate) {
|
||||
// Reset to an empty string.
|
||||
f->_data.str(string());
|
||||
f->_timestamp = time(NULL);
|
||||
|
||||
// See open_write_file
|
||||
f->_timestamp = max(f->_timestamp + 1, time(NULL));
|
||||
}
|
||||
|
||||
return new SubStream(&f->_wrapper, 0, 0);
|
||||
|
@ -1462,24 +1462,27 @@ reflect_uniform(int i, char *name_buffer, GLsizei name_buflen) {
|
||||
return;
|
||||
}
|
||||
#ifndef OPENGLES
|
||||
case GL_IMAGE_1D_EXT:
|
||||
case GL_IMAGE_2D_EXT:
|
||||
case GL_IMAGE_3D_EXT:
|
||||
case GL_IMAGE_CUBE_EXT:
|
||||
case GL_IMAGE_2D_ARRAY_EXT:
|
||||
case GL_IMAGE_BUFFER_EXT:
|
||||
case GL_INT_IMAGE_1D_EXT:
|
||||
case GL_INT_IMAGE_2D_EXT:
|
||||
case GL_INT_IMAGE_3D_EXT:
|
||||
case GL_INT_IMAGE_CUBE_EXT:
|
||||
case GL_INT_IMAGE_2D_ARRAY_EXT:
|
||||
case GL_INT_IMAGE_BUFFER_EXT:
|
||||
case GL_UNSIGNED_INT_IMAGE_1D_EXT:
|
||||
case GL_UNSIGNED_INT_IMAGE_2D_EXT:
|
||||
case GL_UNSIGNED_INT_IMAGE_3D_EXT:
|
||||
case GL_UNSIGNED_INT_IMAGE_CUBE_EXT:
|
||||
case GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT:
|
||||
case GL_UNSIGNED_INT_IMAGE_BUFFER_EXT:
|
||||
case GL_IMAGE_1D:
|
||||
case GL_IMAGE_2D:
|
||||
case GL_IMAGE_3D:
|
||||
case GL_IMAGE_CUBE:
|
||||
case GL_IMAGE_2D_ARRAY:
|
||||
case GL_IMAGE_CUBE_MAP_ARRAY:
|
||||
case GL_IMAGE_BUFFER:
|
||||
case GL_INT_IMAGE_1D:
|
||||
case GL_INT_IMAGE_2D:
|
||||
case GL_INT_IMAGE_3D:
|
||||
case GL_INT_IMAGE_CUBE:
|
||||
case GL_INT_IMAGE_2D_ARRAY:
|
||||
case GL_INT_IMAGE_CUBE_MAP_ARRAY:
|
||||
case GL_INT_IMAGE_BUFFER:
|
||||
case GL_UNSIGNED_INT_IMAGE_1D:
|
||||
case GL_UNSIGNED_INT_IMAGE_2D:
|
||||
case GL_UNSIGNED_INT_IMAGE_3D:
|
||||
case GL_UNSIGNED_INT_IMAGE_CUBE:
|
||||
case GL_UNSIGNED_INT_IMAGE_2D_ARRAY:
|
||||
case GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY:
|
||||
case GL_UNSIGNED_INT_IMAGE_BUFFER:
|
||||
// This won't really change at runtime, so we might as well bind once
|
||||
// and then forget about it.
|
||||
_glgsg->_glUniform1i(p, _glsl_img_inputs.size());
|
||||
|
@ -6232,7 +6232,10 @@ do_set_simple_ram_image(CData *cdata, CPTA_uchar image, int x_size, int y_size)
|
||||
*/
|
||||
int Texture::
|
||||
do_get_expected_num_mipmap_levels(const CData *cdata) const {
|
||||
int size = max(cdata->_x_size, max(cdata->_y_size, cdata->_z_size));
|
||||
int size = max(cdata->_x_size, cdata->_y_size);
|
||||
if (cdata->_texture_type == Texture::TT_3d_texture) {
|
||||
size = max(size, cdata->_z_size);
|
||||
}
|
||||
int count = 1;
|
||||
while (size > 1) {
|
||||
size >>= 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user