I am using HarfBuzz along with freetype to render regional language hindi.
If I write these three optins for window creation than the font does not render and I only see the blank screen.
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
Without these three options the font renders correctly.
I am curious to know what difference these options make in window creation?
That is because you create a core profile OpenGL Context (GLFW_OPENGL_CORE_PROFILE
).
In compare to a compatibility profile context (GLFW_OPENGL_COMPAT_PROFILE
), which is default, Legacy OpenGL OpenGL instructions are not valid and cause OpenGL errors.
The main difference is, that you can't use glBegin
/glEnd
sequences, fixed function attributes (e.g. glVertexPointer
) respectively client-side capability or the current matrix stack.
If you want to draw geometry, then you've to create Vertex Array Objects and to use Shader programs.
The complete differences can be seen in the OpenGL 3.3 Compatibility Profile specification or for the most recent OpenGL version OpenGL 4.6 API Compatibility Profile Specification, where the functionality that is only in the compatibility profile specification and not in the core specification is typeset in orange.