根据这个http://yarin.blog.51cto.com/blog/1130898/381955 修改的。
原理是: 在内存DC上写字符串,然后获取DC像素数据,判断数据不为0的,就是写字的像素,获取像素所在位置。
在OpenGLES根据位置画点。
开始直接搬那个函数不知道怎么显示不了,就乱改一通,估计那个设置不对吧。
对GLES不懂,几天没看,函数都忘光光。
不管怎么做,终于写上字了,貌似速度挺慢的。
我的屏幕800*480的,直接写死了,字体名字也改的写死了
原来博主的顶点坐标都是用GL_SHORT型的,我都改成float的了
画点也改成了glDrawArrays,
设置投影矩阵的时候也用浮点型函数glOrthof
指定顶点数组也就用了浮点型,glVertexPointer(2,GL_FLOAT,0,points);
单纯画点之前把,纹理矩阵、颜色矩阵、ALPHA、BLEND都禁止掉,不然可能看不见。
貌似投影矩阵指定的时候用的函数类型与顶点不一样会画不上去
所以设置模型的时候用浮点型函数,画图的时候最好也用浮点的坐标
,要用x型的都用x型,原因不知,但还是先不较真了。
glFrustumf对应GL_FLOAT
glFrustumx对应GL_FIX
用的时候
直接调用
gl.glTextShow(25,NULL,0,480,L"OpenGL编程指南");
就可以显示
这一个函数就会刷整个屏幕,具体使用,还得修改。估计就改成原来博主那种写法了。。。。
好久没看,竟然对以前看的东西又怀疑了,最后又发现以前是对的。。。
投影矩阵函数设置一个投影矩阵
在模型视图矩阵中画东西的时候,glLoadIdentity();之后,模型视图矩阵默认的z原点在屏幕上
要看见画的物体,要将模型视图矩阵移动到投影矩阵中。
通过函数:glTranslatef(x,y,-0.010001f);移动。
再学到更多之前,投影矩阵设置用f型函数,都用浮点型
顶点也用浮点型的数据表示
设置投影矩阵的时候,就设置成屏幕大小的,方便坐标使用。
glOrthof(0, (800.0f),0, (480.0f), -1.0f, 1.0f); 平行投影
glFrustumf(-0.0f, 800.0f, -0.0f, 480.0f, 0.01f,1000.0f); 透视投影
单纯画点之前把,纹理矩阵、颜色矩阵、ALPHA、BLEND都禁止掉,不然可能看不见。