zoukankan      html  css  js  c++  java
  • 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);

    }

  • 相关阅读:
    基础总结篇之一:Activity生命周期
    putExtra方法
    fork函数
    linux中fork()函数详解(原创!!实例讲解) (转载)
    系统调用wait、waitpid和exec函数
    版本控制工具VSS使用介绍
    学习进度条六(第七周)
    阶段冲刺4
    阶段冲刺3
    阶段冲刺2
  • 原文地址:https://www.cnblogs.com/YZFHKMS-X/p/14385862.html
Copyright © 2011-2022 走看看