diff options
Diffstat (limited to 'src/VBox/GuestHost/OpenGL/state_tracker/state_teximage.c')
| -rw-r--r-- | src/VBox/GuestHost/OpenGL/state_tracker/state_teximage.c | 67 |
1 files changed, 64 insertions, 3 deletions
diff --git a/src/VBox/GuestHost/OpenGL/state_tracker/state_teximage.c b/src/VBox/GuestHost/OpenGL/state_tracker/state_teximage.c index 6917197b..41d96125 100644 --- a/src/VBox/GuestHost/OpenGL/state_tracker/state_teximage.c +++ b/src/VBox/GuestHost/OpenGL/state_tracker/state_teximage.c @@ -245,7 +245,7 @@ crStateGetTextureObjectAndImage(CRContext *g, GLenum texTarget, GLint level, return; default: /* fall-through */ - ; + ; } #ifdef CR_NV_texture_rectangle @@ -308,6 +308,7 @@ crStateGetTextureObjectAndImage(CRContext *g, GLenum texTarget, GLint level, } #endif + crWarning("unexpected texTarget 0x%x", texTarget); *obj = NULL; *img = NULL; } @@ -971,6 +972,13 @@ crStateTexSubImage1D(GLenum target, GLint level, GLint xoffset, return; /* GL error state already set */ } +#ifdef DEBUG_misha + CRASSERT(tl->bytes); + CRASSERT(tl->height); + CRASSERT(tl->width); + CRASSERT(tl->depth); +#endif + #ifndef CR_STATE_NO_TEXTURE_IMAGE_STORE xoffset += tl->border; @@ -1024,6 +1032,13 @@ crStateTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, CRASSERT(tobj); CRASSERT(tl); +#ifdef DEBUG_misha + CRASSERT(tl->bytes); + CRASSERT(tl->height); + CRASSERT(tl->width); + CRASSERT(tl->depth); +#endif + #ifndef CR_STATE_NO_TEXTURE_IMAGE_STORE xoffset += tl->border; yoffset += tl->border; @@ -1109,6 +1124,14 @@ crStateTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, return; /* GL error state already set */ } +#ifdef DEBUG_misha + CRASSERT(target == GL_TEXTURE_3D); + CRASSERT(tl->bytes); + CRASSERT(tl->height); + CRASSERT(tl->width); + CRASSERT(tl->depth); +#endif + #ifndef CR_STATE_NO_TEXTURE_IMAGE_STORE xoffset += tl->border; yoffset += tl->border; @@ -1416,6 +1439,14 @@ crStateCompressedTexSubImage1DARB(GLenum target, GLint level, GLint xoffset, return; /* GL error state already set */ } +#ifdef DEBUG_misha + CRASSERT(target == GL_TEXTURE_1D); + CRASSERT(tl->bytes); + CRASSERT(tl->height); + CRASSERT(tl->width); + CRASSERT(tl->depth); +#endif + #ifndef CR_STATE_NO_TEXTURE_IMAGE_STORE xoffset += tl->border; @@ -1456,11 +1487,19 @@ crStateCompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset, CRStateBits *sb = GetCurrentBits(); CRTextureBits *tb = &(sb->texture); CRTextureUnit *unit = t->unit + t->curTextureUnit; - CRTextureObj *tobj = unit->currentTexture1D; + CRTextureObj *tobj = unit->currentTexture2D; CRTextureLevel *tl = tobj->level[0] + level; FLUSH(); +#ifdef DEBUG_misha + CRASSERT(target == GL_TEXTURE_2D); + CRASSERT(tl->bytes); + CRASSERT(tl->height); + CRASSERT(tl->width); + CRASSERT(tl->depth); +#endif + if (ErrorCheckTexSubImage(2, target, level, xoffset, yoffset, 0, width, height, 1)) { return; /* GL error state already set */ @@ -1510,11 +1549,19 @@ crStateCompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset, CRStateBits *sb = GetCurrentBits(); CRTextureBits *tb = &(sb->texture); CRTextureUnit *unit = t->unit + t->curTextureUnit; - CRTextureObj *tobj = unit->currentTexture1D; + CRTextureObj *tobj = unit->currentTexture3D; CRTextureLevel *tl = tobj->level[0] + level; FLUSH(); +#ifdef DEBUG_misha + CRASSERT(target == GL_TEXTURE_3D); + CRASSERT(tl->bytes); + CRASSERT(tl->height); + CRASSERT(tl->width); + CRASSERT(tl->depth); +#endif + if (ErrorCheckTexSubImage(3, target, level, xoffset, yoffset, zoffset, width, height, depth)) { return; /* GL error state already set */ @@ -1580,6 +1627,13 @@ crStateGetCompressedTexImageARB(GLenum target, GLint level, GLvoid * img) return; } +#ifdef DEBUG_misha + CRASSERT(tl->bytes); + CRASSERT(tl->height); + CRASSERT(tl->width); + CRASSERT(tl->depth); +#endif + #ifndef CR_STATE_NO_TEXTURE_IMAGE_STORE crMemcpy(img, tl->img, tl->bytes); #else @@ -1616,6 +1670,13 @@ crStateGetTexImage(GLenum target, GLint level, GLenum format, return; } +#ifdef DEBUG_misha + CRASSERT(tl->bytes); + CRASSERT(tl->height); + CRASSERT(tl->width); + CRASSERT(tl->depth); +#endif + switch (format) { case GL_RED: |
