fix a bug in a changeVisualShape/texture selection, out-of-bounds check was using the wrong array.
May fix some internal texture mug bug.
This commit is contained in:
@@ -971,10 +971,10 @@ int GLInstancingRenderer::registerTexture(const unsigned char* texels, int width
|
|||||||
|
|
||||||
void GLInstancingRenderer::replaceTexture(int shapeIndex, int textureId)
|
void GLInstancingRenderer::replaceTexture(int shapeIndex, int textureId)
|
||||||
{
|
{
|
||||||
if (shapeIndex >=0 && shapeIndex < m_data->m_textureHandles.size())
|
if ((shapeIndex >=0) && (shapeIndex < m_graphicsInstances.size()))
|
||||||
{
|
{
|
||||||
b3GraphicsInstance* gfxObj = m_graphicsInstances[shapeIndex];
|
b3GraphicsInstance* gfxObj = m_graphicsInstances[shapeIndex];
|
||||||
if (textureId>=0)
|
if (textureId>=0 && textureId < m_data->m_textureHandles.size())
|
||||||
{
|
{
|
||||||
gfxObj->m_textureIndex = textureId;
|
gfxObj->m_textureIndex = textureId;
|
||||||
gfxObj->m_flags |= eGfxHasTexture;
|
gfxObj->m_flags |= eGfxHasTexture;
|
||||||
@@ -985,7 +985,7 @@ void GLInstancingRenderer::replaceTexture(int shapeIndex, int textureId)
|
|||||||
|
|
||||||
void GLInstancingRenderer::updateTexture(int textureIndex, const unsigned char* texels, bool flipPixelsY)
|
void GLInstancingRenderer::updateTexture(int textureIndex, const unsigned char* texels, bool flipPixelsY)
|
||||||
{
|
{
|
||||||
if (textureIndex>=0)
|
if ((textureIndex>=0) && (textureIndex < m_data->m_textureHandles.size()))
|
||||||
{
|
{
|
||||||
glActiveTexture(GL_TEXTURE0);
|
glActiveTexture(GL_TEXTURE0);
|
||||||
b3Assert(glGetError() ==GL_NO_ERROR);
|
b3Assert(glGetError() ==GL_NO_ERROR);
|
||||||
@@ -1027,7 +1027,7 @@ void GLInstancingRenderer::activateTexture(int textureIndex)
|
|||||||
{
|
{
|
||||||
glActiveTexture(GL_TEXTURE0);
|
glActiveTexture(GL_TEXTURE0);
|
||||||
|
|
||||||
if (textureIndex>=0)
|
if (textureIndex>=0 && textureIndex < m_data->m_textureHandles.size())
|
||||||
{
|
{
|
||||||
glBindTexture(GL_TEXTURE_2D,m_data->m_textureHandles[textureIndex].m_glTexture);
|
glBindTexture(GL_TEXTURE_2D,m_data->m_textureHandles[textureIndex].m_glTexture);
|
||||||
} else
|
} else
|
||||||
|
|||||||
Reference in New Issue
Block a user