Lines Matching defs:texture
182 TCU_FAIL("Can't map pixel format to texture format");
278 // Limit texture sizes to supported values
404 // Create empty textures to be used when texture objects are incomplete.
513 void ReferenceContext::activeTexture (deUint32 texture)
515 if (deInBounds32(texture, GL_TEXTURE0, GL_TEXTURE0 + (deUint32)m_textureUnits.size()))
516 m_activeTexture = texture - GL_TEXTURE0;
521 void ReferenceContext::setTex1DBinding (int unitNdx, Texture1D* texture)
529 if (texture)
531 m_textures.acquireReference(texture);
532 m_textureUnits[unitNdx].tex1DBinding = texture;
536 void ReferenceContext::setTex2DBinding (int unitNdx, Texture2D* texture)
544 if (texture)
546 m_textures.acquireReference(texture);
547 m_textureUnits[unitNdx].tex2DBinding = texture;
551 void ReferenceContext::setTexCubeBinding (int unitNdx, TextureCube* texture)
559 if (texture)
561 m_textures.acquireReference(texture);
562 m_textureUnits[unitNdx].texCubeBinding = texture;
566 void ReferenceContext::setTex2DArrayBinding (int unitNdx, Texture2DArray* texture)
574 if (texture)
576 m_textures.acquireReference(texture);
577 m_textureUnits[unitNdx].tex2DArrayBinding = texture;
581 void ReferenceContext::setTex3DBinding (int unitNdx, Texture3D* texture)
589 if (texture)
591 m_textures.acquireReference(texture);
592 m_textureUnits[unitNdx].tex3DBinding = texture;
596 void ReferenceContext::setTexCubeArrayBinding (int unitNdx, TextureCubeArray* texture)
604 if (texture)
606 m_textures.acquireReference(texture);
607 m_textureUnits[unitNdx].texCubeArrayBinding = texture;
611 void ReferenceContext::bindTexture (deUint32 target, deUint32 texture)
625 if (texture == 0)
642 Texture* texObj = m_textures.find(texture);
663 // New texture object.
667 case GL_TEXTURE_1D: texObj = new Texture1D (texture); break;
668 case GL_TEXTURE_2D: texObj = new Texture2D (texture); break;
669 case GL_TEXTURE_CUBE_MAP: texObj = new TextureCube (texture, seamlessCubeMap); break;
670 case GL_TEXTURE_2D_ARRAY: texObj = new Texture2DArray (texture); break;
671 case GL_TEXTURE_3D: texObj = new Texture3D (texture); break;
672 case GL_TEXTURE_CUBE_MAP_ARRAY: texObj = new TextureCubeArray (texture); break;
705 Texture* texture = name ? m_textures.find(name) : DE_NULL;
707 if (texture)
708 deleteTexture(texture);
712 void ReferenceContext::deleteTexture (Texture* texture)
717 if (m_textureUnits[unitNdx].tex1DBinding == texture) setTex1DBinding (unitNdx, DE_NULL);
718 else if (m_textureUnits[unitNdx].tex2DBinding == texture) setTex2DBinding (unitNdx, DE_NULL);
719 else if (m_textureUnits[unitNdx].texCubeBinding == texture) setTexCubeBinding (unitNdx, DE_NULL);
720 else if (m_textureUnits[unitNdx].tex2DArrayBinding == texture) setTex2DArrayBinding (unitNdx, DE_NULL);
721 else if (m_textureUnits[unitNdx].tex3DBinding == texture) setTex3DBinding (unitNdx, DE_NULL);
722 else if (m_textureUnits[unitNdx].texCubeArrayBinding == texture) setTexCubeArrayBinding (unitNdx, DE_NULL);
737 if (attachment.name == texture->getName())
747 DE_ASSERT(texture->getRefCount() == 1);
748 m_textures.releaseReference(texture);
1068 Texture1D* texture = unit.tex1DBinding ? unit.tex1DBinding : &unit.default1DTex;
1070 if (texture->isImmutable())
1072 RC_IF_ERROR(!texture->hasLevel(level), GL_INVALID_OPERATION, RC_RET_VOID);
1074 ConstPixelBufferAccess dst(texture->getLevel(level));
1079 texture->allocLevel(level, storageFmt, width);
1084 PixelBufferAccess dst (texture->getLevel(level));
1094 clearToTextureInitialValue(texture->getLevel(level));
1103 Texture2D* texture = unit.tex2DBinding ? unit.tex2DBinding : &unit.default2DTex;
1105 if (texture->isImmutable())
1107 RC_IF_ERROR(!texture->hasLevel(level), GL_INVALID_OPERATION, RC_RET_VOID);
1109 ConstPixelBufferAccess dst(texture->getLevel(level));
1115 texture->allocLevel(level, storageFmt, width, height);
1120 PixelBufferAccess dst (texture->getLevel(level));
1130 clearToTextureInitialValue(texture->getLevel(level));
1144 TextureCube* texture = unit.texCubeBinding ? unit.texCubeBinding : &unit.defaultCubeTex;
1147 if (texture->isImmutable())
1149 RC_IF_ERROR(!texture->hasFace(level, face), GL_INVALID_OPERATION, RC_RET_VOID);
1151 ConstPixelBufferAccess dst(texture->getFace(level, face));
1157 texture->allocFace(level, face, storageFmt, width, height);
1162 PixelBufferAccess dst (texture->getFace(level, face));
1172 clearToTextureInitialValue(texture->getFace(level, face));
1183 Texture2DArray* texture = unit.tex2DArrayBinding ? unit.tex2DArrayBinding : &unit.default2DArrayTex;
1185 if (texture->isImmutable())
1187 RC_IF_ERROR(!texture->hasLevel(level), GL_INVALID_OPERATION, RC_RET_VOID);
1189 ConstPixelBufferAccess dst(texture->getLevel(level));
1196 texture->allocLevel(level, storageFmt, width, height, depth);
1201 PixelBufferAccess dst (texture->getLevel(level));
1211 clearToTextureInitialValue(texture->getLevel(level));
1222 Texture3D* texture = unit.tex3DBinding ? unit.tex3DBinding : &unit.default3DTex;
1224 if (texture->isImmutable())
1226 RC_IF_ERROR(!texture->hasLevel(level), GL_INVALID_OPERATION, RC_RET_VOID);
1228 ConstPixelBufferAccess dst(texture->getLevel(level));
1235 texture->allocLevel(level, storageFmt, width, height, depth);
1240 PixelBufferAccess dst (texture->getLevel(level));
1250 clearToTextureInitialValue(texture->getLevel(level));
1262 TextureCubeArray* texture = unit.texCubeArrayBinding ? unit.texCubeArrayBinding : &unit.defaultCubeArrayTex;
1264 if (texture->isImmutable())
1266 RC_IF_ERROR(!texture->hasLevel(level), GL_INVALID_OPERATION, RC_RET_VOID);
1268 ConstPixelBufferAccess dst(texture->getLevel(level));
1275 texture->allocLevel(level, storageFmt, width, height, depth);
1280 PixelBufferAccess dst (texture->getLevel(level));
1290 clearToTextureInitialValue(texture->getLevel(level));
1322 Texture1D& texture = unit.tex1DBinding ? *unit.tex1DBinding : unit.default1DTex;
1324 RC_IF_ERROR(!texture.hasLevel(level), GL_INVALID_VALUE, RC_RET_VOID);
1326 PixelBufferAccess dst = texture.getLevel(level);
1341 Texture2D& texture = unit.tex2DBinding ? *unit.tex2DBinding : unit.default2DTex;
1343 RC_IF_ERROR(!texture.hasLevel(level), GL_INVALID_VALUE, RC_RET_VOID);
1345 PixelBufferAccess dst = texture.getLevel(level);
1365 TextureCube& texture = unit.texCubeBinding ? *unit.texCubeBinding : unit.defaultCubeTex;
1368 RC_IF_ERROR(!texture.hasFace(level, face), GL_INVALID_VALUE, RC_RET_VOID);
1370 PixelBufferAccess dst = texture.getFace(level, face);
1385 Texture3D& texture = unit.tex3DBinding ? *unit.tex3DBinding : unit.default3DTex;
1387 RC_IF_ERROR(!texture.hasLevel(level), GL_INVALID_VALUE, RC_RET_VOID);
1389 PixelBufferAccess dst = texture.getLevel(level);
1404 Texture2DArray& texture = unit.tex2DArrayBinding ? *unit.tex2DArrayBinding : unit.default2DArrayTex;
1406 RC_IF_ERROR(!texture.hasLevel(level), GL_INVALID_VALUE, RC_RET_VOID);
1408 PixelBufferAccess dst = texture.getLevel(level);
1423 TextureCubeArray& texture = unit.texCubeArrayBinding ? *unit.texCubeArrayBinding : unit.defaultCubeArrayTex;
1425 RC_IF_ERROR(!texture.hasLevel(level), GL_INVALID_VALUE, RC_RET_VOID);
1427 PixelBufferAccess dst = texture.getLevel(level);
1465 Texture1D* texture = unit.tex1DBinding ? unit.tex1DBinding : &unit.default1DTex;
1467 if (texture->isImmutable())
1469 RC_IF_ERROR(!texture->hasLevel(level), GL_INVALID_OPERATION, RC_RET_VOID);
1471 ConstPixelBufferAccess dst(texture->getLevel(level));
1476 texture->allocLevel(level, storageFmt, width);
1479 PixelBufferAccess dst = texture->getLevel(level);
1513 Texture2D* texture = unit.tex2DBinding ? unit.tex2DBinding : &unit.default2DTex;
1515 if (texture->isImmutable())
1517 RC_IF_ERROR(!texture->hasLevel(level), GL_INVALID_OPERATION, RC_RET_VOID);
1519 ConstPixelBufferAccess dst(texture->getLevel(level));
1525 texture->allocLevel(level, storageFmt, width, height);
1528 PixelBufferAccess dst = texture->getLevel(level);
1549 TextureCube* texture = unit.texCubeBinding ? unit.texCubeBinding : &unit.defaultCubeTex;
1552 if (texture->isImmutable())
1554 RC_IF_ERROR(!texture->hasFace(level, face), GL_INVALID_OPERATION, RC_RET_VOID);
1556 ConstPixelBufferAccess dst(texture->getFace(level, face));
1562 texture->allocFace(level, face, storageFmt, width, height);
1565 PixelBufferAccess dst = texture->getFace(level, face);
1590 Texture1D& texture = unit.tex1DBinding ? *unit.tex1DBinding : unit.default1DTex;
1592 RC_IF_ERROR(!texture.hasLevel(level), GL_INVALID_VALUE, RC_RET_VOID);
1594 PixelBufferAccess dst = texture.getLevel(level);
1621 Texture2D& texture = unit.tex2DBinding ? *unit.tex2DBinding : unit.default2DTex;
1623 RC_IF_ERROR(!texture.hasLevel(level), GL_INVALID_VALUE, RC_RET_VOID);
1625 PixelBufferAccess dst = texture.getLevel(level);
1647 TextureCube& texture = unit.texCubeBinding ? *unit.texCubeBinding : unit.defaultCubeTex;
1650 RC_IF_ERROR(!texture.hasFace(level, face), GL_INVALID_VALUE, RC_RET_VOID);
1652 PixelBufferAccess dst = texture.getFace(level, face);
1692 Texture2D& texture = unit.tex2DBinding ? *unit.tex2DBinding : unit.default2DTex;
1695 RC_IF_ERROR(texture.isImmutable(), GL_INVALID_OPERATION, RC_RET_VOID);
1697 texture.clearLevels();
1698 texture.setImmutable();
1705 texture.allocLevel(level, storageFmt, levelW, levelH);
1710 TextureCube& texture = unit.texCubeBinding ? *unit.texCubeBinding : unit.defaultCubeTex;
1713 RC_IF_ERROR(texture.isImmutable(), GL_INVALID_OPERATION, RC_RET_VOID);
1715 texture.clearLevels();
1716 texture.setImmutable();
1724 texture.allocFace(level, (tcu::CubeFace)face, storageFmt, levelW, levelH);
1746 Texture2DArray& texture = unit.tex2DArrayBinding ? *unit.tex2DArrayBinding : unit.default2DArrayTex;
1751 RC_IF_ERROR(texture.isImmutable(), GL_INVALID_OPERATION, RC_RET_VOID);
1753 texture.clearLevels();
1754 texture.setImmutable();
1761 texture.allocLevel(level, storageFmt, levelW, levelH, depth);
1766 Texture3D& texture = unit.tex3DBinding ? *unit.tex3DBinding : unit.default3DTex;
1771 RC_IF_ERROR(texture.isImmutable(), GL_INVALID_OPERATION, RC_RET_VOID);
1773 texture.clearLevels();
1774 texture.setImmutable();
1782 texture.allocLevel(level, storageFmt, levelW, levelH, levelD);
1787 TextureCubeArray& texture = unit.texCubeArrayBinding ? *unit.texCubeArrayBinding : unit.defaultCubeArrayTex;
1793 RC_IF_ERROR(texture.isImmutable(), GL_INVALID_OPERATION, RC_RET_VOID);
1795 texture.clearLevels();
1796 texture.setImmutable();
1803 texture.allocLevel(level, storageFmt, levelW, levelH, depth);
1840 Texture* texture = DE_NULL;
1844 case GL_TEXTURE_1D: texture = unit.tex1DBinding ? unit.tex1DBinding : &unit.default1DTex; break;
1845 case GL_TEXTURE_2D: texture = unit.tex2DBinding ? unit.tex2DBinding : &unit.default2DTex; break;
1846 case GL_TEXTURE_CUBE_MAP: texture = unit.texCubeBinding ? unit.texCubeBinding : &unit.defaultCubeTex; break;
1847 case GL_TEXTURE_2D_ARRAY: texture = unit.tex2DArrayBinding ? unit.tex2DArrayBinding : &unit.default2DArrayTex; break;
1848 case GL_TEXTURE_3D: texture = unit.tex3DBinding ? unit.tex3DBinding : &unit.default3DTex; break;
1849 case GL_TEXTURE_CUBE_MAP_ARRAY: texture = unit.texCubeArrayBinding ? unit.texCubeArrayBinding : &unit.defaultCubeArrayTex; break;
1860 texture->getSampler().wrapS = wrapS;
1868 texture->getSampler().wrapT = wrapT;
1876 texture->getSampler().wrapR = wrapR;
1884 texture->getSampler().minFilter = minMode;
1893 texture->getSampler().magFilter = magMode;
1900 texture->setMaxLevel(value);
1942 Texture* texture = m_textures.find(attachment.name);
1943 TCU_CHECK(texture);
1944 m_textures.acquireReference(texture);
1969 Texture* texture = m_textures.find(attachment.name);
1970 TCU_CHECK(texture);
1971 m_textures.releaseReference(texture);
1989 void ReferenceContext::framebufferTexture2D (deUint32 target, deUint32 attachment, deUint32 textarget, deUint32 texture, int level)
1994 framebufferTexture2D(target, GL_DEPTH_ATTACHMENT, textarget, texture, level);
1995 framebufferTexture2D(target, GL_STENCIL_ATTACHMENT, textarget, texture, level);
2016 if (texture != 0)
2018 texObj = m_textures.find(texture);
2051 void ReferenceContext::framebufferTextureLayer (deUint32 target, deUint32 attachment, deUint32 texture, int level, int layer)
2056 framebufferTextureLayer(target, GL_DEPTH_ATTACHMENT, texture, level, layer);
2057 framebufferTextureLayer(target, GL_STENCIL_ATTACHMENT, texture, level, layer);
2077 if (texture != 0)
2079 texObj = m_textures.find(texture);
2199 const Texture* texture = m_textures.find(attachment.name);
2201 TCU_CHECK(texture);
2205 DE_ASSERT(texture->getType() == Texture::TYPE_2D);
2206 const Texture2D* tex2D = static_cast<const Texture2D*>(texture);
2214 DE_ASSERT(texture->getType() == Texture::TYPE_CUBE_MAP);
2216 const TextureCube* texCube = static_cast<const TextureCube*>(texture);
2225 DE_ASSERT(texture->getType() == Texture::TYPE_2D_ARRAY);
2226 const Texture2DArray* tex2DArr = static_cast<const Texture2DArray*>(texture);
2233 DE_ASSERT(texture->getType() == Texture::TYPE_3D);
2234 const Texture3D* tex3D = static_cast<const Texture3D*>(texture);
2241 DE_ASSERT(texture->getType() == Texture::TYPE_CUBE_MAP_ARRAY);
2242 const TextureCubeArray* texCubeArr = static_cast<const TextureCubeArray*>(texture);
2248 TCU_FAIL("Framebuffer attached to a texture but no valid target specified");
2358 Texture* texture = m_textures.find(attachment.name);
2359 TCU_CHECK(texture);
2361 if (texture->getType() == Texture::TYPE_2D)
2363 if (Texture2D* texture2D = dynamic_cast<Texture2D*>(texture))
2368 else if (texture->getType() == Texture::TYPE_CUBE_MAP)
2370 if (TextureCube* cubeMap = dynamic_cast<TextureCube*>(texture))
2375 else if (texture->getType() == Texture::TYPE_2D_ARRAY ||
2376 texture->getType() == Texture::TYPE_3D ||
2377 texture->getType() == Texture::TYPE_CUBE_MAP_ARRAY)
2381 if (texture->getType() == Texture::TYPE_2D_ARRAY)
2383 if (Texture2DArray* texture2DArray = dynamic_cast<Texture2DArray*>(texture))
2386 else if (texture->getType() == Texture::TYPE_3D)
2388 if (Texture3D* texture3D = dynamic_cast<Texture3D*>(texture))
2391 else if (texture->getType() == Texture::TYPE_CUBE_MAP_ARRAY)
2393 if (TextureCubeArray* cubeArray = dynamic_cast<TextureCubeArray*>(texture))
3831 // \note texture unit is stored to value