Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android OpenGL es 3.0中GLTEXAGE1D的替代项?_Android_Opengl Es - Fatal编程技术网

Android OpenGL es 3.0中GLTEXAGE1D的替代项?

Android OpenGL es 3.0中GLTEXAGE1D的替代项?,android,opengl-es,Android,Opengl Es,我正在尝试将OpenGL代码移植到Android上的OpenGLES3.0代码中。 但是,函数“GLTEXAGE1D”和“GL_纹理_1D”未在中定义 OpenGLES2.0规范。有什么替代品吗 我的Android手机支持16个纹理单元,个人电脑上GLSL着色器的实现需要通过1D纹理循环 因此,最可能的方法是用“GLTEXAGE2D”和“GL_纹理_2D”替换 #包括 GLuint-tex=0; void init() { glGenTextures(1和tex); glBindTexture(

我正在尝试将OpenGL代码移植到Android上的OpenGLES3.0代码中。 但是,函数“GLTEXAGE1D”和“GL_纹理_1D”未在中定义 OpenGLES2.0规范。有什么替代品吗

我的Android手机支持16个纹理单元,个人电脑上GLSL着色器的实现需要通过1D纹理循环

因此,最可能的方法是用“GLTEXAGE2D”和“GL_纹理_2D”替换

#包括
GLuint-tex=0;
void init()
{
glGenTextures(1和tex);
glBindTexture(GL_-TEXTURE_1D,tex);
glTexParameteri(GL_纹理1D、GL_纹理包裹S、GL_重复);
glTexParameteri(GL_纹理1D,GL_纹理MAG_过滤器,GL_线性);
glTexParameteri(GL_纹理1D、GL_纹理最小过滤器、GL_线性);
//
无符号字符buf[32*4];
对于(尺寸i=0;i
是的,只需使用高度为1的Texture2D和2D纹理即可。

谢谢

#include <GL/glut.h>

GLuint tex = 0;
void init()
{
unsigned char buf[ 32 * 4];
    for (size_t i = 0; i < sizeof(buf); i += 4)  
    {
            buf[ i + 0] = rand() % 255;
            buf[ i + 1] = rand() % 255;
            buf[ i + 2] = rand() % 255;
            buf[ i + 3] = 255;
    }


    glGenTextures(1, &tex);
    glBindTexture(GL_TEXTURE_2D, tex);
    glPixelStorei(GL_UNPACK_ALIGNMENT, 1); // 4 or 8
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 32, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, buf);


}

void display()
{
    glClear(GL_COLOR_BUFFER_BIT);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-2, 2, -2, 2, -1, 1);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    /*
    glEnable(GL_TEXTURE_1D);
    glBindTexture(GL_TEXTURE_1D, tex);
    */

    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, tex);


    glColor3ub(255, 255, 255);

    glLineWidth(10);
    glBegin(GL_LINES);
    glTexCoord1i(0);
    glVertex2i(-1, -1);
    glTexCoord1i(1);
    glVertex2i(1, 1);
    glEnd();

    glutSwapBuffers();
}

int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
    glutInitWindowSize(640, 480);
    glutCreateWindow("GLUT");
    glutDisplayFunc(display);
    init();
    glutMainLoop();
    return 0;
}
#包括
GLuint-tex=0;
void init()
{
无符号字符buf[32*4];
对于(尺寸i=0;i
#include <GL/glut.h>

GLuint tex = 0;
void init()
{
unsigned char buf[ 32 * 4];
    for (size_t i = 0; i < sizeof(buf); i += 4)  
    {
            buf[ i + 0] = rand() % 255;
            buf[ i + 1] = rand() % 255;
            buf[ i + 2] = rand() % 255;
            buf[ i + 3] = 255;
    }


    glGenTextures(1, &tex);
    glBindTexture(GL_TEXTURE_2D, tex);
    glPixelStorei(GL_UNPACK_ALIGNMENT, 1); // 4 or 8
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 32, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, buf);


}

void display()
{
    glClear(GL_COLOR_BUFFER_BIT);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-2, 2, -2, 2, -1, 1);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    /*
    glEnable(GL_TEXTURE_1D);
    glBindTexture(GL_TEXTURE_1D, tex);
    */

    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, tex);


    glColor3ub(255, 255, 255);

    glLineWidth(10);
    glBegin(GL_LINES);
    glTexCoord1i(0);
    glVertex2i(-1, -1);
    glTexCoord1i(1);
    glVertex2i(1, 1);
    glEnd();

    glutSwapBuffers();
}

int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
    glutInitWindowSize(640, 480);
    glutCreateWindow("GLUT");
    glutDisplayFunc(display);
    init();
    glutMainLoop();
    return 0;
}