我正在将HarfBuzz与freetype一起使用以渲染印地语。
如果我为创建窗口而写了这三个选项,则字体不会呈现,而我只会看到空白屏幕。
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
没有这三个选项,字体将正确显示。
我很好奇,这些选项在创建窗口方面有什么不同?
这是因为您创建了核心配置文件OpenGL Context(GLFW_OPENGL_CORE_PROFILE
)。与默认情况下的兼容性配置文件上下文(GLFW_OPENGL_COMPAT_PROFILE
)相比,Legacy OpenGL OpenGL指令无效,并且会导致OpenGL错误。
主要区别在于,您不能使用glBegin
/glEnd
序列,固定功能属性(例如glBegin
)分别使用客户端功能或当前的矩阵堆栈。如果要绘制几何图形,则必须创建glEnd
并使用glVertexPointer
程序。
可以在glVertexPointer
或最新的OpenGL版本Vertex Array Objects中看到完整的差异,其中仅在兼容性配置文件规范中而不在核心规范中的功能以橙色排版。