cocos2d-x 获取纹理数据

s = Sprite::create("res/GIRE.png");
s->setPosition(visibleSize / 2);
this->addChild(s);

auto id = s->getTexture()->getName();

//int format,width,height;
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &format);
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width);
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height);
//glGetTexImage(GL_TEXTURE_2D, 0, format, GL_UNSIGNED_BYTE, void*);

 

//这是不现实的

虽然我有解决方案但不建议用

因为 ndk 中没有glGetTexImage 函数

仅限于windows...

如果需要解决方案请联系YZFHKM@163.com

 

 

 

//http://codingdict.com/questions/143818

{

共1个答案

小编典典

ES 2.0中没有。实际上不存在该功能真让人感到惊讶。您可以获取渲染缓冲区的大小,但不能获取纹理的大小,这似乎是不一致的。

唯一可用的是您可以通过获取的值glGetTexParameteriv(),即纹理的FILTERWRAP参数。

ES 3.0也没有。仅在ES 3.1
glGetTexLevelParameteriv()中添加了它,使您可以访问要查找的所有值。例如,获取当前绑定纹理的宽度和高度:

int[] texDims = new int[2];
GLES31.glGetTexLevelParameteriv(GLES31.GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, texDims, 0);
GLES31.glGetTexLevelParameteriv(GLES31.GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, texDims, 1);

}

 

posted @   YZFHKMS-X  阅读(329)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示