gpt4 book ai didi

android - 在android上使用OpenGL绘制文字

转载 作者:行者123 更新时间:2023-11-30 00:46:22 26 4
gpt4 key购买 nike

我想在 GLSurfaceView 相机预览上绘制正方形并绘制文本。

首先我尝试画正方形

private void drawSquare() {
GLES20.glEnable(GLES20.GL_SCISSOR_TEST);
GLES20.glScissor(20, 300, 500, 50);
GLES20.glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
GLES20.glDisable(GLES20.GL_SCISSOR_TEST);
}

这个方法调用 onDrawFrame();并在相机预览 glsurfaceview 上显示正方形。

然后我尝试绘制文本

public void GLText(GL10 gl) {

Bitmap bitmap = Bitmap.createBitmap(64, 64, Bitmap.Config.ARGB_4444);
Canvas canvas = new Canvas(bitmap);
bitmap.eraseColor(0);

Paint paint = new Paint();
paint.setTextSize(18);
paint.setAntiAlias(true);
paint.setARGB(0xff, 0xff, 0xff, 0xff);
paint.setTextAlign(Paint.Align.LEFT);
paint.setTextScaleX(0.5f);
canvas.drawText("testGLText", 0.f, 15.f, paint);

GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0);

bitmap.recycle();
}

并显示文本。但是背景颜色是绿色

enter image description here

为什么背景颜色是绿色?请帮帮我。

谢谢。

最佳答案

我没有看到您的代码使用 openGL api 绘制文本,但没有理由将您的 fbo 设置为绿色。

    GLES20.glEnable(GLES20.GL_SCISSOR_TEST);
GLES20.glScissor(20, 300, 500, 50);
GLES20.glClearColor(1.0f, 0.0f, 0.0f, 1.0f); // here you initialize your fbo color as black
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
GLES20.glDisable(GLES20.GL_SCISSOR_TEST);

如果要绘制正方形,请按照以下步骤操作。

glclearcolor(...); //Actually, glclearColor() and glclear() are not required.
glclear();
glviewport(....);
gluseprogram() // a shader program you compiled
bindVBO() // VBO you already set in this case, it saves four vertices
glactivetexture() and bindtexture()
gluniform1f(..) // for the texture
gldrawarray(...) or gldrawelement(...)

关于android - 在android上使用OpenGL绘制文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41732416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com