diff --git a/panda/src/gobj/texture.cxx b/panda/src/gobj/texture.cxx index b0ad695ba1..318eaf59c9 100644 --- a/panda/src/gobj/texture.cxx +++ b/panda/src/gobj/texture.cxx @@ -1072,13 +1072,13 @@ set_ram_image_as(CPTA_uchar image, const string &supplied_format) { if (format == "A" && cdata->_num_components != 3) { // We can generally rely on alpha to be the last component. int component = cdata->_num_components - 1; - for (int p = 0; p < imgsize; ++p) { + for (size_t p = 0; p < imgsize; ++p) { newdata[component] = image[p]; } do_set_ram_image(cdata, newdata); return; } - for (int p = 0; p < imgsize; ++p) { + for (size_t p = 0; p < imgsize; ++p) { for (uchar s = 0; s < format.size(); ++s) { signed char component = -1; if (format.at(s) == 'B' || (cdata->_num_components <= 2 && format.at(s) != 'A')) { @@ -1110,7 +1110,7 @@ set_ram_image_as(CPTA_uchar image, const string &supplied_format) { do_set_ram_image(cdata, newdata); return; } - for (int p = 0; p < imgsize; ++p) { + for (size_t p = 0; p < imgsize; ++p) { for (uchar s = 0; s < format.size(); ++s) { signed char component = -1; if (format.at(s) == 'B' || (cdata->_num_components <= 2 && format.at(s) != 'A')) { @@ -7405,7 +7405,8 @@ get_ram_image_as(const string &requested_format) { gobj_cat.error() << "Couldn't find an uncompressed RAM image!\n"; return CPTA_uchar(get_class_type()); } - int imgsize = cdata->_x_size * cdata->_y_size; + size_t imgsize = (size_t)cdata->_x_size * (size_t)cdata->_y_size * + (size_t)cdata->_z_size * (size_t)cdata->_num_views; nassertr(cdata->_num_components > 0 && cdata->_num_components <= 4, CPTA_uchar(get_class_type())); nassertr(data.size() == (size_t)(cdata->_component_width * cdata->_num_components * imgsize), CPTA_uchar(get_class_type())); @@ -7443,7 +7444,7 @@ get_ram_image_as(const string &requested_format) { const uint32_t *src = (const uint32_t *)data.p(); uint32_t *dst = (uint32_t *)newdata.p(); - for (int p = 0; p < imgsize; ++p) { + for (size_t p = 0; p < imgsize; ++p) { uint32_t v = *src++; *dst++ = ((v & 0xff00ff00u)) | ((v & 0x00ff0000u) >> 16) | @@ -7530,14 +7531,14 @@ get_ram_image_as(const string &requested_format) { } if (format == "A" && cdata->_num_components != 3) { // We can generally rely on alpha to be the last component. - for (int p = 0; p < imgsize; ++p) { + for (size_t p = 0; p < imgsize; ++p) { dst[p] = src[alpha]; src += cdata->_num_components; } return newdata; } // Fallback case for other 8-bit-per-channel formats. - for (int p = 0; p < imgsize; ++p) { + for (size_t p = 0; p < imgsize; ++p) { for (size_t i = 0; i < format.size(); ++i) { if (format[i] == 'B' || (cdata->_num_components <= 2 && format[i] != 'A')) { *dst++ = src[0]; @@ -7563,7 +7564,7 @@ get_ram_image_as(const string &requested_format) { } // The slow and general case. - for (int p = 0; p < imgsize; ++p) { + for (size_t p = 0; p < imgsize; ++p) { for (size_t i = 0; i < format.size(); ++i) { int component = 0; if (format[i] == 'B' || (cdata->_num_components <= 2 && format[i] != 'A')) {