OpenGL绘制字体的问题:项目从32位改到64位后不能绘制

/*以下是准备工作*/
HFONT hFont = CreateFont(30, 0, 0, 0, FW_MEDIUM, 0, 0, 0,
ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, TEXT("宋体"));
HFONT hOldFont = (HFONT)SelectObject(wglGetCurrentDC(), hFont);
DeleteObject(hOldFont);
glColor3f(1.0f, 0.0f, 0.0f);
glRasterPos3f(txtpos.x, txtpos.y, txtpos.z);
int strlen = walllength.GetLength();
char *wall_lengh = new char[strlen + 1];
memset(wall_lengh, 0, strlen + 1);

WideCharToMultiByte(CP_OEMCP, NULL, (LPCWSTR)walllength, -1, NULL, 0, NULL, FALSE);
WideCharToMultiByte(CP_OEMCP, NULL, (LPCWSTR)walllength, -1, (LPSTR)wall_lengh, strlen, NULL, FALSE);

wall_lengh[strlen] = '\0';

GLDrawString(wall_lengh);

/*以下是绘制函数**********************************************************************************************/
void GLDrawString(const char* str) {
static int isFirstCall = 1;
static GLuint lists;
if (isFirstCall) { // 如果是第一次调用,执行初始化
// 为每一个ASCII字符产生一个显示列表
isFirstCall = 0;

    // 申请MAX_CHAR个连续的显示列表编号
    lists = glGenLists(MAX_CHAR);

    // 把每个字符的绘制命令都装到对应的显示列表中
   //HDC c = wglGetCurrentDC();
    wglUseFontBitmaps(wglGetCurrentDC(), 0, MAX_CHAR, lists);
    /*glGetError();*/
}
// 调用每个字符对应的显示列表,绘制每个字符
for (; *str != '\0'; ++str)
{
    glCallList(lists + *str);

}

}
/*以上是之前绘制字体的函数,只要传入char* str就可以绘制出来数字,比如“12345”,但是项目从32位改为64位以后就没法绘制了,我查了一下,发现是wglUseFontBitmaps(wglGetCurrentDC(), 0, MAX_CHAR, lists);返回0,有没有大神知道是为什么啊,小弟没分。。。。真的不好意思*/

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
使用Opengl绘制字体
使用Opengl绘制字体 通过使用windos自带的字体,可以在opengl中方便的绘制多种字体。 bitmapFont类 下面介绍 bitmapFont 字体类及其成员函数: 首先是构造函数。 第一个构造函数:与winapi函数CreateFont(...)函数参数基本相同。 bitmapFont(         HDC &hdc,
OpenGL使用Window API绘制矢量字体(非常简单)
OpenGL使用Window API绘制矢量字体(非常简单)
不同字体的绘制【OpenGL】【FreeType】
-
OpenGL点阵字体绘制终极解决方案
OpenGL点阵字体绘制终极解决方案! 事情总在变化, opengl迎来了3.3以及4.1的进化, 相信今后的扩充也会朝着这个方向. 对于字体渲染方面, 也并不是什么坏事. 今后有时间再写篇关于3.3和4.1的全屏字体渲染的新方案, 仍然是结合freetype2的, 相信随着freetype2的进步, 和对它的逐步认识, 应该会比现有方案更简单高效... 现在最最最重要的事是...睡觉!
ArchieOpenGL教程第11课:使用位图字体 在屏幕上显示字体
第十一课A 源代码 图像字体A: 这一课我们将创建一些基于2D图像的字体,它们可以缩放,但不能旋转,并且总是面向前方,但作为基本的显示来说,我想已经够了。 使用位图字体比起使用图形字体(贴图)看起来不止强100倍。你可以随时改变显示在屏幕上的文字,而且用不着为它们逐个制作贴图。只需要将文字定位,再使用我最新的gl命令就可以在屏幕上显示文字了。 我尽可能试着将命令做的简单。你只需要敲入gl
OpenGL中的3D文字绘制
转自http://blog.csdn.net/augusdi/article/details/20572533 代码如下: /*****************************************新添加的代码*****************************************/ #include #include
opengl绘制文字
转自网摘 http://www.cnblogs.com/mattins/p/4126298.html。没示例程序。 增加了两个文件,showline.c, showtext.c。分别为第二个和第三个示例程序的main函数相关部分。 在ctbuf.h和textarea.h最开头部分增加了一句#include  附件中一共有三个示例程序: 第一个,飘动的“曹”字旗。代码为:flag.c, GL
OpenGL: 3D 轮廓字体
代码如下:/*****************************************新添加的代码*****************************************/ #include #include //标准输入/输出库的头文件 #include
opengl 画三角形和四边形,平移+旋转
opengl,画三角形和四边形,平移+旋转
SM3D的OpenGL教程(一):超酷三维汉字特效
??? 大家好,我是Skyman(SM3D),喜欢三维编程,现在正在系统学习OpenGL,DirectX,VR等.我经常到各大论坛上去转转.其中去得最多的地方是NeHe的OpenGL网站(http://nehe.gamedev.net),那是我所见过的最好的学习OpenGL的网站,强烈推荐!!!这是我的第一篇关于OpenGL的文章,写得不是很好,欢迎大家指正.大家知道,在OpenGL中输出
OPENGL绘制文字
OPENGL没有提供直接绘制文字的功能,需要借助于操作系统。   用OPENGL绘制文字比较常见的方法是利用显示列表。创建一系列显示列表,每个字符对应一个列表编号。例如,'A'对应列表编号1000+'A',‘B’对应列表编号1000+'B',以此类推。绘制一个字符串时,依次调用字符串中每个字符所对应的列表编号。   在Windows操作系统上,可以使用wglUseFontBitmaps
OpenGL 绘制简单的英文字符
http://learnopengl-cn.readthedocs.io/zh/latest/06%20In%20Practice/02%20Text%20Rendering/ FreeType 配置 下载FreeType2 得到: ft271.zip 解压 freetype-2.7.1 在CMake中,如下图 顺序 编译成功后得到 lib 文件 freetype271.lib 可自行编译成不同
【Qt OpenGL教程】15:图形字体的纹理映射
这次教程中,我们将在第14课的基础上创建带有纹理的字体,它真的很简单。也许你想知道如何才能给字体赋予纹理贴图?我们可以使用自动纹理坐标生成器,它会自动为字体上的每一个多边形生成纹理坐标。
【Qt OpenGL教程】17:2D图像文字
这次教程中,我们将学会如何使用四边形纹理贴图把文字显示在屏幕上。我们将把256个不同的文字从一个256×256的纹理图像中一个个提取出来,接着创建一个输出函数来创建任意我们希望的文字。
【OpenGL】绘制基本图元
我们知道,大千世界,千奇百态,但是其基本组成都是一样的,都是由原子所组成。不同的原子经过各种各样的变换,构成了我们多姿多彩的世界。对于计算机图形学也是这样,那些逼真,酷炫的场景都离不开组成这些模型的基本图元。我们从绘制一个三角形开始。绘制三角形在图形学中,绘制一个三角形,只需要固定它的三个顶点即可。顶点的确定使用下面的函数glVertex3f(x, y, z);这个函数是在我们完成了自己的OpenG
OpenGL 调用FreeType2.0显示文字
本程序是使用FreeType2.0库, 在OpenGL中显示文字, 若字库文件支持unicode, 则可显示汉字等东亚字符, 本程序是本人为嵌入式系统所写的一个原型程序,若加上着色器,便可很容易移植到OPenGL ES2.0
小球自由落体(计算机图形学)
利用OPENGL中的图形库绘制一个小球后,绘制该球从高空匀速缓慢落下的过程,程序由C编写的。
OpenGL显示旋转三维汉字和英文字符。
OpenGL基于Unicode和ASCII做出3D汉字和英文字符的效果,只有一个代码文件,用VisualStudio2013即可成功编译运行!
Android下Opengl程序显示文字的简单方法
原文地址::http://xmchang.bokee.com/6922990.html       Android 文字绘制到Bitmap上 OpenGL ES中似乎不能输出文本.将文本写到Bitmap上,再作为贴图,则可实现文字输出. 文字绘制到Bitmap上的方法为: String mstrTitle = "文字渲染到Bitmap!"; Bitmap bmp = Bitma
OpenGL进阶(二十一) - 文字渲染
经典文字渲染:位图字体在早期渲染文字时,选择你应用程序的字体(或者创建你自己的字体)来绘制文字是通过将所有用到的文字加载在一张大纹理图中来实现的。这张纹理贴图我们把它叫做位图字体(Bitmap Font),它包含了所有我们想要使用的字符。这些字符被称为字形(Glyph)。每个字形根据他们的编号被放到位图字体中的确切位置,在渲染这些字形的时候根据这些排列规则将他们取出并贴到指定的2D方块中。上图展示
opengl绘制汉字
http://www.cnblogs.com/zhanglitong/p/3206497.html OpenGL本身并没有绘制文字的功能,他只是一个三维绘图的API集和,很多东西都要 自己动手才可以实现。OpenGL绘制文字,网络上已经有很多成熟的方式方法,我这里给 大家介绍的是我使用的方式,从绘制的效率上来说,速度上从已经达到我个人水平的最大值。 如果你有更好的方式,请联系我。  
openGL安装配置+三维点坐标显示+64位电脑调试
http://www.cnblogs.com/lhyz/p/4178004.html 1.安装 在安装了vs平台后,在系统文件下windows下一般可以找到这些库,所以一般不需要安装,对于特殊需要的库需要安装 1.2 新建opengl文件:三个子文件(dll, include,lib) 2.配置 2.1 添加变量OPENGL: opengl安装目录 2.2 path :dll路径 2
OpenGL学习笔记二(绘制7种基本图元)
#include <GLTools.h> #include <GLMatrixStack.h> #include <GLFrame.h> #include <GLFrustum.h> #include <GLBatch.h> #include <GLGeometryTransform.h> #define FREEGLUT_...
【Qt OpenGL教程】13:位图字体
这次教程中,我们将创建一些基于2D图像的字体,它们可以缩放平移,但不能旋转,并且总是面向前方,但作为基本的显示来说,我想已经足够了。
OpenGL+FreeType渲染宋体中文
使用OpenGL+FreeType技术渲染了点阵格式的中文宋体(字体大小小于16),效果极好,可与Windows自身渲染的效果一比
32位项目转64位项目的个人体会
由于项目需要,最近将办公室里的一个学长写的MFC项目从vs2010移植到vs2013,出现了一堆多字节转到Unicode的错误,其实在写这个项目的时候就有想过为什么不用Unicode,《windows核心编程》里面也建议使用Unicode,引用如下: ①Unicode使程序的本地化变得更容易。 ②使用Unicode,只需发布一个二进制(.exe或DLL)文件,即可支持所有语言。 ③Unico
在opengl 里面写字, 无法显示的问题
按照网上的说明,我们先写个drawString函数 void TimeLine::drawString(const char* str) { wglUseFontBitmaps(wglGetCurrentDC(), 0, 256, 1000); glListBase(1000); glCallLists(strlen(str), GL_UNSIGNED_BYTE, str); } 然
OpenGL绘制自由落体小球
OpenGL绘制自由落体小球 一、    程序运行的软硬件环境   本次设计在window10系统下进行,运用C++进行编写,在CodeBlocks环境下使用OpenGL进行设计。 所需环境配置分为2部分,第一部分是CodeBlocks的配置,第二部分为OpenGL的相关配置。 Codeblocks配置: 打开搜索引擎,搜索CodeBlocks,点击相关结果进入CodeBlock
opengl 字体渲染
opengl 字体渲染
D3D绘制字体
1.ID3DXFont绘制字体(用GDI支持中文,用FreeType得到的中文字体效果更佳) 1)ID3DXFont简单的设置字体 ID3DXFont是基于GDI接口的字体绘制,绘制速度比较慢,但是能够处理复杂的字体设置和格式。图形应用程序底层都是使用GDI或DirectX或者Opengl图形图像库来绘制字体,图形图像,模型,视频动画的。 关键是 D3DXFONT_DESCA结构
【Qt OpenGL教程】14:轮廓字体
这次教程中,我将教大家绘制3D的轮廓字体,当然肯定不是贴图方式了,它们可像一般的3D模型一样进行旋转,放缩。
OpenGL ES之Android平台实现图形绘制一
OpenGl ES Java实现图形绘制 项目地址 https://github.com/rocky123shine/Rocky_Study_Open_GL_ES180310 渲染器 Renderer OpenGL提供的Renderer 是一个接口。该接口提供了监听Surface变化的三个方法。 1. onSurfaceCreated 2. onSurfaceChanged 3....
OpenGL In C# 03 在OpenGL中使用WPF绘制的字体
由于FBO或者是DIB方式进行OpenGL绘制性能实在不佳,所以以后的绘制都将采用Native模式。     我把一些常用的Win32函数和OpenGL函数以及常量抄了一遍,做了一个TOpenGL的类库,以后需要用的地方就引用一下就好了,这样就方便多了。     这次增加了一个类,能使用WPF的绘制方法把字符串绘制到内存,再加载到纹理,最后通过OpenGL进行显示,完美支持中文,速度也挺快的。
opengl学习笔记(三)-点和线段的绘制
主要参考了:http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html里的内容。 1、点坐标的指定 下面的代码在屏幕上画出一组孤立的点,点之间没有任何连线。 void display() { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POINTS); glVertex2f(-0.
解决OpenGL在MFC下的闪烁问题
The flicker occurs because Windows paints the backgroundfirst and then OpenGL next. Since we have OpenGL doing the job of clearing thebackground, we'll turn off Windows from clearing the background. T
OpenGL库及32位和64位配置方法
OpenGL在32位OS和64位OS下VC的配置方法及OpenGL库
opengl在高DPI屏幕下显示不正常的解决方法.
#include #include #include int width = 800; int height = 600; char *title = "GLFW window"; int main(int argc,char* argv[]){ if (glfwInit() != GL_TRUE) { printf("glfwInit fault");
Android Opengl es 写字 笔记(三)
项目文件: http://download.csdn.net/detail/li6185377/4194984 由于Opengl 本身是没有DrawString 这种函数的 所以我们要实现最简单的办法         字写在图片上  在把图片转为Texture 进行绘图 下面是我封装好的类 package ljh.opengl.command; import java.util.Array
OpenGL绘制球体模拟自由落体运动(基于Qt)
自由落体的物理公式想必大家都清楚(y=vt+0.5gt^2)。但是用程序如何模拟这个过程呢?1、其中比较关键的是设定一个计时器,在一个视觉暂留时间段(dt=0.02s)内根据小球的位置坐标绘制小球。2、在小球弹到地面的时候会因为碰撞而有能量损耗,其表现形式为速度减小并反向,而速度减小则可以通过改变加速度a的大小来控制(F=ma嘛,不知道这样解释合不合理,迷)3、终止条件的判断: if(bal...
openGL绘制点,线
#include "stdafx.h"#include<Windows.h>#include"gl.h"#include"glut.h"//渲染场景void RenderScene(void){ glClear(GL_COLOR_BUFFER_BIT);//用当前颜色填充窗口 glColor3f(1.0f, 0.0f, 0.0f);//设置当前的绘图RGB颜色值 GLfloat si...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java绘制 白班 产品经理流程图绘制教程