Don't crash if null image

This commit is contained in:
Benau 2021-04-19 12:43:35 +08:00
parent af7d6cf391
commit 23ec5ba379

View File

@ -24,6 +24,8 @@ GEGLTexture::GEGLTexture(video::IImage* img, const std::string& name)
m_driver_type(GE::getDriver()->getDriverType()),
m_disable_reload(true)
{
if (!img)
return;
glGenTextures(1, &m_texture_name);
m_size = m_orig_size = img->getDimension();
uint8_t* data = (uint8_t*)img->lock();
@ -194,13 +196,13 @@ void GEGLTexture::updateTexture(void* data, video::ECOLOR_FORMAT format, u32 w,
}
else if (format == video::ECF_A8R8G8B8)
{
uint8_t* u8_data = (uint8_t*)data;
for (unsigned int i = 0; i < w * h; i++)
{
uint8_t tmp_val = u8_data[i * 4];
u8_data[i * 4] = u8_data[i * 4 + 2];
u8_data[i * 4 + 2] = tmp_val;
}
uint8_t* u8_data = (uint8_t*)data;
for (unsigned int i = 0; i < w * h; i++)
{
uint8_t tmp_val = u8_data[i * 4];
u8_data[i * 4] = u8_data[i * 4 + 2];
u8_data[i * 4 + 2] = tmp_val;
}
glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, w, h, GL_RGBA,
GL_UNSIGNED_BYTE, u8_data);
}